Reporting date for Julie Smith, who pleaded guilty to embezzling more than $90,000 in May, was delayed five months due to health problems.
SKOWHEGAN — A former clerk at the Somerset County District Attorney's Office began serving her prison sentence this week following convictions in May on charges that she embezzled more than $90,000 in supervision and restitution fees paid to the office and for tampering with public records to cover up her crimes.
Julie A. Smith, 59, of Madison, surrendered to authorities at the Somerset County Jail in East Madison Monday morning. By Tuesday morning she was on her way to the Maine State Prison at Windham to serve 16 months behind bars.
Smith, whose husband Mike Smith is the county emergency management director and director of communications, had been sentenced in August, but health concerns pushed back the date that she would begin serving her prison time.
Contacted Wednesday by phone, Mike Smith declined to comment on the case and whether he and Julie are still married.
Assistant Attorney General Leanne Robbin, who prosecuted the case, said via email Wednesday that "health issues" and additional tests on Smith delayed the start of her prison sentence.
The Smith embezzlement, prosecutors said, burdened crime victims, eroded trust and sparked a new payment policy at the district attorney's office.
Maeghan Maloney, district attorney for Somerset and Kennebec counties, said because her office was the victim of the embezzlement she had to turn the prosecution of the case over to the attorney general's office.
"My office was the victim in the case so I was not allowed to prosecute it," Maloney said Wednesday. "As the victim, I spoke at the sentencing hearing and submitted a letter to the court. I have also opposed every stay of her sentence. It is my understanding that the defense has requested stays due to health concerns.
The theft of $91,345 in fees paid to the district attorney's office occurred from April 2010 to Oct. 9, 2014.
Smith pleaded guilty to a charge of Class B felony theft and was sentenced in Somerset County Superior Court to three years in prison with all but 16 months suspended. She was also sentenced to six months concurrently for a misdemeanor tampering with public records charge and must pay $60,000 in restitution.
Smith's remorse, combined with her lack of a criminal record, her willingness to pay back the money she took and medical problems that might be compromised by her time in prison all factored into the sentence, according to Somerset County Superior Court Justice Robert Mullen.
Mullen, noting that Smith has continuing medical problems, agreed to postpone sentencing until she and her doctors determined what her treatment will be. Her medical condition was not revealed.
Smith's lawyer, Walter "Woody" Hanstein of Farmington said in May that Smith had done the right thing by pleading guilty to the charges.
Hanstein would not elaborate on his client's medical problems in May or when contacted on Wednesday.
Smith pleaded not guilty to the charges following her indictment by a Somerset County Grand jury in September 2015. Smith, who had worked at the district attorney's office since 2009, resigned after the investigation began in October 2014.
Officials began investigating following the apparent loss of $300 in supervision fees in October 2014. An audit determined that receipt books were missing. Smith did not follow routine procedure and paper-clip the money together to prevent the bills getting mixed with other money and did not place a sticky note on the money indicating who paid and how much, authorities said.
The investigation into the missing money in part led Maloney to tell employees to stop taking cash and personal check payments at her office. The district attorney's offices in the two counties now accept only cashier's checks and money orders.
A search warrant carried out by state police as part of the criminal investigation included the Smiths' home on Blackwell Hill Road in Madison, three motor vehicles registered to Julie and Mike Smith, Smith's cellphone and any bags, purses or containers in Smith's possession.


text:
What are melamine sponges, and why do they clean so well?
Melamine sponges are one of recent history's more useful accidental inventions. A material originally designed for insulation and soundproofing just happened to possess incredible cleaning properties, and now, we can use it to detail clean our homes for just a few cents per sponge.
Melamine sponges might look fairly dense and solid, but they're actually air-filled laticeworks of a material called formaldehyde-melamine-sodium bisulfite copolymer (don't worry, the formaldehyde is neutralized during the manufacturing process, according to Wired).
Instead of relying on chemical cleaning agents to loosen stains, melamine sponges essentially act as an extremely fine sandpaper that can scrape away unwanted scuffs, with no soap required. The individual strands of the material are extremely small, which allows them to get into nearly microscopic gaps in almost any surface. But they're also very hard and abrasive, which allows them to remove stains and scuffs from the underlying material.
Melamine foam up close. Photo via BASF.
A side effect of the the material's hardness is brittleness, which is why melamine sponges can break up and leave behind a residue after some vigorous scrubbing. A quick wipe with a wet towel is usually enough to eliminate the residue, but the fact remains that if you're scrubbing hard, you can tear through melamine sponges very quickly.
Where To Use Them (And Where Not To)
With just a little bit of water, melamine sponges are great for erasing scuffs from painted walls, dirt from textured shoe soles, and grease from around your kitchen. I've used them to clean marks off of walls that I was positive I'd eventually have to paint over.
But melamine's abrasive properties mean you'll want to find another way to clean shiny stainless steel fixtures, polished marble countertops, nonstick pans, or any other material that will show fine scratches. When in doubt, always test on an out-of-sight area to make sure the sponge won't damage the surface you're trying to clean.
You're probably familiar with the most popular brand of melamine sponge, the Mr. Clean Magic Eraser, which usually sells for about $1 per sponge.
But you don't need to pay $1 for a sponge that will likely dissintegrate after just a couple of uses, because the same melamine-based material is used in dozens of inexpensive third party sponges, which can be bought in bulk online for just pennies per sponge.
Seriously, here's 48 of them for $10. Or 70 for under $14. Or 20 extra-thick sponges for $9, if you don't want to be constantly reaching for a new one. I've bought several different no-name versions of these on Amazon, and I've always found them to perform basically identically to Magic Erasers, as has Apartment Therapy.
That said, Mr. Clean has innovated on the original sponge concept with Magic Eraser products designed for cleaning toilets without dipping your arm into the water, or mopping floors without spending time on your knees.
But even if you think a melamine toilet wand is overkill, it's not a bad idea to keep a few inexpensive melamine sponges at the ready for when life throws you a stubborn mess.
All featured products and deals are selected independently and objectively by the author. Inboxlab may receive a share of sales via affiliate links in content.
Why you should replace your kitchen sponges with silicone scrubbers

redpajama_set_name: RedPajamaCommonCrawl


Barely three days after distributing instructional materials to government-owned primary schools, Governor Kayode Fayemi has extended juicier largesse to public secondary schools.
Fayemi who was represented at the ceremony by his Deputy, Otunba Bisi Egbeyemi, said the distribution of the materials was the first phase of his administration's intervention programme in public schools.
Items distributed include 2000 chairs and lockers, 550 students laptops, 9,792 copies of science text books and 1,100 sets of drawing boards and T-square.
The state's chief executive disclosed that his administration would name four new secondary schools to be established in Ado Ekiti, the state capital, after eminent Ekiti indigenes as the schools are expected to take off in September 2019 when the new academic session resumes.
He said his administration gave approval to the four additional secondary schools in Ado Ekiti metropolis to tackle the problem of congestion of students in classrooms of public secondary schools in the state capital.
Fayemi who disclosed that his government increased the budgetary allocation to Education in 2019 Budget to keep pace with the UNESCO recommendation of 26% of the total budget, said the increase would enable government provide basic educational needs for schools as captured in his knowledge economy agenda.
Identifying education as key to breaking the throes of generational poverty, Fayemi assured that he is poised to ensure a free and quality education for all children of school-age.
Acknowledging the receipt of world bank grant of $ 3 million for the upgrading of technical colleges in the state, Fayemi said the state government was negotiating with an international school management outfit to manage the Gifted Schools at Isan, Afao and Ilawe Ekiti.
The governor added that his administration would ensure the full implementation of the pre-primary component of education curriculum with the prime purpose of leading the country in producing quality manpower for the educational system.
Fayemi who stressed that improving the standard of education in the state was a collective responsiblity, said; "I wish to thank all our education stakeholders for the onerous assignment of providing qualitative education with dignity and honour to Ekiti students.
"This is a collective responsibility that posterity has bestowed on government, teachers and parents, and we are living up to the bidding.
Earlier in his address, the Permanent Secretary, Ministry of Education, Mr Ayo Ajayi explained that the distribution of the learning materials to public secondary schools in the State would further enhance teaching and learning outcomes in the schools across the State.
Mr Ajayi said the support mechanism received in the sector from the Kayode Fayemi led administration would provide a solid foundation for an excellent performance of students in both external and internal examinations.


text:
no3rosetree
All personal information collected through the booking process is securely held and will be used only for the purpose intended, eg to answer an enquiry or to process a holiday booking. Personal information will not be retained for longer than is necessary to satisfy the enquiry or the administration necessary for the booking process, after which it is deleted. Personal information is never shared with third parties.
You accept that data gathered during the course of this booking may be held on a computer but that any personal information is subject to the provisions of Global Data Protection Regulation.
about the cottage
This privacy policy is for this website www.no3rosetree.co.uk and served by no3rosetree and governs the privacy of its users who choose to use it.
The policy sets out the different areas where user privacy is concerned and outlines the obligations & requirements of the users, the website and website owners. Furthermore, the way this website processes, stores and protects user data and information will also be detailed within this policy.
This website and its owners take a proactive approach to user privacy and ensure the necessary steps are taken to protect the privacy of its users throughout their visiting experience. This website complies with all UK national laws and requirements for user privacy.
This website uses cookies to better the users experience while visiting the website.
The cookies in use to deliver Google Analytics service are described below.
__utma, __utmb, __utmc, __utmv, __utmz
Google Analytics – These cookies are used to store information, such as what time your current visit occurred, whether you have been to the site before, and what site referred you to the web page. These cookies contain no personally identifiable information but they will use your computer's IP address to know from where in the world you are accessing the Internet.
Google stores the information collected by these cookies on servers in the United States. Google may transfer this information to third-parties where required to do so by law, or where such third parties process the information on Google's behalf.
In order to provide website visitors with more choice on how data is collected by Google Analytics, Google has developed the Google Analytics Opt-out Browser Add-on. The add-on communicates with the Google Analytics JavaScript (ga.js) to stop data being sent to Google Analytics. The Google Analytics Opt-out Browser Add-on does not affect usage of the website in any other way. A link to further information on the Google Analytics Opt-out Browser Add-on is provided below for your convenience.
http://tools.google.com/dlpage/gaoptout?hl=None
For more information on the usage of cookies by Google Analytics please see the Google website. A link to the privacy advice for this product is provided below for your convenience.
http://www.google.com/analytics/learn/privacy.html
If you would like to restrict the use of cookies you can control this in your Internet browser. Links to advice on how to do this for the most popular Internet browsers are provided below for convenience and will be available for the Internet browser of your choice either online or via the software help (normally available via key F1).
http://windows.microsoft.com/en-GB/windows7/Block-enable-or-allow-cookies
https://support.google.com/chrome/bin/answer.py?hl=en-GB&answer=95647&p=cpn_cookies
http://support.mozilla.org/en-US/kb/Blocking%20cookies
http://docs.info.apple.com/article.html?artnum=32467
Contact & Communication
Users contacting this website and/or its owners do so at their own discretion and provide any such personal details requested at their own risk. Your personal information is kept private and stored securely until a time it is no longer required or has no use, as detailed in the Data Protection Act 1998. Every effort has been made to ensure a safe and secure form to email submission process but advise users using such form to email processes that they do so at their own risk.
This website and its owners use any information submitted to provide you with further information about the products/services they offer or to assist you in answering any questions or queries you may have submitted. This includes using your details to subscribe you to any email newsletter program the website operates but only if this was made clear to you and your express permission was granted when submitting any form to email process. Or whereby you the consumer have previously purchased from or enquired about purchasing from the company a product or service that the email newsletter relates to. This is by no means an entire list of your user rights in regard to receiving email marketing material. Your details are not passed on to any third parties.
I love this house! Super comfortable and super stylish, two of my favourite things! Lovely area and lots to do both within walking distance and further afield.
Debs and Richard | Warwickshire | April 2018
need to discuss your stay?
have a date in mind?
Copyright 2018 no3rosetree. All rights reserved.


text:
Die Krings Fruchtsaft GmbH ist ein deutscher Fruchtsaftgetränkehersteller mit Sitz in Mönchengladbach. Das Unternehmen gehört seit 2000 der niederländischen Refresco-Gruppe. Der Betrieb produziert hauptsächlich Eigen- und Handelsmarken.

Geschichte
Im Jahre 1856 errichtet der landwirtschaftlich orientierte Jakob Peter Krings eine Krautpressanlage in Herrath am Niederrhein. Nach ihm übernahmen seine Söhne Wilhelm und Werner Krings das Unternehmen. 1954 kam es zur ersten saisonalen Lohnmosterei und Abfüllung des Unternehmens und 1963 zum Aufbau der ersten automatischen Fülllinie. 1965 wurde die Marketing-Kooperation Arbeitskreis Westfrucht mitbegründet. Zwei Jahre später kam es zur Mitbegründung der DEFRUC. (Deutsche Fruchtsaft Kooperation). 1973 wurde dann die Junita-Kooperation gegründet. Im selben Jahr, als viele Handelszentralen zusammenkamen, konzentrierte man sich hauptsächlich auf Absatzerfolge in Nordrhein-Westfalen, Belgien, den Niederlanden und Luxemburg. Im Jahre 2000 gliederte sich Krings in die Refresco-Gruppe aus den Niederlanden ein, die auch in anderen europäischen Standorten existiert. Insgesamt sind es 18. Im Jahre 2001 legte Wilhelm Krings sein Amt als Geschäftsführer nieder.

Weblinks
 Refresco: Geschichte

Belege

Getränkehersteller
Obstverarbeitendes Unternehmen
Produzierendes Unternehmen (Mönchengladbach)
Lebensmittelhersteller (Nordrhein-Westfalen)
Gegründet 1954

redpajama_set_name: RedPajamaWikipedia


text:
Obama White House: We're Not Going to Tell Where We're Going to House Illegal Immigrants
Most transparent presidency ever…
White House press secretary Josh Earnest told reporters today the Obama administration will not disclose where they are housing the tens of thousands of illegal immigrant children pouring into the United States.
However, we do know that several groups have been given millions of dollars to house illegal immigrants.
Breitbart Texas
The Obama administration gifted the Baptist Child & Family Services (BCFS) $190,707,505 this month to build offices in six cities and four states to house illegal children. This was after he met with the group last week in Texas.
The new offices will be located in New York, NY; Miami, FL; Houston, TX; Dallas, TX; Sacramento-area, CA; and Los Angeles-area, CA, will serve as regional hubs for BCFS' new family support and evaluation programs.
Baptist Child & Family Services (BCFS) is expanding nationwide.
The Daily Caller reported:
The White House won't reveal where it is housing thousands of Central American juvenile migrants because their privacy rights trump Americans' right to know what's happening in their neighborhoods, press secretary Josh Earnest declared July 16.
"The public does have a right to know what's happening… [but] at the same time, there are privacy rights that are included in the law that this administration is committed to enforcing and following," Earnest told Ed Henry, Fox News' White House correspondent.
"We are not surprised in the least to see the Obama administration imitate the smugglers," William Gheen, founder of Americans for Legal Immigration PAC, told The Daily Caller. "This is how smuggling operations work, this is what the smuggler-in-chief wants — secret planes and secret buses full of illegal immigrants."
GOP governors and legislators are also highlighting the administration's secrecy. "They don't want the public to know what is really going on," Nebraska Republican Rep. Lee Terry told Fox News.


text:
Manuel José García es una estación ferroviaria ubicada en el Partido de Mercedes, Provincia de Buenos Aires, Argentina.

A diferencia de la mayoría de las estaciones ferroviarias de la provincia, nunca se formó un pueblo en torno de esta estación.

Servicios
La estación corresponde al Ferrocarril Domingo Faustino Sarmiento de la red ferroviaria argentina y se encuentra a 109 km al oeste de la estación Once.

Desde agosto de 2015 no presta servicios de pasajeros. El servicio de Trenes Argentinos Operaciones entre Once y Bragado no cuenta con parada en esta estación.

Referencias

García

M. J. García
M. J. García
Partido de Mercedes


GE Healthcare has introduced two new high performance affinity chromatography media, Dextrin Sepharose™ High Performance and StrepTactin™ Sepharose High Performance.
The small, evenly sized 34 µm Sepharose High Performance beads ensure that proteins elute in narrow peaks, thus minimizing the need for further concentration steps.
According to GE Healthcare, the chromatography media also enable purification under physiological conditions and mild elution, which means that the activity of the target protein is preserved.
Dextrin Sepharose High Performance has been designed for the purification of proteins tagged with maltose binding protein (MBP), and StrepTactin Sepharose High Performance for Strep-tag™ II fusion proteins.
Both media are available in prepacked 1 and 5 ml MBPTrap™ HP and StrepTrap™ HP columns for reliable purification.
The new media are also easy to pack in and are compatible with commonly used aqueous buffers and easily regenerated using 0.5 M NaOH.
Dextrin Sepharose High Performance is available in 25 and 100 ml lab packs, and StrepTactin Sepharose High Performance is available in 10 and 50 ml lab packs.


Semiconductors play a key role in clean energy by enabling clean, renewable energy sources and improving energy efficiency. Semiconductor materials are the basis for solar electric energy systems. Semiconductor devices are also used to condition power from solar arrays and wind turbines so the energy can be used by electric equipment and fed onto the electric grid. Semiconductors are playing an increasingly important role in making the electric grid more intelligent through the use of smart meters, sensors, wireless and wire line communications, and control systems. This intelligence enables the electric utilities to more easily detect faults, manage the demand for power when capacity is constrained or costly, and integrate renewable and distributed sources of power into the grid. This primer provides a background for how semiconductors are used to enable clean energy in different sectors of the economy.


Revolutionize Your Real Estate Marketing!
Our Tools are designed to make you look like a TOTAL ROCK STAR!!!
We respect your privacy and we will not sell or distribute your private information. Continuation after free trial period requires signed acknowledgment that offer complies with RESPA regulations.
Check out what this can do for your business!
When You Sign Up, You'll Also Receive a Free Bonus: "eMarketing Guide"
Exciting Changes in Social Media Marketing, Virtual "Cloud" Technology Tools & more!
Plus, we've harnessed the power of a system wide network of over a Million Listings!
"I wanted to thank you for including me in this service. The eproperty site has become my number one advertising medium.
I use the "text for information" on my signs, I use the craigslist.com advertising every week. I use the site to print out flyers for inside my listings. And I could go on and on.
The best part has been the consumer response. I have received "text for info" from my signs, but the number one area has been the activity from consumers to my craigslist ads. I have taken a couple new listings just from advertising my other listings.
This really is the only way to market your properties!"
"Hello, I have to say that I have never seen a system so powerful in so many ways and so ahead of Real Estate marketing.
It has allowed me to keep the listings I have, attract new ones just by showing the listing presentation and also attract new buyers being I am on more listings and the call capture by text is unreal.
Your Sellers will LOVE that you SHOWCASE only THEIR home!
The 1-800 Call Capture System for the Text Generation!
Top quality High Definition Presentations - Why pay more?
Clients today want LOTS OF PICTURES! Give them HD Quality!
Use one click "Pin It" Buttons in the system to post!
You can even get notifications to your smart phone thru Google Chat!
Sell more, List more, Earn more! Get EXCITED Again!
What will YOU do with the extra income you'll earn??
Headed to a Listing Appointment?
GET THAT CONTRACT & SPEED UP YOUR SALE!
Equal Housing Opportunity Lender. Land/Home Financial Services, Inc. is a mortgage finance company and does not represent parties to Real Estate transactions or operate as a Real Estate company. The eMarketing guide and single property site system is a service of a third party vendor, is offered as a convenience service only, and should not be construed an endorsement of any particular company. The accuracy of all information, regardless of source, is not guaranteed and should be personally verified through personal inspection by and/or with the appropriate professionals. Land/Home makes no guarantee or promises on success from the use of this guide. Use of this guide is not to be construed as a commitment to lend. Land/Home Financial Services, Inc. Is an equal housing opportunity lender. Land/Home Financial Services, Inc. only conducts business in the states it is licensed in. Washington Consumer Lending License CL #89331.


I have had an adopted rubber plant – I believe it is a Ficus Elastica for several years. It has a persistent case of scale. I have tried the following: wipe leaves regularly with rubbing alcohol, wipe with witch hazel, wipe with soapy water. mist leaves with all of the above. Currently I am misting leaves daily with soapy water (currently using a laundry soap called Linda Laundry soap.) To no avail!!! I still find brown and white scale on the leaves and sometimes on stems. This has been going on for years!
Next, I am considering repotting the plant. It is still in the same pot and soil in which I found it. Maybe it is undernourished? Maybe the scale lives in the soil? maybe it needs a better pot? It came in a pot that is glazed and maybe the soil is not aerating enough?
the plant is next to a large window – 8 ft x 12 ft in my live/work art studio. I have not isolated it from my other plants, mostly cacti of various sorts..But they do not show signs of infection. It does not receive direct sunlight but constant day light. The winter heat in my studio is erratic and dry. I run a humidifier. I have recently purchased a moisture monitor to make sure I am not over/underwatering it. but i find the monitor gives different reading depending on where I poke it in the soil. I fertilize it occasionally. I water it infrequently. Is there any hope? I am grateful for your expert advice!
Rubber plants (Ficus elastica) are most commonly grown as houseplants.
They may be attacked by a variety of bugs. To determine what should be done to kill them, you need to identify the bugs. Proper care of the plant will reduce the infestation severity and help the plant survive with little or no permanent damage. Rubber plant houseplants should be planted in a potting soil that drains quickly. The soil should dry slightly between waterings.
Scale, or armoured and soft scale bugs are tiny insects that attach themselves to the stems or leaves of a rubber plant and remain in the same spot throughout their lives, feeding on the plant juices. Young scales or crawlers that have not attached themselves yet look like tiny yellow or orange spots. Armored scales do not secrete honeydew but soft scales do. They are commonly light tan but this varies depending on the species and life stage. Severe infestations can cause plant leaves to wilt, yellow and fall from the plant. If there is honeydew present it should be washed off.
Scale insects are difficult to control because the waxy or cottony covering serves as a protective barrier to traditional contact insecticides.
To rid your plants of scale, you may wish to remove them physically with your fingernail or some tweezers. Touching them first with rubbing alcohol on a cotton swab may help to loosen them but you should avoid covering the plant itself with alcohol.
The following website provides quite a lot of good information on scale and its management.
You may find this site helpful as well.
Good luck with you rubber plant.


text:
From Batman to Moron: 10 Airport Names We Love
672.3k shares
(Photo: Plane Taking Off at Airport via Shutterstock)
Christine Sarkis
There's a 95 percent chance Senior Editor Christine Sarkis is thinking about travel right now. Follow her on Instagram @postcartography and Twitter @ChristineSarkis.
Christine Sarkis is an SATW-award-winning journalist and executive editor at SmarterTravel. Her stories have also appeared on USA Today, Conde Nast Traveler, Huffington Post, and Business Insider. Her advice has been featured in dozens of print and online publications including The New York Times, Conde Nast Traveler, and People magazine. She has also shared travel tips on television and radio shows including Good Morning America, Marketplace, and Here & Now. Her work has been published in the anthologies Spain from a Backpack and The Best Women's Travel Writing 2008. She is currently working on a travel memoir.
The Handy Item I Always Pack: The Trtl Pillow. It's easy to pack and comfortable, and makes it so I can actually sleep on flights.
Ultimate Bucket List Experience: Seeing the Aurora Borealis from the comfort of somewhere warm, like a glass igloo or hot spring.
Travel Motto: Curiosity is an amazing compass.
Aisle, Window, or Middle Seat: Aisle all the way.
Email Christine Sarkis at editor@smartertravel.com.
See recent posts by Christine Sarkis
christine.sarkis@smartertravel.com
E.M. Forster once called train stations "our gates to the glorious and the unknown." We feel the same way about airports. And what better place to start a grand adventure than at an airport with a really memorable name? From whimsical to silly to classic to futuristic, here are 10 of our favorite airport names around the world.
(Photo: Phoenix Sky Harbor via Shutterstock)
View as one page
Phoenix Sky Harbor International Airport, Arizona
Not many major American airports have exciting names, so Phoenix's Sky Harbor really stands out as one that dares to dream. The phrase "Sky Harbor" beckons the eye upward, promising a future that hasn't yet arrived, one full of hovercrafts and boarding gates that levitate. Sure, the reality is nowhere near as interesting, but we applaud the effort all the same.
(Photo: Wikimedia Commons via CC Attribution/Share Alike)
Robin Hood Airport, England
Swashbuckling adventures await at Robin Hood Airport near Sheffield, England. You'll still have to check all swords and any loot pouches that won't fit in the overhead bins (this is an airport, after all), but any merry band of travelers could do much worse than beginning a memorable adventure at an airport called Robin Hood.
Batman Airport, Turkey
Even billionaire superheroes have to fly commercial every once in a while. Lucky for them (and for legions of fans around the world), there's Batman Airport, which serves the city of Batman in Turkey, named for its proximity to the river of the same name. Cue the theme music.
(Photo: Leonardo da Vinci-Fiumicino Airport via Shutterstock)
Leonardo da Vinci Airport, Italy
Sure, flight technology has come a long way since da Vinci's sketching days, but naming an airport after the Italian artist and visionary still seems perfect to us. The Alitalia hub, located just outside Rome, is also known as Fiumicino Airport, but why would you ever call it that when you could call it Leonardo da Vinci instead?
(Photo: Torres21 via flickr/CC Attribution/Share Alike)
Eek Airport, Alaska
Here's what we like about the name of this small airport in the wilds of Alaska: It's an exclamation, and a surprisingly dainty one at that, given that you're as likely to see a bear as a mouse in this part of the world. Eek doesn't see a ton of visitors, but area residents keep things humming. They averaged an amazing 40 flights per person in 2009 (for comparison, a more typical average for U.S. airports is less than one flight per resident per year).
(Photo: Wikimedia Commons via CC Attribution)
Liverpool John Lennon Airport, England
Liverpool's John Lennon Airport doesn't have to look far for its tagline: "Above us only sky." Not only does the name up the airport's cool factor, it also seems entirely appropriate. After all, John Lennon did a lot of actual flying to tour the world with the Beatles and later on his own, and the man was also pretty dedicated to letting his mind fly free … psychedelically.
(Photo: Chika via flickr/CC Attribution)
Flamingo Airport, Bonaire
You know Bonaire has committed to the name of its airport when you see the bright pink of its buildings. This is one pink Flamingo Airport. Best of all, with its skinny base, round top, and pink coat of paint, the control tower seems to loom above the rest of the airport like a noble guardian flamingo.
Moron Airport, Mongolia
Though the name may suggest otherwise, Moron Airport is not where the airline industry transfers inept TSA agents and inattentive cargo loaders. Instead, it's the airport serving the city of Moron, a Mongolian provincial capital. In any case, for English speakers and frequent travelers, there's a certain poetic justice to the name, so it earns a place in our hearts.
(Photo: Wikipedia)
Albuquerque International Sunport, New Mexico
Most major cities have an airport, but very few have a Sunport. And with an average of 310 sunny days each year, Albuquerque's airport offers truth in advertising. Just think of the possibilities if other cities were willing to follow its example: Honolulu International would be renamed Sunburnport, Sea-Tac would call itself Rainport, and LAX would work diligently to earn its Smogport moniker.
Pickle Lake Airport, Canada
Some of the best airport names are based on otherwise obscure landmarks. One such airport is Pickle Lake in Canada. You can get some sense of just how off the beaten path the nearby town of Pickle Lake is by its slogan, "The Last Frontier." At least there are pickles at the end of the road.
Zip Through America's Fastest Airports
10 Must-See Mythical Places
Hottest New Planes in the Sky
Like this story? Join the 1 million other travelers who read our free Deal Alert newsletter. It's full of our best tips, trip ideas, and travel deals. Subscribe here today!


Pictorial journey around birthplace of Admiral Horatio Nelson.
CU sign post pointing to King's Lynn. Exterior views of the South Gate to the town. CU date plaque '1520'.
Exterior shots of St. Margaret's Church. Views around the ruins of Castle Rising.
CU sign post to Sandringham. Shots of the exterior gates to the Royal Estate.
CU sign post to Peddars Way. Shots of man riding horse along country road. Exterior shots of old Norman Church. More shots of country roads.
CU sign post to Burnham Thorpe - Nelson's Birthplace. CU pub sign for the 'Lord Nelson' public house. Exterior views of the Inn.
LS of Burnham Thorpe Church. Exterior views of the house where Nelson was born. Various shots of the Church where Nelson was baptised. Fade to shot of HMS Victory. Fade to local countryside.
A thin time for the bookmakers as the favourites come home at the annual steeplechasing in Punchestown.
Housewives demonstrate for food, investigation into Colorado Beetle, & the Royal Tournament.


The Court of Appeal has upheld a personal injury solicitor professional negligence claim after finding that the firm concerned made no effort to ensure that its client was compensated for loss of earnings or loss of services in his industrial illness claim.
Those present heard that the Yorkshire-based firm at the heart of the personal injury solicitor professional negligence claim was instructed to help a former miner seek damages for Vibration White Finger (VWF) caused by the use of excessively vibrating tools.
However, the judge hearing the case at Leeds County Court ruled that the firm failed to uphold several of its duties and instead offered "commoditised" advice that failed to take account of the client's specific needs by simply offering questionnaires and standardised letters. The firm tried to defend itself, arguing that financial constraints made it inevitable that all claims had to be commoditised to some extent.
Despite this, Lord Justice Tomlinson said that the personal injury solicitor firm could have taken more steps to establish the precise and full details of the man's claim.
"The solicitors were dealing with a client who could fairly be regarded as unsophisticated in the relevant field," said the judge, in a ruling made last month.
If you believe that the negligent actions of a personal injury solicitor have caused your claim for compensation to be undersettled, click here for more information from London and Brighton based professional negligence lawyers Healys LLP.


In the aftermath of the French and Indian War, Britain needed a new imperial design, but the situation in America was anything but favorable to change. Long accustomed to a large measure of independence, the colonies were demanding more, not less, freedom, particularly now that the French menace had been eliminated. To put a new system into effect, and to tighten control, Parliament had to contend with colonists trained in self-government and impatient with interference.
One of the first things that British attempted was the organization of the interior. The conquest of Canada and of the Ohio Valley necessitated policies that would not alienate the French and Indian inhabitants. But here the Crown came into conflict with the interests of the colonies. Fast increasing in population, and needing more land for settlement, various colonies claimed the right to extend their boundaries as far west as the Mississippi River.
The British government, fearing that settlers migrating into the new lands would provoke a series of Indian wars, believed that the lands should be opened to colonists on a more gradual basis. Restricting movement was also a way of ensuring royal control over existing settlements before allowing the formation of new ones. The Royal Proclamation of 1763 reserved all the western territory between the Alleghenies, Florida, the Mississippi River and Quebec for use by Native Americans. Thus the Crown attempted to sweep away every western land claim of the 13 colonies and to stop westward expansion. Though never effectively enforced, this measure, in the eyes of the colonists, constituted a high-handed disregard of their most elementary right to occupy and settle western lands.
More serious in its repercussions was the new financial policy of the British government, which needed more money to support its growing empire. Unless the taxpayer in England was to supply all money for the colonies' defense, revenues would have to be extracted from the colonists through a stronger central administration, which would come at the expense of colonial self-government.


HY Architects master planned and designed this 600-student elementary school replacement campus.
Special attention was placed on integration with the surrounding neighborhood. The new multipurpose building/soccer field are designed as joint-use facilities. Existing structures/portables are replaced by a new classroom building. The project also includes a new administrative space, library, pre-school/kindergarten facilities/play yard, dedicated drop-off/parking zones, outdoor play areas and full utility upgrades.
Construction was phased to keep the campus operational. This project is designed according to CHPS guidelines.


I've had a go at creating a character sheet form using Adobe InDesign CS3 and Acrobat 8. At this stage it is a simple matter of filling in the form using Adobe reader, just like you would normally write your character sheet. Subsequent versions will have drop-down lists and so on to save some time and effort. It needs testing -- so please download it and have a go at using it. Feedback appreciated.
File comment: Version 1 of the PDF character sheet form.
Ill get on it right away.
I was hoping that you'd upload your character sheet.
Page 9: I don't understand the need for Shock tracking bar. Shock comes and goes in an instant, so, why to track it? On the other hand, I've yet to see a sheet (aside from mine own, which I'm building) that would include a bar to mark the Health loss that occurs from BL. So, switch the "Shock" with "Health" -- Fatigue/Pain/BL/Health would be a sensible order of organisation, I think.
And one point more... Is Sorcery Pool necessary if the sheet doesn't include Sorcery attributes?
I'm going to break the character sheet up into its separate areas. So there will be the cover sheet, the combat sheet, the sorcery sheet, the combat results sheets, and the running totals sheet.
The running totals sheet will be like the combat results sheets -- no fields to fill in, that's supposed to happen in-game. We use these as a kind of automated gaming notes for the character -- the running totals are there, the wounds and skill track, and also the event list. The event lists build up over time, giving the player a memory aid -- and allowing the referee to sew long-term plot arcs without fearing that players simply won't remember who certain characters were linked to in the past.
With the knowledge I have at the moment creating a PDF form is ridiculously cumbersome. So I will spend some time learning what I can about forms before the next version gets produced.
Please keep the comments coming. In particular if there are things you'd like to see on the Running Totals sheet, or what you'd like to see on the sorcery sheet let me know.
I have a tiny comment, and this is really a small, nit-picky detail that probably only I care about.
However, any chance you can change the order of the Attributes to reflect the order on the book's character sheet? I am so used to that order, that I see the attribute block as a 'picture' and automatically assume the top stat is strenght, the next agility, etc.
I am probably the only one who cares about this though.
a) More detail on the wounds. I woudnt make "BL etc" and "Wound location etc" to separate tables. Why not make it a cross reference? The Zone marking is a personal perefernece, but there should be "d6 result", "Blood Loss", "Pain", "Unmodified Pain" and "Healed" columns on on the same row in addition to what you have. "BL" and "Pain" columns would be used like your current ones, but now they would be directly linked to the wound for easy reference. "Unmodified Pain" is from what the healing is determined, so, it's important to mark down too. "Healed" would be a box to mark down the lowered TN by number or like scrapes ... you know, like days are marked without a calendar. "Unmodified Pain" would also ease the process of recalculating Pain again, should the wound open by chance. And I'd handle Health and Fatigue as extra rows beneath the Wounds.
b) I will definetly try to mark down attributes in the means of dots from habit. So, I wouldn't have Will Power 4, but Will Power **** (and 3 blank dots). While I don't urge you to follow the trend with attributes (that's a personal preference, and you'd have trouble marking down superhumans) I think marking down SAs and Drama would benefit from it greatly, as they're capped equally for everybody. You would have to use the eraser only if you're spending Drama/SAs, not when you're earning them.
Well... that's it from now.
Oh gosh! I always wondered why Strength was the Guillaume de Morillon's lowest Physical attribute considering his picture.
... any chance you can change the order of the Attributes to reflect the order on the book's character sheet ...?
My 2 cents on the order of attributes: In a list of only five items, I'd be surprised if alphabetization saves anyone more than half a second of lookup time.
In a list of only five items, I'd be surprised if alphabetization saves anyone more than half a second of lookup time. Just my 2 cents there.
Referee: "OK, what's your Soc?"
New Player: "My sock?" Rustles through character sheets. "Nope, no socks on my character. I do have boots though, so I guess I should have socks. Or stockings."
Referee: "No, no, not on you equipment page. Soc -- it's a stat."
New Player: Looking through skills "No, I still don't have a Soc. Does a warrior have a Soc?"
Old Player: "Yeah, a really crappy one 'cos all your points went into TO..." Laughs.
New Player: "My points went into my toe?"
Referee: Looks at Old Player "Don't confuse things!"
Old Player: Feigning Hurt. "It wasn't deliberate!" Leans towards new player. "Soc -- front page, left side, under attributes."
New Player: "... still can't see it ..."
Referee: "Below Mental Aptitude and above Perception..."
Old Player: "Ah, the irony..."
New Player: "Got it. 3. Heh, why aren't these things in alphabetical order? They'd be much easier to find..."
I play with a group with members who seldom look at their character sheets. The character sheet is an impediment to the flow of the story, a source of confusion, and the destroyer of scene continuity. If something makes a character sheet 1% easier to use -- I'm there.
If something makes a character sheet 1% easier to use -- I'm there.
The very reason I'm obsessed with a single page character sheet -- not even having to turn one's single page has proven to be most effective so far.
Any comments on my suggestions by the way?
Spoken like a true health care professional. There isn't a lot of room there though.
It makes sense to have the SAs on the running totals page as they are dynamic. My prefernce is to list the SA on the front page and list the SA and its value on the running totals page. Using check boxes on the running totals page for tracking SA values is a good idea.
My own preference here is to have separate images for cut and thrust, and place them on the back of the running totals sheet. That would give room for three fully developed proficiencies on the combat sheet.
I'll get the basic character sheet completed and working and then I'll look at variations.
What do you mean? It wouldn't take much more than it takes now... I tried it with my Paint skills.
Otherwise we could just skip the "unmodified" column and write 9-WP or whatever it says on the chart, but that would make counting the total effective pain difficult, while just marking down the effective pain would make you go through the tables when making healing rolls. Edit: Of course, the solution might be something like this.
Hmm... Wouldn't that be more confusing? Going by your New Player dialogue style: "Who's this other guy?" Anyways, I witheld any further comments until I've actually seen the twins.
1) A reasonable tab order between fields.
2) If you click on the decorative frame you can load your own character portrait. Keep in mind it is a simple load -- you'll have to size the image in Photoshop or whatever before you load it.
3) All the Core skill packets are listed in the Skill Packet drop downs. It is also a free-text field so you can enter your own packet.
4) All The Companion Social Packets are listed in the Social Packet drop down. It is also a free-text field so you can enter your own packet.
5) All the Core skills are listed in the Skill drop-down. It is also a free-text field so you can enter your own skills. There are 20 skill fields available. No, it doesn't auto-populate skills based on Packet selection.
6) The Derived Attributes are auto-calculated but can be over-ridden.
It won't take long to complete the Combat Sheet and the Running Totals sheet changes. Next weekend.


text:
, nata , è un personaggio immaginario, protagonista femminile nel manga Maison Ikkoku - Cara dolce Kyoko della mangaka Rumiko Takahashi. È presente anche nelle opere derivate, tra cui la serie anime, il film Maison Ikkoku e la mineserie televisiva.

Il suo personaggio è doppiato in lingua giapponese da Sumi Shimamoto, mentre in italiano prima da Monica Ward ed in seguito da Ludovica Marineo e Sonia Mazza .

Creazione e sviluppo
In un'intervista, Rumiko Takahashi ha dichiarato che la storia d'amore tra Kyōko e Godai sarebbe dovuta essere un punto di partenza per una trama più ampia, che avrebbe compreso una partecipazione maggiore degli altri inquini della Maison Ikkoku; tuttavia, mano a mano che l'autrice sviluppava la loro relazione, questa assunse maggior importanza, fino a diventare il tema principale del manga. Fu presa la scelta di rendere Kyōko una vedova perché, a detta della mangaka, tale situazione avrebbe dato vita a molteplici risvolti narrativi.

Nome
Il cognome Otonashi è composto dalle due parole oto (;  ) e nashi (; ) che può essere facilmente tradotto come "nessun suono" o semplicemente "silenzio". Come per altri personaggi della serie, il cognome è composto da un termine (nashi) che, con un gioco di parole, indica il numero della stanza all'interno della Maison Ikkoku nella quale risiede: in questo caso s'intende la stanza dell'amministratore, la quale non è numerata. Il suo cognome da nubile, Chigusa, significa "gran varietà di fiori."

È interessante notare che quasi fino alla fine della serie Kyoko viene chiamata da quasi tutti i personaggi, compreso Godai, con l'appellativo Kanrinin-san (amministratrice). Soltanto i parenti la chiamano Kyoko, mentre Yagami si rivolge a lei con il termine senpai, dato che la ragazza frequenta la stessa scuola che all'epoca frequentò Kyoko.

Biografia del personaggio
Kyōko è la figlia unica dei coniugi Chigusa, una famiglia borghese giapponese. Suo padre è un uomo che manifesta il proprio affetto sotto la forma di una morbosa gelosia, mentre la madre è caparbia e calcolatrice. Durante gli anni delle scuole superiori, Kyōko sviluppa una infatuazione, che col tempo diverrà amore vero e proprio, nei confronti di Sōichiro Otonashi, un giovane supplente che insegna nella sua classe. Nonostante la differenza di età, Sōichiro ricambia il sentimento ed i due convolano a nozze al termine degli studi di Kyōko, che per amore quindi, rinuncerà a frequentare l'università. Tuttavia, dopo pochi mesi dal matrimonio, la felicità dei due sposi viene interrotta dalla morte improvvisa di Soichiro, causata da un male mai spiegato. Kyōko prende la drastica decisione di non sposarsi mai più e vivere nel ricordo del marito.

Tramite il suocero, Kyōko trova lavoro nella pensione Ikkoku, di proprietà della famiglia Otonashi. Da questo punto della storia ha inizio la storia narrata nella serie. La ventunenne Kyōko conosce i turbolenti abitanti della Maison Ikkoku: il misterioso Yotsuya, la provocante Akemi Roppongi, la signora Hanae Ichinose, e soprattutto Yūsaku Godai, un giovane studente squattrinato, che fin dal primo momento mostra un forte interessamento nei suoi confronti. Per un lungo periodo Kyōko rimane fedele al suo defunto marito, ma le avances di Godai, a cui si aggiungono quelle dell'affascinante Shun Mitaka, suo insegnante di tennis, cominciano a far vacillare Kyōko.

Fin dall'inizio è evidente una certa attrazione di Kyōko nei confronti di Godai, più che in quelli del ricco e più affascinante Mitaka, ma una serie di circostanze fanno rimanere Kyōko in una situazione di perplessità per tutta la durata della serie. Godai non riesce né a portare a termine i propri studi, né a trovare un impiego stabile. Inoltre, pur dichiarandosi svariate volte, Godai non riesce a respingere le attenzioni che altre donne (in particolar modo Kozue Nanao) hanno nei suoi confronti, rendendo i sentimenti del ragazzo del tutto inaffidabili agli occhi di Kyōko. La famiglia di Kyōko è un altro punto di instabilità per la giovane. Il padre vorrebbe egoisticamente che la figlia tornasse a vivere con loro, mentre la madre gradirebbe vedere Kyōko sistemata con il ricco Mitaka. Alla fine della serie, però i sentimenti di Godai avranno la meglio sul cuore della ragazza, ed i due finalmente si sposeranno, avranno una figlia, Haruka, e rimarranno a vivere nella Maison Ikkoku.

Caratteristiche

Aspetto fisico
Kyōko è una giovane donna dalla pelle chiara di altezza media (un po' più bassa di Yūsaku Godai), considerata attraente da molti personaggi che incontra, con grandi occhi azzurri e capelli blu violacei (tinti di nero nel manga) sotto le sue spalle, a volte in una coda di cavallo, con la frangia e due lunghe ciocche che le scendono dalle orecchie. Quando era più giovane i capelli di Kyōko erano molto più corti, quasi tagliati a caschetto, ma rimanevano appena sopra le sue spalle.

Kyōko indossa tipicamente pantaloni e maglione a maniche lunghe, coperti da un grembiule giallo che ha l'immagine di un pulcino con le parole "Piyo" stampate sotto di esso. Porta spesso anche una scopa di bambù, che viene usata per spazzare gli esterni della pensione.

Personalità
Nonostante sia dolce ed educata, Kyōko possiede una forte personalità, che spesso si manifesta in un carattere permaloso, geloso e testardo. Probabilmente è stata proprio questa forza a riuscire a fare andare avanti la donna dopo la morte del marito. Sviluppa presto affetto per Yūsaku e ha la tendenza a innamorarsi di lui (con gli altri inquilini che la prendono in giro per essersi comportata come una "buona moglie") e talvolta diventa gelosa di lui (anche se lei nega che sia gelosia). Tuttavia, è difficile per lei dimenticare Sōichirō Otonashi (morto appena sei mesi dopo il loro matrimonio) e i suoi ricordi di suo marito a volte la mettono di umore malinconico; l'amore di Kyōko per lui a volte si riflette nei dialoghi con il suo cane, che porta lo stesso nome del suo defunto marito. Per certi versi inoltre, il personaggio di Kyōko è spesso considerato uno dei primi esempi di personalità tsundere. Infatti Kyōko, nonostante tenda a mostrare agli altri il proprio lato più combattivo, nasconde una personalità fragile ed affettuosa. Sempre secondo i canoni del personaggio tsundere, Kyōko nasconde anche a sé stessa i propri reali sentimenti, negando di essere in qualche modo coinvolta da colui che le dimostra interesse (Godai), e tentando di rimanere aggrappata al ricordo del defunto marito Soichiro.

Animale domestico
Durante gli anni del liceo di Kyōko, Sōichiro prese come animale domestico un cane bianco randagio, che ribattezzò Shiro. Successivamente la vedova Otonashi lo ribattezzò Sōichiro in onore del marito defunto.

Doppiaggio
Nella versione originale giapponese Kyōko Otonashi è doppiata da Sumi Shinamoto, già doppiatrice di alcuni personaggi in Lamù.

Apparizioni in altri media

Bibliografia

Note

Annotazioni

Fonti

Voci correlate
 Maison Ikkoku - Cara dolce Kyoko
 Rumiko Takahashi
 Yusaku Godai

Altri progetti

Collegamenti esterni

Otonashi Kyōko


text:
About Blog Learn Explore Patterns Case studies
Figure out what's causing poor INP
Find slow interactions in the field
Reproduce slow interactions in the lab
What if you don't have field data?
Diagnose and deal with long input delay
How to identify input delay
How to fix long input delays
Optimize event callbacks
Minimize presentation delay
When interactions overlap
Improving INP requires persistence
Optimize Interaction to Next Paint
Learn how to optimize for the Interaction to Next Paint metric.
Dec 8, 2022 — Updated Jan 25, 2023
Appears in: Fast load times
Jeremy Wagner
TwitterGitHubHomepage
Interaction to Next Paint (INP) is an experimental metric that assesses a page's overall responsiveness to user interactions by observing the latency of all click, tap, and keyboard interactions that occur throughout the lifespan of a user's visit to a page. The final INP value is the longest interaction observed, ignoring outliers.
To provide a good user experience, sites should strive to have an Interaction to Next Paint of 200 milliseconds or less. To ensure you're hitting this target for most of your users, a good threshold to measure is the 75th percentile of page loads, segmented across mobile and desktop devices.
Depending on the website, there may be few to no interactions—such as pages of mostly text and images with few to no interactive elements. Or, in the case of websites such as in-browser text editors or games, there could be hundreds—even thousands—of interactions. In either case, where there's a high INP, the user experience is at risk.
It takes time and effort to improve INP, but the reward is a better user experience. In this guide, a path to improving INP will be explored.
Figure out what's causing poor INP #
Finding ways to fix a poor INP can be difficult. To start, you have to know which interactions tend to be responsible for the page's INP, out of all the interactions users have with the page. To do that, you'll need to first lean on field data, and then test in the lab to figure out what's making an interaction slow.
Find slow interactions in the field #
Field data should be the first place you go to find slow interactions. The web-vitals JavaScript library is one way to find these interactions, thanks in large part to its ability to attribute INP values to specific elements through its attribution build:
// Use the attribution build:
import { onINP } from "web-vitals/attribution";
// Example reporting function that's passed to web-vitals:
const report = ({ name, value, attribution }) => {
console.log(name);
console.log(value);
console.log(attribution.eventType);
console.log(attribution.eventTarget);
// Pass the reporting function to the INP reporter:
onINP(report);
Not every interaction can be attributed to a specific element. This is due to an underlying limitation of the Event Timing API where an event target may be absent if the element responsible for the interaction was disconnected from the DOM, or if the element was in the shadow DOM.
When this code runs and you interact with a page, the console may report something similar to the following:
pointerdown
#main-nav>ul>li>button
In this case, you can see that tapping on a navigation menu toggle—which took 248 milliseconds—was responsible for the page's INP. At 248 milliseconds, this page's INP would be in the "needs improvement" category.
The above code snippet is a simplistic example of working with the web-vitals library. For an example that shows how to transmit data from the field to Google Analytics, read this section of the web-vitals documentation.
Once you've found elements that are responsible for slow interactions in the field, you can go into lab tools to start profiling them.
Reproduce slow interactions in the lab #
Once you have a better idea of what's responsible for slow interactions, you should profile those interactions in the lab. Fortunately, there are a couple of avenues you can pursue to reproduce problematic interactions using lab tools.
As you attempt to reproduce problems you find in the field in lab tools, you can't expect that you'll be able to reproduce the exact conditions in which a high INP was reported. There are many factors that can cause device responses to be slow, and it's impossible to replicate all of them. However, if certain interactions are consistently slow for many of your users, it should be possible to reproduce those recurring problems by mimicking the conditions common to those users.
Using Chrome's performance profiler #
It's possible to surface slow interactions with the performance profiler in Chrome DevTools. To do so, take the following steps:
Navigate to the page powering the interaction you want to test.
Open Chrome's DevTools by pressing Ctrl+Alt+I (Cmd+Option+I on macOS).
Go to the tab labeled Performance in DevTools.
Click the record button at the upper left hand corner of the empty performance profiler to start recording.
Test the desired interaction(s) on the page.
Click the record button again to stop recording.
Once the profiler populates, you'll be able to see what work occurred to drive the interaction.
There are some cues in the profiler you can use to narrow down where the interaction occurred, notably in the interactions track situated above the main thread track:
An interaction profiled in the performance profiler in Chrome's DevTools. The interactions track shows a series of events that amount to a click interaction. The interactions track entries span across the tasks responsible for driving the interaction.
Using Lighthouse's timespan mode #
Chrome's performance profiler—while incredibly useful and rich with diagnostic information—can be a bit intimidating to the uninitiated. If this is the case for you, Lighthouse's timespan mode might be a better alternative. To use this mode, do the following:
Go to the tab labeled Lighthouse in DevTools.
Under the section labeled Mode, select the Timespan option.
Select the desired device type under the section labeled Device.
Ensure at least the checkbox labeled Performance is selected under the Categories label.
Click the Start timespan button.
Click the End timespan button and wait for the audit to appear
Once the audit populates in the Lighthouse tab, you can filter the audits by INP by clicking the INP link next to the label which reads Show audits relevant to.
At this point, you'll see a dropdown for audits that have failed or passed. When you expand that dropdown, you'll likely see a breakdown time spent during the interaction.
An interaction profiled in Lighthouse's timespan mode. When interactions are made with the page, Lighthouse provides an audit detailing where the time during an interaction was spent, and breaks it down by input delay, processing delay, and presentation delay.
If you want to dive a bit deeper into the cause behind a slow interaction, you can do so by clicking the View Trace button just above the filmstrip in the populated Lighthouse tab. This will take you to the performance profiler that shows interactions details for the interactions you tested in the timespan mode.
Regardless of the tool you use to profile slow interactions in the lab, the end result is the same in that you'll be able to take actionable information from the field and discover the culprit of slow interactions. That's information that you can take straight to your code base and figure out what you need to do to get things going faster for a better user experience.
What if you don't have field data? #
Not everyone collects field data from their website's users. While your long term performance optimization plans should include collecting field data (as that will make diagnosing issues significantly easier), if you're not doing that today, it's still possible to profile your pages and look for interactions that might be slow.
The first step is to diagnose common user flows. For example, if you're an online retailer, some common user flows would be to add items to a cart, search for products, and checkout.
When you test these user flows in the lab, consider doing the following:
Throttle the CPU to 4x or 6x speeds to more accurately reflect interaction speeds experienced by users on low-end devices.
Enable mobile emulation and choose a low-end mobile device. When you use mobile emulation in DevTools, the user agent string is changed to that of the emulated device, which can affect how page markup is served.
If you have the ability, consider purchasing a cheaper Android phone (such as a Moto E) with reduced capabilities and profile interactions in the lab using remote debugging.
Once you've evaluated your potential user flows, make a note of the slowest interactions, and then you can begin to figure out where to start optimizing them. Regardless of whether you're collecting field data at this point, it depends on what part of the interaction you need to pay attention to in order to know what to optimize.
Diagnose and deal with long input delay #
The input delay is the first phase of an interaction. This is the period of time from when the user action is first received by the operating system until the browser is able to start processing the first event triggered by that input. The input delay ends right as the event callbacks for the interaction begin to run.
How to identify input delay #
Identifying input delay in Chrome's performance profiler can be done by finding the start of an interaction in the interactions panel, and then finding the beginning of when the event callbacks for that interaction start to run.
You'll always incur at least some input delay, as it takes some time for the operating system to pass the input event to the browser—but you do have some control over how long the input delay is. The key is to figure out if there is work running on the main thread that's preventing your callbacks from running.
Input delay caused by a task fired by a timer from a third-party script.
In the previous figure a task from a third-party script is running as the user attempts to interact with the page, and therefore extends the input delay. The extended input delay affects the interaction's latency, and could therefore affect the page's INP.
How to fix long input delays #
When it comes to solutions for long input delays, it all depends. If you have expensive first-party work that could be affecting an interaction's input delay, the answer is four-fold:
Do as little work as possible in any tasks your code kicks off.
Break up long tasks.
Use the Scheduler API to prioritize critical tasks and defer non-critical tasks.
Consider using isInputPending to check if a user input is pending. If so, you can yield to the main thread so the event callbacks for that input can run sooner than they otherwise would.
If it's third-party code that's causing problems, then you have a lot more to consider:
Do a complete inventory of all your website's third-party scripts.
Figure out if more than one third-party script's functionality overlaps significantly with others.
Cull redundant or low-value third-party scripts.
Maintain whatever third-party scripts are left over so that they impact performance as little as possible.
This is difficult in large part because third-party JavaScript is an issue of work culture. For example tag managers make it easy for non-technical people in a company to add third-party scripts without the knowledge of the development teams. See our Best practices for tags and tag managers post on techniques for optimizing those for performance and Web Vitals.
Optimize event callbacks #
The input delay is only the first part of what INP measures. You'll also need to make sure that the event callbacks that run in response to a user interaction can complete as quickly as possible.
The event callbacks that run in response to a tap interaction, as shown in the performance profiler in Chrome DevTools.
The best way to ensure your event callbacks run quickly is to limit what gets run to just the logic that is required to apply visual updates for the next frame. Everything else can be deferred to a subsequent task.
For example, imagine a rich text editor that formats text as your type but also updates other aspects of the UI in response to what you've written (such as word count, spelling mistakes, etc.). In addition, the application may also need to save what you've written so that if you leave and return, you haven't lost any work.
In this example, the following four things need to happen in response to characters typed by the user. However, only the first item needs to be done before the next frame is presented.
Update the text box with what the user typed and apply any required formatting.
Update the part of the UI that displays the current word count.
Run logic to check for spelling mistakes.
Save the most recent changes (either locally or to a remote database).
The code to do this might look something like this:
textBox.addEventListener('keydown', (keyboardEvent) => {
// Update the UI immediately, so the changes the user made
// are visible as soon as the next frame is presented.
updateTextBox(keyboardEvent);
// Defer all other work until at least after the next frame,
// by queuing a task in a `requestAnimationFrame()` callback.
requestAnimationFrame(() => {
const text = textBox.textContent;
updateWordCount(text);
checkSpelling(text);
saveChanges(text);
The following visualization should help explain why deferring any non-critical updates until after the next frame can reduce the processing time and thus the overall interaction latency.
Click the above figure to see a high-resolution version.
While admittedly the use of setTimeout() inside of a call to requestAnimationFrame() in the previous code example is a bit esoteric, it is an effective and cross-browser way to ensure that the non-critical code does not block the next frame.
In the future, as new Scheduling APIs like scheduler.postTask() and scheduler.yield() are standardized and implemented, it will be easier for developers to write code that can be automatically prioritized without them needing to have an intimate knowledge of the browser event loop.
Minimize presentation delay #
The last step of an interaction is the presentation delay, which starts when the event callbacks have finished running, and ends when the browser is able to present the next frame to the user's display.
The unfortunate fact is that presentation delays are something you have the least amount of control over. However, here's a few things to look out for if you're noticing that frames are being delayed:
Don't abuse requestAnimationFrame() for work not related to rendering. requestAnimationFrame() callbacks are run during the rendering phase of the event loop, and must complete before the next frame can be presented. If you're using requestAnimationFrame() to do work that doesn't involve changes to the user interface, understand that you could be delaying the next frame.
Be careful with async and await and your assumptions around how they work. Just because you're using these features (or Promises in general) doesn't mean that the work they do won't block rendering. It's entirely possible that an async function—even if it does break the work in a callback into a separate task—can still block rendering if the browser chooses to run it before the next frame is presented. This is why it's important to keep all tasks short.
Be careful with ResizeObserver observer callbacks. Such callbacks are run prior to rendering, and may delay presentation of the next frame if the work in them is expensive, as with event callbacks, defer any logic not needed for the very next frame.
When interactions overlap #
It's also important to understand how interactions can overlap. For example, if there are many interactions within a short period, it's possible that the processing time or presentation delay for one interaction can be a source of input delay for a subsequent interaction.
A visualization of two concurrent interactions in the performance profiler in Chrome's DevTools. The rendering work in the initial click interaction causes an input delay for the subsequent keyboard interaction.
These overlaps are tricky to diagnose in the field, in part because it's difficult to track if the source of a high INP is due to multiple interactions that interfere with one another. The best thing you can do to alleviate poor responsiveness in your interactions is to do as little work as possible in your interaction's event callbacks and always keep your tasks short. This helps to reduce contention between interactions and gives the main thread a bit more breathing room.
Improving INP requires persistence #
Improving your site's INP is an iterative process. When you fix a slow interaction in the field, chances are good that—especially if your website provides tons of interactivity—you'll start to find other slow interactions, and you'll need to optimize them too.
The key to improving INP is persistence. In time, you can get your page's responsiveness in a spot where users are happy with the experience you're providing them. Chances are also good that as you develop new features for your users, you may need to go through the same process in optimizing interactions specific to them. It will take time and effort, but it's time and effort well spent.PerformanceWeb Vitals
Last updated: Jan 25, 2023 — Improve article


Craig Shakespeare has admitted that Leicester did receive a bid from Roma for wantaway star Riyad Mahrez - despite initially stating no offer had been forthcoming.
The Foxes boss was forced to perform an embarrassing U-turn after he had originally revealed that Leicester had not been made an offer from I Giallorossi for the 2015/16 PFA Player of the Year.
Mahrez, who is valued at £50m, wants to leave the King Power Stadium this summer and, in quotes published by the Daily Mail, Shakespeare confirmed that Roma had made a laughable bid for the Algeria forward that was rejected out of hand immediately.
He said: "I think I was previously quoted as saying there has been no bids.
"There was a bid from Roma so I would like to put record straight. It was politely declined because it was a low offer. I don't know what it was and I don't get involved."
Mahrez is part of the Leicester first-team squad which is taking part in the pre-season Asia Trophy tournament out on Hong Kong this summer despite his desire to leave.
The 25-year-old only penned a new five-year contract with the Midlanders last summer but, after a less-than-impressive 2016/17 campaign, wants out as soon as possible.
Arsenal, Tottenham and Roma are all thought to be vying for his signature and, asked if he expected the Serie A giants to return with an improved offer for Mahrez, Shakespeare admitted he did not have a clue if they would.
He continued: "We dismissed it, I can't talk for Roma so I don't know what they will do."
Shakespeare was also tight lipped on any reports suggesting that a £25m move for Manchester City outcast Kelechi Iheanacho was close to completion.
The striker is supposedly on the cusp of moving from the Etihad to the 15/16 Premier League champions, and City boss Pep Guardiola himself confirmed that the Nigeria international would be leaving the club in the near future.
Guardiola said: "He decided to stay in Manchester (instead of going on tour), and maybe next week he will finish. We have an option to take him back. He didn't mention which club so no comment."


Country star Jimmy Wayne is back with his most compelling book, "Walk to Beautiful: The Power of Love and a Homeless Kid Who Found the Way."
Wayne co-wrote this book with Ken Abraham, who is a New York Times best-selling author. Without giving too much away, the first half of the book deals with his childhood and growing up in a foster home and all the abuse that he endured during those difficult times. There are moments where one would want to reach out into each page and give young Jimmy a hug, as the events are heartbreaking. This book will help raise awareness for the people that have been abandoned and are hurting. It truly hits the reader like a shot in the heart, especially since Wayne was able to triumph over his obstacles and become the multi-platinum and chart-topping singer-songwriter in the country music world that he is today, as well as motivational speaker.
Overall, Jimmy Wayne tugs at the heart on his book, where one will need to keep the Kleenex handy as they read it from cover to cover. He is able to take his fans on a true journey with him. It is a book about finding peace and about having strong faith in God. It earns an A rating.
Jimmy Wayne's book Walk to Beautiful: The Power of Love and a Homeless Kid Who Found the Way is available on Amazon.
To learn more about country sensation Jimmy Wayne, check out his website.


Friends, I must confess a grave offense.
Earlier this evening, I supported the box office take on Ghost Rider. It was an irresponsible and regretful act, but I was caught in the heat of the moment. I hope you can forgive me.
I started the evening with the best of intentions; the Sunday Night Film Club was scheduled to see Breach, but it was sold out when we got there. We were left with slim pickins, but we agreed that Ghost Rider would, at the least, make us laugh.
And make us laugh it did. Seriously, I could barely contain myself during some of Nicolas Cage's serious lines. I mean, I KNEW it would be bad, but this movie reached previously unknown levels of wretch. It's hard enough to watch Nicolas Cage in a GOOD movie, but this? This was just kind of sad. And Peter Fonda? The goddamn Easy Rider playing Mephistopheles in some low-rent Cage movie? What has become of us, America?
At the moment, Ghost Rider is #1on IMDB's Tops at the Box Office list. I've done a very, very bad thing.


text:
England All-Rounder Stokes Dropped Following Late-Night Pub Brawl
To those of us not intimate with the great game of cricket, mainly knowing that playing unfairly at an endeavour is often met with the admonition, "That's not cricket," can only shake our heads in wonder as the players are seemingly taking the game in a UFC-like direction.
The latest incident to come to our attention was a case of apparent fisticuffs in a British pub involved England co-captain and world-best all-rounder Ben Stokes.
The allegation is that Stokes took exception to something said or done by a member of the English proletariat during a late night encounter in the wee hours of the morning following a match with West Indies.
The outcome, which should serve as fair warning to you brawlers of the general public persuasion to avoid taking on cricket players when both of you are pissed, was that the pub patron suffered facial injuries that required medical treatment at the Bristol Royal Infirmary. As for Stokes, he hurt his hand, and along with teammate and Ashes hopeful Alex Hales, was arrested by the local Bobbies.
Both players have been stood down for England's remaining ODI matches with West Indies and Stokes is almost certain to be dropped from the Ashes just hours before the ECB are set to name their Ashes squad.
After spending the night in the Bristol brig, Stokes was released without charge, but the police are conducting further investigations into the incident and hope to obtain some eyewitness accounts.
Hales went back to Bristol to provide some information with the police inquiry.
Stokes has a history of alcohol-fueled rage, the result being that the entire British team will be under intense scrutiny ahead of their first Ashes test at the Gabba.
England Cricket Board Chief Andrew Strauss released a statement, which read, in part, "Ben Stokes and Alex Hales will not be available for tomorrow's One-Day International match against West Indies at The Oval… You will understand that we cannot offer further detail at this stage but will provide any updates when we can."


I was all set to go all polished nickel on this front door.
Remember when I painted the house this color?
We all sat down and had sweet tea and went all Encyclopedia Brown with a highly intellectual discussion about shutters and awnings and trim paint and painted bricks.
And whether the door hardware should be brass or polished nickel.
I was all on the polished nickel team. I mean, really. The house is gray. Gray goes with polished nickel, right? It's cool tones hanging out and becoming friends with other cool tones.
And then one day I was unpacking boxes at the house and found this.
This is a brass door knocker I inherited from my grandfather.
It was made in a time when brass ruled the world.
It's heavy and intricate and detailed and a serious door commitment and a little bit oddly-over formal which I wasn't sure I liked at first because I felt like it belonged on a house of people who take themselves and their door knockers very seriously.
(total aside: I am being deliberately mysterious with these door knocker pictures so when you see the front door reveal it will be even more dramatic).
I'm not sure if my grandfather ever had it on a house.
It was still in the original packaging in a fancy box wrapped in plastic.
And the more I looked at it and the more I studied it and thought about it and the front door and the brass I felt like this door knocker was created for a time such as this.
I'm going with brass for the door.
The door knocker decided it for me.
So here is the tentative plan for the front door.
It's a lot of brass and a lot of black and an expensive planter option that I'm going to recreate for either side of the front door.
Here's where everything is going.
1. There will be two benches on either side of the house under each window.
2. There will be a brass kickplate at the bottom of the door.
3. There will be brass hardware on the door and a super cute brass doorbell (that was under $10).
4. I'm DIYing that planter for either side of the door. Don't you love those handles?
5. The odd saltillo tile that you can't really see that covers the front porch will be replaced with brick.
6. I'm keeping the brick on the front steps, but it will be power washed and bleached and cleaned and in certain areas the mortar will be replaced. I was even researching how to paint your mortar. Has anyone tried that?
7. There is also a beautiful glass door with a simple black wood frame that is original to the house that's being repaired and put back into place.
And then there's the landscaping which looks super pitiful right now, but I'm trying to figure out a plan for that, too.
Isn't it funny how sometimes the plans we make don't work exactly according to plan?
How sometimes a door knocker shows up and changes everything?
And then? We discover that even though the new plan might not have been our idea—it's even better.
There is such a sermon in there.
Because it was in your family and passed down makes it all the more perfect! I'm sure your design smarts will pull it all together and we will love the brass, black and gray together!
Love it! Have you thought of doing the German Schmear technique on your brick? Also called German Smear. They did it on Fixer Upper on the outside brick S3. Ep 8, I like this cause you can control the amount & color of the bricks that show through and it has more depth than just painting. Although it maybe to cottage-y for your taste. Where did you get the door bell from? ITt's perfect!
Love it. Anytime you have something so sentimental from the,past use it. I really think you made an excellent choice. It will, go beautifully on your front door. Now you are ready to do it with all your other choices. I love your site. So beautiful, funny and gives my morning a,lift with my pumpkin spiced Starbucks coffee this morning.
The house and history go together! Brass was the direction to go~ and the arrows on the door knocker prove me right. (tee hee) Black is a perfect tie in with the red brick, grey siding, white trim and brass. Could you do brass handles and knobs on the planters, or would that be too much??? Can't wait to see your diy planters and the landscape plan. I live in a townhouse community and have so little I can do to be creative with anything outside~ I'm living through you!! And, I love the doorbell. Is it an Amazon find?
KariAnne, I look forward to your stories every day! You brightened up my mornings with your ideas and sometimes crazy "sermons". Can't wait to see the pictures of the final results. You really are a rockstar!
Perfection! Can't wait to see the whole door knocker, but even if super fancy - it has a history and needs to be honored. I love a door handle with a thumb latch! Good going.
Perfect! I think you hit a home run with this plan! So excited for you, can't wait for you to share the finished product.
When you find a door knocker from your grandfather it is a sign, end of story. Looking forward to seeing this hanging on your family home.
What a gorgeous piece of family tradition every time you walk up to your front door!
"How to paint your mortar" sound´s like "How I met your mother"´s DIY cousin :) I love what you´re doing to this house, and I´m so caught up in the romance of you returning to your childhood home... that brass knocker definitely needs to go on the door.
Well, whoop-te-do Grandpa speaks!!! Glad you could do the brass!!!
That knocker looks very fancy- the brass looks good with the black and gray. It was meant to be!
This is going to be absolutely fantastical! I can't wait to see the reveal!
Will the glass door you referred to essentially be a storm door that will fit over the front door? Love it all. I used to live in north Dallas and still have friends in your area - it's beautiful.
Go with memories, that is really all we own.
Your door knocker is such a wonderful addition. When my husband and I bought our first home 43 years ago, my parents bought a large solid brass eagle with garland door knocker for us. I decided right then and there that it would follow us to every house we owned. Our present home is our third and if we ever move, our door knocker will again grace another door. We have done the same thing for our children and they have taken their door knocker gifts to each of their homes. Tradition never goes out of style.
I think the brass will be perfect.....like the perfect jewelry accessory to an amazing outfit! Then to have such a sweet connection to your family is the perfect confirmation that this is how to go!
oh, Miz karianne....I think you made the right choice and I already know what that door knocker looks like...well at least what it IS...and it will be a beautiful addition to the house. Your Grandfather would be proud.
Love what you have done so far and love this plan for the front. Please do a post on how to make the planter. Love it!
Karianne, the house really needs more black. Great choices in your benches and planters.
Off topic, a bit....have you considered making your front windows (either side or both sides) into french doors? Of course I don't know what's on the other side, but I think it'd be lovely to walk out onto your porch(es). I'd love to hear your thoughts.
Oh my word, it truly was meant to be. Love that door knocker.
Sometimes I think our deceased loved ones are watching us from above and give us a little gift now and then. Your door knocker was just waiting for the right door and the right moment. Lovely!
It may not have been your original idea, but your home knew it all along... with a gentle nudge from Grandfather. It's going to be beautiful, Karianne.
Very classy ! All this is keeping you very busy.... It must be very exciting !
Oh YES! Brilliant plan! I think the brass will look smashing against the black. Love all your plans. I seriously cannot wait to see the front door reveal! hugs, Cecilia PS Love what the new plan suggests. Preach it, sister!
Woo Hoo...I think you're having too much fun over there ! Yes I like it for sure and that idea for the french doors sounds pretty cool too.
It will look beautiful. I would still like to see that vent thingy on the roof painted the same color as the roof so it blends in. As it is, it stands out and it detracts from the beauty of the rest of the front.
It's funny and not funny. When I saw your post, I was surprised it was about a door knocker. That's what I have to get. My door bell doesn't work. After my electrician coming twice. We just can't find where the bell originates. So my pretty bell button has to stay. Did I mention it was brass. Since your doorbell works that beautiful door knocker would look wonderful on my door. Only kidding, but it is beautiful.
Love the brass. Brass is back,big time and I for one am glad I kept mine. To have a door knocker from your grandfather,you must use it!
Why didn't I think of a brass ceiling light fixture? Thank you Karianne for your brass door knocker story today. We just did our master bedroom and painted the walls greige (which to me is more on the gray side.) I kept our brass Stiffel lamps on our maple bedside tables.
I love the brass with the gray! It makes it so warm and inviting, and having a story makes it all that much better. Can I suggest that you wait to put the kickplate on until you've done the rest? That way you can see if you really want it. In our last two homes, we ended up taking the kickplate off completely and it looked so much better. I think they look great sometimes, but it seemed overpowering in both of those homes. Just a thought. I love the gray you used!
I second that opinion! It might distract from the beautiful door knocker. I took mine off, too. It made my door look too bottom heavy.
It was definitely meant to be. It's going to look amazing.
I love that the door knocker decided for you and especially that it belonged to your grandfather! Now, every time you look at it, you'll think of, and maybe even thank, Grandpa. Awesome! And, by the way, I was internally voting for brass all along. I love the contrast and drama of brass against grey -- like wearing gold earrings with my grey hair LOL. Can't wait to see what you decide for the landscaping! To coin one of my favorite phrases of yours..."Total aside..." How 'bout them Astros?! My dad bought season tickets every year when we lived in Houston, just waiting for a moment like this!
I think a black door and a brass door knocker are a couple that were meant to be. I use to work in the gift department of a department store chain. We carried Gorgeous ( and expensive ) brass. I always tried to display it against a dark background so it would get the respect it deserved. You have made a wonderful choice and the family history makes it all the more special.
Congrat's on your move! I've spent the morning catching up! I have the same doorbell and door knobs and love them! #teamfarmhousebrass all the way!
It's absolutely perfect! In case a preacher doesn't get to it soon- start working on that sermon!
I had those EXACT planters at a house we sold three years ago, and the buyers wanted them, so we sold them with the house. Although they were getting rusty on the bottoms, it hurt my heart. I can't wait to see your version of them!
Karianne, honey, you have a colonial classic kind of house that makes you want to stand a little straighter and say yes ma'am and sir even more. Then when you walk it is wraps you in its loving history and makes you feel safe. Brass knocker and colonial Williamsburg kind of fixing is definitely for this beautiful home!
The layers of sentiment, beauty and love that keep on revealing itself is like a flower bud beginning to bloom. And this one will win awards! Thanks so very much for sharing all the tiniest of details along the way! Prayers that you manage everything with all this transition!
An idea for the landscaping in front of the railings, from front to back (back being the railing side): front: low annuals, such as pansies, underplanted with spring-flowering bulbs middle: floribunda and/or David Austin roses for multiple blooms throughout the year, OR peonies (depending on your zone) rear: tall annuals, such as larkspur, OR hydrangea, again, depending on your zone and if you do peonies or roses, as hydrangea can get rather large You could also do roses in the front of the railings and hydrangeas on the sides of the porch. You can leave the grass as is, or create more plantings in the garden, even creating garden rooms on either side of the walkway that allow you to use your front yard more (and have tons of flowers to cut).
Love the story, and the post. (I have yet to think, "calm down with your stories, KariAnne". ;-) And there is DEFINITELY a sermon in there. Definitely.


is a New York Times columnist.
What would it mean to live generationally once in a while, in a world that now finds the daily newspaper too slow?
We thought the new tech tools would democratize power, but they seem to have centralized it. It's springtime for dictators.


text:
import { nest, timeParse } from 'd3';
import { arrayDiff } from '../functions';

export function simple2stacked(
    data: Array<any>,
    xProperty: string,
    yProperty: string,
    keyProperty: string
): any {
    return nest().key((d: any) => d[xProperty]).rollup((values: any): any => {
        let r: any = {};
        for (let i = 0; i < values.length; i++) {
            let object = values[i];
            if (object) {
                r[object[keyProperty]] = object[yProperty];
            }
        }
        return r;
    }).entries(data);
}

export function simple2nested(data: any, key = 'key'): any {
    return nest().key((d: any) => d[key]).entries(data);
}

export function nested2simple(data: any) {
    let array = Array();
    for (let i = 0; i < data.length; i++) {
        for (let j = 0; j < data[i].values.length; j++) {
            let key = data[i].key;
            let x = data[i].values[j].x;
            let y = data[i].values[j].y;
            array.push({ key: key, x: x, y: y });
        }
    }
    return array;
}

export function simple2Linked(data: any) {
    let linkedData = { links: Array(), nodes: Array() };
    data.map((d: any) => d.class === 'link' ? linkedData.links.push(d) : linkedData.nodes.push(d));
    return linkedData;
}

export function convertPropretiesToTimeFormat(data: any, properties: Array<any>, format: string) {
    data.forEach((d: any) => {
        properties.map((p) => {
            d[p] = timeParse(format)(d[p]);
        });
    });
}

export function convertByXYFormat(
    data: any,
    xAxisFormat: string,
    xAxisType: string,
    yAxisFormat: string,
    yAxisType: string,
    propertyX: string,
    propertyY: string
) {
    data.forEach((d: any) => {
        switch (xAxisType) {
            case 'time':
                d[propertyX] = timeParse(xAxisFormat)(d[propertyX]);
                break;
            case 'linear':
                d[propertyX] = +d[propertyX];
                break;
        }
        switch (yAxisType) {
            case 'time':
                d[propertyY] = timeParse(yAxisFormat)(d[propertyY]);
                break;
            case 'linear':
                d[propertyY] = +d[propertyY];
                break;
        }
    });
    return data;
}

export function unwind(data: Array<any>, valueNames: string[]): Array<any> {
    if (
        !valueNames ||
        !valueNames.length ||
        !data ||
        !data.length ||
        data.constructor !== Array
        || valueNames.constructor !== Array
    ) {
        return data;
    }

    let unwinded = new Array();

    for (let i = 0; i < data.length; i++) {
        let result = unwindObject(data[i], valueNames);
        if (result && result.length) {
            unwinded = unwinded.concat(result);
        } else {
            unwinded = unwinded.concat(data[i]);
        }

    }
    return unwinded;
}

export function unwindObject(object: any, valueNames: string[]): Array<any> {
    let unwinded = new Array();

    let registerKeys = Object.getOwnPropertyNames(object);
    let keyDiffs = arrayDiff(valueNames, registerKeys);

    for (let j = 0; j < valueNames.length; j++) {
        let toPush: any = {};

        if (object.hasOwnProperty(valueNames[j])) {
            toPush[valueNames[j]] = object[valueNames[j]];
            for (let k = 0; k < keyDiffs.length; k++) {
                toPush[keyDiffs[k]] = object[keyDiffs[k]];
            }
            unwinded.push(toPush);
        }
        if (unwinded.length === 0) {
            unwinded = [];
        }
    }

    return unwinded;
}

redpajama_set_name: RedPajamaGithub