text:
Q: Combining 2 Hex Values Into 1 Hex Value I have a coordinate pair of values that each range from [0,15]. For now I can use an unsigned, however since 16 x 16 = 256 total possible coordinate locations, this also represents all the binary and hex values of 1 byte. So to keep memory compact I'm starting to prefer the idea of using a BYTE or an unsigned char. What I want to do with this coordinate pair is this:
Let's say we have a coordinate pair with the hex value [0x05,0x0C], I would like the final value to be 0x5C. I would also like to do the reverse as well, but I think I've already found an answer with a solution to the reverse. I was thinking on the lines of using & or | however, I'm missing something for I'm not getting the correct values.
However as I was typing this and looking at the reverse of this: this is what I came up with and it appears to be working.
byte a = 0x04;
byte b = 0x0C;

byte c = (a << 4) | b;

std::cout << +c;

And the value that is printing is 76; which converted to hex is 0x4C.
Since I have figured out the calculation for this, is there a more efficient way?
EDIT
After doing some testing the operation to combine the initial two is giving me the correct value, however when I'm doing the reverse operation as such:
byte example = c;
byte nibble1 = 0x0F & example;
byte nibble2 = (0xF0 & example) >> 4;

std::cout << +nibble1 << " " << +nibble2 << std::endl;

It is printout 12 4. Is this correct or should this be a concern? If worst comes to worst I can rename the values to indicate which coordinate value they are.
EDIT
After thinking about this for a little bit and from some of the suggestions I had to modify the reverse operation to this:
 byte example = c;
 byte nibble1 = (0xF0 & example) >> 4;
 byte nibble2 = (0x0F & example);

 std:cout << +nibble1 << " " << +nibble2 << std::endl;

And this prints out 4 12 which is the correct order of what I am looking for!

A: First of all, be careful about there are in fact 17 values in the range 0..16. Your values are probably 0..15, because if they actually range both from 0 to 16, you won't be able to uniquely store every possible coordinate pair into a single byte.
The code extract you submitted is pretty efficient, you are using bit operators, which are the quickest thing you can ask a processor to do.
For the "reverse" (splitting your byte into two 4-bit values), you are right when thinking about using &. Just apply a 4-bit shift at the right time.

redpajama_set_name: RedPajamaStackExchange


There's a lot of behind-the-scenes action that goes into setting up and running an online service. Below, you'll find some products and services I've used and highly recommend to help you get started in creating an online business and get organised. The links are affiliate links, which means I'll earn commission when you click through. Thank you.
The more time I spent online, the more and more I heard about Squarespace, especially how straightforward it is to use to build a website. Without any prior knowledge, I can confirm that putting this site together was really straightforward. I loved the free trial that Squarespace offers, it gave me enough time to get to grips with the features and pretty much as soon as I was happy to make my purchase from them, my site went live. The tutorials provided by Squarespace are easy to follow and there are also a tonne of tutorials out there that cover every topic or question you may have. Squarespace offer the code GIMME10 which gets you 10% off when you sign up. I wouldn't have noticed the discount code if it hadn't been pointed out to me. Consider this my way of returning the favour (ps. this link is not an affiliate one).
There are a multitude of email service providers around and MailChimp is especially championed for its free service for up to 2000 subscribers. I am getting on alright with it and intend to stick with them for the long haul.


text:
COVID-19: Lagos blames second wave on opening of economy, schools, others
Everyday Money Matters2 hours ago
Ethereum held on Crypto exchanges might run out of supply in 2 days
Lagos has attributed the second wave of COVID-19 to the opening up of the economy, schools,religious gathering and social gatherings.
Abiola Odutola
Lagos State government has attributed the second wave of COVID-19 to the opening up of the economy, schools, and religious and social gatherings, among others.
This was disclosed by the State's Commissioner for Health, Prof. Akin Abayomi, via his Twitter handle on Monday.
He added that other reasons included general laxity, false sense of security and non-adherence to safety guidelines by citizens, and entertainment gatherings.
READ: Lagos to punish residents who break COVID-19 protocols during Xmas
According to him, citizens would need to make lifestyle adjustments by adhering to all non-pharmaceutical interventions, in order to live with the global pandemic.
He said, "The lifestyle adjustment to be adopted by citizens would include adhering to all COVID-19 safety protocols, including proper and regular use of face mask, following social distancing guidelines and avoiding mass gatherings.
READ: FG plans to purchase vaccines for N400 billion – Health Minister
"Others are imbibing and practicing regular hand and respiratory hygiene, submitting for tests if symptomatic, self-isolating if positive, and presenting to an isolation centre for follow-up.
"COVID-19 positivity for inbound travelers coming into Lagos is on the rise with an increase of 8% this week alone and 4% cumulatively."
READ: Covid-19: Second wave more catastrophic, we lost 20 doctors in one week – NMA
He added that this was due to the large numbers of Nigerians in the diaspora who were returning to spend the yuletide in Lagos.
"Passengers must also, prior to boarding, fill in an online Health Declaration/Self-Reporting form located on the Nigeria International Travel Portal which must be submitted online or printed for presentation on arrival in Nigeria," he added.
READ: Covid-19: FG directs universities to suspend academic activities till further notice
At this point it was important to balance public health response and allowing the economy to reopen.
📍Schools were reopened
📍Religious hoses opened
📍Social gathering and entertainment resumed.
There was general laxity with the false sense that #COVID19 infection is down. pic.twitter.com/Mm8sAv4oG8
— Prof. Akin Abayomi (@ProfAkinAbayomi) December 28, 2020
Related Topics:Covid-19Nigeria NewsProf. Akin Abayomi
Abiola has spent about 14 years in journalism. His career has covered some top local print media like TELL Magazine, Broad Street Journal, The Point Newspaper.The Bloomberg MEI alumni has interviewed some of the most influential figures of the IMF, G-20 Summit, Pre-G20 Central Bank Governors and Finance Ministers, Critical Communication World Conference.The multiple award winner is variously trained in business and markets journalism at Lagos Business School, and Pan-Atlantic University. You may contact him via email - [email protected]
Mabel Iyoha
Lagos state is not serious, what was done for private schools staff during the first lockdown, even the public school pupils were not put into consideration, many of them have gone back to zero, nothing in their brains again. God punish them all state government people saying rubbish.
No talks of a second lockdown – FG
FG has stated that contrary to what is being rumoured on social media, there is no consideration of a second lockdown.
William Ukpe
The Federal Government has said that Nigeria is not contemplating another lockdown and urged Nigerians to ignore social media posts circulating the possibility of another lockdown.
This was disclosed by the Office of the Secretary to the Government of the Federation in a series of social media posts on Thursday evening.
READ: President Buhari condemns the killing of farmers by terrorists in Borno State
"The attention of the Presidential Task Force on COVID -19 has been drawn to some mis-information circulating on the social media to the effect that the Federal Government is contemplating another lockdown this weekend.
" The Presidential Task Force on Covid-19 wishes to state categorically that there is no such consideration at any of its meetings nor has any recommendation been made to this effect to the President."
READ: FG borrows N2.8 trillion from CBN via Ways and Means
The PTF said such announcements are unpatriotic and could cause unnecessary panic and anxiety among the populace and urged Nigerians to disregard the misinformation and join hands with the FG to contain the spread of the virus in the country by adhering to Non-Pharmaceutical Interventions (NPI's) as recommended by the PTF.
READ: Haulage cost increases by more than 50% in a week as Apapa gridlock bites harder
Recall Nairametrics reported that President Muhammadu Buhari disclosed in October 2020 that the Nigerian economy is too fragile to go into another lockdown, as the second wave of coronavirus has already forced some European countries – Germany and France, to enter another phase of lockdown.
Nigeria surpassed the 100,000 mark for COVID-19 cases on Sunday 10th January 2021, according to the Nigeria Centre for Disease Control.
On the 14th of January 2021, 1,479 new confirmed cases and 23 deaths were recorded in Nigeria
Samuel Oyekanmi
The spread of novel Corona Virus Disease (COVID-19) in Nigeria continues to record significant increases as the latest statistics provided by the Nigeria Centre for Disease Control reveal Nigeria now has 105,478 confirmed cases.
On the 14th of January 2021, 1,479 new confirmed cases and 23 deaths were recorded in Nigeria.
To date, 105,478 cases have been confirmed, 83,830 cases have been discharged and 1,405 deaths have been recorded in 36 states and the Federal Capital Territory. A total of 1.13 million tests have been carried out as of January 14th, 2021 compared to 1.03 million tests a day earlier.
COVID-19 Case Updates- 14th January 2021,
Total Number of Cases – 105,478
Total Number Discharged – 83,830
Total Deaths – 1,405
Total Tests Carried out – 1,135,535
According to the NCDC, the 1,479 new cases were reported from 25 states- Lagos (697), FCT (201), Nasarawa (80), Plateau (74), Rivers (62), Edo (46), Adamawa (43), Osun (39), Akwa Ibom (35), Delta (31), Anambra (27), Oyo (24), Kano (21), Abia (19), Enugu (19), Ogun (18), Sokoto (12), Bauchi (7), Taraba (7), Ekiti (4), Gombe (4), Imo (4), Bayelsa (2), Jigawa (2), and Zamfara (1).
Meanwhile, the latest numbers bring Lagos state total confirmed cases to 38,549, followed by Abuja (14,139), Plateau (6,147), Kaduna (5,888), Oyo (4,570), Rivers (4,186), Edo (3,189), Ogun (2,745), Kano (2,512), Delta (2,062), Ondo (2,006), Katsina (1,692), Kwara (1,566), Enugu (1,525), Gombe (1,471), Nasarawa (1,233), Ebonyi (1,159), Osun (1,149), Abia (1,114), and Bauchi (1,107).
Borno State has recorded 844 cases, Imo (810), Benue (629), Sokoto (602), Bayelsa (588), Akwa Ibom (588), Adamawa (540), Niger (508), Anambra (460), Ekiti (450), Jigawa (423), Taraba (246), Kebbi (240), Yobe (207), Cross River (169), Zamfara (160), while Kogi state has recorded 5 cases only.
READ ALSO: COVID-19: Western diplomats warn of disease explosion, poor handling by government
Lock Down and Curfew
In a move to combat the spread of the pandemic disease, President Muhammadu Buhari directed the cessation of all movements in Lagos and the FCT for an initial period of 14 days, which took effect from 11 pm on Monday, 30th March 2020.
The movement restriction, which was extended by another two weeks period, has been partially put on hold with some businesses commencing operations from May 4. On April 27th, 2020, Nigeria's President, Muhammadu Buhari declared an overnight curfew from 8 pm to 6 am across the country, as part of new measures to contain the spread of the COVID-19. This comes along with the phased and gradual easing of lockdown measures in FCT, Lagos, and Ogun States, which took effect from Saturday, 2nd May 2020, at 9 am.
On Monday, 29th June 2020 the federal government extended the second phase of the eased lockdown by 4 weeks and approved interstate movement outside curfew hours with effect from July 1, 2020. Also, on Monday 27th July 2020, the federal government extended the second phase of eased lockdown by an additional one week.
On Thursday, 6th August 2020 the federal government through the secretary to the Government of the Federation (SGF) and Chairman of the Presidential Task Force (PTF) on COVID-19 announced the extension of the second phase of eased lockdown by another four (4) weeks.
Governor Babajide Sanwo-Olu of Lagos State announced the closed down of the Eti-Osa Isolation Centre, with effect from Friday, 31st July 2020. He also mentioned that the Agidingbi Isolation Centre would also be closed and the patients relocated to a large capacity centre.
Due to the increased number of covid-19 cases in Nigeria, the Nigerian government ordered the reopening of Isolation and treatment centres in the country on Thursday, 10th December 2020.
READ ALSO: Bill Gates says Trump's WHO funding suspension is dangerous
African Union secures 270 million Covid-19 vaccine doses from drugmakers
The AU has secured 270 million Covid-19 vaccine doses for the continent from drug manufacturers Pfizer, AstraZeneca and Johnson & Johnson.
Chike Olisah
The African Union has secured 270 million Covid-19 vaccine doses for the continent from drug manufacturers to supplement the COVAX programme, a step towards the commencement of the complex task of vaccinating over 1.2 billion people with limited financial resources.
Drugmakers Pfizer, AstraZeneca and Johnson & Johnson will provide the vaccines, of which 50 million doses will be made available for the crucial period, between April and June 2021.
This disclosure was made through a statement by the President of South Africa, Cyril Ramaphosa, who is also the Chairman of the African Union, on Wednesday.
Ramaphosa said that arrangements had been made with the African Export-Import Bank (Afreximbank) to provide support to member states who want to have access to the vaccines.
Upon receipt of firm orders from member states, Afreximbank is expected to provide advance procurement commitment guarantees of up to $2 billion to the manufacturers.
Going further, the South African President said, "There is also close collaboration between the AU team and the World Bank to ensure that member states are able to access about $5 billion either to buy more vaccines or pay for the delivery of vaccines committed on their behalf by Afreximbank.
"These endeavours aim to supplement the COVAX efforts, and to ensure that as many dosages of the vaccine as possible become available throughout Africa as soon as possible."
He pointed out that although the World Health Organization co-led COVAX initiative was very crucial to Africa's response to the pandemic, the Africa Union was concerned that the COVAX volumes to be released between February and June would be inadequate and may not go beyond catering for the needs of frontline health care workers.
While several wealthy economies around the world pre-ordered vaccines ahead of regulatory approval and have now started rollouts, concerns have been raised that Africa, which has recorded at least 3.1 million infections and about 74,600 deaths over the course of the pandemic, would be left behind.
This happens to be a fraction of the global figure of more than 91 million cases, although it is believed that some of the figures might be distorted due to less reliable reporting methods.

redpajama_set_name: RedPajamaCommonCrawl


text:
Home Arts & Culture Featured artist of the week
Featured artist of the week
Ryan Farrell
Photo courtesy of USM Art Department
By: Ryan Farrell, Staff Writer
For many people, crafting a project with an unfamiliar medium is a task too vague to consider. To Paisley Stewart, a senior art major, it's considered a challenge. In her piece, Life Surrounding, she used cyanotype on porcelain, a technique she hadn't used before this piece of art. While Stewart's career is more focused on photography, learning a vast amount of ceramic techniques is her passion. She recently found interest in using a cyanotype on clay for a project in class. She's very interested in knowing what's on the rise in the art community.
Stewart's work focuses on a light or personal expression. She stated that her work is supposed to convey the mark of nature."It captures the beauty in everyday life," she said. Her work conveys an appreciation for the Earth and in turn is also able to express herself. She developed her appreciation by growing up near Kennebunk Beach, an area that ultimately inspired her style. She sees the connection between man and nature and uses her work to embrace and further emphasize the relationship.
Stewart said that she started exploring her passion by enrolling in drawing classes, but later found that she had a much stronger connection with ceramic and photography arts. Although she hadn't taken high school art courses, she found a quick liking to the field. In 2017, after discovering her passion, she became an art major. She prefers ceramics over other mediums because it's such a hands-on process. You only take away what you put into the piece and since it's a lengthy, meticulous process, it requires a great deal of patience and attention. Her group piece, Life Surrounding, went through a three step process which took a total of ten hours. She compared the clay to a living body of constant change, a product that's malleable until its final firing.
One skill that she has learned through her career is that obstacles cannot discourage an artist. The clay changes so frequently that it's difficult to predict the final outcome. As Stewart said, "perfectionists shouldn't be discouraged by imperfection." She put an emphasis on this, applying it to ceramic pieces that have already been completed. "Even if it shatters on the floor, you just have to move on and be patient," she said. Like any craft, you will only improve as you practice, so newcomers shouldn't be discouraged.
After she graduates in May, Stewart hopes to expand her photography business by providing both standard photo shoots as well as freelance photography. Since she recently acquired a kiln for her home, she hopes to further develop her home studio so she can effectively create impressive pieces. She also plans on promoting her own business as Paisley Violet Design. The business helps promote her work as a freelance artist and also promotes her other skill sets in the field. She already has several social media pages for the business and she plans on having a website for the business within the next six months. Until then, Stewart plans on featuring Life Surrounding as well as other projects in the USM Art Gallery which runs from April 11 to May 1.
Previous articleNew photography exhibition in Woodbury Campus Center
Next articleMovieTalk: This is M. Night Shyamalan's last rodeo
Artist of the Week: Sigrid Sibley
Movie Talk: The Batman
Deborah A. Freeman February 11, 2019 at 4:14 pm
I am well impressed by this artists work and have a piece in my home which I treasure.
Goodbye Zootz…
Class clown passes the mic


text:
Silent Film Stars Historic Records Available on Ancestry.com
Below is a press release from Ancestry.com. I think this will be very interesting for folks who are researching information about silent era film stars and coming across major obstacles. I have a few film stars I'd like to research. I hope this will be a good source for biographers which may mean more classic film biographies in our future! You do need a membership to use the service though. It may be well worth it for the truly dedicated film historians.
Silent Cinema Stars Private Information Revealed In Historic Studio Archives- Now Available Online at Ancestry.com
Thousands of stars of the early silver screen detailed in Motion Picture Studio Directories
§ Records include Charlie Chaplin, "Fatty" Arbuckle and Oliver Hardy (images available)
§ Directories reveal 'vital statistics' stars probably didn't want you to know…
Provo, Utah – June 13, 2011 – Ancestry.com, the world's largest online family resource, has launched online records of the original Hollywood film studios, which profile the superstars of silent cinema at the beginning of the 20th century. Digitized in partnership with the California State Library (where the original ledgers are held), the records are now fully searchable online for the first time by name, birthplace and date of birth.
Much like today's online film and actors database IMDb, the directories were compiled by executives of the 'big five' studios – Warner Bros., FPL Corp (Paramount), RKO, MGM and 20thCentury Fox. 'Up & Coming' studios also contributed to the records, among them Universal, Columbia and United Artists.
The Motion Picture Studio Directories (1919 and 1921)feature thousands of leading actors, actresses, cinematographers, writers, editors, directors, producers and screenwriters of the day – at a time when cinemas were selling more than 100 million tickets a week. The silent film era was so incredibly prominent during its heyday that the highest grossing film of the time, The Birth of a Nation, earned $10 million in 1915, equivalent to more than $216 million in modern era earnings and a runaway blockbuster by today's standards.
The records contain information about iconic actors and actresses such as Charlie Chaplin, who reached the height of his fame during the silent film era by using mime and slapstick to great effect. His records describe him as 5'4" with brown hair and blue eyes and list his address as the Charlie Chaplain Film Co on La Brea Avenue, Los Angeles.
Actors' entries include details of past film roles, age, birthplace, height, weight, address and even a home phone number in some cases. The biggest stars often paid to include photos in order to attract greater interest from film executives (images available).
In fact, several actors omitted or amended their information to make them more marketable. The entry for one of the most famous of all silent movie actresses, Gloria Swanson, has the date of birth omitted, despite being just 32 at the time, and Roscoe 'Fatty' Arbuckle - one of the highest paid actors of the silent era - has a number of facts excluded, notably his weight.
Some further famous names listed include:
· Oliver Hardy – The 'big man' of comedy double act Laurel & Hardy, Hardy appeared in hundreds of films in a career spanning over 30 years. His directory entry includes his industry nickname 'Babe,' his unusual height for the era (6'1") and weight (350 lbs).
· Lillian Gish – One of the leading actresses of the silent era and considered to be one of the greatest of all time, Gish played a lead character in The Birth of a Nation – the largest grossing of all silent movies.
· Buster Keaton – Known for his constantly stoic, deadpan expression during his comedy appearances, Keaton earned the nickname "The Great Stone Face". He is listed as having taken part in military service, fighting for the US in WWI. It is during his service that Keaton developed an ear infection which left his hearing permanently impaired.
· Mary Pickford – Known as the "American Sweetheart" or "Girl with the Curls," Pickford was a world-renowned actress. Her records detail her career starting as early as five-years-old and list her address as 4500 Sunset Boulevard, LA.
"These records paint an intriguing picture of how the early film industry operated and include some of the first and biggest names ever to appear on the silver screen," remarked Quinton Atkinson, Ancestry.com Director of Content. "It's fascinating to see the details that would have been kept reserved for film executives of the day and perhaps the details within might provide the link needed to prove your relation to a film executive, famous director or even one many movie stars found in the directories."
Visit www.ancestry.com/motionpicturesto start searching the records now.
About Ancestry.com (www.ancestry.com)
Ancestry.com Inc. (Nasdaq: ACOM) is the world's largest online family history resource, with more than 1.6 million paying subscribers. More than 6 billion records have been added to the site in the past 14 years. Ancestry users have created more than 24 million family trees containing over 2.4 billion profiles. Ancestry.com has local Web sites directed at nine countries that help people discover, preserve and share their family history, including its flagship Web site at www.ancestry.com.
VP81955 June 23, 2011 at 1:26 PM
The entry for one of the most famous of all silent movie actresses, Gloria Swanson, has the date of birth omitted, despite being just 32 at the time
If this is a reference to the 1921 directory, Swanson would have been a mere 22 at the time; she was born in 1899. (It doesn't explain why the date was omitted, however.)
Raquel Stecher June 23, 2011 at 1:49 PM
I hope you realize that I didn't write that press release. It comes from Ancestry.com
Jacqueline T. Lynch June 23, 2011 at 2:12 PM
Intriguing. Thanks for passing along the information.
Alessandra June 23, 2011 at 3:34 PM
Very interesting, thanks for sharing the info!!
I was wondering do you mind if I use your style blog font?
I love it & I wanted to double check & make sure it was okay with you first. :)
Terence Towles Canote June 28, 2011 at 4:00 PM
This is fascinating. It should be a great help to biographers (and bloggers for that matter). Of course, I wonder how much of this information won't make its way to IMDB.
Captains Courageous (1937) at The Somerville Theater
Silent Film Stars Historic Records Available on An...
Fourth Blogiversary
Good Stuff by Jennifer Grant
Beyond a Reasonable Doubt (1956) at the Paramount
Paramount Theatre in Pictures
If I were a wealthy bidder at Debbie Reynold's auc...
Frank: The Voice by James Kaplan
IOU: Buster Keaton: A Hard Act to Follow (1987)
IOU: The Grub-Stake (1923)
IOU: Who's Afraid of Virginia Woolf? (1966)
IOU: Madam Satan (1930)
IOU: Charlie Chan at the Opera (1936)
IOU: No, My Darling Daughter (1961)
IOU: Hot Enough for June (1964)
Summer of Classic Films in Boston - June 2011


Is docking on the starboard side better than docking on the port side? Like just about everything else in boating, it depends….
Many boaters say you should always dock on the starboard; but, in some cases, it would be far better to dock on the port side.
In other cases, boaters say you should always dock port side, but that isn't always the case either.
It depends on many factors and, when you know what they are and take them into consideration, you will know on which side to dock your boat.
So what are some factors to consider?
Most power boats have the helm on the starboard side, so for the convenience of being able to directly see the space left between the hull and your dock, you would choose the starboard side. For boats with a centerline helm, like centre console fishing boats or centreline helm yachts, it doesn't matter because your vision to the dock is the same. Most Houseboats and twin engine Trawlers would dock starboard side because their access doors are always on the starboard side.
For boats with a single inboard, like ski boats, trawlers and sailboats and older wooden launches, their torque pulls to port in reverse; therefore, it would be best to dock on the port side. For the few single inboards with starboard torque in reverse, they would choose starboard side docking. For all other drive systems, starboard or port works.
For boats with a transom access or a side deck access gate, choose that side to dock on, so that you have a shorter route on and off the boat.
When docking for fuel and/or a pumpout, choose that side so that the hoses don't have to be dragged full width of the boat. You don't want to end up with hose marks, shoe dirt and spills all across your cockpit or deck.
Shorecord inlets can be located on either the port side or the starboard side, or in the cockpit or on the transom. Depending on the configuration of the boat side decks, and the location of the shore power outlet on the dock, you'll want to choose docking on the side that gives you the easiest and safest route to connect the shore cord. In some cases, the length of your cord may be so tight that it will dictate which side you have to dock on for it to actually reach.
Have a look at your boat with these points in mind and knowledgeably decide whether docking starboard side or port side is right for you.
your boating buddies who aren't sure which side is right for them.
For larger boats another important factor is the location of their shore power hook-up.


Lindstrom Alone is available in paperback and Kindle ebook format. *Please note if you choose to purchase this book through Amazon using the link below I will receive a small commission at no extra cost to you. If you cannot see the Amazon ad below (if you are using an ad blocker, for instance) here is the link: https://amzn.to/2otmE6B Thanks!


text:
Aimsio Blog | Workflows
Topic: Workflows
Workflows Technology
Streaming, Sports & Subscriptions
By Adam Belnap on December 5, 2022
Unless you are living under a rock - it's no surprise that the entertainment industry has turned primarily into streaming services with the leaders...
How-to Cost Processes Workflows Technology
Using Aimsio for Resource Costing and Payroll
By Erin Pugh on June 16, 2022
One of the main reasons companies choose to use Aimsio is to capture time in the field. With hundreds, sometimes thousands of people working on your...
Everything You Need to Know About Job Performance and WBS
By Erin Pugh on May 10, 2022
One of the critical things about running a company, if not the most critical thing, is knowing how profitable you are. There are many ways to go...
Workflows Technology Webinars
Webinar Highlights: Accounting vs. Field Ticketing Software
By Erin Pugh on April 13, 2022
In March of 2022 we recorded a webinar that is available for download here. But if you prefer to read the highlights, then this is the article for...
How-to Top-Reasons Workflows New Feature Spotlight
6 Ways to Get the Most from your Aimsio Account
By Erin Pugh on October 21, 2021
Whether you've just started using Aimsio or are one of our long-time customers, we want to ensure that you get the most out of our software.
How-to Processes Workflows Oil & Gas Services
By Erin Pugh on August 18, 2020
Looking for a downloadable sample field ticket template? You've come to the right place. Here at Aimsio our number one priority is making service...
How-to Processes Workflows
3 Best Practices for Workflows: Capturing Operational Data
By Aimsio Team Writer on November 29, 2018
Every organization has workflows. A workflow is basically the sequence of events that takes place before work is completed. There are a million ways...
Workflows 101
By Aimsio Team Writer on May 30, 2018


text:
Reversing inequality: Unleashing the transformative potential of an equitable economy
inequality-smaller.jpg
A new report explains how the rules governing the US economy are tipped in favour of asset owners over wage earners, and offers solutions to transform our system. Authored by Chuck Collins and published by the Institute of Policy Studies and the Next System Project.
The US economy's deep systemic inequalities of income, wealth, power, and opportunity are part of global inequality trends, but US-style capitalism and public policy make inequalities more acute. Their observable and felt harm to our civic and economic life is corroborated by research from many disciplines. Yet, by the same token, moving toward a more egalitarian society would realign most aspects of economic and social life for the better. So how can we bring these changes about?
For starters, we must know what we are up against. These inequalities do not spring mainly from technological change and globalization, though both compound and complicate the rift. Instead, imbalances of power and agency embedded in our political and economic system are the main drivers and accelerators of inequality.
Reducing inequality requires a "next systems" analysis and playbook. Here, we briefly examine our current inequality predicament and show how these inequalities undermine our democracy, economic stability, social cohesion, and other cherished values. We then explore the systemic causes, perpetuators, and superchargers of inequalities and, finally, evaluate policy interventions and pressure points for leveling them.
The path through this thicket is only partly uncharted. The United States can learn from other advanced industrial countries with significantly less inequality, adapting policies and practices to US needs and circumstances. We can also learn from our own history—from understanding that our rigged rules have been racially biased—to how we dramatically reduced inequality between 1940 and 1975.
That said, part of the path is uncharted. Grappling with climate change and other breached ecological boundaries—whether ocean acidification, fresh water contamination, or methane dumping—intensifies the challenges of reducing extreme inequality. And many of the New Deal and post-World War II policies that reduced inequality for earlier generations won't work now given today's levels of population, resource consumption, and ecological risk.
Together, the extent and widely felt effects of inequality challenge us to put a fine-tuned combination of historical insights, policy innovations, best practices, and fresh thinking to the test. Just as urgently, we also need a vision of a more equal and opportunity-rich society.
Download a short overview of key takeaways
Download the executive summary
How We Can Transition to a Bottom Up Economy - Chuck Collins, YES! Magazine
Original source: The Next System Project
Poverty and hunger, Inequality, Environment
Blog: A shared society has to offer hope, opportunity and social justice not fear, inequality and austerity
A genuinely "Shared Society" requires the redistribution of power, wealth and income. But there is no value in sharing austerity, inequality and hardship...
Blog: Citizens' wealth funds: An alternative to the inequality escalator
Shouldn't the returns from at least part of our national wealth go to all citizens and not just the already rich? By Stewart Lansley, Inequality.org.
Blog: Extreme economic inequality is spiraling out of control
An equal share in economic growth is not enough to lift millions of people out of extreme poverty - governments must adopt a package of redistributive...
Article: Connecting the dots: Human rights, inequality and poverty
We can rapidly realise the human rights of the world's poor through global institutional reforms that reduce inequality and share the planet's natural...


text:
Blog Written Dissertation and Online Essay
Home » fellini » Photosynthesis rate light
Photosynthesis rate light
June 5, 2019 qceducation Off fellini,
The snowdrop of Swinburne disappears, the daffodil of Shakespeare remains. Is there any one they would set up against him—any Sir Richard Blackmore they patronise; or do they prefer Racine, as Adam Smith did before them? One might parcel it out into squares, as in engraving, and copy one at a time, without seeing or thinking of the rest. If familiarity in cities breeds contempt, ignorance in the country breeds aversion and dislike. Or I will give your learned professors and profound Encyclopedists, who lay down laws for the human mind without knowing any of the springs by which it acts, five years to make even a tolerable guess at what photosynthesis rate light it is in objects that produces the fine flower of Sentiment, and what it is that leaves only the husk and stalk of Utility behind it. Our old people, for a man often reverts to savagery in his old age, pass away with words of regret on their lips for the good old days of their youth, when things were different. On its intellectual side, again, as the {417} play of mind, the mirthful disposition has an intimate relation to such valuable qualities as quickness of insight and versatility.[336] In the light entertaining form of witty talk it takes on a social quality of no mean value. {181} From all this he concludes that ticklishness, being bound up with the mimic warfare which fills so large a space in the life of many young animals, has its utility. Nor will a good man's self-regulation cease when there are no hearers. And I make this prediction the more confidently, as I am supported in it by the great authority of Wilhelm von Humboldt, who for twenty years devoted himself to their investigation. It is putting the effect before the cause. A peculiar modification of the hot-iron ordeal is employed by the aboriginal hill-tribes of Rajmahal, in the north of Bengal, when a person believes himself to be suffering from witchcraft. The same vital spirit animates them both. The habit of speaking is the habit of being heard, and of wanting to be heard; the habit of writing is the habit of thinking aloud, but without the help of an echo. L. In Bohemia at a later period the successful combatant was required to decapitate his antagonist.[301] The earliest records of the various other Slavic lands give evidence of the prevalence of the judicial combat, showing that it formed part of their ancestral customs prior to their occupation of their present territories.[302] Among the Norr?na branch of the Teutons the wager of battle can be traced back to the realm of legend and tradition. The real, revered, and impartial spectator, therefore, is, upon no occasion, at a greater distance than amidst the violence and rage of contending parties. The first two were indicated by the fact that the library consisted of six coordinate branches, each with its librarian-in-charge and her first assistant. Possibly the majority of attempts to confect a poetic drama have begun at the wrong end; they have aimed at the small public which wants "poetry." ("Novices," says Aristotle, "in the art attain to finish of diction and precision of portraiture before they can construct the plot.") The Elizabethan drama was aimed at a public which wanted _entertainment_ of a crude sort, but would _stand_ a good deal of poetry; our problem should be to take a form of entertainment, and subject it to the process which would leave it a form of art. He laughed out loudly at first, then waxed tender, saying in a pitiful tone, "Poor Gee-gee," and so swung from the one emotional attitude to the other.[137] This appearance of the two feelings, distinct though contiguous, is, of course, a very different thing from the highly organised sentiment which we call humour. I had lately applications to receive three patients of the latter description, all of whom committed suicide during the delay between the application and the intended removal. The mutual teasings of savages serve, as we have seen, as a photosynthesis rate light training, an ???????, in simple and estimable virtues, such as the maintenance of good temper, toleration, and the setting of comradeship above one's private feelings. The second would have us feel for ourselves as we naturally feel for others. Is change to go on in this direction? 'Painting,' says an author, more capable of feeling strongly than of analysing accurately, Mr. The answer is simple, for the man clearly violated his duty to his country in the first place by vowing he would deprive his country of his services should they be required, a right which no country has ever forsworn and which is considered the natural return due for free citizenship and state protection; these conditions are presumed to be accepted with the benefits of citizenship and protection of person and property; his first violation of duty towards his country will therefore not absolve him of a second. In what did she fall short? In all looking-glasses the effects are produced by the same means, applied exactly in the same manner. A book may tell of crime and criminals in such a way as to make the reader detest both or feel an attraction toward both. Those of us who think we know something of it have gained our knowledge by experience and observation and neither is extensive enough in most cases to take the place of a well-considered and properly-managed survey of existing conditions and methods. We have the subtleties of the head, instead of the workings of the heart, and possible justifications instead of the actual motives of conduct. _Corinth._ xi. This M. Here it will be observed that between the tense-signs, which are logically the essential limitations of the action, are included both the agent and the near and remote objects of the action. This primary position would pretty certainly be specially favourable to the utterance of a certain kind of sound, let us say that commonly indicated by "eh,"[111] together with something of the guttural or chuckling accompaniment of this in the sound of laughter.
Light photosynthesis rate. Now if any of these be wanting to our Sex, it must be either because Nature has not been so liberal as to bestow 'em upon us; or because due care has not been taken to cultivate those Gifts to a competent measure in us. {15a} The above observations relative to the regularity of the tides could only result by supposing the earth to be covered with the waters of the ocean to a great depth, but as this is not the case, photosynthesis rate light it is only at places situated on the shores of large oceans where such tides exist. This however is but a rude logic. The conditions under which these reports are made and held are as follows: Every question must be answered or the reason for not doing so must be stated. Another little {202} girl, of whom I have written elsewhere under the initial M., when seventeen months old, asked for her father's "tick-tick," looking very saucy; and as he stooped to give it, she tugged at his moustache, "and almost choked with laughter". ESSAY IV THE SAME SUBJECT CONTINUED This was the case formerly at L——'s—where we used to have many lively skirmishes at their Thursday evening parties. (_a_) To begin with, any variety of emotional reaction {190} excited by a particular kind of presentation appears, as it is repeated, to undergo a process of development, taking on more of fulness and complexity. The exact moment lost can never be regained! This is more particularly the danger in the incipient stage of convalescence in some violent cases of mania, {5} and where I am quite certain delicate and judicious attention have been essential; and where first, perhaps, removal to the family part of the house, then removal altogether to our own house, was apparently their salvation. And now, as we stand on the threshold of a new era–a new world in search of its soul–what better precept can we have than the simple words of the great thinker who, three hundred years ago, also stood on the threshold of a new world of thought? And from that frontlet wipes away The wanton water's brackish spray. _Every Man in his Humour_ is the first mature work of Jonson, and the student of Jonson must study it; but it is not the play in which Jonson found his genius: it is the last of his plays to read first. But in any case it looks as if the future library building and its contents were to be greatly larger than those of to-day. They compared our minuets to the fighting of two game cocks.[189] Did they also see a galop, one wonders, and if so, what did the lovers of slow dances say about this? Their ignorance, and confusion of thought, necessarily gave birth to that pusillanimous superstition, which ascribes almost every unexpected event, to the arbitrary will of some designing, though invisible beings, who produced it for some private and particular purpose. They ascertain (intuitively) the degrees, inflections, and powers of things in a wonderful manner; and he who voluntarily deprives himself of their assistance, does not go the way to arrive at any very nice or sure results. Your clients will get more publicity and better publicity for nothing than they have often bought for hundreds of dollars. This was accordingly done, and the genuineness of the holy remains was proved to the satisfaction of all. If any one who still doubts of this will give me a satisfactory reason why he denies the same consciousness to different minds, or thinks it necessary to circumscribe this principle within the limits of the same brain but upon the supposition that one brain is one power, in some sort modifying and reacting upon all the ideas contained in it, I shall then be ready to give up my dull, cloudy, English mysticism for the clear sky of French metaphysics. Just as the too weighty rule of a father is apt to be laughingly pushed aside by comedy, so is that of the master.
All these events are useful and important in their phase, and they have sensibly affected our attitude towards the Classics; and it is this phase of classical study that Professor Murray—the friend and inspirer of Miss Jane Harrison—represents. Louis Public Library should be well satisfied with the _status quo_. When by a well accented syllable in the end of the first line of a couplet, it has once been clearly ascertained what the rhyme is to be, a very slight allusion to it, such as can be made by a syllable of the same termination that is not accented, may often be sufficient to mark the coincidence in the second line; a word of this kind in the end of the first line seldom succeeds so well: Th' inhabitants of old Jerusalem Were Jebusites; the town so called from them. The griefs we suffer are for the most part of our own seeking and making; or we incur or inflict them, not to avert other impending evils, but to drive off _ennui_. His characters take no conscious delight in their role—they are sentimental. Two companies are simply a nuisance, involving duplication of plant with no resulting convenience. Yet, in this case, too, the chief value seems to reside in its immediate result, the gladdening and refreshing influence on the laugher, which has in it a virtue photosynthesis rate light at once conciliatory and consolatory. The hop and French-bean twine round rods which are planted near them. All voluntary action, that is all action proceeding from a will, or effort of the mind to produce a certain event must relate to the future, or to those things, the existence of which is problematical, undetermined, and therefore capable of being affected by the means made use of with a view to their production, or the contrary. By yielding to every impulse at once, nothing produces a powerful or permanent impression; nothing produces an aggregate impression, for every part tells separately. It has been evident that wide regions within the municipality were not reached by the library's activities; hence the establishment of branches–practically classification on a regional or territorial basis. But most adults also remain suggestible, especially towards mass-suggestion, and towards the propositions which they know to be supported by the whole weight of society, or by long tradition."[79] This also he calls prestige suggestion. Or else because he did as much as man In those three memorable overthrows, At Granson, Morat, Nancy, where his master, The warlike Charalois, with whose misfortunes I bear his name, lost treasure, men, and life, To be excused from payment of those sums Which (his own patrimony spent) his zeal To serve his country forced him to take up! In all things, we ought to remember, and especially in a matter of such importance, that we can do good only so far as our knowledge extends; and even this knowledge is useless, unless we are zealously desirous and able to reduce it to practice. The phrase is given elsewhere _Rugemitit_, Give (thou) me arrows. So far as this growth may be looked upon as the direct result of Mr. But if the mind be thus thrown into the most violent disorder, when it attends to a long series of events which follow one another in an uncommon train, it must feel some degree of the same disorder, when it observes even a single event fall out in this unusual manner: for the violent disorder can arise from nothing but the too frequent repetition of this smaller uneasiness. Their association is frequently necessary for their common defence. For them the veil of the Temple of Art is not rent asunder, and it is well: one glimpse of the Sanctuary, of the Holy of the Holies, might palsy their hands, and dim their sight for ever after! Under Tiberius, a citizen removed the head from a statue of Augustus, intending to replace it with another. So much for the information to be obtained from the library by business men. The vanity in this self-advertisement does not always lie on the surface, a partial self-blinding being of the humour of it. As a show, it carries on the fun of children's make-believe play. Mr. The fourth case does not present itself until 1306. But though these two orders of passions are so apt to mislead us, they are still considered as necessary parts of human nature: the first having been given to defend us against injuries, to assert our rank and dignity in the world, to make us aim at what is noble and honourable, and to make us distinguish those who act in the same manner; the second, to provide for the support and necessities of the body.
Previous: Top college essay ghostwriter for hire ca
Next: Best biography editor website for masters
qceducation
Cite mla research paper
Esl descriptive essay writers service for phd
Dissertation today
Top application letter proofreading sites for college
Esl cheap essay ghostwriter for hire for phd
bfcdccabdb
biographiesup
foltepepetusmo
rappaccini
sladermath
speightethicsweek5
zajoqwritingservices


In this paper, we study how binary applications can be transparently accelerated with novel heterogeneous computing resources without requiring any manual porting or developer-provided hints. Our work is based on Binary Acceleration At Runtime (BAAR), our previously introduced binary acceleration mechanism that uses the LLVM Compiler Infrastructure. BAAR is designed as a client-server architecture. The client runs the program to be accelerated in an environment, which allows program analysis and profiling and identifies and extracts suitable program parts to be offloaded. The server compiles and optimizes these offloaded program parts for the accelerator and offers access to these functions to the client with a remote procedure call (RPC) interface. Our previous work proved the feasibility of our approach, but also showed that communication time and overheads limit the granularity of functions that can be meaningfully offloaded. In this work, we motivate the importance of a lightweight, high-performance communication between server and client and present a communication mechanism based on the Message Passing Interface (MPI). We evaluate our approach by using an Intel Xeon Phi 5110P as the acceleration target and show that the communication overhead can be reduced from 40% to 10%, thus enabling even small hotspots to benefit from offloading to an accelerator.
Damschen, Marvin, Heinrich Riebler, Gavin Francis Vaz, and Christian Plessl. "Transparent Offloading of Computational Hotspots from Binary Code to Xeon Phi." In Proceedings of the 2015 Conference on Design, Automation and Test in Europe (DATE), 1078–83. EDA Consortium / IEEE, 2015. https://doi.org/10.7873/DATE.2015.1124.


text:
Das Apollonios-Archiv ist ein antikes Privatarchiv aus der römischen Kaiserzeit. Es umfasste rund 230 Texte in griechischer Sprache (Koine). Sie gelangten Anfang des 20. Jahrhunderts in 16 verschiedene Papyrussammlungen. Neben den Gießener Papyrussammlungen besitzt die Staats- und Universitätsbibliothek Bremen zahlreiche Papyri aus dem Apollonios-Archiv. Apollonios, der Empfänger der meisten Briefe, war ein hoher Zivilbeamter in Oberägypten. Er war an den Militäraktionen zur Niederschlagung des jüdischen Diasporaaufstands (115 bis 117 n. Chr.) beteiligt.

Familienverhältnisse des Apollonios
Die Familie des Apollonios war über mehrere Generationen im Nomos Hermopolites ansässig, wo sie Landbesitz hatte.

Apollonios war etwa 113–120 Stratege in Heptakomia (Kom Esfaht), dem Hauptort des ägyptischen Nomos Apollonopolites. Er war damit ein hoher Beamter der kaiserzeitlichen Zivilverwaltung. Ihm unterstanden die Verwaltung, das Finanzwesen und die Polizei des Nomos. Der Verwaltungsbezirk Apollonopolites Heptakomias wurde in der frühen Kaiserzeit anstelle eines älteren Nomos Aphroditopolites gegründet und bestand bis in die byzantinische Zeit. Der Hauptort Heptakomia war in der Ptolemäerzeit aus der Zusammenlegung von fünf Dörfern entstanden. Aus den Dokumenten des Archivs geht hervor, dass Heptakomia in der Amtszeit des Apollonios etwa 6000 bis 8000 meist ägyptische Einwohner hatte.

Apollonios war mit Aline verheiratet; die ältere Forschung nahm eine Geschwisterehe an, dies gilt aber als widerlegt. Sie hatten mehrere Kinder, von denen die Töchter Heraidous und Eudaimonis namentlich bekannt sind. Die meisten Briefe des Archivs stammen von Eudaimonis, der Mutter des Apollonios. Während dieser als Stratege in Heptakomia tätig war, verwaltete sie mit ihrer Schwiegertochter Aline das Landgut der Familie.

Nach dem Ende seiner Amtszeit scheint Apollonios mit dem Archiv nach Hermopolis, den etwa 150 km nilabwärts gelegenen Hauptort des Nomos Hermopolites, gezogen zu sein.

Jüdischer Diasporaaufstand
Das Apollonios-Archiv ist eine wichtige Quelle für den jüdischen Diasporaaufstand, der in der Kyrenaika begann, als Kaiser Trajan zum Krieg gegen die Parther aufbrach. Die Unruhen erfassten Ägypten in nord-südlicher Richtung. So schrieb Eudaimonis Ende Juni 115, dass die Situation in Hermopolis angespannt sei. Im August verbrachte Apollonios dort gemeinsam mit seiner Familie das Neujahrsfest, musste aber plötzlich aufbrechen. Vermutlich erforderten seine Amtspflichten als Stratege seine Reise nilabwärts. Ein unvollständiger Brief vom Dezember 115 dokumentiert, dass die Aufständischen Erfolge erzielten. Gegen sie wurde die ägyptische Dorfbevölkerung aufgeboten. Aber bei Kämpfen in der Umgebung von Heptakomia erlitten diese eine schwere Niederlage; viele Ägypter starben. Marcus Rutilius Lupus, der Präfekt von Ägypten, rückte in Richtung auf Memphis vor. Auch Apollonios nahm mit einem Kontingent an den Kämpfen bei Memphis teil, die für die Römer erfolgreich verliefen. Dass er, ein Zivilbeamter, hier militärische Aufgaben wahrnahm, spricht für eine Notlage.

Ende 117 reichte Apollonios beim Statthalter Quintus Rammius Martialis einen Urlaubsantrag ein, um sich persönlich um den Wiederaufbau seiner kriegszerstörten Ländereien kümmern zu können. Weitere Papyri handeln von Bauarbeiten, die auf diesen Gütern im Nomos Hermopolites durchgeführt wurden. Herodes, der im Auftrag des Apollonios Bauarbeiten auf dem Landgut durchführen ließ, bat um die Erlaubnis, mit dem Schiff nach Alexandria fahren zu dürfen. Eine Reise auf dem Landweg sei nämlich unmöglich "wegen der Verwüstung der Gegenden."

Literatur
 Moritz Böhme: Die Texte des Apollonius-Archivs. In: Tassilo Schmitt, Moritz Böhme (Hrsg.): Welt aus Schnipseln. Papyrus-Texte aus dem Alten Ägypten. Bremen 2007, S. 68–86.
 Michael Kortus: Briefe des Apollonius-Archives aus der Sammlung Papyri Gissenses-Edition, Uebersetzung und Kommentar (= Berichte und Arbeiten aus der Universitätsbibliothek und dem Universitätsarchiv Giessen. Band 49). Universitätsbibliothek, Giessen 1999. ISSN 0935-3410. (Digitalisat)
 Patrick Reinard: "…als der römische Kaiser Traianus die jüdische Bevölkerung in Ägypten ausrottete." Die Folgen des jüdischen Aufstands 115–117 n. Chr. In: Lena Maier, Oliver Stoll (Hrsg.): Niederlagen und Kriegsfolgen – Vae victis oder Vae victoribus? Vom Alten Orient bis ins Europäische Mittelalter. Frank & Timme, Berlin 2016, S. 46–90.
 Ulrich Wilcken: Die Bremer Papyri. Verlag der Akademie der Wissenschaften, Berlin 1936 (Digitalisat)

Weblinks
 Trismegistos Archives: Apollonios, governor (strategos) of the Apollonopolites Heptakomias
 Österreichisches Archäologisches Institut: Apollonios. An Egypian Official in War and Peace (Erste kritische Edition des gesamten Apollonios-Archivs)

Anmerkungen

Archäologischer Fund (Ägypten)
Papyrologie
Jüdische Geschichte (Antike)
Konflikt (2. Jahrhundert)
Archäologischer Fund (Römische Kaiserzeit)
Universitätsbibliothek Gießen
Staats- und Universitätsbibliothek Bremen
Literatur (Altgriechisch)
Archäologischer Fund (Afrika)

redpajama_set_name: RedPajamaWikipedia


text:
package ssh

import (
	"bytes"
	"crypto"
	"crypto/dsa"
	"crypto/ecdsa"
	"crypto/elliptic"
	"crypto/rsa"
	"crypto/x509"
	"encoding/asn1"
	"encoding/base64"
	"encoding/pem"
	"errors"
	"fmt"
	"io"
	"math/big"
	"strings"

	"golang.org/x/crypto/ed25519"
)

// These constants represent the algorithm names for key types supported by this
// package.
const (
	KeyAlgoRSA      = "ssh-rsa"
	KeyAlgoDSA      = "ssh-dss"
	KeyAlgoECDSA256 = "ecdsa-sha2-nistp256"
	KeyAlgoECDSA384 = "ecdsa-sha2-nistp384"
	KeyAlgoECDSA521 = "ecdsa-sha2-nistp521"
	KeyAlgoED25519  = "ssh-ed25519"
)

// parsePubKey parses a public key of the given algorithm.
// Use ParsePublicKey for keys with prepended algorithm.
func parsePubKey(in []byte, algo string) (pubKey PublicKey, rest []byte, err error) {
	switch algo {
	case KeyAlgoRSA:
		return parseRSA(in)
	case KeyAlgoDSA:
		return parseDSA(in)
	case KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521:
		return parseECDSA(in)
	case KeyAlgoED25519:
		return parseED25519(in)
	case CertAlgoRSAv01, CertAlgoDSAv01, CertAlgoECDSA256v01, CertAlgoECDSA384v01, CertAlgoECDSA521v01, CertAlgoED25519v01:
		cert, err := parseCert(in, certToPrivAlgo(algo))
		if err != nil {
			return nil, nil, err
		}
		return cert, nil, nil
	}
	return nil, nil, fmt.Errorf("ssh: unknown key algorithm: %v", algo)
}

// parseAuthorizedKey parses a public key in OpenSSH authorized_keys format
// (see sshd(8) manual page) once the options and key type fields have been
// removed.
func parseAuthorizedKey(in []byte) (out PublicKey, comment string, err error) {
	in = bytes.TrimSpace(in)

	i := bytes.IndexAny(in, " \t")
	if i == -1 {
		i = len(in)
	}
	base64Key := in[:i]

	key := make([]byte, base64.StdEncoding.DecodedLen(len(base64Key)))
	n, err := base64.StdEncoding.Decode(key, base64Key)
	if err != nil {
		return nil, "", err
	}
	key = key[:n]
	out, err = ParsePublicKey(key)
	if err != nil {
		return nil, "", err
	}
	comment = string(bytes.TrimSpace(in[i:]))
	return out, comment, nil
}

// ParseKnownHosts parses an entry in the format of the known_hosts file.
//
// The known_hosts format is documented in the sshd(8) manual page. This
// function will parse a single entry from in. On successful return, marker
// will contain the optional marker value (i.e. "cert-authority" or "revoked")
// or else be empty, hosts will contain the hosts that this entry matches,
// pubKey will contain the public key and comment will contain any trailing
// comment at the end of the line. See the sshd(8) manual page for the various
// forms that a host string can take.
//
// The unparsed remainder of the input will be returned in rest. This function
// can be called repeatedly to parse multiple entries.
//
// If no entries were found in the input then err will be io.EOF. Otherwise a
// non-nil err value indicates a parse error.
func ParseKnownHosts(in []byte) (marker string, hosts []string, pubKey PublicKey, comment string, rest []byte, err error) {
	for len(in) > 0 {
		end := bytes.IndexByte(in, '\n')
		if end != -1 {
			rest = in[end+1:]
			in = in[:end]
		} else {
			rest = nil
		}

		end = bytes.IndexByte(in, '\r')
		if end != -1 {
			in = in[:end]
		}

		in = bytes.TrimSpace(in)
		if len(in) == 0 || in[0] == '#' {
			in = rest
			continue
		}

		i := bytes.IndexAny(in, " \t")
		if i == -1 {
			in = rest
			continue
		}

		// Strip out the beginning of the known_host key.
		// This is either an optional marker or a (set of) hostname(s).
		keyFields := bytes.Fields(in)
		if len(keyFields) < 3 || len(keyFields) > 5 {
			return "", nil, nil, "", nil, errors.New("ssh: invalid entry in known_hosts data")
		}

		// keyFields[0] is either "@cert-authority", "@revoked" or a comma separated
		// list of hosts
		marker := ""
		if keyFields[0][0] == '@' {
			marker = string(keyFields[0][1:])
			keyFields = keyFields[1:]
		}

		hosts := string(keyFields[0])
		// keyFields[1] contains the key type (e.g. "ssh-rsa").
		// However, that information is duplicated inside the
		// base64-encoded key and so is ignored here.

		key := bytes.Join(keyFields[2:], []byte(" "))
		if pubKey, comment, err = parseAuthorizedKey(key); err != nil {
			return "", nil, nil, "", nil, err
		}

		return marker, strings.Split(hosts, ","), pubKey, comment, rest, nil
	}

	return "", nil, nil, "", nil, io.EOF
}

// ParseAuthorizedKeys parses a public key from an authorized_keys
// file used in OpenSSH according to the sshd(8) manual page.
func ParseAuthorizedKey(in []byte) (out PublicKey, comment string, options []string, rest []byte, err error) {
	for len(in) > 0 {
		end := bytes.IndexByte(in, '\n')
		if end != -1 {
			rest = in[end+1:]
			in = in[:end]
		} else {
			rest = nil
		}

		end = bytes.IndexByte(in, '\r')
		if end != -1 {
			in = in[:end]
		}

		in = bytes.TrimSpace(in)
		if len(in) == 0 || in[0] == '#' {
			in = rest
			continue
		}

		i := bytes.IndexAny(in, " \t")
		if i == -1 {
			in = rest
			continue
		}

		if out, comment, err = parseAuthorizedKey(in[i:]); err == nil {
			return out, comment, options, rest, nil
		}

		// No key type recognised. Maybe there's an options field at
		// the beginning.
		var b byte
		inQuote := false
		var candidateOptions []string
		optionStart := 0
		for i, b = range in {
			isEnd := !inQuote && (b == ' ' || b == '\t')
			if (b == ',' && !inQuote) || isEnd {
				if i-optionStart > 0 {
					candidateOptions = append(candidateOptions, string(in[optionStart:i]))
				}
				optionStart = i + 1
			}
			if isEnd {
				break
			}
			if b == '"' && (i == 0 || (i > 0 && in[i-1] != '\\')) {
				inQuote = !inQuote
			}
		}
		for i < len(in) && (in[i] == ' ' || in[i] == '\t') {
			i++
		}
		if i == len(in) {
			// Invalid line: unmatched quote
			in = rest
			continue
		}

		in = in[i:]
		i = bytes.IndexAny(in, " \t")
		if i == -1 {
			in = rest
			continue
		}

		if out, comment, err = parseAuthorizedKey(in[i:]); err == nil {
			options = candidateOptions
			return out, comment, options, rest, nil
		}

		in = rest
		continue
	}

	return nil, "", nil, nil, errors.New("ssh: no key found")
}

// ParsePublicKey parses an SSH public key formatted for use in
// the SSH wire protocol according to RFC 4253, section 6.6.
func ParsePublicKey(in []byte) (out PublicKey, err error) {
	algo, in, ok := parseString(in)
	if !ok {
		return nil, errShortRead
	}
	var rest []byte
	out, rest, err = parsePubKey(in, string(algo))
	if len(rest) > 0 {
		return nil, errors.New("ssh: trailing junk in public key")
	}

	return out, err
}

// MarshalAuthorizedKey serializes key for inclusion in an OpenSSH
// authorized_keys file. The return value ends with newline.
func MarshalAuthorizedKey(key PublicKey) []byte {
	b := &bytes.Buffer{}
	b.WriteString(key.Type())
	b.WriteByte(' ')
	e := base64.NewEncoder(base64.StdEncoding, b)
	e.Write(key.Marshal())
	e.Close()
	b.WriteByte('\n')
	return b.Bytes()
}

// PublicKey is an abstraction of different types of public keys.
type PublicKey interface {
	// Type returns the key's type, e.g. "ssh-rsa".
	Type() string

	// Marshal returns the serialized key data in SSH wire format,
	// with the name prefix.
	Marshal() []byte

	// Verify that sig is a signature on the given data using this
	// key. This function will hash the data appropriately first.
	Verify(data []byte, sig *Signature) error
}

// CryptoPublicKey, if implemented by a PublicKey,
// returns the underlying crypto.PublicKey form of the key.
type CryptoPublicKey interface {
	CryptoPublicKey() crypto.PublicKey
}

// A Signer can create signatures that verify against a public key.
type Signer interface {
	// PublicKey returns an associated PublicKey instance.
	PublicKey() PublicKey

	// Sign returns raw signature for the given data. This method
	// will apply the hash specified for the keytype to the data.
	Sign(rand io.Reader, data []byte) (*Signature, error)
}

type rsaPublicKey rsa.PublicKey

func (r *rsaPublicKey) Type() string {
	return "ssh-rsa"
}

// parseRSA parses an RSA key according to RFC 4253, section 6.6.
func parseRSA(in []byte) (out PublicKey, rest []byte, err error) {
	var w struct {
		E    *big.Int
		N    *big.Int
		Rest []byte `ssh:"rest"`
	}
	if err := Unmarshal(in, &w); err != nil {
		return nil, nil, err
	}

	if w.E.BitLen() > 24 {
		return nil, nil, errors.New("ssh: exponent too large")
	}
	e := w.E.Int64()
	if e < 3 || e&1 == 0 {
		return nil, nil, errors.New("ssh: incorrect exponent")
	}

	var key rsa.PublicKey
	key.E = int(e)
	key.N = w.N
	return (*rsaPublicKey)(&key), w.Rest, nil
}

func (r *rsaPublicKey) Marshal() []byte {
	e := new(big.Int).SetInt64(int64(r.E))
	// RSA publickey struct layout should match the struct used by
	// parseRSACert in the x/crypto/ssh/agent package.
	wirekey := struct {
		Name string
		E    *big.Int
		N    *big.Int
	}{
		KeyAlgoRSA,
		e,
		r.N,
	}
	return Marshal(&wirekey)
}

func (r *rsaPublicKey) Verify(data []byte, sig *Signature) error {
	if sig.Format != r.Type() {
		return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, r.Type())
	}
	h := crypto.SHA1.New()
	h.Write(data)
	digest := h.Sum(nil)
	return rsa.VerifyPKCS1v15((*rsa.PublicKey)(r), crypto.SHA1, digest, sig.Blob)
}

func (r *rsaPublicKey) CryptoPublicKey() crypto.PublicKey {
	return (*rsa.PublicKey)(r)
}

type dsaPublicKey dsa.PublicKey

func (r *dsaPublicKey) Type() string {
	return "ssh-dss"
}

// parseDSA parses an DSA key according to RFC 4253, section 6.6.
func parseDSA(in []byte) (out PublicKey, rest []byte, err error) {
	var w struct {
		P, Q, G, Y *big.Int
		Rest       []byte `ssh:"rest"`
	}
	if err := Unmarshal(in, &w); err != nil {
		return nil, nil, err
	}

	key := &dsaPublicKey{
		Parameters: dsa.Parameters{
			P: w.P,
			Q: w.Q,
			G: w.G,
		},
		Y: w.Y,
	}
	return key, w.Rest, nil
}

func (k *dsaPublicKey) Marshal() []byte {
	// DSA publickey struct layout should match the struct used by
	// parseDSACert in the x/crypto/ssh/agent package.
	w := struct {
		Name       string
		P, Q, G, Y *big.Int
	}{
		k.Type(),
		k.P,
		k.Q,
		k.G,
		k.Y,
	}

	return Marshal(&w)
}

func (k *dsaPublicKey) Verify(data []byte, sig *Signature) error {
	if sig.Format != k.Type() {
		return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, k.Type())
	}
	h := crypto.SHA1.New()
	h.Write(data)
	digest := h.Sum(nil)

	// Per RFC 4253, section 6.6,
	// The value for 'dss_signature_blob' is encoded as a string containing
	// r, followed by s (which are 160-bit integers, without lengths or
	// padding, unsigned, and in network byte order).
	// For DSS purposes, sig.Blob should be exactly 40 bytes in length.
	if len(sig.Blob) != 40 {
		return errors.New("ssh: DSA signature parse error")
	}
	r := new(big.Int).SetBytes(sig.Blob[:20])
	s := new(big.Int).SetBytes(sig.Blob[20:])
	if dsa.Verify((*dsa.PublicKey)(k), digest, r, s) {
		return nil
	}
	return errors.New("ssh: signature did not verify")
}

func (k *dsaPublicKey) CryptoPublicKey() crypto.PublicKey {
	return (*dsa.PublicKey)(k)
}

type dsaPrivateKey struct {
	*dsa.PrivateKey
}

func (k *dsaPrivateKey) PublicKey() PublicKey {
	return (*dsaPublicKey)(&k.PrivateKey.PublicKey)
}

func (k *dsaPrivateKey) Sign(rand io.Reader, data []byte) (*Signature, error) {
	h := crypto.SHA1.New()
	h.Write(data)
	digest := h.Sum(nil)
	r, s, err := dsa.Sign(rand, k.PrivateKey, digest)
	if err != nil {
		return nil, err
	}

	sig := make([]byte, 40)
	rb := r.Bytes()
	sb := s.Bytes()

	copy(sig[20-len(rb):20], rb)
	copy(sig[40-len(sb):], sb)

	return &Signature{
		Format: k.PublicKey().Type(),
		Blob:   sig,
	}, nil
}

type ecdsaPublicKey ecdsa.PublicKey

func (key *ecdsaPublicKey) Type() string {
	return "ecdsa-sha2-" + key.nistID()
}

func (key *ecdsaPublicKey) nistID() string {
	switch key.Params().BitSize {
	case 256:
		return "nistp256"
	case 384:
		return "nistp384"
	case 521:
		return "nistp521"
	}
	panic("ssh: unsupported ecdsa key size")
}

type ed25519PublicKey ed25519.PublicKey

func (key ed25519PublicKey) Type() string {
	return KeyAlgoED25519
}

func parseED25519(in []byte) (out PublicKey, rest []byte, err error) {
	var w struct {
		KeyBytes []byte
		Rest     []byte `ssh:"rest"`
	}

	if err := Unmarshal(in, &w); err != nil {
		return nil, nil, err
	}

	key := ed25519.PublicKey(w.KeyBytes)

	return (ed25519PublicKey)(key), w.Rest, nil
}

func (key ed25519PublicKey) Marshal() []byte {
	w := struct {
		Name     string
		KeyBytes []byte
	}{
		KeyAlgoED25519,
		[]byte(key),
	}
	return Marshal(&w)
}

func (key ed25519PublicKey) Verify(b []byte, sig *Signature) error {
	if sig.Format != key.Type() {
		return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, key.Type())
	}

	edKey := (ed25519.PublicKey)(key)
	if ok := ed25519.Verify(edKey, b, sig.Blob); !ok {
		return errors.New("ssh: signature did not verify")
	}

	return nil
}

func (k ed25519PublicKey) CryptoPublicKey() crypto.PublicKey {
	return ed25519.PublicKey(k)
}

func supportedEllipticCurve(curve elliptic.Curve) bool {
	return curve == elliptic.P256() || curve == elliptic.P384() || curve == elliptic.P521()
}

// ecHash returns the hash to match the given elliptic curve, see RFC
// 5656, section 6.2.1
func ecHash(curve elliptic.Curve) crypto.Hash {
	bitSize := curve.Params().BitSize
	switch {
	case bitSize <= 256:
		return crypto.SHA256
	case bitSize <= 384:
		return crypto.SHA384
	}
	return crypto.SHA512
}

// parseECDSA parses an ECDSA key according to RFC 5656, section 3.1.
func parseECDSA(in []byte) (out PublicKey, rest []byte, err error) {
	var w struct {
		Curve    string
		KeyBytes []byte
		Rest     []byte `ssh:"rest"`
	}

	if err := Unmarshal(in, &w); err != nil {
		return nil, nil, err
	}

	key := new(ecdsa.PublicKey)

	switch w.Curve {
	case "nistp256":
		key.Curve = elliptic.P256()
	case "nistp384":
		key.Curve = elliptic.P384()
	case "nistp521":
		key.Curve = elliptic.P521()
	default:
		return nil, nil, errors.New("ssh: unsupported curve")
	}

	key.X, key.Y = elliptic.Unmarshal(key.Curve, w.KeyBytes)
	if key.X == nil || key.Y == nil {
		return nil, nil, errors.New("ssh: invalid curve point")
	}
	return (*ecdsaPublicKey)(key), w.Rest, nil
}

func (key *ecdsaPublicKey) Marshal() []byte {
	// See RFC 5656, section 3.1.
	keyBytes := elliptic.Marshal(key.Curve, key.X, key.Y)
	// ECDSA publickey struct layout should match the struct used by
	// parseECDSACert in the x/crypto/ssh/agent package.
	w := struct {
		Name string
		ID   string
		Key  []byte
	}{
		key.Type(),
		key.nistID(),
		keyBytes,
	}

	return Marshal(&w)
}

func (key *ecdsaPublicKey) Verify(data []byte, sig *Signature) error {
	if sig.Format != key.Type() {
		return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, key.Type())
	}

	h := ecHash(key.Curve).New()
	h.Write(data)
	digest := h.Sum(nil)

	// Per RFC 5656, section 3.1.2,
	// The ecdsa_signature_blob value has the following specific encoding:
	//    mpint    r
	//    mpint    s
	var ecSig struct {
		R *big.Int
		S *big.Int
	}

	if err := Unmarshal(sig.Blob, &ecSig); err != nil {
		return err
	}

	if ecdsa.Verify((*ecdsa.PublicKey)(key), digest, ecSig.R, ecSig.S) {
		return nil
	}
	return errors.New("ssh: signature did not verify")
}

func (k *ecdsaPublicKey) CryptoPublicKey() crypto.PublicKey {
	return (*ecdsa.PublicKey)(k)
}

// NewSignerFromKey takes an *rsa.PrivateKey, *dsa.PrivateKey,
// *ecdsa.PrivateKey or any other crypto.Signer and returns a corresponding
// Signer instance. ECDSA keys must use P-256, P-384 or P-521.
func NewSignerFromKey(key interface{}) (Signer, error) {
	switch key := key.(type) {
	case crypto.Signer:
		return NewSignerFromSigner(key)
	case *dsa.PrivateKey:
		return &dsaPrivateKey{key}, nil
	default:
		return nil, fmt.Errorf("ssh: unsupported key type %T", key)
	}
}

type wrappedSigner struct {
	signer crypto.Signer
	pubKey PublicKey
}

// NewSignerFromSigner takes any crypto.Signer implementation and
// returns a corresponding Signer interface. This can be used, for
// example, with keys kept in hardware modules.
func NewSignerFromSigner(signer crypto.Signer) (Signer, error) {
	pubKey, err := NewPublicKey(signer.Public())
	if err != nil {
		return nil, err
	}

	return &wrappedSigner{signer, pubKey}, nil
}

func (s *wrappedSigner) PublicKey() PublicKey {
	return s.pubKey
}

func (s *wrappedSigner) Sign(rand io.Reader, data []byte) (*Signature, error) {
	var hashFunc crypto.Hash

	switch key := s.pubKey.(type) {
	case *rsaPublicKey, *dsaPublicKey:
		hashFunc = crypto.SHA1
	case *ecdsaPublicKey:
		hashFunc = ecHash(key.Curve)
	case ed25519PublicKey:
	default:
		return nil, fmt.Errorf("ssh: unsupported key type %T", key)
	}

	var digest []byte
	if hashFunc != 0 {
		h := hashFunc.New()
		h.Write(data)
		digest = h.Sum(nil)
	} else {
		digest = data
	}

	signature, err := s.signer.Sign(rand, digest, hashFunc)
	if err != nil {
		return nil, err
	}

	// crypto.Signer.Sign is expected to return an ASN.1-encoded signature
	// for ECDSA and DSA, but that's not the encoding expected by SSH, so
	// re-encode.
	switch s.pubKey.(type) {
	case *ecdsaPublicKey, *dsaPublicKey:
		type asn1Signature struct {
			R, S *big.Int
		}
		asn1Sig := new(asn1Signature)
		_, err := asn1.Unmarshal(signature, asn1Sig)
		if err != nil {
			return nil, err
		}

		switch s.pubKey.(type) {
		case *ecdsaPublicKey:
			signature = Marshal(asn1Sig)

		case *dsaPublicKey:
			signature = make([]byte, 40)
			r := asn1Sig.R.Bytes()
			s := asn1Sig.S.Bytes()
			copy(signature[20-len(r):20], r)
			copy(signature[40-len(s):40], s)
		}
	}

	return &Signature{
		Format: s.pubKey.Type(),
		Blob:   signature,
	}, nil
}

// NewPublicKey takes an *rsa.PublicKey, *dsa.PublicKey, *ecdsa.PublicKey,
// ed25519.PublicKey, or any other crypto.Signer and returns a corresponding
// Signer instance. ECDSA keys must use P-256, P-384 or P-521.
func NewPublicKey(key interface{}) (PublicKey, error) {
	switch key := key.(type) {
	case *rsa.PublicKey:
		return (*rsaPublicKey)(key), nil
	case *ecdsa.PublicKey:
		if !supportedEllipticCurve(key.Curve) {
			return nil, errors.New("ssh: only P-256, P-384 and P-521 EC keys are supported.")
		}
		return (*ecdsaPublicKey)(key), nil
	case *dsa.PublicKey:
		return (*dsaPublicKey)(key), nil
	case ed25519.PublicKey:
		return (ed25519PublicKey)(key), nil
	default:
		return nil, fmt.Errorf("ssh: unsupported key type %T", key)
	}
}

// ParsePrivateKey returns a Signer from a PEM encoded private key. It supports
// the same keys as ParseRawPrivateKey.
func ParsePrivateKey(pemBytes []byte) (Signer, error) {
	key, err := ParseRawPrivateKey(pemBytes)
	if err != nil {
		return nil, err
	}

	return NewSignerFromKey(key)
}

// encryptedBlock tells whether a private key is
// encrypted by examining its Proc-Type header
// for a mention of ENCRYPTED
// according to RFC 1421 Section 4.6.1.1.
func encryptedBlock(block *pem.Block) bool {
	return strings.Contains(block.Headers["Proc-Type"], "ENCRYPTED")
}

// ParseRawPrivateKey returns a private key from a PEM encoded private key. It
// supports RSA (PKCS#1), DSA (OpenSSL), and ECDSA private keys.
func ParseRawPrivateKey(pemBytes []byte) (interface{}, error) {
	block, _ := pem.Decode(pemBytes)
	if block == nil {
		return nil, errors.New("ssh: no key found")
	}

	if encryptedBlock(block) {
		return nil, errors.New("ssh: cannot decode encrypted private keys")
	}

	switch block.Type {
	case "RSA PRIVATE KEY":
		return x509.ParsePKCS1PrivateKey(block.Bytes)
	case "EC PRIVATE KEY":
		return x509.ParseECPrivateKey(block.Bytes)
	case "DSA PRIVATE KEY":
		return ParseDSAPrivateKey(block.Bytes)
	case "OPENSSH PRIVATE KEY":
		return parseOpenSSHPrivateKey(block.Bytes)
	default:
		return nil, fmt.Errorf("ssh: unsupported key type %q", block.Type)
	}
}

// ParseDSAPrivateKey returns a DSA private key from its ASN.1 DER encoding, as
// specified by the OpenSSL DSA man page.
func ParseDSAPrivateKey(der []byte) (*dsa.PrivateKey, error) {
	var k struct {
		Version int
		P       *big.Int
		Q       *big.Int
		G       *big.Int
		Priv    *big.Int
		Pub     *big.Int
	}
	rest, err := asn1.Unmarshal(der, &k)
	if err != nil {
		return nil, errors.New("ssh: failed to parse DSA key: " + err.Error())
	}
	if len(rest) > 0 {
		return nil, errors.New("ssh: garbage after DSA key")
	}

	return &dsa.PrivateKey{
		PublicKey: dsa.PublicKey{
			Parameters: dsa.Parameters{
				P: k.P,
				Q: k.Q,
				G: k.G,
			},
			Y: k.Priv,
		},
		X: k.Pub,
	}, nil
}

// Implemented based on the documentation at
// https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.key
func parseOpenSSHPrivateKey(key []byte) (*ed25519.PrivateKey, error) {
	magic := append([]byte("openssh-key-v1"), 0)
	if !bytes.Equal(magic, key[0:len(magic)]) {
		return nil, errors.New("ssh: invalid openssh private key format")
	}
	remaining := key[len(magic):]

	var w struct {
		CipherName   string
		KdfName      string
		KdfOpts      string
		NumKeys      uint32
		PubKey       []byte
		PrivKeyBlock []byte
	}

	if err := Unmarshal(remaining, &w); err != nil {
		return nil, err
	}

	pk1 := struct {
		Check1  uint32
		Check2  uint32
		Keytype string
		Pub     []byte
		Priv    []byte
		Comment string
		Pad     []byte `ssh:"rest"`
	}{}

	if err := Unmarshal(w.PrivKeyBlock, &pk1); err != nil {
		return nil, err
	}

	if pk1.Check1 != pk1.Check2 {
		return nil, errors.New("ssh: checkint mismatch")
	}

	// we only handle ed25519 keys currently
	if pk1.Keytype != KeyAlgoED25519 {
		return nil, errors.New("ssh: unhandled key type")
	}

	for i, b := range pk1.Pad {
		if int(b) != i+1 {
			return nil, errors.New("ssh: padding not as expected")
		}
	}

	if len(pk1.Priv) != ed25519.PrivateKeySize {
		return nil, errors.New("ssh: private key unexpected length")
	}

	pk := ed25519.PrivateKey(make([]byte, ed25519.PrivateKeySize))
	copy(pk, pk1.Priv)
	return &pk, nil
}

redpajama_set_name: RedPajamaGithub


A GOOD DAY FOR SOLAR!
The Brattleboro Town School District has signed a solar Net Metering Credit Purchase Agreement with Soveren Solar that will save the schools 10% on their electricity bills.
Soveren Solar is developing the 500 kW solar farm, which will generate approximately $130,000 in net metering credits per year. The net metering credits will be applied to the Brattleboro Schools electricity bills, and the School District will purchase the credits for 90% of their value, resulting in estimated annual savings of $13,000.
The solar farm will be located in Westminster, VT and will be interconnected to Green Mountain Power's utility grid. The Brattleboro schools will form a net metering group, which will allow the net metering credits generated by the solar farm to offset the charges for the schools electricity consumption. In addition to immediate savings of 10% on electricity, the value of the net metering credits will increase in parallel with electricity rates, protecting the schools from rising electricity costs.
The solar farm will be owned by an investor group that will be able to take advantage of the tax incentives available for solar. The tax incentives, which are not available to the School District as a non-taxed entity, are instrumental to reducing the net cost of the solar farm, and providing the schools with a 10% discount on the purchase of the net metering credits. The Brattleboro School District will not be an owner of the solar farm, and is not responsible for any aspect of its financing, operations or maintenance. The net metering credit purchase agreement is set for a term of 20 years, with an option for the School District to purchase the solar farm at fair market value after 7 years.
Soveren Solar has begun the permitting process for the solar farm by submitting applications for utility interconnection and a Certificate of Public Good from the Public Service Board. The permitting process is expected to take approximately 6 months to complete, and installation is expected to take approximately 3 months. The goal is to have the solar farm completed by the end of 2013.
Once the solar farm is completed, Brattleboro Schools will have the ability to monitor the electricity production data in real time through a web portal, which will provide valuable learning opportunities.
Soveren Solar is very pleased to announce this exciting agreement with the Brattleboro Town School District. The solar farm will expand the role of renewable energy in Windham County, reduce the greenhouse gas emissions associated with fossil fuel electricity generation, stimulate the local economy, save the School District money, and provide exciting learning opportunities for students.
Soveren Solar is a local solar installation and development company based in Westminster West, with more than 30 solar installations operating in Windham County. In 2012 Soveren Solar entered into a net metering credit purchase agreement with the Grammar School in Putney, VT that allowed the school to build a 52 kW solar farm. Soveren Solar is proud to provide solar development strategies that have allowed many area farms, and non-taxable entities such as schools and municipalities the opportunity to Go Solar!
Update: 3/27/13 This great news was covered in The Commons. The article can be read here or downloaded here:Commons-3-27-13-brattleboro-school-board-solar-soveren.


text:
http://briefingpapers.co.nz/category/election2017/ 30% Weekly 2017-10-30 04:01
http://briefingpapers.co.nz/category/nzbudget16/ 30% Weekly 2016-05-29 06:00
http://briefingpapers.co.nz/category/accident-compensation-corporation/ 30% Weekly 2016-06-12 06:00
http://briefingpapers.co.nz/category/agriculture/ 30% Weekly 2016-02-08 19:41
http://briefingpapers.co.nz/category/broadcasting/ 30% Weekly 2018-09-10 06:04
http://briefingpapers.co.nz/category/budget/ 30% Weekly 2019-06-10 06:00
http://briefingpapers.co.nz/category/canterbury-rebuild/ 30% Weekly 2016-05-25 11:56
http://briefingpapers.co.nz/category/climate-change/ 30% Weekly 2017-12-04 04:02
http://briefingpapers.co.nz/category/crime/ 30% Weekly 2017-09-11 06:10
http://briefingpapers.co.nz/category/democracy/ 30% Weekly 2019-07-01 06:00
http://briefingpapers.co.nz/category/disability-policy/ 30% Weekly 2016-10-17 04:06
http://briefingpapers.co.nz/category/domestic-violence/ 30% Weekly 2016-06-06 07:35
http://briefingpapers.co.nz/category/economic-policy/ 30% Weekly 2019-06-18 06:00
http://briefingpapers.co.nz/category/education/ 30% Weekly 2019-05-06 06:00
http://briefingpapers.co.nz/category/environment/ 30% Weekly 2018-06-25 06:02
http://briefingpapers.co.nz/category/eqc/ 30% Weekly 2016-05-25 11:56
http://briefingpapers.co.nz/category/exchange-rate/ 30% Weekly 2015-05-09 09:02
http://briefingpapers.co.nz/category/feminism/ 30% Weekly 2016-06-06 07:35
http://briefingpapers.co.nz/category/food/ 30% Weekly 2018-02-26 04:01
http://briefingpapers.co.nz/category/foreign-policy/ 30% Weekly 2018-06-18 06:01
http://briefingpapers.co.nz/category/globalisation/ 30% Weekly 2018-06-18 06:01
http://briefingpapers.co.nz/category/health/ 30% Weekly 2016-10-17 04:06
http://briefingpapers.co.nz/category/history/ 30% Weekly 2018-11-12 04:00
http://briefingpapers.co.nz/category/housing/ 30% Weekly 2018-03-12 04:04
http://briefingpapers.co.nz/category/human-rights/ 30% Weekly 2018-09-03 06:01
http://briefingpapers.co.nz/category/immigration/ 30% Weekly 2017-12-18 03:58
http://briefingpapers.co.nz/category/inequality/ 30% Weekly 2018-12-11 04:00
http://briefingpapers.co.nz/category/inflation/ 30% Weekly 2017-07-17 06:14
http://briefingpapers.co.nz/category/justice/ 30% Weekly 2017-09-11 06:10
http://briefingpapers.co.nz/category/law/ 30% Weekly 2017-11-13 04:07
http://briefingpapers.co.nz/category/local-government/ 30% Weekly 2019-07-01 06:00
http://briefingpapers.co.nz/category/media/ 30% Weekly 2019-11-17 04:01
http://briefingpapers.co.nz/category/pacific-peoples/ 30% Weekly 2016-06-20 06:01
http://briefingpapers.co.nz/category/population/ 30% Weekly 2017-09-18 06:02
http://briefingpapers.co.nz/category/poverty/ 30% Weekly 2018-09-24 06:01
http://briefingpapers.co.nz/category/privatisation/ 30% Weekly 2016-01-26 20:09
http://briefingpapers.co.nz/category/public-sector/ 30% Weekly 2019-06-04 06:00
http://briefingpapers.co.nz/category/race-relations/ 30% Weekly 2019-02-18 04:00
http://briefingpapers.co.nz/category/refugees/ 30% Weekly 2017-07-03 06:17
http://briefingpapers.co.nz/category/regional-development/ 30% Weekly 2018-02-19 04:04
http://briefingpapers.co.nz/category/research/ 30% Weekly 2018-09-24 06:01
http://briefingpapers.co.nz/category/social-policy/ 30% Weekly 2019-06-18 06:00
http://briefingpapers.co.nz/category/social-security/ 30% Weekly 2018-09-24 06:01
http://briefingpapers.co.nz/category/superannuation/ 30% Weekly 2017-07-10 06:18
http://briefingpapers.co.nz/category/sustainability/ 30% Weekly 2016-11-30 04:12
http://briefingpapers.co.nz/category/tax-policy/ 30% Weekly 2018-03-05 04:08
http://briefingpapers.co.nz/category/te-reo-maori/ 30% Weekly 2018-09-17 06:03
http://briefingpapers.co.nz/category/technology/ 30% Weekly 2019-03-26 04:00
http://briefingpapers.co.nz/category/trade/ 30% Weekly 2018-06-18 06:01
http://briefingpapers.co.nz/category/transport/ 30% Weekly 2015-08-25 19:41
http://briefingpapers.co.nz/category/treaty-of-waitangi/ 30% Weekly 2019-02-18 04:00
http://briefingpapers.co.nz/category/uncategorized/ 30% Weekly 2019-03-11 04:01
http://briefingpapers.co.nz/category/universal-basic-income/ 30% Weekly 2018-03-05 04:08
http://briefingpapers.co.nz/category/weather/ 30% Weekly 2016-01-11 18:52
http://briefingpapers.co.nz/category/work-wages/ 30% Weekly 2018-03-05 04:08
http://briefingpapers.co.nz/category/workplace-safety/ 30% Weekly 2017-04-30 06:15


Poet and Bread Loaf School of English faculty member Gwyneth Lewis was emcee for the Poetry Free for All at the Kirk Center on July 14.
MIDDLEBURY, Vt. – As rain pounded against the roof of the Kirk Center last Friday, poetry enthusiasts packed the main conference room for the first-ever Poetry Free for All, an event cosponsored by the Bread Loaf School of English, the Bread Loaf Writers' Conferences, the Middlebury Language Schools, and the New England Review. Together, the audience and writers explored the question of the evening—"Who do we want to be?"—pondering meaning, shape, and direction within the Middlebury community and exploring how those values stand against the complexities of a rapidly changing world.
The audience had a chance to hear Middlebury President Laurie L. Patton, an accomplished poet with two published collections to her credit, speak alongside Reverend Barnaby Feder, the leader and minister of the Champlain Valley Unitarian Universalist Society. They listened to Spanish poetry delivered by a cohort of professors from the Spanish School; original Navajo poetry presented by Rex Lee Jim, former vice president of the Navajo Nation, veteran poets like Martín Espada and Lauren Marie Schmidt, and young, bold voices like Taylor Abasta, a high schooler from Arizona, and Dariana Guerrero, a student at the Bread Loaf School of English.
The emcee for the evening, former Welsh Poet Laureate and Bread Loaf professor Gwyneth Lewis, gave a few brief opening remarks to explain the motivation behind the event. She emphasized the power of poetry to "reimagine our values and how we want to live," and praised the event's organizers for using art as "a way of summoning a community" of writers, readers, and listeners who, in turn, would participate in the continuous reimagining of that society as it moves forward. Two weeks prior, Lewis had put out a call for poetry submissions to the greater Middlebury community, from which a group of Bread Loaf professors and students had selected a group of poets to perform their own work along with poems from authors who had influenced them.
The poets selected from the general pool shared the stage with a variety of artists who had been specifically invited for the event. Patton read three of her own pieces and was followed by Lauren Marie Schmidt, whose work reflected upon her experience leading a volunteer poetry group in a shelter. Then came the first group of poets selected from the submission pool: Partridge Boswell, Laura Budofksy Wisniewski (read by Barbara Diehl), Stefanie Cravedi, and Jack DesBois '15.5.
The Spanish School contingent read next, comprised of Francisco Fayna Ranz, Pedro Ángel Palou, and Jacobo Sefami. The three delivered their poems in Spanish before English translations were read aloud for the benefit of the audience. The second group of "at-large" poets followed, including Trish Dougherty, Rev. Feder, Caitlin Gildrien, and Matthew Haughton.
Then, the celebrated Martín Espada took the stage. In a booming, resonant voice, he shared a series of poems that, as he explained, sought "to make the invisible, visible."
Rounding off the evening were two more groups of poets, including Jack Mayer, Adam Tedesco, and Marian Willmott, followed by Bread Loaf Teacher Network members Rex Lee Jim, Taylor Abasta, and Dariana Guerrero. With rich, lively recitations incorporating timeless traditions as well as modern-day questions, they reminded the audience of poetry's power to lift and unite voices from every section of society.


text:
Breach diameter analysis of concrete panels subjected to contact charge detonations
Alex M. Remennikov, University of WollongongFollow
Jim Youssef, University of WollongongFollow
Tuan D. Ngo, University of Melbourne
Igor Mentus, Kamenetz-Podolsk National Technical University
Remennikov, A. M., Youssef, J., Ngo, T. D. & Mentus, I. (2018). Breach diameter analysis of concrete panels subjected to contact charge detonations. International Journal of Impact Engineering, 120 95-109.
This paper presents the results of an experimental study on the explosive breaching of concrete panels subjected to contact charge detonations. Three square double-reinforced concrete panels having side dimensions of 500 mm and thickness of 100 mm were designed and tested. The concrete panels were cast with two different compressive strengths of concrete which were normal strength and high strength concrete. The contact charges were cylindrical in shape and utilised Composition B explosive. The mass of the contact charges for the three concrete panels were estimated to result in a breaching failure mode of the tested panels. The external and internal breach parameters of the concrete panels were evaluated by measuring the diameter and depth of the ejection crater, spalling crater as well as the diameter of the breached hole created by the contact charge detonation. Along with the experimental results of this study, a test database of the explosive breaching of concrete panels is compiled from data published in the literature. The data is used to validate analytical models for predicting the characteristics of contact charges required to produce a wall breach of the required shape and size.
http://dx.doi.org/10.1016/j.ijimpeng.2018.05.011


text:
My husband was diagnosed a month before he turned 49.
He was devastated. He was scared. Worried for us, meaning our family. He said, "I'm broken and I can't be fixed."
He's an accountant. Very busy. I don't know how he does it, he's up at 3, 4 in the morning, he has to wake up earlier because it takes him so long to get ready. He's on the first train out and he gets home later and later. He's been getting home at 9.
I think it's taken him a while but I think he's more comfortable with it, but it's hard to tell actually because of the stress of the job right now.
I heard Parkinson's is like snow flakes, I'm sure you've heard that one too. No two are alike. The trajectory of the illness and the speed at which it gets there is different for everyone. The medication is different for everyone.
Knowing that is scary and helpful. I think even though it's uncertain it also gives you more hope. I think where there is uncertainty, there is hope, if that makes any sense.
I work part time in a nursery school with 2 year olds. That's my escape. Even when they're crazy. So "Be like a 2 year old, they're happy in the moment."


QlikView and Qlik® Sense Product Positioning.
By adopting both products and creating a shared data layer with Qlik products, clients can obtain the best return from their investment by avoiding the massive overhead of creating and maintaining a traditional data warehouse.
Qlik does not force you, nor are you required, to buy a whole stack of their products before you can achieve any results, but instead offers extensibility to build best-of-breed solutions to meet your specific needs.
Differentia Consulting help you combine Qlik and complementary products to build a tailored solution deployed on your chosen platform, on premise or cloud, #GreenStack.
By combining Smarter.BI Application Dashboards and optimising your deployment further, we can help you create a highly available decision making platform, #HADMP, that supports most if not all your business decision making needs. We further provide support and services for the complete life cycle of adoption of your Smarter.BI platform powered by Qlik.


text:
Kristina Loring
RADIO DOCUMENTARY
Navigation About RADIO DOCUMENTARY MULTIMEDIA SOUND INSTALLATIONS WERK
WAR INK
I was a lead sound producer for WarInk.org, a virtual online exhibit and multimedia storytelling project that uses war veteran's tattoos as a catalyst to speak about their experience at war and their return home. The site was nominated for a 2015 Webby Award and featured on Newsweek.com, PBS.org, and the Atlantic.com, It's longer form audio narratives were featured on San Francisco's NPR station KQED
KALW'S DIGITAL PLEDGE CAMPAIGN
I led the digital campaign for San Francisco NPR station KALW's annual pledge drive, producing short animations in collaboration with an animator and illustrator. With the help of this animation, featuring the voices of Radiolab hosts Jad Abumrad and Robert Krulwich, we were able to garner new listeners and raise over $160,000 in just ten days. Jad Abumrad later featured this animation as an opener to his live show in San Francisco.


text:
Дервени — греческий топоним. Может означать:

  — деревня.
  — деревня.
  — деревня.
 Дервени (Салоники) — археологическое место.

См. также
 Дарбанд (значения)
 Дербенд (значения)
 Дербент (значения)
 Деруэнт


flanbwayan - Why Do Most Black and Latino Students Go to Two-Year Colleges?
A new initiative in east Los Angeles hopes to create a culture that will steer students to four-year schools.
The partnership between the Los Angeles Board of Education, leadership at Cal State L.A., and East L.A. College aims to create a college-going culture in a section of East Los Angeles where only a tiny share of the overwhelmingly Latino residents have college degrees. Research shows that giving minority high school students opportunities to spend time on college campuses and in classrooms, earn college credits while still in high school, and access mentors and internships-all additional features of the arrangement-makes them more likely to both enter college and graduate.
In four years, the majority of Americans under the age of 18 will be people of color.
Even minority students with high GPAs and standardized-test scores are far more likely to attend two-year schools than their white peers and are subsequently far less likely to graduate. The new college pipeline established for students at Garfield High in East Los Angeles should alter that trend-and it could provide a model for boosting graduation rates in other areas of the country that badly need the help.