• Develop\execute\manage sales plan, increase sales revenue and market share.
• Promote Ecovacs brand, build and keep contact with the distributors, formulate sales planning, set and achieve goals and objectives, and research market, predict potential market to implement sales and marketing strategy in the assigned markets.
• Cooperate with regional channel marketing team to develop and execute of marketing plans to increase sales revenue & brand awareness.
• Initiates and coordinates development of action plans to maintain relationships in assigned markets.
• weekly\monthly sales and marketing report.
• Maintains contact with all clients in the market area to ensure high levels of client satisfaction.
• Demonstrates ability to interact and cooperate with all company employees.
• Extensive experience in all aspects of Customer Relationship Management.
• Proven ability to drive sales.


text:
World-renowned comedian and ventriloquist Jeff Dunham coming to Regina
Tickets go on sale Nov. 8 for the "Jeff Dunham: Seriously!?" tour, which comes to the Brandt Centre in Regina on March 27.
Comedian and ventriloquist Jeff Dunham, shown with with one of his characters, Peanut, is coming to Regina on March 27. Photo by Handout/Windsor Star
Jeff Dunham's first comedy tour in over a year includes a stop at Regina's Brandt Centre on March 27.
The "Jeff Dunham: Seriously!?" tour comprises more than 60 dates in Canada and the U.S., plus a trip overseas. The international tour was originally set to begin last year but had to be rescheduled due to the COVID-19 pandemic.
Dunham — along with his trademark cast of puppet characters — is recognized as one of the top-selling comedians of all time. His TV specials have generated record-breaking audiences and his Spark of Insanity Tour made the Guinness Book of World Records for most tickets sold on a standup tour (almost two million across 386 venues worldwide).
"Jeff Dunham has single-handedly revived the popularity of ventriloquism for the last three decades," Hollywood Chamber of Commerce president/CEO Leron Gubler said in 2017 when Dunham received a star on the Hollywood Walk of Fame.
Dunham has 11 million followers on Facebook and over three million Youtube subscribers, with his videos generating more than 1.5 billion views.
Tickets go on sale Nov. 8 (10 a.m.) via Ticketmaster .

redpajama_set_name: RedPajamaCommonCrawl


text:
Get An Unquiet Mind from Amazon.com
Order our An Unquiet Mind Study Guide
Chapter 1 "Into the Sun"
Chapter 2 "An Education for Life"
Chapter 3 "Flights of the Mind"
Chapter 4 "Missing Saturn"
Chapter 5 "The Charnel House"
Chapter 6 "Tenure"
Chapter 7 "An Officer and a Gentleman"
Chapter 8 "They Tell Me It Rained"
Chapter 9 "Love Watching Madness"
Chapter 10 "Speaking of Madness"
Chapter 11 "The Troubled Helix"
Chapter 12 "Clinical Privileges"
Chapter 13 "A Life in Moods"
Chapter 14 "Epilogue"
An Unquiet Mind - Chapter 8 "They Tell Me It Rained" Summary & Analysis
This Study Guide consists of approximately 32 pages of chapter summaries, quotes, character analysis, themes, and more - everything you need to sharpen your knowledge of An Unquiet Mind.
Chapter 8 "They Tell Me It Rained" Summary and Analysis
After David's death, Jamison plunges full-bore into her work and takes lithium regularly. The result is that she makes great professional strides and experiences a more stable and predictable life. Still unhealed emotionally, not only from David's death, but from ravages of her own disease and suicide attempt, Jamison decides to take a one-year sabbatical leave and to study manic depressive illness among British artists and writers at Oxford University at St. George's Hospital Medical School in London.
She slips comfortably into a different academic routine balanced between the legendary hospital and university, where she is a senior research fellow. The timelessness and solidity of both institutions, as well as the cultural amenities of the university environment, awaken her spirit and quicken her mind. In this most elite of...
(read more from the Chapter 8 "They Tell Me It Rained" Summary)
More summaries and resources for teaching or studying An Unquiet Mind.
An Unquiet Mind from BookRags. (c)2020 BookRags, Inc. All rights reserved.


My thoughts and prayers for the passengers, crew and family members of Malaysian Flight 17 (MH17) that was shot down over Eastern Ukraine today. This is a horrific event and those who committed the act will be held fully responsible.
Giveaway: Delta, Alaska & Global Entry!
Palo Will Travel © 2014-2018. All Rights Reserved.


Mountain Bike Pedal Review. Mountain Bike Pedal Review Best Flat Pedals MBR 6. Mountain Bike Pedal Review Shimano M530 Trail Pedals BikeRadar 15. Mountain Bike Pedal Review Best Clipless Pedals MBR 14. Mountain Bike Pedal Review LifeLine Essential SPD Compatible 0. Mountain Bike Pedal Review Best Clipless Pedals 19. Mountain Bike Pedal Review Round Up Best Flat Pedals Mtbr Com 3. Mountain Bike Pedal Review Round Up Best Flat Pedals Mtbr Com 16.
Mountain Bike Pedal Review Ultralight Race Ready Ritchey Logic WCS Paradigm 1. Mountain Bike Pedal Review Race Face Atlas Pedals Singletracks News 18. Mountain Bike Pedal Review Shimano A530 SPD Pedals 4. Mountain Bike Pedal Review Shimano PD M520 Pedals BikeRadar 11. Mountain Bike Pedal Review The Best Flat Shoes OutdoorGearLab 13.


text:
Pharoahe Monch to perform all his classics at Back To The City
by Dope Nation ZA Staff
It's official: Pharoahe Monch is the 'international act' at this year's edition of Back To The City.
The man who gave us Internal Affairs and the three-piece: Desire, W.A.R and PTSD, is making his way back to South Africa, joining the very extensive line-up of artists who are set to rock the stage at Mary Fitzgerald Square on Freedom Day.
For hip-hop fans across the world, Pharoahe has the distinction of being the fan's rapper, the rapper's rapper and the rapper's rapper's rapper — all of whom listen to, mimic and respect his intricate rhyme scheme, otherworldly delivery and sincere crooning. And he's no stranger to SA. In 2012 and then in 2014, Monch performed in Cape Town and Soweto, respectively. He did that both times alongside Jean Grae. In 2014 Pharoahe had just dropped PTSD, a highlight of which was a song where he accurately proclaimed that, like Brooklyn and the Bronx, Joburg and Cape Town were The Jungle.
"He's about that struggle, that urban life struggle that young people go through…" Rashid Kay, one of the organisers of Back To The City, says of Pharoahe, adding that the Simon Says rapper is going to perform all his classics.
For the older heads, acts like Pharoahe Monch and Jeru Da Damaja, Cappadonna and all the other 'international' acts who've graced the BTTC main stage, it's about nostalgia, Rashid said.
"Every year, we sit down and agree on which international act to bring. Pharoahe is one of those guys who, when you attend hip-hip sessions, and you're a hip-hop head, you know [songs] that you can sing along to [like Simon Says]. So it's not for your radio heads, or your igmorant heads, it's for the hp-hop heads [that we booked Pharoahe]" he added.
The 12th Annual Back To The City is set to be a dope one. You can expect to rock out and see Her Highness Rouge, Cassper Nyovest, Nadia Nakai, Emtee, Okmalumkoolkat, Riky Rick, Stogie T, Youngsta CPT, A-Reece, Yugen Blakrok, Big Star, Shane Eagle. But the highlight, for us at least, is Kid X's set which promises to be crazy on account of him bringing out Maskandi group uShwi Nomtekhala as well as the Outrageous Records tribute by H20, Zubz, ProVerb and Optical Ill.
Tickets are available at Computicket.
Tags: Back To The City Back To The City 2018 Dope Nation Dope Nation ZA Pharoahe Monch Pharoahe Monch Back To The City SA Hip-Hop South African Hip-Hop


PLYMOUTH — Paula Marcoux has more than 10 ways she can cook outside on her wooded property here, which slopes down to pristine Savery Pond. On a picture-perfect day, there are three fires going: One in a rock-lined fire pit, over which a tripod structure holds a grill suspended on metal chains (a German setup called a schwenker); another a small kindling fire centered between a few rocks on which she balances a convex Indian pan called a tava; and a third in the base of an old gas grill covered with a flat cast-iron griddle.
After almost 30 years studying pre-industrial and ancient cooking methods, Marcoux, 53, a former Plimoth Plantation historic interpreter, has just published her first cookbook, "Cooking With Fire: From Roasting on a Spit to Baking in a Tannur, Rediscovered Techniques and Recipes That Capture the Flavors of Wood-Fired Cooking." The various outdoor cooking options on her land are both practical and part of her extensive research. The book, as much a summary of traditional cooking methods as a compilation of recipes, takes novices through making a fire, exploring age-old techniques and tools, and leading the more ambitious (with 12 pages of instructions and photos) through building a wood-fired mud oven. "Wood-fired ovens are for taking outdoor cooking to the next level or for fanatical bakers," she says. She considers herself one of the fanatics.
Throughout "Cooking With Fire," Marcoux's voice is friendly, wise, and instructive, nudging you forward. Take her fire-making advice: "Fire is composed of just as much oxygen as fuel," she writes, so it's necessary to start with small sticks and twigs, set up tepee-style, and to grow the flame slowly. Adding hardwood to create a bed of coals for cooking is the next step. "A big pile of small wood is a quicker route to a roasting fire than a small pile of big wood," she advises. Her practical and environmentally conscious words ask you to consider the "cooking potential" for downed trees and limbs that might be in your backyard or nearby woods.
Tremont 647's owner and chef Andy Husbands gives tips on how to prepare and grill foods for the summer grilling season.
She practices what she preaches. Amid the ovens and firepits on her property are what many would deem piles upon piles of junk. But to Marcoux, it's "a collection." She and her husband, Preston Woodburn (aptly named), whom she met at Plimoth Plantation and who is a timber-frame carpenter, built their home here, a 10-year-plus work-in-progress. At some point, the stacks of wood, mess of tree limbs, construction materials, plastic tubs, metal pipes, and other odds and ends will be put to good use.
For everyday meals, Marcoux usually makes a small fire in a stone-lined pit and sets a grate on top of bricks, steel bars, or rocks for support. Essentially, it's grilling without a grill. More adventurous cooks can roast a whole chicken, duck, rabbit, or fish on a spit; hang a leg of lamb on a string suspended from a tripod; or devise a swinging schwenker. Here's a fun one: Use the retained heat of a fireplace tool, such as a salamander or iron fire-shovel, to caramelize sugar sprinkled on top of custard, something akin to the golden, crackly top on creme brulee. Or insert a red-hot poker into a glass of beer and rum, a once-popular tavern beverage called a flip, to turn it hot and foamy.
On a griddle, Marcoux demonstrates easy seared spinach with spring garlic and asparagus. She has wrapped scallops in prosciutto and when they hit the hot surface, the mollusks cook gently as the meat browns and crisps. Pita goes on the griddle next, and then borek, which originated in Anatolia, and are thin packets of dough wrapped around a filling. Half the pastries contain a cheese and herb mixture, the remainder chopped nuts and sugar. She's coined the sweet version "campfire baklava," a riff on the layered Middle Eastern phyllo, nut, and honey pastries. The fire imparts a smoky-woody flavor that no piece of indoor kitchen equipment can adequately reproduce.
Most impressive are the two wood-fired masonry ovens on the property, which Marcoux built from rock, clay, mud, and brick. One is in what she calls "French-Champlain style"; the other is also a European mud oven, a kind replicated in Colonial America. She also has a small English cloam (pottery) oven that she experiments with.
The ovens, she says, are without equal for baking bread and pizza, roasting vegetables, and cooking pots of beans, stew, and soup. "With bread, the crust is just so different," she says. Once the flame goes out, the heat in the hollow of the oven is sufficient to cook casseroles, fruit pies, and cakes. When the residual heat is low and dry, Marcoux swears by it for cooking almond meringues that bake crisp and toasty-flavored after a few hours.
Marcoux, who cooked in restaurants sporadically over the years, has always been intrigued by the intersection of food and history. Raised in Rehoboth, she majored in archeology at Brown University, and worked on excavations in Jordan and Israel after college. Occasionally, the remains of stoves, ovens, and utensils were uncovered. "It's not always easy to understand how they work," she says. In 1987, she took a job at Plimoth Plantation and wound up staying 22 years, researching food history, working on exhibits, and playing the roles of a 17th-century English Colonial servant and other women in the living-history museum.
Despite her knowledge of cooking and food history (she blogs at www.themagnificentleaven.com), Marcoux isn't above learning from more experienced cooks, even those halfway around the world, on YouTube. One was an Armenian woman demonstrating how to stretch the dough for borek by draping it over her arm and carefully rotating it. "These are the best teachers in the world," she says.


yeah, but he's never driven it! it's not even on the road!
il belive you when i see you you shitstabber!
yeah the rocco is work in progress, the interior is from a alfa 147!! took a while to fit but worth it. Been trying to collect some parts for it, didn't realise how rare these things are. My derby was hard enough to find parts for.


text:
Regulatory News - Americas
December 10, 2013 / 6:07 PM / 6 years ago
UPDATE 2-AbbVie oral hep C drugs cure 96 pct in late stage trial
By Bill Berkrot
Dec 10 (Reuters) - AbbVie Inc's all-oral hepatitis C therapy cured 96 percent of difficult-to-treat patients in a late-stage clinical trial after 12 weeks, keeping the company well placed in a highly competitive race to deliver new treatments for the serious liver disease.
The study of 394 patients with the most common Genotype 1 version of the virus tested the AbbVie regimen in people who had failed to be cured by the older standard treatments of pegylated interferon and ribavirin.
In results issued by AbbVie on Tuesday, nearly half of those in the Phase III trial dubbed Sapphire-II were prior null responders - a particularly difficult to treat group whose virus had no response to treatment with the older drugs.
The impressive cure rate after just 12 weeks of therapy mirrors the results seen last month in another late stage study that tested the all oral AbbVie regimen in potentially less challenging patients who had received no prior treatment for their hepatitis C.
Two percent of patients in the Sapphire-II trial experienced relapse or virologic breakthrough in which the virus rebounds after initially responding to treatment, while the discontinuation rate due to side effects was 1 percent.
Patients in whom there is no detectable levels of the virus in the blood 12 weeks after completing 12 weeks of therapy have achieved SVR, or sustained virologic response, which is considered cured.
Alex Arfaei, an analyst with BMO Capital Markets, said in a research note that AbbVie's regimen "remains underappreciated" and forecast sales reaching $1.6 billion in 2017.
Several companies are developing hepatitis C treatment regimens that do not require injectable interferon, which causes miserable flu like symptoms that lead many patients to discontinue or delay treatment.
Gilead Sciences is widely perceived by industry analysts to be the leader in the all-oral hepatitis C field that is expected to garner billions of dollars in annual sales. Gilead last week had one of its closely watched new drugs approved by the U.S. Food and Drug Administration.
AbbVie, Bristol-Myers Squibb Co and Merck & Co are all seen as potential rivals with oral regimens that have shown impressive cure rates and also cut the current treatment duration to 12 weeks or less from the current 24- or 48-week treatment regimens.
Some analysts have said AbbVie's ability to compete could be hampered by a larger number of pills that must be taken than some of the rival regimens.
The AbbVie regimen includes three experimental direct acting antiviral drugs that each attack a different target necessary for virus replication, plus the older drug ribavirin.
The drugs are the protease inhibitor ABT-450, whose effect is boosted by a widely used antiviral called ritonavir; the polymerase inhibitor ABT-333, and ABT-267 from a highly promising new class known as NS5A inhibitors.
The regimen currently involves four pills a day plus typically 2 ribavirin pills a day.
AbbVie, which has four more Phase III trials underway, is also testing its drugs without ribavirin - a medicine that can cause anemia and other side effects. But other companies are shooting for combination regimens that involve just one or two pills a day.
"Gilead will have a convenience advantage," Arfaei said. "However, we do not believe convenience is as important for an 8-12 week treatment regimen that produces a cure compared with for example chronic HIV treatment."
Shares of Enanta Pharmaceuticals Inc, which co-developed ABT-450 with AbbVie, were up 22.2 percent to $36.25 on Nasdaq. They are up more than 70 percent since AbbVie released data from the first Phase III trial last month.
AbbVie shares were up 2.1 percent at $52.30 in afternoon trading on the New York Stock Exchange.


text:
OSA Publishing > Optics Express > Volume 21 > Issue 8 > Page 10301
Virtual-image generation in 360-degree viewable image-plane disk-type multiplex holography
Yih-Shyang Cheng, Zheng-Feng Chen, and Chih-Hung Chen
Yih-Shyang Cheng,* Zheng-Feng Chen, and Chih-Hung Chen
Department of Optics and Photonics, National Central University, Chungli 320, Taiwan
*Corresponding author: yscheng@ios706.ios.ncu.edu.tw
Y Cheng
Z Chen
C Chen
Yih-Shyang Cheng, Zheng-Feng Chen, and Chih-Hung Chen, "Virtual-image generation in 360-degree viewable image-plane disk-type multiplex holography," Opt. Express 21, 10301-10313 (2013)
Get PDF (1951 KB)
Diffraction efficiency
Holographic recording
Image reconstruction
Multiplex holography
Rainbow holography
Three dimensional imaging
Holography (090.0090)
Holographic display (090.2870)
Multiplex holography (090.4220)
Original Manuscript: February 5, 2013
Revised Manuscript: March 29, 2013
Manuscript Accepted: April 2, 2013
By shifting the rotational axis of the recording film and recording the individual image-plane holograms in reversed sequence with the real-image holographic system [Opt. Express 18, 14012 (2010)], the disk-type multiplex hologram can be made to generate virtual image for walk-around viewing if the recording reference source point is maintained on the symmetry axis of hologram disk. Theoretical formulation and numerical simulation show the characteristics of the reconstructed image. Experimental results are also shown for qualitative comparison.
360-degree viewable image-plane disk-type multiplex holography by one-step recording
Yih-Shyang Cheng, Yuan-Tien Su, and Chih-Hung Chen
Single-beam copying system of 360-degree viewable image-plane disk-type multiplex hologram and polarization effects on diffraction efficiency
Chih-Hung Chen, Yih-Shyang Cheng, and Zen-Yuan Lei
Alignment sensitivity of holographic three-dimensional disks
Hsin-Yu Sidney Li and Demetri Psaltis
J. Opt. Soc. Am. A 12(9) 1902-1912 (1995)
Holographic simultaneous readout polarization multiplexing based on photoinduced anisotropy in bacteriorhodopsin
W. D. Koek, N. Bhattacharya, J. J. M. Braat, V. S. S. Chan, and J. Westerweel
Opt. Lett. 29(1) 101-103 (2004)
Image Plane Holography
Gerald B. Brandt
Appl. Opt. 8(7) 1421-1429 (1969)
G. Saxby, Practical Holography, 2nd ed. (Prentice-Hall, 1994).
D. J. DeBitetto, "Holographic panoramic stereograms synthesized from white light recordings," Appl. Opt. 8(8), 1740–1741 (1969).
M. C. King, A. M. Noll, and D. H. Berry, "A new approach to computer-generated holography," Appl. Opt. 9(2), 471–475 (1970).
L. Huff and R. L. Fusek, "Color holographic stereograms," Opt. Eng. 19(5), 691–695 (1980).
E. N. Leith and P. Voulgaris, "Multiplex holography: some new methods," Opt. Eng. 24(1), 171–175 (1985).
K. Okada, S. Yoshii, Y. Yamaji, J. Tsujiuchi, and T. Ose, "Conical holographic stereograms," Opt. Commun. 73(5), 347–350 (1989).
L. M. Murillo-Mora, K. Okada, T. Honda, and J. Tsujiuchi, "Color conical holographic stereogram," Opt. Eng. 34(3), 814–817 (1995).
Y. S. Cheng, W. H. Su, and R. C. Chang, "Disk-type multiplex holography," Appl. Opt. 38(14), 3093–3100 (1999).
Y. S. Cheng and C. H. Chen, "Image-plane disk-type multiplex hologram," Appl. Opt. 42(35), 7013–7022 (2003).
Y. S. Cheng and C. M. Lai, "Image-plane conical multiplex holography by one-step recording," Opt. Eng. 42(6), 1631–1639 (2003).
Y. S. Cheng and R. C. Chang, "Image-plane cylindrical holographic stereogram," Appl. Opt. 39(23), 4058–4069 (2000).
Y. S. Cheng, Y. T. Su, and C. H. Chen, "360-degree viewable image-plane disk-type multiplex holography by one-step recording," Opt. Express 18(13), 14012–14023 (2010).
Y. S. Cheng, C. H. Chen, and Y. C. Hsieh, "Reflection disk-type multiplex holography using two-step recording," Jpn. J. Appl. Phys. 47(9), 7173–7181 (2008).
http://www.slavich.com/pfg03c.htm
Berry, D. H.
Chang, R. C.
Chen, C. H.
Cheng, Y. S.
DeBitetto, D. J.
Fusek, R. L.
Honda, T.
Hsieh, Y. C.
Huff, L.
King, M. C.
Lai, C. M.
Leith, E. N.
Murillo-Mora, L. M.
Noll, A. M.
Okada, K.
Ose, T.
Su, W. H.
Su, Y. T.
Tsujiuchi, J.
Voulgaris, P.
Yamaji, Y.
Yoshii, S.
Jpn. J. Appl. Phys. (1)
Opt. Commun. (1)
Fig. 1 Optical system for recording of image-plane disk-type multiplex hologram.
Fig. 2 Viewing geometry for virtual image generated from disk-type hologram.
Fig. 3 The relationship between the laboratory coordinate system Xo-Yo-Zo and the object coordinate system X-Y-Z.
Fig. 4 Object point in the CCD coordinate system Xc-Yc-Zc and its image on the detector plane Xd-Yd.
Fig. 5 Optical system shows the object point on the LCD is imaged onto the holographic film and the object wave is further focused at point Pe. A coherent reference wave is introduced from the point Pc on the axis of rotation of the recording film.
Fig. 6 Object point Pf in the film coordinate system Xf-Yf appears to be at Pv(Xv, Yv) in the observation coordinate system Xv-Yv after coordinate transformation with displacement A and rotation angle θv.
Fig. 7 Observed wavelength bandwidth and number of individual hologram for the corners of the cube image at the designated viewing distance but at different observation angles: (a) 42.5° (b) 45° (c) 47.5° (d) 50° (e) 52.5° (f) 55°.
Fig. 8 (a) Location and spot size of horizontal focal spot as a function of wavelength; (b) Location and spot size of vertical focal spot as a function of wavelength.
Fig. 9 Observed wavelength bandwidth and number of individual hologram for the corners of the cube image at different distances along the designated viewing direction: (a) 40 cm (b) 60 cm (c) 90 cm (d) 130 cm (e) 180 cm.
Fig. 10 (a) Width-to-height ratio of the reconstructed image as a function of the viewing distance along the designated viewing direction. (b) Width-to-height ratio of the reconstructed image as a function of the observation angle at the designated viewing distance.
Fig. 11 Shortest distance Drl between lines of sight as a function of the dimension of the object.
Fig. 12 Typical images observed by both eyes of the observer at the designated viewing distance but with different azimuthal angles.
Fig. 13 Images observed at different viewing distances along the designated viewing angle of 45°.
Fig. 14 Images observed at the designated viewing distance (60cm) but at different viewing angles with respect to the horizontal plane.
Equations on this page are rendered with MathJax. Learn more.
(1) [ x c y c z c ]=[ 1 0 0 0 cosσ −sinσ 0 sinσ cosσ ][ x o y o z o ] .
(2) ( cos α o ,cos β o ,cos γ o )= ( − x f , − d fe sin θ 1 − y f , d fe cos θ 1 ) x f 2 + ( d fe sin θ 1 + y f ) 2 + ( d fe cos θ 1 ) 2 .
(3) ( cos α c ,cos β c ,cos γ c )= ( x f , y f −A, D c ) x f 2 + ( y f −A ) 2 + D c 2 .
(4a) x v = x f 2 +( A− y f 2 ) sin( θ v + tan −1 ( x f A− y f ) ) ,
(4b) y v = x f 2 +( A− y f 2 ) cos( θ v + tan −1 ( x f A− y f ) ) .
(5) [ cos α v cos β v cos γ v ]=[ cos θ v sin θ v 0 −sin θ v cos θ v 0 0 0 1 ][ cosα cosβ cosγ ] .
(6) ( cos α r , cos β r , cos γ r )= ( x v , y v , D c ) x v 2 + y v 2 + D c 2 .
(7a) cos α i = cos α r + λ r λ c cos α o − λ r λ c cos α c ,
(7b) cos β i =cos β r + λ r λ c cos β o − λ r λ c cos β c .


Jarrod Sansom 2018 Heywire award winner, with Kate Washington MP.
ONE of Medowie's own is one of thirty-eight regional young Australians to be announced as the winners of the ABC's Heywire Storytelling competition.
Jarrod Sansom was selected for his story about his family, and their one hundred year plus history on the family property that is now within the Redzone, and the heartbreaking developments in recent years.
The Heywire competition has been running for over twenty years, and is a place for regional and rural young people aged 16 – 22, to share their unique stories, and to have their voices heard.
Jarrod's story impressed the judges with his raw and passionate story telling of his rich childhood on the family farm, their eventual sale of the property, and now the news that their much loved family home is, and has been for some decades, within the Redzone affected by fire fighting chemicals from the Williamtown RAAF base.
Jarrod's family has had a string of tragedies related to Cancer, and his story speaks of the concern that this has given the family now that the stories from the Redzone are all coming to light.
One particular passage of Jarrod's story brings forth a rush of emotion, where it tells of the loss of his Grandfather and three of Grandfather's siblings to the same type of stomach Cancer.
Jarrod's story is raw, and an important one that needs to be heard as the residents of Williamtown continue their own battle to be heard by the Government.
In February, the winners will attend the Heywire Regional Youth Summit in Canberra.
During the week-long summit, the winners will meet with Members of Parliament and community leaders, to develop ideas to strengthen their communities.
"I'm only one person, but if we all speak out, we can make change happen," he said.
Our MP Kate Washington is looking forward to introducing Jarrod to some Redzone residents to hear their stories.


A collection of writings, appearing for the first time in English, pertaining to the spirituality of the twelfth-century Norbertines (a.k.a. Order of Premonstratensians, the religious order founded by St. Norbert of Xanten).
Explores the extensive landscape of angels in medieval Christian devotion and retrieves a very rich vein in the Christian spiritual tradition.
Here is an anthology of sermons, homilies and poems written by Anglo-Saxons during the later part of their age (c. 660-1066).
Here is an anthology of sermons, homilies, and poems written by Anglo-Saxons during the later part of their age (c. 660-1066).
This volume contains the complete works of Elisabeth of Sch_nau (1129-65), a Benedictine nun and visionary whose prophetic message brought consolation to the people of her day and a call for firmness of faith and the moral life.
Here are selected seminal writings of Jean Gerson (1363-1429), chancellor of the University of Paris, academic, humanist, Christian teacher and reformer, and one of the greatest theologians and mystical writers of the middle ages.


Easily accessible from Mandalay are the remnants of four ancient cities.
Inwa, previously known as Ava, was the capital of Burma for the best part of five centuries.
Many of the sites have been destroyed or fallen into disrepair but it's still possible to visit the ruins of Nanmyin, the ancient palace, and the Maha Aungmye Bonzan monastery, built in 1818 before the major conflicts of the 19th century.
Sagaing, set in peaceful and picturesque hills, is widely regarded as the religious centre of Burma and is home to more than 3,000 monks, 100 meditation centres and several stunning pagodas.
Superlatives abound in relation to the remaining two cities; Mingun, best reached via the Irrawaddy River, is home to the world's largest intact bell, while Amarapura boasts the world's longest wooden bridge. Spanning more than a kilometre, U Bein Bridge was built in 1782 using giant teak beams that still hold firm today.


Daniel Goleman (born March 7, 1946) is an author and science journalist. For twelve years, he wrote for The New York Times, reporting on the brain and behavioral sciences. His 1995 book Emotional Intelligence was on The New York Times Best Seller list for a year-and-a-half, a best-seller in many countries, and is in print worldwide in 40 languages. Apart from his books on emotional intelligence, Goleman has written books on topics including self-deception, creativity, transparency, meditation, social and emotional learning, ecoliteracy and the ecological crisis, and the Dalai Lama's vision for the future.
Daniel Goleman grew up in a Jewish household in Stockton, California, the son of Fay Goleman (née Weinberg; 1910–2010), professor of sociology at the University of the Pacific, and Irving Goleman (1898–1961), humanities professor at the Stockton College (now San Joaquin Delta College). His mother's brother was nuclear physicist Alvin M. Weinberg.
Goleman studied in India using a pre-doctoral fellowship from Harvard and a post-doctoral grant from the Social Science Research Council. While in India, he spent time with spiritual teacher Neem Karoli Baba, who was also the guru to Ram Dass, Krishna Das and Larry Brilliant. He wrote his first book based on travel in India and Sri Lanka.
Goleman then returned as a visiting lecturer to Harvard, where during the 1970s his course on the psychology of consciousness was popular. David McClelland, his mentor at Harvard, recommended him for a job at Psychology Today, from which he was recruited by The New York Times in 1984.
Goleman co-founded the Collaborative for Academic, Social, and Emotional Learning at Yale University's Child Studies Center, which then moved to the University of Illinois at Chicago. Currently he co-directs the Consortium for Research on Emotional Intelligence in Organizations at Rutgers University. He sits on the board of the Mind & Life Institute.
Goleman authored the internationally best-selling book Emotional Intelligence (1995, Bantam Books), which spent more than one-and-a-half years on The New York Times Best Seller list. In "Working with Emotional Intelligence" (1998, Bantam Books), Goleman developed the argument that non-cognitive skills can matter as much as IQ for workplace success, and made a similar argument for leadership effectiveness in Primal Leadership (2001, Harvard Business School Press). Goleman's most recent best-seller is Focus: The Hidden Driver of Excellence (Harper, 2013).
In his first book, The Varieties of Meditative Experience (1977) (republished in 1988 as The Meditative Mind), Goleman describes almost a dozen different meditation systems. He wrote that "the need for the meditator to retrain his attention, whether through concentration or mindfulness, is the single invariant ingredient in the recipe for altering consciousness of every meditation system".
^ "Goleman was Pacific professor, women's advocate". The Record. Retrieved September 13, 2015.
^ "Krishna Das : Songwriter Interviews". www.songfacts.com. Retrieved April 19, 2018.
^ a b "Bio". Daniel Goleman. Retrieved July 12, 2012.
^ Daniel Goleman, The Varieties of Meditative Experience. New York: Tarcher. ISBN 978-0-87477-833-5. p. 107.
Wikimedia Commons has media related to Daniel Goleman.


text:
Q: Programming Contest Question: Counting Polyominos Please see my own answer, I think I did it!

Hi,
An example question for a programming contest was to write a program that finds out how much polyominos are possible with a given number of stones.
So for two stones (n = 2) there is only one polyominos:
XX

You might think this is a second solution:
X
X

But it isn't. The polyominos are not unique if you can rotate them.
So, for 4 stones (n = 4), there are 7 solutions:
X
X   XX   X    X     X   X
X   X    XX   X    XX   XX   XX
X   X    X    XX   X     X   XX

The application has to be able to find the solution for 1 <= n <=10
PS: Using the list of polyominos on Wikipedia isn't allowed ;)
EDIT: Of course the question is: How to do this in Java, C/C++, C#

I started this project in Java. But then I had to admit I didn't know how to build polyominos using an efficient algorithm.
This is what I had so far:
import java.util.ArrayList;
import java.util.List;

public class Main
{

    private int countPolyminos(int n)
    {
        hashes.clear();
        count = 0;
        boolean[][] matrix = new boolean[n][n];
        createPolyominos(matrix, n);
        return count;
    }

    private List<Integer> hashes = new ArrayList<Integer>();
    private int count;

    private void createPolyominos(boolean[][] matrix, int n)
    {
        if (n == 0)
        {
            boolean[][] cropped = cropMatrix(matrix);
            int hash = hashMatrixOrientationIndependent(matrix);
            if (!hashes.contains(hash))
            {
                count++;
                hashes.add(hash);
            }
            return;
        }
    // Here is the real trouble!!
    // Then here something like; createPolyominos(matrix, n-1);
    // But, we need to keep in mind that the polyominos can have ramifications
    }

    public boolean[][] copy(boolean[][] matrix)
    {
        boolean[][] b = new boolean[matrix.length][matrix[0].length];
        for (int i = 0; i < matrix.length; ++i)
        {
            System.arraycopy(matrix[i], 0, b, 0, matrix[i].length);
        }
        return b;
    }

    public boolean[][] cropMatrix(boolean[][] matrix)
    {
        int l = 0, t = 0, r = 0, b = 0;
        // Left
        left: for (int x = 0; x < matrix.length; ++x)
        {
            for (int y = 0; y < matrix[x].length; ++y)
            {
                if (matrix[x][y])
                {
                    break left;
                }
            }
            l++;
        }
        // Right
        right: for (int x = matrix.length - 1; x >= 0; --x)
        {
            for (int y = 0; y < matrix[x].length; ++y)
            {
                if (matrix[x][y])
                {
                    break right;
                }
            }
            r++;
        }
        // Top
        top: for (int y = 0; y < matrix[0].length; ++y)
        {
            for (int x = 0; x < matrix.length; ++x)
            {
                if (matrix[x][y])
                {
                    break top;
                }
            }
            t++;
        }
        // Bottom
        bottom: for (int y = matrix[0].length; y >= 0; --y)
        {
            for (int x = 0; x < matrix.length; ++x)
            {
                if (matrix[x][y])
                {
                    break bottom;
                }
            }
            b++;
        }

        // Perform the real crop
        boolean[][] cropped = new boolean[matrix.length - l - r][matrix[0].length - t - b];
        for (int x = l; x < matrix.length - r; ++x)
        {
            System.arraycopy(matrix[x - l], t, cropped, 0, matrix[x].length - t - b);
        }
        return cropped;
    }

    public int hashMatrix(boolean[][] matrix)
    {
        int hash = 0;
        for (int x = 0; x < matrix.length; ++x)
        {
            for (int y = 0; y < matrix[x].length; ++y)
            {
                hash += matrix[x][y] ? (((x + 7) << 4) * ((y + 3) << 6) * 31) : ((((x+5) << 9) * (((y + x) + 18) << 7) * 53));
            }
        }
        return hash;
    }

    public int hashMatrixOrientationIndependent(boolean[][] matrix)
    {
        int hash = 0;
        hash += hashMatrix(matrix);
        for (int i = 0; i < 3; ++i)
        {
            matrix = rotateMatrixLeft(matrix);
            hash += hashMatrix(matrix);
        }
        return hash;
    }

    public boolean[][] rotateMatrixRight(boolean[][] matrix)
    {
        /* W and H are already swapped */
        int w = matrix.length;
        int h = matrix[0].length;
        boolean[][] ret = new boolean[h][w];
        for (int i = 0; i < h; ++i)
        {
            for (int j = 0; j < w; ++j)
            {
                ret[i][j] = matrix[w - j - 1][i];
            }
        }
        return ret;
    }

    public boolean[][] rotateMatrixLeft(boolean[][] matrix)
    {
        /* W and H are already swapped */
        int w = matrix.length;
        int h = matrix[0].length;
        boolean[][] ret = new boolean[h][w];
        for (int i = 0; i < h; ++i)
        {
            for (int j = 0; j < w; ++j)
            {
                ret[i][j] = matrix[j][h - i - 1];
            }
        }
        return ret;
    }

}

A: There are only 4,461 polynominoes of size 10, so we can just enumerate them all.
Start with a single stone. To expand it by one stone, try add the new stone in at all empty cells that neighbour an existing stone. Do this recursively until reaching the desired size.
To avoid duplicates, keep a hash table of all polynominoes of each size we've already enumerated. When we put together a new polynomino, we check that its not already in the hash table. We also need to check its 3 rotations (and possibly its mirror image). While duplicate checking at the final size is the only strictly necessary check, checking at each step prunes recursive branches that will yield a new polynomino.
Here's some pseudo-code:
polynomino = array of n hashtables
function find_polynominoes(n, base):
  if base.size == n:
    return
  for stone in base:
    for dx, dy in [(-1, 0), (1, 0), (0, -1), (0, 1)]:
      new_stone.x = stone.x + dx
      new_stone.y = stone.y + dy
      if new_stone not in base:
        new_polynomino = base + new_stone
        is_new = true
        for rotation in [0, 90, 180, 270]:
          if new_polynomino.rotate(rotation) in polynomino[new_polynomino.size]:
            is_new = false
            break
        if is_new:
          polynomino[new_polynomino.size].add(new_polynomino)

A: The most naive solution is to start with a single X, and for each iteration, build the list of unique possible next-states. From that list, build the list of unique states by adding another X. Continue this until the iteration you desire.
I'm not sure if this runs in reasonable time for N=10, however. It might, depending on your requirements.

A: Just solved this as well in java. Since all here appear to have performance issues. I give you mine as well.
Board reprsentation:
2 arrays of integers. 1 for the rows and 1 for the columns.

*

*Rotation: column[i]=row[size-(i+1)], row[i] = reverse(column[i]) where reverse is the bits reversed according to the size (for size = 4 and first 2 bits are taken: rev(1100) = 0011)

*Shifting block: row[i-1] = row[i], col[i]<<=1

*Check if bit is set: (row[r] & (1<<c)) > 0

*Board uniqueness: The board is unique when the array row is unique.

*Board hash: Hashcode of the array row

*..

So this makes all operations fast. Many of them would have been O(size²) in the 2D array representation instead of now O(size).
Algorithm:

*

*Start with the block of size 1

*For each size start from the blocks with 1 stone less.

*If it's possible to add the stone. Check if it was already added to the set.

*If it's not yet added. Add it to the solution of this size.

*

*add the block to the set and all its rotations. (3 rotations, 4 in total)

*Important, after each rotation shift the block as left/top as possible.

*+Special cases: do the same logic for the next 2 cases

*

*shift block one to the right and add stone in first column

*shift block one to the bottom and add stone in first row

Performance:

*

*N=5 , time:    3ms

*N=10, time:   58ms

*N=11, time:  166ms

*N=12, time:  538ms

*N=13, time: 2893ms

*N=14, time:17266ms

*N=15, NA (out of heapspace)

Code:
https://github.com/Samjayyy/logicpuzzles/tree/master/polyominos

A: I think I did it!
EDIT: I'm using the SHA-256 algorithm to hash them, now it works correct.
Here are the results:
numberOfStones -> numberOfPolyominos
            1  -> 1
            2  -> 1
            3  -> 2
            4  -> 7
            5  -> 18
            6  -> 60
            7  -> 196
            8  -> 704
            9  -> 2500
            10 -> terminated

Here is the code (Java):
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

/* VPW Template */

public class Main
{

    /**
     * @param args
     */
    public static void main(String[] args) throws IOException
    {
        new Main().start();
    }

public void start() throws IOException
{

    /* Read the stuff */
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String[] input = new String[Integer.parseInt(br.readLine())];
    for (int i = 0; i < input.length; ++i)
    {
        input[i] = br.readLine();
    }
    /* Process each line */
    for (int i = 0; i < input.length; ++i)
    {
        processLine(input[i]);
    }
}

public void processLine(String line)
{
    int n = Integer.parseInt(line);
    System.out.println(countPolyminos(n));
}

private int countPolyminos(int n)
{
    hashes.clear();
    count = 0;
    boolean[][] matrix = new boolean[n][n];
    matrix[n / 2][n / 2] = true;
    createPolyominos(matrix, n - 1);
    return count;
}

private List<BigInteger> hashes = new ArrayList<BigInteger>();
private int count;

private void createPolyominos(boolean[][] matrix, int n)
{
    if (n == 0)
    {
        boolean[][] cropped = cropMatrix(matrix);
        BigInteger hash = hashMatrixOrientationIndependent(cropped);
        if (!hashes.contains(hash))
        {
            // System.out.println(count + " Found!");
            // printMatrix(cropped);
            // System.out.println();
            count++;
            hashes.add(hash);
        }
        return;
    }
    for (int x = 0; x < matrix.length; ++x)
    {
        for (int y = 0; y < matrix[x].length; ++y)
        {
            if (matrix[x][y])
            {
                if (x > 0 && !matrix[x - 1][y])
                {
                    boolean[][] clone = copy(matrix);
                    clone[x - 1][y] = true;
                    createPolyominos(clone, n - 1);
                }
                if (x < matrix.length - 1 && !matrix[x + 1][y])
                {
                    boolean[][] clone = copy(matrix);
                    clone[x + 1][y] = true;
                    createPolyominos(clone, n - 1);
                }
                if (y > 0 && !matrix[x][y - 1])
                {
                    boolean[][] clone = copy(matrix);
                    clone[x][y - 1] = true;
                    createPolyominos(clone, n - 1);
                }
                if (y < matrix[x].length - 1 && !matrix[x][y + 1])
                {
                    boolean[][] clone = copy(matrix);
                    clone[x][y + 1] = true;
                    createPolyominos(clone, n - 1);
                }
            }
        }
    }
}

public boolean[][] copy(boolean[][] matrix)
{
    boolean[][] b = new boolean[matrix.length][matrix[0].length];
    for (int i = 0; i < matrix.length; ++i)
    {
        System.arraycopy(matrix[i], 0, b[i], 0, matrix[i].length);
    }
    return b;
}

public void printMatrix(boolean[][] matrix)
{
    for (int y = 0; y < matrix.length; ++y)
    {
        for (int x = 0; x < matrix[y].length; ++x)
        {
            System.out.print((matrix[y][x] ? 'X' : ' '));
        }
        System.out.println();
    }
}

public boolean[][] cropMatrix(boolean[][] matrix)
{
    int l = 0, t = 0, r = 0, b = 0;
    // Left
    left: for (int x = 0; x < matrix.length; ++x)
    {
        for (int y = 0; y < matrix[x].length; ++y)
        {
            if (matrix[x][y])
            {
                break left;
            }
        }
        l++;
    }
    // Right
    right: for (int x = matrix.length - 1; x >= 0; --x)
    {
        for (int y = 0; y < matrix[x].length; ++y)
        {
            if (matrix[x][y])
            {
                break right;
            }
        }
        r++;
    }
    // Top
    top: for (int y = 0; y < matrix[0].length; ++y)
    {
        for (int x = 0; x < matrix.length; ++x)
        {
            if (matrix[x][y])
            {
                break top;
            }
        }
        t++;
    }
    // Bottom
    bottom: for (int y = matrix[0].length - 1; y >= 0; --y)
    {
        for (int x = 0; x < matrix.length; ++x)
        {
            if (matrix[x][y])
            {
                break bottom;
            }
        }
        b++;
    }

    // Perform the real crop
    boolean[][] cropped = new boolean[matrix.length - l - r][matrix[0].length - t - b];
    for (int x = l; x < matrix.length - r; ++x)
    {
        System.arraycopy(matrix[x], t, cropped[x - l], 0, matrix[x].length - t - b);
    }
    return cropped;
}

public BigInteger hashMatrix(boolean[][] matrix)
{
    try
    {
        MessageDigest md = MessageDigest.getInstance("SHA-256");
        md.update((byte) matrix.length);
        md.update((byte) matrix[0].length);
        for (int x = 0; x < matrix.length; ++x)
        {
            for (int y = 0; y < matrix[x].length; ++y)
            {
                if (matrix[x][y])
                {
                    md.update((byte) x);
                } else
                {
                    md.update((byte) y);
                }
            }
        }
        return new BigInteger(1, md.digest());
    } catch (NoSuchAlgorithmException e)
    {
        System.exit(1);
        return null;
    }
}

public BigInteger hashMatrixOrientationIndependent(boolean[][] matrix)
{
    BigInteger hash = hashMatrix(matrix);
    for (int i = 0; i < 3; ++i)
    {
        matrix = rotateMatrixLeft(matrix);
        hash = hash.add(hashMatrix(matrix));
    }
    return hash;
}

public boolean[][] rotateMatrixRight(boolean[][] matrix)
{
    /* W and H are already swapped */
    int w = matrix.length;
    int h = matrix[0].length;
    boolean[][] ret = new boolean[h][w];
    for (int i = 0; i < h; ++i)
    {
        for (int j = 0; j < w; ++j)
        {
            ret[i][j] = matrix[w - j - 1][i];
        }
    }
    return ret;
}

public boolean[][] rotateMatrixLeft(boolean[][] matrix)
{
    /* W and H are already swapped */
    int w = matrix.length;
    int h = matrix[0].length;
    boolean[][] ret = new boolean[h][w];
    for (int i = 0; i < h; ++i)
    {
        for (int j = 0; j < w; ++j)
        {
            ret[i][j] = matrix[j][h - i - 1];
        }
    }
    return ret;
}

A: Here's my solution in Java to the same problem. I can confirm Martijn's numbers (see below). I've also added in the rough time it takes to compute the results (mid-2012 Macbook Retina Core i7). I suppose substantial performance improvements could be achieved via parallelization.
numberOfStones -> numberOfPolyominos
        1  -> 1
        2  -> 1
        3  -> 2
        4  -> 7
        5  -> 18
        6  -> 60
        7  -> 196
        8  -> 704      (3 seconds)
        9  -> 2500     (46 seconds)
        10 -> 9189     (~14 minutes)

.
    /*
 * This class is a solution to the Tetris unique shapes problem.
 * That is, the game of Tetris has 7 unique shapes. These 7 shapes
 * are all the possible unique combinations of any 4 adjoining blocks
 * (i.e. ignoring rotations).
 *
 * How many unique shapes are possible with, say, 7 or n blocks?
 *
 * The solution uses recursive back-tracking to construct all the possible
 * shapes. It uses a HashMap to store unique shapes and to ignore rotations.
 * It also uses a temporary HashMap so that the program does not needlessly
 * waste time checking the same path multiple times.
 *
 * Even so, this is an exponential run-time solution, with n=10 taking a few
 * minutes to complete.
 */
package com.glugabytes.gbjutils;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class TetrisBlocks {

    private HashMap uShapes;
    private HashMap tempShapes;

    /* Get a map of unique shapes for n squares. The keys are string-representations
     * of each shape, and values are corresponding boolean[][] arrays.
     * @param squares - number of blocks to use for shapes, e.g. n=4 has 7 unique shapes
     */
    public Map getUniqueShapes(int squares) {
        uShapes = new HashMap();
        tempShapes = new HashMap();

        boolean[][] data = new boolean[squares*2+1][squares*2+1];
        data[squares][squares] = true;
        make(squares, data, 1);             //start the process with a single square in the center of a boolean[][] matrix

        return uShapes;
    }

    /* Recursivelly keep adding blocks to the data array until number of blocks(squares) = required size (e.g. n=4)
     * Make sure to eliminate rotations. Also make sure not to enter infinite backtracking loops, and also not
     * needlessly recompute the same path multiple times.
     */
    private void make(int squares, boolean[][] data, int size) {
        if(size == squares) {   //used the required number of squares
            //get a trimmed version of the array
            boolean[][] trimmed = trimArray(data);
            if(!isRotation(trimmed)) {  //if a unique piece, add it to unique map
                uShapes.put(arrayToString(trimmed), trimmed);
            }

        } else {
            //go through the grid 1 element at a time and add a block next to an existing block
            //do this for all possible combinations
            for(int iX = 0; iX < data.length; iX++) {
                for(int iY = 0; iY < data.length; iY++) {
                    if(data[iX][iY] == true) {      //only add a block next to an existing block
                        if(data[iX+1][iY] != true) {    //if no existing block to the right, add one and recuse
                            data[iX+1][iY] = true;
                            if(!isTempRotation(data)) {         //only recurse if we haven't already been on this path before
                                make(squares, data, size+1);
                                tempShapes.put(arrayToString(data), data);  //store this path so we don't repeat it later
                            }
                            data[iX+1][iY] = false;
                        }

                        if(data[iX-1][iY] != true) {    //repeat by adding a block on the left
                            data[iX-1][iY] = true;
                            if(!isTempRotation(data)) {
                                make(squares, data, size+1);
                                tempShapes.put(arrayToString(data), data);
                            }
                            data[iX-1][iY] = false;
                        }

                        if(data[iX][iY+1] != true) {   //repeat by adding a block down
                            data[iX][iY+1] = true;
                            if(!isTempRotation(data)) {
                                make(squares, data, size+1);
                                tempShapes.put(arrayToString(data), data);
                            }
                            data[iX][iY+1] = false;
                        }

                        if(data[iX][iY-1] != true) {   //repeat by adding a block up
                            data[iX][iY-1] = true;
                            if(!isTempRotation(data)) {
                                make(squares, data, size+1);
                                tempShapes.put(arrayToString(data), data);
                            }
                            data[iX][iY-1] = false;
                        }
                    }
                }
            }
        }
    }

    /**
     * This function basically removes all rows and columns that have no 'true' flags,
     * leaving only the portion of the array that contains useful data.
     *
     * @param data
     * @return
     */
    private boolean[][] trimArray(boolean[][] data) {
        int maxX = 0;
        int maxY = 0;
        int firstX = data.length;
        int firstY = data.length;

        for(int iX = 0; iX < data.length; iX++) {
            for (int iY = 0; iY < data.length; iY++) {
                if(data[iX][iY]) {
                    if(iY < firstY) firstY = iY;
                    if(iY > maxY) maxY = iY;
                }
            }
        }

        for(int iY = 0; iY < data.length; iY++) {
            for (int iX = 0; iX < data.length; iX++) {
                if(data[iX][iY]) {
                    if(iX < firstX) firstX = iX;
                    if(iX > maxX) maxX = iX;
                }
            }
        }

        boolean[][] trimmed = new boolean[maxX-firstX+1][maxY-firstY+1];
            for(int iX = firstX; iX <= maxX; iX++) {
                for(int iY = firstY; iY <= maxY; iY++) {
                    trimmed[iX-firstX][iY-firstY] = data[iX][iY];
                }
            }

        return trimmed;
    }

    /**
     * Return a string representation of the 2D array.
     *
     * @param data
     * @return
     */
    private String arrayToString(boolean[][] data) {
        StringBuilder sb = new StringBuilder();
        for(int iX = 0; iX < data.length; iX++) {
            for(int iY = 0; iY < data[0].length; iY++) {
                sb.append(data[iX][iY] ? '#' : ' ');
            }
            sb.append('\n');
        }

        return sb.toString();
    }

    /**
     * Rotate an array clockwise by 90 degrees.
     * @param data
     * @return
     */
    public boolean[][] rotate90(boolean[][] data) {
        boolean[][] rotated = new boolean[data[0].length][data.length];

        for(int iX = 0; iX < data.length; iX++) {
            for(int iY = 0; iY < data[0].length; iY++) {
                rotated[iY][iX] = data[data.length - iX - 1][iY];
            }
        }

        return rotated;
    }

    /**
     * Checks to see if two 2d boolean arrays are the same
     * @param a
     * @param b
     * @return
     */
    public boolean equal(boolean[][] a, boolean[][] b) {
        if(a.length != b.length || a[0].length != b[0].length) {
            return false;
        } else {
            for(int iX = 0; iX < a.length; iX++) {
                for(int iY = 0; iY < a[0].length; iY++) {
                    if(a[iX][iY] != b[iX][iY]) {
                        return false;
                    }
                }
            }
        }

        return true;
    }

    public boolean isRotation(boolean[][] data) {
        //check to see if it's a rotation of a shape that we already have
        data = rotate90(data);                      //+90*
        String str = arrayToString(data);
        if(!uShapes.containsKey(str)) {
            data = rotate90(data);                  //180*
            str = arrayToString(data);
            if(!uShapes.containsKey(str)) {
                data = rotate90(data);              //270*
                str = arrayToString(data);
                if(!uShapes.containsKey(str)) {
                    return false;
                }
            }
        }
        return true;
    }

    public boolean isTempRotation(boolean[][] data) {
        //check to see if it's a rotation of a shape that we already have
        data = rotate90(data);                      //+90*
        String str = arrayToString(data);
        if(!tempShapes.containsKey(str)) {
            data = rotate90(data);                  //180*
            str = arrayToString(data);
            if(!tempShapes.containsKey(str)) {
                data = rotate90(data);              //270*
                str = arrayToString(data);
                if(!tempShapes.containsKey(str)) {
                    return false;
                }
            }
        }
        return true;
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        TetrisBlocks tetris = new TetrisBlocks();
        long start = System.currentTimeMillis();
        Map shapes = tetris.getUniqueShapes(8);
        long end = System.currentTimeMillis();

        Iterator it = shapes.keySet().iterator();
        while(it.hasNext()) {
            String shape = (String)it.next();
            System.out.println(shape);
        }

        System.out.println("Unique Shapes: " + shapes.size());
        System.out.println("Time: " + (end-start));
    }
}

A: Here's some python that computes the answer.  Seems to agree with Wikipedia.  It isn't terribly fast because it uses lots of array searches instead of hash tables, but it still takes only a minute or so to complete.
#!/usr/bin/python

# compute the canonical representation of polyomino p.
# (minimum x and y coordinate is zero, sorted)
def canonical(p):
  mx = min(map(lambda v: v[0], p))
  my = min(map(lambda v: v[1], p))
  return sorted(map(lambda v: (v[0]-mx, v[1]-my), p))

# rotate p 90 degrees
def rotate(p):
  return canonical(map(lambda v: (v[1], -v[0]), p))

# add one tile to p
def expand(p):
  result = []
  for (x,y) in p:
    for (dx,dy) in ((-1,0),(1,0),(0,-1),(0,1)):
      if p.count((x+dx,y+dy)) == 0:
        result.append(canonical(p + [(x+dx,y+dy)]))
  return result

polyominos = [[(0,0)]]

for i in xrange(1,10):
  new_polyominos = []
  for p in polyominos:
    for q in expand(p):
      dup = 0
      for r in xrange(4):
        if new_polyominos.count(q) != 0:
          dup = 1
          break
        q = rotate(q)
      if not dup: new_polyominos.append(q)
  polyominos = new_polyominos
  print i+1, len(polyominos)

A: Here is my full Python solution inspired by @marcog's answer. It prints the number of polyominos of sizes 2..10 in about 2s on my laptop.
The algorithm is straightforward:

*

*Size 1: start with one square

*Size n + 1: take all pieces of size n and try adding a single square to all possible adjacent positions. This way you find all possible new pieces of size n + 1. Skip duplicates.

The main speedup came from hashing pieces to quickly check if we've already seen a piece.
import itertools
from collections import defaultdict

n = 10
print("Number of Tetris pieces up to size", n)

# Times:
# n is number of blocks
# - Python O(exp(n)^2): 10 blocks 2.5m
# - Python O(exp(n)): 10 blocks 2.5s, 11 blocks 10.9s, 12 block 33s, 13 blocks 141s (800MB memory)

smallest_piece = [(0, 0)]  # We represent a piece as a list of block positions
pieces_of_size = {
  1: [smallest_piece],
}

# Returns a list of all possible pieces made by adding one block to given piece
def possible_expansions(piece):
    # No flatMap in Python 2/3:
    # https://stackoverflow.com/questions/21418764/flatmap-or-bind-in-python-3
    positions = set(itertools.chain.from_iterable(
         [(x - 1, y), (x + 1, y), (x, y - 1), (x, y + 1)] for (x, y) in piece
    ))
    # Time complexity O(n^2) can be improved
    # For each valid position, append to piece
    expansions = []
    for p in positions:
        if not p in piece:
            expansions.append(piece + [p])
    return expansions

def rotate_90_cw(piece):
    return [(y, -x) for (x, y) in piece]

def canonical(piece):
    min_x = min(x for (x, y) in piece)
    min_y = min(y for (x, y) in piece)
    res = sorted((x - min_x, y - min_y) for (x, y) in piece)
    return res

def hash_piece(piece):
    return hash(tuple(piece))

def expand_pieces(pieces):
    expanded = []
    #[
    #  332322396: [[(1,0), (0,-1)], [...]],
    #  323200700000: [[(1,0), (0,-2)]]
    #]
    # Multimap because two different pieces can happen to have the same hash
    expanded_hashes = defaultdict(list)
    for piece in pieces:
        for e in possible_expansions(piece):
            exp = canonical(e)
            is_new = True
            if exp in expanded_hashes[hash_piece(exp)]:
                is_new = False
            for rotation in range(3):
                exp = canonical(rotate_90_cw(exp))
                if exp in expanded_hashes[hash_piece(exp)]:
                    is_new = False
            if is_new:
                expanded.append(exp)
                expanded_hashes[hash_piece(exp)].append(exp)
    return expanded

for i in range(2, n + 1):
    pieces_of_size[i] = expand_pieces(pieces_of_size[i - 1])
    print("Pieces with {} blocks: {}".format(i, len(pieces_of_size[i])))

redpajama_set_name: RedPajamaStackExchange


text:
All New X-Men TP VOL 05 One Down
Quantity 12 add to cart
(W) Brian Michael Bendis (A) David Marquez & Various (CA) Stuart Immonen. Infinite pasts* infinite futures...infinite loss! The Beast is tortured by his decision to bring the original X-Men into the present* but can he repair the damage he's done while the future Brotherhood of Evil Mutants is still gunning for the time-tossed teens? The young X-Men will need to rally to save themselves* but Jean Grey is...different. The Shi'ar trial has changed her. What does this mean for her future* for the past of the woman she's meant to become* and for the rest of the X-Men? Timelines collide when the future Brotherhood exacts its final judgment on the All-New X-Men! Collecting ALL-NEW X-MEN #25-30. Rated T


text:
Q: Can it be determined if window.resizeTo will work? Inside the Javascript console, if I execute:
m = window.open(location.origin);
m.resizeTo(400, 400);

The window will resize, but if I just execute:
window.resizeTo(400, 400);

then nothing happens. I understand the reason for this behavior. How can I detect situations where window.resizeTo will do nothing?

A: Approach 1:
You can use the window.opener property.  If it's null, then you did not open that window and thus cannot resize it.
window.parent is intended more for iframes and the like.
Such as:
if (m.opener) {
    m.resizeTo(400, 400);
} else {
    // You did not create the window, and will not be able to resize it.
}

Approach 2:
ajp15243 brings up a good point, so one thing you could do is listen to the resize event and see if your resizeTo worked:
var resizeFired = false;
...
var triggeredResize = function() {
    resizeFired = true;

    m.removeEventListener('resize', triggeredResize);
}

m.addEventListener('resize', triggeredResize, true);

m.resizeTo(400, 400);

if (resizeFired) {
    // Your resize worked.
}

I haven't been able to fully test this, but it's one potential approach nonetheless.  For IE8 and below you may need to use attachEvent instead.  Also as @Wesabi noted, the resize may fire for other events (and may fire if the user is resizing the window as the listener as attached), so it's best to execute this is the shortest time span possible.
Approach 3:
Another approach would be to call m.resizeTo(400, 400) and then check the window size to see if the current size is equal to what you set it to:
m.resizeTo(400, 400);
if (w.outerWidth != 400 && w.outerHeight != 400) {
   // Your resize didn't work
}

A: The easiest thing to do would be checking if the window has a parent. if !window.parent, it means it's the main window which cannot be resized with JS, else you have your resize case.
Edit: Igor posted it before I found it: you want m.opener() not window.parent

A: MDN is a great JavaScript resource: https://developer.mozilla.org/en-US/docs/Web/API/Window.resizeTo

Since Firefox 7, it's no longer possible for a web site to change the default size of a  window in a browser, according to the following rules:
You can't resize a window or tab that wasn't created by window.open.
You can't resize a window or tab when it's in a window with more than one tab.

SO, you need to detect if you are a child window:
https://developer.mozilla.org/en-US/docs/Web/API/Window.opener
if (window.opener) {
  console.log('I can be resized');
} else {
    console.log('I cannot be resized');
}


Early 850 models came from the factory with door check straps that were attached with a bolt and nut setup. Volvo later updated to door check straps with a stud and nut setup. This is the updated style with the stud built in.
If your 850 still has the original check strap with the separate bolt and nut you'll also need to order quantity 2 of the correct nut (see related products tab).


text:
Palazzo Del Giglio, the Town Hall of Petralia Sottana, has an odd story. In the past the Municipal Building was the hospital of Saint Julian, a single body with a church annexed that now is disappeared. The hospital building was remodeled and expanded in 1671.
In 1862, with the transfer of Church property to the State, the Religious Administration sold the Church of St Francis to the Municipality of Petralia Sottana, to build the Paolo Agliata Avenue and the town hall.
The then Mayor Raffaele Rampolla proposed a trade to the Abbot Pucci: the parish would have regained the church of St Francis in exchange for the church of St Julian. The proposal was accepted. The City Council approved it on 21st July 1869, and the contract was approved in 1870. The Church of St Julian became property of the Town, allowing the enlargement of the Avenue under construction at that point. Over the years, the entire body of the hospital and the church was transformed in the Town Hall.
The Palace takes the name "Del Giglio" from the municipal coat of arms that represents a lily on a red background. Until the postwar period the building hosted, in the ground floor, the Conservative Club, then the post office.
Today the building is used entirely for municipal offices and services.
The palace hosts valuable works, such as a Murano chandelier in the room of the Mayor, the painting of the Dormition of the Virgin realized by Giuseppe Salerno and an impressive filigree Bourbon eagle.
For further information: Municipal Telephone Exchange
Palazzo del Giglio I
Palazzo del Giglio II
Palazzo del Giglio III


text:
Laws on sandblasting in a controlled environment
By: Darci Pauser
How to Paint an Asbestos Sheet
How to dispose of xylene & toluene in a laboratory
OSHA Precautions for Sewage Cleaning
How to Get EPA Certification
Regulations on the Disposal of Blood Contaminated Waste
sand image by eka from Fotolia.com
Sandblasting with silica-based material, such as sand, poses a potential hazard to the person performing the blasting, as well as others around the blasting area. If performed personally on private property away from others, no federal laws restrict the sandblasting act. However, sandblasting performed for commercial purposes is subject to regulation by the Federal Occupational Safety and Health Commission (OSHA). OSHA interprets and enforces laws enacted in the Occupational Safety and Health Act of 1970 in order to keep workers safe.
Prevention of Harm
The most basic OSHA regulation of the OSH Act, 29 USC 654, states that "each employer shall furnish to each of his employees employment and a place of employment which are free from recognised hazards that are causing or are likely to cause death or serious physical harm to his employees." This regulation applies to the use of sandblasting in any environment. In general, an employer must ensure that her employees do not incur harm as a result of sandblasting methods.
Airborne Substances
According to Section 1926.55 of the Code of Federal Regulations, limits exist on the amount of airborne silica admissible in the work environment. OSHA currently sets this limit at 1.0 severity. Employers may determine the severity level by calculating the permissible exposure limit divided by exposure with the OSHA Silica E-Tool. Employers must take all feasible precautions possible to decrease the silica in the air. For sandblasting, this may include the use of sandblast cabinets, rooms and vacuum and filtration systems. An industrial hygienist can measure the amount of airborne silica present in a work environment to ensure compliance with this OSHA law.
Section 1927.57 of the Code of Federal Regulations requires all employees performing abrasive blasting to wear a respirator that covers not only the mouth and nose, but also the head, neck and shoulders. This code also requires additional ventilation systems and containment chambers depending on the type and extent of abrasive blasting taking place. However, no matter how the employer controls the environment, "the concentration of respirable dust or fume in the breathing zone of the abrasive-blasting operator or any other worker shall be kept below the levels specified in 1926.55 or other pertinent sections of this part," according to Section 1927.57.
OSHA: Crystalline Silica in Construction
OSHA: 29 USC 654
OSHA: Gases, Vapors, Fumes, Dusts and Mists
OSHA: Ventilation
OSHA: Silica E-Tool
Darci Pauser began writing in 2001. Her work has been featured in publications such as the "UC Berkeley Undergraduate Journal," Indybay and the West Texas Weekly. Pauser holds a certificate in sustainable agriculture from California's Green String Institute and a Bachelor of Arts in anthropology from the University of California, Berkeley.
sand image by eka from Fotolia.com


text:
Roland Garros 2018, Men's Doubles Round 2: Rohan Bopanna & Edouard Roger-Vasselin vs Benjamin Bonzi & Gregoire Jacq, Live Match Updates
Bopanna & Roger-Vasselin def Bonzi & Jacq 6-1, 6-2 in just 48 minutes to enter Round 3
Updated: 31 May 2018 23:06 IST - Published: 31 May 2018 22:18 IST
And that wraps up our live coverage of the Roland Garros action for the day. Thanks for staying with us.
Keep following Sportskeeda for all the latest updates from the world of sports. Do join us tomorrow as we bring you more updates from the French Open 2018.
Goodnight!
Bopanna and Roger-Vasselin might have a tougher job at hand in their next round for they could face the top seeds and reigning Wimbledon champions Kubot and Melo.
Final score: Bopanna & Roger-Vasselin def Bonzi & Jacq 6-1, 6-2 in just 48 minutes to enter Round 3
That was an incredibly easy outing for the Indo-French combine! That would give them immense amounts of confidence as they progress deeper into the draw.
AND THEY CONVERT THE MATCH POINT AND GET THE WIN!
And they have a match point here!!!!
The 13th seeds are now up 30-0 on Bonzi and Jacq's serve!
Can they break and win this match?
Smooth as butter is Bopanna and Roger-Vasselin's service game!
With a breezy hold, they are now up to 5-2.
Just one more game is needed to win this match!
The 13th seeds are in a very comfortable position now, leading by a set and a break!
BREAK!!!!!!
BOPANNA AND ROGER-VASSELIN STRIKE HARD AND GET THE FIRST BREAK OF THIS SET!
The 13th seeds hold to 15 and put the pressure right back on their unseeded French opponents.
3-2 to Bopanna and Roger-Vasselin
The French pair are gaining in confidence with every shot! They hold their serve to 30, despite some stiff resistance.
It's 2-2
Bopanna and Roger-Vasselin hold their serve and they are up 2-1
It's still on serve in the second set
And the unseeded pair backs it up by holding their serve!
Much better show from the unseeded French pair in the first game of the second set.
They manage to win two points on the Bopanna and Roger-Vasselin serve, but the 13th seeds were able to ward them off in the end.
WHAT A DOMINANT SHOW BY THE 13TH SEEDS!!!!
The relentless pair of Roger-Vasselin and Bopanna hold their serve and BREAK YET AGAIN to take the first set 6-1
Bonzi and Jacq are finally on the board! They get their first service hold at 1-4
It's yet another service break, followed by a comfortable hold for the 13th seeded Indo-French pair.
They are up 4-0
They start with a service break and quickly hold their own service game to go up to 2-0
And they have established a firm control on the proceedings pretty soon.
Bopanna and Roger-Vasselin are seeded 13th and they are the favourites in this match.
Good evening! India's Rohan Bopanna and France's Edouard Roger-Vasselin are trying to seal their place in the third round of the French Open 2018 in this match against the all-French combine of Bonzi and Jacq.


text:
Levies News
Schools Celebrate with Ribbon-Cutting Events
Seattle Public Schools » Our District » Calendars and News » News » What's New » Levies News » Schools Celebrate with Ribbon-Cutting Events
Ribbon-Cutting Events Launch Four Schools
Magnolia Elementary School's event on Thursday, Aug. 29, welcomed neighbors, alumni, staff, students, and families in advance of opening as a new attendance area elementary school. The newly modernized and expanded school closed in 1984, and hasn't been used by the district since 2004. The Magnolia construction was funded by the Buildings, Technology, and Academics/Athletics IV (BTA IV) Capital Levy, approved by voters in 2016, as well as a Distressed Schools Grant from Washington state, and the state's School Construction Assistance Program. Read the story.
The ribbon-cutting at Ingraham High School, also held on Aug. 29, celebrated completion of the new classroom addition. This addition was funded by the Buildings, Technology, and Academics/Athletics IV (BTA IV) Capital Levy, approved by voters in 2016. Read the story about the construction project and ribbon-cutting event.
Queen Anne Elementary
At Queen Anne Elementary on Tuesday, Sept. 3, the excitement of students, families, teachers, and staff was evident as the school returned to their newly expanded school. Students served as greeters and ribbon-cutters, and helped with the school tours following the ceremony. The voter-approved Building Excellence IV (BEX IV) Capital Levy paid for construction at Queen Anne Elementary. Read the story about the project.
Lincoln High School's ribbon-cutting event brought alumni out in droves, including two members of the class of 1940. The oldest existing high school building in the district now houses the newest high school program. For more than a year, the Student Design Team and Staff Design Team had worked to build the foundations for the new school, allowing it to open with sports teams, a student store, and the plans in place to form a student government. School Design Team members wrapped up their preparations by cutting the ribbon to open their new school. Read the story about Lincoln's modernization project.


Stimulant laxatives were initially popular to produce curing constipation. Nowadays, the following laxatives are becoming the main talk of the smaller population center especially among dieters, who used them as extra form of weight injury supplement. Here, we should be able to recommend to you Higher weight loss laxatives, which probably you might want so that you can consider on purchasing in the order to tackle some of the weight problem. Basically, every bit of of these weight harm laxatives functions the in an identical way. What these body sculpting laxatives engage in is that upon consumption, it swells up each of our intestines, and increases these volume of your bar stools. It will then cause a new bowel to move off of and push the bar stools out.
This would afterwards result in quick weight loss.There is an mix of laxatives provided over the get around and they return in various sorts too. Some include tablets, liquids, powders, granules, chewing gum, chocolateflavored wafers and as well , amazingly even caramels! The more regular types include lubricants, stool softeners, bulkforming products and catalyst laxatives. The on the whole popular laxative substance available in which the market takes specific form of drink. These form of stimulant laxatives are very low. Slimming tea and slimmer s tea remain some out among the many natural teas that will be highly recommended.
Do try so that you choose one an is made move up of herbal products, so that the problem can help to actually ensure a healthy body! Saline stimulant laxatives contain ions such an as sulfate, phosphate and magnesium, and the cannot be digested. As such, these ions stay in usually the colon and gets water, causing that this stool to make softer. Milk of magnesia and as well Epsom salts are of the amount saline laxatives through which are available living in pharmacies. Epsom salt contains more this mineral sulfate; hence in which is a faster laxative as in contrast to the choice. Lubricant laxatives contain vitamin oil, which continues in the intestinal tract.
It coats generally stool elements. This prevents consuming from getting out of the stool, hence caused in a suitable softer a stool.Docusate is found by using the feces softeners. The situation is another wetting representative that devices in this particular penetration created by water of the bowel and who's mix by way of the barstool. Docusate takes all across a 7 day or five before thought shows overall results. This form pertaining to laxative is simply considered among the of ones safest stimulant laxatives as as compared to other people. Just like quite a few laxatives, a person's hyperosmolar stimulant laxatives results at stool conditioning. Hyperosmolar laxatives won't be able to be eaten and broken down.


The Information Systems Security Bureau (ISSB) is the central state authority responsible for technical areas of information security of the Republic of Croatia state bodies, which includes standards of information security, security accreditation of information security, managing crypto material used in the exchange of classified information, and coordination of prevention and response to computer threats to information system security.
Information Systems Security Bureau's frame of work and responsibilities are regulated by the Security and Intelligence System Act of the Republic of Croatia, the Information Security Act and the Regulation on Information Security Measures of the Republic of Croatia.
Work of the Information Systems Security Bureau is managed by the director who is appointed and resolved by the Government of the Republic of Croatia based on the proposal of the Council for Coordination of Security Intelligence Agencies.
Director of the Information Systems Security Bureau is M. Sc. Robert Žunac.
In accordance with Croatian legislation, Information Systems Security Bureau is, along with security accreditation of information systems, authorized for implementation of activities related to management of crypto material used in the exchange of classified information between the state bodies and foreign countries and organizations, for conducting researches, development and testing of technologies for classified data protection and issuing certificates for their usage.
Along with prevention and response to computer security threats, the Information Systems Security Bureau is responsible for regulation of technical areas of information system security standards throughout ordinances and their permanent adjustment to international standards and recommendations. The Information Systems Security Bureau participates in the national standardization of areas of information systems security.
Standards for technical areas of information system security are applied to all state bodies, local and regional self-government bodies, and legal person with public authorities who, within their scope of work, use classified and unclassified information.
Information systems security accreditation is conducted by the Information Systems Security Bureau in cooperation with the Office of the National Security Council, and prevention and response to computer security threats as well as creation of recommendation and standards for information systems security in cooperation with National CERT.
Led by the principle of excellence in conducting activities within its frame of work, the Information Systems Security Bureau initiated cooperation with the leading Croatian science and research institutions, with aim to inspire new forms of knowledge exchange as well as further development of its own capabilities using the best national science, innovation and educational potentials.
Finally, with continuance of its capabilities enhancement, encouragement of the effective coordination establishment, and further improvement of cooperation with national science and research institutions, the Information Systems Security Bureau is streaming towards higher level of the entire information system security in the Republic of Croatia, and creation of preconditions for development and enhancing competitiveness of Croatian economy in that area.


Specialist business property adviser, Christie & Co has sold The Croft, a residential care home situated just outside of Newton Abbot, Devon, to first time entrants to the care sector.
The property, a detached Victorian villa, was extended in 2008 and underwent a programme of improvements over recent years by the previous owner, with the home now of a high quality throughout with modern fixtures and fittings. Registered for 22 residents, The Croft comprises 19 bedrooms, a mix of single and double with the majority providing en suite facilities, set out across four floors with lift access, plus a residents' lounge and dining room. Additionally, there is on site parking and gardens to the front and rear of the property.
Occupying a picturesque location, accessible via the main road A380, the home offers a quiet setting for residents close to the rural town of Newton Abbot on the scenic River Teign.
Previous owner, Ms Cheryl Howe decided to sell The Croft in order to retire, having operated the care home for over 14 years.
The Croft has been bought by experienced businessmen, Simon Spiller and David Tait, as their first purchase in the care sector, who have promoted the existing Deputy Manager to Registered Manager in order to continue the smooth operation of the home. They comment, "We've every confidence we've acquired a home which delivers excellent care for residents with various stages of dementia. Even with many years of business experience in other sectors, entering the Care sector is certainly a challenge for us. But, we are reassured that the experienced team at The Croft is well equipped to continue the high standards established by the previous owner."
Simon Harvey, Director at Christie & Co who handled the sale, comments, "I am pleased to have worked with Cheryl and helped her with the sale of The Croft so that she could enjoy her retirement. It was a pleasure to have assisted Simon and David in acquiring their first care home and hope that it is the first of many acquisitions by two very capable new entrants. I am sure that the business will go from strength to strength.
The freehold interest of The Croft was sold off an asking price of £995,000.
South West-based Kitsons Solicitors acted on behalf of Ms Howe and Ashfords LLP assisted on behalf of Mr Spiller and Mr Tait.


text:
Home »	Musicians » Jan Harbeck
The charismatic tenor saxophonist and composer Jan Harbeck has previously released four albums in his own name on Stunt Records. He's won a Danish Music Award, as well as having received both the Bent Jædig and Ben Webster Prizes. Harbeck and his steady band of many years have long been an important presence on most of Denmark's jazz stages, also enjoying great success around Europe. Over the last decade, the band's releases have been among the absolute best-selling Danish instrumental jazz records. In addition to his own quartet, Jan Harbeck plays with orchestras including the Tivoli Big Band, Niels Jørgen Steen's Monday Night Big Band, The Orchestra, and in drummer Snorre Kirk's band.
Harbeck's expressive, outgoing playing continues in the great Swing tradition. Completely original and extremely stylish, he's a musician who digs deep and understands the importance of presence. Few others are able to blow so much soul into a jazz ballad. As Thomas Michelsen wrote in Politiken, "we once had Ben Webster to awaken the soul. Today we have Jan Harbeck!" It's actually strange that the 43-year-old tenor saxophonist didn't release a tribute to "Big Ben" before now – the legend lived in Copenhagen for a number of years, is buried there, and continues to inspire – but here it comes.
Jan Harbeck cherishes the sound. Standing in front of a band on stage or in the studio, with his eyes closed and his left pointedtoe dress shoe all the way forward, he listens to the sound of his tenor saxophone and the group's sound as a whole. "When I was young, I concentrated on what I was playing; now the music comes by itself; the sound and tone are the essence for me. It needs to be full-bodied and the feeling has to be there. Ben Webster was my first inspiration, and then Paul Gonsalves. It's the tradition I love. It's about playing from the heart. It's a sound, a language," Harbeck says.
Together, Henrik Gunde and Jan Harbeck received the prestigious Ben Webster Prize in 2018, and the repertoire for the concert at the award presentation ceremony was largely the inspiration for putting the program together on this album. There are four compositions by Webster - relatively unknown, but full of blues and swing. "Really nice tunes," says Harbeck, "it's about respecting the strong melody line and building your own story on top." There's a Strayhorn song, Johnny Come Lately, and the rest are Harbeck's own original offerings.
The two days in the big studio, without the use of sound screens or headphones, also became the scene of an unexpected surprise – something which often gives an extra kick to a recording session. In this case… two drummers. Anders Holm recorded the first day, and when Morten Ærø arrived to set up his drums for the next day, he joined in on two songs, spreading new musical colours through the studio. "It was so great to have the two drummers together – they know each other, but hadn't played together before, and the respect and enthusiasm they showed one another was so inspiring. Just check out their lovely battle on Shorty Gull – it was the first take… and the last sound is Morten, who drops his sticks… finished(!)," says Harbeck.
Eske Nørlykke's understated, steady bass figures are important to Harbeck. "He's on the beat and gives us plenty of room… no long tones that get in the way of the rest of the band's sound. No one in the world plays like Eske. And both drummers understand his ideas," the bandleader explains. Eight of the songs were completed the first day. On the second day, Zum (short for alto saxophonist Jan zum Vohrde) was a guest on the Webster/Hodges duet I'd Be There. Zum has worked with Harbeck in several big bands through the years. "The wonderful Webster ballad we play is different from the other tunes, but I think it brings a special colour and quality to the harmonies between alto and tenor. Zum is a master."
"We love the generosity in the music and I hope that the lush, atmospheric, and intimate space is transcended from the record," says Jan Harbeck.
Jan Harbeck Quartet THE SOUND THE RHYTHM Stunt Records Released on CD, LP, and online
Jan Harbeck (tenor sax), Henrik Gunde (piano), Eske Nørrelykke (bass), Anders Holm, Morten Ærø (drums) + Jan zum Vohrde (alto sax).
CD: STUCD 19022, LP: STULP 19021 Jan Harbeck Quartet, THE SOUND THE RHYTHM, Stunt Records, Sundance Music ApS.. Stunt Records CD & LP STULP 19021 STUCD 19022	Show less
Jan Harbeck Jan Harbeck Quartet Jan Harbeck Live Jive Jungle Copenhagen Tenor Sax
The Sound The Rhythm by Jakob Baekgaard
"Saxophonist Jan Harbeck must be one of the best within his style in the world today." – Jan Granlie, SaltPeanuts, Norway, 24/3 2017
"Danish saxist Jan Harbeck has put together a gorgeous set of bluesy standards, tangos and originals. Since the tracks are all unhurried—recorded live with no cuts or overdubs—the whole program slips down like a vintage port. Despite the familiarity of "Don't Let the Sun …" and "Blues In the Night," Harbeck's originals fit the rundown like silk stockings, slowly unfurling." - Michael Jackson, DownBeat Magazine, March 2015, four out of five stars "The tenor saxophone is the sound of jazz
"Danish saxist Jan Harbeck has put together a gorgeous set of bluesy standards, tangos and originals. Since the tracks are all unhurried—recorded live with no cuts or overdubs—the whole program slips down like a vintage port. Despite the familiarity of "Don't Let the Sun …" and "Blues In the Night," Harbeck's originals fit the rundown like silk stockings, slowly unfurling." - Michael Jackson, DownBeat Magazine, March 2015, four out of five stars "The tenor saxophone is the sound of jazz. The soul of the music. Once Copenhagen had Ben Webster to blow that soul to life. Now we have Jan Harbeck." – Politiken, May 2014 (largest Danish Newspaper)
Albums by Jan Harbeck
The Sound The Rhythm
Stunt Records/Sundance Music
Jan Harbeck Quartet...
Similar Jazz Musicians
Tevet Sela
Fredrik Ljungkvist
saxophone, tenor
Mike DiRubbo
saxophone, alto
David Benoit
Froy Aagre
saxophone, soprano
Noah Preminger
Maria Pia De Vito
Richard Underhill
Andy Snitzer
Hailey Niswanger
Teodross Avery
Instrument: Saxophone, tenor
Born: April 13, 1975
Help improve the Jan Harbeck page
All About Jazz musician pages are maintained by musicians, publicists and trusted members like you. Interested? Tell us why you would like to improve the Jan Harbeck musician page.
Contact Jan Harbeck


text:
Home › Find an Organization to Support › GERP: Groupe d'étude et de recherche sur les primates de Madagascar
You are here: Home › GERP: Groupe d'étude et de recherche sur les primates de Madagascar
GERP: Groupe d'étude et de recherche sur les primates de Madagascar
By Kim Reuter on January 14, 2015
GERP connects scientists in Madagascar with the international community to help build in-country capacity for lemur conservation.
Supporting lemur conservation through capacity building and collaboration
GERP connects Malagasy scientists united in saving lemurs.
GERP (Groupe d'étude et de recherche sur les primates) is an association based in Madagascar with nearly 200 members, including scientists and primatologists. Its purpose is centered on the conservation of Madagascar's lemurs, and since its inception, it has focused heavily on working with local communities in Madagascar to effect change. Established in 1994 by the Department of Biological Anthropology and Paleontology and Department of Animal Biology of the University of Antananarivo (Madagascar), its headquarters are located right on the university campus, in the center of the capital city. Notably, GERP took over management of the Maromizaha forest in 2008; a report of those activities can be read here.
What lemur species does GERP work with?
GERP broadly supports scientists and research efforts of all lemur species. The organization is best known for having played a key role in discovering three new species of lemurs:
Madame Berthe lemur (Microcebus berthae)
MacArthur's mouse lemur (Microcebus macarthurii)
Gerp's mouse lemur (Microcebus gerpi)
They also actively work in regions that protect several other lemur species, including:
Eastern woolly lemur (Avahi laniger)
Indri (Indri indri)
Diademed sifaka (Propithecus diadema)
Common brown lemur (Eulemur fulvus)
Red-bellied lemur (Eulemur rubriventer)
Eastern lesser bamboo lemur (Hapalemur griseus)
Black-and-white ruffed lemur (Varecia variegata)
GERP provides a real opportunity for Malagasy university students to connect with foreign researchers.
The association primarily focuses on the scientific study of lemurs, including the study of their geographical distribution, the implementation of conservation plans, and participation in the discovery of new species. It is also responsible for transferring animals weakened by the destruction of their habitat to protected areas and zoos. Collaboration with other actors in the protection of working lemurs on the island and various educational programs of local people is another important aspect of its work.
How is GERP protecting habitat for lemur conservation?
Since 2008, GERP has been managing the Maromizaha forest in eastern Madagascar. This 1880 hectare forest is home to important wildlife but 98% of local villagers continue to extract resources from the park. For this reason, GERP's responsibilities include patrolling the park, increasing enforcement, undertaking reforestation programming, and working to increase awareness in the region about alternative livelihoods and the value of nature.
In their role, GERP undertakes several patrols per yeas – sometimes several patrols per month – and try to raise awareness in the villages surrounding the park about the need to protect and use resources sustainably. To try and stem the intensification of forest destruction, GERP works with local and regional authorities to help enforce local laws, where enforcement is otherwise typically low.
In addition to enforcement, GERP manages a variety of other programs in and around this protected area. For example, they undertake reforestation programs in three villages; in 2014, each village nursery had the capacity to produce a minimum of 4,000 native plants. In addition, they manage lemur monitoring programs that are critical for increasing our understanding of whether threatened lemur species can still be found in these forest fragments and how they are being impacted by degradation.
Partnering with local communities
By connecting scientists in Madagascar with international research groups, GERP is building the capacity of local community associations as well as primary and higher education systems in Madagascar; this will help increase the in-country capabilities to conserve endangered lemur populations. For example, in the villages surrounding the Maromizaha forest, GERP has donated hundreds of school uniforms to the students who cannot afford them and GERP has covered the costs of teacher salaries when no funding was available to pay them. Through its ongoing programs in Maromizaha, GERP has been able to offer local primary school students a variety of science educational opportunities, including guided visits into the forest and interactive tree-planting lessons.
GERP was a key organizer of the first World Festival of Lemurs, which raised significant awareness for the plight of endangered lemur populations and engaged communities across the globe in lemur-related activities.
AEECL
GERP – donate
Donate to GERP
Donate Online with Conservation Allies
NGO registered in Madagascar
GERP – Learn More
Read the 20th anniversary report of GERP's habitat protection activities!
Website: www.gerp.mg
Facebook: www.facebook.com/madagascar.gerp
Twitter: @GERPMadagascar
Address: PB 779, Antananarivo 101, Madagascar
Email: gerp@moov.mg


In the early morning it will be sunny. Before noon partly sunny, partly cloudy weather will dominate. The evening will bring mostly cloudy weather. Morning temperatures will be around 6 °C. During the day they will reach a maximum of 19 °C. Low temperatures at night will be around 5°C. We have weak northeasterly winds.
On Monday it will be mainly cloudy, but mostly dry during the day. In the evening partly clear weather with cloudy periods will prevail. Then it will become mainly cloudy, but mostly dry. Morning temperatures will be around 5 °C. During the day they will reach a maximum of 16 °C. Low temperatures at night will be around 6°C. We have weak northeasterly winds.


Willie Nelson may have taken a tour break after a battle with the flu, but he shows no signs of slowing down creatively. The country legend is set to release a new album, Last Man Standing, on April 27.
The 11-track project will arrive days before Nelson's 85th birthday. The title track is also the album's lead single — in it, the icon laments of how he's the last one standing of his country crew of Waylon Jennings, Ray Price and Merle Haggard.
"I don't want to be the last man standing / On second thought, maybe I do," he sings.
Last Man Standing features 11 new songs penned by Nelson and longtime collaborator/producer Buddy Cannon. The two friends have worked together since 2008, and Cannon has produced more than a dozen of Nelson's albums.
"Willie's a jazz singer and jazz player," Cannon says. "He's an improvisational musician. It's different every time. Get a good take and go with it."
The new album news comes on the heels of Nelson needing to cancel all of his live dates in February following a flu diagnosis. The singer is in fighting shape though, as his son recently shared an image of Nelson showing off some kickboxing moves! "My dad is a badass," Lukas Nelson says with the photo.
5. "Something You Get Through"
8. "I Ain't Got Nothin'"
9. "She Made My Day"
10. "I'll Try to Do Better Next Time"
11. "Very Far To Crawl"