North Carolina's biotechnology industry runs deep and wide, with specialties ranging from pharmaceutical manufacturing to health informatics to crop genetic engineering. Comprised of 600+ companies and over 60,000 employees, our biotech cluster has grown 31 percent since 2001.
Research Triangle Park (RTP), the largest research park in the U.S., is comprised of 200+ companies and 50,000+ employees with industry specializations including biotechnology and pharmaceuticals. RTP also is home to the North Carolina Biotechnology Center and the First Flight Venture Center.
With over 600 life sciences companies employing more than 60,000 people and sustained industry growth – 31 percent since 2001 – the depth and breadth of North Carolina's biotech clusters is unrivaled.
Fueled by a strong industry presence and major Tier 1 research universities, North Carolina is a leading center for life science R&D. North Carolina had almost $2 billion in academic life science R&D expenditures in 2012 – up 21 percent from 2009.
North Carolina's biotechnology companies employ a highly skilled and educated workforce of more than 61,000 in fields ranging from biosimilars R&D to pharmaceutical manufacturing to crop genetic engineering.
North Carolina's colleges and universities confer more than 13,000 degrees annually to students in all STEM fields. Of this group, nearly 40 percent are in the areas of biological sciences and agriculture and natural resources.
From the BioWork program developed jointly by the North Carolina Biotechnology Center and the North Carolina Community College System in 2001, to the recent $100 million public-private initiative to create NCBioImpact, North Carolina is leading the way in pharmaceutical and biomanufacturing workforce development.
As the first state-sponsored biotechnology initiative in the U.S., the North Carolina Biotechnology Center provides industry support an advocacy through support of biotechnology research, business, education and strategic policy.
The North Carolina Research Campus (NCRC) is a collaboration between industry, universities and health care organizations that seeks to find new ways to promote healthy lifestyles and to prevent, treat and cure cancer, diabetes, obesity, Alzheimer's and other diet- and lifestyle-related disorders.
The Biomanufacturing Training and Education Center (BTEC) operates training and cGMP pilot plant facilities at N.C. State University's Centennial Campus under the auspices of the university's College of Engineering. Students and working professionals go to BTEC for hands-on learning with the latest biomanufacturing technologies.
Housed at North Carolina Central University, the Biomanufacturing Research Institute and Technology Enterprise (BRITE) offers students hands-on training in process analytical technology and development, quality assurance and quality control.
The ASSIST Center at N.C. State University is a National Science Foundation-sponsored Nanosystems Engineering Research Center (NERC) that develops and employs nanotechnology-enabled energy harvesting and storage, ultra-low power electronics, and sensors to create innovative, battery-free, body-powered and wearable health monitoring systems.


text:
Home › Inventions
Who Invented The Theory of Relativity? History Of Theory of Relativity - Biography of Albert Einstein
Wednesday, March 21, 2018 Add Comment Edit
Albert Einstein - The Inventor of The Theory of Relativity. Albert Einstein is a theoretical physics scientist who is widely regarded as the greatest scientist in the 20th century. He was born in Ulm, Kingdom of Württemberg, Kingdom of Germany, March 14, 1879 and died in Princeton, New Jersey, United States, April 18, 1955 at the age of 76. He proposed the theory of relativity and also contributed much to the development of quantum mechanics, statistical mechanics, and cosmology. He was awarded the Nobel Prize in Physics in 1921 for his explanation of the photoelectric effect and his "dedication to Theoretical Physics".
Einstein became famous throughout the world After the general theory of relativity was formulated. An unusual achievement for a scientist. In his old age, his fame surpassed the fame of all scientists in history, and in popular culture, Einstein said it was considered synonymous with intelligence or even genius. His face is one of the best known around the world.
To appreciate it, a unit in photochemistry is named einstein, a chemical element called einsteinium, and an asteroid named 2001 Einstein.
Einstein's most famous formula is E = mc²
Einstein was born in Ulm in Württemberg, Germany; about 100 km east of Stuttgart. His father was Hermann Einstein, a featherweight seller who later underwent electrochemical work, and his mother was Pauline. They got married in Stuttgart-Bad Cannstatt. Their family is Jewish; Albert was sent to a Catholic school and at the wish of his mother he was given violin lessons.
Albert Einstein 1921
Born : March 14, 1879, Ulm,
Kingdom of Württemberg, German Empire
Until l: April 18, 1955 (age 76), Princeton,
Place of residence: Germany, Italy, Switzerland, Austria,
Belgium, United Kingdom, United States
Württemberg / Germany (1879-1896)
Without citizenship (1896-1901)
Switzerland (1901-1955)
Austria (1911-1912)
Germany (1914-1933)
United States (1940-1955)
Field : Physics
When he was five years old, his father showed him a compass pouch, and Einstein realized that something in this "empty" space acted on the needle on the compass; he then describes this experience as one of the most moving moments of his life. Although he makes models and mechanical devices as a hobby, he is considered a slow learner, possibly caused by dyslexia, shyness, or due to the rare and unusual structure of his brain (examined after his death). He was then awarded for his theory of relativity because of this slowness, and said with deep thinking about the space and time of other children, he was able to develop a more developed intelligence. Another opinion, developing lately,
Einstein began studying mathematics at the age of twelve. There is an issue that he failed in mathematics in his education, but this is not true; replacement in the assessment confused the following year. His two uncles helped to develop his interest in the intellectual world in his late childhood and early adolescence by proposing and books on science and mathematics. In 1894, due to the failure of his father's electrochemical business, Einstein moved from Munich to Pavia, Italy (near Milan). Albert stayed behind to finish school, completing a semester before rejoining his family at Pavia.
His failure in the liberal arts in the entrance test of the Eidgenössische Technische Hochschule (the Swiss Federal Institute of Technology in Zurich) the following year was a step backward by his family sent to Aarau, Switzerland, to complete his high school, where he received a diploma in 1896, Einstein several times enrolled in Eidgenössische Technische Hochschule. In the following year he relinquished the citizenship of Württemberg, and became stateless.
In 1898, Einstein met and fell in love with Mileva Maric, a Serb who was his classmate (also a friend of Nikola Tesla ). Einstein married Mileva on January 6, 1903. Einstein's marriage to Mileva, a mathematician. On May 14, 1904, the first child of this couple, Hans Albert Einstein, was born.
In 1900, he was granted a degree to teach by the Eidgenössische Technische Hochschule and was accepted as a Swiss citizen in 1901. During this time Einstein discussed his interest in science to his close friends, including Mileva. He and Mileva had a daughter named Lieserl, born in January 1902. Lieserl Einstein, at that time, was considered illegal because her parents were not married.
Work and Doctorate Degree
At the time of his graduation Einstein could not find a teaching job, his poignancy as a young man easily angered his professor. The father of a classmate helped him get a job as a technical assistant examiner at the Swiss Patent Office in 1902. There, Einstein assessed the inventor's patent application for a device that required physical knowledge. He also learns to realize the importance of the application compared to the bad explanation, and learns from the director how to "explain himself correctly". He sometimes corrects their designs and also evaluates the practicality of their work.
In 1904, Einstein's position at the Swiss Patent Office became permanent. He earned his doctorate after submitting the thesis "Eine neue Bestimmung der Moleküldimensionen" ("On a new determination of molecular dimensions") in 1905 from the University of Zürich.
In the same year he wrote four articles that provided the foundation of modern physics, without much of the science literature he could designate or many colleagues in the sciences he could discuss about his theory. Many physicists agree that the three theses (about the Brownian motion), the photoelectric effect, and special relativity) deserve the Nobel Prize. But only the thesis about the photoelectric effect that earned the award. This is an irony, not just because Einstein knows more about relativity, but also because the photoelectric effect is a quantum phenomenon, and Einstein becomes freed from the path in quantum theory. What makes the thesis extraordinary is, in every case,
He submitted his theses to "Annalen der Physik". They are usually addressed to "Annus Mirabilis Papers" (from Latin: extraordinary year). The Union of Pure Physics and Applications (IUPAP) is planning to celebrate 100 years of Einstein's publication work in 1905 as the Year of Physics 2005.
On April 17, 1955, Albert Einstein suffered an internal bleeding caused by the outbreak of a stomach aortic aneurysm, which had previously been surgically performed by Dr. Rudolph Nissen in 1948. He took the concept of a speech, he was preparing for a television appearance commemorating the seventh anniversary of the State of Israel conditions in the hospital, but he did not live long enough to finish it. Einstein rejected the operation, saying: "I want to go when I want to be tasteless to prolong life artificially I have done my part, now it's time to go, I'll do it elegantly ..." He died at Princeton Hospital, age 76, after continuing to work until near the end.
During the autopsy, the pathologist from Princeton Hospital, Thomas Stoltz Harvey, removed Einstein's brain for the unauthorized preservation of his family, in the hope that future neuroscience would be able to discover what made Einstein so intelligent. Einstein remains cremated and his ashes are scattered in an undisclosed location.
0 Response to "Who Invented The Theory of Relativity? History Of Theory of Relativity - Biography of Albert Einstein"

redpajama_set_name: RedPajamaCommonCrawl


Navin Vij, MD is a Senior Clinical Investigator in the Value Institute and an Internal Medicine Hospitalist at Christiana Care Health System. In his role with the Value Institute, Dr. Vij is focused on improving health disparities through system and community based interventions addressing social determinants.
Prior to joining Christiana, Dr. Vij was a Robert Wood Johnson Foundation Clinical Scholar at the University of Pennsylvania and the Masters of Science in Health Policy Research Program. During this time, his research interests focused on the intersection of the opioid epidemic and secondary infectious complications, particularly hepatitis C. His projects focused on a variety of social determinant and health policy factors around this intersection, and involved key stakeholders from the harm reduction community and traditional public health infrastructure.
Dr. Vij was a Rice University/Baylor College of Medicine Medical Scholar, during which time he was a Co-founder of the Baker Institute for Public Policy Student Forum. He also spent time working on health policy issues interning in British Parliament, at the Center for Strategic and International Studies, and also with the Texas Program for Society and Health. After completing a Med-Peds Residency and Chief Residency at Case Western Reserve University, Dr. Vij was an Assistant Professor of Internal Medicine and Pediatrics at Case. While working clinically as an Academic Hospitalist, he also served as an Assistant Program Director for the Med-Peds Residency Program at Case.
Beyond his research and academic interests, Dr. Vij has also been an advocate dedicated to improving the delivery of healthcare for patients. He has served as a Member of the National Patient Advisory Committee for the American Liver Foundation, is involved with the Caring Ambassadors Program as a Board Member, and is a Co-founder of the Clinician Action Network. In 2016, he was named a 40 Under 40 Leader in Health by the National Minority Quality Forum.


Widely used by city and local councils, residential development sites and businesses; street flags are an eye catching method of signage and promotion.
Available in assorted styles and sizes to suit your individual needs street flags are fully customizable. There are no print restrictions with street banners so any logo, design or photo can be printed. Street banners are available as single or double sided.
We can make to any size to fit your needs.
200D Knitted Polyester (For Digital Printing) Most Commonly used for Street Flags.
We have two printing options they are digital printing and screen printing.
will be the best option for complex designs. For example logos with gradients and faded colours have to be printed via digital print.
is most cost effective way to print flags is via screen print. The method has limitations though. We can only print spot solid colours.


"The Lima Group was formed because the governments that were critical of the Maduro government in Venezuela, because they couldn't get resolutions through the Organization of American States.
They didn't have the majority of votes to pass resolutions at the OAS. So they basically set up another forum to bring together governments, mostly right-wing governments, in Latin America that were critical of the Maduro government.
And Canada has played–was right there at the founding.
Canada hosted the third meeting of the Lima Group, and now is hosting a second meeting; I think the first country to host two different meetings of the Lima Group.
And this is just part, one part, of a multifaceted Canadian campaign to undermine the Maduro government in Venezuela.
That campaign includes all kinds of critical comments against the Venezuelan government; includes back in September bringing the Venezuelan government–first time ever that a member state has brought another member state to the International Criminal Court.
Canada and a couple of other governments brought Venezuela to the International Criminal Court. Canada has brought in three rounds of sanctions against Venezuela.
Canada has been funding opposition groups in Venezuela.
Canada has been pressuring Caribbean countries to join the Lima Group, to join the critical statements of the Maduro government.
And so–and then in recent–last few weeks, last couple of months, Canada has been right at the forefront in this campaign to recognize the head of the National Assembly, Juan Guaido, as the interim president, as the president of Venezuela, and completely reject the legitimacy of the Maduro government.
So the Liberal government in Canada is viewed by many as a sort of a progressive government.
But the Trudeau government in Canada has been right at the forefront of this campaign to try to undermine the Maduro government.
And you know, this is certainly what they're looking for. My estimation is their preference would be a military coup. But there is some indication that Canada even would be fine with a foreign invasion.
In fact, when the head of the Organization of American States a few months ago sort of mused about a possible foreign invasion, the Lima Group, or 11 of the 14 members of the Lima group, criticized the head of the Organization of American States for talking about a foreign invasion.
Canada, Colombia, and Guyana were the three countries that refused to to condemn any talk of a foreign invasion.
"The Canadian media is sort of on two hands.
On one hand they are just following the sort of Washington-Ottawa propaganda about how, you know, Maduro's a total dictator that needs to be overthrown. On one hand they're doing that, and that's the sort of bulk of the discussion.
But simultaneously they have, as Paul pointed out, the Globe and Mail and the Canadian press both run incredibly–what should be viewed as incredibly damning stories about Canada's role in building opposition support for Guaido.
They talk about how Canada's facilitating meetings within Venezuela, facilitating meetings internationally to try to solidify support for this recognition of the head of the National Assembly.
But the thrust of the stories are that, you know, to just present this as a positive affair that Canada is pursuing, to the point where a few of the NDP, the social democratic party, MPs, or people in that party, a couple of them have expressed criticism of Canada's policy on Twitter, and the media has sort of pushed back against the NDP's, in my opinion, quite mild criticism of Canadian policy.
But I do want to echo, for sure, what Paul is saying.
There's a quote in terms of Canada's role historically in terms of serving empire, and the fact that sometimes it's better to have a sort of Canadian face on an intervention than a more sort of, more easily demonized U.S. face.
In his biography, Jacques Chretien, a former prime minister, says quite explicitly that he told Bill Clinton that if we just go along with you in everything, we're just going to be perceived as a 51st state. But if we, if it looks like we have a little bit of independence, we can do more for you than the CIA can do.
And it was almost like–that's a paraphrase, almost word for word.
So there's just this historic kind of putting a bit of a Canada, a positive Canada cover on policies that the U.S. is pursuing around the world.
And there's a long history of that in the hemisphere beyond the example that Paul gave with regards to Afghanistan.
In Haiti in 2004, Canada played a very important role in the overthrow of the elected government of Jean Bertrand Aristide.
And again, there was Bill Graham, the former defense minister, said in a book about about the war in Afghanistan, he said that because Canada didn't officially join the coalition of the willing that invaded Iraq in 2003, they felt like they needed to not only go heavily into Afghanistan, but also participate significantly in the coup in Haiti.
So part of this Canadian policy in Venezuela today is about Canada's close ties to the U.S. empire.
And Canada, in my opinion, has been quite a beneficiary.
The Canadian corporate class have been very much beneficiaries of U.S. empire for half a century.
"…Over the past two years Canadian officials have campaigned aggressively against President Nicolás Maduro. Foreign Minister Chrystia Freeland has repeatedly criticized Caracas' democratic legitimacy and human rights record. Recently she said, "the Maduro regime is now fully entrenched as a dictatorship" while in September Ottawa asked (with five South American nations) the International Criminal Court to investigate the Venezuelan government, which is the first time a government has been formally brought before the tribunal by another member.
In recent weeks Canadian diplomats have played an important role in uniting large swaths of the Venezuelan opposition behind a US-backed plan to ratchet up tensions by proclaiming the new head of the opposition-dominated National Assembly, Juan Guaido, president. The Canadian Press quoted a Canadian diplomat saying they helped Guaido "facilitate conversations with people that were out of the country and inside the country" while the Globe and Mail reported that "Freeland spoke with Juan Guaido to congratulate him on unifying opposition forces in Venezuela, two weeks before he declared himself interim president." Alongside Washington and a number of right-leaning Latin American governments, Ottawa immediately recognized Guaido after he proclaimed himself president on Wednesday. Canadian officials are lobbying European leaders to recognize Guaido as president as well.
Since its August 2017 founding Canada has been one of the most active members of the "Lima Group" of governments opposed to Venezuela's elected government. Canada is hosting the next meeting of the "Lima Group". Freeland has repeatedly prodded Caribbean and Central American countries to join the Lima Group's anti-Maduro efforts.
In September, 11 of the 14 member states of the "Lima Group" backed a statement distancing the anti-Venezuelan alliance from "any type of action or declaration that implies military intervention" after Organization of American States chief Luis Almagro stated: "As for military intervention to overthrow the Nicolas Maduro regime, I think we should not rule out any option … diplomacy remains the first option but we can't exclude any action." Canada, Guyana and Colombia refused to criticize the head of the OAS' musings about an invasion of Venezuela.
Alongside the head of the OAS, US president Donald Trump has publically discussed invading Venezuela. To the best of my knowledge Ottawa has stayed mum on Trump's threats, which violate international law.
democracy, Ottawa backed the Honduran military's removal of Manuel Zelaya in 2009.
Canada played its most forceful role in the removal of a progressive, elected, president in the hemisphere's most impoverished nation.
Thirteen months before Jean-Bertrand Aristide was, in his words, "kidnapped" by US Marines on February 29, 2004, Jean Chrétien's Liberal government organized an international gathering to discuss overthrowing the Haitian president. JTF2 special forces secured the Port-au-Prince airport the night Aristide was ousted and 500 Canadian troops were part of the US-led invasion to consolidate the coup.
to destabilize and nurture and promote the opposition in Venezuela at least from 2004.
When Chavez was still in power, Chavez had been elected over and over again with internationally observed elections.
Everyone said the elections were clean during the Chavez period. Many people that tried to throw the elections into disrepute were invalidated.
The Carter Center legitimatized them.
I actually personally was on an election observer mission to go to polling stations in 2004, 2005, one of the elections leading up to the referendum on Chavez's presidency.
And I went to 40 polling stations, and I interviewed opposition people in all 40 polling stations in Caracas. And I asked, have you seen any infractions? And if there were any infractions were they dealt with properly.
And I took video, and I recorded it all, and there wasn't a single complaint from an opposition observer that there had been anything done incorrectly with those elections.
My first trip to Venezuela in 2004, I was producing the big debate show on Canadian TV called Counterspin on CBC Newsworld.
I was a well-known documentary filmmaker. I had founded the Big Hot Docs! Documentary Film Festival.
So I was a known quantity in Canada. And so when I was in Venezuela, I said I'll go say hello to the Canadian embassy. I was trying to figure out what was going on in Venezuela. I figured some Counselor would pat me on the head and say welcome to Venezuela.
What business does a Canadian embassy have with bringing a Canadian journalist into a room with opposition people, essentially trying to involve me in a conspiracy against the Venezuelan government.
So this Canadian government role in Venezuela has been very active in trying to destabilized the situation, promote and nurture the opposition.
And clearly for two reasons.
Number one, Canada is one of the biggest mining nations in the world, and Venezuela has tremendous untapped natural resources, particularly gold. And Canada has a very strong gold mining sector. And the gold was not–Canada wasn't, Canadian companies weren't easily getting at that gold.
…So the ability to nurture an opposition and get an in with an opposition that might come to power, and then favour Canadian mining companies, I think that's one motivation.
And another motivation, I think, has to do with Canada's role historically; how it plays with the United States and helps the U.S. and its foreign policy.
And I once interviewed a Canadian general in 2004, Lewis MacKenzie. And I asked him, why is Canada so into this Afghan war? You know, this Afghan, post-9/11.
It could have been dealt with as a police-type operation, in terms of going after al Qaeda. But a full-fledged invasion, full-fledged regime change. Why is Canada in this, and in it for the long haul? Because it's 2004, after the invasion of Iraq.
And his answer was, I think, very instructive. He said, well, we didn't go to Iraq. So to keep our ability to selling goods into the United States, we needed to pay with some blood.
We needed to send troops to Afghanistan and have some Canadian soldiers killed to show we're willing to share the burden. He didn't use the word empire, but that's essentially what he was saying.
So the role of Canada assisting in very nefarious American policy, and giving it this Canadian, oh, we're for the UN, we're humanitarians, giving it that veneer, it's an important role that Canada plays.
But it's, I think, now the recognition of Guaido so exposes Canada because it's such a clear violation of the UN Charter of non-interference in internal affairs.


Generation of museum web pages: The intelligent labelling explorer.
The first phase of the Intelligent Labelling Explorer project has built the ILEX-1.1 system, which uses artificial intelligence technology to generate descriptions of objects displayed in a museum gallery. Each description appears on a World Wide Web page, and the user can move from page to page, viewing the objects in any order, mimicking the experience of someone walking through the museum. Crucially, these descriptions aren't simply retrieved from a storage space, but are generated on demand by combining canned text with fully generated text in a coherent way. This use of dynamic hypertext allows ILEX-1.1 to generate descriptions appropriate to the expertise level of the user and to refer back to objects the user has already seen or to suggest objects the user might be interested in based on what objects they've chosen to look at so far. This paper discusses the advantages of dynamic hypertext and issues related to generating a text that hangs together well.


Gute Drinks, schlechte Preise, schlechter Service!
A great place for everybody who likes good drinks and Karl May (who lived in/near Dresden). The interior has paintings and decoration with motives from Karl May books. Drinks were really good.
Lovely bar in the Kempinsky Hotel. Fascinating to look at the pictures displays of items owned by Karl May, the adventurer. Good if not lengthy cocktail menu, so be prepared.
The wild west in Dresden with great cocktails.
Get quick answers from Karl May Bar staff and past visitors.


asian mirrors bathroom bathroom mirrors bathroom mirrors bathroom mirrors cabinets asian inspired bathroom mirrors.
heated floors bathroom installing heated floors in bathroom heated bathroom floors electric.
wall mounted bathroom faucets brushed nickel wall mounted bathroom faucet with and quick brushed nickel faucet lavatory single handle wall mount waterfall tub faucet brushed nickel.
brass bathroom faucets widespread polished brass bathroom faucet faucets widespread single hole how to clean fixtures brass bathroom sink faucet widespread.
glass shower panels for bathrooms glass shower doors superior new surround in 1 folding glass shower screens for baths.
adding a shower to a bathroom add shower to half bath adding a bathroom cost medium size of prices average bathtub adding a shower to a tiny bathroom.
how to tile your bathroom floor and ivory mix tumbled mosaic guest bath floor traditional bathroom penny tile bathroom floor ideas.
water resistant flooring for bathrooms waterproofing the seams and junctions to make the floor waterproof waterproof bathroom flooring lowes.
bathroom vanity lighting bathroom vanity light fixture awesome justice design fab textile 4 pertaining to 5 bathroom vanity lighting ideas.


Is it good to buying links feom peopleperhour and upwork?
Hi, i am running a blog in tech niche. It's 6months old and 300pageviews per day. I'm outreaching other bloggers for guest posting but they are only offering sponsored posts. Finally i came to know about peopleperhour.com and upwork.com there are many freelancers offering guestposts. Is it good to buy from them? It can harm my rankings?
If the content is good it won't harm your rankings. But make sure that it's really high-quality guestposts, make sure its unique. Also check if the freelancer have good reputation, have been doing guestposts in the past.
If you want to get more details and insight about guest blogging try the search 'guest posting opportunities.' A lot of expert opinions and a lot of recommendations for you as well.


text:
Home > Space > News Articles
Fermi Confirmed: Supernova Remnants Accelerate Cosmic Rays To Incredible Speeds
By News Staff | February 14th 2013 05:32 PM | Print | E-mail
The expanding debris of exploded stars produces some of the fastest-moving matter in the universe, according to a new paper. Supernova remnants accelerate cosmic rays to incredible speeds.
Cosmic rays are subatomic particles that move through space at almost the speed of light. About 90 percent of them are protons, with the remainder consisting of electrons and atomic nuclei. In their journey across the galaxy, the electrically charged particles are deflected by magnetic fields. This scrambles their paths and makes it impossible to trace their origins directly. Through a variety of mechanisms, these speedy particles can lead to the emission of gamma rays, the most powerful form of light and a signal that travels to us directly from its sources.
In 1949, physicist Enrico Fermi suggested the highest-energy cosmic rays were accelerated in the magnetic fields of interstellar gas clouds. In the decades that followed, astronomers showed supernova remnants were the galaxy's best candidate sites for this process.
Since its launch in 2008, Fermi's Large Area Telescope (LAT) has mapped million- to billion-electron-volt (MeV to GeV) gamma-rays from supernova remnants. For comparison, the energy of visible light is between 2 and 3 electron volts. The Ferm newi results concern two particular supernova remnants, known as IC 443 and W44, which scientists studied to prove supernova remnants produce cosmic rays. IC 443 and W44 are expanding into cold, dense clouds of interstellar gas. These clouds emit gamma rays when struck by high-speed particles escaping the remnants.
The husks of exploded stars give rise to some of the fastest particles in the cosmos. New findings by NASA's Fermi show that two supernova remnants accelerate protons to near the speed of light. These protons interact with nearby interstellar gas clouds, which then emit gamma rays. Credit: : NASA's Goddard Space Flight Center
The supernova remnant IC 443, popularly known as the Jellyfish Nebula, is located 5,000 light-years away toward the constellation Gemini and is thought to be about 10,000 years old. W44 lies about 9,500 light-years away toward the constellation Aquila and is estimated to be 20,000 years old. Each is the expanding shock wave and debris formed when a massive star exploded.
The W44 supernova remnant is nestled within and interacting with the molecular cloud that formed its parent star. Fermi's LAT detects GeV gamma rays (magenta) produced when the gas is bombarded by cosmic rays, primarily protons. Radio observations (yellow) from the Karl G. Jansky Very Large Array near Socorro, N.M., and infrared (red) data from NASA's Spitzer Space Telescope reveal filamentary structures in the remnant's shell. Blue shows X-ray emission mapped by the Germany-led ROSAT mission. Credit: : NASA/DOE/Fermi LAT Collaboration, NRAO/AUI, JPL-Caltech, ROSAT
Scientists previously could not determine which atomic particles are responsible for emissions from the interstellar gas clouds because cosmic ray protons and electrons give rise to gamma rays with similar energies. After analyzing four years of data, Fermi scientists see a distinguishable feature in the gamma-ray emission of both remnants. The feature is caused by a short-lived particle called a neutral pion, which is produced when cosmic ray protons smash into normal protons. The pion quickly decays into a pair of gamma rays, emission that exhibits a swift and characteristic decline at lower energies. The low-end cutoff acts as a fingerprint, providing clear proof that the culprits in IC 443 and W44 are protons.
"The discovery is the smoking gun that these two supernova remnants are producing accelerated protons," said lead researcher Stefan Funk, an astrophysicist with the Kavli Institute for Particle Astrophysics and Cosmology at Stanford University in Calif. "Now we can work to better understand how they manage this feat and determine if the process is common to all remnants where we see gamma-ray emission."
A charged particle trapped in a supernova remnant's magnetic field moves randomly throughout the field and occasionally crosses through the explosion's leading shock wave. Each round trip through the shock ramps up the particle's speed by about 1 percent. After many crossings, the particle obtains enough energy to break free and escape into the galaxy as a newborn cosmic ray.
The Fermi discovery builds on a strong hint of neutral pion decay in W44 observed by the Italian Space Agency's AGILE gamma ray observatory and published in late 2011.
Citation: M. Ackermann, M. Ajello, A. Allafort, L. Baldini, J. Ballet, G. Barbiellini, M. G. Baring, D. Bastieri, K. Bechtol, R. Bellazzini, R. D. Blandford, E. D. Bloom, E. Bonamente, A. W. Borgland, E. Bottacini, T. J. Brandt, J. Bregeon, M. Brigida, P. Bruel, R. Buehler, G. Busetto, S. Buson, G. A. Caliandro, R. A. Cameron, P. A. Caraveo, J. M. Casandjian, C. Cecchi, Ö. Çelik, E. Charles, S. Chaty, R. C. G. Chaves, A. Chekhtman, C. C. Cheung, J. Chiang, G. Chiaro, A. N. Cillis, S. Ciprini, R. Claus, J. Cohen-Tanugi, L. R. Cominsky, J. Conrad, S. Corbel, S. Cutini, F. D'Ammando, A. de Angelis, F. de Palma, C. D. Dermer, E. do Couto e Silva, P. S. Drell, A. Drlica-Wagner, L. Falletti, C. Favuzzi, E. C. Ferrara, A. Franckowiak, Y. Fukazawa, S. Funk, P. Fusco, F. Gargano, S. Germani, N. Giglietto, P. Giommi, F. Giordano, M. Giroletti, T. Glanzman, G. Godfrey, I. A. Grenier, M.-H. Grondin, J. E. Grove, S. Guiriec, D. Hadasch, Y. Hanabata, A. K. Harding, M. Hayashida, K. Hayashi, E. Hays, J. W. Hewitt, A. B. Hill, R. E. Hughes, M. S. Jackson, T. Jogler, G. Jóhannesson, A. S. Johnson, T. Kamae, J. Kataoka, J. Katsuta, J. Knödlseder, M. Kuss, J. Lande, S. Larsson, L. Latronico, M. Lemoine-Goumard, F. Longo, F. Loparco, M. N. Lovellette, P. Lubrano, G. M. Madejski, F. Massaro, M. Mayer, M. N. Mazziotta, J. E. McEnery, J. Mehault, P. F. Michelson, R. P. Mignani, W. Mitthumsiri, T. Mizuno, A. A. Moiseev, M. E. Monzani, A. Morselli, I. V. Moskalenko, S. Murgia, T. Nakamori, R. Nemmen, E. Nuss, M. Ohno, T. Ohsugi, N. Omodei, M. Orienti, E. Orlando, J. F. Ormes, D. Paneque, J. S. Perkins, M. Pesce-Rollins, F. Piron, G. Pivato, S. Rainò, R. Rando, M. Razzano, S. Razzaque, A. Reimer, O. Reimer, S. Ritz, C. Romoli, M. Sánchez-Conde, A. Schulz, C. Sgrò, P. E. Simeon, E. J. Siskind, D. A. Smith, G. Spandre, P. Spinelli, F. W. Stecker, A. W. Strong, D. J. Suson, H. Tajima, H. Takahashi, T. Takahashi, T. Tanaka, J. G. Thayer, J. B. Thayer, D. J. Thompson, S. E. Thorsett, L. Tibaldo, O. Tibolla, M. Tinivella, E. Troja, Y. Uchiyama, T. L. Usher, J. Vandenbroucke, V. Vasileiou, G. Vianello, V. Vitale, A. P. Waite, M. Werner, B. L. Winer, K. S. Wood, M. Wood, R. Yamazaki, Z. Yang, and S. Zimmer,'Detection of the Characteristic Pion-Decay Signature in Supernova Remnants', Science 15 February 2013: Vol. 339 no. 6121 pp. 807-811 DOI: 10.1126/science.1231160
Fermi Telescope Closes In On Source Of Cosmic Rays
What Is The Universe Made Of? Active Galaxies And Mystery
CTA 1- 10,000 Year-Old Stellar Corpse Points To Evolution Of Pulsars
Discovering The Origin Of Cosmic Rays
Galactic Center Gamma Rays May Be A Clue To Dark Matter


Mila Tadic is a character in the HD Universe who is mentioned in Grand Theft Auto IV.
Mila Tadic was a girl from the same village as Niko and Roman Bellic. Niko had a crush on her, and, according to Roman, she slept with Roman many times and was called the "Town Bike". This, however, may be Roman exaggerating, like he did in his emails to Niko before Niko came to the United States.
This page was last modified on 4 February 2015, at 13:03.


text:
Burls Art creates a dazzling guitar made of plastic dumped into the ocean
Robert Fripp and Toyah kickstart 2022 with a spicy cover of Teenage Kicks by The Undertones
NewsMusic
Tom Morello taps Phantogram for dark new single Driving To Texas
The song features Phantogram and is the second single from The Atlas Underground Fire.
By Qistina Bumidin
Photo: Jeff Kravtiz / FilmMagic
Tom Morello has collaborated with American alt-rock duo Phantogram on Driving To Texas, the second single from his upcoming solo LP, The Atlas Underground Fire.
READ MORE: Tom Morello announces new album, releases Highway To Hell cover with Bruce Springsteen and Eddie Vedder
Driving To Texas brings together Phantogram's atmospheric, synth-driven sound with Morello's rock guitar virtuosity.
"Sarah has one of the most haunting and beautiful voices of anyone singing today, and Josh's production is stylistically so fresh and eerie," Morello said in a statement. "This song is creepy as hell – a dark journey, a struggle for a tortured soul."
Speaking about his approach to the track's guitar soaring solo, Morello explained he wanted it to "feel like a vengeful angel who has come down to decide the fate of the protagonist."
Driving To Texas follows Morello's cover of AC/DC's Highway to Hell which featured Bruce Springsteen and Eddie Vedder as guest vocalists. The single, which dropped earlier this month was the first from Morello's upcoming LP.
The Atlas Underground Fire is set to feature a star-studded list of collaborators, which includes the likes of Chris Stapleton, Mike Posner, Damian Marley and Bring Me The Horizon. The album is due out 15 October and is available for pre-order now.
Gear 17th January 2022
Music 17th January 2022
Features 17th January 2022


text:
June 14, 2018 by Shyam G Menon
RAAM 2018 STARTS / VIEW FROM OCEANSIDE
Austria's Christoph Strasser takes a selfie at the start line of RAAM 2018 (Photo: Rajeev G)
This report mixes an on the spot account of the start of RAAM 2018 with relevant background information. Rajeev G, was at Oceanside for this blog.
The 2018 Race Across America (RAAM) began from Oceanside, California on June 12.
The race, which traverses the United States from Oceanside on the west coast to Annapolis in the east, entails cycling a distance of approximately 4800 kilometers. The race ends on June 25. Last year's winners in the solo category for men and women were Christoph Strasser of Austria and Sarah Cooper of the US.
Strasser, one of the leading ultra-distance cyclists in the world today, is racing at RAAM this year too. While Sarah Cooper is not listed for 2018, a name to watch out for among women doing RAAM solo would be Switzerland's Nicole Reist. Also participating is Seana Hogan of the US, veteran cyclist and six time winner at RAAM who is seeking to improve her record in the fifty plus age category.
San Diego based-engineer, Rajeev G, was there at Oceanside to witness the start of RAAM. " Strasser was the last rider to start. He looked very relaxed and was smiling and laughing at the start line,'' Rajeev wrote in. Strasser who has dominated RAAM in recent years, paused to take a selfie at the start line before pedaling off into the race.
Kathy Roche-Wallace at the start line of RAAM 2018 (Photo: Rajeev G)
Christoph Strasser commences his race at RAAM 2018 (Photo: Rajeev G)
Unlike many of the other riders, Strasser did not seem to have a dedicated fan club or many supporters in the crowd at Oceanside. However everyone knew who he was and you could sense awe in the crowd. Thanks to her crew members, Nicole Reist enjoyed the loudest cheering. She was one of the early riders to start. " Reist had the most vocal support of anyone,'' Rajeev noted. According to him, Seana Hogan was one of the first racers to start (apart from all the RAAW riders of course). " She was clearly very popular; terrific acknowledgement from the crowd as her name was announced. Seana was in good spirits at the start as well. She left rather quickly after reaching the starting line,'' he said.
Rajeev had been at the start line in 2017 too.
Compared to last year, he felt that the ambience was subdued this time around. " Hanging around near the start, I met Bob and Darlene Mckenzie from Tulsa, Oklahoma. Bob was scheduled to ride as part of a four-person team (Team RAAM Polio). Darlene was his crew chief; she claimed that is the tougher job. They watched the start for a while before heading to the airport to pick up Bob's three Austrian teammates. Darlene mentioned that there are fewer solo riders in this year's RAAM, but neither of them knew why,'' Rajeev wrote in.
Seana Hogan starts her race at RAAM 2018 (Photo: Rajeev G)
Nicole Reist at RAAM 2018 (Photo: Rajeev G)
He added, " Bob had a pretty interesting story. He only picked up road riding close to his 60th birthday six or seven years ago. He told me that he was totally unathletic before that. Apparently since he took up cycling, he has lost fifty pounds and completed almost 300 centuries (100 mile-rides). 2018 will be his third time doing the RAAM team race, each time with a four person-team. Last year his team had finished in just over seven days. This year, the goal is to finish in under seven days.''
In 2017 Lt Col Srinivas Gokulnath had become the first Indian to complete RAAM, followed by Amit Samarth. This year there are no Indian cyclists in the fray. Sundaram Narayanan from Goa, who had registered to participate in the solo category, withdrew following injury while training in San Diego.
At the time of writing this report (June 14, 3.35 PM in India), Strasser was leading the solo riders having covered 716.8 miles. Nicole Reist was at 583.3 miles and Seana Hogan at 501.1 miles.
(The author, Shyam G Menon, is a freelance journalist based in Mumbai. This article has inputs from Rajeev G, engineer based in San Diego. He provided the view from Oceanside. All photos used herein have been provided by Rajeev.)


text:
Q: How do I access depth data in three.js I've seen shaders that create an outline around edges dynamically based on how much difference there is between the depth (distance from camera to surface) of a pixel at an edge and the depth of a pixel adjacent to it (less depth can mean a thinner outline or none at all). Like these renders:

And I'm interested in using such a shader on my three.js renders, but I think I need to figure out how to access depth data for each pixel.
Three.js documentation mentions a depth setting:

depth - whether the drawing buffer has a depth buffer of at least 16
  bits. Default is true.

But I'm not sure what it means by the drawing buffer having a depth buffer. The image buffers I'm familiar with are pixel buffers, with no depth information. Where would I access this depth buffer at?

A: There's an example in the Three.js website that renders the scene to a THREE.WebGLRenderTarget with it's depthBuffer attribute set to true. This gives you access to depth data.
The idea is as follows:

*

*Render the main scene to a WebGLRenderTarget. This target will contain RGB and Depth data that can be accessed via their .texture and .depthTexture attributes, accordingly.

*Take these 2 textures, and apply them to a plane with custom shaders.

*In the plane's custom shaders, you can access the texture data to perform whatever calculations you want to play with colors and depth.

*Render the second scene (that contains only the plane) to canvas.

Here's the link to source code of that example Notice you can comment-out the code on line 73 to allow the color data to display.

A: Three.js already has a MeshToonMaterial, there's no need to create a new one.
https://github.com/mrdoob/three.js/blob/master/examples/webgl_materials_variations_toon.html

html, body, iframe {margin:0;width:100%;height:100%;border:0}
<iframe src="https://threejs.org/examples/webgl_materials_variations_toon.html">

redpajama_set_name: RedPajamaStackExchange


Go to how-to-subscribe-to-tigo-games and follow the simple instructions.
Magic Voice is a whole lot of fun. Play jokes on friends and family by electronically altering your voice to sound like someone else, or change the mood and background noises of the call to make it sound like you are calling from some place more interesting. Sound like fun to you?
Per 15 minute episode = TZS 10.
Per 15 minute episode = TZS 30.
Per 15 minute episode = TZS 99.
Dial 0 901 656 565 and follow the simple instructions.
We all love a great story. From thrillers and love stories to educational and historical stories, Story Box has something for everyone.
You can subscribe to stories and get new episodes daily, or buy the entire story and listen to episodes at your own convenience.
Per 5 minute episode = TZS 50.
Per 10 minute episode = TZS 100.
Per 15 minute episode = TZS 150.
Per story = TZS 1,200 by Tigo Pesa or TZS 1,300 from your main balance.
Browse, buy and get access to great storytelling today.
Dial 0 901 656 564 and follow the simple instructions.
IVR - Dial 15050 or 15007 anytime to listen, buy and set up Tigo Beatz.


Aerogel particles such as Cabot Aerogel�s Lumira � aerogel, used in the daylighting panels in office buildings, gyms, and sports arenas around the world, while composite aerogel blankets such as Aspen Aerogels Spaceloft � and Cabot Aerogel�s Thermal Wrap� insulate subsea oil pipelines, refineries, and residential apartments.... The researchers previously demonstrated that ultrafast supercapacitor electrodes could be fabricated using a 3D printed graphene aerogel. In the new study, they improved the graphene aerogel enough to allow them to build a porous scaffold that they then loaded with manganese oxide, a commonly used pseudocapacitive material.
The researchers say that there�s no limit to the size of the container: You could make a mini graphene aerogel using this process, or a meter-cubed aerogel if you wish. Graphene aerogel, propped... It�s about super materials, graphene � very incredible material that I believe is going to radically transform the way we make things, and the way we ultimately use things and change our lives. I�ll have another Winning Investor Daily or you next week.
Wait a second aerogel gurus� how is it possible that a solid that is filled with air can weigh less than air? Okay you got us. That number is the density of the aerogel structure minus air, meaning the actual density of that ultralight graphene aerogel is 0.16 mg/cc plus the density of air, which is about 0.00139 g/cc (1.39 mg/cc). how to make edges look smooth in gimp The researchers previously demonstrated that ultrafast supercapacitor electrodes could be fabricated using a 3D printed graphene aerogel. In the new study, they improved the graphene aerogel enough to allow them to build a porous scaffold that they then loaded with manganese oxide, a commonly used pseudocapacitive material.
Graphene Graphene is an atomic-scale honeycomb lattice made of carbon atoms. Graphene is a one-atom thick sheet of graphite , with atoms arranged in a regular hexagonal pattern,   also called "nanocomposite paper". how to make graphene with tape Graphene is a two-dimensional material that offers a unique combination of low density, exceptional mechanical properties, large surface area and excellent electrical conductivity.
Out of all the aerogels, graphene aerogel is the least dense and considered one of the lightest solid materials on Earth. Apart from blowing our minds, aerogels are already proving useful for a wide variety of applications, from cleaning up oil spills to creating high-energy batteries.
Abstract. The study reports on the synthesis of a graphene aerogel@octadecylamine-functionalized carbon quantum dots (GA@O-CQDs). The graphene oxide aqueous dispersion, O-CQDs aqueous dispersion and toluene were strongly mixed to make a toluene-in-water Pickering emulsion.
Other researchers have typically made aerogels by suspending graphene oxide nanoparticles in water, chemically reducing the suspensions, and then freeze-drying them to form 3-D networks of graphene.


I am a licensed tour guide and live in Windsor. The nearest train station to the castle is Windsor Central Station. You can get off the train at Windsor Central Station and walk to the gates of Windsor Castle �... You�ll get all your favourite fillings, without the tortilla. White or brown rice, succulent meat or veggies of your choice, Australian Jack cheese, Vegetarian black beans, house-made corn chips, Pico de Gallo (a fresh-chopped salsa) and house-blend salsa.
Sydney Metro Northwest is an under-construction rapid transit link to the north-western suburbs of Sydney, New South Wales. Australia. The Northwest Metro is being managed by Transport for New South Wales and is proposed to connect Rouse Hill to Chatswood via Castle Hill and Epping.
Demographics. Castle Hill is a high density, urban neighborhood. The area has a relatively diverse population; primarily consisting of African Americans, and Latin Americans, most predominantly Puerto Ricans (Castle Hill has one of the highest concentrations of Puerto Ricans in all of New York City).


. Invest. Ophthalmol. Vis. Sci. 2018;59(9):5261.
Purpose : Angiopoeitin-2 (Ang2) and vascular endothelial growth factor isoform A (VEGF-A) are multi-faceted cytokines involved in inflammation and epithelial mesenchymal transition (EMT), key steps in the pathogenesis of proliferative vitreoretinopathy (PVR). In particular, the relationship between Ang2 and PVR has not been previously reported. The aim of this study was to examine the relationship between severity of PVR and Ang2/VEGF in a rabbit model of PVR.
Methods : PVR was surgically induced in 11 rabbit eyes by vitrectomy, retinotomy, cryotherapy and injection of platelet-rich plasma at baseline. Vitreous fluid samples were obtained at baseline and weeks 2, 3 and 4. The concentrations of VEGF-A and Ang2 were measured by enzyme-linked immunosorbent assay (ELISA). Severity of PVR was assessed on dilated fundal examination with indirect binocular ophthalmoscopy and graded based on the revised experimental PVR classification. Concentrations of VEGF-A and Ang2 at week 4 were compared to baseline and correlations between the cytokines with PVR severity were assessed.
Results : Four weeks after PVR induction, 7 eyes (63.6%) developed stage 4 or worse PVR. The concentration of Ang2 at week 4 was significantly higher than baseline (15.9 x 103pg/ml vs 72.5 x 103pg/ml, p=0.0001). VEGF-A was elevated at week 4 compared to baseline (3.0 x 103pg/ml vs 11.1 x 103pg/ml) but the difference was not statistically significant (p =0.16). In addition, a significant positive correlation was observed between Ang2 and PVR severity (Spearman's correlation coefficient 0.61, p=0.0002).
Conclusions : Ang2 was significantly elevated in the vitreous of rabbit eyes with surgically induced PVR and correlated well with PVR severity. These results support the role of Ang2 in the pathogenesis of PVR.


text:
USS Bullard (DD-660) was a Fletcher-class destroyer of the United States Navy, named for Rear Admiral William H. G. Bullard (1866–1927).

Bullard was launched 28 February 1943 by Federal Shipbuilding and Dry Dock Co., Kearny, N.J., sponsored by Mrs. H. G. Bullard, widow of Rear Admiral Bullard; and commissioned 9 April 1943.

Service history
After conducting brief operations along the eastern seaboard and in the Caribbean, Bullard proceeded to the Pacific, arriving at Pearl Harbor 29 August 1943. With the exception of one voyage to California (10 September 1944 – 18 February 1945) she operated constantly in forward areas of the Pacific rendering fire support, plane guard, patrol, and radar picket services. She participated in
 the Wake Island raid (5–6 October 1943);
 Rabaul strike (11 November);
 the invasion of Tarawa (19 November – 1 December);
 the occupation of Kwajalein and Majuro Atolls (22 January – March 1944);
 Admiralty Islands landings (30 March – 13 April),
 Hollandia operation (16 April – 4 May);
 seizures of Saipan and of Guam (10 June – 17 August) and
 the Okinawa operation (15 March – 31 May 1945).

On 11 April 1945, during the Okinawa operation Bullard was slightly damaged by a Japanese kamikaze. Repairs completed at Okinawa, she departed on 31 May, and steamed to Leyte. Departing Leyte Gulf, 1 July, Bullard next participated in the 3rd Fleet raids against Japan (10 July – 15 August).

After the cessation of hostilities, Bullard remained in the Far East engaged in occupation duties until 10 November 1945, when she departed for San Pedro, Calif., arriving on 3 December. She operated along the west coast during most of 1946, and then reported to San Diego for inactivation. Bullard was placed out of commission in reserve on 20 December 1946.

Bullard was stricken from the Naval Vessel Register on 1 December 1972. She was sold on 3 December 1973 and broken up for scrap.

Awards
Bullard received nine battle stars for her World War II service.

References

External links

navsource.org: USS Bullard
hazegray.org: USS Bullard

World War II destroyers of the United States
Ships built in Kearny, New Jersey
1943 ships
Fletcher-class destroyers of the United States Navy

redpajama_set_name: RedPajamaWikipedia


text:
The Venice High School Sports Medicine Team is one of the most active programs on the Venice High School campus. Together, a team of student athletic trainers and a Certified Athletic Trainer, care for over 400 athletes a year on 23 athletic teams. The Venice High School Sports Medicine team was established in 2004 by Kirsten Farrell, ATC. The team began as just a few students assisting Kirsten at various practices and games, especially football. Over the years, the program has exponentially grown, and in recent years, the team has over 40 student athletic trainers. All of the trainers are CPR/ First Aid/AED certified and trained in techniques such as taping, stretching, and rehabilitative exercises. Students on the Sports Medicine Team at Venice work games and practice for all of the sports provided at Venice High School.
Although the program at Venice is provided with a certified athletic trainer for 10 hours a week by the West Coast Sports Medicine, a non-profit organization for athletic medicine, the Venice program does not receive funding from the school district. Because of the lack of sufficient funding for the program, Kirsten Farrell, as well as the student trainers, have learned to be creative with resources. Since our unique program is relatively rare to most public schools in Los Angeles, fundraising is a vital part in providing the necessary materials for our athletes as well as setting off costs for travel and team competition fees. We plan all fundraising events independently because we are not funded by Venice High School or Los Angeles Unified.
Over the past fourteen years, the program's demands have increased in that its students are fully trained for both daily and emergency situations that they may encounter. Students must learn both basic and advanced concepts and applications used by Certified Athletic Trainers. These include knowledge of anatomy and physiology, evaluation of an injury, prevention and treatment of an injury, emergency protocol, and professionalism in a workplace. The students are also required to learn and master practical applications including basic first aid, taping, massaging, splinting, icing, and rehabilitation.
Along with working for the teams at Venice, the Sports Medicine Team works a variety of events such as fundraisers, school functions, football camp for high school students, and competitions. The team participates in various competitions each year, one locally for the state of California at St. Francis High School, HOSA – Future Health Professionals and a national competition held online. The students on the Sports Medicine Team give back to the community by volunteering medical aid at community events and a Breast Cancer Awareness fundraiser held during the month of October every year.
The Sports Medicine Team provides excellent opportunities and medical insight for the students involved. The program introduces knowledge that is useful in numerous careers such as athletic training, massage therapy, emergency medical attendants and many more. Our student population consists of 46% English language learners and 64% students receive free or reduced meal plans. With a mere 73% graduation rate, it is programs such as the Sports Medicine Team that inspire and assist students in discovering their interests and passions that otherwise may not have been offered to them.
In 2015, Venice High School was named a National Safe Sport School – First Team Division by the National Athletic Trainers' Association. Venice is the only school in Los Angeles Unified with that distinction. In 2019, Venice again received the award for another three years. In 2018, our teacher, Kirsten Farrell was recognized as a California State Teacher of the Year by the California Department of Education.
During the 2018-2019 school year, the program applied for a Career Technical Education Incentive Grant that allowed an Anatomage Table and Alter-G Treadmill to be added to the classroom facility.
Many students that were on the team at Venice have gone on to pursue an education in sports medicine at various universities across California and the United States: Brown University, Boston University, The University of Utah, Northeastern University, University of California – Berkley, Los Angeles, Santa Barbara, Santa Cruz, San Diego, California State University – Long Beach, Northridge, Monterey Bay, University of Southern California. The team has a unique impact on all of its members, teaching the students hard work, responsibility, communication and medical skills, as well as giving the students a sense of community and team work. Currently program graduates are working as certified athletic trainers, medical doctors, physical therapists, nurses and paramedics.


text:
Why Aren't More Trucking Laws Being Passed?
Last week we wrote about the pressure facing the Federal Motor Carrier Safety Administration to keep our highways safe with stricter regulations for truckers. Here's more about necessary improvements to our laws so that everyone is safer on the road.
Large-truck accidents accounted for nearly 4,000 fatalities in 2013—the fourth straight year that the number of truck-related deaths has risen, according to the National Transportation Safety Board. That's a 17 percent increase based on numbers collected by the National Highway Traffic Safety Administration.
In a statement, the NTSB recommended that trucking companies explore more ways to manage driver fatigue and sleep disorders, afflictions that have been the source of several deadly accidents on the road. Sleep deprivation and mandated driving hours remain constant topics of discussion among safety experts and legislators, some of whom find themselves arguing opposite ends of the spectrum. The NTSB also unveiled its "Most Wanted List" of transportation improvements for 2015, including strengthening the safety of commercial trucking through increased industry oversight.
The statistics come at a time when Congress voted to tamp down trucking regulations last year, part of an ongoing trend of legislation that effectively weakens driving limitations and mandated driving hours. An example of one such amendment, passing on a 21-9 vote by the Senate Appropriations Committee in early June, rescinded a provision that required drivers to take breaks between the hours of 1-5am. The vote passed despite widespread opposition by safety advocates, transportation experts and the White House, all of which expressed concern for those driving at high speeds in the wee hours of the morning.
Also from NTSB: Highway regulators have failed to act on more than 100 recommendations over the last year to improve truck safety, as trucking lobbyists aggressively seek to protect the working rights of operators and those who maintain clean driving records. It's a proverbial game of cat and mouse in the eyes of many.
The Board says that safety should be the industry's highest priority, though recent amendments and deregulations seemingly prove otherwise. When it comes down to it, trucking accidents are increasingly preventable, thanks to new technology such as vehicle sensors. At this stage, sensors are more of a suggestion than a requirement.
So why aren't more laws being passed to prevent accidents from happening?
The cynical person might chalk it up to the nature of the system — high price of doing business in a fast-paced world. But others, like Steve Pociask, President of the American Consumer Institute, in an opinion piece for the Daily Caller, points out that revisiting transportation reform should be a higher priority for the 114th Congress, whether it be new laws and regulations or revisiting long-standing laws to determine what's working and what isn't. But assuming the issue gets swept under the rug, it's safe to conclude that accidents will continue to happen.
Filed Under: Blog Tagged With: commercial trucks, highway safety, laws, truck crashes


text:
namespace v8 {
namespace internal {

namespace {

bool ExtractStringSetting(Isolate* isolate,
                          Handle<JSObject> options,
                          const char* key,
                          icu::UnicodeString* setting) {
  Handle<String> str = isolate->factory()->NewStringFromAsciiChecked(key);
  Handle<Object> object = Object::GetProperty(options, str).ToHandleChecked();
  if (object->IsString()) {
    v8::String::Utf8Value utf8_string(
        v8::Utils::ToLocal(Handle<String>::cast(object)));
    *setting = icu::UnicodeString::fromUTF8(*utf8_string);
    return true;
  }
  return false;
}

bool ExtractIntegerSetting(Isolate* isolate,
                           Handle<JSObject> options,
                           const char* key,
                           int32_t* value) {
  Handle<String> str = isolate->factory()->NewStringFromAsciiChecked(key);
  Handle<Object> object = Object::GetProperty(options, str).ToHandleChecked();
  if (object->IsNumber()) {
    object->ToInt32(value);
    return true;
  }
  return false;
}

bool ExtractBooleanSetting(Isolate* isolate,
                           Handle<JSObject> options,
                           const char* key,
                           bool* value) {
  Handle<String> str = isolate->factory()->NewStringFromAsciiChecked(key);
  Handle<Object> object = Object::GetProperty(options, str).ToHandleChecked();
  if (object->IsBoolean()) {
    *value = object->BooleanValue();
    return true;
  }
  return false;
}

icu::SimpleDateFormat* CreateICUDateFormat(
    Isolate* isolate,
    const icu::Locale& icu_locale,
    Handle<JSObject> options) {
  // Create time zone as specified by the user. We have to re-create time zone
  // since calendar takes ownership.
  icu::TimeZone* tz = NULL;
  icu::UnicodeString timezone;
  if (ExtractStringSetting(isolate, options, "timeZone", &timezone)) {
    tz = icu::TimeZone::createTimeZone(timezone);
  } else {
    tz = icu::TimeZone::createDefault();
  }

  // Create a calendar using locale, and apply time zone to it.
  UErrorCode status = U_ZERO_ERROR;
  icu::Calendar* calendar =
      icu::Calendar::createInstance(tz, icu_locale, status);

  // Make formatter from skeleton. Calendar and numbering system are added
  // to the locale as Unicode extension (if they were specified at all).
  icu::SimpleDateFormat* date_format = NULL;
  icu::UnicodeString skeleton;
  if (ExtractStringSetting(isolate, options, "skeleton", &skeleton)) {
    icu::DateTimePatternGenerator* generator =
        icu::DateTimePatternGenerator::createInstance(icu_locale, status);
    icu::UnicodeString pattern;
    if (U_SUCCESS(status)) {
      pattern = generator->getBestPattern(skeleton, status);
      delete generator;
    }

    date_format = new icu::SimpleDateFormat(pattern, icu_locale, status);
    if (U_SUCCESS(status)) {
      date_format->adoptCalendar(calendar);
    }
  }

  if (U_FAILURE(status)) {
    delete calendar;
    delete date_format;
    date_format = NULL;
  }

  return date_format;
}

void SetResolvedDateSettings(Isolate* isolate,
                             const icu::Locale& icu_locale,
                             icu::SimpleDateFormat* date_format,
                             Handle<JSObject> resolved) {
  Factory* factory = isolate->factory();
  UErrorCode status = U_ZERO_ERROR;
  icu::UnicodeString pattern;
  date_format->toPattern(pattern);
  JSObject::SetProperty(
      resolved, factory->NewStringFromStaticChars("pattern"),
      factory->NewStringFromTwoByte(
                   Vector<const uint16_t>(
                       reinterpret_cast<const uint16_t*>(pattern.getBuffer()),
                       pattern.length())).ToHandleChecked(),
      SLOPPY).Assert();

  // Set time zone and calendar.
  const icu::Calendar* calendar = date_format->getCalendar();
  const char* calendar_name = calendar->getType();
  JSObject::SetProperty(resolved, factory->NewStringFromStaticChars("calendar"),
                        factory->NewStringFromAsciiChecked(calendar_name),
                        SLOPPY).Assert();

  const icu::TimeZone& tz = calendar->getTimeZone();
  icu::UnicodeString time_zone;
  tz.getID(time_zone);

  icu::UnicodeString canonical_time_zone;
  icu::TimeZone::getCanonicalID(time_zone, canonical_time_zone, status);
  if (U_SUCCESS(status)) {
    if (canonical_time_zone == UNICODE_STRING_SIMPLE("Etc/GMT")) {
      JSObject::SetProperty(
          resolved, factory->NewStringFromStaticChars("timeZone"),
          factory->NewStringFromStaticChars("UTC"), SLOPPY).Assert();
    } else {
      JSObject::SetProperty(
          resolved, factory->NewStringFromStaticChars("timeZone"),
          factory->NewStringFromTwoByte(
                       Vector<const uint16_t>(
                           reinterpret_cast<const uint16_t*>(
                               canonical_time_zone.getBuffer()),
                           canonical_time_zone.length())).ToHandleChecked(),
          SLOPPY).Assert();
    }
  }

  // Ugly hack. ICU doesn't expose numbering system in any way, so we have
  // to assume that for given locale NumberingSystem constructor produces the
  // same digits as NumberFormat/Calendar would.
  status = U_ZERO_ERROR;
  icu::NumberingSystem* numbering_system =
      icu::NumberingSystem::createInstance(icu_locale, status);
  if (U_SUCCESS(status)) {
    const char* ns = numbering_system->getName();
    JSObject::SetProperty(
        resolved, factory->NewStringFromStaticChars("numberingSystem"),
        factory->NewStringFromAsciiChecked(ns), SLOPPY).Assert();
  } else {
    JSObject::SetProperty(resolved,
                          factory->NewStringFromStaticChars("numberingSystem"),
                          factory->undefined_value(), SLOPPY).Assert();
  }
  delete numbering_system;

  // Set the locale
  char result[ULOC_FULLNAME_CAPACITY];
  status = U_ZERO_ERROR;
  uloc_toLanguageTag(
      icu_locale.getName(), result, ULOC_FULLNAME_CAPACITY, FALSE, &status);
  if (U_SUCCESS(status)) {
    JSObject::SetProperty(resolved, factory->NewStringFromStaticChars("locale"),
                          factory->NewStringFromAsciiChecked(result),
                          SLOPPY).Assert();
  } else {
    // This would never happen, since we got the locale from ICU.
    JSObject::SetProperty(resolved, factory->NewStringFromStaticChars("locale"),
                          factory->NewStringFromStaticChars("und"),
                          SLOPPY).Assert();
  }
}

template<int internal_fields, EternalHandles::SingletonHandle field>
Handle<ObjectTemplateInfo> GetEternal(Isolate* isolate) {
  if (isolate->eternal_handles()->Exists(field)) {
    return Handle<ObjectTemplateInfo>::cast(
        isolate->eternal_handles()->GetSingleton(field));
  }
  v8::Local<v8::ObjectTemplate> raw_template =
      v8::ObjectTemplate::New(reinterpret_cast<v8::Isolate*>(isolate));
  raw_template->SetInternalFieldCount(internal_fields);
  return Handle<ObjectTemplateInfo>::cast(
      isolate->eternal_handles()->CreateSingleton(
        isolate,
        *v8::Utils::OpenHandle(*raw_template),
        field));
}

icu::DecimalFormat* CreateICUNumberFormat(
    Isolate* isolate,
    const icu::Locale& icu_locale,
    Handle<JSObject> options) {
  // Make formatter from options. Numbering system is added
  // to the locale as Unicode extension (if it was specified at all).
  UErrorCode status = U_ZERO_ERROR;
  icu::DecimalFormat* number_format = NULL;
  icu::UnicodeString style;
  icu::UnicodeString currency;
  if (ExtractStringSetting(isolate, options, "style", &style)) {
    if (style == UNICODE_STRING_SIMPLE("currency")) {
      icu::UnicodeString display;
      ExtractStringSetting(isolate, options, "currency", &currency);
      ExtractStringSetting(isolate, options, "currencyDisplay", &display);

#if (U_ICU_VERSION_MAJOR_NUM == 4) && (U_ICU_VERSION_MINOR_NUM <= 6)
      icu::NumberFormat::EStyles format_style;
      if (display == UNICODE_STRING_SIMPLE("code")) {
        format_style = icu::NumberFormat::kIsoCurrencyStyle;
      } else if (display == UNICODE_STRING_SIMPLE("name")) {
        format_style = icu::NumberFormat::kPluralCurrencyStyle;
      } else {
        format_style = icu::NumberFormat::kCurrencyStyle;
      }
#else  // ICU version is 4.8 or above (we ignore versions below 4.0).
      UNumberFormatStyle format_style;
      if (display == UNICODE_STRING_SIMPLE("code")) {
        format_style = UNUM_CURRENCY_ISO;
      } else if (display == UNICODE_STRING_SIMPLE("name")) {
        format_style = UNUM_CURRENCY_PLURAL;
      } else {
        format_style = UNUM_CURRENCY;
      }
#endif

      number_format = static_cast<icu::DecimalFormat*>(
          icu::NumberFormat::createInstance(icu_locale, format_style,  status));
    } else if (style == UNICODE_STRING_SIMPLE("percent")) {
      number_format = static_cast<icu::DecimalFormat*>(
          icu::NumberFormat::createPercentInstance(icu_locale, status));
      if (U_FAILURE(status)) {
        delete number_format;
        return NULL;
      }
      // Make sure 1.1% doesn't go into 2%.
      number_format->setMinimumFractionDigits(1);
    } else {
      // Make a decimal instance by default.
      number_format = static_cast<icu::DecimalFormat*>(
          icu::NumberFormat::createInstance(icu_locale, status));
    }
  }

  if (U_FAILURE(status)) {
    delete number_format;
    return NULL;
  }

  // Set all options.
  if (!currency.isEmpty()) {
    number_format->setCurrency(currency.getBuffer(), status);
  }

  int32_t digits;
  if (ExtractIntegerSetting(
          isolate, options, "minimumIntegerDigits", &digits)) {
    number_format->setMinimumIntegerDigits(digits);
  }

  if (ExtractIntegerSetting(
          isolate, options, "minimumFractionDigits", &digits)) {
    number_format->setMinimumFractionDigits(digits);
  }

  if (ExtractIntegerSetting(
          isolate, options, "maximumFractionDigits", &digits)) {
    number_format->setMaximumFractionDigits(digits);
  }

  bool significant_digits_used = false;
  if (ExtractIntegerSetting(
          isolate, options, "minimumSignificantDigits", &digits)) {
    number_format->setMinimumSignificantDigits(digits);
    significant_digits_used = true;
  }

  if (ExtractIntegerSetting(
          isolate, options, "maximumSignificantDigits", &digits)) {
    number_format->setMaximumSignificantDigits(digits);
    significant_digits_used = true;
  }

  number_format->setSignificantDigitsUsed(significant_digits_used);

  bool grouping;
  if (ExtractBooleanSetting(isolate, options, "useGrouping", &grouping)) {
    number_format->setGroupingUsed(grouping);
  }

  // Set rounding mode.
  number_format->setRoundingMode(icu::DecimalFormat::kRoundHalfUp);

  return number_format;
}

void SetResolvedNumberSettings(Isolate* isolate,
                               const icu::Locale& icu_locale,
                               icu::DecimalFormat* number_format,
                               Handle<JSObject> resolved) {
  Factory* factory = isolate->factory();
  icu::UnicodeString pattern;
  number_format->toPattern(pattern);
  JSObject::SetProperty(
      resolved, factory->NewStringFromStaticChars("pattern"),
      factory->NewStringFromTwoByte(
                   Vector<const uint16_t>(
                       reinterpret_cast<const uint16_t*>(pattern.getBuffer()),
                       pattern.length())).ToHandleChecked(),
      SLOPPY).Assert();

  // Set resolved currency code in options.currency if not empty.
  icu::UnicodeString currency(number_format->getCurrency());
  if (!currency.isEmpty()) {
    JSObject::SetProperty(
        resolved, factory->NewStringFromStaticChars("currency"),
        factory->NewStringFromTwoByte(Vector<const uint16_t>(
                                          reinterpret_cast<const uint16_t*>(
                                              currency.getBuffer()),
                                          currency.length())).ToHandleChecked(),
        SLOPPY).Assert();
  }

  // Ugly hack. ICU doesn't expose numbering system in any way, so we have
  // to assume that for given locale NumberingSystem constructor produces the
  // same digits as NumberFormat/Calendar would.
  UErrorCode status = U_ZERO_ERROR;
  icu::NumberingSystem* numbering_system =
      icu::NumberingSystem::createInstance(icu_locale, status);
  if (U_SUCCESS(status)) {
    const char* ns = numbering_system->getName();
    JSObject::SetProperty(
        resolved, factory->NewStringFromStaticChars("numberingSystem"),
        factory->NewStringFromAsciiChecked(ns), SLOPPY).Assert();
  } else {
    JSObject::SetProperty(resolved,
                          factory->NewStringFromStaticChars("numberingSystem"),
                          factory->undefined_value(), SLOPPY).Assert();
  }
  delete numbering_system;

  JSObject::SetProperty(
      resolved, factory->NewStringFromStaticChars("useGrouping"),
      factory->ToBoolean(number_format->isGroupingUsed()), SLOPPY).Assert();

  JSObject::SetProperty(
      resolved, factory->NewStringFromStaticChars("minimumIntegerDigits"),
      factory->NewNumberFromInt(number_format->getMinimumIntegerDigits()),
      SLOPPY).Assert();

  JSObject::SetProperty(
      resolved, factory->NewStringFromStaticChars("minimumFractionDigits"),
      factory->NewNumberFromInt(number_format->getMinimumFractionDigits()),
      SLOPPY).Assert();

  JSObject::SetProperty(
      resolved, factory->NewStringFromStaticChars("maximumFractionDigits"),
      factory->NewNumberFromInt(number_format->getMaximumFractionDigits()),
      SLOPPY).Assert();

  Handle<String> key =
      factory->NewStringFromStaticChars("minimumSignificantDigits");
  Maybe<bool> maybe = JSReceiver::HasOwnProperty(resolved, key);
  CHECK(maybe.has_value);
  if (maybe.value) {
    JSObject::SetProperty(
        resolved, factory->NewStringFromStaticChars("minimumSignificantDigits"),
        factory->NewNumberFromInt(number_format->getMinimumSignificantDigits()),
        SLOPPY).Assert();
  }

  key = factory->NewStringFromStaticChars("maximumSignificantDigits");
  maybe = JSReceiver::HasOwnProperty(resolved, key);
  CHECK(maybe.has_value);
  if (maybe.value) {
    JSObject::SetProperty(
        resolved, factory->NewStringFromStaticChars("maximumSignificantDigits"),
        factory->NewNumberFromInt(number_format->getMaximumSignificantDigits()),
        SLOPPY).Assert();
  }

  // Set the locale
  char result[ULOC_FULLNAME_CAPACITY];
  status = U_ZERO_ERROR;
  uloc_toLanguageTag(
      icu_locale.getName(), result, ULOC_FULLNAME_CAPACITY, FALSE, &status);
  if (U_SUCCESS(status)) {
    JSObject::SetProperty(resolved, factory->NewStringFromStaticChars("locale"),
                          factory->NewStringFromAsciiChecked(result),
                          SLOPPY).Assert();
  } else {
    // This would never happen, since we got the locale from ICU.
    JSObject::SetProperty(resolved, factory->NewStringFromStaticChars("locale"),
                          factory->NewStringFromStaticChars("und"),
                          SLOPPY).Assert();
  }
}

icu::Collator* CreateICUCollator(
    Isolate* isolate,
    const icu::Locale& icu_locale,
    Handle<JSObject> options) {
  // Make collator from options.
  icu::Collator* collator = NULL;
  UErrorCode status = U_ZERO_ERROR;
  collator = icu::Collator::createInstance(icu_locale, status);

  if (U_FAILURE(status)) {
    delete collator;
    return NULL;
  }

  // Set flags first, and then override them with sensitivity if necessary.
  bool numeric;
  if (ExtractBooleanSetting(isolate, options, "numeric", &numeric)) {
    collator->setAttribute(
        UCOL_NUMERIC_COLLATION, numeric ? UCOL_ON : UCOL_OFF, status);
  }

  // Normalization is always on, by the spec. We are free to optimize
  // if the strings are already normalized (but we don't have a way to tell
  // that right now).
  collator->setAttribute(UCOL_NORMALIZATION_MODE, UCOL_ON, status);

  icu::UnicodeString case_first;
  if (ExtractStringSetting(isolate, options, "caseFirst", &case_first)) {
    if (case_first == UNICODE_STRING_SIMPLE("upper")) {
      collator->setAttribute(UCOL_CASE_FIRST, UCOL_UPPER_FIRST, status);
    } else if (case_first == UNICODE_STRING_SIMPLE("lower")) {
      collator->setAttribute(UCOL_CASE_FIRST, UCOL_LOWER_FIRST, status);
    } else {
      // Default (false/off).
      collator->setAttribute(UCOL_CASE_FIRST, UCOL_OFF, status);
    }
  }

  icu::UnicodeString sensitivity;
  if (ExtractStringSetting(isolate, options, "sensitivity", &sensitivity)) {
    if (sensitivity == UNICODE_STRING_SIMPLE("base")) {
      collator->setStrength(icu::Collator::PRIMARY);
    } else if (sensitivity == UNICODE_STRING_SIMPLE("accent")) {
      collator->setStrength(icu::Collator::SECONDARY);
    } else if (sensitivity == UNICODE_STRING_SIMPLE("case")) {
      collator->setStrength(icu::Collator::PRIMARY);
      collator->setAttribute(UCOL_CASE_LEVEL, UCOL_ON, status);
    } else {
      // variant (default)
      collator->setStrength(icu::Collator::TERTIARY);
    }
  }

  bool ignore;
  if (ExtractBooleanSetting(isolate, options, "ignorePunctuation", &ignore)) {
    if (ignore) {
      collator->setAttribute(UCOL_ALTERNATE_HANDLING, UCOL_SHIFTED, status);
    }
  }

  return collator;
}

void SetResolvedCollatorSettings(Isolate* isolate,
                                 const icu::Locale& icu_locale,
                                 icu::Collator* collator,
                                 Handle<JSObject> resolved) {
  Factory* factory = isolate->factory();
  UErrorCode status = U_ZERO_ERROR;

  JSObject::SetProperty(
      resolved, factory->NewStringFromStaticChars("numeric"),
      factory->ToBoolean(
          collator->getAttribute(UCOL_NUMERIC_COLLATION, status) == UCOL_ON),
      SLOPPY).Assert();

  switch (collator->getAttribute(UCOL_CASE_FIRST, status)) {
    case UCOL_LOWER_FIRST:
      JSObject::SetProperty(
          resolved, factory->NewStringFromStaticChars("caseFirst"),
          factory->NewStringFromStaticChars("lower"), SLOPPY).Assert();
      break;
    case UCOL_UPPER_FIRST:
      JSObject::SetProperty(
          resolved, factory->NewStringFromStaticChars("caseFirst"),
          factory->NewStringFromStaticChars("upper"), SLOPPY).Assert();
      break;
    default:
      JSObject::SetProperty(
          resolved, factory->NewStringFromStaticChars("caseFirst"),
          factory->NewStringFromStaticChars("false"), SLOPPY).Assert();
  }

  switch (collator->getAttribute(UCOL_STRENGTH, status)) {
    case UCOL_PRIMARY: {
      JSObject::SetProperty(
          resolved, factory->NewStringFromStaticChars("strength"),
          factory->NewStringFromStaticChars("primary"), SLOPPY).Assert();

      // case level: true + s1 -> case, s1 -> base.
      if (UCOL_ON == collator->getAttribute(UCOL_CASE_LEVEL, status)) {
        JSObject::SetProperty(
            resolved, factory->NewStringFromStaticChars("sensitivity"),
            factory->NewStringFromStaticChars("case"), SLOPPY).Assert();
      } else {
        JSObject::SetProperty(
            resolved, factory->NewStringFromStaticChars("sensitivity"),
            factory->NewStringFromStaticChars("base"), SLOPPY).Assert();
      }
      break;
    }
    case UCOL_SECONDARY:
      JSObject::SetProperty(
          resolved, factory->NewStringFromStaticChars("strength"),
          factory->NewStringFromStaticChars("secondary"), SLOPPY).Assert();
      JSObject::SetProperty(
          resolved, factory->NewStringFromStaticChars("sensitivity"),
          factory->NewStringFromStaticChars("accent"), SLOPPY).Assert();
      break;
    case UCOL_TERTIARY:
      JSObject::SetProperty(
          resolved, factory->NewStringFromStaticChars("strength"),
          factory->NewStringFromStaticChars("tertiary"), SLOPPY).Assert();
      JSObject::SetProperty(
          resolved, factory->NewStringFromStaticChars("sensitivity"),
          factory->NewStringFromStaticChars("variant"), SLOPPY).Assert();
      break;
    case UCOL_QUATERNARY:
      // We shouldn't get quaternary and identical from ICU, but if we do
      // put them into variant.
      JSObject::SetProperty(
          resolved, factory->NewStringFromStaticChars("strength"),
          factory->NewStringFromStaticChars("quaternary"), SLOPPY).Assert();
      JSObject::SetProperty(
          resolved, factory->NewStringFromStaticChars("sensitivity"),
          factory->NewStringFromStaticChars("variant"), SLOPPY).Assert();
      break;
    default:
      JSObject::SetProperty(
          resolved, factory->NewStringFromStaticChars("strength"),
          factory->NewStringFromStaticChars("identical"), SLOPPY).Assert();
      JSObject::SetProperty(
          resolved, factory->NewStringFromStaticChars("sensitivity"),
          factory->NewStringFromStaticChars("variant"), SLOPPY).Assert();
  }

  JSObject::SetProperty(
      resolved, factory->NewStringFromStaticChars("ignorePunctuation"),
      factory->ToBoolean(collator->getAttribute(UCOL_ALTERNATE_HANDLING,
                                                status) == UCOL_SHIFTED),
      SLOPPY).Assert();

  // Set the locale
  char result[ULOC_FULLNAME_CAPACITY];
  status = U_ZERO_ERROR;
  uloc_toLanguageTag(
      icu_locale.getName(), result, ULOC_FULLNAME_CAPACITY, FALSE, &status);
  if (U_SUCCESS(status)) {
    JSObject::SetProperty(resolved, factory->NewStringFromStaticChars("locale"),
                          factory->NewStringFromAsciiChecked(result),
                          SLOPPY).Assert();
  } else {
    // This would never happen, since we got the locale from ICU.
    JSObject::SetProperty(resolved, factory->NewStringFromStaticChars("locale"),
                          factory->NewStringFromStaticChars("und"),
                          SLOPPY).Assert();
  }
}

icu::BreakIterator* CreateICUBreakIterator(
    Isolate* isolate,
    const icu::Locale& icu_locale,
    Handle<JSObject> options) {
  UErrorCode status = U_ZERO_ERROR;
  icu::BreakIterator* break_iterator = NULL;
  icu::UnicodeString type;
  if (!ExtractStringSetting(isolate, options, "type", &type)) return NULL;

  if (type == UNICODE_STRING_SIMPLE("character")) {
    break_iterator =
      icu::BreakIterator::createCharacterInstance(icu_locale, status);
  } else if (type == UNICODE_STRING_SIMPLE("sentence")) {
    break_iterator =
      icu::BreakIterator::createSentenceInstance(icu_locale, status);
  } else if (type == UNICODE_STRING_SIMPLE("line")) {
    break_iterator =
      icu::BreakIterator::createLineInstance(icu_locale, status);
  } else {
    // Defualt is word iterator.
    break_iterator =
      icu::BreakIterator::createWordInstance(icu_locale, status);
  }

  if (U_FAILURE(status)) {
    delete break_iterator;
    return NULL;
  }

  isolate->CountUsage(v8::Isolate::UseCounterFeature::kBreakIterator);

  return break_iterator;
}

void SetResolvedBreakIteratorSettings(Isolate* isolate,
                                      const icu::Locale& icu_locale,
                                      icu::BreakIterator* break_iterator,
                                      Handle<JSObject> resolved) {
  Factory* factory = isolate->factory();
  UErrorCode status = U_ZERO_ERROR;

  // Set the locale
  char result[ULOC_FULLNAME_CAPACITY];
  status = U_ZERO_ERROR;
  uloc_toLanguageTag(
      icu_locale.getName(), result, ULOC_FULLNAME_CAPACITY, FALSE, &status);
  if (U_SUCCESS(status)) {
    JSObject::SetProperty(resolved, factory->NewStringFromStaticChars("locale"),
                          factory->NewStringFromAsciiChecked(result),
                          SLOPPY).Assert();
  } else {
    // This would never happen, since we got the locale from ICU.
    JSObject::SetProperty(resolved, factory->NewStringFromStaticChars("locale"),
                          factory->NewStringFromStaticChars("und"),
                          SLOPPY).Assert();
  }
}

}  // namespace

// static
Handle<ObjectTemplateInfo> I18N::GetTemplate(Isolate* isolate) {
  return GetEternal<1, i::EternalHandles::I18N_TEMPLATE_ONE>(isolate);
}

// static
Handle<ObjectTemplateInfo> I18N::GetTemplate2(Isolate* isolate) {
  return GetEternal<2, i::EternalHandles::I18N_TEMPLATE_TWO>(isolate);
}

// static
icu::SimpleDateFormat* DateFormat::InitializeDateTimeFormat(
    Isolate* isolate,
    Handle<String> locale,
    Handle<JSObject> options,
    Handle<JSObject> resolved) {
  // Convert BCP47 into ICU locale format.
  UErrorCode status = U_ZERO_ERROR;
  icu::Locale icu_locale;
  char icu_result[ULOC_FULLNAME_CAPACITY];
  int icu_length = 0;
  v8::String::Utf8Value bcp47_locale(v8::Utils::ToLocal(locale));
  if (bcp47_locale.length() != 0) {
    uloc_forLanguageTag(*bcp47_locale, icu_result, ULOC_FULLNAME_CAPACITY,
                        &icu_length, &status);
    if (U_FAILURE(status) || icu_length == 0) {
      return NULL;
    }
    icu_locale = icu::Locale(icu_result);
  }

  icu::SimpleDateFormat* date_format = CreateICUDateFormat(
      isolate, icu_locale, options);
  if (!date_format) {
    // Remove extensions and try again.
    icu::Locale no_extension_locale(icu_locale.getBaseName());
    date_format = CreateICUDateFormat(isolate, no_extension_locale, options);

    if (!date_format) {
      FATAL("Failed to create ICU date format, are ICU data files missing?");
    }

    // Set resolved settings (pattern, numbering system, calendar).
    SetResolvedDateSettings(
        isolate, no_extension_locale, date_format, resolved);
  } else {
    SetResolvedDateSettings(isolate, icu_locale, date_format, resolved);
  }

  return date_format;
}

icu::SimpleDateFormat* DateFormat::UnpackDateFormat(
    Isolate* isolate,
    Handle<JSObject> obj) {
  Handle<String> key =
      isolate->factory()->NewStringFromStaticChars("dateFormat");
  Maybe<bool> maybe = JSReceiver::HasOwnProperty(obj, key);
  CHECK(maybe.has_value);
  if (maybe.value) {
    return reinterpret_cast<icu::SimpleDateFormat*>(
        obj->GetInternalField(0));
  }

  return NULL;
}

template<class T>
void DeleteNativeObjectAt(const v8::WeakCallbackData<v8::Value, void>& data,
                          int index) {
  v8::Local<v8::Object> obj = v8::Handle<v8::Object>::Cast(data.GetValue());
  delete reinterpret_cast<T*>(obj->GetAlignedPointerFromInternalField(index));
}

static void DestroyGlobalHandle(
    const v8::WeakCallbackData<v8::Value, void>& data) {
  GlobalHandles::Destroy(reinterpret_cast<Object**>(data.GetParameter()));
}

void DateFormat::DeleteDateFormat(
    const v8::WeakCallbackData<v8::Value, void>& data) {
  DeleteNativeObjectAt<icu::SimpleDateFormat>(data, 0);
  DestroyGlobalHandle(data);
}

icu::DecimalFormat* NumberFormat::InitializeNumberFormat(
    Isolate* isolate,
    Handle<String> locale,
    Handle<JSObject> options,
    Handle<JSObject> resolved) {
  // Convert BCP47 into ICU locale format.
  UErrorCode status = U_ZERO_ERROR;
  icu::Locale icu_locale;
  char icu_result[ULOC_FULLNAME_CAPACITY];
  int icu_length = 0;
  v8::String::Utf8Value bcp47_locale(v8::Utils::ToLocal(locale));
  if (bcp47_locale.length() != 0) {
    uloc_forLanguageTag(*bcp47_locale, icu_result, ULOC_FULLNAME_CAPACITY,
                        &icu_length, &status);
    if (U_FAILURE(status) || icu_length == 0) {
      return NULL;
    }
    icu_locale = icu::Locale(icu_result);
  }

  icu::DecimalFormat* number_format =
      CreateICUNumberFormat(isolate, icu_locale, options);
  if (!number_format) {
    // Remove extensions and try again.
    icu::Locale no_extension_locale(icu_locale.getBaseName());
    number_format = CreateICUNumberFormat(
        isolate, no_extension_locale, options);

    if (!number_format) {
      FATAL("Failed to create ICU number format, are ICU data files missing?");
    }

    // Set resolved settings (pattern, numbering system).
    SetResolvedNumberSettings(
        isolate, no_extension_locale, number_format, resolved);
  } else {
    SetResolvedNumberSettings(isolate, icu_locale, number_format, resolved);
  }

  return number_format;
}

icu::DecimalFormat* NumberFormat::UnpackNumberFormat(
    Isolate* isolate,
    Handle<JSObject> obj) {
  Handle<String> key =
      isolate->factory()->NewStringFromStaticChars("numberFormat");
  Maybe<bool> maybe = JSReceiver::HasOwnProperty(obj, key);
  CHECK(maybe.has_value);
  if (maybe.value) {
    return reinterpret_cast<icu::DecimalFormat*>(obj->GetInternalField(0));
  }

  return NULL;
}

void NumberFormat::DeleteNumberFormat(
    const v8::WeakCallbackData<v8::Value, void>& data) {
  DeleteNativeObjectAt<icu::DecimalFormat>(data, 0);
  DestroyGlobalHandle(data);
}

icu::Collator* Collator::InitializeCollator(
    Isolate* isolate,
    Handle<String> locale,
    Handle<JSObject> options,
    Handle<JSObject> resolved) {
  // Convert BCP47 into ICU locale format.
  UErrorCode status = U_ZERO_ERROR;
  icu::Locale icu_locale;
  char icu_result[ULOC_FULLNAME_CAPACITY];
  int icu_length = 0;
  v8::String::Utf8Value bcp47_locale(v8::Utils::ToLocal(locale));
  if (bcp47_locale.length() != 0) {
    uloc_forLanguageTag(*bcp47_locale, icu_result, ULOC_FULLNAME_CAPACITY,
                        &icu_length, &status);
    if (U_FAILURE(status) || icu_length == 0) {
      return NULL;
    }
    icu_locale = icu::Locale(icu_result);
  }

  icu::Collator* collator = CreateICUCollator(isolate, icu_locale, options);
  if (!collator) {
    // Remove extensions and try again.
    icu::Locale no_extension_locale(icu_locale.getBaseName());
    collator = CreateICUCollator(isolate, no_extension_locale, options);

    if (!collator) {
      FATAL("Failed to create ICU collator, are ICU data files missing?");
    }

    // Set resolved settings (pattern, numbering system).
    SetResolvedCollatorSettings(
        isolate, no_extension_locale, collator, resolved);
  } else {
    SetResolvedCollatorSettings(isolate, icu_locale, collator, resolved);
  }

  return collator;
}

icu::Collator* Collator::UnpackCollator(Isolate* isolate,
                                        Handle<JSObject> obj) {
  Handle<String> key = isolate->factory()->NewStringFromStaticChars("collator");
  Maybe<bool> maybe = JSReceiver::HasOwnProperty(obj, key);
  CHECK(maybe.has_value);
  if (maybe.value) {
    return reinterpret_cast<icu::Collator*>(obj->GetInternalField(0));
  }

  return NULL;
}

void Collator::DeleteCollator(
    const v8::WeakCallbackData<v8::Value, void>& data) {
  DeleteNativeObjectAt<icu::Collator>(data, 0);
  DestroyGlobalHandle(data);
}

icu::BreakIterator* BreakIterator::InitializeBreakIterator(
    Isolate* isolate,
    Handle<String> locale,
    Handle<JSObject> options,
    Handle<JSObject> resolved) {
  // Convert BCP47 into ICU locale format.
  UErrorCode status = U_ZERO_ERROR;
  icu::Locale icu_locale;
  char icu_result[ULOC_FULLNAME_CAPACITY];
  int icu_length = 0;
  v8::String::Utf8Value bcp47_locale(v8::Utils::ToLocal(locale));
  if (bcp47_locale.length() != 0) {
    uloc_forLanguageTag(*bcp47_locale, icu_result, ULOC_FULLNAME_CAPACITY,
                        &icu_length, &status);
    if (U_FAILURE(status) || icu_length == 0) {
      return NULL;
    }
    icu_locale = icu::Locale(icu_result);
  }

  icu::BreakIterator* break_iterator = CreateICUBreakIterator(
      isolate, icu_locale, options);
  if (!break_iterator) {
    // Remove extensions and try again.
    icu::Locale no_extension_locale(icu_locale.getBaseName());
    break_iterator = CreateICUBreakIterator(
        isolate, no_extension_locale, options);

    if (!break_iterator) {
      FATAL("Failed to create ICU break iterator, are ICU data files missing?");
    }

    // Set resolved settings (locale).
    SetResolvedBreakIteratorSettings(
        isolate, no_extension_locale, break_iterator, resolved);
  } else {
    SetResolvedBreakIteratorSettings(
        isolate, icu_locale, break_iterator, resolved);
  }

  return break_iterator;
}

icu::BreakIterator* BreakIterator::UnpackBreakIterator(Isolate* isolate,
                                                       Handle<JSObject> obj) {
  Handle<String> key =
      isolate->factory()->NewStringFromStaticChars("breakIterator");
  Maybe<bool> maybe = JSReceiver::HasOwnProperty(obj, key);
  CHECK(maybe.has_value);
  if (maybe.value) {
    return reinterpret_cast<icu::BreakIterator*>(obj->GetInternalField(0));
  }

  return NULL;
}

void BreakIterator::DeleteBreakIterator(
    const v8::WeakCallbackData<v8::Value, void>& data) {
  DeleteNativeObjectAt<icu::BreakIterator>(data, 0);
  DeleteNativeObjectAt<icu::UnicodeString>(data, 1);
  DestroyGlobalHandle(data);
}

} }  // namespace v8::internal

redpajama_set_name: RedPajamaGithub


The focus product for this hop is the Cool Treats Suite. There has been so amazing projects created with this delightful suite and I too have had lots of fun playing with this set.
I made the ice-creams using the Frozen Treats Framelits Dies which coordinate with the Cool Treats Stamp Set. The waffle cones are cut out from the Tasty Treats Specialty Paper. I decided on a long card this week and I really like it - I think you will see this type of card from me a little more often!
The sprinkles are the perfect finishing touch ... adorable card.
You are making me want ice cream! It's winter!
Oh Louise! Amazing! Just Amazing! I love everything about it! So Clean and Crisp!
I like this card. As this a long card, can I get your cardstock dimensions? Thank you for sharing!