text:
+65 8303 9150 / +65 9138 9813 INFO@XALTIUS.TECH
Adroit – An AI driven LMS
Links – Digital Credentials
XinQ
Rise of Conversational AI – Going Beyond Simple Chatbots
Up until two years ago, chatbots were hailed as the next big trend. Thousands of chatbots flocked the market as they are relatively easy to build and could be controlled by a predefined flow. However, this trend began to wane when simple chatbots could not meet complex customer demands. It could only work for completing simpler commands like ordering or booking something. Thus, a need for complex chatbots and conversational AI emerged.
Conversational AI was sought out in order to deal with conversations that require a level of comprehension and cognition that goes far beyond the predefined flow of today's chatbots. Conversational AI is a form of Artificial Intelligence that allows people to communicate with applications, websites, and devices in every day, humanlike natural language via voice, text, touch, or gesture input. Ram Menon, CEO of Awaamo, writes that "these platforms offer more than a natural language interface (NLI): they demonstrate true advancements in combining a variety of emerging technologies — everything from speech synthesis to natural language understanding (NLU) to cognitive and machine learning technologies — and are capable of replacing humans in a variety of tasks."
Understanding the customer is the key. Using advanced Conversational AI platforms such as Teneo can result not only in an increase in customer satisfaction but in the actionable data that conversational interfaces generate. Such conversational AI-driven chatbots can understand the context and the sentiment behind the conversation. When conversational AI solutions integrate with back-end data and third-party databases, a deeper personalization can take place. It also needs to be capable of creating a detailed analysis of the chat logs in real-time to feedback into the conversation, improve and maintain the system, and deliver actionable insights to the business.
The benefits of using Intelligent Conversational Interface
Intelligent conversational interfaces are the simplest way for businesses to interact with devices, services, customers, suppliers, and employees everywhere. There are lots of companies that provide AI-driven conversational platforms specifically focused on high impact use cases, including IBM's Watson and KAI.
Analysts predict the rapid and sustained growth of Virtual Digital Assistants in the coming years. This growth underlines the strongly defined benefits that both consumers and enterprises see in conversational AI. The future of chatbots will be dominated by AI-driven conversational tools.
Giving the customers the best experience and analyzing the data garnered can increase the profits of the company. Businesses can also cut down on costs by using AI-driven chatbots for automating many tasks such as customer service. As cost benefits continue to pile up, the trend will accelerate in 2018.
The Reliability of Health Data During Crises & Emergencies
What you don't know about Data Science in healthcare?
7 Innovative Digital Transformation Trends for 2021
7 Tips for Business Continuity Planning During a Pandemic
+65 8303 9150 / +65 9138 9813
INFO@XALTIUS.TECH
Vertex, 33 Ubi Avenue 3, #06-53, Singapore, 408868
Copyright © 2023 Xaltius Pte. Ltd.
Guiding you on the digital transformation journey!Our BI & Analytics Brochure
All you need to know about adding Business Intelligence to your digital transformation journey!
Your guide to BI & Analytics


text:
Chief Keef's Stepbrother Fatally Shot In Back Of Head
by Omar Burgess
Chief Keef's 19-year-old stepbrother Ulysses "Chris" Gissendanner III has become yet another victim of Chicago, Illinois' shooting epidemic.
According to DNA Info (via SOHH), Gissendanner was shot in the back of the head on the Far South Side on January 2nd. The aspiring rapper was killed in a car near 124th Street and South Ave. while visiting his uncle in West Pullman. He later died at Roseland Hospital.
Alfonso Cozart, who claims to be Keef's biological father, was stepfather to Gissendanner, whose rap name was YPN Boomtown. Keef was related to Gissendanner through marriage.
Cozart, who no longer speaks with Chief Keef, said that Gissendanner's murder makes him worry about Keef's well being. "As a caring father, who wouldn't worry about that?" Cozart asked. "I do want my son to have success and have a long, positive life, and I hope the best for him."
He added that he doesn't want Keef's fame to overshadow Gissendanner's passing. "He just graduated high school, and was in college and had a job. He was a positive person," Cozart said. "I'm not trying to get publicity of Chief Keef being my son. I want you to focus on Ulysses. He's the one that's gone."
This marks yet another recent death for Chicago teens due to gunfire. Keef's alleged enemy Lil JoJo lost his life at 16, while Joshua was murdered at 18 years old, both late last year.
RELATED: Judge Denies Prosecutors' Request To Place Chief Keef In Jail

redpajama_set_name: RedPajamaCommonCrawl


text:
1 Charity Details
3 Choose Password
4 Customize
5 Start Fundraising
Welcome to the Kids Can Give Too Charity Sign up wizard. Please complete these five steps to add your charity and start raising significant funds from birthday boys and girls all over America. When you're finished, you will land on your charity dashboard where you can edit this information at any time.
Charity Name
Mailing Street Address
Mailing State Select State Alabama Alaska Arizona Arkansas California Colorado Connecticut Delaware District of Columbia Florida Georgia Hawaii Idaho Illinois Indiana Iowa Kansas Kentucky Louisiana Maine Maryland Massachusetts Michigan Minnesota Mississippi Missouri Montana Nebraska Nevada New Hampshire New Jersey New Mexico New York North Carolina North Dakota Ohio Oklahoma Oregon Pennsylvania Puerto Rico Rhode Island South Carolina South Dakota Tennessee Texas Utah Vermont Virginia Washington West Virginia Wisconsin Wyoming
Mailing Zipcode
Same as Mailing Address
Location Address State Select State Alabama Alaska Arizona Arkansas California Colorado Connecticut Delaware District of Columbia Florida Georgia Hawaii Idaho Illinois Indiana Iowa Kansas Kentucky Louisiana Maine Maryland Massachusetts Michigan Minnesota Mississippi Missouri Montana Nebraska Nevada New Hampshire New Jersey New Mexico New York North Carolina North Dakota Ohio Oklahoma Oregon Pennsylvania Puerto Rico Rhode Island South Carolina South Dakota Tennessee Texas Utah Vermont Virginia Washington West Virginia Wisconsin Wyoming
Location Address Zip
Charity Phone
Contact Name (This is the charity director, marketing director, community relations person or fundraising liasion who will be our main contact and will have access to the KCGT dashboard.)
Contact Email (This will also be used as your login to the charity dashboard)
Secondary Contact Name (It's always good to have another contact. If you dont have anyone else, you could use a volunteer.)
Secondary Contact Email
Please choose a password which will be used with your email login to access your Party Venue Dashboard.
Please choose a password
Your email address has been found in our system, please enter your KidsCanGiveToo password below to continue.
The password entered is not correct, please try again.
KidsCanGiveToo Password
Validating Password ...
Branding Elements
Charity Logo
Choose your landing page URL. This will be the web address for your custom landing page, so you can share it with the world. Ex. If you enter "momsagainsthunger ", your custom landing page will be found at KidsCanGivetoo.com/momsagainsthunger. Your URL should be at least 4 characters and contain only letters and numbers.
Thank You Note Customization
Send a THANK YOU NOTE with one click. We automatically customize it with the child's name and how much they donated. Please enter a custom message that will appear on all of your thank you notes . Ex. "Thank you for generously sharing your birthday gifts with us. How awesome! We will be using the money you donated to provide snacks at a local daycare for a whole month."
Additonal Details
Charity Website URL
Charity Description - Please briefly describe your charity and how your KCGT donations will be spent in 2-4 sentences. Kids will be reading this, so please make it easy to understand.
Video Link - Do you have a link to a video that is appropriate for kids to watch?
Facebook Url - Please enter your full Facebook URL, e.g. https://facebook.com/kidsgive
Twitter Url - Please enter your full Twitter URL, e.g. https://twitter.com/kidscangivetoo
Instagram Url - Please enter your full Instagram URL, e.g. https://instagram.com/kidscangivetoo
KidsCanGiveToo Subscription
Raise significant funds with the only charity birthday invitation platform made to help kids raise money for the charities they care about while still getting a meaningful gift of their own.
$39/month - Unlimited use of our charity birthday invitation platform for a single charity location/chapter.
If you have multiple locations/chapters, please contact us after signing up to pricing.
I represent the charity described and I acknowledge that this is not a binding agreement and that participation can be terminated at any time for any reason by this charity or Kids Can Give Too, Inc. I agree to Terms of Service.


text:
Ricoh GR III Firmware Update Version 1.41 Released
Ricoh just released a new firmware version 1.41 for the Ricoh GR III camera, which is now in stock at Amazon, B&H, Adorama for $899.95.
Download link: Ricoh GR III Firmware Version 1.41
RICOH GR III firmware update released
RICOH IMAGING COMPANY, LTD. is pleased to announce the release of the function-expansion firmware update for the RICOH GR III high-end digital camera on July 30th.
The update adds new functions and increases the number of settings that can be adjusted on their treasured RICOH GR III cameras. As a result, it improves the camera's overall performance and ease of use, while providing users with all the benefits of the latest functions.
The firmware, as well as the operation manual detailing its functions, can be downloaded free of charge from the RICOH IMAGING Web site.
RICOH GR III V1.41
Enhanced functions
[Full Press Snap function is possible by touching the LCD screen]
The full-press snap function can be used not only by pressing the shutter button all at once, but also by touching the LCD monitor. With this update, it has the same functions as "RICOH GR III Street Edition" (version 1.40).
How to use details:http://www.ricoh-imaging.co.jp/english/products/gr-3/firmup/index.html
Function modification
In the case of south latitude or west longitude, the location information acquired from the smartphone was not recorded accurately in the Exif GPS tag, and the GPS location display in [Playback Details] was corrected.
*The dedicated end screen of "RICOH GR III Street Edition" (version 1.40) will be maintained even with the new version.
Firmware download page: http://www.ricoh-imaging.co.jp/english/support/digital/gr3_s.html
GR official (Product planner talks about "Full Press Snap") :https://www.grblog.jp/en/article/4048/
In addition, the Ricoh GR III Street Edition Digital Camera is already shipping with firmware version 1.40: $1,199.95 at B&H, Adorama.
Read more: Best Memory Cards for Ricoh GR III.
Pentax K-1 Mark II Firmware Update Version 1.02 Released
Fujifilm X-T2 Firmware Update Version 4.01 Released
Ricoh Released New Firmware Updates for Pentax 645Z and K-1
Camera News, Ricoh
Download, Firmware, Ricoh GR III, Ricoh Rumors
Nikon D3500 Black Friday Deals 2020
Canon RF 600mm & 800mm f/11 Lenses and Extender RF 1.4x & 2x now in Stock


text:
underground city of Nushabad
The underground city of Nushabad is also known as the city of Oui is a recently-discovered city in Aran va Bidgol County. Until a few years ago, no one knew of such a place. But recently, many tourists travel to Kashan to visit it. In fact, this is the biggest underground city in Iran. If you want to visit it, you have to travel to Kashan and when you see the sign of Aran and Bidgol, change your way to receive Nushabad.
This city was built 1500 years ago during the Sassanid period and it is even said that this city was the capital of one of the most famous Sassanid kings, namely the reign of Anushirvan Sassanid. Oui underground city is one of the most modern cities in the world but in underground type! This city, which is an original example of the so-called hand-made and original Iranian architecture, was considered as a popular city in the days when life was still going on.
Although it was built in very distant times, everything that should have been installed in it, such as entrances and exits or air conditioning, … All these findings show the intelligence of the people at that time who without any special knowledge or advanced tools, they had it and turned it into a modern and wonderful city, and of course now it is an ancient place. The city of Nushabad is one of the examples of military and defense structure that has emerged from digging tunnels underground.
The Architecture of Underground city of Oui
The length of underground city of Nushabad is about 4 kilometers, although now we can only see 400 meters. Exploring more spaces requires time and facilities of digging. The city has a total of 3 floors and its depth underground reaches up to 18 meters. In some parts of the city, there are entrances that are only 120 cm! We see many corridors on the first floor. It was very easy to hide in these corridors and escape. Sometimes the height of the corridors is too short. It was possible to live on the second and third floors. Food seems to have been hidden in these floors.
The lighting of this underground city is so attractive ad we can guess that all the corridors had always been bright enough to pass easily.
One of the most interesting things of this modern underground city is its ventilation system, which you can easily breathe even in its great depth, and you will not have any breathing problems at all. Let us tell you that after entering this city, you feel a special coolness, which of course is due to the construction of this city next to the water aqueduct (Qanat) that exists in the city of Kashan.
The other interesting architectural point about this underground city is that you can see some wells that they were actually the way of communication between the different floors. Covers were placed over the openings of these wells to block them in case of danger.
The houses of Nushabad underground city were built like ordinary houses with the traditional architecture that was built on the ground. But there were some rooms that housed families in times of danger. It should be noted that the underground city of Nushabad was also used as a shelter. For example, during the Mongol invasion, this city was used for sheltering people.
To enter the beautiful city of Oui, there is only one entrance, and after passing forty-five steps, you encounter a dense structure and many corridors in the depths of the earth, after which you reach the main parts of this amazing underground city.
Although Oui Underground city is the most attractive part of Noshabad, many travelers are still unaware of the existence of it. If you are planning a trip to Isfahan or Kashan, our travel experts can help you organize an excursion to this nice place. You just need to keep in touch with us and send your request. Also, you can visit Iran cultural tours to find your desired trip plan to Iran.
Tour operator Iran
How to get Iran visa in 2021? (Complete visa guide)
Practical travel tips in Iran


Rocket Cat launched in Milwaukee in early 2016, when four veteran musicians embarked on a mission to create music rooted in the high-energy interplay of vocal and instrumental layers, drawing heavily upon the musical influences of their youth. Rocket Cat started strong in 2018 holding the #1 spot on ReverbNation's local and regional alternative rock charts and earning nominations for the 2018 WAMI (Wisconsin Area Music Industry) Awards in two categories – "New Artist of the Year" and "Pop/Rock Artist of the Year". Fueled by radio play in cities and states beyond their home base, Rocket Cat spent the summer on a micro-tour of the region including stops at the Jersey Street Music Festival (Horicon), Gibson Music Hall (Appleton), Richmond Brat Haus (Richmond, IL), Locust Street Festival and FemFest (Riverwest), Summer Sounds (Shorewood), Sounds of Summer (Whitefish Bay), Wisconsin State Fair (West Allis), Denim Park Music Series (Milwaukee), and Sundays in the Park (Glendale). The band is currently working toward an April 5th release of "Little Lights" a new full length LP at Anodyne and an accompanying music video premier screening on June 1st at No Studios in preparation for another exciting summer tour in 2019.
Rocket Cat LP Release Show with Flat Teeth and Mortgage Freeman at Anodyne Coffee Roasting Co.


text:
/* sync state icon */
#saved-records-list .ui-block-a{
    width: 15% !important;
    height: 3.4em !important;
}

/* record text */
#saved-records-list .ui-block-b{
    width: 55% !important;
}

#saved-records-list .ui-block-b a{
    font-size: 16px;
    font-weight: 900;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    display: inline-block;
    text-decoration: none;
}

.saved-records-list-synced-true{
    background-image: url("images/uploaded.png");
    background-size: 38px 35px;
    background-repeat: no-repeat;
    background-position: 0 3px;
}

.saved-records-list-synced-false{
    background-image: url("images/uploadrecord.png");
    background-size: 38px 35px;
    background-repeat: no-repeat;
    background-position: 0 3px;
}

.saved-records-list-synced-incomplete{
    background-image: url("images/incompleterecord.png");
    background-size: 38px 35px;
    background-repeat: no-repeat;
    background-position: 0 3px;
}

.saved-records-list-syncing{
    background-image: url("images/ajax-loader.gif");
    background-size: 30px 30px;
    background-repeat: no-repeat;
    background-position: 5px 5px;
}

#saved-records-page-header-login-sync.cloud-sync{
  	background-image: url("images/sync.png");
    background-size: 26px 26px;
    background-position: 5px 5px;
    border: #b5c976 solid 1.5px;
}

#saved-records-page-header-login-sync.cloud-login{
    background-image: url("images/login.png");
    background-size: 26px 26px;
    background-position: 8px 4px;
    border: #b5c976 solid 1.5px;
    float: right;
}

#saved-records-page-header-login-sync.cloud-logout{
    background-image: url("images/logout-no-bg.png");
    background-size: 26px 26px;
    background-position: 8px 4px;
    border: #b5c976 solid 1.5px;
    float: right;
}

#saved-records-page-header-upload{
    background-image: url("images/upload.png");
    background-size: 26px 26px;
    background-position: 7px 5px;
    border: #b5c976 solid 1.5px;
}

ul#editors-list > li label{
    position: relative;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-right: 75px;

}

ul#editors-list > li .ui-flipswitch{
    position: absolute;
    right: 0.8em;
    top: 0;
    margin-top: 8px;
}

redpajama_set_name: RedPajamaGithub


Marble Masters performs high end marble restoration, marble cleaning, stone restoration and marble polishing in Newport Beach, CA. We have many years of experience providing an array of services such as stone cleaning, stone repair, grout cleaning, grout repair and more. We have the resources necessary to get the job done right! We pride ourselves on our excellent service and our affordable rates. For the best marble restoration in Newport Beach, CA, call on Marble Masters.


Please enter your log-in ID and password to access your account.
In the next few months Silliker, Inc a Mérieux NutriSciences company, will launch a redesigned Customer Portal to retrieve Sample, Test, and Result information. The new system, MyMXNS, will replace eSTAR. The transition will be seamless with no downtime.
Click the link below to view some of the new features you will be able to utilize with your data.
Our commitment to helping processors, retailers, and distributors to find total food safety and quality solutions has made us the number one resource of companies around the world. You can rest assured with our international expertise and local, responsive service.


Helping Create Your Dream Landscape!
Partnered with local providers and business, we have the resources needed to exceed your demands.
Our company is your most reliable landscaping service in the area. With over 20 years of combined experience in commercial and residential landscaping we can help you create your dream landscape!


text:
TEDDINGTON – William Flower Blatchford (1827 – 1897)
William Flower Blatchford (pictured on the right)arrived in Canterbury on the 1st March 1851 aboard the 'Isabella Hercus', the Canterbury Association's 6th emigrant ship. From all accounts and from where he put down his roots, he seemed very fond of Lyttelton Harbour.
The bay of Te Rapu – named after a stream that flows through Maori Gully, now Gebbies Pass, particularly struck a chord with him. He told those in his company that the salt mudflats reminded him of the Teddington-on-the-Thames where he had grown up back in London. He quickly became acquainted with two families that farmed in Te Rapu, the Gebbies and the Mansons. They employed him to become a tutor to their children and by March the following year, William had opened the Gebbies Station School which was open to other children in the bay.
There was another reason that made William build his life around the end of the harbour – Agnes Manson. The eldest daughter of Samuel (pictured) and Jean Manson was 20 years old when she married William.
She had just been a toddler when the family moved to New Zealand from Riccarton, Scotland. Samuel had secured a work contract with John Deans as a carpenter and immigrated with him to the Wakefield Settlement of Nelson in 1842. When John made the move to join his older brother William down on the Port Cooper Plains (Canterbury), the Manson's secured their place in history by building the first house and parenting the first European child born – Jeanie Manson – on the plains. Little Agnes had spend her childhood playing on the Deans' farm of Riccarton, in the years before the city of Christchurch was established!
In 1845, the Manson's left the employment of the Deans and moved out to Te Rapu. They left with 14 cows to help make their own start. Samuel, once he had his family settled, took on work at Purau with the Greenwood brothers. His own farm, which he called Kains Hill, produced fine cheeses and after the arrival of the first four ships in 1850, Samuel would walk to Lyttelton around the beaches to do some selling. In doing so, he became an excellent judge of the tides.
William and Agnes would go on to have 3 sons and 6 daughters. After 6 years of teaching the children of Te Rapu, the Blatchford's made the change to farming – naming their property Teddington, now the name of the area. This is believed to have been the main reason of the naming but other reports states it's to do with an earlier term of being Tidingturn or Tide-end-turn.
William died in 1897 and Agnes died in 1918.
*image of William Flower Blatchford courtesy of Linda MacFarlane*
*image of Samuel Manson courtesy of the http://christchurchcitylibraries.com/*
Filed under The Men & Women Behind The Suburbs/Townships
Agnes Manson Gebbies Pass Gebbies Station School Isabella Hercus John Deans I Kains Hill Maori Gully Purau Samuel Manson Te Rapu Teddington Teddington-on-the-Thames William Flower Blatchford


Received this one as a part of Golden Eagle's Readers Services program last weekend and I was ready for a fresh novel. This has been one of the best Death Lands novel that I have read to date, have not ready that many, but this is one is an excellent one and fast paced in some areas. I would advise all readers to be anxiously awaiting this installment in the saga.
Well its still better then Strontium Swamp!
This book really wasn't as bad as I was expecting. Yes some of it plodded along in places, but it actually wasn't all that bad of a story.
Is it as good as Shatter Zone, Perdition Valley, or Cannibal Moon? No, but its light years ahead of Black Harvest and Strontium Swamp!
I do think the franchise might be heading in the right direction under Pollatta and Phillipson..
If there was anything that could be done to rectify this tragedy and get my $7.99 back, it just wouldn't be enough. I had a "I feel dirty" moment reading this completely unimaginative piece of fiction. In contrast to re-reading "Crater Lake" the weekend before, it reminds me of of the difference between a '70 Hemi 'Cuda and an 83 K-car...same brand name, but just absolutely no comparison in terms of performance or quality. Keep this up and I'll be reading Dan Brown novels before bedtime.
this is the one that got me hooked.


Bloom also comes with a convenient no-drip container.
Cute, adorable and a great addition to any tea drinkers collection. The Bloom Floating Tea Cup Infuser is made of high quality stainless steel, it's BPA free, practical and fun! Simply unscrew the Bloom cap, fill with the desired amount of exotic tea and replace the infuser basket. Now enjoy watching your tea infuse while the flower floats in your cup. Bloom also comes with a convenient no-drip container.


text:
Q: How to prevent xkbmap reset? I use two keyboard layout, and I use CapsLock to switch to the first layout, and Shift+CapsLock to switch to the second. To do that I use the following command:
setxkbmap -option grp:shift_caps_switch,lv3:ralt_switch us,ua

The only problem that these settings are reseted eventually by some daemon. So I have to use cron script to monitor the settings every minute. The question is how to make xkbmap setting permanent?

A: Edit the /etc/default/keyboard file:
XKBLAYOUT="us,ua"
XKBOPTIONS="grp:shift_caps_switch,lv3:ralt_switch"

This should be effective after next reboot.

redpajama_set_name: RedPajamaStackExchange


text:
TeamPortfolioStoriesInvestment Screening FormContact
Drylet, Inc. announces comprehensive program to reduce costs, achieve profitability, and drive free cash flow
November 18, 2022 (Houston, Texas, USA) – Drylet today announced a series of steps has been taken to immediately position the Company to achieve profitability and free cash flow.
Given prevailing challenges with raising capital in today's volatile financial markets, Drylet's former CEO Trevor Turbidy and Drylet's Board of Directors determined this week that the company and its shareholders were best-served by dramatically reducing costs and tempering Drylet's expansion plans. Going forward, the company is to focus on its existing customer base while growing in US and European markets, which have the strongest near-term growth potential and in which Drylet has achieved brand recognition.
Drylet reduced headcount in both the U.S. and Europe and streamlined reporting structures. Under the leadership of new CEO Justin Whitley, the company will focus on strengthening verticals which generate positive cash flow in both markets, while continuing to address its customers' needs in each of the company's existing business verticals.
"Drylet has made great strides in its Livestock and Solids Remediation verticals thanks to our suite of patented products, proven product efficacy, and demonstrable track record of creating value for our large public and private company customers," commented Mr. Turbidy. "With the steps that we have recently implemented, and with our new CEO's impressive agricultural experience and strong relationships, Drylet should be able to accelerate the revenue trajectory in its strongest verticals, Livestock and Solids Remediation. I couldn't be handing the reigns over to a more qualified, energetic and enthusiastic leader than Justin."
Swine, dairy, and beef operations are now top priority for Drylet in the US market, as the company keeps building its ManureMagic® dealers' network. "Our ManureMagic® solution has been a reliable source of revenue for the company over the years for a reason, it works well and delivers tremendous value to our customers. Now is the time to scale up all the great testimonials and high customer retention into a winning proposition for the company," Mr. Whitley said.
He joined Drylet in January 2021 as the National Accounts Manager for ManureMagic®, equipped with a strong and distinguished track record in swine production, research, and nutrition sales. Prior roles include developing partnerships with large swine integrators in the U.S. for Trouw Nutrition USA and Devenish Nutrition. Mr. Whitley holds a Bachelor's and Master's degree in Animal Science from NC State University.
Darko Lojen, Director of EMEA Operations Darko Lojen, who joined Drylet in 2019, will keep leading European projects development in biogas production and municipal wastewater treatment. "Fast-moving environmental legislation and mindsets, in addition to the renewed energy-security concerns raised by the war in Ukraine and current tensions with Russia, make Europe a ripe market for our low-carbon footprint, zero-energy biocatalyst," he said.
Darko Lojen boasts more than 20 years of experience in public policy and governance, international development, agribusiness and food industry sectors, as well as in government-business relations, through previous roles as Special Advisor in Serbia's Prime Minister's Office and a senior officer at the US Embassy.
About Drylet
Drylet, headquartered in Houston, Texas, is an award-winning bioremediation technology company whose proprietary biocatalysts optimize biosolids reduction and biogas generation in livestock operations, industrial wastewater lagoons, waste-to-energy installations, and wastewater treatment facilities. Drylet offers a cost-effective and zero-CAPEX, low-carbon footprint solution for addressing biosolids accumulation, boosting mass-to-gas conversion and energy revenue, while reducing environmental impacts and aiding with regulatory compliance. For more information, visit www.drylet.com.
About GOOSE
Goose Capital, Inc. is an investment firm comprised of former Fortune 500 executives, industry leaders, and serial entrepreneurs. Membership in Goose Capital is limited to executives who have founded or run major enterprises and who are willing to invest in and mentor early stage companies. Goose Capital primarily invests in early-stage companies with proprietary and disruptive technology, manageable capital needs, large addressable markets, the prospect for high margins and an exit strategy within a five-year time period. It typically invests in convertible debt and Series A preferred stock, although it reserves capital for follow-on investments in its portfolio companies.
Searching for an investment from GOOSE?
2022 © GOOSE Capital


text:
Credo è un album in studio della cantante svedese Carola Häggkvist, pubblicato nel 2004.

Tracce
Ditt ord består
Åt alla
Som en båt
Gud jag behöver Dig
Du vet väl om att du är värdefull
Så älskade Gud hela världen
För att Du inte tog det gudomliga
Lova Gud o min själ
Herre, till Dig får jag komma
Din trofasta kärlek
Jag vill ge dig o Herre min lovsång
Namnet Jesus
Låt mina fötter få gå
I frid vill jag lägga mig ner

Collegamenti esterni

redpajama_set_name: RedPajamaWikipedia


text:
"Gallant Rogue, Reluctant Heroes Book 3" by Lily Silver #Spotlight
May 10, 2017 ~ Felicia Denise	~ Leave a comment
This week, the work of Lily Silver is in the spotlight here on Nesie's Place! Get ready for adventure, intrigue, and of course, romance! Lily is also sponsoring an awesome Rafflecopter with a Kindle Fire as the grand prize! ($50 gift card for an international winner!) Check out the excerpt, then scroll down for the Rafflecopter and a FREE gift from Lily!
"Gallant Rogue, Reluctant Heroes Book 3"
Author: Lily Silver
Genre: Historical Romance/Regency
Gallant Rogue Excerpt, Day 4
Gallant Rogue is Book Three in the Reluctant Heroes Series. It features the story of Jack and Chloe. Captain Jack Rawlings was a support character in Dark Hero. He is Donovan Beaumont's closest friend and ally. Together, Donovan and Jack were pirates in the East Indies, years before the events of Dark Hero take place.
Jack has had a tragic history. He was engaged to a woman and she died horribly. He blames himself for her death, for not being there to save her. He has a strong, driving need within demanding he save the girl because of that tragedy of his youth. This is a strength but also a flaw. In Dark Hero, Jack misunderstood the marital conflict between the main characters Donovan and Elizabeth, and felt it his duty to take Elizabeth away from Donovan to 'save her'. His need to redeem himself in his own eyes for failing to save his beloved is at times overwhelming, In Gallant Rogue, he gets that chance at redemption.
His friend asks him to escort a family member to Spain and to deliver her safely to her relations. Donovan (Dark Hero) knows Jack would protect Chloe as fiercely as he would himself if he accompanied her to Spain. Jack has had secret feelings for Chloe for many years. He almost proposed, but Chloe married someone else before he could do so. Now he's being asked to spend several weeks with her as they sail across the sea to Spain, and those close quarters and intimate exchanges are killing him. He cannot act on his desire for her as Chloe is a recent widow. He believes it would be dishonorable to take advantage of her at a vulnerable time. He also believes it would interferewith his duty to protect her if he allows himself to become distracted by a blooming romance. Jack's greatest flaw is that he's gallant—to a fault.
Chloe is also a support character from Dark Hero. She is the love child of a Spanish estate steward and an African slave. Her adoring father died suddenly when she was a girl. She was sent to live in the slave quarters with her maternal grandmother by the cruel plantation owner. She has endured scorn all her life because of her origins. When Elizabeth came to the island as a new bride Chloe found acceptance and friendship. She became Elizabeth's personal maid, and then her companion. She married a relative of the family and became part of it. Chloe's happily ever after ended abruptly when her beloved Gareth was killed in an accident. Now she is determined to escape the lingering prejudice and scorn that have shadowed her since birth in the West Indies. She decides to sail to Spain to find her father's family, and reinvent herself there as a Spanish Lady. Her paternal uncle is a Marquess, after all.
Spain is on the brink of war. It's 1808 and news from Europe is slow coming to the West Indies. Spain has been under the thumb of France and Napoleon for years, but is just starting to revolt. Chloe and Jack are confronted by the presence of soldiers from France, England, and Spanish Guerilla warriors hiding in the woods. Jack will have quite a task keeping up with Chloe because she is determined to find her Uncle Miquel at all costs. As they traverse the Spanish countryside in search of the missing Marquess, they encounter outward danger and inner simmering passions.
This book is unique in the series as it does not have the strong Gothic tone of the previous books. The characters determine a book's tone in my work, and both Jack and Chloe did not have any deep magical or supernatural leanings. This book is an adventure romance set on the high seas and in Spain. Jack and Chloe's story is one of redemption, re-invention, and re-kindled passions of a lost love.
Chloe is a wonderful character who embodies much of the modern woman of this age. She doesn't want to be defined by the labels society has placed on her. She wants to break out of the exterior definition of her 'place' that society has forced upon her. She will not turn back from her quest to find her father's family. Her singular determination brings surprising results that have a greater impact on the situation in Spain than she could have ever dreamed. Jack is one of my favorite heroes. His gallantry and his sense of honor is the kind that makes me swoon, and isn't that what we read romances for! I hope he'll charm your heart as well in Gallant Rogue.
Excerpt from Gallant Rogue, Copyright Lily Silver 2014
The screams coming from the cabin next door brought Jack up from his bunk at a rush.
Jack grabbed the pistols he kept at the ready, a habit from his pirating days, shoved them into the waist of his trousers and reached for his sword. He was out the door and across the hall in a trice.
Three other officers joined him there, all in similar states of undress. Jinks, Lt. Morgan, and Mr. Harris. They looked to him to take the lead and breach the portal.
He hesitated. The shrieking had stopped.
Did she have a bad dream? He really didn't want to go plowing in there and startle the poor woman with his sword raised and his men following; not in the middle of the night.
"Go on then," Jinx prompted behind him. "You are the captain, after all."
Jack grimaced and bit his tongue to contain a raw retort. When had the proper and respectful Mr. Jinx acquired such cheek? Jack raised his fist to the door, determined to at least announce his presence to the poor woman before leading the charge of men into her private suite.
But that nerve-shredding shrieking started again, combined with a steady thumping sound as if someone were being chased and beaten with a stick.
Jack burst through the door, expecting darkness and a sizable intruder to greet him. Instead, he was met with bright lights as all the lanterns in the cabin seemed to have been set ablaze. Chloe was in the corner with her back to the door. She didn't seem to notice the men filing in. Her arm was raised. She appeared to be in the midst of bludgeoning something.
"Mrs. O'Donovan," he said in a light tone, trying to get her attention. Her hair was flowing in a gleaming, obsidian waterfall down her back, reaching nearly to her round bottom. Jack cleared his throat and tried again when she didn't respond to his gentle speech. "Mrs. O'Donovan," he repeated in his strict captain's tone. "Is there a problem with your lodgings?"
She turned, and seemed startled to see him standing in the portal with his men. Her lovely ebony arches fell as she frowned. "Yes, there is." She pointed to the large windows to her left. "It's that silly girl, shrieking as if to raise the dead over a rodent."
All attention moved from the delectable and vivacious Spanish beauty clad in a light muslin gown to the thin, pinch–faced adolescent girl, who was standing on the window seat clutching a blanket about her chest and looking as if she were being set upon by an entire crew of pirates.
The maid blinked. Her lower lip quivered slightly. She looked at the men with terror. "There was a large rat in here."
"Marta, get down and help me," Chloe scolded. "Your ridiculous shrieking has awakened the crew. The least you can do is help me catch the little blighter."
"A rat?" Jinx dropped his pistol arm so that the business end was pointing at the floor. "All right, mates, let's not tarry. Let's get the dreadful beastie out of here for the lady." He gestured with his free hand for the men behind him to find the creature for Mrs. O'Donovan.
"Oh, I have him," Chloe replied without emotion. "At least, I think it is a he." She set her weapon, a parasol she'd been holding by the pointed end so she could use the wooden handle as a cudgel, on the trunk beside her. Without flinching, the woman picked up the dead rat and held it by the tail for all to see, letting it dangle beneath her fingers as her face registered triumph. The rat's head was split open. Dark ruby blood oozed from its nose and brow. The left eye appeared to be displaced, crushed by the blow of Chloe's parasol handle. "If one of you wouldn't mind burying him at sea, I'd be most grateful."
"Yes, ma'am." Jinx, Lt. Morgan, and Harris all pushed forward to assist her. The trio tripped over each other in their rush to aid the fair lady. It was Harris in the end that took the bloody little creature from her.
Muted crying could be heard from the window.
The maid. Jack felt little sympathy for the girl. He hoped this was not going to set a precedent. "Stop whining," he admonished. "Get your mistress some water so she may wash the blood from her hands. And shame on you, for letting her do all the work."
"I can't stand rats, sir." The girl blathered through fractured sobs. "Disgusting creatures. I've never had to catch one before…" Sniff. "My father always does it, or one of my brothers."
"Water, Marta. Now," Mrs. O'Donovan commanded. "And my shawl, thank you. I shouldn't wish to put you out too much in your duties."
Jack couldn't contain a chuckle. Chloe was well and truly angry. And she should be. Why didn't the maid just knock on one of the cabin doors and ask an officer to help them capture the beastie if she was that upset? Instead, she climbed on the furniture, took to shrieking like a banshee while leaving her mistress to attend to the problem.
The girl hopped down from her perch. She hurried to the washstand and fetched the bowl and a towel and brought them to her mistress. Mrs. O'Donovan pushed up the sleeves of her elegant nightgown and began washing her hands while the maid stood holding the bowl for her. Mrs. O'Donovan carefully dried her dainty hands, and shooed Marta away with a silent mouthed word.
"I wonder how the beastie came to be in here in the first place," Lt. Morgan said to the room at large. "They don't usually appear this far above deck. They stick to the cargo hold, and the darkness."
Jack and Jinx exchanged a hard look.
"Oh, I have an inkling of how it might have occurred." Jack thought of a particular cabin boy who was wont to play such pranks to liven up the tedium of a voyage.
"Do you want the pleasure of kicking his bum, or shall I do it?" Jinx murmured, smashing his lips together with contempt. "Boy needs a lesson in manners, frightening a poor helpless female in the night, and a passenger, to boot."
"Helpless?" Jack nodded toward Chloe. "I believe you are mistaken, Mr. Jinx."
Jinx shot him a bold grin. "'Twas speaking theoretically, Cap'n. Shall I rouse the boy for you, then?"
"No. Let him sleep. In the morning, you may discipline him as you see fit. Make certain he understands that passengers are strictly off limits for his mischief."
"Aye, Cap'n. Good night, ma'am, and… er…pleasant dreams?" Jinx made a polite bow to Chloe.
"Thank you for coming so quickly to our aid, Mr. Jinx." Chloe gave the man a charming smile. "It is a comfort to know if we were under attack we would be well protected, sir."
"My pleasure, ma'am." Jinx was grinning like a fox.
"Get back to your bunk," Jack grumbled, adding a deep, warning growl to his words. "Out, now." He pointed to the door with the tip of his sword, knowing his reaction to the exchange between Chloe and his first mate was irrational, but he was unable to contain his fury.
Jinx slunk away, as did the other men. Jack stood in the doorway, his sword in hand, disappointed that he, too, must leave. Chloe was stunning in her plain white nightdress that offered no embellishment save the lace at her wrists and throat. Her lovely features were framed by waves of sleek ebony. Did he imagine the sultry smile curving her lush red lips?
The maid hurried to her mistress's side and made a great show of placing a silk paisley shawl about her shoulders, lifting her heavy locks and then resettling the jet waves once the shawl was arranged to modestly conceal Chloe's bosom and shoulders. The spell was not broken by the maid's intrusion. Jack lingered, wanting to just drink in the sight of this lovely, exotic creature sleeping just down the hall from his cabin.
"Is there anything more I can do for you, Mrs. O'Donovan?" He sounded hoarse. His throat had gone bone dry as he stood rooted to the deck staring at her like a starving man might stare wistfully at a feast he was denied access to.
"Yes, Captain. I could use a strong drink," Chloe replied, smiling at him.
God, she was breath-taking. She belonged in a fancy painting. The Goddess Awakened.
"A drink?" He felt like a clumsy lad. "I've some claret in my cabin. Shall I bring you a glass?"
Chloe was anxious for this humiliating episode to disappear. Her behavior was not delicate or lady like. It was practical. More importantly, it revealed her true nature. If she were to convince her father's family that she was a proper lady she must behave accordingly. Ladies did not kill rats in their rooms. They had servants to do it for them.
"No, Captain. I need some fresh air. And you," she turned to the little brat who was the cause of this embarrassment, "you will be finding employment elsewhere if you disturb the captain and his officers again. Do you understand me, Marta?"
Marta nodded and bowed her head. Her childish brown braids fell forward, making her seem even younger than her seventeen years. "Yes, ma'am."
Chloe paced across the cabin to the door, determined to put some distance between herself and the girl until her fury waned. It was bad enough Marta had awakened her with frantic shrieks. Awakening the crew was intolerable.
Rodents, spiders, insects and reptiles were abundant in the West Indies. One learned to deal with them out of necessity. Rats were not her idea of a beloved pet either, but Chloe was not squeamish about dealing with them.
She pulled her silk shawl tighter about her shoulders and moved into the hallway. As she passed the blond warrior clutching a sword at her open door, she secretly grinned up at him. She would laugh later, not in front of Marta. The girl deserved to be shamed for disturbing the crew.
Captain Rawlings was gazing at her with an expression of astonishment.
"Captain, I realize my suggestion may seem odd. My apologies, but given the situation, I need to leave my cabin for a little while." Before I slap that girl silly, she thought but did not say. "Perhaps you could escort me on a walk about the deck, if that wouldn't inconvenience you or the crew, sir?"
"No, not on deck, not at this hour of the night." He gestured with his sword for her to proceed down the narrow hall. "Come to my cabin. I'll pour you a drink to sooth your nerves." He spoke the last with sarcasm, bringing a reluctant smile to her lips.
His door was ajar. The captain followed her inside his cabin and placed his sword on the table in the center of the room. Chloe was fascinated by the gleaming steel. She approached the table to admire the fine piece.
Captain Rawlings turned away from the table to open a small cabinet on the wall. "What is my lady's pleasure?" he asked in a low, rough growl that resonated within her like thunder on the horizon. "Claret or do you prefer something stronger?"
"Stronger. A woman always prefers strength when asked," Chloe confessed. She had already given the man ample reason to question her behavior in sullying her hands with a dead rat and then asking to share a drink in his cabin. What did she have to lose? "Do you have brandy? Elizabeth and I indulge in an occasional glass. The count's mother joins us when she visits, of course." She added the last as a means of softening her request.
Jack chuckled. "The notorious Alicia St. Vincent is never without her brandy and her cheroots."
Chloe gazed up from her admiration of his fine sword to regard the man himself. The captain was a mystery to her. He was congenial and friendly when he dined at Ravencrest. On his ship, his natural habitat, she was finding him gruffer and sharper around the edges than when he visited her former home.
She studied his back as the sound of liquid splashing into goblets echoed in the room. Captain Rawlings was a veritable rock. The outline of his shoulders arched and bunched, seeming to wish to push through the confines of his cotton shirt. His hair was free from the restraining queue he wore out on deck. She wished she could touch it, run her fingers through the pale golden abundance. It fanned out like a regal lion's mane, flowing past his shoulders.
Gold. Sunshine; warmth and hugs. And love.
Wasn't that what Angelica Rose had prophesied would be her portion in Spain?
Yes, in Spain.
Presently, they were in the middle of the Atlantic Ocean, so she'd best restrain her errant fantasies about embracing this fierce lion of a man and stroking his golden mane.
Author's note: What follows is a bit of swordplay in the middle of the night, as Jack teaches Chloe how to use a sword, some serious flirting on Chloe's part, and a few stolen kisses before Jack comes to his senses and returns Chloe to her cabin unscathed.
As a special gift for visitors to Nesie's Place, the awesome Lily Silvers is giving away Book 1 in the Reluctant Heroes series, Dark Hero – a $5.99 value! Use the Smashwords coupon to claim your copy. Giveaway ends June 1st!
Use the code XX39V at checkout to get this book for free!
"Dark Hero, A Gothic Romance: Reluctant Heroes #1" on Smashwords
~ RAFFLECOPTER ~
Enter for a chance to win a KINDLE FIRE or a print boxed set of the Reluctant Heroes series – four books!
http://www.rafflecopter.com/rafl/display/e7ad012c9/?
"Twenty-Two (Assassins #11.5)" by Toni Aleo #ChapterReveal
Pre-order exclusively via
iBooks HERE
When Lucas Brooks was traded to the Nashville Assassins over a decade ago, he was a brash, brawling hothead without an anchor.
Well, four kids and a smokin' hot wife will weigh you down real fast, but Lucas wouldn't change a minute of his happily ever after.
During an epic, end-of-season quest for the Cup, changes appear on the horizon, and suddenly, there's a plot twist in Lucas's fairy tale.
The Brooks Family
"I want to watch SpongeBob!"
"No! Ariel!"
"Yeah! Mermaid! I wanna watch Ariel!"
Lucas Brooks covered his face with his hands before he yelled from his bedroom, "There are nine TVs in this house! Separate!"
"But she has the popcorn!"
"And he has the milk!"
"Daddy, I want to be with Asher!"
"Why are they eating popcorn at seven a.m.?"
Groaning, he looked over at his wife, who was cuddled deep into the bed, her dark brown hair covering her face as her thick, plump lips pursed out toward him. He almost leaned over and kissed her, but he was exhausted. "I don't know. Where is Aiden?"
"What's the point of having an older kid if he isn't going to care for the crazy little ones?"
"I don't think that's why we had them so far apart."
Lucas scoffed. "Says you."
Fallon giggled as she scooted over toward him, cuddling into his shoulder. Both of them knew the real reason for the big age gap between their children, though they never talked about it anymore. In their eyes, they did this on purpose and, really, it didn't matter because they were happy.
"Mom! Asher won't give me some milk!"
"Stella backwashes!"
"Mommy! I'm thirsty! Can I have some sweet tea?"
"Daddy, I want tea!"
"What in the hell?" Lucas muttered, staring at the ceiling as Fallon continued to giggle.
"Why are they up so early? The game was late."
"Who knows? I'm exhausted."
"So am I," Lucas groaned, and he was. He felt the pain all over his body from the big win over St. Louis that advanced the Assassins to the second round. His whole body was aching. He wasn't like his young self that bounced back after a hard-fought game. No, Lucas Brooks needed a good week after a game like the one the night before. It had gone into overtime, and the Blues had been playing desperate hockey. But by the grace of God, Jensen Monroe didn't let any in, and Vaughn Johansson scored the winning goal. Vaughn had wanted to make his night even better since he had just proposed to his girlfriend and found out she was pregnant. So last night's win was a biggie for everyone. Though, Lucas wished he had a solid month to recuperate before the next one. But he didn't. He only had a few days of rest before the second round started.
"But, really, where is Aiden?"
"I have no clue."
"Text him."
"That means I have to move," he complained, and she rolled her eyes before throwing her arm behind her to find her phone. Bringing it to her face, she dialed their son's number, putting the call on speaker.
Lucas closed his eyes. Aiden's manly voice still was like a punch to the gut. His baby was growing, fast, and it was killing him slowly. "Baby, where are you?"
Aiden let out an exasperated breath. "Out front, where I always am. Where are you?"
Fallon looked to Lucas as he looked back at her. "Excuse me?"
"Oh my God, Mom, did you forget I had training for summer league this morning?"
Throwing the blankets off, she sat up. "Not at all. I'm running late."
"You forgot!"
Lucas laughed as Fallon shot daggers from her eyes. "I did not! I'm coming."
"If you would let me drive, this wouldn't be a problem," Aiden reminded her.
"If you cut your hair, maybe we'd buy you a car," Lucas called out, and Aiden laughed.
"You're just jealous I have hair!"
"Hush it, both of you. I'm coming," she said, hanging up the phone and throwing on some sweat pants. "I can't believe I forgot."
"I can't believe he went after not getting home until midnight last night." She shot Lucas a deadpan expression. "Okay, I can. I would have."
"Exactly. He's his daddy's son."
Lucas grinned. "He is." Then he glared, running his hands along his thinning hair. "I have good hair, right?"
She laughed. "Yes, baby, lots of great hair."
"He has more."
"He's going through puberty."
He raised a brow. "I think he's past that."
She shook her head. "I don't know if we can wait till his birthday to give him a car, Lucas," she said, pulling her hair up as she glanced back at him.
"That's all you, babe. I told you to give him mine, and I'll go get a new truck."
"He wants a sports car."
"And I don't give two fucks. That kid isn't going to be driving a better car than what I had. He can have a nice Ford and be happy, or he can walk—if his momma would let him."
"You're overprotective as hell."
"I am not."
She glared. "But he is a good kid, Lucas."
"The best, and he'll be happy with my Ford."
"Ugh, okay," she groaned before leaning down and kissing his lips. He savored her for a moment, grabbing her butt.
"Can we make him wait a bit longer to be picked up?"
She chuckled, desire flashing in her eyes. "I doubt you can move."
He looked sad. "I can't."
She laughed as she kissed him again. "Can we give the car to him today?"
Her brows rose. "Why tomorrow?"
"Because I can't move, and I have to go buy a new car for me."
She laughed, smacking his chest, which made him wince. "I'll be back."
"Be careful," he called as she headed out of the room just as Emery ran right into her.
Picking up their youngest, Fallon kissed her loudly on the lips.
"Me?" Emery asked.
"Because you want cake at sissy's birthday, don't you?"
"Oh! I'll be good!"
Fallon rolled her eyes, placing their daughter on her feet before waving back at Lucas.
Emery ran to him, jumping on the bed and breaking his bones further. He groaned out as Emery cuddled into him, and he closed his eyes. "Daddy."
He smiled into her hair, kissing her temple as his arms came around her, holding her tight. He'd never known he could love any child as much as he loved Aiden. Lucas could still recall the first moment he saw his son. Outside of Fallon's house, begging her for a chance to reconnect after seven years of separation, but then Aiden walked out, and Lucas knew. Aiden was his son, and boy, did he fall in love. Head over heels for the kid. Lucas never thought any kid could come close to his love for Aiden, but then Asher came.
His spunky, dry-humored little geek. The kid was always on his computer, always busy making something, and damn smart. Asher was great on the ice, though Lucas didn't think he'd go far with it. He was too obsessed with computers and rebuilding them. His first love wasn't the ice; it was making things tick. But Lucas was proud nonetheless, especially considering the fact that Aiden's drive to make it to the NHL was enough for the whole family.
In all reality, Lucas had been set with two great boys. But then, by the grace of God, came Stella. His little diva. She looked just like Fallon, breathtakingly stunning with big brown eyes and thick brown hair. She had her momma's looks, and God help him, her mouth too. Those two went at it daily, mostly about clothes and hair, but his little girl had his heart, and of course, he was wrapped around her finger.
That was it…until Emery came. She was a complete surprise, but in a way, she was the missing piece in their lives. Their family had been off-balance and needed her quirky little brand of badass. While Emery favored both Fallon and him physically, she had his demeanor with Fallon's mouth. It was a bad combination because while she was ruining your life, she was making you feel right about it. Unlike her sister, Emery didn't care about hair or clothes. She cared about being a fairy princess, which, for an almost four-year-old, he figured was logical.
But she was daddy's princess.
Holding his sweet baby, he couldn't help the grin on his lips, though he was aching in spots he hadn't even thought he could ache. He had taken a hard hit into the boards, coming down and slamming his head on the ice. Thank God for a helmet because his brain would have been scrambled eggs if not. But he was feeling every bit of it now. Though, he couldn't think of that. All he could think about was how much his life had changed. He used to be a lonely bachelor, living life in the fast lane and enjoying the NHL. But when he moved to Nashville, everything changed. Fallon happened. And now, Lucas couldn't imagine his life without her and their kids. Between playing and being his kids' biggest fan, he didn't see any other point to life.
Oh, yeah, and loving Fallon.
But that came naturally.
That woman was his world.
Everything was great in the Brooks household. Now, if only his body could stop hurting and aching, things would be grand. Oh, and if his kids could stop growing. And he needed the Assassins to bring home the Cup.
Yup, then Lucas Brooks would be a happy man.
"I love you too, love bug."
"Can I still have cake if I'm bad?"
"What did Momma say?"
She pouted. "Do you love cake, Daddy?"
He smiled, kissing her head. "I know, love bug."
"Can we watch Ariel?" She sat up, her eyes wide and gray like his. She had Fallon's lips, though, and the shape of her face. Her hair was in pigtails with big pink bows in them that he was sure Stella had put in. "Please. You're my favorite daddy."
"I'm your only daddy."
She nodded. "And my favorite."
He smiled. "Do I have to move?"
She thought that over. "No."
Pulling up in front of Aiden's private school, Fallon hit the brakes, slamming forward as she looked over to where Aiden was standing, shaking his head. Gone was her baby, replaced by a hormone-driven monster with long hair. Actually, he was the greatest kid in the world and she loved him more than anything, but God, she hated his hair. He looked like a damn fool, especially with that stupid man bun. But boy was he handsome. Just like his daddy, he had a strong bone structure, thick, dark brows, and dark gray eyes. He was beautiful, and if she didn't know he was a good kid, she'd lock him up.
Opening the back, he threw in his bag. "Hey, Mom."
"Hey, honey."
"Hey, Aiden."
Fallon about broke her neck trying to see who was calling her son's name. She saw a pair of girls standing beside the stairs in what she felt were too short skirts. Sure, they were cheerleading skirts, but still. Fallon glared as Aiden turned, tipping his chin at them. "Hey."
"Are you going to the dance on Friday?"
"Probably not, I've got a game."
One of them puckered her lips. "Can't you come after?"
He shrugged. "I don't know. I'll let you know. Have a good practice."
"Okay, I'll save you a dance."
When he flashed her a grin, his dimples shining in all their precious glory, Fallon shook her head.
There was Lucas Brooks reincarnated.
"Cool. See ya."
Closing the back, Aiden walked around, and she swore he had grown another inch or so.
Opening the door, he climbed in and looked over at her. "You know, being the oldest, I'm pretty sure I'm not supposed to be forgotten. Emery is."
Fallon glared. "Shut up. I'm exhausted. It was a late night. How did you even get here?"
"Brayden's mom drove me, like you asked her to at practice."
Fallon paused as she moved the shifter of her van into Drive. "I did, didn't I?"
"You did," he said dryly, throwing his legs up on the dash as he started to play on his phone.
"Hmm. Hey, at least I got that far," she decided, hitting the gas.
"Practice was good?"
"Great. Coach is happy with me."
"Heard Bellevue is looking at me."
Fallon glanced over at him. "From whom?"
"Yeah, he said I should talk to my counselor."
"For what?"
"I have enough credits to graduate this summer and start over there if I wanted."
Fallon's heart stopped. "You just turned seventeen."
"Do you want that?"
"Yeah," he laughed, looking over at her. "Mom, I want to go to college so I can go into the draft. The Sinclair brothers all went to Bellevue. I need that exposure before I enter the draft."
Whoa. Whoa. Whoa. Too much. This was her baby. Her firstborn and he was ready to go.
He was itching for the NHL. He wanted to play like his father. He wanted to live his hockey dreams, and all she wanted was for him to go back to fighting hippogriffs. "Talk to your father about this. You're making my head hurt."
Aiden laughed. "Mom, I'm getting older. I'm practically a m—"
"Shut your dirty mouth, Aiden James Brooks."
He laughed harder as she turned down the main road. "Where we going?"
"Audrey's."
"I gotta get some donuts she made for your father for winning last night, and then I gotta approve the cake she's making for Stella's birthday next weekend."
"Do I have to go to that?"
She flashed him a dirty look. "You mean your sister's birthday?"
"Of course you do. You're the damn crab, Sebastian."
"You're kidding."
"No," she said simply. "I hope the costume fits."
"I even hired a photographer. So when you're in the NHL and they need those pictures of you growing up, I'll have that one."
"You're horrible."
He scoffed, and she grinned over at him before pulling onto the road that held Audrey Jane's. "So, who were those girls?"
"Addy and Melissa."
"Your fans?"
"Everyone is my fan," he said, waggling his eyebrows, and she laughed. "I'm practically a hockey-playing god, Mom."
"All right, pump the brakes there, mister. You're no Vaughn Johansson."
Aiden laughed. "JoJo is amazing."
"He is, but he's cocky as all hell," she said simply, pulling into Audrey Jane's and
parking beside her baby sister's car. Getting out, they went inside just as Fallon's niece, Penelope, hollered out, "Welcome to Audrey Jane's!"
Fallon beamed as Aiden ran after Penny, gobbling her up and tickling her before Audrey came out of the back, a grin on her face. "Hey."
"Hey, you," Fallon said, kissing the back of Penny's head.
"You're here early."
"Yeah, I forgot to pick my kid up after practice, so here I am. Where is Philippe?"
"With Tate. He didn't want to come in."
Fallon nodded. "How's Tate feeling?"
Audrey exhaled loudly since the subject of her husband, the Assassins' starting goalie, Tate Odder, was a touchy one. He had a serious groin injury and had had surgery about two months ago, but he still wasn't recuperating from it well. An infection had spread and knocked him down some more, long after the doctors had assumed he would be back on the ice. So it was easy to say the Odder family was very tense. "Lots of pain, but I guess he's getting better. He doesn't talk about it. He mainly asks me to make cupcakes. He's pissed he missed last night.
Thank God Jensen did great."
"Right?" Fallon agreed with a nod. "Well, hopefully, he'll be up and at it soon."
"I don't know, Fal, I just don't know."
"What does that mean?" Aiden asked. "Uncle Tate's okay, isn't he?"
Audrey faked a grin. "Of course. Come here. You want a cupcake?"
Aiden laughed. "You know, I'm seventeen, you can't distract me— Whoa, are those cookie dough?"
Audrey smiled happily at Fallon as she shook her head, and Aiden took the cupcake.
"Come on, I'll show you the cake for Stella, and your donuts are right there."
Aiden looked at the donuts. "Can I have one?"
"Save one for your dad."
"Okay," he said with a mouthful as she followed Audrey to the back.
"Kid has a tapeworm, I swear. He's always eating."
Audrey laughed. "He's always been an eater. It's not fair."
As Fallon followed her into the kitchen, Audrey looked back at her sister. "I think he might have to retire."
"Who? What? Tate?" Fallon's eyes widened. "Never."
"Yeah, he is grief-stricken about it and things are bad, but he can't seem to get better. I don't know. I told him he needs to decide."
"Yeah, it's not good. We're fighting a lot, and he's withdrawn because he feels like a failure. Shit's so bad, he started to go see Wren Lemiere, the team's therapist."
"Good for him," Fallon said, exhaling hard. "I hate that for him, though."
Audrey nodded as she turned on her computer. "Me too. At least you don't have to worry about that. Lucas's got at least nine more years in him."
Fallon shot her sister a wry smile. "He creaks when he walks. I'm waiting for him to tell me he's done."
"He won't."
"I know, which makes me nervous."
"Yeah, but you know, Lucas would be okay. Tate…he's not, and I just want my happy husband back. I'm worried he won't be happy without hockey."
"No, he has you guys. He loves you three. So much."
"I know he does, and he is the best father ever. Sucky in the husband department right now, but I get it. We'll be okay."
"You will," she said, wrapping her arms around her sister. "Don't worry."
"Thanks." Audrey hugged Fallon back as the computer came on. "Okay, so here it is. The best Ariel cake for my niece."
Fallon grinned as she took in the perfect seven tiers of Ariel-themed cake. "She'll flip her shit."
"That's my goal."
"It's perfect."
"Awesome," she said, shutting her computer lid. "I'll be over next Saturday morning to set everything up."
"Cool." Fallon leaned her hip to the counter as she met her sister's gaze. Audrey had changed so much over the years. She used to be obsessed with her weight. Now, she stayed healthy, even if she was rounder than she used to be. Kids would do that, though. One thing was for sure. Even with all the shit going on, Audrey had a grin on her face that Tate and the kids had put there. Her sister was complete, and like she'd said, she would be okay. Fallon just knew it.
But Fallon was pretty sure she was going to have her own mini heart attack. "Aiden told me his coach said he could probably graduate early and that Bellevue might want him."
Audrey's jaw dropped. "What?"
"For him to talk to his father!"
Audrey laughed. "Fallon."
"It would be great."
"He's a baby."
"He's seventeen. He's a great kid. Smart and talented as hell."
"Yeah, I don't know. I don't think I want him to do it."
"If it's going to be what's best for his career, then he has to, you know?"
Biting her lip, Fallon nodded. "We'll see what my husband says. If he can even move."
Audrey smiled. "He's sore today?"
"Yes, bless him. I don't know if he'll make through the whole series in one piece."
"He is old now."
"He isn't a spring chicken, for sure." Fallon grinned. "Except in the bedroom."
Fallow snorted as Audrey shook her head and then smiled. "I think they're going to go the whole way. I feel it."
Fallon nodded. "I do too. Rumor is, Elli was in the locker room crying last night. She's so emotional."
"Think she's pregnant again?"
Fallon laughed. "Lord, I hope not!"
"Right? She's already so damn busy."
"I know." Fallon shook her head. "Are you going to Lucy's baby shower next Sunday?"
"Did you not check the group?"
Fallon just looked at her. "Obviously not, Audrey."
"It's been postponed until further notice."
"Because of the play-offs."
"That's dumb. Why plan it around the play-offs, then?"
"I don't have an answer for that, but they called me asking to hold off on the cake."
"Yeah. Which is good 'cause I can focus on Stella's cake."
"This is true. Ariel needs all your attention anyway."
Audrey grinned as she leaned into her sister. "You know, you can come by more."
"Same for you. Or come to the winery, and I'll get you drunk."
Audrey beamed. "That's a plan."
"Mom! Let's go! Penny is going to make me fat."
Penny's giggles met them in the kitchen, and Fallon laughed. "Kid couldn't get fat if he tried."
"Right?" Audrey asked, shaking her head. "And what's up with his hair?"
"I don't know. I want to cut it, but he won't let me."
Audrey laughed as they went out of the kitchen to find Penny feeding Aiden cookie after cookie. "Mom," he whined, and Fallon laughed.
"Hey, boogey butt—"
"Audrey!" Aiden complained, and they all laughed since he hated his nickname. "I told you about calling me that."
She feigned hurt. "You are my baby, and I will call you that if I want. Even when you're a big, hotshot hockey player, I'll be in the stands hollering, 'That's my boogey butt!'"
"Mom," he groaned, and Fallon just kept laughing.
"Anyway, if I throw gum in your hair, will you let me cut it?"
He glared. "Stay away from me."
"It's so long. And dirty," Audrey said, coming toward him, and when Fallon saw the scissors in her hand, she tried to stifle her laughter.
"I washed it like ten minutes ago!" he said, slowly stepping back from his aunt.
"It's ugly. Let me cut it." She went for the bun, but he deked around her, running to Fallon and hiding behind her. Which was pointless since he was practically seven times her size.
"Leave me alone! Mom! Tell her to leave me alone."
"We're leaving." Picking up the donuts…well, the three that were left, Fallon shook her head. "Bye, Penny loaf," she called to Penelope.
"Bye, Auntie!"
"Bye," Audrey sang. "I'll get you later, Aiden James."
Going outside, Aiden looked over at Fallon. "You won't let her cut my hair, right?"
"I mean, if she gets to you before I do, I'm sorry for ya."
"I look amazing!"
"You look like a damn fool," she said, opening the door. "But I love you."
He shot her an exasperated look. "Do I really have to be Sebastian next weekend?"
"No," she laughed, shaking her head. "Asher is Sebastian. You're Flounder."
With a grin on her lips, she got in the car.
But she'd be lying if she said she wasn't worried about Aiden.
Or Tate.
Or even her dinosaur of a husband at home, who might or might not make it through the play-offs.
My name is Toni Aleo and I'm a total dork.
I am a wife, mother of two and a bulldog, and also a hopeless romantic.
I am the biggest Shea Weber fan ever, and can be found during hockey season with my nose pressed against the Bridgestone Arena's glass, watching my Nashville Predators play!
When my nose isn't pressed against the glass, I enjoy going to my husband and son's hockey games, my daughter's dance competition, hanging with my best friends, taking pictures, scrapbooking, and reading the latest romance novel.
I have a slight Disney and Harry Potter obsession, I love things that sparkle, I love the color pink, I might have been a Disney Princess in a past life… probably Belle.
… and did I mention I love hockey?
Twitter Facebook Web Goodreads Amazon Pinterest
"Pete the Cat and the Cool Cat Boogie" by Kimberly and James Dean
May 10, 2017 ~ Felicia Denise	~ 3 Comments
Put on your dancing shoes—Pete is ready to boogie!
Join Pete the Cat in a brand-new story from New York Times bestselling author-illustrator team James and Kimberly Dean! Pete is learning a new dance—the Cool Cat Boogie! When he hears a groovy beat, he's full of happy in his feet. But when Grumpy Toad tells him, "Pete, you dance all wrong!" Pete is determined to become a better dancer. With the help of his friends and some wise words from Owl, Pete learns that he's his grooviest when he's being himself. Includes step-by-step dance moves so readers can dance along with Pete!
Don't miss Pete's other adventures, including Pete the Cat: Rocking in My School Shoes, Pete the Cat and His Four Groovy Buttons, Pete the Cat Saves Christmas, Pete the Cat and His Magic Sunglasses, Pete the Cat and the Bedtime Blues and Pete the Cat and the Missing Cupcakes.
"Pete the Cat and the Cool Cat Boogie"
Author: James Dean
Genre: Children's Books
Personality Types and Writers
May 10, 2017 May 10, 2017 ~ Felicia Denise	~ 2 Comments
You HAVE to take this quiz! Very interesting and surprisingly accurate! Please share your results! Now I have to go find my new BFF – Colin Powell! 😄
Are writers introverts? So many of us say we are, but personality tests show that how we view ourselves is not always how others view us. I've been subjected to a number of personality and team-building profiles in the business world and I always find them interesting.
Many years ago I took a detailed Myers-Brigg test conducted by my local college. If you're unfamiliar with Myers-Brigg, it's based on the foundation that there are sixteen personality types which are factored from four key elements:
Favorite World
Do you focus on the outer world (Extraversion • E) or the inner world (Introversion • I)
Do you focus on the basic information you take in (Sensing • S) or do you interpret and add meaning (Intuition • N)
Do you look at logic and consistency first (Thinking • T) or people and special circumstances (Feeling • F)
Announcing the Return of the SUNDAY SCRIBBLE CHALLENGE!!
May 10, 2017 May 10, 2017 ~ Felicia Denise	~ Leave a comment
Are you ready? 😉
It's been nearly a year since Scribbles on Cocktail Napkins hosted a Sunday Scribble Challenge. That, friends, is far too long. So, for a limited run of six weeks only, the challenge is back.
What is a Sunday Scribble Challenge?
It starts with a writing prompt issued every Sunday. The responses need only be short and sweet. Or short and scary. Or, short and funny. The point is, the challenge will always require short replies on purpose . . . so YOU have no excuses. Many of the challenges will limit submissions to a simple paragraph. Some, to ONE SENTENCE. The challenge is meant for writers at every stage–newbies and old hats alike.
It's something fun to encourage creative juices to flow. But, more than that, it gives participants a chance to reach out to the writing community and interact with peers. Writing can be a solitary endeavor. This challenge is specifically designed to lure writers out of their…


text:
package core

import (
	"math"
	"strings"
	"time"

	"github.com/gogo/protobuf/proto"
	"github.com/pingcap/kvproto/pkg/metapb"
	"github.com/pingcap/log"
	"github.com/tikv/pd/pkg/errs"
	"github.com/tikv/pd/server/core/storelimit"
	"go.uber.org/zap"
)

const (
	// Interval to save store meta (including heartbeat ts) to etcd.
	storePersistInterval   = 5 * time.Minute
	mb                     = 1 << 20 // megabyte
	gb                     = 1 << 30 // 1GB size
	initialMaxRegionCounts = 30      // exclude storage Threshold Filter when region less than 30
	initialMinSpace        = 1 << 33 // 2^33=8GB
	slowStoreThreshold     = 80

	// EngineKey is the label key used to indicate engine.
	EngineKey = "engine"
	// EngineTiFlash is the tiflash value of the engine label.
	EngineTiFlash = "tiflash"
	// EngineTiKV indicates the tikv engine in metrics
	EngineTiKV = "tikv"
)

// StoreInfo contains information about a store.
type StoreInfo struct {
	meta *metapb.Store
	*storeStats
	pauseLeaderTransfer bool // not allow to be used as source or target of transfer leader
	slowStoreEvicted    bool // this store has been evicted as a slow store, should not transfer leader to it
	leaderCount         int
	regionCount         int
	leaderSize          int64
	regionSize          int64
	pendingPeerCount    int
	lastPersistTime     time.Time
	leaderWeight        float64
	regionWeight        float64
	limiter             map[storelimit.Type]*storelimit.StoreLimit
}

// NewStoreInfo creates StoreInfo with meta data.
func NewStoreInfo(store *metapb.Store, opts ...StoreCreateOption) *StoreInfo {
	storeInfo := &StoreInfo{
		meta:         store,
		storeStats:   newStoreStats(),
		leaderWeight: 1.0,
		regionWeight: 1.0,
		limiter:      make(map[storelimit.Type]*storelimit.StoreLimit),
	}
	for _, opt := range opts {
		opt(storeInfo)
	}
	return storeInfo
}

// Clone creates a copy of current StoreInfo.
func (s *StoreInfo) Clone(opts ...StoreCreateOption) *StoreInfo {
	meta := proto.Clone(s.meta).(*metapb.Store)
	store := &StoreInfo{
		meta:                meta,
		storeStats:          s.storeStats,
		pauseLeaderTransfer: s.pauseLeaderTransfer,
		slowStoreEvicted:    s.slowStoreEvicted,
		leaderCount:         s.leaderCount,
		regionCount:         s.regionCount,
		leaderSize:          s.leaderSize,
		regionSize:          s.regionSize,
		pendingPeerCount:    s.pendingPeerCount,
		lastPersistTime:     s.lastPersistTime,
		leaderWeight:        s.leaderWeight,
		regionWeight:        s.regionWeight,
		limiter:             s.limiter,
	}

	for _, opt := range opts {
		opt(store)
	}
	return store
}

// ShallowClone creates a copy of current StoreInfo, but not clone 'meta'.
func (s *StoreInfo) ShallowClone(opts ...StoreCreateOption) *StoreInfo {
	store := &StoreInfo{
		meta:                s.meta,
		storeStats:          s.storeStats,
		pauseLeaderTransfer: s.pauseLeaderTransfer,
		slowStoreEvicted:    s.slowStoreEvicted,
		leaderCount:         s.leaderCount,
		regionCount:         s.regionCount,
		leaderSize:          s.leaderSize,
		regionSize:          s.regionSize,
		pendingPeerCount:    s.pendingPeerCount,
		lastPersistTime:     s.lastPersistTime,
		leaderWeight:        s.leaderWeight,
		regionWeight:        s.regionWeight,
		limiter:             s.limiter,
	}

	for _, opt := range opts {
		opt(store)
	}
	return store
}

// AllowLeaderTransfer returns if the store is allowed to be selected
// as source or target of transfer leader.
func (s *StoreInfo) AllowLeaderTransfer() bool {
	return !s.pauseLeaderTransfer
}

// EvictedAsSlowStore returns if the store should be evicted as a slow store.
func (s *StoreInfo) EvictedAsSlowStore() bool {
	return s.slowStoreEvicted
}

// IsAvailable returns if the store bucket of limitation is available
func (s *StoreInfo) IsAvailable(limitType storelimit.Type) bool {
	s.mu.RLock()
	defer s.mu.RUnlock()
	if s.limiter != nil && s.limiter[limitType] != nil {
		return s.limiter[limitType].Available() >= storelimit.RegionInfluence[limitType]
	}
	return true
}

// IsUp checks if the store's state is Up.
func (s *StoreInfo) IsUp() bool {
	return s.GetState() == metapb.StoreState_Up
}

// IsOffline checks if the store's state is Offline.
func (s *StoreInfo) IsOffline() bool {
	return s.GetState() == metapb.StoreState_Offline
}

// IsTombstone checks if the store's state is Tombstone.
func (s *StoreInfo) IsTombstone() bool {
	return s.GetState() == metapb.StoreState_Tombstone
}

// GetSlowScore returns the slow score of the store.
func (s *StoreInfo) GetSlowScore() uint64 {
	s.mu.RLock()
	defer s.mu.RUnlock()
	return s.rawStats.GetSlowScore()
}

// IsSlow checks if the slow score reaches the threshold.
func (s *StoreInfo) IsSlow() bool {
	s.mu.RLock()
	defer s.mu.RUnlock()
	return s.rawStats.GetSlowScore() >= slowStoreThreshold
}

// IsPhysicallyDestroyed checks if the store's physically destroyed.
func (s *StoreInfo) IsPhysicallyDestroyed() bool {
	return s.GetMeta().GetPhysicallyDestroyed()
}

// DownTime returns the time elapsed since last heartbeat.
func (s *StoreInfo) DownTime() time.Duration {
	return time.Since(s.GetLastHeartbeatTS())
}

// GetMeta returns the meta information of the store.
func (s *StoreInfo) GetMeta() *metapb.Store {
	return s.meta
}

// GetState returns the state of the store.
func (s *StoreInfo) GetState() metapb.StoreState {
	return s.meta.GetState()
}

// GetAddress returns the address of the store.
func (s *StoreInfo) GetAddress() string {
	return s.meta.GetAddress()
}

// GetVersion returns the version of the store.
func (s *StoreInfo) GetVersion() string {
	return s.meta.GetVersion()
}

// GetLabels returns the labels of the store.
func (s *StoreInfo) GetLabels() []*metapb.StoreLabel {
	return s.meta.GetLabels()
}

// GetID returns the ID of the store.
func (s *StoreInfo) GetID() uint64 {
	return s.meta.GetId()
}

// GetLeaderCount returns the leader count of the store.
func (s *StoreInfo) GetLeaderCount() int {
	return s.leaderCount
}

// GetRegionCount returns the Region count of the store.
func (s *StoreInfo) GetRegionCount() int {
	return s.regionCount
}

// GetLeaderSize returns the leader size of the store.
func (s *StoreInfo) GetLeaderSize() int64 {
	return s.leaderSize
}

// GetRegionSize returns the Region size of the store.
func (s *StoreInfo) GetRegionSize() int64 {
	return s.regionSize
}

// GetPendingPeerCount returns the pending peer count of the store.
func (s *StoreInfo) GetPendingPeerCount() int {
	return s.pendingPeerCount
}

// GetLeaderWeight returns the leader weight of the store.
func (s *StoreInfo) GetLeaderWeight() float64 {
	return s.leaderWeight
}

// GetRegionWeight returns the Region weight of the store.
func (s *StoreInfo) GetRegionWeight() float64 {
	return s.regionWeight
}

// GetLastHeartbeatTS returns the last heartbeat timestamp of the store.
func (s *StoreInfo) GetLastHeartbeatTS() time.Time {
	return time.Unix(0, s.meta.GetLastHeartbeat())
}

// NeedPersist returns if it needs to save to etcd.
func (s *StoreInfo) NeedPersist() bool {
	return s.GetLastHeartbeatTS().Sub(s.lastPersistTime) > storePersistInterval
}

// GetStoreLimit return the limit of a specific store.
func (s *StoreInfo) GetStoreLimit(limitType storelimit.Type) *storelimit.StoreLimit {
	s.mu.RLock()
	defer s.mu.RUnlock()
	return s.limiter[limitType]
}

const minWeight = 1e-6
const maxScore = 1024 * 1024 * 1024

// LeaderScore returns the store's leader score.
func (s *StoreInfo) LeaderScore(policy SchedulePolicy, delta int64) float64 {
	switch policy {
	case BySize:
		return float64(s.GetLeaderSize()+delta) / math.Max(s.GetLeaderWeight(), minWeight)
	case ByCount:
		return float64(int64(s.GetLeaderCount())+delta) / math.Max(s.GetLeaderWeight(), minWeight)
	default:
		return 0
	}
}

// RegionScore returns the store's region score.
// Deviation It is used to control the direction of the deviation considered
// when calculating the region score. It is set to -1 when it is the source
// store of balance, 1 when it is the target, and 0 in the rest of cases.
func (s *StoreInfo) RegionScore(version string, highSpaceRatio, lowSpaceRatio float64, delta int64) float64 {
	switch version {
	case "v2":
		return s.regionScoreV2(delta, lowSpaceRatio)
	case "v1":
		fallthrough
	default:
		return s.regionScoreV1(highSpaceRatio, lowSpaceRatio, delta)
	}
}

func (s *StoreInfo) regionScoreV1(highSpaceRatio, lowSpaceRatio float64, delta int64) float64 {
	var score float64
	var amplification float64
	available := float64(s.GetAvailable()) / mb
	used := float64(s.GetUsedSize()) / mb
	capacity := float64(s.GetCapacity()) / mb

	if s.GetRegionSize() == 0 || used == 0 {
		amplification = 1
	} else {
		// because of rocksdb compression, region size is larger than actual used size
		amplification = float64(s.GetRegionSize()) / used
	}

	// highSpaceBound is the lower bound of the high space stage.
	highSpaceBound := (1 - highSpaceRatio) * capacity
	// lowSpaceBound is the upper bound of the low space stage.
	lowSpaceBound := (1 - lowSpaceRatio) * capacity
	if available-float64(delta)/amplification >= highSpaceBound {
		score = float64(s.GetRegionSize() + delta)
	} else if available-float64(delta)/amplification <= lowSpaceBound {
		score = maxScore - (available - float64(delta)/amplification)
	} else {
		// to make the score function continuous, we use linear function y = k * x + b as transition period
		// from above we know that there are two points must on the function image
		// note that it is possible that other irrelative files occupy a lot of storage, so capacity == available + used + irrelative
		// and we regarded irrelative as a fixed value.
		// Then amp = size / used = size / (capacity - irrelative - available)
		//
		// When available == highSpaceBound,
		// we can conclude that size = (capacity - irrelative - highSpaceBound) * amp = (used + available - highSpaceBound) * amp
		// Similarly, when available == lowSpaceBound,
		// we can conclude that size = (capacity - irrelative - lowSpaceBound) * amp = (used + available - lowSpaceBound) * amp
		// These are the two fixed points' x-coordinates, and y-coordinates which can be easily obtained from the above two functions.
		x1, y1 := (used+available-highSpaceBound)*amplification, (used+available-highSpaceBound)*amplification
		x2, y2 := (used+available-lowSpaceBound)*amplification, maxScore-lowSpaceBound

		k := (y2 - y1) / (x2 - x1)
		b := y1 - k*x1
		score = k*float64(s.GetRegionSize()+delta) + b
	}

	return score / math.Max(s.GetRegionWeight(), minWeight)
}

func (s *StoreInfo) regionScoreV2(delta int64, lowSpaceRatio float64) float64 {
	A := float64(s.GetAvgAvailable()) / gb
	C := float64(s.GetCapacity()) / gb
	R := float64(s.GetRegionSize() + delta)
	if R < 0 {
		R = float64(s.GetRegionSize())
	}
	U := C - A
	if s.GetRegionSize() != 0 {
		U += U * (float64(delta)) / float64(s.GetRegionSize())
		if U < C && U > 0 {
			A = C - U
		}
	}
	var (
		K, M float64 = 1, 256 // Experience value to control the weight of the available influence on score
		F    float64 = 50     // Experience value to prevent some nodes from running out of disk space prematurely.
		B            = 1e7
	)
	F = math.Max(F, C*(1-lowSpaceRatio))
	var score float64
	if A >= C || C < 1 {
		score = R
	} else if A > F {
		// As the amount of data increases (available becomes smaller), the weight of region size on total score
		// increases. Ideally, all nodes converge at the position where remaining space is F (default 20GiB).
		score = (K + M*(math.Log(C)-math.Log(A-F+1))/(C-A+F-1)) * R
	} else {
		// When remaining space is less then F, the score is mainly determined by available space.
		// store's score will increase rapidly after it has few space. and it will reach similar score when they has no space
		score = (K+M*math.Log(C)/C)*R + B*(F-A)/F
	}
	return score / math.Max(s.GetRegionWeight(), minWeight)
}

// StorageSize returns store's used storage size reported from tikv.
func (s *StoreInfo) StorageSize() uint64 {
	return s.GetUsedSize()
}

// AvailableRatio is store's freeSpace/capacity.
func (s *StoreInfo) AvailableRatio() float64 {
	if s.GetCapacity() == 0 {
		return 0
	}
	return float64(s.GetAvailable()) / float64(s.GetCapacity())
}

// IsLowSpace checks if the store is lack of space. Not check if region count less
// than initialMaxRegionCounts and available space more than initialMinSpace
func (s *StoreInfo) IsLowSpace(lowSpaceRatio float64) bool {
	if s.GetStoreStats() == nil {
		return false
	}
	// issue #3444
	if s.regionCount < initialMaxRegionCounts && s.GetAvailable() > initialMinSpace {
		return false
	}
	return s.AvailableRatio() < 1-lowSpaceRatio
}

// ResourceCount returns count of leader/region in the store.
func (s *StoreInfo) ResourceCount(kind ResourceKind) uint64 {
	switch kind {
	case LeaderKind:
		return uint64(s.GetLeaderCount())
	case RegionKind:
		return uint64(s.GetRegionCount())
	default:
		return 0
	}
}

// ResourceSize returns size of leader/region in the store
func (s *StoreInfo) ResourceSize(kind ResourceKind) int64 {
	switch kind {
	case LeaderKind:
		return s.GetLeaderSize()
	case RegionKind:
		return s.GetRegionSize()
	default:
		return 0
	}
}

// ResourceWeight returns weight of leader/region in the score
func (s *StoreInfo) ResourceWeight(kind ResourceKind) float64 {
	switch kind {
	case LeaderKind:
		leaderWeight := s.GetLeaderWeight()
		if leaderWeight <= 0 {
			return minWeight
		}
		return leaderWeight
	case RegionKind:
		regionWeight := s.GetRegionWeight()
		if regionWeight <= 0 {
			return minWeight
		}
		return regionWeight
	default:
		return 0
	}
}

// GetStartTime returns the start timestamp.
func (s *StoreInfo) GetStartTime() time.Time {
	return time.Unix(s.meta.GetStartTimestamp(), 0)
}

// GetUptime returns the uptime.
func (s *StoreInfo) GetUptime() time.Duration {
	uptime := s.GetLastHeartbeatTS().Sub(s.GetStartTime())
	if uptime > 0 {
		return uptime
	}
	return 0
}

var (
	// If a store's last heartbeat is storeDisconnectDuration ago, the store will
	// be marked as disconnected state. The value should be greater than tikv's
	// store heartbeat interval (default 10s).
	storeDisconnectDuration = 20 * time.Second
	storeUnhealthyDuration  = 10 * time.Minute
)

// IsDisconnected checks if a store is disconnected, which means PD misses
// tikv's store heartbeat for a short time, maybe caused by process restart or
// temporary network failure.
func (s *StoreInfo) IsDisconnected() bool {
	return s.DownTime() > storeDisconnectDuration
}

// IsUnhealthy checks if a store is unhealthy.
func (s *StoreInfo) IsUnhealthy() bool {
	return s.DownTime() > storeUnhealthyDuration
}

// GetLabelValue returns a label's value (if exists).
func (s *StoreInfo) GetLabelValue(key string) string {
	for _, label := range s.GetLabels() {
		if strings.EqualFold(label.GetKey(), key) {
			return label.GetValue()
		}
	}
	return ""
}

// CompareLocation compares 2 stores' labels and returns at which level their
// locations are different. It returns -1 if they are at the same location.
func (s *StoreInfo) CompareLocation(other *StoreInfo, labels []string) int {
	for i, key := range labels {
		v1, v2 := s.GetLabelValue(key), other.GetLabelValue(key)
		// If label is not set, the store is considered at the same location
		// with any other store.
		if v1 != "" && v2 != "" && !strings.EqualFold(v1, v2) {
			return i
		}
	}
	return -1
}

const replicaBaseScore = 100

// DistinctScore returns the score that the other is distinct from the stores.
// A higher score means the other store is more different from the existed stores.
func DistinctScore(labels []string, stores []*StoreInfo, other *StoreInfo) float64 {
	var score float64
	for _, s := range stores {
		if s.GetID() == other.GetID() {
			continue
		}
		if index := s.CompareLocation(other, labels); index != -1 {
			score += math.Pow(replicaBaseScore, float64(len(labels)-index-1))
		}
	}
	return score
}

// MergeLabels merges the passed in labels with origins, overriding duplicated
// ones.
func (s *StoreInfo) MergeLabels(labels []*metapb.StoreLabel) []*metapb.StoreLabel {
	storeLabels := s.GetLabels()
L:
	for _, newLabel := range labels {
		for _, label := range storeLabels {
			if strings.EqualFold(label.Key, newLabel.Key) {
				label.Value = newLabel.Value
				continue L
			}
		}
		storeLabels = append(storeLabels, newLabel)
	}
	res := storeLabels[:0]
	for _, l := range storeLabels {
		if l.Value != "" {
			res = append(res, l)
		}
	}
	return res
}

// StoresInfo contains information about all stores.
type StoresInfo struct {
	stores map[uint64]*StoreInfo
}

// NewStoresInfo create a StoresInfo with map of storeID to StoreInfo
func NewStoresInfo() *StoresInfo {
	return &StoresInfo{
		stores: make(map[uint64]*StoreInfo),
	}
}

// GetStore returns a copy of the StoreInfo with the specified storeID.
func (s *StoresInfo) GetStore(storeID uint64) *StoreInfo {
	store, ok := s.stores[storeID]
	if !ok {
		return nil
	}
	return store
}

// SetStore sets a StoreInfo with storeID.
func (s *StoresInfo) SetStore(store *StoreInfo) {
	s.stores[store.GetID()] = store
}

// PauseLeaderTransfer pauses a StoreInfo with storeID.
func (s *StoresInfo) PauseLeaderTransfer(storeID uint64) error {
	store, ok := s.stores[storeID]
	if !ok {
		return errs.ErrStoreNotFound.FastGenByArgs(storeID)
	}
	if !store.AllowLeaderTransfer() {
		return errs.ErrPauseLeaderTransfer.FastGenByArgs(storeID)
	}
	s.stores[storeID] = store.Clone(PauseLeaderTransfer())
	return nil
}

// ResumeLeaderTransfer cleans a store's pause state. The store can be selected
// as source or target of TransferLeader again.
func (s *StoresInfo) ResumeLeaderTransfer(storeID uint64) {
	store, ok := s.stores[storeID]
	if !ok {
		log.Warn("try to clean a store's pause state, but it is not found. It may be cleanup",
			zap.Uint64("store-id", storeID))
		return
	}
	s.stores[storeID] = store.Clone(ResumeLeaderTransfer())
}

// SlowStoreEvicted marks a store as a slow store and prevents transferring
// leader to the store
func (s *StoresInfo) SlowStoreEvicted(storeID uint64) error {
	store, ok := s.stores[storeID]
	if !ok {
		return errs.ErrStoreNotFound.FastGenByArgs(storeID)
	}
	if store.EvictedAsSlowStore() {
		return errs.ErrSlowStoreEvicted.FastGenByArgs(storeID)
	}
	s.stores[storeID] = store.Clone(SlowStoreEvicted())
	return nil
}

// SlowStoreRecovered cleans the evicted state of a store.
func (s *StoresInfo) SlowStoreRecovered(storeID uint64) {
	store, ok := s.stores[storeID]
	if !ok {
		log.Warn("try to clean a store's evicted as a slow store state, but it is not found. It may be cleanup",
			zap.Uint64("store-id", storeID))
		return
	}
	s.stores[storeID] = store.Clone(SlowStoreRecovered())
}

// ResetStoreLimit resets the limit for a specific store.
func (s *StoresInfo) ResetStoreLimit(storeID uint64, limitType storelimit.Type, ratePerSec ...float64) {
	if store, ok := s.stores[storeID]; ok {
		s.stores[storeID] = store.Clone(ResetStoreLimit(limitType, ratePerSec...))
	}
}

// GetStores gets a complete set of StoreInfo.
func (s *StoresInfo) GetStores() []*StoreInfo {
	stores := make([]*StoreInfo, 0, len(s.stores))
	for _, store := range s.stores {
		stores = append(stores, store)
	}
	return stores
}

// GetMetaStores gets a complete set of metapb.Store.
func (s *StoresInfo) GetMetaStores() []*metapb.Store {
	stores := make([]*metapb.Store, 0, len(s.stores))
	for _, store := range s.stores {
		stores = append(stores, store.GetMeta())
	}
	return stores
}

// DeleteStore deletes tombstone record form store
func (s *StoresInfo) DeleteStore(store *StoreInfo) {
	delete(s.stores, store.GetID())
}

// GetStoreCount returns the total count of storeInfo.
func (s *StoresInfo) GetStoreCount() int {
	return len(s.stores)
}

// SetLeaderCount sets the leader count to a storeInfo.
func (s *StoresInfo) SetLeaderCount(storeID uint64, leaderCount int) {
	if store, ok := s.stores[storeID]; ok {
		s.stores[storeID] = store.Clone(SetLeaderCount(leaderCount))
	}
}

// SetRegionCount sets the region count to a storeInfo.
func (s *StoresInfo) SetRegionCount(storeID uint64, regionCount int) {
	if store, ok := s.stores[storeID]; ok {
		s.stores[storeID] = store.Clone(SetRegionCount(regionCount))
	}
}

// SetPendingPeerCount sets the pending count to a storeInfo.
func (s *StoresInfo) SetPendingPeerCount(storeID uint64, pendingPeerCount int) {
	if store, ok := s.stores[storeID]; ok {
		s.stores[storeID] = store.Clone(SetPendingPeerCount(pendingPeerCount))
	}
}

// SetLeaderSize sets the leader size to a storeInfo.
func (s *StoresInfo) SetLeaderSize(storeID uint64, leaderSize int64) {
	if store, ok := s.stores[storeID]; ok {
		s.stores[storeID] = store.Clone(SetLeaderSize(leaderSize))
	}
}

// SetRegionSize sets the region size to a storeInfo.
func (s *StoresInfo) SetRegionSize(storeID uint64, regionSize int64) {
	if store, ok := s.stores[storeID]; ok {
		s.stores[storeID] = store.Clone(SetRegionSize(regionSize))
	}
}

// UpdateStoreStatus updates the information of the store.
func (s *StoresInfo) UpdateStoreStatus(storeID uint64, leaderCount int, regionCount int, pendingPeerCount int, leaderSize int64, regionSize int64) {
	if store, ok := s.stores[storeID]; ok {
		newStore := store.ShallowClone(SetLeaderCount(leaderCount),
			SetRegionCount(regionCount),
			SetPendingPeerCount(pendingPeerCount),
			SetLeaderSize(leaderSize),
			SetRegionSize(regionSize))
		s.SetStore(newStore)
	}
}

// IsStoreContainLabel return if the store contains the given label.
func IsStoreContainLabel(store *metapb.Store, key, value string) bool {
	for _, l := range store.GetLabels() {
		if l.GetKey() == key && l.GetValue() == value {
			return true
		}
	}
	return false
}