Mosquitno keeps bugs away so you can enjoy what you love to do outdoors. Rather than typical messy bug sprays, our innovative insect repellent products are safe, fun, and easily integrated into your favorite outdoor activities. You'll hardly notice you're wearing bug repellent. Just slip on a wristband, sticker or shirt and enjoy the outdoors bug-free. We aim to make bug protection effortless for you! Our mosquito repellents products suit a range of preferences from our all-natural citronella-infused repellent wristbands Perfect for backyard playing, golfing, gardening, fishing, hiking, camping, BBQing, concert-going, or whatever it is you love to do outside.
Sporty, comfortable wristband in lots of fun colors - even glow in the dark!


We at Premier Office Furniture, servicing the Tullamarine Area, are committed to providing your complete office needs. For over 20 years our team has been leading the way in Melbourne's Office Furniture Solutions.
If custom built furniture is what you are after, then Premier Office Furniture has the best Australian Manufacturers ready to build that unique design for your office.


Get an alert with the newest ads for "welder trade" in Toronto (GTA).
POWERWELD Not used. Plastic cover around controls cracked.. that's it. Rest of welder new. Asking $400 will also consider trades. What you got.
Powerweld 180 E flexcore/mig wire welder.
Not used. Plastic cover around controls cracked.. that's it. Rest of welder new. Asking $400 will also consider trades. What you got.
Looking to trade for a welder!


As a CDAP user, I would like to specify the namespace in an underlying storage (e.g. HBase namespace, HDFS directory, Hive database) to use for a particular CDAP namespace.
As a CDAP admin, I want to allow users to access (read/write) a dataset/streams from a program in a different namespace, as long as the said user is authorized to access that dataset to perform the operation.
* Represents the configuration of a namespace. This class needs to be GSON serializable.
// NoteToSelf: Rename NamespaceConfig to NamespaceProperties and mark schedulerQueueName as Nullable.
The NamespaceConfig is exposed through NamespaceMeta.
We are making this decision to have consistency in the behavior. Also, allowing users to use namespace which already has some data in it can lead to various issue. For example, for every namespace in hbase we create a queue table. What if a table with similar name exists ? Furthermore, we don't see a use case where user will want CDAP to handle the lifecycle of custom namespaces or have external data in it.
// NoteToSelf: Sync with Ali Anwar for impersonation to figure out if we need to pre-check for underlying namespace to be existing and empty.
Users can provide custom namespace for one or more or all storage providers. CDAP will be responsible for managing the lifecycle of all the storage provider namespace for which user did not provide any custom value.
This is done to allow users to have flexibility to use custom namespaces for only the needed storage and let CDAP handle others.
Namespace custom mapping is final and immutable. It can only be provided during the creation of the namespace and cannot be changed afterwards.
This is done to keep the design simple for now. Supporting mutable mapping needs answering a lot of other issues like, what to do with existing data ? Will we need a migration tool ? How to migrate hbase, hive, hdfs data for cdap etc.
An underlying storage namespace can be mapped only to one cdap namespace. Users will not be allowed to create two cdap namespaces which uses same underlying storage namespace or its part (subdir). During namespace creation we will explicitly check that no other cdap namespace is using the custom storage namespace. We will also check that the directory is not a subdir of the other directory used in some other namespace.
We are making this design decision because sharing of underlying namespace will lead to a lot of weird consequences since programs will be sharing datasets, metadata etc. For example deleting a dataset from a namespace will delete it from another one too.
User Story 1 and User Story 2 are related. To address user story 2 we need to allow user to specify a namespace for dataset/stream rather than implicitly looking into the namespace where the program is running. Once we identify the cdap namespace for a dataset/stream we fall back to user story 1 i.e. using the custom namespace mapping to access them on underlying storage.
DatasetFramework which is responsible for creating/deleting a namespace in the storage provider will be modified to take NamespaceMeta rather than Id.Namespace.
* Creates a namespace in the Storage Providers - HBase/LevelDB, Hive and HDFS/Local File System.
* Deletes a namespace in the Storage Providers - HBase/LevelDB, Hive and HDFS/Local File System.
The underlying implementation will be changed to create namespaces in underlying storage with the custom name rather than cdap namespace name.
// NoteToSelf: DatasetFramework should not have methods to create/delete namespace. Move it out to an independent interface.
* Get an instance of the specified Dataset.
* @return An instance of the specified Dataset, never null.
We will make ofDataset and ofStream return StreamInput and DatasetInput respectively and these classes will have a new fromNamespace method which can be used specify the namespace. If an user does not use fromNamespace then the dataset/stream will be looked in the current namespace.
Move StreamId and DatasetId class to cdap-api module.
We already have StreamId and DatasetId class in cdap-proto which takes namespace(string) and dataset/stream(string) name.
We can add additional APIs which takes in StreamId/DatasetId to support cross namespace access.
Though, we will keep the existing apis to allow users to access stream/dataset by just providing its name in current namespace.
Now we can add additional APIs in Input class to take these namespaced Dataset/Stream. This is similar to approach 1 but it does not require moving classes from cdap-proto to cdap-api. But it does introduce some duplication as these classes are almost same as StreamId/DatasetId.
UseDataset Annotation: UseDataset is an annotation which we provide users for convenience. Since, its a java annotation the processing takes place at compile time. So, the user will be required to know the namespace of the dataset for the application being written while writing code. Since, CDAP application are self contained entities and not bind to a namespace we will not support cross namespace access through UseDataset annotation. UseDataset annotation should always be used for accessing the dataset in current namespace i.e. the one in which the application will be deployed.
Access in beforeSubmit: Program can access stream/dataset in beforeSubmit() by its name. But theses methods are deprecated now and we expect users to use APIs which take Input class (changes proposed above). Since cross namespace access is a new feature we will not support it through deprecated APIs. In place of these deprecated, initialize/destroy APIs will be added soon and we will support accessing dataset across namespaces in these.
Admin interface for Dataset: We allow users to perform various dataset operation through Admin interface. For example exists(String name), getProperties(String name) etc. We will need to support cross namespace lookup through this interface too but since we don't have any use case for this in this release we are keeping this out of scope.
Once we can accept namespace from an user (User Story 2: Addressed above) it becomes similar to User Story 1 which is being able to map cdap namespace to underlying custom namespace, if one has been provided. This will be addressed by fetching the NamespaceMeta for the given cdap namespace for every DatasetContext.getDatset call through a caching version of NamespaceAdmin.get(Id.Namespace namespaceId). CachingNamespaceAdmin will be injected to all the classes which implement this interface (for example: BasicMapReduceContext, BasicFlowletContext etc) so that they can fetch namespace meta and map to the internal storage provider namespace.
TableId class will be modified to store the custom hbase namespace as a string rather than cdap namespace if one has been provided. Everyone creating an instance of TableId will be responsible for providing the underlying HBase Namespace. We will achieve this with CachingNamespaceAdmin in a similar way as mentioned above.
Streams and Filesets uses NamespacedLocationFactory to get baselocation for streams and filesets. A CachingNamespaceAdmin will be injected to the implementations of NamespacedLocationFactory so that they can look up NamespaceMeta containing underlying custom mapping while generating base location.
Custom Namespace: To support custom namespace for Hive in CDAP we will inject a CachingNamespaceAdmin to BaseHiveExploreService to get the custom hive namespace if one has been provided. We will change the implementation of getHiveDatabase to support this custom mapping.
We can also store the custom namespace mapping for underlying storage handler in the NamespaceId itself. This approach has some advantages and disadvantages.
Storing the custom mapping in NamespaceId itself will remove the need to inject a CachingNamespaceAdmin to the above mentioned place as they will not be responsible for fetching the custom mapping. They can simply get it from the NamespaceId class.
This approach will introduce storing the custom mapping in NamespaceId which is ugly.
We will need to do a RPC call to fetch namespace meta to get custom mapping during the creation of NamespaceId given a namespace name. We can optimize it by caching the mapping for namespaces though.
Support of accessing entities other than dataset/stream in different namespace. For example, a cdap user in namespace ns1, I should be able to create an application app1 using an artifact artifact2 which is present in namespace ns2.
Cross namespace access in explore queries with cdap namespace. Currently, users can do cross namespace access by providing the underlying hive database name.
Admin interface for Dataset should be able to perform crossname namespace access.
Is it worth it to store NamespaceMeta instead of the namespace string in TableId? Is TableId only used for HBase - can it be used anywhere else?
As far as I can see now, storing the hbase namespace will be enough. I think the TableId class should not be aware of cdap namespace or its meta at all. if during the implementation phase we see a need for this we will add it.
This is a cdap-proto class so be careful before doing this.
Design decision #4: Not only check that two namespaces don't use the same directory. But also one directory is not a subdir of the other.
Good point. I made a note of it in the design decision.
The proposed implementation of fromNamespace for the Input's make them mutable. Better return a new Input object.
beforeSubmit()/onFinish() are deprecated but they are being replaced by initialize()/destroy(). Within these methods we need to support accessing datasets in other namespaces.
Added a note in the beforeSubmit section about this. I will work on adding cross namespace access once we have the APIs.
CachingNamespaceAdmin is caching forever because namespaces are immutable? Is that the idea? However, a namespace can still be deleted and recreated with a different configuration.


The AFP Civil-Military Operations School has started using a new edition of student manual after a careful review in the past five months on the old AFPCMOS Student Manual Series 2013. Purposely, the review was to assess the recommended changes and implement necessary revisions on the policies and regulations of the AFP CMO School in administering a course and training.
AFP CMO School Commandant LTC EDGARDO V TALAROC JR (INF) PA, realized the commitment to update the student manual in order to align on the current needs and essential requirements of the school and the students. He stressed that it is an instrument that guides the students on their conduct, actions and performance in schooling and more importantly of becoming a Warrior Diplomat.


Hardanger embroidery or "Hardangersøm" is a form of embroidery traditionally worked with white thread on white even-weave linen or cloth, using counted thread and drawn thread work techniques. It is sometimes called whitework embroidery. It yields stunning, eye-catching textured pieces!


The class introduces basic concepts and principles of robotics. Students will use construction kit for design, assemble and programme the robot. This subject is recommended for students of the second year of the bachelor study. There is no prerequisite for this subject.
1) Use of the robots.
2) The basic principles of the control of the robots.
3) The basic mechanical principles of robots.
4) Control of robot movement.
6) General principles of the control.
7) Advanced principles of the robot control.
9-12) Project - Team development of robot.


text:
#23 1B
Bats: R, Throws: R
Birth DateAugust 11, 1995 (Age: 23)
BirthplaceMarietta, GA
.260 16 52 .332
BOSTON'S NEXT GAME
7:10 PM ET
Preview »Conversation »Tickets »
Last seven days 15 3 3 0 0 1 4 3 .200
Home 150 25 41 4 0 9 33 17 .273
vs. Tor 49 6 13 2 0 4 12 4 .265
vs. AL 266 39 69 8 1 15 50 28 .259
July 40 5 10 2 0 2 8 4 .250
vs. Sanchez (Car.) 2 0 0 0 0 0 0 0 .000
Complete Splits »
Chavis hits 1st career grand slam
Red Sox go off for 5-run 3rd inning
2019 Regular Season 74 285 41 74 8 1 16 52 28 105 2 1 .260 .332 .463 .795
Career 74 285 41 74 8 1 16 52 28 105 2 1 .260 .332 .463 .795
Projected 126 486 70 126 14 2 27 89 48 179 3 2 .260 .332 .463 .795
10 Game Log
DATE OPP RESULT AB R H 2B 3B HR RBI BB SO SB AVG
07/16 vs TOR L 4-10 3 1 1 0 0 0 0 1 2 0 .260
07/15 vs TOR W 10-8 3 1 1 0 0 1 4 2 1 0 .259
07/14 vs LAD L 4-7 4 0 1 0 0 0 0 0 2 0 .258
07/13 vs LAD L 2-11 1 0 0 0 0 0 0 0 0 0 .258
07/12 vs LAD W 8-1 4 1 0 0 0 0 0 0 1 0 .259
07/07 @ DET W 6-3 4 0 0 0 0 0 0 0 2 0 .263
07/06 @ DET W 10-6 4 0 1 0 0 0 1 1 2 0 .267
07/04 @ TOR W 8-7 4 1 1 0 0 1 3 0 2 0 .265
07/03 @ TOR L 3-6 4 0 2 2 0 0 0 0 0 0 .265
Complete Game Log »
MICHAEL CHAVIS NEWS FEED
Michael Chavis crushes a grand slam to deep center field to give the Red Sox a 5-0 lead in the first inning.
385 feet to center?! 'It's going to be a blast': Yanks, Sox dish on London Series
Ahead of their games this weekend at London Stadium, we asked players from both teams about the trip, from the ballpark dimensions to sightseeing to future MLB games abroad to Harry Potter.
about 23 days ago | Joon Lee and Coley Harvey
'Right now, they're better than us': As Rays rock Red Sox, pressure mounts in Boston
The defending champs need to right themselves -- quickly -- if they want to compete in the AL East.
about 37 days ago | Joon Lee
Are the Red Sox ready to make a move in the AL East? The Rays stand in their way
Four games in three days between two of the best teams in the American League could help shake up their top-heavy division.
Unlikely heroes, injuries and a World Series hangover: What you need to know about Red Sox-Yankees
The AL East rivals have been anything but predictable this season. We set the stage for this weekend's series in New York.
about 49 days ago | Coley Harvey and Joon Lee
Red Sox get 10 straight hits in nine-run inning
The Red Sox fell one hit shy of the major league record for consecutive hits, getting 10 straight hits against White Sox lefty Manny Banuelos during a nine-run third inning Saturday night.
about 73 days ago | ESPN News Services
What should Boston expect from rookie slugger Michael Chavis?
He has already clouted six home runs for the Red Sox and given the reigning champs an unexpected upgrade in the infield.
about 77 days ago | Bradford Doolittle
Michael Chavis' mad scramble to reach The Show
Buying a change of clothes at the airport, racing to the park, then being told to get ready to hit minutes later? Welcome to the majors, Mr. Chavis.
2019 Games By Position: DH (1), PH (1), 3B (3), 2B (30), 1B (43)
Debut: 4/20/2019 @TB - 1-1
Drafted: 2014: 1st Rnd, 26th by BOS

redpajama_set_name: RedPajamaCommonCrawl


After a seemingly quiet few days, Worsley wakes to his window shattered by a piercing cry. He runs outside to find a strange young woman garbed in grey that is most distraught. He brings her in only for her to disappear the next day. At the same time, one of the students is found dead and Worsley becomes a prime suspect. He must find the banshee again to discover who the true murderer is.


text:
Whitewater "Dark Planet" releases October 16th
Posted by The ReZident | Sep 23, 2020 | ReleaseZ | 0 |
Bad Elephant Music is delighted to announce the release of Dark Planet, the brand new album from British ambient prog duo Whitewater, on October 16th 2020.
Building on the success of their acclaimed 2017 album Universal Medium, this new release sees an expansion of their soundscapes, with Stuart Stephens and Paul Powell being once again joined by BEM mainstay Mike Kershaw, who writes and sings three tracks. Gareth Cole (Mike Kershaw Band, Fractal Mirror, The Rube Goldberg Machine, Under A Banner) contributes his signature guitar stylings to four songs.
"Dark Planet has been a long time in the making", says Stuart. "We'd hoped to get it out earlier, but Covid-19 had other ideas! We think this is a real gear change in writing and production, and it's been a blast working with Mike and Gareth, too!"
"We're delighted to welcome Whitewater back for their new album", says BEM's David Elliott. "The guys have really upped their game for this album, and if you like atmospheric progressive music, you're going to love this one."
Dark Planet will be available on CD and download, with pre-orders commencing very shortly.
Whitewater was formed in 2013 by Stuart Stephens and Paul Powell. Both are tremendously multitalented – Stuart is an all-in-one vocalist, guitarist, keyboards player, while Paul handles a complex range of percussion as well as drum programming. Stuart has been an avid progressive rock fan for as long as he can remember, and formed Whitewater to combine the sounds of classic prog bands like Pink Floyd and Supertramp with a more contemporary ambient aesthetic more akin to Orbital or The Future Sound of London.
Whitewater's first album, The Sound of a Galaxy Smashing, was a highly experimental venture, but it served to solidify the ideas and sounds Stuart and Paul had been working with into something more coherent, and laid the foundations for what would follow. They began working simultaneously on a second studio album and an EP, Slipstream – the latter was mastered by BEM's very own David Elliott.
Obscured by the Sun, the second album, released in early 2015 alongside a second EP, Raison d'être. Between these two releases, the band realised that they had developed a sound that was very firmly theirs, and drove them to refine and adjust the formula even further. Universal Medium, their first album after joining Bad Elephant Music in 2017, built on this signature sound, bringing the band greater acclaim.
Dark Planet, to be released in Autumn 2020, further cements Whitewater's alliance with BEM, as well as building on their collaboration with Mike Kershaw, and guitarist de jour Gareth Cole
Things That Can't Be Said
Time To Move Along
Everything (Up Till Now)
Whitewater are Stuart Stephens and Paul Powell.
Mike Kershaw – vocals (2, 3, 8) Gareth Cole – guitar (3, 6, 9, 10 Clare Stephens – backing vocals (3)
All tracks written by Whitewater except:
2, 3, 8 – lyrics by Mike Kershaw
3, 6, 9, 10 – guitar parts composed by Gareth Cole
Written, produced and recorded at The Madhouse Cover artwork by Marc Payne
PreviousLegendary Producer JOHN FRYER Returns With New Single From His Project BLACK NEEDLE NOISE, Readies Full Length Album!
NextJoyful Noise Announcing: Joan of Arc 'Tim Melina Theo Bobby'
Quintessential American Garage Band THE LIMITS Continue To Find New Fans Under The Leadership Of Musician RICK LEVY!
AUTOGRAPH RELEASE NEW SINGLE 'SOULS ON FIRE', WITH PROCEEDS TO BENEFIT TRINITY HEALTH OF NEW ENGLAND
The Room Release Screaming Through the Noise (Live in Nice) Single as Tribute to Joshua Willson
CHRONICLES OF HATE – THE BIRTH OF HATE – EXTREME METAL MUSIC


We are VAR Bike Valve manufacturer from China. We have been export VAR Bike Valve to Americas, Europe, Middle East for many years. Our VAR Bike Valve have good quality with reasonable price. Our VAR Bike Valve passed the SGS Certification. We supply OEM service of VAR Bike Valve for you. We have rich experience in manufacturing VAR Bike Valve. We dedicate ourselves to manufacture and supply of VAR Bike Valve with nice service.The VAR Bike Valve products are suitable for inner and outer decoration of buildings.If you need VAR Bike Valve,please email us!


text:
Why Do People Say Marines Eat Crayons? (Explained!)
Culture / By Lisa Jones
The idea that the United States Marines would really eat crayons is an absurd one and has been circulating the internet as a long-lasting and confusing meme for a while now.
Generally thought to be a "funny" insult to the United States Armed Forces, the "marines eat crayons" craze has confused many people and has even caused some individuals to think it was true. But where does this come from?
Why do people say that marines eat crayons?
The general idea for this phrase or statement is a derogatory term that suggests those that are in the marines have low intelligence or are stupid. This is mostly used as an insult and to insinuate that marines are lesser than the other branches of the United States military.
The true origins of this statement are unknown, but it continues to circulate in memes and forums online today.
What's the Origin of the Saying "Marines Eat Crayons"?
Do Marines Really Eat Crayons?
What Do You Actually Eat in Marine Boot Camp?
What Are Some Typical Marine Jokes That Includes Crayons?
The origin of why individuals online say or believe that marines eat crayons is difficult to pin down.
The phrase itself is a modern one and is considered to be a false-truth meme that people online spread for the fun of it.
Because it is derogatory to a branch of the United States Armed Forces, it is generally described as originating from either those jealous of the prestige and reputation that marines have or has been created and circulated by other branches of the armed forces that believe marines are not worthy of their title.
While there is no date and time to pinpoint the origins of this rumor or meme, the consensus is that its origins are from a group or individual that does not approve of or is jealous of the marine branch in the military.
Marines do not eat crayons.
While the rumors continue to circulate the internet, the idea that marines eat crayons is widely known to be a falsehood. Instead, it is simply used as a joke or tactic to belittle that certain group of people.
Those who do believe it are quickly taught otherwise with a Google search, and it is clear it is simply "one of those things" people say online.
It is also common to see different variations of this joke played out in different ways, saying that marines are not allowed to learn to read or write until they make a certain ranking in their division or that marines are trained to be "slightly more intelligent than police horses to prevent problems during parades."
Most comments are made to disparage this group of people in the same way that they use derogatory terms for other groups or members of organizations. It is not a kind phrase or statement to use and is, in fact, hurtful in many ways.
So, no, marines do not eat crayons and are not of lower intelligence than other branches of the United States military.
It is simply a long-standing, running joke.
Malnourishment and dehydration are huge concerns when it comes to any organization or group of people. The marines are no exception.
Recruits that are in training or marines out in the field are given particular foods and rations based on their level of training or current environmental situation.
For example, if you are a recruit at a base, you will receive three meals per day and are usually given food in a mess hall or cafeteria.
Those meals are often hot meals and include:
If you were a marine out in the field or in a war zone, your diet is going to differ greatly and will often consist of field rations and the basic necessities to keep you going.
Vegetarian options are also provided at many boot camps and bases, and most marines are able to meet their dietary restrictions.
Furthermore, it is made sure that marines are given the caloric intake they require to stay healthy when they are exerting a lot of energy, going through rigorous training, or losing weight.
This will prevent them from being malnourished or lose too much weight and become sickly.
Furthermore, marines are made to go through health checks or examinations so that they can be carefully monitored in case something goes wrong with their health. This prevents any sicknesses or spreading of illnesses to others.
Finally, marines are given proper portioning to guarantee that they are getting their carbohydrates, fats, proteins, vitamins, and water needed to keep their bodies fueled throughout the training.
Typical marine jokes that include crayons will usually allude to the lack of intelligence that they are putting upon that particular group.
They will also simply be about eating crayons in particular.
For example, there is a joke about a husband and wife at a table in a restaurant. The wife looks at her husband, who is a marine, and points at the children's menus with crayons attached. The woman will say, "look, appetizers."
Other jokes will simply refer to marines as "crayon eaters" or "Crayola gobblers" and will use it in place of the word "marine."
An example of this would be that someone would say, "Hey, crayon eaters, make sure not to get your feet wet in training, even though your boots are supposed to be marine-proof."
This means that they are belittling their intelligence and lack of ability to function normally.
The overall consensus of this idea that marines eat crayons is a strange one.
Again, the origins of this joke are unknown, but most likely originate from a different branch of the United States Military who see marines as lesser, or those who are jealous of the prestige that marines receive when they join up.
Either way, the idea that marines would eat crayons, and that it is used as an insult to make fun of individuals signing up to be put into danger, leaves a bad taste in your mouth.
Like "macaroni orange."
Parris Island's Food Menu for Marines
Copyright © 2021 | Mangoful.com


Establish a communication plan with your parents or guardians before you leave the U.S. Discuss how frequently you plan to contact home and which methods are most affordable and convenient, depending on what is available in your host city. After your arrival, take into account that it may take a few hours for you to get situated before you will have the opportunity to contact home.
Research your cell phone carrier's international calling and data options. In case of emergencies, you might be able to use your cell phone, but it probably will not be economical for daily use. Most students abroad are able to rent a local phone and SIM card for a very affordable price. It is more common abroad than in the U.S. to have a "pay-as-you-go" phone that often has free incoming calls and/or texts. Alternatively, you may be able to rent an international SIM card to use in your own cell phone, if it is unlocked. Talk to your cell phone carrier before you leave to determine if they will unlock your phone.
Be aware that in many other countries, internet connections are much slower than in the U.S. Check with your program director about internet availability on your host campus, in your residence hall/host family's house, and around your host city. As an alternative, internet cafes are common in many overseas cities.
Davidson participates in Eduroam, a secure, world-wide roaming access service that allows students, faculty, and staff to get internet connectivity easily when visiting other participating institutions. By using your Davidson network credentials, you can access Eduroam at more than 400 U.S. locations and hundreds more abroad. Get more information at https://www.eduroam.us/. Find Eduroam locations at https://www.eduroam.org/where/.
Below are Apps that may be useful.
Some require a fee and others are free. Please click on each one of them for more information.
This information is only for informational purposes and using any of them is at the sole discretion of each individual.


text:
Christmas & Advent /
A Family Christmas
By Caroline Kennedy
One of the many joys of Christmas comes from the traditions associated with it--whether it's a tree-trimming party or a particular recipe for egg nog, each family's celebration is special. And now bestselling author Caroline Kennedy gives this charming collection of her Christmas favorites to families who love to celebrate the spirit of the holidays.
A Family Christmas features a letter written to President Kennedy from a little girl who was concerned about Santa Claus and a letter Caroline, herself, wrote to Santa when she was a child. The book also includes full text and excerpts from the following holiday literature:
- Little Tree by E. E. Cummings
- The Night Before Christmas by Clement C. Moore
- Yes Virginia, There Is a Santa Claus by Francis Pharcellus Church
- A Christmas Carol by Charles Dickens
- The Selfish Giant by Oscar Wilde
- A Christmas Memory by Truman Capote
- The Shepherd, the Angel, and Walter the Christmas Miracle Dog by Dave Barry
- The Cobbler's Guest by Leo Tolstoy
- Karma by E. A. Robinson
- Christmas to Me by Harper Lee
In her introduction, Caroline Kennedy relates the importance of the holiday to her family, and shares how the literature collected here is an essential part of her own tradition. With an exquisite package--including a ribbon marker in the first edition--A Family Christmas will delight anyone lucky enough to find it under the tree.
- All of Caroline Kennedy's books with Hyperion have been New York Times bestsellers.
- The most recent, A Family of Poems, was a huge success, netting nearly 200,000 copies. It was a #1 New York Times, Publishers Weekly, and Book Sense bestseller, and spent multiple weekson the USA Today, Los Angeles Times, and San Francisco Chronicle lists as well.
- A Patriot's Handbook was also a major hit, netting more than 200,000 copies. The Best-Loved Poems of Jacqueline Kennedy Onassis has sold almost half a million copies. And Profiles in Courage for Our Time was a New York Times bestseller.
- The first printing of A Family Christmas will have a ribbon marker. This beautiful package will make a perfect keepsake gift.
Temporarily out of stock, more on the way!
Manufacturer: Hachette Books
Author: Caroline Kennedy


Addresses the spectrum of problems in the care and support of cancer patients--prevention and detection, geriatric and pediatric cancer nursing, medical and surgical oncology, ambulatory care, nutritional support, psychosocial aspects, patient responses to treatment modalities, and interventions.
Magazine covers are used for illustrative purposes only and you may not receive a copy of the particular issue depicted. Your subscription will include the most recent issue once your subscription begins. Magazine covers are the property of the publisher. This site is not officially affiliated with, associated with, or endorsed by Cancer Nursing or the publisher.


text:
The Express Tribune > World
Rights group condemns US 'vigilante' treatment of migrants on border
United Constitutional Patriots have been patrolling US-Mexico border near Sunland Park, New Mexico
In this file photo taken on June 30, 2018 people hold placards during a 'Families Belong Together' march and rally in Los Angeles, California where a thousands turned out to decry the Trump administration's detention of families policy at the US Mexico border. PHOTO: AFP
The American Civil Liberties Union of New Mexico on Thursday called for state authorities to investigate a small group of armed US citizens who they alleged are illegally detaining migrants entering the United States.
The United Constitutional Patriots, who claim to be mainly military veterans, have been patrolling the US-Mexico border near Sunland Park, New Mexico, since late February in search of illegal border crossers.
They post near daily videos showing members dressed in camouflage and armed with semi-automatic rifles holding groups of migrants, many of them Central American families seeking asylum, until US Border Patrol agents arrive to arrest them.
Trump says build US-Mexico wall or he'll seal border
The small volunteer group says it is helping Border Patrol deal with a surge in undocumented migrants but civil rights organisations like the ACLU say it is a "fascist militia organisation" operating outside the law.
"We cannot allow racist and armed vigilantes to kidnap and detain people seeking asylum," the ACLU said in a letter to New Mexico Governor Michelle Lujan Grisham and Attorney General Hector Balderas.
"We urge you to immediately investigate this atrocious and unlawful conduct."
The offices of Lujan Grisham and Balderas did not respond to requests for comment.
On a March 27 visit to El Paso, Texas, next to Sunland Park, then US Customs and Border Protection (CBP) Commissioner Kevin McAleenan said his agency, which runs US Border Patrol, did not need the help of citizens to police the border.
"We are not asking for civil society groups to provide border security assistance," said McAleenan, who was recently appointed acting secretary of the US Department of Homeland Security.
US extends troop deployment at Mexico border
US CBP did not respond to a request for further comment. UCP member John Horton did not immediately return calls. Horton has previously told media that UCP members are armed for self defense, as is their right under US law, and aware they cannot detain people entering the United States illegally.
US armed groups have long patrolled the US border, their numbers rising during upticks in migrant apprehensions, such as during the mid 2000s when the Minuteman Project was established.
The UCP says it is responding to a rise in migrant arrests to their highest monthly levels in more than a decade.
The ACLU said the group was a product of the Trump administration's 'vile racism' that "has emboldened white nationalists and fascists to flagrantly violate the law."
Read more: Civil Liberties , Customs and Border Protection , Migrants
Reader's Recommendations
Bunny Rabbit
Apr 19, 2019 - 7:45PM
I totally empathise with these immigrants but just because US is rich , they are under no legal obligation to take in these migrants . Yes, its our moral obligation . US should help these immigrants and their countries to get back their economy on track .Recommend
Leave Your Reply Below Click here to cancel reply.
Your comments may appear in The Express Tribune paper. For this reason we encourage you to provide your city. The Express Tribune does not bear any responsibility for user comments.
Comments are moderated and generally will be posted if they are on-topic and not abusive. For more information, please see our Comments FAQ.
All Notre-Dame paintings to be removed as officials head inside


text:
Request a quote >>
Home-Owners
Mobile Sentiments
Facebook Data Breach: What You Need to Know
03/23/2018 Rudly Raphael
Facebook has been all over the news this week due to reports that Cambridge Analytica, the Trump campaign's data firm, was involved in a data collection scheme. This allowed Cambridge Analytica access to the private information of over 50 million Facebook users. We discuss what you need to know about this recent scandal, and what it means for Facebook users.
WHAT IS CAMBRIDGE ANALYTICA?
Cambridge Analytica is a data firm that offers companies and political parties services to "change audience behavior". The company was created when Steve Bannon approached conservative hedgefund billionaire Robert Mercer to fund a political consulting firm. The firm harvested private information from the Facebook profiles of more than 50 million users without their permission, in order to target them with personalized political advertisements.
myPERSONALITY
MyPersonality was the application Cambridge Analytica used to harvest the information. It was a popular Facebook personality quiz that could be used to build psychological profiles of the people who took the quiz, and, due to a loophole in Facebook API, allowed it to collect data from the Facebook "friends" of the quiz takers as well.
FACEBOOK'S RESPONSE
The company's stock price has taken a beating since the revelation, dropping 6.8% on Monday and another 2.5% on Tuesday. Facebook founder and CEO Mark Zuckerberg released a statement on Wednesday, saying,
According to Zuckerberg, Facebook plans to investigate and audit all apps that had access to large amounts of information. If an audit reveals any misuse, he said, the developer will be banned, and Facebook will inform any users affected by the app's collection of identificable information.
It certainly sparks a larger debate for Facebook's 2.2 billion active users—how safe is their personal data? And how is it being used? Facebook allowed a third-party to implement an application for the sole purpose of gathering user's data. Furthermore, Facebook has known about this issue for more than two years, and only now that it has been made public are they ackowledging their mistake. Facebook has publicly touted their ability to accurately profile voters using the information they give to the site.
Critics are calling for tough new regulations, and celebrities are urging users to quit Facebook, with the Twitter hashtag #deleteFacebook. Users have always been aware that Facebook collected their data, but perhaps did not realize the extent and possible ramifications. This invasion of privacy has certainly been an eye-opener for millions of unwitting users across the country.
How Can Businesses Recover Consumer Trust After A Data Breach? How Facebook's New Buy Button Impacts User Conversion Lab Rat or Just Old Hat? Should Facebook Apologize? How the Entertainment Industry is Using Data Collection
data breachfacebook
Latest insights and trends on market research and surveys
Should Veterinarians Be Called Doctors? During an exchange between members of our veterinary panel…
What Are The Odds Of Randomly Meeting Someone You Know? I live in Chicago, along with close to three million…
Advantages and Disadvantages of Mobile Surveys Smartphones. Almost everyone has one. According to comScore, smartphones made…
The 5 Best Books on Market Research There is a lot of market research being conducted out…
10 Iconic Products Originally Invented For Something… There comes the idea. There comes the vision. There…
Looking for anything in particular?
QuestionPro Survey Software


text:
/**
 * Nov 10, 2013
 * AddressObject.java
 * Daniel Pok
 * AP Java 6th
 */
package data;

import java.io.Serializable;

/**
 * @author Daniel
 *
 */
public class AddressObject implements Serializable{

	/**
	 *
	 */
	private static final long serialVersionUID = 4110914305330481238L;

	public AddressObject(){
		super();
	}
}

redpajama_set_name: RedPajamaGithub


The Enterprise Europe Network helps SME's to make the most of the European marketplace. Working through local business organizations, it can help to : develop business in new markets, source or license new technologies, access EU finance and EU funding.
With close to 600 member organizations across the EU and beyond, this Network counts among its members chambers of commerce and industry, technology centers, universities and development agencies. It also provides European information and business opportunities through his marketing intelligence.
LUCI (Lighting Urban Community International) is a unique international network bringing together cities and lighting professionals engaged in using light as a major tool for sustainable urban, social and economic development.


text:
import random
from numpy import array
from numpy import transpose
from numpy.matrixlib.defmatrix import matrix

def cost_function(a, b, l1=False):
    """Calculates cost function.

    This function calculates L1-norm (element-wise sum of absolute differences)
    or L2-norm (element-wise sum of square of differences) between the original
    matrix and reconstructed matrix.

    Args:
        a: A NumPy Matrix object representing the original matrix.
        b: A NumPy Matrix object representing the reconstructed matrix.
        l1: A boolean indicating whether or not L1 norm should be used instead
        of L2 norm.

    Returns:
        A double representing the value of cost function.
    """
    cost = 0
    for i in range(a.shape[0]):
        for j in range(a.shape[1]):
            cost += abs(a[i, j] - b[i, j]) if l1 else pow(a[i, j] - b[i, j], 2)
    return cost

def factorize(data_matrix, num_of_factors=10, num_of_iterations=100, l1=False):
    """Factorizes data matrix and returns weights and factors matrices.

    This function initializes weights and factors matrices with random values
    from uniform distribution and then searches for best solution using
     multiplicative update rules.

    Args:
        data_matrix: A NumPy Matrix object representing the original matrix.
        num_of_factors: An integer representing number of factors to be
        extracted.
        num_of_iterations: Number of iterations for multiplicative update
        rules.
        l1: A boolean indicating whether or not L1-norm should be used instead
        of L2-norm for cost function.

    Returns:
        A tuple consisting out of weights and features matrices.
    """
    if data_matrix[data_matrix < 0]:
        raise ValueError('Matrix contains negative values.')

    w = matrix([[random.random() for i in range(num_of_factors)]
                for j in range(data_matrix.shape[0])])
    h = matrix([[random.random() for i in range(data_matrix.shape[1])]
                for j in range(num_of_factors)])

    for i in range(num_of_iterations):
        cost = cost_function(data_matrix, w * h, l1)
        if cost == 0:
            break
        hn = (transpose(w) * data_matrix)
        hd = (transpose(w) * w * h)
        h = matrix(array(h) * array(hn) / array(hd))
        wn = (data_matrix * transpose(h))
        wd = (w * h * transpose(h))
        w = matrix(array(w) * array(wn) / array(wd))
    return w, h


text:
Share this Story: Inheritances given 'with strings' are popular, just don't attach too many
Inheritances given 'with strings' are popular, just don't attach too many
Age-related requirements are seen as sensible, but beware of 'parenting with your wallet'
Cindy McGlynn • Canadian Family Offices
The best way to avoid giving your trustees a headache is to abide by the law and be as specific as possible with terms and conditions. GETTY IMAGES
When her clients wanted to set up a trust to fund their grandchildren's education and any future health concerns, Gluskin Sheff's vice-president of wealth planning, Jag Gandhi, applauded them. Then she encouraged them to dig deeper – not into their pocketbooks, but into the fine print. What did they mean by education? Was something other than a college or university acceptable? What counts as a health concern?
Conditional inheritances are popular. They can be effective and gratifying ways to give a financial gift, but the details are important and there can be downsides.
Just how common is it to give an inheritance with strings attached? According to a 2017 CIBC poll, 50 per cent of parents want a say in how financial gifts to their children are used.
"It's very, very common," says Jamie Golombek, managing director of tax and estate planning for CIBC Private Wealth Management in Toronto. The most popular condition attached to an inheritance is age, and Golombek says it's also typical for money to be unlocked in stages, where some funds become accessible at age 20 or 25, and the final portion comes a decade later.
An age-based gift is simple and sensible, says Andrew Jeffery, director of client services at Northwood Family Office in Toronto.
"We often find that if you use 'coming of age' as the primary condition of inheritance, you're ensuring that people are ready to receive the capital and that they have already forged their own sort of path and identity," says Jeffery. "And this often increases the likelihood that they'll be good stewards of the family wealth."
Other common strings attached include milestone life events, such as reaching an educational goal or buying a first home.
Don't give your trustee a headache
When it comes to the execution of a gift, a trust is generally recommended. Trusts are flexible and they're overseen by trustees who can help ensure the funds are doled out as the donor intended, as long as those conditions don't run afoul of public policy. (You can't set immoral or harmful conditions, for instance, or encourage acts that can hurt society in general.)
The best way to avoid giving your trustees a headache is to abide by the law and be as specific as possible with terms and conditions.
Gandhi's clients who left their grandkids an education fund were setting a good example.
"We spent a considerable amount of time defining what the client considered education and health concerns, so that it was properly described in the will," she says. "This is to make sure there's no confusion on interpretation for the trustees."
Ultimately, you want to try and raise your children so their actions are a result of the values that you have instilled in them, not because they're responding to financial incentives.
Andrew Jeffery, Northwood Family Office
Sometimes families find unique ways to use financial gifts to incentivize desired behaviour. Jeffery said some families create an informal "family bank," where family members can seek funding for entrepreneurial endeavors.
"It's a way for families to prepare and train the next generation and promote good, sound financial practices," he says.
Such banks often have unique criteria, Jeffery says, but "often family members would need to submit a business plan and perhaps they would need to present it and defend it before the family bank provides an investment or a loan to that individual. In an ongoing capacity, there could be criteria where perhaps they need to provide financial statements, updates on how the business is performing, or even repay the loan in the future."
Lower your taxes
Golombek says he has also recommended a matching incentive trust to clients, though that strategy is not commonly used. In this scenario, children have to demonstrate they've earned income of their own and the trust would match the earnings, or sometimes multiply them.
"Some very wealthy families are worried that if they leave their children large amounts of money, the kids will stop working, they won't be motivated, and they'll just start living off their parent's inheritance," says Golombek.
The benefits of family branding, besides making everyone look good
In a rocky marriage, a 'no-divorce divorce' could be the answer for HNW couples
Sometimes, the conditions on the funds are less surprising than the recipients designated to receive them. Gandhi says it's increasingly common for "sandwich generation" adults to establish trust funds to care for both their children and their aging parents. Trust funds for pets are also a thing.
But you don't have to wait until you're gone to share your wealth. Giving financial gifts while you're alive will help ensure the gift is used the way you intended, and it can be gratifying to see family members flourish. There may be tax benefits, too.
"The kids might be in lower tax brackets, and you're in a high tax bracket, so giving money to the kid could actually produce less tax for the entire family," says Golombek. "It could be done just for tax planning purposes."
Too many strings
Are there any downsides? If you don't do your math first, maybe. Everyone needs a solid financial plan to ensure their own expenses are covered before handing out financial gifts. "For people of significant wealth, there won't be a problem," says Golombek. "But everyone needs a retirement plan."
Employing too many strings can lead to other problems, says Jeffery.
"The risk of feeling resentment is probably the big one. The term you often hear is 'parenting with your wallet,' and you want to avoid that. … Ultimately, you want to try and raise your children so their actions are a result of the values that you have instilled in them, not because they're responding to financial incentives."
Communication can help. Jeffery says families may leave a "letter of wishes" to accompany a trust or will, explaining the intent of the gift.
"You don't want to leave any surprises for the next generation," he says. "That doesn't mean you need to do a big reveal and say 'here's what you're getting' and 'here's how much we're worth.' But start sharing your values early or maybe even complete a values exercise to get the wheels spinning with your family. It's a great kickoff to open up lines of dialogue that can ultimately lead to more in-depth conversations."
News Near #city#


text:
Prince William's Voicemail Has Been Hacked
Prince William becomes the victim of Britain's phone-hacking scandal as the trial of journalists surfaces.
It is reported that the journalists are accused of illegally listening into private messages over the cell phones of the British royal family. As the voicemails are being played by the court, there are some adorable information: the Duke of Cambridge calls his wife "babykins" in 2006 while they are still dating. He also likes to make a prank call to his brother, Prince Harry. In one voicemail, the 31-year-old royal is using a "falsetto voice" when he is pretending to be his brother's girlfriend, Chelsy Davy. He allegedly remarked that his younger brother is the best looking ginger in the world. It is also revealed that the Prince William nearly shot by black rounds while running around the woods of Aldershot and getting terribly lost. Meanwhile, the Former News of the World managing editor and former editor are accused of conspiring to hack phones between October 3, 2000, and August 9, 2006. And the case also includes the former News International chief executive.
Categories Kate Middleton, Prince William Tags kate middleton and prince william latest news, kate middleton and william, latest on prince william and kate middleton, pictures kate middleton prince william Post navigation
The Cause of Paul Walker's Death Is Unveiled
Eminem And Kanye West Are Asked To Perform For A Super Bowl Party Gig


Dr. Bela Pandit, of the Pandit Foot & Ankle Clinic in Evergreen Park, Illinois, is a nationally-recognized, double board-certified physician, offering compassionate and leading-edge care for all types of foot and ankle issues. Experienced in the latest diagnostic treatments, Dr. Pandit's expertise is frequently tapped by local and national news media. She has extensive experience in treating: neuropathy, heel and foot pain associated with arthritis, plantar fasciitis sprains, toenail fungus, bunions, and hammertoes. In addition, she designs custom orthotics to alleviate pain and alignment problems for patients with flat or overarched feet.
Dr. Pandit is committed to providing patients with outstanding and compassionate care. She takes great interest in her patients and is proud to be the physician to many complete families. She has a special interest in runners and athletes, both professional and casual. She strives to help her patients get back to the activities they love quickly and safely. She is certified in laser techniques for removal of fungal nails, veins, tattoos, warts, and hair.
Dr. Pandit was born and raised in New Jersey and graduated with honors from Boston University with a B.A. in biology and art history while completing a highly competitive pre-medical curriculum. She went on to earn her medical degree from Rosalind Franklin/Chicago Medical School with a concentration in Podiatric Medicine and Surgery. She served as chief resident of the prestigious residency program at Loretto Hospital in Chicago.
She utilizes the latest technology, including laser and shockwave treatments and minimally invasive surgical procedures.
In her free time, Dr. Pandit enjoys running, yoga and cooking.


text:
Offering a Pay-for-Performance Program to Oncology Practices Increases Prescriptions of Evidence-based Cancer Drugs
National program is the first to effectively change prescribing patterns among oncologists toward higher-quality cancer care
PHILADELPHIA—A pay-for performance program that offers enhanced reimbursement to oncology practices for prescribing high-quality, evidence-based cancer drugs increased use of these drugs without significantly changing total spending on care, Penn Medicine researchers report in a new study published online today in the Journal of Clinical Oncology. This is the first study to demonstrate how a national insurer's voluntary pay-for-performance program can successfully change prescribing patterns among oncologists to deliver higher-quality cancer care.
"We know that prescribing evidence-based cancer drugs is high-quality care and increases both the length and quality of life for patients with cancer," said co-lead author Justin E. Bekelman, MD, director of the Penn Center for Cancer Care Innovation at the Abramson Cancer Center, a professor of Radiation Oncology in the Perelman School of Medicine at the University of Pennsylvania, and senior fellow at the Leonard Davis Institute for Health Economics. "And yet, changing prescribing patterns has been and remains a big challenge. Based on what we found here, paying oncology practices to prescribe evidence-based drugs can serve as a valuable tactic to improve the quality of cancer care."
To study the program's impact on prescriptions and spending, the researchers analyzed insurance claims data of cancer patients between 2014 and 2017. They found that a payment of $350 a month per patient to oncology practices when oncologists prescribed evidence-based cancer drugs increased prescriptions of those drugs by 5.1 percentage points. The study included nearly 1,900 oncologists and more than 25,000 patients with breast, lung, or colorectal cancers across 14 states—62.2 percent of patients under the program received evidence-based drugs compared to 57.1 percent of those patients without the program.
Evidence-based cancer regimens have been shown to lead to better outcomes, including longer life and less toxicity; however, despite this, not all patients receive them.
Historically, pay-for-performance programs in health care have shown mixed results. Insurers, including private and government entities, have implemented these programs and others as a way to improve the quality of care and also decrease cost growth in health care.
In cancer care, where spending is driven in large part by the costs of cancer drugs and is expected to reach more than $170 billion in 2020, few programs to improve care or reduce spending have had success. A three-year evaluation of Medicare's Oncology Care Model program, an episode-based payment program with no specific incentive for prescribing evidence-based drugs, showed no significant impact on spending nor utilization of emergency department, hospitalizations or cancer drugs.
While not a silver bullet, the voluntary pay-for-performance program from Anthem, Inc., a national health benefits company, known as the Cancer Care Quality Program, is the first and largest to show a significant increase on evidence-based prescriptions in the cancer care setting.
In addition to finding an increase in prescriptions, the researchers found that overall spending did not significantly change under the pay-for-performance program. The amount spent on cancer drugs over a six-month period, however, increased in the pay-for-performance group, going from $48,030 to $51,369, and patient out-of-pocket expenses increased by a small but statistically significant amount, going from $2,217 to $2,470. The researchers also found substantial variability in cancer drug prescribing among oncology practices. Over the course of the study, physicians prescribed 402 unique drug regimens, even though only 60 of those regimens were evidence-based drug regimens in the program.
Both findings highlight the need for further interventions.
"The cost of cancer care is too high, just like other areas in health care," said senior author Amol S. Navathe, MD, PhD, an assistant professor of Medical Ethics and Health Policy and the Healthcare Transformation Institute, and a senior fellow at the Leonard Davis Institute for Health Economics at Penn. "This program is a much needed example of an effective program—one that improved quality of care for patients. As we look forward, we need to build on the success of this program to design programs that also decrease costs."
Researchers from HealthCore, a health outcomes subsidiary of Anthem, and AIM Specialty Health, a wholly owned subsidiary of Anthem, also served as co-authors on the paper.
"We are pleased that this analysis demonstrates that our program indeed can improve the rate of high-value, evidence-based prescribing in oncology," said David Debono, MD, Anthem national medical director for oncology. "Anthem and AIM have placed a considerable focus on the Cancer Care Quality Program since 2014 and will continue to analyze new therapies as they are approved."
Study authors include co-lead author Atul Gupta, PhD, an assistant professor of Health Management in the Wharton School and the Leonard Davis Institute for Health Economics, along with Ezra Fishman, PhD, David Debono, MD, Michael J. Fisch, MD, Ying Liu, PhD, Gosia Sylwestrzak, MA, and John Barron, PharmD.
HealthCore's work was funded by Anthem, Inc.
Penn Medicine is one of the world's leading academic medical centers, dedicated to the related missions of medical education, biomedical research, and excellence in patient care. Penn Medicine consists of the Raymond and Ruth Perelman School of Medicine at the University of Pennsylvania (founded in 1765 as the nation's first medical school) and the University of Pennsylvania Health System, which together form a $8.6 billion enterprise.
The Perelman School of Medicine has been ranked among the top medical schools in the United States for more than 20 years, according to U.S. News & World Report's survey of research-oriented medical schools. The School is consistently among the nation's top recipients of funding from the National Institutes of Health, with $494 million awarded in the 2019 fiscal year.
The University of Pennsylvania Health System's patient care facilities include: the Hospital of the University of Pennsylvania and Penn Presbyterian Medical Center—which are recognized as one of the nation's top "Honor Roll" hospitals by U.S. News & World Report—Chester County Hospital; Lancaster General Health; Penn Medicine Princeton Health; and Pennsylvania Hospital, the nation's first hospital, founded in 1751. Additional facilities and enterprises include Good Shepherd Penn Partners, Penn Medicine at Home, Lancaster Behavioral Health Hospital, and Princeton House Behavioral Health, among others.
Penn Medicine is powered by a talented and dedicated workforce of more than 43,900 people. The organization also has alliances with top community health systems across both Southeastern Pennsylvania and Southern New Jersey, creating more options for patients no matter where they live.
Penn Medicine is committed to improving lives and health through a variety of community-based programs and activities. In fiscal year 2019, Penn Medicine provided more than $583 million to benefit our community.
Steve Graff


text:
Watchi, Quintard, Bijlenga, Pugin, and Negro: Negative-pressure helmet restores cerebral hemodynamic parameters in sinking skin flap syndrome: a case report
Negative-pressure helmet restores cerebral hemodynamic parameters in sinking skin flap syndrome: a case report
Michael Watchi, MD1 , Hervé Quintard, PhD2 , Philippe Bijlenga, PhD3 , Jérôme Pugin, PhD2 , Tommaso Rochat Negro, MD2
1Department of Intensive Care, Geneva University Hospitals, Université Catholique de Louvain, Geneva, Switzerland
2Department of Intensive Care, Geneva University Hospitals, Faculty of Medicine Geneva, Geneva, Switzerland
3Division of Neurosurgery, Department of Clinical Neurosciences, Geneva University Hospitals, Faculty of Medicine Geneva, Geneva, Switzerland
Corresponding author: Michael Watchi Department of Intensive Care, Geneva University Hospitals, Rue Gabrielle-Perret-Gentil 4, 1211 Genève 14, Switzerland Tel: +41-78-233-2328, Fax: +41-22-372-7470, E-mail: wm.anesthesia@gmail.com
Received September 7, 2022 Revised October 12, 2022 Accepted October 22, 2022
Sinking skin flap syndrome (SSFS) is a rare complication of decompressive craniectomy (DC) and causes a wide range of neurological deficits. Its pathophysiology remains debatable, however cranioplasty may decrease the symptoms of SSFS by reducing the direct effect of atmospheric pressure on the brain and allowing the correction of cerebral blood flow (CBF) and cerebral metabolism.
A 36-year-old female patient underwent DC for a right frontal hematoma and signs of increased intracranial pressure following the resection of a right frontal arteriovenous malformation. Subsequently, she developed SSFS, altered neurological status with a Glasgow Coma Scale (GCS) score of 8/15, and bacterial-resistant meningitis. We applied a custom-shaped negative pressure helmet on the bone defect and used invasive and noninvasive techniques to measure the changes in intracranial pressure, CBF and cerebral oxygen saturation. Despite improvements in the cerebral physiological parameters, the neurological status did not improve (GCS score, 8/15).
To our knowledge, this is the first reported case of SSFS treated with a negative-pressure helmet and subsequent changes in cerebral parameters that were monitored invasively and noninvasively.
Key Words: Cerebral blood flow; Critical care; Near-infrared spectroscopy; Decompressive craniectomy
Sinking skin flap syndrome (SSFS) corresponds to altered neurological status following decompressive craniectomy (DC), which results in a persistent bone defect. It was first described in 1939 by Grant and Norcross as syndrome of the trephined. Since 1977 and following the work of Yamaura and Makino [1], the term "SSFS" has been commonly used to describe this entity. Patients with SSFS may experience a wide range of neurological symptoms, which may vary from motor impairments, cognitive disturbances, impaired vigilance, headache and sensory impairments to visual symptoms or seizures [2,3]. Clinically or radiologically, physicians can observe concaving or sinking of the scalp to a plane that is lower than the edges of the skull defect [3,4].
SSFS may appear 3–10 months after DC or, in rare cases, a few days or weeks after a lumbar puncture, ventricular derivation or removal of a bone flap [2,5-7]. The pathophysiology of SSFS remains unclear and debatable, even after the works of Yoshida et al. [8] in 1996 and Winkler et al. [9] in 2000, respectively. The fact that, in most cases, correction of the bone defect by cranioplasty results in improvements or complete recovery is in favor of a direct effect of atmospheric pressure on cerebral blood flow (CBF) and cerebral metabolism [2,3,6,7].
Herein, we describe a case of SSFS following surgical resection of an arteriovenous malformation (AVM) complicated by increase in intracranial pressure (ICP) and DC due to postoperative cerebral hematoma. In the weeks following the intervention, the patient developed persistently altered neurological status (somnolence without any response and Glasgow Coma Scale (GCS) decreased form 7-9/15 to 4/15), which correlated with the findings of cerebral tomodensitometry (TDM), such as right-sided large bone defect with sub-falcorial amygdala and temporal engagement (Fig. 1). SSFS was diagnosed but cranioplasty was contraindicated because of bacterial meningitis. To improve the neurological status, we used a negative-pressure helmet and monitored the effects on the clinic, ICP, brain tissue oxygen tension, and CBF.
A 36-year-old female patient with well-controlled high blood pressure and history of pneumothorax pleurodesis presented in early 2021 with an index seizure caused by an unknown AVM of 3.5-cm diameter in the axial plane located in the right frontal sulcus. The AVM was graded as a stage 2 according to the Spetzler-Martin classification. It was fed by the right anterior cerebral, right Sylvian, and dural (anterior meningeal, middle meningeal, and superficial temporal) arteries, and drained by three superficial frontal veins. Antiepileptic medication was introduced with no recurrence of seizures. Before surgical resection of the AVM, the patient underwent four sessions of neuroradiological embolization to limit its blood supply.
In the immediate postoperative period after the surgical resection of the AVM, no complications or neurological deficits were observed. Three days later, the GCS decreased to 8/15, and cerebral TDM was performed. The presence of a voluminous cerebral right frontal hematoma with simultaneous vasogenic cerebral edema and elevated ICP was observed, which explained the neurological impairments. Consequently, DC was performed, which was complicated by a massive perioperative hemorrhage. An external ventricular drain (EVD) was placed due to the presence of hemoventricle.
The postoperative period was further complicated by persistently raised ICP due to cerebral edema and intraventricular hemorrhage, which necessitated the placement of two new EVDs. Two weeks later, the patient presented with diffuse beta-lactamase-producing Escherichia coli meningitis. Meropenem and gentamycin were administered for 4 weeks followed by a combination of ceftazidime and avibactam (Zavicefta; Pfizer, New-York, NY, USA) for 3 weeks.
Two months after the resection of the AVM, the altered neurological status persisted (GCS 8-10/15) without any signs of improvement. Magnetic resonance imaging revealed the presence of a sub-falcorial amygdala and temporal engagement that were indicative of SSFS. Therefore, we attempted to reshape the skull to improve the neurological status.
Before ordering the custom-shaped helmet, we obtained a signed agreement from her legal representative in accordance with our local ethical committee. At the time of assessments, our patient was in the neuroscience intensive care unit, intubated, and non-sedated. Monitoring included oxygen monitoring, 5-lead electrocardiogram, radial invasive blood pressure and EVD that continuously measured the ICP.
We used the Luciole monitoring solution (Luciole Medical, Zurich, Switzerland) to monitor the changes in cerebral parameters. This solution includes a frontal skin patch (RheoPatch, Luciole Medical) that uses near-infrared spectroscopy (NIRS) to noninvasively estimate cerebral oxygen saturation (SbtO2) and CBF. Luciole monitoring allows the use of intravenously injected indocyanine green (ICG) dye dilution to improve the accuracy CBF. Therefore, we injected ICG (15 mg) before and after the application of negative pressure to determine the changes in CBF.
During the measurements, the patient was lying supine with head tilted up at 30°. We gently applied the Lenoir Orthopédie (Daniel Robert Orthopédie, Geneva, Switzerland) negative-pressure helmet. The helmet is shaped according to the size of the bone defect and comprises of three components (Fig. 2). The first component is a silicon layer that softly attached to the edges of the bone defect, the second component is the vacuum, and the last component is a plastic layer that is shaped in the form of the normal shape of the patient skull. A manual vacuum pump (Aircast walker like pump) was connected to act like a balloon. While pumping, progressive increase in negative pressure allows for re-expansion of the dura mater and reshaping of the skull.
Unfortunately, even after the application of the negative pressure and improvements of cerebral parameters, no clinical improvement was observed. The neurological clinical status remained unchanged (GCS score, 8/15), and no reaction to painful stimulation was observed. The long-standing increase in ICP and decrease in CBF resulted in profound cerebral and ischemic lesions that could not be reversed by our mechanical solution. Due to unfavorable outcomes and in accordance with the wishes of the patient's family, supportive therapies were discontinued.
After applying the helmet on the edges of the skull defect, we progressively decreased the pressure in the balloon according to the hemodynamic tolerance of the patient and registered the clinical parameters for 6 minutes. The heart rate, oxygen saturation (using a pulse oximeter), and mean arterial pressure did not change significantly during the procedure. The ICP significantly decreased from 6 cmH2O to –3 cmH2O with a simultaneous increase in cerebral perfusion pressure (CPP) from 62 mmHg to 73 mmHg. Indirect SbtO2 and CBF parameters increased to normal values (Fig. 3). CBF increased from 50 mL/g to 65 mL/g and the cerebral saturation on the left side of the forehead of the patient increased by eight points (from 64% to 72%) (Fig. 4).
SSFS is a rare complication of DC. However, its pathophysiological mechanism remains unclear. Some authors believe that this may be caused by the direct transmission of atmospheric pressure to the intracranial cavity, which results in a decrease in CBF in the area of bone defect. Decreased blood flow and the consequent impaired cerebral metabolism may explain the symptoms of SSFS. According to other authors, SSFS is a consequence of a pressure decrease in the cerebral spinal fluid (CSF) compartment, which is worsened by orthostatic changes in position [2,3,5,6]. In this case, SSFS resulted in the stretching of fiber bundles and cranial nerves owing to the direct effects of atmospheric pressure on the brain. The subsequent symptoms occur when the patient changes position from a horizontal to an upright position [10]. Cranioplasty may restore CBF by reshaping the skull and protecting from atmospheric pressure. Furthermore, improvements in CSF flow and cerebral metabolism have been elegantly demonstrated using TDM scans, TDM perfusion imaging and xenon TDM [2,3]. Improvements in CSF velocity have been reported after the closure of the bone defect. Dujovny et al. explained this modification to be a consequence of changes in the compliance of the craniospinal system [6].
In this report, we first described the correction of SSFS by applying negative pressure and measuring the direct physiological changes in CBF, ICP, and SbtO2 using NIRS monitoring. Our patient could not undergo cranioplasty due to bacterial meningitis, and we used a negative-pressure helmet to treat SSFS. This system permits the reshaping of the cranial flap by creating negative pressure in the area of the bone defect. It can be used in cases of complete skull defects or the presence of a cranial flap. In the latter, the helmet must be custom-made.
In our case, when the skull was reshaped using the negative-pressure helmet, the ICP changed from a positive pressure to negative pressure of –3 cmH2O. This negative pressure restored the conditions of a normally closed skull and led to decompression of the brain, which was previously subjected to direct atmospheric pressure.
The parameters of CPP and SbtO2 also improved. As expected, reshaping of the skull was associated with a reduction in the ICP and subsequent improvements in CPP, CBF, and SbtO2. These results correlate with the assumption that cranioplasty restores cerebral perfusion and CSF dynamics. Similar results were observed by Yoshida et al. [8] and Winkler et al. [9] who used 33Xe computed tomography and 31P magnetic resonance spectroscopy as well as transcranial Doppler (TCD) and positron emission tomography to assess changes in physiological parameters [8,9]. In our report, we used another bedside noninvasive method to monitor CBF using intravenous ICG and Fick's principle. This novel monitoring is presently being evaluated for this indication, but it can be a promising technique [11-13].
Nowadays, assessment of CBF using TCD is being performed when facing rapid neurological changes following extra-dural or subarachnoid hematomas or even after cerebral aneurysm rupture [14,15]. Nevertheless, studies have demonstrated a good correlation between changes in CBF using NIRS and those measured by TCD.
Cranioplasty is indicated in cases of symptomatic SSFS following DC. When facing SSFS complicated with bacterial meningitis, the use of a negative-pressure helmet appears to restore cerebral physiologic parameters and may be a helpful intervention. Using this approach, invasive and noninvasive neuromonitoring (ICP and NIRS with ICG) confirmed changes in cerebral metabolism and blood flow. Unfortunately, we observed no clinical improvement because of the profound and irreversible cerebral lesions.
No institutional or ethics committee approval was required for this case report. Written consent was obtained from the patient's legal representative.
Conceptualization: HQ, TRN. Data curation: HQ, TRN. Formal analysis: HQ, TRN, MW. Project administration: HQ, TRN. Visualization: HQ, TRN, MW. Supervision: HQ, PB, JP. Writing–original draft: MW. Writing–review & editing: MW, TRN.
Magnetic resonance imaging T1-weighted images showing the bone defect area of the skull of the patient. (A) Coronal T1-weighted view shows a left-sided deviation of the midline and a filling of the posterior fossa with amygdala herniation (asterisk). (B) Axial T1 view shows left-sided deviation (arrows) and shrinking of lateral ventricles (white cross). Sup, superior; R, right; Ant, anterior.
The Lenoir Orthopédie negative-pressure helmet with a manual vacuum pump. Images obtained from Lenoir Orthopédie user manual (Lenoir Orthopédie, Daniel Robert Orthopédie, Geneva, Switzerland).
Hemodynamic and cerebral monitoring before and after the application of negative pressure using a Lenoir Orthopédie helmet. Grey zone, the time periods before the application of the negative pressure; arrow, start application of negative pressure. The procedure was hemodynamically supported and revealed reduction of intracranial pressure (ICP) to normal values and improvements in cerebral perfusion pressure (CPP) and cerebral oxygen saturation. (A) Hemodynamic parameters before and after applying negative pressure. (B) Cerebral hemodynamic parameters before and after applying negative pressure. SpO2, pulse oximeter; MAP, mean arterial pressure; HR, heart rate; PbtO2, brain tissue oxygen tension.
Increase in cerebral blood flow (CBF) after applying negative pressure. The CBF increased from 50 mL/g to 65 mL/g.
1. Yamaura A, Makino H. Neurological deficits in the presence of the sinking skin flap following decompressive craniectomy. Neurol Med Chir (Tokyo) 1977;17(1 Pt 1):43-53.
2. Annan M, De Toffol B, Hommet C, Mondon K. Sinking skin flap syndrome (or syndrome of the trephined): a review. Br J Neurosurg 2015;29:314-8.
3. Di Rienzo A, Colasanti R, Gladi M, Pompucci A, Della Costanza M, Paracino R, et al. Sinking flap syndrome revisited: the who, when and why. Neurosurg Rev 2020;43:323-35.
4. Khan NA, Ullah S, Alkilani W, Zeb H, Tahir H, Suri J. Sinking skin flap syndrome: phenomenon of neurological deterioration after decompressive craniectomy. Case Rep Med 2018;2018:9805395.
5. Cholet C, André A, Law-Ye B. Sinking skin flap syndrome following decompressive craniectomy. Br J Neurosurg 2018;32:73-4.
6. Ashayeri K, M Jackson E, Huang J, Brem H, Gordon CR. Syndrome of the trephined: a systematic review. Neurosurgery 2016;79:525-34.
7. Goedemans T, Verbaan D, van der Veer O, Bot M, Post R, Hoogmoed J, et al. Complications in cranioplasty after decompressive craniectomy: timing of the intervention. J Neurol 2020;267:1312-20.
8. Yoshida K, Furuse M, Izawa A, Iizima N, Kuchiwaki H, Inao S. Dynamics of cerebral blood flow and metabolism in patients with cranioplasty as evaluated by 133Xe CT and 31P magnetic resonance spectroscopy. J Neurol Neurosurg Psychiatry 1996;61:166-71.
9. Winkler PA, Stummer W, Linke R, Krishnan KG, Tatsch K. The influence of cranioplasty on postural blood flow regulation, cerebrovascular reserve capacity, and cerebral glucose metabolism. Neurosurg Focus 2000;8:e9.
10. Bijlenga P, Zumofen D, Yilmaz H, Creisson E, de Tribolet N. Orthostatic mesodiencephalic dysfunction after decompressive craniectomy. J Neurol Neurosurg Psychiatry 2007;78:430-3.
11. Keller E, Wolf M, Martin M, Yonekawa Y. Estimation of cerebral oxygenation and hemodynamics in cerebral vasospasm using indocyaningreen dye dilution and near infrared spectroscopy: a case report. J Neurosurg Anesthesiol 2001;13:43-8.
12. Vos JJ, Ellermann SF, Scheeren TW. Journal of Clinical Monitoring and Computing 2017/2018 end of year summary: monitoring-and provocation-of the microcirculation and tissue oxygenation. J Clin Monit Comput 2019;33:201-9.
13. Ku T, Choi C. Noninvasive optical measurement of cerebral blood flow in mice using molecular dynamics analysis of indocyanine green. PLoS One 2012;7:e48383.
14. Caballero-Lozada AF, Nanwani KL, Pavón F, Zorrilla-Vaca A, Zorrilla-Vaca C. Clinical applications of ultrasonography in neurocritically ill patients. J Intensive Care Med 2021;36:627-34.
15. Bonow RH, Young CC, Bass DI, Moore A, Levitt MR. Transcranial Doppler ultrasonography in neurological surgery and neurocritical care. Neurosurg Focus 2019;47:E2.


Phosphates are the salt of phosphoric acids. The most common and important in practical terms are salts of orthophosphoric acid (N -3RO4). Orthophosphoric acid, depending on the number of hydrogen atoms substituted in its molecules to atoms of metal forms a three rows of phosphates: medium, or Transnistria, phosphates (e.g.3RO4), sour, or (disubstituted), phosphates (e.g.2NRA4), and one-deputizing f, (for example, KN2RO4). In water soluble only an alkaline phosphates metals. The phosphates also include complex esters of phosphoric acid. Some, such as the ATP are batteries and power sources in biochemical processes. Phosphates take an active part in the processes of life. So, phosphate calcium Sa3(RO4)2 is a mineral base of bone tissue. Phosphates sodium and potassium together with the form bicarbonate buffer system of blood and other biological liquids; inorganic phosphates are suppliers of phosphorus for a number of organic compounds (see Phosphatides, Phosphoprotein), etc.
Some of the phosphates are used as medicinal substances, for example disubstituted sodium phosphate - laxative, glycyrrhizinate calcium tonic preparation. Cm. also Mineral metabolism.


text:
<?php

require_once 'PHPUnit/Extensions/Database/DataSet/DefaultDataSet.php';

/**
 * Database test case
 *
 * Encapsulate reusable code for DB testing, providing methods to compare
 * DB results with expected data stored in XML files.
 *
 * @notes This class was borrowed from @link and modified to suit our needs.
 *
 * @package     Library
 * @author      Devis Lucato <devis@ibuildings.com>
 * @author      Markizano Draconus <markizano@markizano.net>
 * @copyright   Ibuildings UK
 * @date        November 2010
 * @link        https://github.com/ibuildings/zf-db-testing/blob/master/library/Ibuildings/Test/PHPUnit/DatabaseTestCase/Abstract.php
 */
class Kizano_Test_PHPUnit_DatabaseTestCase extends Zend_Test_PHPUnit_DatabaseTestCase
{

    const DEFAULT_CONNECTION_SCHEMA = 'ZF_test';

    /**
     * Variable to be defined in each test case
     *
     * @var string
     */
    protected $_initialSeedFile = '';

    /**
     * Allow to override the global configuration for a particular test case
     *
     * @var string
     */
    protected $_seedFilesPath = null;

    /**
     * Allow to override the global configuration for a particular test case
     *
     * @var string
     */
    protected $_expectedFilesPath = null;

    /**
     * Parameter for Zend_Test_PHPUnit_Db_Connection
     *
     * @var string
     */
    protected $_connectionSchema = self::DEFAULT_CONNECTION_SCHEMA;

    /**
     * Connection to testing database
     *
     * @var Zend_Test_PHPUnit_Db_Connection
     */
    protected $_connectionMock;

    /**
     * Application configuration
     *
     * @var Zend_Config_Ini
     */
    private $__configuration = null;

    /**
     *  Bootstraps the test case.
     *
     *  @return void
     */
    public function setUp()
    {
        Zend_Registry::get('application')
            ->getBootstrap()
            ->bootstrap('autoload');
        parent::setUp();
    }

    /**
     * Returns the application configuration
     *
     * @return Zend_Config_Ini
     */
    public function getConfiguration()
    {
        if ($this->__configuration == null) {
            $this->__configuration = new Zend_Config(Zend_Registry::get('application')->getOptions());
        }

        return $this->__configuration;
    }

    /**
     * Returns the seed files folder path
     *
     * @return string
     */
    public function getSeedFilesPath()
    {
        if ($this->_seedFilesPath == null) {
            $seedFilesPath = $this->getConfiguration()->tests->seeds->folder;
            $this->_seedFilesPath = rtrim($seedFilesPath, '/') . '/';
        }

        return $this->_seedFilesPath;
    }

    /**
     * Returns the expected files folder path
     *
     * @return string
     */
    public function getExpectedFilesPath()
    {
        if ($this->_expectedFilesPath == null) {
            $filesPath = $this->getConfiguration()->tests->expected->folder;
            $this->_expectedFilesPath = rtrim($filesPath, '/') . '/';
        }

        return $this->_expectedFilesPath;
    }

    /**
     * Returns the test database connection.
     *
     * @return PHPUnit_Extensions_Database_DB_IDatabaseConnection
     */
    protected function getConnection()
    {
        if ($this->_connectionMock == null) {
            $dbAdapterName = $this->getConfiguration()->tests->db->adapter;
            $dbAdapterParams = $this->getConfiguration()->tests->db->params->toArray();

            $connection = Zend_Db::factory($dbAdapterName, $dbAdapterParams);

            $this->_connectionMock = $this->createZendDbConnection(
                $connection, $this->_connectionSchema
            );

            Zend_Db_Table_Abstract::setDefaultAdapter($connection);
        }

        return $this->_connectionMock;
    }

    /**
     * Retrieve from flat XML files data used to populate the database
     *
     * @return PHPUnit_Extensions_Database_DataSet_IDataSet
     */
    protected function getDataSet()
    {
        if (empty($this->_initialSeedFile)) {
            throw new Kizano_Test_Exception(sprintf(
                'You must define a value for %s::_initialSeedFile!',
                get_class($this)
            ));
        }

        return $this->createFlatXmlDataSet($this->getSeedFilesPath() . $this->_initialSeedFile);
    }

    /**
     * Convert a Rowset to a Dataset
     *
     * @param  Zend_Db_Table_Rowset_Abstract $rowset
     * @param  string $tableName
     * @return PHPUnit_Extensions_Database_DataSet_DefaultDataSet
     */
    public function convertRowsetToDataSet($rowset, $tableName = null)
    {
        $rowsetDataSet = new Zend_Test_PHPUnit_Db_DataSet_DbRowset($rowset, $tableName);
        return new PHPUnit_Extensions_Database_DataSet_DefaultDataSet(array($rowsetDataSet));
    }

    /**
     * Convert a Record to a Dataset
     *
     * @param  array $data
     * @param  string $tableName
     * @return PHPUnit_Extensions_Database_DataSet_DefaultDataSet
     */
    public function convertRecordToDataSet(Array $data, $tableName)
    {
        $rowset = new Zend_Db_Table_Rowset(array('data' => array($data)));
        return $this->convertRowsetToDataSet($rowset, $tableName);
    }

    /**
     * Compare dataset with data stored in the file
     *
     * @param  string $filename
     * @param  PHPUnit_Extensions_Database_DataSet_IDataSet $expected
     * @return boolean
     */
    public function assertDataSetsMatchXML($filename, PHPUnit_Extensions_Database_DataSet_IDataSet $actual)
    {
        if (empty($filename) || !is_string($filename)) {
            throw new InvalidArgumentException(
              'Second parameter "filename" is not a valid string.'
            );
        }

        $expected = $this->createFlatXmlDataSet($this->getExpectedFilesPath() . $filename);

        return $this->assertDataSetsEqual($expected, $actual);
    }
}


text:
/**
 *
 */
package net.sf.jabb.cjtsd;

import it.unimi.dsi.fastutil.ints.IntArrayList;
import it.unimi.dsi.fastutil.ints.IntList;
import it.unimi.dsi.fastutil.longs.LongArrayList;
import it.unimi.dsi.fastutil.longs.LongList;

import java.time.Duration;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * This is the class for handling (primarily generating) Compact JSON Time Series Data (CJTSD) data.
 *
To generate a CJTSD object:

 *
 * 	CJTSD.builder().add(...).add(...).add(...).build()
 *
 *
To consume a CJTSD object:

 *
 * 	objectMapper.readValue(jsonString, CJTSD.class).toList()
 *
 * @see https://github.com/james-hu/cjtsd-js/wiki/Compact-JSON-Time-Series-Data
 * @author James Hu (Zhengmao Hu)
 *
 */
@com.fasterxml.jackson.annotation.JsonIgnoreProperties(ignoreUnknown = true)
@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)
public class CJTSD extends PlainCJTSD{

	public CJTSD(){
		super();
	}

	/**
	 * Shallow copy constructor
	 * @param other	another instance from which the properties will be copied
	 */
	public CJTSD(PlainCJTSD other){
		super(other);
	}

	/**
	 * Convert into list form
	 * @return	the list containing entries of data points
	 */
	public List<Entry> toList(){
		if (t == null || t.size() == 0){
			return Collections.emptyList();
		}

		List<Entry> result = new ArrayList<>(t.size());
		int lastDuration = 0;
		for (int i = 0; i < t.size(); i ++){
			long timestamp = t.get(i);
			int duration = -1;
			if (i < d.size()){
				duration = d.get(i);
			}
			if (duration == -1){
				duration = lastDuration;
			}
			lastDuration = duration;

			LocalDateTime timestampObj;
			Duration durationObj;
			if (u == null || u.equals("m")){
				timestampObj = LocalDateTime.ofEpochSecond(timestamp * 60, 0, ZoneOffset.UTC);
				durationObj = Duration.ofMinutes(duration);
			}else if (u.equals("s")){
				timestampObj = LocalDateTime.ofEpochSecond(timestamp, 0, ZoneOffset.UTC);
				durationObj = Duration.ofSeconds(duration);
			}else if (u.equals("S")){
				long seconds = timestamp / 1000;
				int nano = (int)(timestamp % 1000) * 1_000_000;
				timestampObj = LocalDateTime.ofEpochSecond(seconds, nano, ZoneOffset.UTC);
				durationObj = Duration.ofMillis(duration);
			}else{
				throw new IllegalArgumentException("Unit not supported: " + u);
			}

			result.add(new Entry(timestampObj, durationObj,
					c == null || i >= c.size() ? null : c.get(i),
					s == null || i >= s.size() ? null : s.get(i),
					a == null || i >= a.size() ? null : a.get(i),
					m == null || i >= m.size() ? null : m.get(i),
					x == null || i >= x.size() ? null : x.get(i),
					n == null || i >= n.size() ? null : n.get(i),
					o == null || i >= o.size() ? null : o.get(i)
					));

		}
		return result;
	}

	/**
	 * Create a builder for generating CJTSD object.
	 * The expected number of data points is 50.
	 * If the actual number of data points exceeds the expected, the builder will just grow.
	 * @return	the builder
	 */
	static public Builder builder(){
		return new Builder();
	}

	/**
	 * Create a builder for generating CJTSD object.
	 * The expected number of data points is specified as argument to this method.
	 * If the actual number of data points exceeds the expected, the builder will just grow.
	 * @param expectedSize		the expected number of data points
	 * @return	the builder
	 */
	static public Builder builder(int expectedSize){
		return new Builder(expectedSize);
	}

	/**
	 * Builder that keeps intermediate data structure for creating
	 * CJTSD object.
	 * @author James Hu (Zhengmao Hu)
	 *
	 */
	static public class Builder{
		private int expectedSize;
		private ChronoUnit unit = ChronoUnit.MINUTES;
		private LongList timestamps;
		private IntList durations;
		private List<Long> counts;
		private List<Number> sums;
		private List<Number> avgs;
		private List<Number> mins;
		private List<Number> maxs;
		private List<Number> numbers;
		private List<Object> objs;

		Builder(){
			this(50);
		}

		Builder(int expectedSize){
			this.expectedSize = expectedSize;
			timestamps = new LongArrayList(expectedSize);
			durations = new IntArrayList(expectedSize);
		}

		/**
		 * Set the unit which can be one of:
		 *

		 *
MINUTES

		 *
SECONDS

		 *
MILLIS

		 *

		 * If this method has not been called, the default unit (MINUTES) will be used.
		 * This method should be called no more than once, and only before calling other methods.
		 * @param unit the unit of the timestamps and durations of the CJTSD object to be generated
		 * @return	the builder itself
		 */
		public Builder setUnit(ChronoUnit unit){
			switch(unit){
				case MINUTES:
				case SECONDS:
				case MILLIS:
					this.unit = unit;
					return this;
				default:
					throw new IllegalArgumentException("Unit not supported: " + unit);
			}
		}

		/**
		 * Add a data point
		 * @param timestamp	the timestamp of the data point
		 * @param duration	the duration
		 * @return	the builder itself
		 */
		public Builder add(long timestamp, int duration){
			if (timestamps.size() == 0 && duration == -1){
				throw new IllegalArgumentException("Duration must be specified for the first data point");
			}

			timestamps.add(timestamp);
			int d = duration;
			if (durations.size() > 0){
				int n = indexOfLastSpecifiedDuration();
				if (n >= 0 && duration == durations.getInt(n)){
					d = -1;
				}
			}
			durations.add(d);
			return this;
		}

		/**
		 * Add a data point
		 * @param timestamp	the timestamp of the data point
		 * @param duration	the duration, can be null if the duration is the same as previous one or if this is the first data point and the duration is zero
		 * @return	the builder itself
		 */
		public Builder add(LocalDateTime timestamp, Duration duration){
			long tsLong;
			int durInt;
			switch(unit){
				case MINUTES:
					tsLong = timestamp.toEpochSecond(ZoneOffset.UTC)/60;
					durInt = duration == null ? (timestamps.size() == 0 ? 0 : -1) : (int) duration.toMinutes();
					break;
				case SECONDS:
					tsLong = timestamp.toEpochSecond(ZoneOffset.UTC);
					durInt =  duration == null ? (timestamps.size() == 0 ? 0 : -1) : (int)(duration.toMillis() / 1000);
					break;
				case MILLIS:
					tsLong = timestamp.toInstant(ZoneOffset.UTC).toEpochMilli();
					durInt =  duration == null ? (timestamps.size() == 0 ? 0 : -1) : (int) duration.toMillis();
					break;
				default:
					throw new IllegalArgumentException("Unit not supported: " + unit);
			}

			return add(tsLong, durInt);
		}

		/**
		 * Add a data point with the same duration as its previous data point.
		 * If this is the first data point, the duration will be considered as zero.
		 * @param timestamp	the timestamp of the data point
		 * @return	the builder itself
		 */
		public Builder add(long timestamp){
			timestamps.add(timestamp);
			durations.add(timestamps.size() == 0 ? 0 : -1);
			return this;
		}

		/**
		 * Add a data point with the same duration as its previous data point.
		 * If this is the first data point, the duration will be considered as zero.
		 * @param timestamp	the timestamp of the data point
		 * @return	the builder itself
		 */
		public Builder add(LocalDateTime timestamp){
			return add(timestamp, null);
		}

		/**
		 * Add a count number ('c') to the current data point
		 * @param count	the count number
		 * @return	the builder itself
		 */
		public Builder addCount(Long count){
			if (counts == null){
				counts = new ArrayList<>(expectedSize);
			}
			counts.add(count);
			return this;
		}

		/**
		 * Add a sum number ('s') to the current data point
		 * @param sum	the sum number
		 * @return	the builder itself
		 */
		public Builder addSum(Number sum){
			if (sums == null){
				sums = new ArrayList<>(expectedSize);
			}
			sums.add(sum);
			return this;
		}

		/**
		 * Add a average number ('a') to the current data point
		 * @param avg	the average number
		 * @return	the builder itself
		 */
		public Builder addAvg(Number avg){
			if (avgs == null){
				avgs = new ArrayList<>(expectedSize);
			}
			avgs.add(avg);
			return this;
		}

		/**
		 * Add a minimal number ('m') to the current data point
		 * @param min	the minimal number
		 * @return	the builder itself
		 */
		public Builder addMin(Number min){
			if (mins == null){
				mins = new ArrayList<>(expectedSize);
			}
			mins.add(min);
			return this;
		}

		/**
		 * Add a maximal number ('x') to the current data point
		 * @param max	the maximal number
		 * @return	the builder itself
		 */
		public Builder addMax(Number max){
			if (maxs == null){
				maxs = new ArrayList<>(expectedSize);
			}
			maxs.add(max);
			return this;
		}

		/**
		 * Add a generic number ('n') to the current data point
		 * @param n	the number
		 * @return	the builder itself
		 */
		public Builder addNumber(Number n){
			if (numbers == null){
				numbers = new ArrayList<>(expectedSize);
			}
			numbers.add(n);
			return this;
		}

		/**
		 * Add an object ('o') to the current data point
		 * @param obj	the object
		 * @return	the builder itself
		 */
		public Builder addObj(Object obj){
			if (objs == null){
				objs = new ArrayList<>(expectedSize);
			}
			objs.add(obj);
			return this;
		}

		/**
		 * Find the index of last explicitly specified duration element
		 * @return	the index of the last explicitly specified duration element, or -1 if not found.
		 */
		private int indexOfLastSpecifiedDuration(){
			int result = -1;
			for (int i = durations.size() - 1; i >=0; i --){
				if (durations.getInt(i) != -1){
					result = i;
					break;
				}
			}
			return result;
		}

		/**
		 * Build the CJTSD object
		 * @return	the CJTSD object that is ready to be serialized to JSON
		 */
		public CJTSD build(){
			CJTSD result = new CJTSD();

			// u
			switch(unit){
				case MINUTES:
					result.u = null;  // it is the default one
					break;
				case SECONDS:
					result.u = "s";
					break;
				case MILLIS:
					result.u = "S";
					break;
				default:
					throw new IllegalArgumentException("Unit not supported: " + unit);
			}

			// t
			result.t = this.timestamps;

			// d
			int n = indexOfLastSpecifiedDuration();
			if (n >= 0 && n < durations.size() - 1){
				durations.size(n + 1);
			}
			for (int i = 1; i < durations.size(); i ++){
				int d = durations.getInt(i - 1);
				if (durations.getInt(i) == -1 &&  d < 100){	// no need to replace with -1 if there are only or less than two digits
					durations.set(i, d);
				}
			}
			result.d = this.durations;

			// c, s, a, m, x, n, o
			result.c = this.counts;
			result.s = this.sums;
			result.a = this.avgs;
			result.m = this.mins;
			result.x = this.maxs;
			result.n = this.numbers;
			result.o = this.objs;

			return result;
		}

	}

	static public class Entry{
		LocalDateTime timestamp;
		Duration duration;
		Long count;
		Number sum;
		Number avg;
		Number min;
		Number max;
		Number number;
		Object obj;

		Entry(LocalDateTime timestamp, Duration duration, Long count, Number sum, Number avg, Number min, Number max, Number number, Object obj) {
			super();
			this.timestamp = timestamp;
			this.duration = duration;
			this.count = count;
			this.sum = sum;
			this.avg = avg;
			this.min = min;
			this.max = max;
			this.number = number;
			this.obj = obj;
		}

		public LocalDateTime getTimestamp() {
			return timestamp;
		}

		public Duration getDuration() {
			return duration;
		}

		public Long getCount() {
			return count;
		}

		public Number getSum() {
			return sum;
		}

		public Number getAvg() {
			return avg;
		}

		public Number getMin() {
			return min;
		}

		public Number getMax() {
			return max;
		}

		public Number getNumber() {
			return number;
		}

		public Object getObj() {
			return obj;
		}

	}

}