text:
Lurie Children's use cookies to improve your experience on our website and to show you personalized content. To find out more, read our Website Privacy Policy. By using the site and clicking on "I AGREE", you accept to the use of Cookies.
Cost Estimate Tool
Make An Appointment Specialties & Conditions Find a Doctor Locations Patients & Visitors
Children and their families are at the center of all we do.
PLEASE NOTE: Because the health and safety of our patients, families, visitors and staff is of utmost importance to us and to prevent the spread of the virus causing COVID19 illness, new visitation restrictions are effective beginning March 11, 2020.
Learn about the new policy
Resources & Support Services for Families
Traveling to Lurie Children's
Amenities & Nearby Services
Lodging & Accommodations
Patient Family Experience
Meet Your Care Team
Almost Home Kids
International Patient Care
225 E. Chicago Ave., Chicago, Illinois 60611
Stanley Manne Children's Research Institute
Research at Lurie Children's is conducted through Stanley Manne Children's Research Institute. We focus on improving child health, transforming pediatric medicine and ensuring healthier futures.
Laboratory Research
Patient Family's Guide to Research
Our New Location
Stanley Manne Children's Research Institute has moved onto the campus of its medical partners creating the promise of greater impact for pediatric research
Medical Education & Training Ways to Help Search
⚠ COVID-19 INFORMATION: Resources, Vaccine Information
Specialties & ConditionsGenetics, Birth Defects & Metabolism Conditions
Genetic Conditions We Treat
We take specialized and evidence-based approaches to diagnosing children's genetic and congenital disorders. When appropriate, we provide family-centered treatment for genetic conditions, and collaborate with other divisions at Lurie Children's to provide comprehensive care for your child.
22q11.2 Deletion Syndrome
A genetic disorder caused by the partial deletion of genetic material on one copy of a person's chromosome 22.
Fabry disease is a rare genetic disease that runs in families. People affected by the disease cannot breakdown (metabolize) a fat called globotriaosylcermide (GL3). Read more.
A deficiency of the enzyme beta-glucosidase, which breaks down a specific fatty substance, allowing it to accumulate in the body, resulting in anemia, low platelet count, etc.
Leukodystrophy
A group of disorders that damage the covering of the nerve cells in the brain and spinal column, so they can no longer transmit signals between the brain and the body.
Marfan syndrome is a condition that affects the connective tissues of the entire body, including joints, eyes, heart, blood vessels, lungs, bones & spinal cord.
When several organs and glands (the liver, pancreas, and endocrine glands, for example) do not function correctly, causing an imbalance of enzymes or hormones in the cells.
Mucopolysaccharidoses
Disorders caused by the deficiency of an enzyme that breaks down mucopolysaccharides, which then accumulate in the tissues of the body, causing various symptoms.
An inherited condition characterized by benign tumors in the cells surrounding nerves, occurring in two types: Type 1 found in younger children, and Type 2 in the older child.
An enzyme deficiency which prevents the metabolizing of one of the normal amino acids found in meat, bread, eggs, dairy, nuts and some fruits and vegetables.
Pompe Disease
A rare genetic disease of the heart and skeletal muscles caused by a lack alpha-glucosidase which results in the build-up of glycogen, disabling heart and skeletal muscles.
Skeletal Dysplasia
Also known as skeletal dysplasia, achondroplasia, or dwarfism, a group of about 400 congenital disorders characterized by abnormal growth of cartilage and bones.
Doctors or Advanced Practice Nurse
Medical Education & Training
Center for Advanced Practice
Physician Associations
Ann & Robert H. Lurie Children's Hospital of Chicago | 225 E. Chicago Ave. Chicago, IL 60611 | 1.800.543.7362
Lurie Children's provides healthcare regardless of race, color, religion (creed), sex, gender identity or expression, sexual orientation, national origin (ancestry), or disability.
Lurie Children's complies with applicable federal civil rights laws and does not discriminate on the basis of race, color, national origin, religion, sex, sexual orientation, gender identity or expression, age, or disability.
ATENCIÓN: Si habla español, tiene a su disposición servicios gratuitos de asistencia lingüística. Llame al 1.312.227.4000 (Relay: 1.800.526.0844.)
UWAGA: Jeżeli mówisz po polsku, możesz skorzystać z bezpłatnej pomocy językowej. Zadzwoń pod numer 1.312.227.4000 (Relay: 1.800.526.0844.)
Copyright (c) 2022 Ann & Robert H. Lurie Children's Hospital of Chicago. All rights reserved.


text:
Home/News/PM Launches Prime Minister Fee Reimbursement Scheme
PM Launches Prime Minister Fee Reimbursement Scheme
Faisal May 20, 2014
PM Launches Prime Minister Fee Reimbursement Scheme Start At On Quetta 21st May 2014
ISLAMABAD, May 20 (Online): Prime Minister Muhammad Nawaz Sharif will launch "Prime Minister's Fee Reimbursement Scheme for the Less Developed Areas" at Quetta on 21st May.
The Scheme will be a game changer for the socio-economic development of the country by promoting higher education and research" remarked Chairperson of the Prime Minister's Youth Programme Maryam Nawaz Sharif.
The scheme is aimed at encouraging talented students of the less developed areas in their pursuit of higher education by reimbursing the 100% cost of the educational expenses of the post-graduate students undertaking Masters, M Phill and PhD level degrees.
She further said that the students doing post graduate studies from a Higher Education Commission's approved public sector educational institution and domiciled in interior Sindh, Southern Punjab (Multan, Bahawalpur and DG Khan), Balochistan, less developed areas of KP (Malakand, Kohistan and DI Khan), GB and FATA are eligible.
She maintained that 30,000 post-graduate students across Pakistan while 3,852 students of Balochistan will benefit from the scheme and added that eligibility criterion is based purely on merit with proportionate regional representation including minority students. 50% quota has been reserved for female students in this scheme, the Chairperson said. The Scheme is being launched at a cost of Rs. 1.2 billion.
Chairperson PM Youth Programme has also said that all the developed countries of the world have progressed through human resource development and in order to achieve this objective, they invested heavily in education and research.
She said that the scheme is a major stride in this regard as this scheme will sponsor 100% educational expenses for higher studies of the students hailing from less developed areas.
Facebook Twitter Google+ LinkedIn StumbleUpon Tumblr Pinterest Reddit VKontakte WhatsApp Share via Email Print
Connect To Quetta Results Google+
Veena Malik Abdul Sattar Edhi is hero of the nation
IIU PM 3816 Laptops Distributed Among students
Boom Boom Shahid Afridi Announces To Be Quitted After WC
NAB Balochistan arrests education officials for alleged corruption
Karachi University Receives – 10th thousand laptops from PM

redpajama_set_name: RedPajamaCommonCrawl


Wu-Tang Clan fans far and wide are getting a special treat, as Wu Wear is about to make a comeback in the best nostalgic way possible. German designers Donaldson Sackey and Sainey Sidibeh, who run a brand called CPxArt, have taken over as creative directors for the vintage hip-hop clothing line and are about to launch the brand's new "Renaissance" collection.
The new look for Wu Wear Renaissance collection has been unveiled for fans and fashion critics online, which displays model David Drammeh wearing a tracksuit in the clothing brand's signature black, white and yellow color scheme. The famous Wu-Tang logo is printed right on the chest, with the matching pants coming in a black color that has white stripes on the side. The mission of the brand's comeback is to revitalize the vibes of the 1990s as well as incorporate some new designs into the brand.
The Renaissance collection will reportedly contain 10 new pieces, and is slated to become available in July or August, though there is no current official drop date.
If you're a longtime fan of the Wu-Tang brand, you might want to get your wallet ready by the end of the summer so you can rock the new ensembles in the fall season.
Take a full look at the new tracksuit as part of Wu Wear's comeback collection in the gallery below, and peep the line's Instagram page.


text:
Attempted Assassination In Pakistan
Written on October 12, 2012
What would drive armed gunmen to open fire on a bus full of schoolgirls, with the express aim of assassinating one talented young teenager? That's the question on the minds of many people this week, following Tuesday's attempted assassination of 14-year-old Malala Yousafzai in northwestern Pakistan. A refugee fleeing Taliban violence and oppression in Pakistan's Swat Valley, Malala had already won a following for her precocious and courageous blog posts, written when she was really just a child, arguing that young women have a right to an education, and indeed, to a life free from discrimination and fear.
She is also a hero to many Pakistanis. In 2011, the Pakistani government awarded her a national peace prize and 1 million rupees (US$10,500). In 2012, she was a finalist for the International Children's Peace Prize, awarded by a Dutch organization, in recognition of her courage in defying the Taliban by advocating for girls' education.
Another Tiananmen Anniversary: Will There Be A Reckoning?
Written on June 3, 2011
This Saturday, June 4, 2011, marks the 22nd anniversary of the 1989 Tiananmen Square massacre, where thousands of pro-democracy activists were killed, injured or imprisoned by Chinese authorities. This year's Tiananmen anniversary comes at a time of greatly increased political repression in China. According to the Congressional-Executive Commission on China (CECC), "Chinese authorities have launched a broad crackdown against rights defenders, reform advocates, lawyers, petitioners, writers, artists, and Internet bloggers in what international observers have described as one of the harshest crackdowns in years."
Over the last several months, activist groups such as Chinese Human Rights Defenders (CHRD) have repeatedly tried to draw attention to this harsh renewal of repression in China. In an article entitled "Missing before Action" in the March issue of Foreign Policy Magazine, a CHRD writer noted that hundreds of Chinese human rights activists, lawyers, and pro-democracy dissidents from across the country have been affected by the crackdown. Police have used "violence, arbitrary detention, "disappearances," and other forms of harassment and intimidation" to put a damper on any nascent protest movement. Other dissidents --or non-dissident citizens walking the streets -- have been picked up for questioning.
Although authorities began tightening the political screws in the period leading up to the 2008 Beijing Olympics, it appears that the recent democratic uprisings in the Middle East have given added impetus to this policy.
Schools As Battlegrounds
We warn you to leave your job as a teacher as soon as possible otherwise we will cut the heads off your children and shall set fire to your daughter
- Letter to Afghani teacher from Taliban insurgents
These threats, in a letter from Taliban insurgents to an Afghani teacher, are emblematic of the deteriorating situation for teachers and students in many parts of the world. Between March and October 2010, for example, 20 schools in Afghanistan were attacked using explosives or arson, and insurgents killed 126 Afghani students.
These and other atrocities were documented by Human Rights Watch (HRW) in a new "school battleground" report, which was released as part of the organization's annual human rights survey summarizing conditions in more than 90 countries and territories worldwide.
China Flunks Its Own Standards
In the "dog bites man" department, Human Rights Watch (HRW) recently released a devastating report, which found that the Chinese had "failed to deliver" the human rights gains promised in its much-ballyhooed, first-ever "National Human Rights Action Plan" for 2009-10.
The report is timely, since Chinese President Hu Jintao is in Washington this week to discuss a wide variety of issues with President Obama and other U.S. leaders, including human rights. In terms of "promises made and promises broken," the U.S. will surely have China's human rights record of the last two years in mind.
HRW reports that the years 2009-2010 witnessed a "rollback of key civil and political rights" in China, as the regime, among other actions, stepped up its practice of "enforced disappearances and arbitrary detentions, including in secret, unlawful detention facilities known as 'black jails.'" It also:
"continued its practice of sentencing high-profile dissidents such as imprisoned Nobel Peace Prize laureate Liu Xiaobo to lengthy prison terms on spurious state secrets or "subversion" charges;
expanded restrictions on media and internet freedom;
tightened controls on lawyers, human rights defenders, and nongovernmental organizations;
broadened controls on Uighurs and Tibetans."
This is a serious report. By taking China at its word as to the sincerity of its Human Rights Action Plan, HRW throws a lot of cold water on the theory that has been a critical part of U.S. China policy for nearly half a century: that engagement will lead to democratic change.
A Call For Democracy And Human Rights In The Arab States
Written on November 23, 2010
On Oct. 22-23, a group of Arab intellectuals, politicians, and civil society advocates convened a Conference on the Future of Democracy and Human Rights in the Arab World in Casablanca. Citing the "dramatic and alarming backsliding of political reforms in the Arab world," they issued a remarkable, frank and courageous appeal to the Arab nations. The "Casablanca Call for Democracy and Human Rights" represents a powerful consensus among disparate political groups that democracy must be the foundation for social and political justice in the region. As such, it represents a signal event for Arab democrats and for friends of democracy around the world.
Among the group's key appeals was for the right to organize free and independent trade unions. The call underscores both the courage of the signatories and the dismal situation for labor. The Middle East region has the worst trade union rights record in the world, according to a recent Freedom House report, which found that unions in the area are controlled by the government, severely repressed, or banned outright.
The group also demanded that women (and youth) be empowered to act as equal partners in the development of their own nations, and called for freedom of expression and thought for all citizens.
- Choose -July 2019 (2)June 2019 (3)May 2019 (2)April 2019 (2)March 2019 (2)February 2019 (3)December 2018 (2)November 2018 (3)October 2018 (2)September 2018 (2)August 2018 (3)May 2018 (1)April 2018 (2)March 2018 (2)February 2018 (2)January 2018 (4)December 2017 (2)November 2017 (3)October 2017 (1)September 2017 (2)August 2017 (3)July 2017 (2)June 2017 (3)May 2017 (2)April 2017 (4)March 2017 (4)February 2017 (7)January 2017 (3)December 2016 (3)November 2016 (3)October 2016 (4)September 2016 (5)August 2016 (3)July 2016 (3)June 2016 (5)May 2016 (4)April 2016 (8)March 2016 (6)February 2016 (4)January 2016 (2)December 2015 (4)November 2015 (1)October 2015 (5)September 2015 (2)August 2015 (3)July 2015 (8)June 2015 (7)May 2015 (8)April 2015 (10)March 2015 (8)February 2015 (7)January 2015 (7)December 2014 (7)November 2014 (6)October 2014 (8)September 2014 (8)August 2014 (7)July 2014 (10)June 2014 (8)May 2014 (6)April 2014 (10)March 2014 (6)February 2014 (8)January 2014 (7)December 2013 (8)November 2013 (7)October 2013 (9)September 2013 (7)August 2013 (7)July 2013 (8)June 2013 (7)May 2013 (8)April 2013 (11)March 2013 (7)February 2013 (9)January 2013 (10)December 2012 (7)November 2012 (11)October 2012 (13)September 2012 (8)August 2012 (13)July 2012 (14)June 2012 (11)May 2012 (11)April 2012 (10)March 2012 (15)February 2012 (13)January 2012 (13)December 2011 (9)November 2011 (13)October 2011 (15)September 2011 (15)August 2011 (17)July 2011 (15)June 2011 (16)May 2011 (16)April 2011 (8)March 2011 (18)February 2011 (13)January 2011 (14)December 2010 (7)November 2010 (9)October 2010 (15)September 2010 (17)August 2010 (17)July 2010 (14)
P J
on What Do Schools Fostering A Teacher "Growth Mindset" Look Like?
Angela Waterford
on Charter Schools And Teacher Diversity
Karen DeMoss
Kris Nordstrom
Cara Jackson
The Albert Shanker Institute, endowed by the American Federation of Teachers and named in honor of its late president, is a nonprofit, nonpartisan organization dedicated to three themes - excellence in public education, unions as advocates for quality, and freedom of association in the public life of democracies. With an independent Board of Directors (composed of educators, business representatives, labor leaders, academics, and public policy analysts), its mission is to generate ideas, foster candid exchanges, and promote constructive policy proposals related to these issues.
This blog offers informal commentary on the research, news, and controversies related to the work of the Institute.
This web site and the information contained herein are provided as a service to those who are interested in the work of the Albert Shanker Institute (ASI). ASI makes no warranties, either express or implied, concerning the information contained on or linked from shankerblog.org. The visitor uses the information provided herein at his/her own risk. ASI, its officers, board members, agents, and employees specifically disclaim any and all liability from damages which may result from the utilization of the information provided herein. The content in the Shanker Blog may not necessarily reflect the views or official policy positions of ASI or any related entity or organization.


USA Today recently released its U.S Department of Agriculture Special Edition, shining a light on rural communities, the ag industry, and those who keep the field thriving. One article, specifically, addresses diversity.
Referencing the 2012 Census of Agriculture, conducted by USDA's National Agricultural Statistics Service, the article states that "of the country's 3.2 million farmers, nearly 96 percent are white, and out of all farmers, 70 percent are male." These statistics prove that there is still work to do when it comes to drawing in more diverse workers.
Titled "A Colorful Future," the article highlights various aspects of diversity within agriculture and the organizations that are continuing to grow and empower diverse populations in the space.
Within the agriculture industry, there's a need to bring innovation to the field, which means fostering a future of ag that uses today's and tomorrow's technology to help improve and strengthen industry practices in farming. Exploring this path means refreshing industry talent. Inspiring ag exploration and developing interests at an early age helps grow the pool of future farmers who will soon inherit land, take over local and family businesses, and hold positions within agri-business corporations.
For more than 100 years, 4‑H (through USDA) has developed programming that encourages kids and teens to explore ag topics through hands-on experiences, in-school and out-of-school learning, and curriculum. Every opportunity to perform a project, show an animal, or plant a crop is a vehicle towards growing tomorrow's farmers and agriculture leaders.
Pick up a copy of the free 2019 edition, available on newsstands now.


text:
The Okwahu Campus is located at the town of Abetifi, one of the seventeen original towns (Nkrotoo) of the people of Okwawu at the southern part of the Okwawu-Mampong ridge in the Eastern Region of Ghana. The Abetifi section of the ridge forms the highest inhabited location in Ghana at about 630 m (2080 ft) above sea level. It has the desirably cool and pleasant climate (average 25oC) associated with elevated locations in the tropics. The seventeen towns are clustered together at an average distance of four kilometres from each other and about 180 km from Accra (Ghana's capital) and 130 km from Kumasi (second capital). The cluster is within a radius of 6 km. The gateway is through a metropolitan town of Nkawkaw at the foot of the ridge on the Accra-Kumasi highway with a population of 45,000.
Abetifi is one of the early Basel Mission stations in the country. The Basel Missionary Reverend F.A. Ramseyer and his wife were taken through Abetifi as captives of war (one of the Asante-European wars) on the way to Kumasi in 1869. Rev. Ramseyer later returned to Abetifi to establish a mission station and a school in 1876. The church and the Ramseyer Lay Training Centre today mark the enduring presence of the Presbyterian Church in the town. The Ramseyer Training Centre is currently sharing space with the College on land that was given to Rev. Ramseyer.
The resident population of Abetifi, about 15,000, is engaged in farming, fishing, livestock rearing, crafts and trading. The local economy is supported by a large semi-resident business population in the large urban towns in all the regions of Ghana. With the exception of the regional capitals in the country, Abetifi is well endowed with various educational institutions with several primary and secondary schools, technical and vocational schools, and a high ranking training college.
Akuapem Campus (Akropong)
The Akuapem Campus is located at Akropong, on Salem Grounds. Akropong, like Abetifi, is one of seventeen towns of the people of Akuapem in the Eastern Region of Ghana. Akropong lies at an elevated height on the Akuapem-Togo range of hills ranging between 381 metres and 488 metres in height, although the highest peak reaches 500 metres above sea level. It has very cool weather most part of the year.
Akropong Akuapem is famous for its Basel missionary activities spearheaded by Andreas Riis, through whose instrumentality the foundations of today's Presbyterian Church of Ghana was laid in Akropong. The first training college in the country was built by the Church in 1848. this premier training college is one of the foremost in West Africa.
Akropong is the capital of the Akuapem North District and is just about 30 km from Accra (Ghana's capital). The district has a rich blend of dramatic landscapes, historic relics and traditional cultures. Here, the ancient blends beautifully with the modern. The region is dominated by Lake Volta, one of the world's largest man-made lakes, and the Akosombo Dam, source of much of Ghana's hydroelectric power. Both are worth a visit. A favourite excursion is the weekend trip to Dodi Islands. Visitors can take the opportunity of visiting the original
Presbyterian school buildings in Akropong, and the house of Tetteh Quarshie in Mampong. Both these towns have many interesting historic buildings. Other places and events of historical interests in the area include the century-old botanical gardens at Aburi, only 15 minutes drive from Akropong. Tetteh Quarshie's Cocoa Farm is still there to see; the first major cocoa farm established in the country and is the main beginning of Ghana's cocoa industry. On the Akuapem Ridge at Larteh is the fetish, Akonedi Shrine, an important place of traditional healing and religious ceremonies. Traces of the 17th and 18th century slave market can still be seen at Abonse, a town that was an important crossroads on the Slave Route. 'Okomfo' Anokye's Shrine located at Awukugua, 4km from Akropong, is dedicated to the legendary priest credited with the founding of the Ashanti Empire.
Asante-Akyem Campus (Agogo)
The Asante-Akyem Campus is the 3rd campus of the College and is located at Agogo in the Asante-Akyem North District in the Ashanti Region of Ghana. Like the other campuses, Agogo is also on the hills that form part of the Akuapem-Mampong-Gambaga range. The climate is also cool. The gateway is through Konongo, a well-known market centre which lies on the Accra-Kumasi road. Konongo is about 220km from Accra and about 50km from Kumasi. Agogo is about 15km from Konongo.
The historical ties of the Basel missionary with Asante-Akyem Agogo started with the return of the Basel Missionary after the First World War. One Mr Adolf Kirchner arrived at Agogo to supervise the building operations of a hospital. In 1931, a hospital was opened, the Agogo Presbyterian Hospital. Blessed with an army of dedicated, able and efficient doctors and nurses, the Agogo hospital carved a niche for itself, earning a reputation for being a 'life-saving station'. Mention should specifically be made of one Dr J.H. Meister, a Swiss surgeon, through whose indomitable efforts the hospital was extended and enlarged to include a Nurses' Training College. The Presbyterian Training College in the town also attests to the enduring presence of the Church in this area.
The Agogo Presbyterian Hospital is reputed to be one of the best in the region and is ranked second to the Komfo Anokye Teaching Hospital in the Northern Sector of Ghana. It is accredited for the training of housemen in various fields. The hospital has all the important departments that are required for training in health and medical sciences. It also has a diploma awarding nurses training college. The hospital is also reputed for eye care and therefore has the setup for training students in optometry. This is the facility that would serve as a base for the Faculty of Health and Medical Sciences of the College.
The College has established a fourth Campus at Tema C2 and C11. The Campus is located at the premises of the Prince and Peace Congregation of the Presbyterian Church of Ghana . The Campus is currently regarded as a satellite campus of the Akuapem Campus. The Campus is operating Regular and Weekend Modular Programmes in BSc. Business Administration BSc, Business Economics, and Microsoft IT Prof.essional Certificate.
The College's Kumasi Campus is located at Santasi on the same compound with the Rose of Sharon Congregation of the Presbyterian Church of Ghana which is opposite the Deeper Life Church, Santasi off Kumasi – Cape Coast High Way; about 400 meters away from Opoku Ware Secondary School.
The Campus currently runs the following programmes: BSc. Business Administration, BSc. Agribusiness and BSc. Mathematics.
The Campus is scheduled to commence the following programmes in 2017: Bachelor of Education (Social Studies), Bachelor of Education (Business Studies) and Bachelor of Legal Law (LLB).
Our programmes at the Kumasi Campus come in two (2) modules – Regular and Weekend. The Campus will start Evening Class and Long Vacation (Sandwich) modules soon.
We also provide competitive tuition fees with flexible mode of payment to suit the individual's financial strength.
The lecture halls and furniture are designed to provide comfort for students. Our environment is modeled to reduce stress and support students to achieve greatness in both academic and social lives. The Library and the Computer laboratory are equipped with relevant books and modern computers respectively for academic excellence.


We've all heard the expression, "That's a real pain in the neck", which universally translates to a situation that's highly unpleasant! In all seriousness, a sore neck is no laughing matter and people go to extraordinary lengths to find the cause of neck pain, and to get neck pain relief.
Despite the fact that we'd all like to live without neck pain, it is estimated that approximately 70% of people will suffer from some form of neck pain condition at some time in their lives. Of course, the types of neck pain may differ, with some experiencing severe neck pain, whilst others suffer from neck pain headache. It may even manifest as a combination of back and neck pain, giving rising discomfort and a desperate need for relief.
There are multiple causes of neck pain but most are brought about by activities that strain the neck, causing muscle tightness or spasm due to repetitive actions or limited movement; stress, twisting or straining the neck in an odd position for long periods of time, e.g. painting the ceiling, repeating the same exercises in the gym (repetitive strain injuries) or sleeping incorrectly on a poor mattress, or the wrong type of pillow.
Worn joints are another cause of neck pain, with many people in later years suffering from neck pain and stiffness due to osteoarthritis. Severe neck pain may be caused by a cervical disc pressing on a nerve, which can cause sharp pain to the cervical area, or even migrating referred pain down the arms.
Sometimes external factors that can't be avoided are the cause, such as rear-end auto collisions resulting in whiplash injury. With a whiplash injury, the head is quickly jerked backward then forward, which stretches soft tissue around the delicate neck beyond its limits. Less common contributors are diseases, such as cancer, meningitis or rheumatoid arthritis.
When we have neck pain, pain can sometimes radiate upwards towards the head, resulting in a nasty headache. Headache and migraine physiotherapist, Dean Watson, head of the Watson Headache Institute, says that neck pain is underestimated in its contribution to headaches. Therefore, sufferers of neck pain headaches should have their upper cervical vertebrae medically assessed, as well as take care of their neck when they sleep, ensuring that correct alignment is maintained.
More often than not, pain relief is just not enough. As well is avoiding certain situations or movements that may exacerbate your pain, it's vital to have a health professional organise a rehabilitation program to correct any muscle imbalances, which may involve improving the strength and balance of muscles in the upper body area. Sensible, prescriptive programs such as individualised Pilates studio classes, exercise classes overseen by a physiotherapist or occupational therapist, or possibly even a reputable yoga class could help both to remedy the pain and prevent its return.
The desire for neck pain relief is as prevalent today as the desire for lower back pain relief. Whether you have neck pain headache, neck muscle pain or stabbing nerve pain in your neck, relief needs to be found – even if at first it is purely symptomatic relief.
If pain is ongoing, once again it is always wise to see a health professional to determine the cause of this pain. If it is not caused by disease or injury, it will pay to have a thorough investigation of your posture, lifestyle, muscle imbalances, stress levels and so on to see if by paying attention to these factors, you can have more relief from pain.
– and, therefore, could be remedied quite easily.
To choose the right pillow for neck and shoulder pain relief, it's essential to address numerous factors such as your body size, sleep habits, material preferences and so forth. Also, the correct pillow should allow you to that you maintain a neutral alignment in your spine while you sleep. It's also noteworthy that the more the pillow can mould to your body shape, the more it offers relief from pressure to your neck area. And, for ultimate cervical comfort, a moderate to high pressure relieving pillow is recommended.If you have injured your neck through some activity or have neck muscle pain, choosing the correct pillow for your body, or even a specific neck pain pillow, may be able to realign your vertebrae while sleeping and relieve pain through pressure relief while you are recovering from injury. In fact, sometimes improving the health and functionality of your upper vertebrae can give substantial lower back pain relief.
At Mattress & Pillow Science, we specialise in healthy sleep pillows and mattresses. View our Pillows for Neck Pain here or ask our Healthy Sleep Consultants in-store for advice on what type of pillow will match your specific needs .


2 Chainz's Pretty Girls Like Trap Music hits stores June 16, and renowned artist Trouble Andrew designed the cover art and is launching an upcoming 2 Chainz-inspired clothing line, which was revealed today (June 5) for a sneak peak.
NYC fans will be the first to experience the first of several pop-up shops. On Wednesday, from 3 to 6 p.m., guests will be able to view and purchase limited apparel items. For those who will miss the physical pop-up shops, a digital one will be available, where one new item will be revealed and up for purchase for one day only.
The shop will rotate each day starting Thursday and will end June 16.


This festival gives students the opportunity to write and submit an original monologue -- some of which are selected for a new play development process in collaboration with InterAct Theatre Company, where each student collaborates in partnership with a professional director, actor, and dramaturg to revise and stage their work.
As part of this festival, Young Playwrights will provide 2 to 3 workshops in classrooms during the school day or after-school, taking students from first draft through revised monologue. Each year, these workshops take place in November, and the festival deadline is in early December.


text:
Q: Pre Render before route or ng-view AngularJS I want to fetch user details before angularjs starts using controllers. I'm okay with it hooking up services and factories but nothing with the view. I'd like a big white screen or a loading screen and then once the user detail comes back from service continue loading the screen. Like a pre fetch up front. AngularJS doesn't seem to allow this, it wants to do everything immediately. How can I prerun scripts?

A: You should use a resolve clause in the route declaration.

redpajama_set_name: RedPajamaStackExchange


Adi Endevelt is a specialist in traditional handmade confectionary, developing candy recipes, and teaching and leading confectionary workshops. She also serves as a consultant to candy manufacturers. Adi published a candy cookbook with candy recipes that is sold in bookstores throughout Israel. The English version of her book is available in the US via Amazon. Adi's handmade candies are prepared using traditional methods with fresh, high-quality ingredients. The candies are unique in texture and are gluten-free, egg-free, and kosher.


AOPA is pleased to announce that the 102nd AOPA National Assembly will be held at the San Diego Convention Center, San Diego, CA, September 25-28, 2019. The San Diego Convention Center is at the heart of all the action. The bayside convention center is just a short walk away from award-winning dining venues, shopping and nightlife in the historic Gaslamp Quarter. The convention center is surrounded by thousands of hotel rooms, waterfront parks, the USS Midway, PETCO Park, home of the San Diego Padres, and just a short drive away from Balboa Park. Click here for more information.


text:
Free iOS Lessons
iOS 11 Tutorial: Battery Health
In this new lesson from the What's New in iOS 11 Tutorial see how to view the current capacity of your iPhone battery in the Battery Heath Setting (Requires iOS 11.3).
Current All Access Members can view the full tutorial Here…
If you have not joined TheMacU All Access yet begin a free trial with any of the three membership options below.
March 30, 2018 /by Drew
https://themacu.com/wp-content/uploads/2017/09/iOS-11-WN-icon.jpg 1024 1024 Drew https://themacu.com/wp-content/uploads/2017/06/TMU.com-Header-logo-jpg-300x138.jpg Drew2018-03-30 17:08:192018-06-28 09:33:37iOS 11 Tutorial: Battery Health
News, Updates
New! Preview for Mac Tutorial!
This tutorial from TheMacU.com looks at how to use the Preview App that is built into every Mac. Preview can be used to view & edit image files or PDFs. We also have lessons on each Markup tool that can be used on both images and PDFs. Markup tools can also be used within other Apps! There are lessons on all the PDF-specific features and functions of Preview as well.
View the full lesson list and a free lesson Here…
Current All Access Members can start watching the full tutorial Here…
To view all of TheMacU Tutorials start your 7 day free trial as an All Access Member with any of the options below!
March 13, 2018 /0 Comments/by Drew
https://themacu.com/wp-content/uploads/2018/03/Preview-Logo.jpg 1024 1024 Drew https://themacu.com/wp-content/uploads/2017/06/TMU.com-Header-logo-jpg-300x138.jpg Drew2018-03-13 17:40:552018-03-13 17:40:55New! Preview for Mac Tutorial!
Mac Tutorial: Fill out PDF forms in Preview
In this free lesson from the upcoming tutorial on Preview for Mac see how you can use Preview to fill out and export PDF forms. With PDF forms easy to completely fill out and sign a document without needing to create your own text boxes or print it out first!
https://themacu.com/wp-content/uploads/2018/03/Preview-Logo.jpg 1024 1024 Drew https://themacu.com/wp-content/uploads/2017/06/TMU.com-Header-logo-jpg-300x138.jpg Drew2018-03-10 18:12:102018-06-28 09:48:48Mac Tutorial: Fill out PDF forms in Preview
Mac Tutorial: How to Scan with Image Capture
In this quick lesson from TheMacU.com see how to use the Image Capture App that is built into every Mac to scan photos or documents. Learn more about system preferences, the Desktop and using your Mac overall with the macOS High Sierra Core Concepts Tutorial.
March 3, 2018 /by Drew
https://themacu.com/wp-content/uploads/2018/03/Screen-Shot-2018-03-03-at-11.39.27-AM.png 599 1000 Drew https://themacu.com/wp-content/uploads/2017/06/TMU.com-Header-logo-jpg-300x138.jpg Drew2018-03-03 18:36:442018-06-28 10:05:48Mac Tutorial: How to Scan with Image Capture


Here in the Netherlands, we don't really have Geneva cookies, or I'm just blind and never see 'em.
The point is, I have never eaten one. Like in my whole life. Or I forgot.
Let's just assume that I've never eaten one, okay?
I really loved these cookies! I made 60 cookies, and now, 2 days later, I only have 12 cookies left.
Yeah, I'm not kidding. And my dog didn't ate them, for once! She is incredibly naughty and the minute she has the chance, she takes whatever she can take. Sometimes she even jumps up and grabs the sandwich in your hand. But that's part of why she fits so good in my family, we're all obsessed with food.
In my house are 6 people, including me, and we are real cookie lovers. Especially when the cookies are not that big, so naturally you can eat a dozen of them and not feel really guilty. Since they're small, it's okay, right?
I was so wrong. They did look cute oval shaped, but it took a lot of time! I'd seriously recommend you to just make these round. Or, I just come to think of, you can roll the dough and then cut out ovals or rounds. Why didn't I try that? That would be a lot easier.
Izy from Top with cinnamon also has a super easy tutorial for tempering chocolate. I've once tried to temper chocolate, but it didn't really work out... Everything just got messy and coated with chocolate, except for the cookies I wanted to coat in chocolate. So I was really happy when I tried her method. You just keep on processing the chocolate in a food processor until it's nice and melted. It worked out really good! If you look well at the picture above, you'll see that the chocolate is shiny.
I made 4 different flavours. The 3 flavours that were in the recipe, and caramel. I have a big box with little caramel bits that taste really nice and caramel-y. I liked the ones with candy cane and white chocolate the most. Chocolate drizzled with more chocolate is always a winner for me.
Preheat your oven to 300 degrees F (150 degrees C).
Cream the butter, sugar, vanilla and vinegar/lemon juice together in a large bowl. Add in the next 4 ingredients and stir until just combined.
Divide the dough into 1" balls, roll the dough balls into 2 1/4" long sausage shapes, place onto a lined cookie sheet.
Flatten the sausages of dough into oval shapes (see notes) – about 1/4 inch thick, spaced 1/2″ apart on the cookie sheet.
Bake for 17-20 minutes until they are a light golden brown. Allow to cool on a wire rack.
Once cooled, spread about 1/2 tsp of melted (tempered if you can be bothered) chocolate onto the bottom of each cookie (you can use a pastry brush, pallette knife or butter knife), and sprinkle with your desired toppings. Let the chocolate set at room temperature. Store in an airtight container.
-I've subbed half the butter for 3.5 0z of coconut oil (i.e. used 3.5 oz of butter + 3.5 oz of coconut oil) and it works just as well!
- You seriously don't need to make these oval shaped – it saves a lot of hassle if you just make the cookies round: just roll the dough into 1″ balls, place on the lined cookie sheet and flatten into 1/4″ thick circles; they'll be just as good, and much quicker to make.
- You can use any other toppings you want – don't limit yourself to those three, go crazy! – chopped peanuts, hazelnuts, spread on some nutella, crushed pretzels, crushed potato chips, flaky sea salt, chopped toffee, chopped candy bars (rolo or snickers would be just…I can't even…), dried fruit, freeze dried fruit, mini marshmallows… whatever!


text:
package voldemort.store.readonly.mr;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;

import org.apache.avro.Schema;
import org.apache.avro.mapred.AvroJob;
import org.apache.avro.mapred.AvroOutputFormat;
import org.apache.avro.mapred.Pair;
import org.apache.commons.codec.binary.Hex;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.PathFilter;
import org.apache.hadoop.fs.permission.FsPermission;
import org.apache.hadoop.io.BytesWritable;
import org.apache.hadoop.mapred.Counters;
import org.apache.hadoop.mapred.FileInputFormat;
import org.apache.hadoop.mapred.FileOutputFormat;
import org.apache.hadoop.mapred.InputFormat;
import org.apache.hadoop.mapred.JobClient;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.mapred.OutputFormat;
import org.apache.hadoop.mapred.RunningJob;
import org.apache.hadoop.mapred.SequenceFileOutputFormat;
import org.apache.log4j.Logger;

import voldemort.VoldemortException;
import voldemort.cluster.Cluster;
import voldemort.cluster.Node;
import voldemort.store.StoreDefinition;
import voldemort.store.readonly.ReadOnlyStorageFormat;
import voldemort.store.readonly.ReadOnlyStorageMetadata;
import voldemort.store.readonly.checksum.CheckSum;
import voldemort.store.readonly.checksum.CheckSum.CheckSumType;
import voldemort.store.readonly.disk.KeyValueWriter;
import voldemort.utils.Utils;
import voldemort.xml.ClusterMapper;
import voldemort.xml.StoreDefinitionsMapper;

/**
 * Builds a read-only voldemort store as a hadoop job from the given input data.
 *
 */
@SuppressWarnings("deprecation")
public class HadoopStoreBuilder {

    public static final long MIN_CHUNK_SIZE = 1L;
    public static final long MAX_CHUNK_SIZE = (long) (1.9 * 1024 * 1024 * 1024);
    public static final int DEFAULT_BUFFER_SIZE = 64 * 1024;
    public static final short HADOOP_FILE_PERMISSION = 493;

    private static final Logger logger = Logger.getLogger(HadoopStoreBuilder.class);

    private final Configuration config;
    private final Class mapperClass;
    @SuppressWarnings("unchecked")
    private final Class<? extends InputFormat> inputFormatClass;
    private final Cluster cluster;
    private final StoreDefinition storeDef;
    private final long chunkSizeBytes;
    private final Path inputPath;
    private final Path outputDir;
    private final Path tempDir;
    private CheckSumType checkSumType = CheckSumType.NONE;
    private boolean saveKeys = false;
    private boolean reducerPerBucket = false;
    private int numChunks = -1;

    private boolean isAvro;

    /**
     * Kept for backwards compatibility. We do not use replicationFactor any
     * more since it is derived from the store definition
     *
     * @param conf A base configuration to start with
     * @param mapperClass The class to use as the mapper
     * @param inputFormatClass The input format to use for reading values
     * @param cluster The voldemort cluster for which the stores are being built
     * @param storeDef The store definition of the store
     * @param replicationFactor NOT USED
     * @param chunkSizeBytes The size of the chunks used by the read-only store
     * @param tempDir The temporary directory to use in hadoop for intermediate
     *        reducer output
     * @param outputDir The directory in which to place the built stores
     * @param inputPath The path from which to read input data
     */
    @SuppressWarnings("unchecked")
    @Deprecated
    public HadoopStoreBuilder(Configuration conf,
                              Class mapperClass,
                              Class<? extends InputFormat> inputFormatClass,
                              Cluster cluster,
                              StoreDefinition storeDef,
                              int replicationFactor,
                              long chunkSizeBytes,
                              Path tempDir,
                              Path outputDir,
                              Path inputPath) {
        this(conf,
             mapperClass,
             inputFormatClass,
             cluster,
             storeDef,
             chunkSizeBytes,
             tempDir,
             outputDir,
             inputPath);
    }

    /**
     * Create the store builder
     *
     * @param conf A base configuration to start with
     * @param mapperClass The class to use as the mapper
     * @param inputFormatClass The input format to use for reading values
     * @param cluster The voldemort cluster for which the stores are being built
     * @param storeDef The store definition of the store
     * @param chunkSizeBytes The size of the chunks used by the read-only store
     * @param tempDir The temporary directory to use in hadoop for intermediate
     *        reducer output
     * @param outputDir The directory in which to place the built stores
     * @param inputPath The path from which to read input data
     */
    @SuppressWarnings("unchecked")
    public HadoopStoreBuilder(Configuration conf,
                              Class mapperClass,
                              Class<? extends InputFormat> inputFormatClass,
                              Cluster cluster,
                              StoreDefinition storeDef,
                              long chunkSizeBytes,
                              Path tempDir,
                              Path outputDir,
                              Path inputPath) {
        super();
        this.config = conf;
        this.mapperClass = Utils.notNull(mapperClass);
        this.inputFormatClass = Utils.notNull(inputFormatClass);
        this.inputPath = inputPath;
        this.cluster = Utils.notNull(cluster);
        this.storeDef = Utils.notNull(storeDef);
        this.chunkSizeBytes = chunkSizeBytes;
        this.tempDir = tempDir;
        this.outputDir = Utils.notNull(outputDir);
        isAvro = false;
        if(chunkSizeBytes > MAX_CHUNK_SIZE || chunkSizeBytes < MIN_CHUNK_SIZE)
            throw new VoldemortException("Invalid chunk size, chunk size must be in the range "
                                         + MIN_CHUNK_SIZE + "..." + MAX_CHUNK_SIZE);
    }

    /**
     * Create the store builder
     *
     * @param conf A base configuration to start with
     * @param mapperClass The class to use as the mapper
     * @param inputFormatClass The input format to use for reading values
     * @param cluster The voldemort cluster for which the stores are being built
     * @param storeDef The store definition of the store
     * @param chunkSizeBytes The size of the chunks used by the read-only store
     * @param tempDir The temporary directory to use in hadoop for intermediate
     *        reducer output
     * @param outputDir The directory in which to place the built stores
     * @param inputPath The path from which to read input data
     * @param checkSumType The checksum algorithm to use
     */
    @SuppressWarnings("unchecked")
    public HadoopStoreBuilder(Configuration conf,
                              Class mapperClass,
                              Class<? extends InputFormat> inputFormatClass,
                              Cluster cluster,
                              StoreDefinition storeDef,
                              long chunkSizeBytes,
                              Path tempDir,
                              Path outputDir,
                              Path inputPath,
                              CheckSumType checkSumType) {
        this(conf,
             mapperClass,
             inputFormatClass,
             cluster,
             storeDef,
             chunkSizeBytes,
             tempDir,
             outputDir,
             inputPath);
        this.checkSumType = checkSumType;

    }

    /**
     * Create the store builder
     *
     * @param conf A base configuration to start with
     * @param mapperClass The class to use as the mapper
     * @param inputFormatClass The input format to use for reading values
     * @param cluster The voldemort cluster for which the stores are being built
     * @param storeDef The store definition of the store
     * @param chunkSizeBytes The size of the chunks used by the read-only store
     * @param tempDir The temporary directory to use in hadoop for intermediate
     *        reducer output
     * @param outputDir The directory in which to place the built stores
     * @param inputPath The path from which to read input data
     * @param checkSumType The checksum algorithm to use
     * @param saveKeys Boolean to signify if we want to save the key as well
     * @param reducerPerBucket Boolean to signify whether we want to have a
     *        single reducer for a bucket ( thereby resulting in all chunk files
     *        for a bucket being generated in a single reducer )
     */
    @SuppressWarnings("unchecked")
    public HadoopStoreBuilder(Configuration conf,
                              Class mapperClass,
                              Class<? extends InputFormat> inputFormatClass,
                              Cluster cluster,
                              StoreDefinition storeDef,
                              long chunkSizeBytes,
                              Path tempDir,
                              Path outputDir,
                              Path inputPath,
                              CheckSumType checkSumType,
                              boolean saveKeys,
                              boolean reducerPerBucket) {
        this(conf,
             mapperClass,
             inputFormatClass,
             cluster,
             storeDef,
             chunkSizeBytes,
             tempDir,
             outputDir,
             inputPath,
             checkSumType);
        this.saveKeys = saveKeys;
        this.reducerPerBucket = reducerPerBucket;
    }

    /**
     * Create the store builder
     *
     * @param conf A base configuration to start with
     * @param mapperClass The class to use as the mapper
     * @param inputFormatClass The input format to use for reading values
     * @param cluster The voldemort cluster for which the stores are being built
     * @param storeDef The store definition of the store
     * @param tempDir The temporary directory to use in hadoop for intermediate
     *        reducer output
     * @param outputDir The directory in which to place the built stores
     * @param inputPath The path from which to read input data
     * @param checkSumType The checksum algorithm to use
     * @param saveKeys Boolean to signify if we want to save the key as well
     * @param reducerPerBucket Boolean to signify whether we want to have a
     *        single reducer for a bucket ( thereby resulting in all chunk files
     *        for a bucket being generated in a single reducer )
     * @param numChunks Number of chunks per bucket ( partition or partition
     *        replica )
     */
    @SuppressWarnings("unchecked")
    public HadoopStoreBuilder(Configuration conf,
                              Class mapperClass,
                              Class<? extends InputFormat> inputFormatClass,
                              Cluster cluster,
                              StoreDefinition storeDef,
                              Path tempDir,
                              Path outputDir,
                              Path inputPath,
                              CheckSumType checkSumType,
                              boolean saveKeys,
                              boolean reducerPerBucket,
                              int numChunks) {
        super();
        this.config = conf;
        this.mapperClass = Utils.notNull(mapperClass);
        this.inputFormatClass = Utils.notNull(inputFormatClass);
        this.inputPath = inputPath;
        this.cluster = Utils.notNull(cluster);
        this.storeDef = Utils.notNull(storeDef);
        this.chunkSizeBytes = -1;
        this.tempDir = tempDir;
        this.outputDir = Utils.notNull(outputDir);
        this.checkSumType = checkSumType;
        this.saveKeys = saveKeys;
        this.reducerPerBucket = reducerPerBucket;
        this.numChunks = numChunks;
        isAvro = false;
        if(numChunks <= 0)
            throw new VoldemortException("Number of chunks should be greater than zero");
    }

    /**
     * Run the job
     */
    public void build() {
        try {
            JobConf conf = new JobConf(config);
            conf.setInt("io.file.buffer.size", DEFAULT_BUFFER_SIZE);
            conf.set("cluster.xml", new ClusterMapper().writeCluster(cluster));
            conf.set("stores.xml",
                     new StoreDefinitionsMapper().writeStoreList(Collections.singletonList(storeDef)));
            conf.setBoolean("save.keys", saveKeys);
            conf.setBoolean("reducer.per.bucket", reducerPerBucket);
            if(!isAvro) {
                conf.setPartitionerClass(HadoopStoreBuilderPartitioner.class);
                conf.setMapperClass(mapperClass);
                conf.setMapOutputKeyClass(BytesWritable.class);
                conf.setMapOutputValueClass(BytesWritable.class);
                if(reducerPerBucket) {
                    conf.setReducerClass(HadoopStoreBuilderReducerPerBucket.class);
                } else {
                    conf.setReducerClass(HadoopStoreBuilderReducer.class);
                }
            }
            conf.setInputFormat(inputFormatClass);
            conf.setOutputFormat(SequenceFileOutputFormat.class);
            conf.setOutputKeyClass(BytesWritable.class);
            conf.setOutputValueClass(BytesWritable.class);
            conf.setJarByClass(getClass());
            conf.setReduceSpeculativeExecution(false);
            FileInputFormat.setInputPaths(conf, inputPath);
            conf.set("final.output.dir", outputDir.toString());
            conf.set("checksum.type", CheckSum.toString(checkSumType));
            FileOutputFormat.setOutputPath(conf, tempDir);

            FileSystem outputFs = outputDir.getFileSystem(conf);
            if(outputFs.exists(outputDir)) {
                throw new IOException("Final output directory already exists.");
            }

            // delete output dir if it already exists
            FileSystem tempFs = tempDir.getFileSystem(conf);
            tempFs.delete(tempDir, true);

            long size = sizeOfPath(tempFs, inputPath);
            logger.info("Data size = " + size + ", replication factor = "
                        + storeDef.getReplicationFactor() + ", numNodes = "
                        + cluster.getNumberOfNodes() + ", chunk size = " + chunkSizeBytes);

            // Derive "rough" number of chunks and reducers
            int numReducers;
            if(saveKeys) {

                if(this.numChunks == -1) {
                    this.numChunks = Math.max((int) (storeDef.getReplicationFactor() * size
                                                     / cluster.getNumberOfPartitions()
                                                     / storeDef.getReplicationFactor() / chunkSizeBytes),
                                              1);
                } else {
                    logger.info("Overriding chunk size byte and taking num chunks ("
                                + this.numChunks + ") directly");
                }

                if(reducerPerBucket) {
                    numReducers = cluster.getNumberOfPartitions() * storeDef.getReplicationFactor();
                } else {
                    numReducers = cluster.getNumberOfPartitions() * storeDef.getReplicationFactor()
                                  * numChunks;
                }
            } else {

                if(this.numChunks == -1) {
                    this.numChunks = Math.max((int) (storeDef.getReplicationFactor() * size
                                                     / cluster.getNumberOfPartitions() / chunkSizeBytes),
                                              1);
                } else {
                    logger.info("Overriding chunk size byte and taking num chunks ("
                                + this.numChunks + ") directly");
                }

                if(reducerPerBucket) {
                    numReducers = cluster.getNumberOfPartitions();
                } else {
                    numReducers = cluster.getNumberOfPartitions() * numChunks;
                }
            }
            conf.setInt("num.chunks", numChunks);
            conf.setNumReduceTasks(numReducers);

            if(isAvro) {
                conf.setPartitionerClass(AvroStoreBuilderPartitioner.class);
                // conf.setMapperClass(mapperClass);
                conf.setMapOutputKeyClass(ByteBuffer.class);
                conf.setMapOutputValueClass(ByteBuffer.class);

                conf.setInputFormat(inputFormatClass);

                conf.setOutputFormat((Class<? extends OutputFormat>) AvroOutputFormat.class);
                conf.setOutputKeyClass(ByteBuffer.class);
                conf.setOutputValueClass(ByteBuffer.class);

                // AvroJob confs for the avro mapper
                AvroJob.setInputSchema(conf, Schema.parse(config.get("avro.rec.schema")));

                AvroJob.setOutputSchema(conf,
                                        Pair.getPairSchema(Schema.create(Schema.Type.BYTES),
                                                           Schema.create(Schema.Type.BYTES)));

                AvroJob.setMapperClass(conf, mapperClass);

                if(reducerPerBucket) {
                    conf.setReducerClass(AvroStoreBuilderReducerPerBucket.class);
                } else {
                    conf.setReducerClass(AvroStoreBuilderReducer.class);
                }

            }

            logger.info("Number of chunks: " + numChunks + ", number of reducers: " + numReducers
                        + ", save keys: " + saveKeys + ", reducerPerBucket: " + reducerPerBucket);
            logger.info("Building store...");
            RunningJob job = JobClient.runJob(conf);

            // Once the job has completed log the counter
            Counters counters = job.getCounters();

            if(saveKeys) {
                if(reducerPerBucket) {
                    logger.info("Number of collisions in the job - "
                                + counters.getCounter(KeyValueWriter.CollisionCounter.NUM_COLLISIONS));
                    logger.info("Maximum number of collisions for one entry - "
                                + counters.getCounter(KeyValueWriter.CollisionCounter.MAX_COLLISIONS));
                } else {
                    logger.info("Number of collisions in the job - "
                                + counters.getCounter(KeyValueWriter.CollisionCounter.NUM_COLLISIONS));
                    logger.info("Maximum number of collisions for one entry - "
                                + counters.getCounter(KeyValueWriter.CollisionCounter.MAX_COLLISIONS));
                }
            }

            // Do a CheckSumOfCheckSum - Similar to HDFS
            CheckSum checkSumGenerator = CheckSum.getInstance(this.checkSumType);
            if(!this.checkSumType.equals(CheckSumType.NONE) && checkSumGenerator == null) {
                throw new VoldemortException("Could not generate checksum digest for type "
                                             + this.checkSumType);
            }

            // Check if all folder exists and with format file
            for(Node node: cluster.getNodes()) {

                ReadOnlyStorageMetadata metadata = new ReadOnlyStorageMetadata();

                if(saveKeys) {
                    metadata.add(ReadOnlyStorageMetadata.FORMAT,
                                 ReadOnlyStorageFormat.READONLY_V2.getCode());
                } else {
                    metadata.add(ReadOnlyStorageMetadata.FORMAT,
                                 ReadOnlyStorageFormat.READONLY_V1.getCode());
                }

                Path nodePath = new Path(outputDir.toString(), "node-" + node.getId());

                if(!outputFs.exists(nodePath)) {
                    logger.info("No data generated for node " + node.getId()
                                + ". Generating empty folder");
                    outputFs.mkdirs(nodePath); // Create empty folder
                    outputFs.setPermission(nodePath, new FsPermission(HADOOP_FILE_PERMISSION));
                    logger.info("Setting permission to 755 for " + nodePath);
                }

                if(checkSumType != CheckSumType.NONE) {

                    FileStatus[] storeFiles = outputFs.listStatus(nodePath, new PathFilter() {

                        public boolean accept(Path arg0) {
                            if(arg0.getName().endsWith("checksum")
                               && !arg0.getName().startsWith(".")) {
                                return true;
                            }
                            return false;
                        }
                    });

                    if(storeFiles != null && storeFiles.length > 0) {
                        Arrays.sort(storeFiles, new IndexFileLastComparator());
                        FSDataInputStream input = null;

                        for(FileStatus file: storeFiles) {
                            try {
                                input = outputFs.open(file.getPath());
                                byte fileCheckSum[] = new byte[CheckSum.checkSumLength(this.checkSumType)];
                                input.read(fileCheckSum);
                                logger.debug("Checksum for file " + file.toString() + " - "
                                             + new String(Hex.encodeHex(fileCheckSum)));
                                checkSumGenerator.update(fileCheckSum);
                            } catch(Exception e) {
                                logger.error("Error while reading checksum file " + e.getMessage(),
                                             e);
                            } finally {
                                if(input != null)
                                    input.close();
                            }
                            outputFs.delete(file.getPath(), false);
                        }

                        metadata.add(ReadOnlyStorageMetadata.CHECKSUM_TYPE,
                                     CheckSum.toString(checkSumType));

                        String checkSum = new String(Hex.encodeHex(checkSumGenerator.getCheckSum()));
                        logger.info("Checksum for node " + node.getId() + " - " + checkSum);

                        metadata.add(ReadOnlyStorageMetadata.CHECKSUM, checkSum);
                    }
                }

                // Write metadata
                Path metadataPath = new Path(nodePath, ".metadata");
                FSDataOutputStream metadataStream = outputFs.create(metadataPath);
                outputFs.setPermission(metadataPath, new FsPermission(HADOOP_FILE_PERMISSION));
                logger.info("Setting permission to 755 for " + metadataPath);
                metadataStream.write(metadata.toJsonString().getBytes());
                metadataStream.flush();
                metadataStream.close();

            }

        } catch(Exception e) {
            logger.error("Error in Store builder", e);
            throw new VoldemortException(e);
        }

    }

    /**
     * Run the job
     */
    public void buildAvro() {

        isAvro = true;
        build();
        return;

    }

    /**
     * A comparator that sorts index files last. This is required to maintain
     * the order while calculating checksum
     *
     */
    static class IndexFileLastComparator implements Comparator<FileStatus> {

        public int compare(FileStatus fs1, FileStatus fs2) {
            // directories before files
            if(fs1.isDir())
                return fs2.isDir() ? 0 : -1;
            if(fs2.isDir())
                return fs1.isDir() ? 0 : 1;

            String f1 = fs1.getPath().getName(), f2 = fs2.getPath().getName();

            // if both same, lexicographically
            if((f1.contains(".index") && f2.contains(".index"))
               || (f1.contains(".data") && f2.contains(".data"))) {
                return f1.compareToIgnoreCase(f2);
            }

            if(f1.contains(".index")) {
                return 1;
            } else {
                return -1;
            }
        }
    }

    private long sizeOfPath(FileSystem fs, Path path) throws IOException {
        long size = 0;
        FileStatus[] statuses = fs.listStatus(path);
        if(statuses != null) {
            for(FileStatus status: statuses) {
                if(status.isDir())
                    size += sizeOfPath(fs, status.getPath());
                else
                    size += status.getLen();
            }
        }
        return size;
    }

}

redpajama_set_name: RedPajamaGithub


text:
Scoop  WikiLeaks
Cablegate: Religious Freedom Round-Up: Se Turkey
Monday, 27 September 2004, 3:24 pm
Cable: Wikileaks
Ref: 04ADANA128
This record is a partial extract of the original cable. The full text of the original cable is not available.
UNCLAS SECTION 01 OF 03 ADANA 000128
TAGS: PREL PHUM TU ADANA
SUBJECT: RELIGIOUS FREEDOM ROUND-UP: SE TURKEY
1. (U) Summary: Members of the Protestant, Catholic and Muslim
communities in various cities in southeast Turkey report that
they are able to worship freely, but that the state continues to
restrict some aspects of their religious life. A Diyarbakir
pastor's acquittal last May on charges of worshiping in an
"illegal church" did not address the church's equally pressing
problem, a lack of legal status. Religious groups attempting to
gain legal status or regain lost properties continue to face
incommodious bureaucratic processes. In Adana, a representative
of that city's Jewish community, however, says that community's
biggest problem is its dwindling size in the region due to
emigration and self-selection, not "government problems." End
Protestants in Diyarbakir: no legal status
2. (SBU) The pastor of a Protestant church in Diyarbakir told
poloff in a September 3 meeting that his congregation of
approximately 60 members was able to worship freely, and was not
currently experiencing any harassment. At a May 2004 hearing,
he said, he had been acquitted of charges that he was operating
a church in an unauthorized building. In handing down that
decision, the judge cited a 1996 European Human Rights Court
precedent stating that sentencing someone for using a house as a
place of worship without government permission is a violation of
Article 9 of the European Human Rights Accord. (Note: In an
August meeting with poloff, a public prosecutor in Diyarbakir
asserted that the decision is an example of progress in the area
of religious freedom.)
3. (SBU) While the pastor welcomed the May decision that
allowed him to keep using the property for religious instruction
and worship, he is not completely satisfied as he and his
worshipers still do not have any legal status as a church. They
cannot legally hire any employee (such as a pastor) nor provide
benefits, for example. Moreover, they cannot own the property
in the church's name. The building they are using as a church
also serves as the pastor's home. If he should die, he asks,
how could he make sure it stays in the hands of his
congregation? The church does not receive state assistance for
electricity and water, as some other faith groups with legal
status do, nor does it have any space specifically allocated for
use as a cemetery for the community, he said.
4. (SBU) According to this pastor, groups wishing to form new
foundations must have at least one trillion TL (approximately
USD 665,000) before applying. (Note: Post has not yet been able
to confirm this independently. End Note.) Only one Protestant
foundation, he said, the Istanbul-based Bostanci Vakfi, was
formed prior to the establishment of that requirement. The
pastor said that there are approximately 70 churches dealing
with the same lack of legal status issue, and that
representatives of Protestant churches have formed a legal
commission that has been meeting in Izmir on and off for two
months to determine how to move forward. At this time they are
considering their best option to be forming an association
(dernek). It would be based in Ankara; there would be a number
of board members there and the churches would function like a
federation. He will keep us posted as they move forward in this
Catholic community in Mersin
5. (SBU) A Catholic priest in Mersin who has been in Turkey for
41 years (about 35 of them in Mersin) said that the church was
trying to form a foundation in order to be able to get title and
compensation for lost lands. He said that the church, which is
located adjacent to the Mersin Security Director's office and
municipality building, had lost its property (including its
cemetery) over the last few decades as Mersin grew, because its
properties were untitled by government decision and located in
growing urban areas. The property in Catholic Church use now
was limited to the church itself, an adjacent house and an
adjacent additional building. He said that the church had been
allowed land in a municipal cemetery when its dedicated cemetery
was lost and that it is "protected and respected" by
6. (SBU) He was not optimistic that the foundation would make
much headway and said that "the Turks do not have a concept of
reciprocity or give-and-take," stressing that he did not mean
that pejoratively, just that it was not their custom. Without
explicit, detailed agreements to restore individual laws, he
doubted that many religious institutions, regardless of faith,
would make progress because of institutional resistance and
Diyanet suspicion.
7. (SBU) He noted that the congregation was about 600-strong,
healthy, had had about 60 converts in recent years and is
largely self-supporting. He said that security officials were
allowing Christians in Mersin to have their religion revised on
their identity cards as "Christian" vice the automatic "Muslim"
entry recorded at hospitals, once church baptismal records
confirmed the Christian's petition for revision. He said that
is also occurring elsewhere in the Catholic community in Adana
(where it is quite small), Iskenderun (the Bishop of Anatolia 's
seat - others being Bishops of Istanbul and Izmir) and Antakya.
8. (SBU) The church had had little trouble receiving money from
abroad, he said, adding that its difficulties were in sending
funds out, and that the Papal Nuncio in Ankara had assisted them
on the occasions when this had occurred. He said these
financial issues were not major concerns; rather, his problems
lay in having to rely only on Catholic printed material
published in Istanbul, since law prevented it from entering from
outside Turkey, and gaining long-term residency and/or
citizenship for clergy working in Turkey. Twice, he said, his
requests for citizenship had been rejected despite being in
Turkey 41 years and he had only in 2003 received his first
5-year residency visa, having until then always received visas
in one or two-year increments.
Freedom to veil
9. (SBU) A senior Adana AK party leader asserted to PO in an
August meeting that "tolerance and freedom" are much of what AK
is about. "It is so important for us," he claimed. "There is a
large Sunni faithful population that feels controlled and
observed and limited by the State and this is part of what is
attractive about the possibility of freedom in the EU process,"
he explained. "Educating our women is important to us, but they
want, and we want for them, the freedom to study while wearing
turbans and receiving a modern education," he averred, adding,
"That is why the Prime Minister's children are in the U.S., as
are so many other AK Party members' female children. You care
about what they are learning, not what they wear. That is also
what we want." [Comment: Secular Turks disagree with this view
that the turban-style headscarf is purely a religious symbol;
secular Turks say Islamists use the headscarf as a political
symbol. End comment.]
Adana's Jewish Community
10. (SBU) A prominent Adana Jewish leader told PO in August
that the community's synagogue is safe and afforded protection
by the government. Istanbul congregations had urged the
community to take more physical security since last year, but
the group in Adana felt that the suggested costly physical
barriers would raise their profile and draw more attention than
their defensive contribution might merit. He said that the
synagogue had yet to receive free electricity, but also had not
tried to do so. It was not an issue to him. He said that the
small Jewish community here was concerned about the recent
criticism of Israel by PM Erdogan and hoped that it would be an
"isolated incident."
11. (SBU) He said the biggest issue was the dwindling of the
small Cukurova Jewish community as youth emigrate to Istanbul or
abroad. He mentioned that his nephews and nieces are in
Belgium, his son in graduate school in Chicago and his is
daughter married and in Istanbul. He said that Jewish faith is
"drying up" in Anatolia and predicted it will not last another
generation, but attributed this to "self-selection, not
government problems." He noted that rabbis infrequently come
down to Adana from Istanbul or abroad and welcomed any American
Jewish interaction from the small numbers stationed at Incirlik.
12. (SBU) Comment: There is broad room for improvement on
implementation of religious freedom reforms in Turkey. With the
bureaucratic obstacles that are placed in the way of some faith
groups attempting to obtain legal status, the Turkish state and
government send a negative message and create de facto
restrictions on religious freedom. And despite the acquittal of
Diyarbakir's Protestant pastor, that a case was opened against
him to begin with - for holding an unauthorized gathering in an
"illegal" church - is an affront to religious freedom. Finally,
as for societal attitudes, the AKP party official's mention, in
one breath, of tolerance and the "large Sunni faithful" should
be considered side by side with the less than tolerant views of
many in the Sunni community toward Alevis, Shia and other
religions. End comment.
Find more from Wikileaks on InfoPages.


Volton Campaign is Live. 3 new bikes and new Alation models on discount.
Thanks for the heads up. Old stow had full disc..... this one does not. Around 16mph top speed.
Barbe, you're about a year too late on these.... they went fast.
Cold is okay. Cold and wet is another story.... 90 percent mental. Another 90 percent of having the right outerwear.
I've posted a couple here and on the campaign. Please let me know if you have any specific requests of closeups or questions.
Volton A-Trail + several inches of the (mostly) soft stuff = a helluva good time.


Our custom oyster card holders are a creative and memorable means of promoting your business, charity or cause. Great for season ticket holders, bus pass holders, gym memberships and more. Customise with your choice of colours, logo and artwork.
Oyster card holders / printed travel wallets in full colour print. A low cost marketing tool with great repeat exposure potential.
Oyster card holders / printed travel wallets in 1 to 4 colour print. Customised with your choice of logo or artwork.


Gyms and boutique studios will need to marry elements such as gamification and virtual reality into their offering in the future to keep Generation Z members engaged, according to Chloe Combi, a specialist on the demographic.
Orangetheory Fitness will open its first out-of-London UK studio in Altrincham, Greater Manchester, in December.
US-based health club operator Orangetheory Fitness is looking to strengthen its foothold in the UK market after signing a deal which will see 40 new studios open by 2028.
US-based health club chain Orangetheory Fitness has signed a deal to expand its concept in southern England with 70 studios set to open over the next decade, including 30 in London.


text:
Q: Ubuntu detects a crash for a program I never run I use atop to get a few basic things above top without being too fancy. I've used it on many systems and I'm aware that sometimes when it first runs it can print out "Floating Point Exception" and exit.
The part I don't understand is why after a basic apt-get install atop two things happen:

*

*Ubuntu throws up a dialog explaining it wants to report an error, clicking more details reveals it's the floating point exception for atop

*Upon startup we get the same error again

I can understand that if I actually run the program it could encounter an error, but how is it encountering errors immediately upon installation (ones that would indicate it's being ran for some reason?) and why is atop being ran at startup on it's own to display those errors after boot?

A: When atop is installed, it also installs a system service that keeps running it in the background. The service is started every time the computer is started.
In addition, packages can have (and often have) scripts that are automatically run before installation, after installation, before removal, and after removal.
In the case of atop, there is a post-install script (/var/lib/dpkg/info/atop.postinst) that runs invoke-rc.d atop start. This is pretty typical on Debian-based systems: when you install a service, it gets automatically started.
So, what is does this atop service do? Reading /etc/init.d/atop, it ends up running the following (where $CURDAY stands for the current day, for example 20161220 at the time of writing):
/usr/bin/atop -a -w /var/log/atop/atop_$CURDAY 600

According to the man page, this keeps one atop command running all the time, writing raw data under /var/log/atop every 10 minutes (600 seconds), forever (until the machine is shut down). This allows the user to examine past usage of the system, not just current usage. Have a look at the RAW DATA STORAGE section of the man page.
Now, since atop apparently crashes on your machine, you get one crash when the package is installed (and the service is started) and one crash each time the computer is started (because this starts the service). There is also a cron job that restarts the service at midnight (so that a new log file is used every day), so you will get one more crash at midnight.
If you only care about running atop from the command line, and do not care about the service, you can disable it by running sudo update-rc.d atop disable.