text:
Distinguished Alumni 1992
Past award recipient bios as they appeared in that year's event program (*deceased)
EMERGING LEADERSHIP: Joseph Bergant II, '84 Med
For Joseph "a father, musician and educator" a true community shares the joy of life and passes it on to the next generation. This starts, he believes, by building confidence and trust within and between individuals.
As principal of Royalview Elementary School in Willowick, he sets this tone, naturally, in his school. "When folks come through our building, they leave with a sense of warmth. I hear that all the time," he says. "With a good staff, that happens.
Over the years, Joseph has worked tirelessly to expand the definition of a close community, not only within the Willoughby-Eastlake school system but in Northeast Ohio. Joseph constantly promotes regional and cultural awareness by inviting performance-art groups to Royalview. The school has hosted a Japanese theater, Karamu theater of Cleveland, and the students of Chambers Elementary in East Cleveland, who performed for Martin Luther King Day. Currently, Joseph is working to bring a black artist and an exhibition of black art to the school. Because of his leadership in education, Royalview has received an International Invitational School Award and a National Blue Ribbin School Award. Royalview has also been named an OAESA Hall of Fame School and is currently contending for an award from the United States Department of Education. Joseph encourages achievement in students and teachers alike. For example, he allows his staff time to research and write grants for instructional materials. This year, Royalview is working with $30,000 in extra funds. The accomplishment has built confidence and collegiality among the teachers, an attitude they pass on to the students. With Joseph's support, the children, too, are getting a boost in self-esteem. Games within the school, like Team Challenge and Bonus Bucks, reward each child for his social behavior and academic achievements. The result has been a steady increase in standardized test scores.
Having been raised and schooled in Willowick himself, Joseph has a personal relationship with the community and works cooperatively with organizations like the Willowick Kiwanis, the Willowick City Council and the Lake County United Way as Royalview's representative.
GEORGE B. DAVIS AWARD: Larry C. Glasscock, '70 BA
Larry is a persistent man. For almost a decade, he has been promoting and supporting the University in very direct, tireless ways. Recently, he completed an eight-year post as a Director of the Cleveland State University Foundation, Inc. But it wasn't the only position he held. He was also an active member, vice-president and president of the Alumni Association. He served as the Chairman for the National Alumni Annual Appeal and as a member of the Honorary Committee for CSU's 25th Anniversary celebration.
Larry began his long, dedicated relationship with CSU as an undergraduate student, earning a bachelor's of business administration degree in 1970. After graduating, he served six years in the United States Marine Corp. Since then, he has worked most of his life in the banking industry. Today, he is the President and COO of the First American Bank in Washington, D.C. On many occasions Larry has said that his success is a direct result of his CSU degree. Without it, he never would have succeeded to such professional heights.
Larry is a member of the American Institute of Banking, the Greater Cleveland Growth Association, and the Cleveland Athletic Club. He has served as the director of the board for First American Bank, the Great Lakes Construction Company and Ameritrust Financial Corporation, among others. He has received awards from the Columbia University Graduate School of Business and from the American Banker's Association School for International Banking.
SPECIAL ACHIEVEMENT: Mary C. Grimm, '80 BA/'89 MA
After writing her first short story when she was 18 years old, Mary waited another ten years before she began writing again. Now, the Cleveland native has a list of published stories, which have appeared in popular magazines like the New Yorker and Redbook and in many regional magazines. In 1993, a collection of her short stories and a novel will be published by Random House.
Mary started on the road to a writing career in 1969 when she entered CSU as an undergraduate. Attending part-time while raising two daughters, she copleted a bachelor of arts degree in anthropology and received a fellowship from the Department of English, to continue her studies. While working on her master's thesis, Mary taught part-time at Cuyahoga community College and worked as the managing editor for The Gamut. During this time, she also co-founded and edited Ohio Writer, a newsletter for regional writers, which the Poets' League of Greater Cleveland continues to publish.
Today, Mary teaches creative writing at Case Western Reserve University. She has conducted workshops at the Antioch Writer's Conference and has spoken at the Midwest Writers Conference and the Northwest Writer's Forum in Toledo, Ohio.
Although Mary's two forthcoming books may open doors to teaching positions elsewhere, she is in no hurry to leave her home and her post at CWRU.
Mary views all her accomplishments, not just the teaching, the stories and the books, as her real success story. It has been a process of learning, a process of living. "Education is not a product that you pay for," Mary says. "Of course there are the practical issues. But what is most important is learning how to think and how to fit yourself into the world and how to measure yourself against your own expectations and the expectations of others."
EMERGING LEADERSHIP: James A. Sipos, '83 BA
Many people have contributed to the City of Cleveland's come-back story. In the Buckeye Road neighborhood bordering Shaker Heights, Skip Sipos, executive director of the Buckeye Area Development Corporation, is leading the way. Thanks to Skip, merchants and residents are teaming up to rebuild their community. Skip, a man with training in business administration, thinks a public entity like the BADC should run like a private one: efficient and proud.
Skip has found that self expression and productivity work hand in hand. It's true. Since joining the BADC in 1986, Skip has restructured the BADC's Board of Directors to include more members of the neighborhood's black-majority population. "It's the way it should be," he says. "The power base is much more representative. The people have more of a feeling of attachment to what goes on." With this new sense of community ownership, the BADC is reviving its neighborhood as it buys, fixes and leases commercial and residential properties.
Because of Skip, the BADC has more staff members and more money to fuel its cause. Since 1986, Skip has increased the organization's budget from $65,000 to $444,700 a year. He has also increased the staff from one employee, himself, to 15 employees.
For his vision and leadership, Skip has received an Outstanding Service Award and the Community Service Award from the local Ward Club. He also received the 1990-91 Community Leader of the Year Award from the Woodland Recreation Center.
Skip's dedication to neighborhood-based organizations is not new. As an undergraduate at CSU, he volunteered with the West Boulevard Neighborhood Association and took a full-time position thereafter earning a bachelor's of business administration. Truly an emerging leader in Cleveland, Skip will remain with the BADC, which plans to fix up 20 homes in 1992. Eventually, Skip envisions the BADC becoming involved with new residential developments on vacant sites near Buckeye Road. "In five years, I want this neighborhood to be on equal par with the surrounding suburbs," Skip says. "Right now you can tell when you cross the line. There should be no difference."
CIVIC ACHIEVEMENT: Hon. Lesley B. Wells, '74 JD
Noted for her ability to explain constitutional rights in plain language, Judge Wells strives to empower every individual with the capacity to participate in the law. "Much of what's taught makes the law seem complicated and inaccessible to people," she says. "We who are involved with the law have to make sure it's accessible to everyone. It's our system, not a system of the privileged. Everyone understands justice."
Judge Wells, who presides over the Cuyahoga County Court of Common Pleas, hears cases ranging from felonies to serious civil suits, which include disputes over environmental issues like toxic waste disposal. She was the first judge in Northeast Ohio who issued orders to board up crack houses.
In many ways, Judge Wells has used her civic vision to make the law work for the community at large. As a member of the Legal Aid Society, she worked to make acts of domestic violence enforceable with legal action. At the Domestic Division of the Common Pleas Court, she set aside a room in the courthouse specifically for children of divorce case, so they would not be exposed to the disputes of the courtroom. For this innovation, Judge Wells was recognized with the Women's City Club Award for Compassionate Judicial Service. She has also received an Award for Outstanding Service to WomenSpace, which assists organizations like the Girl Scouts and the Rape Crisis Center.
A Distinguished Alumna of Chatham College, Judge Wells has sat on the Board of Trustees of Chatham, Miami University, the Urban League of Cleveland and the Rose Mary Center. Currently, she is an adjunct professor and member of the visiting committee of both the Maxine Goodman Levin College of Urban Affairs and the Cleveland-Marshall College of Law.
LIFETIME LEADERSHIP: Hon. George W. White, '55 JD/'97 LL.D.
From the smoke of a Pennsylvania steel town to the gavel of the Federal Courthouse in downtown Cleveland, Judge White has come a long way. But he never expected it to happen this way.
As a young man, he came to Cleveland and attended Baldwin Wallace College to pursue a career in business. While selling cookware, he found himself in the home of two lawyers who would change his life. He didn't sell them the pots and pans, but they sold him on law school. He applied and was accepted to the Cleveland-Marshall Law School.
After graduating, Judge White opened a general law practice and became a Domestic Relations Referee in the Cuyahoga County Court of Common Pleas. He was an attorney with the Civil Branch of the Legal Aid Society, and from 1963 to 1968, he served as a Cleveland City Councilman for the Lee-Harvard neighborhood. In 1968, he was elected judge of the Court of common Pleas. In 1980, he was appointed judge for the U.S. District Court of Northern Ohio, in Cleveland, by President Jimmy Carter.
At the federal court, Judge White enjoys hearing a wide variety of cases. "I can never become complacent in my learning. I could remain on the bench the rest of my life and keep learning."
With this passion for learning about the day-to-day experiences of others, Judge White has gained a valuable insight that he uses in his professional and volunteer work. "The more you deal with people and their problems," he says, "the more you learn how to solve those problems."
Throughout his career, as a member of the bar, city council and judiciary, Judge White has been particularly dedicated to improving the quality of life in Northeast Ohio's black community. He was instrumental in organizing the United Black Fund of Cleveland, Inc., which raises and grants money to non-profit groups, such as the Cleveland Food Basket Program, the East Side Catholic Shelter and the Karamu House. This year, the UBF is funding 18 agencies, which reach 45,000 persons. Currently, Judge White is a trustee of the UBF. He is also a long0time member of the Cleveland-Marshall College of Law Alumni Association and was named Alumnus of the Year in 1990.


text:
Today's Paper | July 19, 2019
Dear reader, online ads enable us to deliver the journalism you value. Please support us by taking a moment to turn off Adblock on Dawn.com.
Dear reader, please upgrade to the latest version of IE to have a better reading experience
Militancy and education
EDUCATION in Pakistan has again come under the spotlight. In a report released by the Brookings Institution in Washington recently, two staffers, Rebecca Winthrop and Corinne Graff, have investigated the role of madressahs and the school system in Pakistan in fuelling militancy in the country.
This spurt of interest by westerners in our education can be explained in the light of the militancy spilling over across our borders and spurring terrorist attacks abroad. The fact is that our education system has for long been inculcating an extremist mindset among school- and university-going youth.
The Brookings Institution states that the debate over seminaries and the mainstream education system "deserves close attention in policy circles given the domestic and international security stakes and the US pledge to triple economic assistance to Pakistan under the 2009 Kerry Lugar bill. For FY 2010, this pledge includes a total of $334.7m for education, of which $264.7m is for basic education".
Since the report Beyond Madrasas will obviously be used as a guideline by American policymakers when releasing aid to Pakistan, it is important that the assessment contained in the report should be correct if all the effort and funds to be invested are to create an impact. The authors are spot on when they identify the mainstream schooling system as also being a part of the problem apart from some madressahs.
After all, as pointed out by Javed Hasan Aly, the author of the 2007 White Paper on Education, some religious parties that were "globally funded" have preached intolerance in educational institutions by having hardened ideologues infiltrate the ranks of the staff and students. Brookings fails to take note of it and of America's past role in strengthening these parties for the 'jihad' in Afghanistan.
The damage already done has to be undone, if it is not too late already. The report makes 13 recommendations. If implemented they should go a long way towards improving matters by making education more accessible and tailoring it to the job market. But will they be implemented? Brookings expresses considerable scepticism when it writes that the national education policy is "unlikely to translate into significant gains on the ground".
The problems I foresee are mainly in three interrelated areas. First is the performance of the teachers. It needs to be made clear that holding teachers accountable for their performance in the classroom, as the report recommends, should be the first priority. It is important to ensure that teachers attend school and play the role that has been assigned to them.
That by itself will, however, not be enough. Pedagogic skills are so poor that teachers' training is absolutely essential as the authors of the report also agree. That is the big challenge. The teachers' knowledge of the subjects they teach is so inadequate that even if they are persuaded to attend school regularly they will find it difficult to deliver without upgrading their own education. Remember they are the products of a system that has been in a state of rot for at least four decades.
The second issue is our failure to take a clear-cut stand on the language to be used as the medium of instruction. The aspirations of our policymakers — and also of a large number of parents — is that English be introduced as early as possible and this should also be the language of instruction. Market pressures and the quest for political power and social status have been allowed to reinforce the demand for English.
But are the teachers qualified to teach in English? The Punjab government had a brainwave teach them English in crash courses of two weeks. The British Council also pitched in and launched a programme to familiarise teachers with the language in 18 days. But obviously these efforts will prove to be futile.
The Brookings experts also suggest that the students be taught critical thinking and schooling should have job relevance. An ideal proposal. But considering the profile of an average Pakistani student, one can well ask if he can be taught critical thinking if the education he receives is in English. It would probably be his first encounter with the language. In all likelihood he would be the first generation school-goer. His parents would know no English at all while his teacher's proficiency in that language would be minimal.
These features will encourage the culture of silence and rote learning in the classroom. In this scenario, can you really expect a child who hardly comprehends what he is taught to think critically in a 'strange' language in which he can hardly express himself?
As for the madressahs, whether they teach militancy and violence or not, all of them indoctrinate their students and they do a thorough job of it. Language is their strongest tool. They use the mother tongue of their students to communicate. They teach Arabic but they do not teach in Arabic.
The third challenge to be encountered is the approach to be adopted towards Islamic studies. The Brookings report advises the US to, "Leave Islam out of it," since religion features too prominently in Pakistan's culture. The authors of the report feel that questions concerning the role of Islam in school curricula should be left to Pakistanis to debate. A wise suggestion no doubt as foreign meddling will invite a reaction. But can we hope for good sense to prevail? Last year the education policy was delayed because the government wanted to add a chapter on Islam.
The only solution would be to use the teachers to teach a softer version of Islam as it used to be before the hardliners took over. If teachers have to motivate, mobilise and persuade, let them do it in a language they and their pupils know best. Love and tolerance are not taught from textbooks.
As for English, by all means teach it but as a second language. Education can be made relevant for the market by teaching English as the language of inter-personal communication. Let the child do his critical thinking in his own tongue which will take him far in understanding the folly of militancy.
zubeidam2@gmail.com
On DawnNews
راتوں رات مقبول ہونے والی فیس ایپ صارفین کی سیکیورٹی کے لیے خطرہ؟
قونصلر رسائی سے کیا مراد ہے؟
لاہور بہت زیادہ ترقی اور کراچی بہت زیادہ پیچھے جاچکا ہے'
Comments (0) Closed
Airspace closure caused over Rs8bn loss: minister
PM hints at low-cost credit for machinery purchase
Pakistan high risk country for media pluralism: report
Pakistanis among those feared dead in Turkey accident
Policy on suspected militant groups changed: minister
Opposition rules out withdrawal of motion against Sanjrani
ICJ rejects India's plea for Jadhav's return, grants consular access
Hafiz Saeed arrested by Punjab CTD, sent on judicial remand in terrorism financing case
'Pakistan didn't fail': 5 things you should know about ICJ's decision on Jadhav
New FBR chairman being considered
FIA arrests man allegedly involved in judge Arshad Malik video leak controversy
Inzamam decides to step down as chief selector
Pakistan's silent suicide problem
Trump hails arrest of Hafiz Saeed in Pakistan
'Not too bad for Pakistan, pretty bad for India': Reactions pour in on ICJ ruling in Jadhav case
Editorial: Now that ICJ has ruled on Jadhav, Islamabad and Delhi must move forward with maturity
It is now time for diplomacy to take centre stage in Pakistan-India relations.
The anatomy of an economic crisis
Pakistan needs strong well-drafted laws
'I had to struggle within PML-N to be accepted and make my place,' says Maryam Nawaz in interview
Facts of a slowing economy
Khurram Husain
Anatomy of a crisis
The evolution and vector of economic crises are fairly 'typical'.
The Lahores that have been
Asha'ar Rehman
Little do the new rulers care to understand that despite its exalted status in the Sharif kingdom, Lahore is still far
Books are fun
Zubeida Mustafa
How can we enjoy an activity in a language that we do not understand?
Solutions in KP
Ghulam Qadir Khan
There's always been a trust deficit between the tribes and the rulers.
Proper drafting of laws
I.A. Rehman
There is much to be said in favour of regular interaction between the legislative drafters and legislators.
The 'traitor' label
DISCREDITING the media seems to have become a national pastime. On Tuesday, it was dialled up a notch when the...
Burial before death
IMAGINE being trapped thousands of feet deep in pitch darkness with little to no oxygen. Each day, coal miners in...
Empty stomachs, hollow speech
FOR some, their everyday relationship with food is so taken for granted that it is barely given a second thought. ...
Sudan deal
AFTER months of protests and uncertainty, not to mention violent crackdowns, a power-sharing deal has been reached...
World Cup controversy
New Zealand graciously accepted the verdict and chose not to raise the issue internationally.
Decision to register traders won't be withdrawn, cabinet resolves
Reproduction Copyrights
Advertise on Dawn.com
Prayer Timings
Stock/Forex/Gold
Eos/Icon/Young World
Copyright © 2019, Dawn

redpajama_set_name: RedPajamaCommonCrawl


text:
Work together to address causes of violent protests, say Chilean bishops
Catholic bishops say leaders have an obligation to understand the deep dissatisfaction of people affected by unjust inequalities
Demonstrators participate in a new day of mass protests in Santiago de Chile, Chile, Oct. 21. (Photo by EPA-EFE/Esteban Garay/MaxPPP)
By La Croix International staff (with Catholic News Service) | Chile
Catholic bishops in Chile have called on citizens to work together to address the causes of violent protests, which were followed by a police crackdown and have left at least 11 people dead in Santiago
The demonstrations came after the government announced a 10 percent increase in electricity rates, triggering a reaction to growing inequality in the country.
Protests turned more violent Oct. 17, with rioters ransacking stores and attacking public buildings. President Sebastian Pinera imposed a state of emergency Oct. 18, prohibiting public gatherings.
The "traumatic" events are an "imperious call to continue creating a culture of understanding," in which people can "empathize with the everyday suffering and ills of Chilean society," the bishops wrote in a statement dated Oct. 19.
That suffering, they said, is related to shortcomings in employment, health care, public safety, education, housing, pensions, poverty, immigration policies and other issues.
Chilean leaders, the bishops said, have an obligation to "understand the deep dissatisfaction of people and families that are affected by unjust inequalities, arbitrary decisions that affect their daily lives, and everyday practices that they consider abusive," and which disproportionately affect those who are most vulnerable.
Although they condemned the violence, the bishops said it is important to understand its roots and "work with urgency to prevent it, stop it and create peaceful ways of taking charge of conflicts."
A book sheds light on mismanagement of Vatican's funds
Kashmir limps back to normalcy after 75 days of curfew
Amazon Evangelicals and Catholics: The impossible dialogue?
Catholic faith sustains fishermen on Mumbai coast
Catholic bishops urge South Sudan leaders to bury hatchet


text:
Q: How to connect RFduino to internet? I backed the RFduino project on Kickstarter to use it in my next project. It is basically a tiny Arduino compatible board with built in Bluetooth LE that supports additional shields.
I've also got a regular Arduino Uno with an Ethernet Shield.
What I'd like to build
I'm thinking about a sensor network (humidity and temperature) for indoors using multiple RFduinos with the coin battery shield lying around the house. The Arduino Uno with the ethernet shield and a bluetooth shield connected to a router would send the data to my server, so I can monitor the stats remotely.
Question
I'd like to transmit data every 10 mins to keep energy consumption low. How can I wake up the sensors and my mainstation (the uno) at the same time, transmit data (from sensors to mainstation and from mainstation to my server) and put them back to sleep again? Is there any risk at losing data because one of the sensors might be awake when the mainstation is still sleeping? Can the Uno Bluetooth shield interfere with the Ethernet shield?
I'm not asking for code but does the idea make sense? Links to related projects would help a lot. I also thought about using xbee for data communication but i found it quite complicated and now that Bluetooth LE needs less energy I can't see any advantages of xbee over Bluetooth LE.

A: It sort of makes sense.
There isn't much of a problem keeping the Uno on 24/7 (it doesn't consume much energy). Instead of connecting it to a battery, get a good wall wart for it. This way, you don't have to worry much about synchronizing the RFduinos as well. Just have it wait patiently for an RFduino to connect to it. However, if you do want to keep them in sync, then just use the Time library, somehow turn them all on at the same time (easy if you use the reset pin), and pray that their power source is uninterrupted.
About the RFduinos: you probably can keep them on as well, on a loop that breaks every 10 minutes to turn on bluetooth and send data. Even better, use a library like this one which gives you a power efficient sleep mode to work with.
If you don't want to keep the RFduinos on, though, a simple circuit using a 555 timer and a relay ought to suffice to turn it on every few minutes (it can turn itself off via the RESET pin of the 555). As long as the Uno is on 24/7, you need not use any special sync and can have the RFduinos sending values at staggered intervals.
Here's a schematic:

Connect the part that says "To Pin" to some pin on the RFduino. Send a constant HIGH output on it. When you want to shut down, send a LOW signal.
The "To Vin" and "To GND" parts go to the respective pins on the RFduino.
If you can't find a 866K resistor, something of a nearby value ought to work. Basically, ln(2)*R2*C2 should be 600 seconds.
Note that 555s have different RESET behaviors. We want the one which goes on it's LOW cycle when reset.

A: As an alternative, you could develop your program to listen for connection requests and collect and send data from the sensors as the return value. This would avoid the need for the timer circuit or loop, although it would necessitate leaving both the Uno and RFduinos on constantly. Given the power consumption, the ability to change the sampling rate easily might be an excellent gain for you. You would simply change how often your computer polled the Uno, nothing on the Uno or sensors would change.

A: A few observations.
1) will your uno be placed so that it can reach all the sensors via bluetooth?
2) why not just add bluetooth to your central server and avoid the time synch wakeup altogether, since the central server will be on all the time.
3) dead reckoning using the timer will eventually drift.  You will want them to have your peer to peer network sync on each wakeup cycle and coordinate on the next sleep.
The arduino sleep details are here, (but I am not sure if the RFDUino will work the same way):
http://playground.arduino.cc/Learning/arduinoSleepCode
you would probably be looking at waking up with a watchdog timer, since there are no specific events other than time triggering your readings.
Good overview of that here:
http://donalmorrissey.blogspot.com/2010/04/sleeping-arduino-part-5-wake-up-via.html
I think you can eliminate the uno from your architecture, and conserve battery life using hardware shutdown.  Make sure your central server has bluetooth and can see at least one of the units.  I would peer to peer the solution so that all the sensors aggregate each others information.  That way as long as all the RFDuino's can see at least one other RFDuino, they can pass their information forward.
In that design, an RFDuino would wake up, and post its reading to any and every neighbor that it sees, then read any and every neighbor for the values that the neighbor has collected until all the expected readings are present (you would need to preconfigure the network so that you know how many peers to expect).  Once each sensor has collected all the information from all the others, you could send a sync signal and shutdown.  That avoids sensors shutting down if they do not have all the readings from everyone else, and the sync will ensure that hopefully the sensors do not all stay on too long.  So if a sensor wakes up early, it will wait till all the others have sent their data to the network before shutting down.  If it wakes up late, the other sensors will all be waiting for it.  The sync signal should ensure that the next sleep cycle starts relatively close for everyone, and the system is somewhat self correcting.
In this design, If one of your sensors disappears due to battery life/failure, all the other sensors will stay awake waiting for it.  So you would need some emergency code that kicks in after a sensor has stayed on waiting on a peer on missing sensor data for longer than two normal intervals.  Then remove that peer from the wait list and continue operation.
Sounds like a fun project, let us know how it turns out.

redpajama_set_name: RedPajamaStackExchange


text:
Carol's Notebook
2015 – 2019 Reviews
Murder on Saint Patrick's Day by P. Creeden
March 17, 2018, 7:17 pm	 March 21, 2018
Home Book Reviews Murder on Saint Patrick's Day by P. Creeden
Readers' Workouts – 3/20
Book Reviews March 17, 2018, 7:17 pm	 March 21, 2018
Murder on St. Patrick's Day by P. Creeden
Series: Ridgeway Rescue Mysteries #3
Published by the author on March 16, 2018
Genres: Mystery, Short Story
Add on Goodreads
Ridgeway Rescue Mysteries can be read in 1-2 hours. Perfect for when you're waiting for an appointment or just want a fast read. Don't miss out on this quick, clean, cozy mystery that will keep you guessing until the end!
It's St. Patrick's Day and 20-year-old Emma Wright is working hard at training five-month-old Molly, her foster puppy, to become a therapy dog. But her training coach and neighbor gets an emergency call, cutting the lesson short, and Emma volunteers to pick up her daughter at a St. Patrick's Day concert in town.
When Emma arrives, the concert has just finished up, and the teenage girls are visiting with the band. Then the lead singer stumbles and falls to the ground, dead. Emma becomes the only level head in the crowd and calls for help. When the Sheriff and Colby arrive, they investigate it as a potential accident. But Emma finds subtle clues that something more sinister is going on. Did the leader of the band die in an accident, or was it murder?
Murder on Saint Patrick's Day is a quick little mystery, perfect for today. Emma and her dog Molly are picking up a friend's teenage daughter after a concert at a local cafe when the lead singer of the band collapses and dies on his way to the hospital. Emma's observational skills once again help out her dad, the Sheriff, and they figure out who the killer is.
The mystery was good. It's a short story, so everything moves a bit quickly, but I like the characters and the clues fit in well. I liked a band being involved in the mystery this time, it made it feel very St. Patrick's Day-ish.
About P. Creeden
P. Creeden is the sweet romance and cozy mystery pen name for USA Today Bestselling Author, Pauline Creeden. She loves a good mystery and grew up watching Colombo and Murder, She Wrote. Animals are the supporting characters of many of her stories, because they occupy her daily life on the farm too.
Website | Twitter | Facebook | Instagram | Pinterest
short mystery | St. Patrick's Day
March 18, 2018 at 3:34 pm	3 years ago
I already had books 1 & 2 in the series, so when I saw this post I bought book #3. It sounds good.
#4 comes out in June.
Carole Rae
Awww I love little quick mysteries. Plus this is a cute cover!!
I agree. I love the covers on this series. The dog is just too adorable.
Follow Carol's Notebook on WordPress.com
carol@carolsnotebook.com
2021 Cloak and Dagger Reading Challenge
March Links
April Links
May Links
June Links
July Links
August Links
December Links
2020 Wrap-Ups
Subscribe by email.
The Last Castle: The Epic Story of Love, Loss, and American Royalty in the Nation's Largest Home
by Denise Kiernan
Murder at Melrose Court: A 1920s Country House Murder
by Karen Baugh Menuhin
Share book reviews and ratings with Carol, and even join a book club on Goodreads.
Carol has read 0 books toward her goal of 95 books.
©2021 Carol's Notebook


text:
Bosnia Peace Operation: Mission, Structure, & Transition Strategy of NATO's Stabilization Force
Benjamin F. Nelson. Provides information on (1) how the operations of the NATO-led military force in Bosnia -- known as the Stabilization Force (SFOR) -- have changed since mid-1997, particularly its support for the operation's civil aspects, & whether any such changes have exceeded SFOR's defined mission; (2) the mission & force structure of the post-June 1998 SFOR follow-on force, including the decision-making sequence for U.S. participation in the force & the status of developing the force's new Multinational Specialized Unit; & (3) NATO's transition strategy for removing NATO-led forces from Bosnia. Charts & tables.
Yukon Alone: The World's Toughest Adventure Race
Gershwin in His Time: A Biographical Scrapbook, 1919-1937
Dress Codes: Meanings & Messages in American Culture
Guide to Homoeopathy
Women Warriors: A History


Les hommes ne sont pas faits pour savoir; les hommes ne sont pas faits pour comprendre … et nos illusions croissent avec nos connaissances.
Men are not created to know, men are not created to understand … and our illusions increase with our knowledge.
~~[Misattributed]~~ The greatest enemy of progress is the illusion of knowledge.
This quote is a variant of one often used by author Daniel Boorstin. Seen misattributed to John Young, for example, in article 'International Space Hall of Fame: John W. Young', New Mexico Museum of Space History, nmspacemuseum.org website. See the Daniel Boorstin Quotes page on this website.


text:
NewsFunny
Balenciaga Just Released A Literal Trash Bag That Costs Over $1,790
Balenciaga Trash Pouch
Internet Is Losing Over It
Balenciaga's characteristic flair for frequently odd and forward-thinking styles has resulted in a history of contentious releases.
And this time, Balenciaga just released a literal trash bag that costs over $1,790.
When did this happen? It happened in August 2022.
In light of this, it shouldn't come as a surprise that their newest release is getting a lot of attention.
So, what exactly is it this time?
COPYRIGHT_HOOK: Published on https://thehooksite.com/balenciaga-just-released-a-literal-trash-bag-that-costs-over-dollar1790/ by Kane Perkins on 2022-08-16T08:22:54.003Z
The "Garbage Pouch" is a new style of handbag that takes its name and design cues from the unassuming black trash bag (Yeah, you read that right).
Balenciaga has everything you need to satisfy your taste for the finer things in life.
A model carrying a black Balenciaga trash bag; Balenciaga trash bag on a light-pink background
Balenciaga just released a literal trash bag that costs over $1,790.
It ensures that even the trash bag you carry has a hefty price tag.
The company is charging an exorbitant $1,790 for their trash can liners.
Most people reading this might be curious about the materials used to make this garbage bag.
Balenciaga's version of a trash bag, dubbed a "trash pouch," is crafted from calfskin leather and finished with a glossy finish.
Black, white, blue, and yellow versions are available, and each features drawstrings that can be pulled to close them before the ties are secured.
This bizarre remark was corroborated by the Spanish house's creative director, Demna Gvasilia, who said that if it weren't for the emblazoned Balenciaga brand (which is barely visible), one might conclude that the wearer toting the bag is merely taking out the garbage.
I couldn't miss the opportunity to design the most expensive trash bag in the world, because who doesn't love a fashion scandal?
said in an interview with WWD about the inspiration for his next Fall/Winter 2022–2023 collection.
Balenciaga unveils world's most expensive trash bag
Funny tweets and memes sprang out in response to the bag's price tag.
Most Twitter users flew into a flurry of shock and anger, to put it mildly.
"If you can afford to spend $1,790 on a Balenciaga fashion accessory that looks like a trash bag, you should have enough cash in the bank to fill it up with cash and donate it to your nearest charity," said one person.
In the words of another, "If you're walking around with a Balenciaga trash bag that you spent $1,700 on I will send some men I know to rob you."
"The next time someone calls me a trash bag I'm gonna assume we're talking about the Balenciaga thingy," wrote one internet user.
A few Twitter users shared their thoughts on high fashion. One commenter opined, "Balenciaga has a trash bag for sale for $1,795. I think designer fashion is a morbid social experiment,"
Balenciaga, on the other hand, is well-known for its divisive high-end fashion.
They unveiled the Rs 2 lakh (about $2,590) 'Rubbish Bin' footwear line in May 2022.
And now Balenciaga just released a literal trash bag that costs over $1,790.
Battle of Waterloo skeletons found in the attic in Belgium. It is said that bones found in an attic in Belgium came from soldiers who died at the Battle of Waterloo. Scientists are currently examining human remains to learn more about the identities of those who have died.
Iran says drone attack targets military facility in Isfahan. Authorities said early Sunday (Jan 29) that during the night before, bomb-carrying drones attacked an Iranian defense factory in the central city of Isfahan. This happened as regional and international tensions around it were rising.
The porn business is flourishing, and every year, a large number of new porn stars emerge. This really is a Pornwood! No surprise! No matter what you do throughout the day whether you're a major boss or simply a pizza delivery guy when you get home at night, you look for a relaxing way to decompress. Someone who is influential, sparks conversation, and, of course, creates excellent porn. These ladies are the hottest pornstars and influencers in the industry (in more ways than one).
The technique known as "Neural Rendering" replaces the actor's visage, giving the impression that they are speaking English visibly despite the fact that the film is being produced in another language.
After all, the most detailed picture of the sun of the bright orange ball initially appears to be an up-close photograph of some minuscule structure such as a cell or virus, as depicted in scientific textbooks. Upon closer study, churning swirls, blazing streaks, gnarls, spots, and filaments can be seen dancing energetically on the surface of the rock.
Sex Magick - Your Pathway To Your Erotic Spirituality
How To Initiate Sex Like A Pro In 2023
OpenAI Not Available In Your Country - 3 Ways To Fix This
Popular Online Gambling Trends To Watch In 2023
Who Is Santa In World Cup Commercial Of Fox Sports?
baf566e58df340dfe3a1ad5391cdb0cc0c41f364d7d1321a27657e39cb286ed50b564b686e7232847b91e6dc73b76cf44144fe9faa2b84588510131d013fa501


text:
Official: Houthis' manage their military operations from Hodeida
الأثنين 11 نوفمبر 2019 08:52 م الصحوة نت - خاص
Alsahwa Net- The governor of Hodeida, Al-Hasan Taher said that the Houthis have moved their operations' center from Sa'ada to Hodeida.
He explained that Iranian experts assist the Houthis in Hodeida to implement their terror operations that target commercial vessels in the territorial waters.
He added that that Iranian experts advised the relocation of the operations' center from Sa'ada to Hodeida to use the coastal areas of smuggling weapons and drugs as well as for threatening the maritime navigation in the Red Sea.
Taher indicated that coastal areas of Hodeida including Al-Dhahi, Al-Luhaya and Al-Zaydya are being used for the trafficking operations.
He added that even fishing unloading centers have been changed for unloading the smuggled weapons.
He explained that medium-size boats that raise a flag of an African country were used for the transportation of fertilizers cargo that included 46 percent of urea which is used for manufacturing landmines and explosive devices.
He added that Iranian vessels stop in international waters of the Red Sea for unloading its cargo to small boats that are sailed by the Houthis militants.
This Iranian cargo is believed to contain raw materials that the Houthis use for manufacturing ballistic missiles and landmines preparation, according to Taher.


text:
Category: Central Bank (2)
National CRE News: New Fed Chair to Raise Interest Rates
Source: CoStar
By: Randyl Drummer
Date Posted: March 22, 2018
Link to Article: Interest Rate Hike
In a widely expected but still worrisome move for commercial real estate investors and financial markets, the Federal Reserve Bank on Wednesday raised the federal funds rate a quarter point from 1.5% to 1.75%, the first of three rate hikes expected by the central bank and the sixth quarter-point increase since the beginning of 2016.
The Fed, in its first policy meeting under new Chairman Jerome Powell, also raised the longer-term "neutral" rate, the level at which monetary policy neither boosts nor slows the economy. In a news conference Wednesday, Powell said that the economy has recently gained momentum and he expects inflation to finally move higher after years running below its 2% historical target.
The Federal Open Markets Committee noted in a statement at the end of its two-day meeting that the labor market has continued to strengthen and that economic activity has been rising at a moderate rate.
The FOMC noted strong job gains in recent months and the exceptionally low unemployment rate, underscoring the central bank's growing confidence that tax cuts and government spending will continue to boost the economy. Unemployment is now expected to fall to 3.8% this year and 3.6% in 2019, which would be the lowest since 1969.
While the Fed plans to follow a path of gradual rate increases, Powell said policymakers need to be cautious about inflation. The chairman warned that financial market asset prices, including real estate, are high relative to their longer-run historical norms in some areas.
"You can think of some equity prices. You can think of commercial real estate prices in certain markets. But we don't see it in housing, which is key," Powell said.
"Overall, if you put all of that into a pie, what you have is moderate vulnerabilities in our view," the chairman added.
In their Monetary Policy Report to Congress last month, Fed policymakers noted "valuation pressures continue to be elevated across a range of asset classes, including equities and commercial real estate. In general, valuations are higher than would be expected based solely on the current level of longer-term Treasury yields," the report said.
Although rates remain low by historical standards, interest rate increases remain top of mind for CRE executives this year. In a sentiment survey by law firm Seyfarth Shaw, 80% of respondents expected multiple rate increases, and clearly expect that the increases will begin to weigh on commercial property markets in 2018.
More than one-third, 37%, of those surveyed in February by the Chicago-based firm predicted three rate hikes by the Fed over the next 12 months, up from just 14% a year ago.
CoStar Portfolio Strategy Managing Director Hans Nordby notes that the end of the so-called low-rate environment is going to have an increasing impact on CRE pricing going forward.
While interest rates are going to matter much more to investors, and will likely lead to higher cap rates, Nordby expects only about one-half to two-thirds of the 10-year Treasury rate yield should transfer to cap rates because the spreads between cap rates and Treasury rates are already wide compared to historical levels.
"CRE investors have worried about cap rate increases for the better part of 15 years, and fighting the Fed with the assumption of higher rates has served few well. Those who avoided low-cap-rate deals and bought the best assets have fared very well since the Great Recession," Nordby said.
"However, those who bought at higher cap rates but took on credit or market risks, such as acquiring Toys 'R Us stores in sleepy suburbs or less-thriving U.S. cities, those bets probably didn't fare so well," Nordby added.
"But today's (rate increase) is a little different," Nordby added. "The Fed appears to be on board with higher rates at both the short and long ends of the (yield) curve. Fighting the Fed now means trying to hang on to scary-low cap rates in some of the nation's largest markets."
Nordby also points out that many properties may have lower cap rates because their existing leases are at below-market rents, which presumably will be replaced with higher-income leases as they roll over.
However, while many assets have the potential to benefit from this dynamic, properties that are locked into a 20-year lease with a credit tenant that was previously touted for its bond-like stability when interest rates were low may see value decline as interest rates rise, Nordby said.
"Markets like New York City multifamily, which had razor-skinny cap rates and spreads, are now showing weak or negative rent growth. These are the types of assets that are most exposed to interest rate surprises in the next couple years," Nordby said.
How Soon is Now: Fed Follows Through on Rate Increase
Federal Reserve Chairwoman Janet Yellen indicated in November that a raise to the U.S. interest rate could be happening "relatively soon." The "soon" came just a month later with the announcement by the Federal Reserve yesterday that the rate will increase by an initial 0.25%. However, as reported by the Wall Street Journal, the rate could increase by as much as 0.75% over "three quarter-point moves" in 2017.
Financial analysts are suggesting that the move to increase the rate is a signal by the Fed of its optimism about the strength of the economy and "pointed to a strengthening labor market nearing full employment and inflation moving more rapidly towards targeted levels," according to the article. This latest increase by the Fed is only one of two in the last decade.
But what the increase to the interest mean for commercial real estate? According to Bisnow, rate hikes usually lead the way to "higher borrowing costs…impacting profitability and future acquisitions." However, as the article points out, this particular increase was long in the making and investors, REITS and property owners have anticipated this increase and have planned/priced accordingly. Therefore, the impact of the first .25% jump "may not have as great an impact" on commercial real estate activities as the effect that "comes from long-term rates."


One of the hardest parts of parenting twins and multiples is keeping track of who ate and slept when. It seems like babies are always crying and someone is always asking, "Now when did I feed her?" and "Didn't she just fall asleep??" Now, some new tools are here to help with tracking babies' feeding and sleeping schedules.
Raleigh, North Carolina web designer Ben Macneill has developed something called the Trixie Tracker. Macneill's online database allows you to record your babies' sleeping patterns. It then takes this data and charts it for you. You get a graph, a "dashboard," and a summary of the day's sleep patterns.
MacNeill happily confesses that he is a data geek. "Once you find out what your baby's natural rhythms are, you aren't going to fight those rhythms. It augments your parental instincts." But for most parents, the most apparent benefit of Trixie Tracker is in not needing to depend on parental memory when it has been socked a whammy by sleep deprivation.
MacNeill launched the online tool in 2006. Since that time, 10,000 parents have signed up with the website to get a helping hand with their kids' medication intakes, feeding schedules, diaper consumption, and of course; for tracking baby sleep cycles, its original purpose. Any parent who has tried to keep track of more than one child's antibiotic treatment schedule can relate to just how valuable this tool can be to harried mothers or fathers. The records accumulated on the website can also be printed out for the pediatrician or caregiver.
MacNeill named Trixie Tracker after his 6 year-old daughter. You can try the Tracker for a two-week free trial period. If you like it, you can sign on for a 6 month period at a cost of $24.95. Some parents share their password information with the children's caregiver, to help get a more rounded report of their children's day.
For parents who are on the go, MacNeill is in the midst of developing a mobile version of Trixie Tracker, but meantime, there are already some similar applications on the market. IPhone for instance, has applications that can record this type of children's data. One such application is called BabyBrain and it costs $4.95. This application was designed specifically to help parents with newborn twins and multiples keep track of feeding schedules. Total Baby by Andesigned, costs $4.99 and performs a similar function.


text:
Lena Kristin Casadei, tidigare Kullberg, född 4 januari 1963 i Augerums församling, Blekinge län, är en svensk före detta friidrottare (längdhoppare). Hon tävlade för KA 2 IF. Hon är mor till mångkamparen Nadja Casadei.

Källor

Referenser

Svenska längdhoppare
Svenska mästare i längdhopp
Kvinnor
Födda 1963
Levande personer
Personer från Augerums socken
Svenska idrottare under 1900-talet

redpajama_set_name: RedPajamaWikipedia


text:
<?xml version="1.0" standalone="yes"?>
<library-reference id="imperial_base_units_reference"><title>Imperial Base Units Reference</title><header name="boost/units/base_units/imperial/drachm.hpp">
<namespace name="boost">
<namespace name="units">
<struct-specialization name="base_unit_info"><template>
    </template><specialization><template-arg>imperial::drachm_base_unit</template-arg></specialization><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct-specialization><namespace name="imperial">
<typedef name="drachm_base_unit"><type>scaled_base_unit< <classname>pound_base_unit</classname>, scale< 16, static_rational<-2 > > ></type></typedef>
</namespace>
</namespace>
</namespace>
</header>
<header name="boost/units/base_units/imperial/fluid_ounce.hpp">
<namespace name="boost">
<namespace name="units">
<struct-specialization name="base_unit_info"><template>
    </template><specialization><template-arg>imperial::fluid_ounce_base_unit</template-arg></specialization><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct-specialization><namespace name="imperial">
<typedef name="fluid_ounce_base_unit"><type>scaled_base_unit< <classname>pint_base_unit</classname>, scale< 20, static_rational<-1 > > ></type></typedef>
</namespace>
</namespace>
</namespace>
</header>
<header name="boost/units/base_units/imperial/foot.hpp">
<namespace name="boost">
<namespace name="units">
<struct-specialization name="base_unit_info"><template>
    </template><specialization><template-arg>imperial::foot_base_unit</template-arg></specialization><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct-specialization><namespace name="imperial">
<typedef name="foot_base_unit"><type>scaled_base_unit< <classname>yard_base_unit</classname>, scale< 3, static_rational<-1 > > ></type></typedef>
</namespace>
</namespace>
</namespace>
</header>
<header name="boost/units/base_units/imperial/furlong.hpp">
<namespace name="boost">
<namespace name="units">
<struct-specialization name="base_unit_info"><template>
    </template><specialization><template-arg>imperial::furlong_base_unit</template-arg></specialization><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct-specialization><namespace name="imperial">
<typedef name="furlong_base_unit"><type>scaled_base_unit< <classname>yard_base_unit</classname>, scale< 220, static_rational< 1 > > ></type></typedef>
</namespace>
</namespace>
</namespace>
</header>
<header name="boost/units/base_units/imperial/gallon.hpp">
<namespace name="boost">
<namespace name="units">
<struct-specialization name="base_unit_info"><template>
    </template><specialization><template-arg>imperial::gallon_base_unit</template-arg></specialization><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct-specialization><namespace name="imperial">
<typedef name="gallon_base_unit"><type>scaled_base_unit< <classname>pint_base_unit</classname>, scale< 8, static_rational< 1 > > ></type></typedef>
</namespace>
</namespace>
</namespace>
</header>
<header name="boost/units/base_units/imperial/gill.hpp">
<namespace name="boost">
<namespace name="units">
<struct-specialization name="base_unit_info"><template>
    </template><specialization><template-arg>imperial::gill_base_unit</template-arg></specialization><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct-specialization><namespace name="imperial">
<typedef name="gill_base_unit"><type>scaled_base_unit< <classname>pint_base_unit</classname>, scale< 4, static_rational<-1 > > ></type></typedef>
</namespace>
</namespace>
</namespace>
</header>
<header name="boost/units/base_units/imperial/grain.hpp">
<namespace name="boost">
<namespace name="units">
<struct-specialization name="base_unit_info"><template>
    </template><specialization><template-arg>imperial::grain_base_unit</template-arg></specialization><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct-specialization><namespace name="imperial">
<typedef name="grain_base_unit"><type>scaled_base_unit< <classname>pound_base_unit</classname>, scale< 7000, static_rational<-1 > > ></type></typedef>
</namespace>
</namespace>
</namespace>
</header>
<header name="boost/units/base_units/imperial/hundredweight.hpp">
<namespace name="boost">
<namespace name="units">
<struct-specialization name="base_unit_info"><template>
    </template><specialization><template-arg>imperial::hundredweight_base_unit</template-arg></specialization><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct-specialization><namespace name="imperial">
<typedef name="hundredweight_base_unit"><type>scaled_base_unit< <classname>pound_base_unit</classname>, scale< 112, static_rational< 1 > > ></type></typedef>
</namespace>
</namespace>
</namespace>
</header>
<header name="boost/units/base_units/imperial/inch.hpp">
<namespace name="boost">
<namespace name="units">
<struct-specialization name="base_unit_info"><template>
    </template><specialization><template-arg>imperial::inch_base_unit</template-arg></specialization><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct-specialization><namespace name="imperial">
<typedef name="inch_base_unit"><type>scaled_base_unit< <classname>yard_base_unit</classname>, scale< 36, static_rational<-1 > > ></type></typedef>
</namespace>
</namespace>
</namespace>
</header>
<header name="boost/units/base_units/imperial/league.hpp">
<namespace name="boost">
<namespace name="units">
<struct-specialization name="base_unit_info"><template>
    </template><specialization><template-arg>imperial::league_base_unit</template-arg></specialization><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct-specialization><namespace name="imperial">
<typedef name="league_base_unit"><type>scaled_base_unit< <classname>yard_base_unit</classname>, scale< 5280, static_rational< 1 > > ></type></typedef>
</namespace>
</namespace>
</namespace>
</header>
<header name="boost/units/base_units/imperial/mile.hpp">
<namespace name="boost">
<namespace name="units">
<struct-specialization name="base_unit_info"><template>
    </template><specialization><template-arg>imperial::mile_base_unit</template-arg></specialization><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct-specialization><namespace name="imperial">
<typedef name="mile_base_unit"><type>scaled_base_unit< <classname>yard_base_unit</classname>, scale< 1760, static_rational< 1 > > ></type></typedef>
</namespace>
</namespace>
</namespace>
</header>
<header name="boost/units/base_units/imperial/ounce.hpp">
<namespace name="boost">
<namespace name="units">
<struct-specialization name="base_unit_info"><template>
    </template><specialization><template-arg>imperial::ounce_base_unit</template-arg></specialization><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct-specialization><namespace name="imperial">
<typedef name="ounce_base_unit"><type>scaled_base_unit< <classname>pound_base_unit</classname>, scale< 2, static_rational<-4 > > ></type></typedef>
</namespace>
</namespace>
</namespace>
</header>
<header name="boost/units/base_units/imperial/pint.hpp">
<namespace name="boost">
<namespace name="units">
<namespace name="imperial">
<struct name="pint_base_unit"><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct></namespace>
</namespace>
</namespace>
</header>
<header name="boost/units/base_units/imperial/pound.hpp">
<namespace name="boost">
<namespace name="units">
<namespace name="imperial">
<struct name="pound_base_unit"><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct></namespace>
</namespace>
</namespace>
</header>
<header name="boost/units/base_units/imperial/quart.hpp">
<namespace name="boost">
<namespace name="units">
<struct-specialization name="base_unit_info"><template>
    </template><specialization><template-arg>imperial::quart_base_unit</template-arg></specialization><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct-specialization><namespace name="imperial">
<typedef name="quart_base_unit"><type>scaled_base_unit< <classname>pint_base_unit</classname>, scale< 2, static_rational< 1 > > ></type></typedef>
</namespace>
</namespace>
</namespace>
</header>
<header name="boost/units/base_units/imperial/quarter.hpp">
<namespace name="boost">
<namespace name="units">
<struct-specialization name="base_unit_info"><template>
    </template><specialization><template-arg>imperial::quarter_base_unit</template-arg></specialization><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct-specialization><namespace name="imperial">
<typedef name="quarter_base_unit"><type>scaled_base_unit< <classname>pound_base_unit</classname>, scale< 28, static_rational< 1 > > ></type></typedef>
</namespace>
</namespace>
</namespace>
</header>
<header name="boost/units/base_units/imperial/stone.hpp">
<namespace name="boost">
<namespace name="units">
<struct-specialization name="base_unit_info"><template>
    </template><specialization><template-arg>imperial::stone_base_unit</template-arg></specialization><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct-specialization><namespace name="imperial">
<typedef name="stone_base_unit"><type>scaled_base_unit< <classname>pound_base_unit</classname>, scale< 14, static_rational< 1 > > ></type></typedef>
</namespace>
</namespace>
</namespace>
</header>
<header name="boost/units/base_units/imperial/thou.hpp">
<namespace name="boost">
<namespace name="units">
<struct-specialization name="base_unit_info"><template>
    </template><specialization><template-arg>imperial::thou_base_unit</template-arg></specialization><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct-specialization><namespace name="imperial">
<typedef name="thou_base_unit"><type>scaled_base_unit< <classname>yard_base_unit</classname>, scale< 36000, static_rational<-1 > > ></type></typedef>
</namespace>
</namespace>
</namespace>
</header>
<header name="boost/units/base_units/imperial/ton.hpp">
<namespace name="boost">
<namespace name="units">
<struct-specialization name="base_unit_info"><template>
    </template><specialization><template-arg>imperial::ton_base_unit</template-arg></specialization><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct-specialization><namespace name="imperial">
<typedef name="ton_base_unit"><type>scaled_base_unit< <classname>pound_base_unit</classname>, scale< 2240, static_rational< 1 > > ></type></typedef>
</namespace>
</namespace>
</namespace>
</header>
<header name="boost/units/base_units/imperial/yard.hpp">
<namespace name="boost">
<namespace name="units">
<namespace name="imperial">
<struct name="yard_base_unit"><method-group name="public static functions">
<method name="name" specifiers="static"><type>const char *</type></method>
<method name="symbol" specifiers="static"><type>const char *</type></method>
</method-group>
</struct></namespace>
</namespace>
</namespace>
</header>
</library-reference>

redpajama_set_name: RedPajamaGithub


Hot Topic, the alternative rock accessories and apparel store, launches a DRM-free music store to compete with iTunes and Amazon.
Hot Topic, a clothing and accessories retailer catering to those interested in alternative music, announced Wednesday that it has launched ShockHound, the company's first online music site offering millions of MP3s, band merchandise, music videos, and editorial content.
According to Hot Topic, Shockhound offers tracks from major record labels, like Universal Music Group, Sony BMG, Warner Music Group, and EMI Music, as well as independent labels. The company also says that artists will be able to upload and sell their own music directly to users without requiring a record label to act as the broker between Shockhound and the artist.
"Our goal was to create an authentic, online experience of music discovery," says Betsy McLaughlin, CEO of Hot Topic. "A place where fellow music lovers can come together and explore, share their likes and dislikes, read the latest music news, and enjoy exclusive content on their favorite artists."
One of the unique features ShockHound will offer is its editorial section. The site will feature reviews, music news, interviews, original programming, and music videos that are controlled by the editorial team on the site.
Although Hot Topic is well-known for its alternative rock products, ShockHound features music from all genres, so the service definitely has its sights set on competing with iTunes and Amazon.com's MP3 DRM-free store. But unlike iTunes tracks, each ShockHound song is DRM-free.
For those interested in buying tracks from Hot Topic's service, each song retails for 99 cents and can be downloaded on the ShockHound page.


Ludwig von Beethoven made some of the most powerful and inspiring music ever created. His nine symphonies and countless smaller works made him a giant star in his day - the late 18th and early 19th centuries. But the pressures of fame also made this temperamental and fragile soul go through extreme anguish and raging self doubts. For Beethoven's personality was as intense, unwieldy and extreme as his music. He was filled with contradictions. For example, though he grew to be incredibly rich, he dressed like a pauper and scorned the delicate social mores of his aristocratic patrons; though supportive of populist anti-aristocratic causes, he spent a good part of his fortune in court in a failed attempt to prove he had a noble heritage. And, most tragic of all, the man who gave the world such powerful music became totally deaf by the time he was 40. A gloomy failure in romance, erratic and bombastic with his patrons and fans, often isolated and lonely, Beethoven's personality is as complex as his creative output was profound.


Preparing for Microsoft EA Renewal | Earth & Sky, Inc.
Your company's Enterprise Agreement (EA) with Microsoft is essential to your business; it's also very complex and most likely more expensive than it needs to be. If your Microsoft contracts are coming up for renewal, there's no doubt that you want to secure the best rate and services. For many business leaders, though, doing that just isn't as easy as it sounds.
A great deal of work goes into preparing for contract renewals, and the process can be overwhelming. You're likely relying on your IT staff to help you prepare for the renewal process, but is that enough? It may seem overly detailed or even tedious, but remember that preparing now can save your company on contracts for years to come. Here are four essentials that you should know as you prepare to renew your Microsoft EAs.
Your company's Microsoft representative isn't waiting until the last minute to consider a renewal deal for your enterprise, and you shouldn't either. Microsoft is known for striking favorable deals with businesses who want to renew early in the quarter on contracts that are going to expire. If you've done your research and know what you need well before your EA expires, you'll likely be able to secure more favorable terms.
On the other hand, putting off renewal talks until the last minute also means that you lose most of your leverage. Your sales rep knows that you need to renew to keep operations running smoothly at your company and will certainly use that against you in negotiations. However, if your sales rep knows that you have plenty of time to research other options, you'll maintain the upper hand.
Many business leaders get sucked into the trap of focusing only on pricing when it comes to renewing software contracts. It's important to remember that your EAs are about more than just cost. They're also about services. As you think ahead to your negotiation strategy, define what support your business most needs and review the terms of your current contract.
Then, set negotiating priorities to ensure that you're getting the programs you need with the terms you want at a cost your business can afford. Make a list of "must haves" in terms of programs and services so that you can communicate clearly with your Microsoft sales rep. Of course, you should also weigh your pricing expectations to ensure that they're realistic given the package that you're seeking.
Business experts have noticed an increase in audits by Microsoft during contract renewals in recent years. While an audit can sound scary, it's essential to be prepared for one. This is especially true if Microsoft hasn't audited your company before. Be aware that auditors will look at license entitlements and deployment counts closely. You can prepare by carefully reviewing all licensing agreements and taking your own counts.
In addition to looking at the basic factors that auditors will consider, you should scrutinize program access for individual users. Make sure that everyone who is using a given software program really needs it. If a program is redundant or is seldom used by a given employee, consider having it removed from that workstation. This will help you comply with licensing agreements and can also make an impact on the terms for which you're negotiating.
In order to negotiate the best possible renewal terms for your business, you'll need to have extensive knowledge about the ins and outs of Microsoft contracts. As a busy executive or IT professional, you likely don't have time to dig into every aspect of an EA and evaluate where your company needs to upgrade products or shed licenses to save money. You can certainly ask your Microsoft rep to explain the terms to you, but you can't expect them to do so without bias.
That's why many business leaders hire outside experts like Earth & Sky to evaluate their contracts and recommend changes. If you're facing an upcoming audit, our team can effectively review and optimize your current license agreements. The bottom line is that a second opinion is valuable when your business is getting ready to renew its Microsoft enterprise agreement. With over 70 years of combined IT experience, Earth & Sky has both the knowledge and experience to help you prepare and negotiate your Microsoft contracts. Call us today at (858) 683-8826 or fill out this form for your Risk-Free Consultation!


text:
News Materials Medical & healthcare
Microscopic cubes trap cells with magnetic actuation
7th August 2017 11:21 am 7th August 2017 11:21 am
Researchers in North Carolina have found a way of capturing and transporting single cells with microscopic cubes that change their shape when actuated by a magnetic field.
By using magnetic energy from their environment, the so-called "microbot origami" structures have the potential to be used as cell characterisation tools, fluid micromixers, and components of artificial muscles and soft biomimetic devices.
The findings, led by researchers at North Carolina State University and Duke University, are published in Science Advances.
"This research is about a topic of current interest – active particles which take energy from their environment and convert it into directional movement," said Orlin Velev, INVISTA Professor of Chemical and Biomolecular Engineering at NC State and co-corresponding author of the paper.
To create the microbot origami, the researchers started with microscopic polymer cubes that are metallic on one side. Depending on their positioning, the cubes can be assembled in many different ways.
"Since they are magnetised and interacting, the cubes store energy," Velev said in a statement.
Tiny particles in the shape of cubes attach together in sequences where they face in different directions to form clusters that are opened by applying a magnetic field, then closed by turning the magnetic field off.
"They close because they are releasing the stored magnetic energy," said Velev. "Thus, you inject internal energy every time you open the microclusters and release it when they close."
According to NC State, the researchers then gave the tiny cluster a specific task of capturing a yeast cell. The microbot formed into a boxy shape and, through its opening and closing motions, "swam" to surround the yeast cell. The researchers then turned off the magnetic field that controlled the folding of the microbot to capture the yeast cell, moved it and finally released it.
"We've shown here a prototype of self-folding microbot," Velev said, "that can be used as a microtool to probe the response of specific types of cells, like cancer cells, for instance."
"Previously reported microrobotic structures have been limited to performing simple tasks such as pushing and penetrating objects due to their rigid bodies. The ability to remotely control the dynamic reconfiguration of our microbot creates a new 'toolbox' for manipulating microscale objects and interacting with its microenvironment," said Koohee Han, a Ph.D. candidate at NC State and first author of the paper.
"As the microbot folds, it can compress liquids or solids and you can use it as a tool to measure bulk mechanical properties, like stiffness," said Wyatt Shields, a postdoctoral researcher at Duke University and NC State University who co-authored the paper. "In some ways, it is a new metrological tool for gauging elasticity at the microscopic level."
The authors say that the design of microbot origami mimics nature. "The cube sequence programs the shapes of the folding microbots. Proteins work in the same way," Shields said. "The sequence of amino acids in a protein will determine how it folds, just as the sequence of cubes in our microbot will determine how it folds."
Velev said that future work will concentrate on making the particles move on their own, rather than steering them with magnetic fields.
The paper is co-authored by Nidhi Diwakar, Research Triangle Materials Research Science and Engineering Center, North Carolina; Bhuvnesh Bharti, Louisiana State University; and Gabriel P. López, University of New Mexico.
Latest The Student Engineer
Edinburgh Hyperloop diary: Introducing Poddy McPodface
4th August 2017 4:09 pm 4th August 2017 4:11 pm
News Robotics
Video of the week: Ocado – Engineering a retail revolution
3rd August 2017 10:26 am 7th September 2018 5:05 pm
News Defence & security
Electromagnetic railgun set for high-energy field trials
26th July 2017 12:48 pm 27th July 2017 10:03 am


text:
Life of an Icon exhibition item
To view a sortable list, please visit the Resource
ca. 1580-1608?
Manuscript marginalia: Gabriel Harvey refers to Hamlet and Richard III
The scholar and writer Gabriel Harvey was known and mocked in his lifetime for making copious notes in the margins of printed books. An inventor of words, friend of Edmund Spenser, and rival of Thomas Nashe, he constantly sought to improve himself through note-taking and repetitive reading.
Greenes, groats-worth of witte: First printed allusion to Shakespeare as a playwright
The earliest known allusion to Shakespeare as a playwright appears in Greenes, groats-worth of witte.
Stationers' Register entry for Venus and Adonis
Venus and Adonis was William Shakespeare's first work to be entered into a Stationers' Company register. This epic poem was entered on April 18, 1593 into the Stationers' Liber B by Richard Field (entered as "ffeild"), a printer from Stratford-upon-Avon.
Stonley's diary: first recorded purchase of Venus and Adonis, Shakespeare's first printed work
This diary entry, written by Richard Stonley on Tuesday, June 12, 1593, records the first known purchase of the first edition of Shakespeare's first printed work, the narrative poem Venus and Adonis (London, 1593).
Titus Andronicus, first edition: Only surviving copy of Shakespeare's first printed play
This is the only known surviving copy of the first edition of Titus Andronicus, published in 1594. Titus was the first play by Shakespeare to be published.
Lucrece, first edition
Shakespeare's Lucrece was first printed in 1594, fulfilling his promise to the earl of Southampton in the 1593 dedication to Venus and Adonis of "some grauer labour." In the dedicatory epistle to Lucrece, which was likewise
Venus and Adonis, third edition
This is the only known surviving copy of the third edition of Venus and Adonis, Shakespeare's first printed work. It is a heavily-repaired fragment, with the first section now lost.
Blackfriars playhouse: James Burbage purchases property in Blackfriars
In 1596 the actor and theater builder James Burbage bought property in Blackfriars, a London neighorhood on the site of a former monastery. His purchase included "seven great upper rooms as they are now divided" as well as some lower rooms and adjoining staircases and yards.
Grant of arms to John Shakespeare: draft 1
This draft grant of arms for John Shakespeare was prepared and written by William Dethick, Garter King of Arms, the most senior of the 13 heralds of the College of Arms. It is the first of two drafts of the grant, both dated October 20, 1596.
Two draft grants of arms survive from the 1596 application, both dated October 20, 1596, and both in the handwriting of William Dethick, the most senior of the 13 heralds of the College of Arms.
See all contributing institutions
CONVENED BY
FOR ANY QUESTIONS OR INQUIRIES PLEASE CONTACT SHAKESPEAREDOCUMENTED@FOLGER.EDU


text:
"""
Tests for Volume Code.

"""

import cStringIO

from nova import context
from nova import exception
from nova import db
from nova import flags
from nova import log as logging
from nova import rpc
from nova import test
from nova import utils
from nova import volume

FLAGS = flags.FLAGS
LOG = logging.getLogger('nova.tests.volume')

class VolumeTestCase(test.TestCase):
    """Test Case for volumes."""

    def setUp(self):
        super(VolumeTestCase, self).setUp()
        self.compute = utils.import_object(FLAGS.compute_manager)
        self.flags(connection_type='fake')
        self.volume = utils.import_object(FLAGS.volume_manager)
        self.context = context.get_admin_context()
        self.instance_id = db.instance_create(self.context, {})['id']

    def tearDown(self):
        db.instance_destroy(self.context, self.instance_id)
        super(VolumeTestCase, self).tearDown()

    @staticmethod
    def _create_volume(size='0', snapshot_id=None):
        """Create a volume object."""
        vol = {}
        vol['size'] = size
        vol['snapshot_id'] = snapshot_id
        vol['user_id'] = 'fake'
        vol['project_id'] = 'fake'
        vol['availability_zone'] = FLAGS.storage_availability_zone
        vol['status'] = "creating"
        vol['attach_status'] = "detached"
        return db.volume_create(context.get_admin_context(), vol)['id']

    def test_create_delete_volume(self):
        """Test volume can be created and deleted."""
        volume_id = self._create_volume()
        self.volume.create_volume(self.context, volume_id)
        self.assertEqual(volume_id, db.volume_get(context.get_admin_context(),
                         volume_id).id)

        self.volume.delete_volume(self.context, volume_id)
        self.assertRaises(exception.NotFound,
                          db.volume_get,
                          self.context,
                          volume_id)

    def test_create_volume_from_snapshot(self):
        """Test volume can be created from a snapshot."""
        volume_src_id = self._create_volume()
        self.volume.create_volume(self.context, volume_src_id)
        snapshot_id = self._create_snapshot(volume_src_id)
        self.volume.create_snapshot(self.context, volume_src_id, snapshot_id)
        volume_dst_id = self._create_volume(0, snapshot_id)
        self.volume.create_volume(self.context, volume_dst_id, snapshot_id)
        self.assertEqual(volume_dst_id, db.volume_get(
                context.get_admin_context(),
                volume_dst_id).id)
        self.assertEqual(snapshot_id, db.volume_get(
                context.get_admin_context(),
                volume_dst_id).snapshot_id)

        self.volume.delete_volume(self.context, volume_dst_id)
        self.volume.delete_snapshot(self.context, snapshot_id)
        self.volume.delete_volume(self.context, volume_src_id)

    def test_too_big_volume(self):
        """Ensure failure if a too large of a volume is requested."""
        # FIXME(vish): validation needs to move into the data layer in
        #              volume_create
        return True
        try:
            volume_id = self._create_volume('1001')
            self.volume.create_volume(self.context, volume_id)
            self.fail("Should have thrown TypeError")
        except TypeError:
            pass

    def test_too_many_volumes(self):
        """Ensure that NoMoreTargets is raised when we run out of volumes."""
        vols = []
        total_slots = FLAGS.iscsi_num_targets
        for _index in xrange(total_slots):
            volume_id = self._create_volume()
            self.volume.create_volume(self.context, volume_id)
            vols.append(volume_id)
        volume_id = self._create_volume()
        self.assertRaises(db.NoMoreTargets,
                          self.volume.create_volume,
                          self.context,
                          volume_id)
        db.volume_destroy(context.get_admin_context(), volume_id)
        for volume_id in vols:
            self.volume.delete_volume(self.context, volume_id)

    def test_run_attach_detach_volume(self):
        """Make sure volume can be attached and detached from instance."""
        inst = {}
        inst['image_id'] = 1
        inst['reservation_id'] = 'r-fakeres'
        inst['launch_time'] = '10'
        inst['user_id'] = 'fake'
        inst['project_id'] = 'fake'
        inst['instance_type_id'] = '2'  # m1.tiny
        inst['ami_launch_index'] = 0
        instance_id = db.instance_create(self.context, inst)['id']
        mountpoint = "/dev/sdf"
        volume_id = self._create_volume()
        self.volume.create_volume(self.context, volume_id)
        if FLAGS.fake_tests:
            db.volume_attached(self.context, volume_id, instance_id,
                               mountpoint)
        else:
            self.compute.attach_volume(self.context,
                                       instance_id,
                                       volume_id,
                                       mountpoint)
        vol = db.volume_get(context.get_admin_context(), volume_id)
        self.assertEqual(vol['status'], "in-use")
        self.assertEqual(vol['attach_status'], "attached")
        self.assertEqual(vol['mountpoint'], mountpoint)
        instance_ref = db.volume_get_instance(self.context, volume_id)
        self.assertEqual(instance_ref['id'], instance_id)

        self.assertRaises(exception.Error,
                          self.volume.delete_volume,
                          self.context,
                          volume_id)
        if FLAGS.fake_tests:
            db.volume_detached(self.context, volume_id)
        else:
            self.compute.detach_volume(self.context,
                                       instance_id,
                                       volume_id)
        vol = db.volume_get(self.context, volume_id)
        self.assertEqual(vol['status'], "available")

        self.volume.delete_volume(self.context, volume_id)
        self.assertRaises(exception.VolumeNotFound,
                          db.volume_get,
                          self.context,
                          volume_id)
        db.instance_destroy(self.context, instance_id)

    def test_concurrent_volumes_get_different_targets(self):
        """Ensure multiple concurrent volumes get different targets."""
        volume_ids = []
        targets = []

        def _check(volume_id):
            """Make sure targets aren't duplicated."""
            volume_ids.append(volume_id)
            admin_context = context.get_admin_context()
            iscsi_target = db.volume_get_iscsi_target_num(admin_context,
                                                          volume_id)
            self.assert_(iscsi_target not in targets)
            targets.append(iscsi_target)
            LOG.debug(_("Target %s allocated"), iscsi_target)
        total_slots = FLAGS.iscsi_num_targets
        for _index in xrange(total_slots):
            volume_id = self._create_volume()
            d = self.volume.create_volume(self.context, volume_id)
            _check(d)
        for volume_id in volume_ids:
            self.volume.delete_volume(self.context, volume_id)

    def test_multi_node(self):
        # TODO(termie): Figure out how to test with two nodes,
        # each of them having a different FLAG for storage_node
        # This will allow us to test cross-node interactions
        pass

    @staticmethod
    def _create_snapshot(volume_id, size='0'):
        """Create a snapshot object."""
        snap = {}
        snap['volume_size'] = size
        snap['user_id'] = 'fake'
        snap['project_id'] = 'fake'
        snap['volume_id'] = volume_id
        snap['status'] = "creating"
        return db.snapshot_create(context.get_admin_context(), snap)['id']

    def test_create_delete_snapshot(self):
        """Test snapshot can be created and deleted."""
        volume_id = self._create_volume()
        self.volume.create_volume(self.context, volume_id)
        snapshot_id = self._create_snapshot(volume_id)
        self.volume.create_snapshot(self.context, volume_id, snapshot_id)
        self.assertEqual(snapshot_id,
                         db.snapshot_get(context.get_admin_context(),
                                         snapshot_id).id)

        self.volume.delete_snapshot(self.context, snapshot_id)
        self.assertRaises(exception.NotFound,
                          db.snapshot_get,
                          self.context,
                          snapshot_id)
        self.volume.delete_volume(self.context, volume_id)

    def test_create_snapshot_force(self):
        """Test snapshot in use can be created forcibly."""

        def fake_cast(ctxt, topic, msg):
            pass
        self.stubs.Set(rpc, 'cast', fake_cast)

        volume_id = self._create_volume()
        self.volume.create_volume(self.context, volume_id)
        db.volume_attached(self.context, volume_id, self.instance_id,
                           '/dev/sda1')

        volume_api = volume.api.API()
        self.assertRaises(exception.ApiError,
                          volume_api.create_snapshot,
                          self.context, volume_id,
                          'fake_name', 'fake_description')
        snapshot_ref = volume_api.create_snapshot_force(self.context,
                                                        volume_id,
                                                        'fake_name',
                                                        'fake_description')
        db.snapshot_destroy(self.context, snapshot_ref['id'])
        db.volume_destroy(self.context, volume_id)

class DriverTestCase(test.TestCase):
    """Base Test class for Drivers."""
    driver_name = "nova.volume.driver.FakeAOEDriver"

    def setUp(self):
        super(DriverTestCase, self).setUp()
        self.flags(volume_driver=self.driver_name,
                   logging_default_format_string="%(message)s")
        self.volume = utils.import_object(FLAGS.volume_manager)
        self.context = context.get_admin_context()
        self.output = ""

        def _fake_execute(_command, *_args, **_kwargs):
            """Fake _execute."""
            return self.output, None
        self.volume.driver._execute = _fake_execute
        self.volume.driver._sync_execute = _fake_execute

        log = logging.getLogger()
        self.stream = cStringIO.StringIO()
        log.addHandler(logging.StreamHandler(self.stream))

        inst = {}
        self.instance_id = db.instance_create(self.context, inst)['id']

    def tearDown(self):
        super(DriverTestCase, self).tearDown()

    def _attach_volume(self):
        """Attach volumes to an instance. This function also sets
           a fake log message."""
        return []

    def _detach_volume(self, volume_id_list):
        """Detach volumes from an instance."""
        for volume_id in volume_id_list:
            db.volume_detached(self.context, volume_id)
            self.volume.delete_volume(self.context, volume_id)

class AOETestCase(DriverTestCase):
    """Test Case for AOEDriver"""
    driver_name = "nova.volume.driver.AOEDriver"

    def setUp(self):
        super(AOETestCase, self).setUp()

    def tearDown(self):
        super(AOETestCase, self).tearDown()

    def _attach_volume(self):
        """Attach volumes to an instance. This function also sets
           a fake log message."""
        volume_id_list = []
        for index in xrange(3):
            vol = {}
            vol['size'] = 0
            volume_id = db.volume_create(self.context,
                                         vol)['id']
            self.volume.create_volume(self.context, volume_id)

            # each volume has a different mountpoint
            mountpoint = "/dev/sd" + chr((ord('b') + index))
            db.volume_attached(self.context, volume_id, self.instance_id,
                               mountpoint)

            (shelf_id, blade_id) = db.volume_get_shelf_and_blade(self.context,
                                                                 volume_id)
            self.output += "%s %s eth0 /dev/nova-volumes/vol-foo auto run\n" \
                      % (shelf_id, blade_id)

            volume_id_list.append(volume_id)

        return volume_id_list

    def test_check_for_export_with_no_volume(self):
        """No log message when no volume is attached to an instance."""
        self.stream.truncate(0)
        self.volume.check_for_export(self.context, self.instance_id)
        self.assertEqual(self.stream.getvalue(), '')

    def test_check_for_export_with_all_vblade_processes(self):
        """No log message when all the vblade processes are running."""
        volume_id_list = self._attach_volume()

        self.stream.truncate(0)
        self.volume.check_for_export(self.context, self.instance_id)
        self.assertEqual(self.stream.getvalue(), '')

        self._detach_volume(volume_id_list)

    def test_check_for_export_with_vblade_process_missing(self):
        """Output a warning message when some vblade processes aren't
           running."""
        volume_id_list = self._attach_volume()

        # the first vblade process isn't running
        self.output = self.output.replace("run", "down", 1)
        (shelf_id, blade_id) = db.volume_get_shelf_and_blade(self.context,
                                                             volume_id_list[0])

        msg_is_match = False
        self.stream.truncate(0)
        try:
            self.volume.check_for_export(self.context, self.instance_id)
        except exception.ProcessExecutionError, e:
            volume_id = volume_id_list[0]
            msg = _("Cannot confirm exported volume id:%(volume_id)s. "
                    "vblade process for e%(shelf_id)s.%(blade_id)s "
                    "isn't running.") % locals()

            msg_is_match = (0 <= e.message.find(msg))

        self.assertTrue(msg_is_match)
        self._detach_volume(volume_id_list)

class ISCSITestCase(DriverTestCase):
    """Test Case for ISCSIDriver"""
    driver_name = "nova.volume.driver.ISCSIDriver"

    def setUp(self):
        super(ISCSITestCase, self).setUp()

    def tearDown(self):
        super(ISCSITestCase, self).tearDown()

    def _attach_volume(self):
        """Attach volumes to an instance. This function also sets
           a fake log message."""
        volume_id_list = []
        for index in xrange(3):
            vol = {}
            vol['size'] = 0
            vol_ref = db.volume_create(self.context, vol)
            self.volume.create_volume(self.context, vol_ref['id'])
            vol_ref = db.volume_get(self.context, vol_ref['id'])

            # each volume has a different mountpoint
            mountpoint = "/dev/sd" + chr((ord('b') + index))
            db.volume_attached(self.context, vol_ref['id'], self.instance_id,
                               mountpoint)
            volume_id_list.append(vol_ref['id'])

        return volume_id_list

    def test_check_for_export_with_no_volume(self):
        """No log message when no volume is attached to an instance."""
        self.stream.truncate(0)
        self.volume.check_for_export(self.context, self.instance_id)
        self.assertEqual(self.stream.getvalue(), '')

    def test_check_for_export_with_all_volume_exported(self):
        """No log message when all the vblade processes are running."""
        volume_id_list = self._attach_volume()

        self.mox.StubOutWithMock(self.volume.driver, '_execute')
        for i in volume_id_list:
            tid = db.volume_get_iscsi_target_num(self.context, i)
            self.volume.driver._execute("ietadm", "--op", "show",
                                        "--tid=%(tid)d" % locals(),
                                        run_as_root=True)

        self.stream.truncate(0)
        self.mox.ReplayAll()
        self.volume.check_for_export(self.context, self.instance_id)
        self.assertEqual(self.stream.getvalue(), '')
        self.mox.UnsetStubs()

        self._detach_volume(volume_id_list)

    def test_check_for_export_with_some_volume_missing(self):
        """Output a warning message when some volumes are not recognied
           by ietd."""
        volume_id_list = self._attach_volume()

        # the first vblade process isn't running
        tid = db.volume_get_iscsi_target_num(self.context, volume_id_list[0])
        self.mox.StubOutWithMock(self.volume.driver, '_execute')
        self.volume.driver._execute("ietadm", "--op", "show",
                                    "--tid=%(tid)d" % locals(),
                                    run_as_root=True).AndRaise(
                                            exception.ProcessExecutionError())

        self.mox.ReplayAll()
        self.assertRaises(exception.ProcessExecutionError,
                          self.volume.check_for_export,
                          self.context,
                          self.instance_id)
        msg = _("Cannot confirm exported volume id:%s.") % volume_id_list[0]
        self.assertTrue(0 <= self.stream.getvalue().find(msg))
        self.mox.UnsetStubs()

        self._detach_volume(volume_id_list)