text:
Richie Sambora Gearing Up For Solo Release
Posted on June 25, 2012 by Skid in Needs Reviewed, Uncategorized // 0 Comments
Bon Jovi guitarist Richie Sambora has been hard at work on his first solo album in 14 years, set for release this summer, and has returned to the studio with the New Jersey rockers who made him famous.
"We're in the studio and it sounds great," Sambora told Rolling Stone. "Jon (Bon Jovi) and I were writing. I'd fly to New York and we came up with a lot of great tracks and we started laying down basics a couple of weeks back. That will be out sometime in early 2013."
Before its release, Sambora will concentrate on his own, self-titled album, and he believes it will surprise fans quite a bit. "I think people look at Richie Sambora and they put me in the Bon Jovi box, but that's not what this record is," he said. "I think they don't see me as a singer, and I was the lead singer in every band I was in before Bon Jovi. I hope I get to change people's minds on this record. That's what I'm gonna try to do."
If Sambora's label choice is any indication, he is serious about establishing his independent credibility. Richie Sambora will be released on the indie darling Dangerbird Records, home to Silversun Pickups, Fitz and the Tantrums and Minus the Bear. The guitarist for Bon Jovi and Dangerbird might seem like an odd fit on the imprint, but Sambora is looking forward to teaming with them. "I'm really excited to work with Dangerbird," he explained. "Jeff (Castelaz, the label co-founder) is an unbelievable guy and I've been having great meetings with him."
Sambora described the material as "organic" and featuring a lot of "jamming." "We really had a good time making the music," he said. "I think that's what attracted me to the whole indie thing: I could make the music the way I wanted."
Read more at RollingStone.com
Courtesy of www.sleazeroxx.com


text:
It looks like javascript is disabled. In order to use this site, you must have javascript enabled.
After enabling javascript, please click here or reload the page.
WoodenBoat - March-April 2021 - Page: FC
COMMUTER CATAMARAN • SPRAY RAILS • SHIP'S WHEEL PRIMER
THE MAGAZINE FOR WOODEN BOAT OWNERS, BUILDERS, AND DESIGNERS
D-Class Catboats
The Herreshoff 121⁄2 Reimagined
First Light's Glued-Lap Powerboats
www.woodenboat.com
$8.95 in Canada
Unable to display in this view. Please rotate your device.
FC IFC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 GS1 GS2 GS3 GS4 GS5 GS6 GS7 GS8 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 IBC BC FC IFC - 1 2 - 3 4 - 5 6 - 7 8 - 9 10 - 11 12 - 13 14 - 15 16 - GS1 GS2 - GS3 GS4 - GS5 GS6 - GS7 GS8 - 17 18 - 19 20 - 21 22 - 23 24 - 25 26 - 27 28 - 29 30 - 31 32 - 33 34 - 35 36 - 37 38 - 39 40 - 41 42 - 43 44 - 45 46 - 47 48 - 49 50 - 51 52 - 53 54 - 55 56 - 57 58 - 59 60 - 61 62 - 63 64 - 65 66 - 67 68 - 69 70 - 71 72 - 73 74 - 75 76 - 77 78 - 79 80 - 81 82 - 83 84 - 85 86 - 87 88 - 89 90 - 91 92 - 93 94 - 95 96 - 97 98 - 99 100 - 101 102 - 103 104 - 105 106 - 107 108 - 109 110 - 111 112 - 113 114 - 115 116 - 117 118 - 119 120 - 121 122 - 123 124 - 125 126 - 127 128 - 129 130 - 131 132 - IBC BC
Editor's Page
Getting Started in Boats
Building a Classically Inspired Ship's Wheel
The Levant 15
The Cat Men of Quincy
A Fast Cat for Islesboro
First Light's Lapstrake Series
Spray Rails
Aboard: OUTLIER
Launchings...and Relaunchings
Designs: Review
Designs: Sketchbook
Raftings
Save a Classic
Anne T. Converse Photography
Arch Davis Designs
Artisan Boatworks
Barkley Sound Oar & Paddle Ltd
Baum & Konig
Beetle Inc
Billings Diesel & Marine
Boat Building Academy
Bohndell Sails & Rigging
Broad Reach Boatbuilding
Camden Classics Cup
Cape Fear Community College
Cayuga Wooden Boatworks
Chesapeake Light Craft
Choptank Boatworks
Concordia Yacht Sales
Cutts & Case Shipyard
Devlin Designing Boat Builders
Dudley Dix
Edensaw
Edgecomb Boat Works
Epifanes North America
Page BC
Fair Wind Fasteners
Fasco Epoxies
First Light Boatworks
Fisheries Supply
Francois Vivier Architect
Gambell & Hunter
Gannon & Benjamin
Glen-L Marine
Gowrie Group
Hamilton Marine
Heritage Marine Insurance
Hewes & Company
Hylan & Brown Boatbuilders
Page IFC
IYRS
J.M. Reineck & Son
John's Bay Boat Company
M&B Shipcanvas Co.
M&H Bartles Sailmakers
Marshall's Cove Marine Paint
Metinic Yacht Brokers
MP&G Boats
Newfound Woodworks
Northwest Navigation
Nutshell Pram
Parker Marine Enterprises
Pendelton Yacht Yard
Pettit Paint
Port Townsend Foundry
Port Townsend Shipwrights Co-op
Professional Boatbuilder
R&W Traditional Rigging & Outfitting
Reuben Smith's Tumblehome Boatshop
San Juan Sharpie Schooner
Sandeman Yacht Company
Shaw & Tenney
Six River Marine
Small Boats 2021
Small Boats Monthly
Snediker Yacht Restoration
Sparkman & Stephens
Sperry Sails
Stonington Boat Works
Strong Firearms LLC
Page IBC
The Landing School
Top Notch Fasteners
Toplicht
Tri-Tex
US Bells
WoodenBoat Back Issues
WoodenBoat School
ZOboats
Table of Contents Articles
Thumbnail Preview
Select Year 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009
March-April 2022
Select pages to print:
Note:You are viewing the digital edition from a share link. The system will only print those pages you have access to.
First page to print
FC IFC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 GS1 GS2 GS3 GS4 GS5 GS6 GS7 GS8 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 IBC BC
Last page to print
Print Images
Please wait while we create the share URL...
Link has been copied to your clipboard.
Sender's Email
Sender's Name
Recipient(s) Email (separate multiple addresses with a ';')
One Page Two Page
Page Flip Animation
Mouse Wheel Functionality
Page Flip Zoom In/Out Scroll (Default)
Download Offline Version
Enter your query:
Select a single issue to search, or select "All Issues" to search all available issues.
All Issues Current Issue January-February 2023 November-December 2022 September-October 2022 July-August 2022 May-June 2022 March-April 2022 January-February 2022 November-December 2021 September-October 2021 July-August 2021 May-June 2021 March-April 2021 January-February 2021 November-December 2020 September-October 2020 July-August 2020 May-June 2020 March-April 2020 January-February 2020 November-December 2019 September-October 2019 July-August 2019 May-June 2019 March-April 2019 January-February 2019 November-December 2018 September-October 2018 July-August 2018 May-June 2018 March-April 2018 January-February 2018 November-December 2017 September-October 2017 July-August 2017 May-June 2017 March-April 2017 January-February 2017 November-December 2016 September-October 2016 July-August 2016 May-June 2016 March-April 2016 January-February 2016 November-December 2015 September-October 2015 July-August 2015 May-June 2015 March-April 2015 January-February 2015 November-December 2014 September-October 2014 July-August 2014 May-June 2014 March-April 2014 January-February 2014 November-December 2013 September-October 2013 July-August 2013 May-June 2013 March-April 2013 January-February 2013 November-December 2012 September-October 2012 July-August 2012 May-June 2012 March-April 2012 January-February 2012 November-December 2011 September-October 2011 July-August 2011 May-June 2011 March-April 2011 January-February 2011 November-December 2010 September-October 2010 July-August 2010 May-June 2010 March-April 2010 January-February 2010 November-December 2009 September-October 2009 July-August 2009 May-June 2009 March-April 2009 January-February 2009
Here are a few tips for the features available in this interactive publication:
Left Pull-Out Menu
FAQ/Issues
Right click(Command + click) your mouse on the magazine pages to pop up a Quick Menu of the most used reader features:
Click Share Page to open up several options for sharing articles or content:
Copy the page link code/URL to your blog.
Email a link to the page to friends (please note publishers may limit sharing to a limited number of pages).
Post links to your favorite social media site.
To print a page or range of pages, select the first page you wish to print from the left drop down, and the last page you wish to print from the right dropdown, then click Print button.
Click this option to download a PDF version of the magazine for offline viewing.
Add a bookmark to easily return to a favorite page by clicking Add Bookmark .
Make notes to stick on any page while reading by clicking Add Note .
Click this option to change from Two Page viewing to One Page viewing. Both selections are optimized to fit the screen.
Click the Zoom option to choose to view a Larger or Smaller version of the page size. Click Fit to Screen to go back to the best size to fit the screen.
To open up additional features, hover over or click on the arrow on the left. You can pin this pull-out menu to have it remain visible (or close by clicking on the push pin ). Included in this tab:
Click to reveal the key articles in this issue, and go directly to any article.
Open to reveal the list of advertisers in this issue and click to go to any ad page.
Open the Thumbnails tab to reveal thumbnails of each page - click to go to a specific page.
Click to review your list of bookmarks by issue and page.
Click to reveal the notes you have added within each issue.
Use the forward/back buttons on each side of the viewer to advance.
Use the arrow keys on your keyboard.
Click on the corner of a page.
Select a specific page from the page number drop down.
Click on the Archive button to reveal past issues available. These are sorted into a tab for each year. Click on the year, then the specific issue to open up the desired issue.
Use Search to locate a phrase or keyword in the current issue. Select the Advancedtab for more search features. Search results are returned and highlighted on each page to allow for easy identification.
Other features are available when you click Tools - these may include:
Change default display from Two Page to One Page.
Turn off Page Flip Animations.
Turn off Sound Effects.
Ability to Save My Preferences.
Download the magazine in PDF format to view offline.
Frequently Asked Questions and Issues Encountered
Q: Why am I being asked to login to access certain features of the magazine?
A: In order to save your specific viewing preferences and to save all of your bookmarks and notes, we ask that you create an account with us using your email address. This will allow you to retrieve your entire library of bookmarks and notes on all issues and also view each issue with your specific saved preferences.
Q: Where can I download a PDF version of this magazine?
A: You can access the PDF download feature by right clicking on the magazine and selecting Download PDF. Alternatively, you can access it from the Tools option on the top navigation of the viewer and click on Download PDF.
Q: Why do the magazine pages appear blurry?
A: Our viewer is tailored to display pages in a level of quality that is optimal for the viewing area of your specific monitor's screen resolution. However, if you have increased your zoom level inside of your web browser (generally located under View/Zoom in your browser) - this may distort the quality of images that our viewer has calculated to display to you. By setting this back to its default (100%) - this will allow the viewer to display clearer images.
Q: Why does the magazine blur when I'm flipping the page and how can I make it stop?
A: Under some configurations, when flipping the page using the corners of the magazine, a slight blur will appear on the page while it is being flipped to the next page. In order to remove this occurrence, you can turn off Page Flip Animation under the Tools option located above the magazine.
Q: Why do I get less than optimal results when trying to print out pages?
A: Our print feature relies on your web browser's print functionality - and how that browser communicates with your specific printer. If you note that pages are getting cut off, or you are having other issues when printing, it is likely that you need to adjust your printer's settings to scale to fit page.
Alternatively, if there is a PDF Download option available you can download the PDF first and then print using Adobe Acrobat Reader's print feature. There are known issues in printing fom Internet Explorer 7, so if you are using this browser, you may wish to try a different one. If you are able to print from your browser normally but are having issues specifically with printing pages from the magazine, then please contact technical support.
Contact Technical Support:
Show tips on startup
We note that your session has been inactive for some time.
If there is no activity in , your session will be automatically logged off.
We note that your session has been inactive for some time. Please click the button below to refresh your session.
Note: You may be required to log in again.
Some areas of this site require free registration. To log in or create an account, simply enter your information below.
Thank you for sampling the digital edition of WoodenBoat To continue reading this issue, you must be a subscriber.
If you are a subscriber, you must log-in before you can continue viewing the digital edition.
Click here to log-in
If you are not yet a subscriber:
It seems that the digital edition is running in a frame on another website. In order to have the best viewing experience, we recommend that the site be opened in its own window. Please click the button below to reload the site in a new window.

redpajama_set_name: RedPajamaCommonCrawl


The use of stents to resolve obstructions within body passageways is an accepted and successful medical treatment modality. However, traditional metallic stents are not suitable for use where the size of pathway structure changes as it would with a growing child. Hence, the permanency of stents has limited use and creates a particular challenge in treating pediatric patients. Stenting has shown to be efficacious in relieving obstructions associated with pulmonary arterial stenosis (PAS), however, the permanency of the implant has resulted in repeat operations, and limited growth potential of the stented blood vessels. In addition, the size of the patient population and commercial market has deterred larger organizations from focusing on development of devices to treat the pediatric population. The current standard of practice includes surgery, balloon angioplasty and bare metal stenting. Balloon angioplasty is plagued by short term failure for which there is no treatment option and recurrent stenosis. Surgery presents a much higher risk/benefit profile and metallic stenting has limited utility in the smaller child.
The use of bioabsorbable stents to treat obstructions in blood vessels of pediatric patients provides the benefit of stenting and removes the risks associated with a permanent implant (i.e., the need to re-intervene and the long term clinical management of the patient). The development of a bioabsorbable stent system for the treatment of PAS represents a shift in modification of adult product for use in pediatrics to development of a novel system specifically designed for the treatment in children.
The APDC provided both clinical and developmental expertise, as well as increased collaborative efforts to identify additional specialists in the field to see this project forward. This project is funded by APDC. When the project joined the consortium the device was in the prototyping stage of development.


text:
Homeschool Family Raided By Missouri Sheriff, Parents Tasered And Pepper-Sprayed
A police raid on the home of a Missouri homeschool family involved the use of a Taser and pepper spray. The children were ultimately removed from the home and placed in the custody of social services. A Nodaway County Sheriff and an officer entered the home without a warrant.
A Nodaway County, Missouri, court has ruled against Sheriff Darren White and Captain David Glidden in the homeschooling family case. The court ruled that the use of a Taser and pepper spray on the mother and father violated the United States Constitution. The police raid was prompted by a social services workers requesting an investigation into the home because it was allegedly "messy." The family complied with the first inspection, but objected when a second visit soon followed.
The child endangerment and resisting arrest charges against Jason and Laura Hagan were ultimately dismissed. The New Hampton homeschool couple filed a lawsuit seeking punitive and compensatory damages, along with attorney fees. The Home School Legal Defense Association is aiding Laura and Jason Hagan in the legal proceedings against the team involved with the police raid team at the Nodaway County Sheriff's Office.
Home School Legal Defense Association (HSLDA) attorney James Manson deemed the police raid team violated the Fourth Amendment rights of the homeschool family.
"We need to be vigilant. We need to be willing to stand up for our rights," Manson said, adding that law enforcement officials need to be reminded that the "rules apply to them, too."
When the Hagan family turned the social services worker away during the second attempt to inspect the home to make sure that it was not "messy," the staffer called the Nodaway County Sheriff. Captain David Glidden reportedly demanded to be allowed inside the home and had the request denied. According to the complaint filed by the Missouri homeschool family, Captain Glidden then used pepper spray on Jason and Laura Hagan.
"Glidden then turned to Jason, who was still standing, and shot him in the back with his Taser," the legal document maintains.
Laura Hagan attempted to close the front door, at which point Captain David Glidden shot his Taser at the closing door, according to the formal complaint filed by the homeschooling family. Sheriff Darren White then allegedly became involved with the incident.
"Together they forced open the door and found Laura and Jason lying on the floor," the Home School Legal Defense Association said.
The HSLDA also claims that the Missouri sheriff and the captain "slapped Laura, knocking the glassed off of her face." The Nodaway County law enforcement officials then allegedly threatened to shoot the family dog, called Laura a "liar" and then threw a phone across the room before handcuffing the homeschool couple.
The entire ordeal reportedly took place in front of the three Hagan children, ages 8 to 12. The children remained in the custody of the state for "months."
The judge who tossed out all of the charges levied against the Missouri homeschooling parents said, "The court will not allow [an] exception to sanction warrantless entry into a private residence by pepper spray and Taser. If the officer had a warrant in hand and such force was necessary, that is a different story, but those are not the facts of this case."
What do you think about the police raid on the Missouri homeschool family?
http://www.inquisitr.com/1623697/homeschool-family-raided-by-missouri-sheriff-parents-tasered-and-pepper-sprayed/


text:
Posted on December 24, 2015 by Greater Media
By KAYLA J. MARSH
Grocery stores are offering more than food shopping such as this gingerbread cookie decorating class held at Whole Foods Market in Marlboro on Dec. 17. STAFF PHOTOGRAPHER ERIC SUCAR Area grocery stores are slowly changing the way they cater to their customers by providing more services and programs to help make a regular trip to the supermarket a day filled with fun, learning and adventure.
From nutritional assistance, children's classes and even free home delivery services, supermarkets have become hotspots of activities and resources, showing it is not just about the shopping, but about community togetherness. "I feel like we are definitely providing something more than just shopping," said Laura Fette, marketing team leader at Whole Foods Market in Marlboro.
"I feel like the store has been a destination for events, whether kid- or adult-focused, and we are even finding people within the community, partnering with them and helping them to build their own businesses, and I think that has been what has worked really well here — finding what our community needs and really catering to it."
Children of all ages watch a gingerbread cookie demonstration by Dani B. Fiori at Whole Foods Market in Marlboro on Dec. 17. STAFF PHOTOGRAPHER ERIC SUCAR According to Fette, Whole Foods in Marlboro offers some unique partnerships and classes for its clientele, such as with Heirloom Kitchen in Old Bridge for cooking classes and Macaroni Kids of Western Monmouth County, where children get to make their own pizza and macaroni necklaces.
"Finding these local experts who are really trying to build their businesses as well, and collaborating together to bring programming inside the store, people see we are beyond a shopping destination," Fette said. "We're offering the full scope of things."
Fette also said the store offers a You & Me Toddler Program several times a month.
"Each Whole Foods Market is different, and I really feel like that we cater to our community … we're becoming a part of people's routine beyond just shopping," she said.
Aside from classes, Michael Sinatra, public relations and public affairs director at Whole Foods Market's Northeast Region, said the supermarket chain also offers additional services such as catering and takes pride in giving back to local communities.
"A lot of people enjoy taking advantage of our programming, such as our special ordering and catering services and our special menus," he said.
At Whole Foods Market, customers can make shopping quick and easy by reserving and ordering meals, entrees, and party must-haves online and then picking them up at the store.
"We definitely see a higher volume of orders this time of year, but customers are aware and use this service at various times of the year," Sinatra said.
The supermarket chain also participates in community giving days or what they refer to as "5% Days."
"Each store is always donating food to area food banks and shelters," Sinatra said. "Then several times a year, we hold community giving days where five percent of that day's net sales are donated to a local area charity or educational organization."
The Whole Foods Market in Marlboro will also join the Manalapan and Marlboro municipalities for holiday tree lighting events, providing baked goods, hot chocolate and company.
"I feel like we do a lot in the community," Fette said. "People are coming here for things, but we're also coming to them as well … and I think that makes a big difference too."
Valerie Fox, media relations coordinator at Wegmans Food Markets, said providing services such as catering and a free public app is about making customers' lives and shopping experience as simple as possible.
"Wegmans' aim is always to help mealtimes for families be as great and easy as possible," she said.
"Our services help save customers time … but I think the number one thing that separates us are our people and customer service representatives who provide an added convenience."
One service Fox said Wegmans provides is a free downloadable app that makes going to the supermarket less of a hassle.
"The Wegmans app is a very useful tool," she said. "Customers can create their shopping list right there, and it'll sort everything by aisle, and as you add items to your list, it will automatically estimate the total so you can manage your budget."
On the app, customers can also browse through hundreds of recipes and add ingredients to their shopping list with just one touch and can even watch easy how-to videos to make meals easier.
"We also offer three ways for customers to enjoy our catering services, and that is either by going online, ordering by phone or by coming into your local Wegmans store," Fox said.
From simple cheese and deli platters to cocktail party menus, complete holiday dinners and even delicious dessert trays, catering experts and chefs help with cooking and planning so families can have a memorable gathering.
"Many families have told us that they just don't have time to do all the prep work themselves, so while this is not a full catering service with people coming to your home to serve, it provides our customers a service where they can order all their party-planning needs in one place."
At ShopRite, a growing service is the supermarket's ShopRite From Home program, which allows customers to save time and energy by ordering their groceries from the convenience of their own residence.
"The majority of ShopRite stores offer the ShopRite From Home service, which allows customers to shop online and pick up groceries at the store or have those groceries delivered right to their doorstep," said Karen O'Shea, spokeswoman for Wakefern Food Corp.
Whether you are a busy parent, are injured or can't make it to the store for some other reason, the ShopRite From Home service is an effortless way to get all the groceries you need with the click of a button.
"The ShopRite Mobile App and ShopRite From Home service allow customers to place orders electronically, and those grocery orders are then shopped in store by personal, trained shoppers," O'Shea said. "Customers can tell our shoppers how they like their produce picked or cold cuts sliced. Our shoppers will also call customers at home if we are out of a certain item.
"Service is key, and it's the reason our ShopRite From Home service continues to grow each year."
Heather Casey of Edison said that, with being a mom of four sons and she and her husband both working full time, ShopRite from Home allows her to order her groceries on her time and schedule the deliveries for when it is most convenient.
"With four kids and both my husband and I working full time, every second counts," Casey said. "We started using ShopRite from Home when my youngest son was born and food shopping became an added challenge.
"It is so helpful because we can shop from our phones or computer early in the morning or late in the evening when the kids are asleep and schedule pickups [or] deliveries around our work/family schedules. I rarely see the inside of the store any more because this service is so helpful!"
The ShopRite Pharmacy App makes getting prescriptions easier for customers.
"The ShopRite Pharmacy App makes managing prescriptions simple by allowing customers to refill prescriptions and transfer prescriptions right to their local ShopRite," O'Shea said.
Diana Fransis, retail dietitian program supervisor at Wakefern Food Corp., works closely with more than 120 registered dietitians across 130 stores, training them to work with customers and educating them on making healthier choices while food shopping, as well as carrying out these choices by preparing healthy, well-balanced meals.
"Our registered dietitians will sit down with customers in a free one-on-one consultation, talk about their needs and goals, find out what they are looking for, dive into a diet plan and will even walk around the store with customers showing them where the food that is best for them is," Fransis said.
ShopRite's Culinary Workshops is a hands-on cooking class program taught by professionals who share their skills and knowledge, helping customers acquire limitless meal possibilities that include delicious, healthy ingredients.
"They're cooking full meals with appetizers, entrees, desserts, and we even have a kids cooking class that teaches them how to make a very easy meal."
According to Fransis, part of the supermarket's Health and Wellness program includes the Dietitian's Selection recipe program, a collection of recipes featuring healthy ingredients and essential nutrients while limiting the amount of fats, cholesterol and sodium.
"People are becoming much more aware about healthy eating and getting proper nutrition, and there is so much that our registered dietitians and chefs offer and can help with," Fransis said. "All our services are free."
Arlene Putterman, manager of public and community relations at Stop & Shop's New York Metro Division, said getting prepared for the holidays or other festive occasions is easy as customers can order party platters, desserts, cakes and other arrangements online for in-store pickup and can order flowers.
"Stop & Shop provides fully prepared holiday dinners," she said. "All the fixings without the prep work."
Putterman said the supermarket's Peapod service also makes delivering groceries to your home or business easy.
"Peapod online home delivery service strives to deliver convenience and value," she said. "Customers can order online or on Peapod's free mobile app for grocery home delivery or car-side service at one of our many pickup locations."
CategoriesSentinel-EBS News
Previous PostPrevious HILLSBOROUGH: Girls basketball team flashes opening-game hustle
Next PostNext HILLSBOROUGH: Two hired to succeed middle school retirees


Discussion in 'Primary' started by Nicky Byrne, Apr 13, 2011.
I published a Letters and Sounds planning resource a few years ago. We've been using Letters and Sounds in school for a long time now and I am starting to review it. There are some great ideas but also some things that aren't working very well which I hope to work on.
I was wondering if you could tell me what you think works well but also what doesn't work well. It would be interesting to start some dialogue about Letters and Sounds now that it seems to be used and is embedded in a lot of schools.


Product reviews for "Oracal Decal"
Not showing 12 reviews left without comment.
I absolutely love my decal. It looks great and was easy to apply.
Great product and quality designed!!!
I don't like having to put in a twenty word comment. My rating shows my opinion.
A must for all South Carolina Fans!


text:
Q: ERROR Error: Uncaught (in promise): ReferenceError: google is not defined I'm using Angular 2 + Google Maps Places Autocomplete in my projet it gives me this error:

ERROR Error: Uncaught (in promise): ReferenceError: google is not defined

heres the html:
  <agm-map  id="googleMap">

  </agm-map>

component :
 ngOnInit() {
    var p1 = new google.maps.LatLng(45.463688, 9.18814);
    var p2 = new google.maps.LatLng(46.0438317, 9.75936230000002);

    let  directionsService = new google.maps.DirectionsService;
    let  directionsDisplay = new google.maps.DirectionsRenderer;
    let mapProp = {
        center:{lat:  30.42018, lng: -9.5981500},
        zoom: 5,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    let map = new google.maps.Map(document.getElementById("googleMap"), mapProp);
    directionsDisplay.setMap(map);
    this.calculateAndDisplayRoute(directionsService, directionsDisplay);
//set google maps defaults
this.zoom = 4;
this.latitude = 39.8282;
this.longitude = -98.5795;

//create search FormControl
this.searchControl = new FormControl();

//set current position
//this.setCurrentPosition();

  var options = {
  types: ['(cities)'],
  componentRestrictions: {country: "ma"}
  };
  //load Places Autocomplete
  this.mapsAPILoader.load().then(() => {
  let autocomplete = new
  google.maps.places.Autocomplete(this.searchElementRef.nativeElement,
  options);

  });
 }

the module:
 imports: [
   AgmCoreModule.forRoot({
  apiKey: "MyOWNKEY",
  libraries: ["places"]
}),

By the way I'm using AGM(Angular Google Maps)

A:     declare var google.

put this at the top of your component.
And also, of course make sure you have added the google map script at the top of your Angular's index.html page

redpajama_set_name: RedPajamaStackExchange


Day two at the Brickyard set the stage for a full day of practice, with seven hours of open track for teams to take advantage of. Jack Harvey and Meyer Shank Racing (MSR) continued to test the new 2018 aero kit – which differs from last year's design.
Putting the technical partnership with Schmidt Peterson Motorsports (SPM) to full use, MSR and SPM worked together during the early afternoon hours of practice to generate data from the four Honda-powered IndyCars across the partnership. For nearly 30 minutes of group running, Harvey and the three SPM machines worked nose to tail, testing options as they alternated the running order.
Harvey immediately showed improvement from the previous day of testing, jumping to a speed of 223.593-mph on just his 12th lap around the 2.5-mile oval. Harvey continued to add laps into his bank, circling the track 56 times before the two o'clock hour.
The final few hours of the day saw the Shank team practice live pit stops while also making several long runs out on track. At the end of the day Harvey was just shy of hitting the 224-mph mark with a fast speed of 223.923-mph after completing 117 total laps. The confidence level continues to build as the team grows its notebook with every session.


WASHINGTON (Reuters) - Record-setting Olympic champion Michael Phelps has been banned for three months by USA Swimming amid controversy over a photograph published in a British newspaper purportedly showing him smoking marijuana.
Phelps's financial support has also been cut off for the same three-month period, the sport's national governing body said in a statement on its website (www.usaswimming.org) on Thursday.
"This is not a situation where any anti-doping rule was violated, but we decided to send a strong message to Michael because he disappointed so many people, particularly the hundreds of thousands of USA Swimming member kids who look up to him as a role model and a hero," the federation added.
"Michael has voluntarily accepted this reprimand and has committed to earn back our trust," the statement said.
The photograph, said to have been taken at a November party at the University of South Carolina, was published by British tabloid newspaper News of the World last Sunday.
Phelps accepted the ban, saying he understood USA Swimming's "point of view," the swimmer's spokesman Drew Johnson said.
Phelps has repeatedly apologized for the incident and said he may backtrack on his plans to compete at the London Olympics in 2012.
The International Olympic Committee said his apology was proof of his sincerity and the world swimming's governing body FINA is also backing the embattled swimmer.


text:
It's Fall Y'all
If you fill your calendar with the activities that we have listed here, fall will come and go before you know it. Enjoy!
Photo by Georgia Department of Natural Resources
The Shores of Lake Allatoona
See the trees as they reflect on the lake as you cruise the calm waters with your closest friends on a captain's tour, offered through the Little River Marina. A captain will drive the boat and offer a tour of the lake and special locations. The marina offers 25 percent off the price of boat rentals through the fall.
For more information on specialty events and group tours, call Michelle at 770-345-2900 or 770-331-2040.
Red Top Mountain State Park
Nothing can top a breathtaking view of Georgia forests painted with myriad oranges, reds and golds in the crisp autumn air. Autumn weather beckons trail-goers to enjoy the cooler climate via water, wheels or trusty hiking boots. Feel the leaves crunch underfoot while hiking, breeze past a blur of fall foliage on a mountain bike and camp under the stars.
• By mountain bike: Circle the meandering four-mile Iron Hill Trail loop while admiring the spectacular sights of Lake Allatoona's autumn foliage. This park is part of Georgia's Muddy Spokes Club, a series of mountain biking trails created to challenge experienced and casual cyclists alike to tackle 68 miles of trails in 11 state parks.
• Hike with your dog: Take your dog on the White Tail Trail at Red Top as part of Georgia State Parks' newest Tails on Trails club. Hikers and their four-legged companions are challenged to hike seven trails at one of Georgia's state parks and, upon completion, dogs earn a bandana and their owners earn a T-shirt for logging the miles. The trail meanders through hardwood forest to a beautiful overlook of Lake Allatoona. More than 15 miles of trails wind through the forested park, and dogs are welcome on all, not just the Tails on Trails designated trail.
• Camp under the stars: The First-Time Camper program immerses newbies into camping in a safe, fun way. Thirteen state parks, including Red Top Mountain, offer loaner gear by Coleman, REI and North Face. For $50, first-time adventure seekers can spend two nights in a modern campground with a tent, sleeping pads, chairs, a camp stove, lantern and marshmallow-roasting sticks. Park staff and volunteers can help set up the tents and provide "Camping 101" instructions.
Information courtesy Georgia Department of Natural Resources.
Foraging (for candy)
Towne Lake Community Church Trunk-N-Treat Bible Stories, 7-9 p.m., with games, candy, cake walk, bonfire and more. Kid-friendly costumes please. The church is at 132 N. Medical Parkway, Woodstock. www.tlcchurch.com
Cherokee YMCA trunk or treat is 3-8 p.m. at the outdoor facility at 201 E. Bells Ferry Road, Woodstock. Also featuring hayrides, climbing tower, costume contest, games and a bounce house. Free.
Trunk or Treat at River Ridge High School 9 a.m.-2 p.m. Other activities include face painting and playing on inflatables. River Ridge is at 400 Arnold Mill Road, Woodstock. Email RRHStrunkortreat@gmail.com with questions.
Trunk or Treat 5-7 p.m. with live music at Bascomb United Methodist Church, 2295 Bascomb Carmel Road, Woodstock.
www.bascombchurch.org
Trunk or Treat & Fall Festival 4-7 p.m. at Fields Chapel United Methodist Church, 1331 Fields Chapel Road, Canton. Food, games, candy and hayrides. www.fieldschapel.org
Oct. 1
Holly Springs Autumn Fest is set for 10 a.m.-5 p.m. at Barrett Park and will feature local arts and crafts vendors, food, a children's area with inflatables, pumpkin painting and a pumpkin seed spitting contest. www.hollyspringsga.us
Cornerstone Community Church is hosting its first fall festival 4-8 p.m. at 4206 N. Arnold Mill Road, Woodstock. The event is free and open to the public. It will include food, inflatables, door prizes and games. "It's the Great Pumpkin, Charlie Brown" will be shown in the sanctuary. There also will be live music including praise and worship, Southern gospel and bluegrass. Prizes will be given to the first 150 children. For more information, contact Sadie Wauford at mrs.wauford@hotmail.com or Erika Neldner at eneldner@gmail.com.
Woodstock Lions Club festival at His Hands Church, 550 Molly Lane, Woodstock. 11 a.m.-4 p.m. Train and helicopter rides, horseback riding, bouncing houses, fire truck for kids to climb on. Woodstocklionsclb@gmail.com. 770-906-2958
Arnold Mill Elementary festival 5-8 p.m. with games, inflatables, music and food. The school is at 710 Arnold Mill Road, Woodstock.
Woodstock Elementary School festival, 6-9 p.m. with games, cake walk, face painting, vendors, snow cones, popcorn and barbecue.
Oak Grove Fine Arts Academy will host a Dr. Seuss Fall Festival beginning at 6 p.m. The school is at 6118 Woodstock Road, Acworth.
Sixes Elementary festival is 5-9 p.m., with traditional games including Duck Pond. Games are sponsored by homeroom classes. Also includes a fun zone with inflatables, silent auction, pumpkin decorating contest between all classes and shopping from local vendors. The school is at 20 Ridge Road, Canton.
Cherokee Zombie Fest will take over downtown Canton 4-9 p.m. Last year's event drew about 6,000 fans to enjoy the live music, contests and zombie face painting. Sponsored by Cherokee FOCUS, a nonprofit that helps children and families in our county. Admission: adults $5, children age 11 and younger free, families up to six people, $20. www.cherokeefocus.org.
It's Fall Y'all 5K and Festival benefits Cherokee Impact Soccer. Begins with a 5K at 10 am. At Woodstock First Baptist Church, 11905 Ga. 92. Arrive at 9:30 to sign in. Family festival follows the race. www.itsfallyall.com
Monster Dash Glow Run 5K and Little Monster 1 Miler at the Cherokee Recreation and Parks Agency, 7545 Main St., Woodstock, with inflatables, music, food trucks, games and more. The 5K starts at 8 p.m. Participants should dress in their most outrageous costume. Awards given for best costumes. After the race, enjoy an outdoor movie on the lawn at 9 p.m. For more information, contact Kate Borden at 770-924-7768 or kborden@cherokeega.com. www.crpa.net
Woodstock Halloween Kidsfest 3-7 p.m. at the new amphitheater at 103 Arnold Mill Road. Just treats, no tricks for costumed kiddies. Moonwalks, apple bobbing, face painting, candy give-away and more. Costume contest begins at 6 p.m. 770-517-6788.
www.woodstockga.gov
Holly Springs Elementary STEM Academy chili cook-off 5-8 p.m.at the school, located at 1965 Hickory Road.
Farther Out
Weekends in October
Apple Pickin' Jubilee at Hillcrest Orchards in Ellijay with wagon rides, pig races, cow milking, a petting farm, mini golf, museums, jumping pillow and numerous playgrounds. 9 a.m.-6 p.m. Live entertainment and food. www.hillcrestorchards.net
Oct. 1-2
Georgia Marble Festival at Lee Newton Park in Jasper, open 10 a.m.-6 p.m. Saturday, 10 a.m.-5 p.m. Sunday. Live entertainment, parade, children's area, business expo, quarry tours, bingo and road race. www.georgiamarblefestival.com
Oct. 8-9, 15-16
Georgia Apple Festival in Ellijay, with more than 300 vendors with handmade, hand-crafted items, on-site demonstrations of how selected types of crafts are made. Antique car show on Oct. 10 at the civic center, parade on Oct. 17 at 10 a.m. downtown Ellijay. www.georgiaapplefestival.org
Oct. 15-16
Gold Rush Days Festival in Dahlonega celebrates the city's 1828 discovery of gold. More than 300 art and craft exhibitors and food vendors gather around the public square and historic district. It's estimated more than 200,000 visit this event.
www.dahlonegajaycees.com/gold-rush/
The Kennesaw State University Owl-O-Ween Festival, open 6-11 p.m. Friday and 4-11 p.m. Saturday, features balloon glows, trick-or-treating, tethered balloon rides, Oktoberfest beer garden, live music, vendor marketplace, sports bars, artist market, food trucks, roving entertainment, interactive kids' area, a main concert stage, and more. www.owl-o-ween.com
Filed Under: Feature


Just two weeks prior to the Lake Effect Half Marathon I completed my 100th half. Feeling accomplished and fulfilled for the time being I was left with the "now what" itch. One of the things I learned from all my race adventures and challenging myself is that you must get back on the horse, the sooner the better. So in order to ensure this I fill up my calendar way in advance. keep the momentum going and do not stop. I must admit taking the 5 hour drive to Liverpool was just the last thing I felt like doing. However experience has taught me that I never regret a race. Get up and do it no matter how you feel because the finish line never disappoints.
Me eyes had been on this race for the two years prior. Lake Effect promises cold and snow. Just the kind of crazy thing I look for. Plus their medals are always look so pretty. Yes I'm partial to the icy blue colors but I swear that's not why I picked the race.
A huge plus for a race especially in the winter is close parking. Arriving just an hour before the start we grabbed a nice spot just feet from the finish line and tent. Having already picked up our race Bibs the day before meant we could could sit in the car. No long walk back and forth to PPU is greatly appreciated. Staged at Onondaga State Park we had a nice view of the partially frozen lake as we waited for the race to start.
While I run all different types of race the mid size and small races tend to be my favorite. We gathered at the start line had a quick briefing and were set on our way. Oh I almost forget the ever important porta potty situation. No line the two times I ran to them and fully stocked. I do recall seeing some on the course as well.
This is an out and back twice, flat course within the park. NO CARS! Very peaceful along the lake. We were fortunate with a somewhat milder day then normal for this race. No snow or ice on the pavement. Darn it!!! That is what I went for. Plenty of water Gatorade and gels along the course. The vibe of the race...have fun! I found it to host very friendly runners.
When you just can't get that smell out turn to WIN!
You finally found the perfect running attire. Yippe!!! After many trials your sports bra finally doesn't chafe. The performance top lays perfectly across your body. The running shorts don't ride up. So you wear them over and over. They are your tried and trued "go to" pieces of apparel. They go the distance and you can count on them not giving you any problems during your run. As you prepare for your next big race and pull these magical pieces of attire onto your body something hits you.
It's repulsive and you think now what? Maybe you put your fingers to work on Google and start frantically looking to replace them only to find out they no longer make this product. Oh the travesty! So next you start washing them in everything imaginable. Vinegar and baking soda will surely do the trick won't it? How about I soak them in scent crystals? I can leave them outside for days the fresh air cures everything. Oh I heard the dishwasher gets so hot it will kill all the bacteria therefore eliminating that smell.
Go ahead try those options if you must but what does that do to your fancy "tech" gear? Here is a much better solution for you.
After using WIN for many washes over two months I can tell you it works! I was constantly throwing out my sports bras and spending a fortune replacing them, No matter what I did I couldn't get the smell out of that elastic band around the bottom. After 4 or 5 half marathons they were headed to the trash. With WIN High Performance Sports Detergent I can get many more wears out of them.
Win Sports Detergent leaves the laundry feeling very clean and smelling great. It doesn't take much just that small cap fill so these bottles last a long time.
* My opinions on this product are my own. I have not been paid for a review. WIN provided me with sample product to try.


text:
CLIP-ings: March 27, 2020
Tech Companies Partner With WHO For Coronavirus Hackathon: Facebook, Microsoft, and TikTok are among the tech companies participating in #BuildforCOVID19, a global hackathon aimed at finding software solutions for the coronavirus pandemic; the winning projects will be announced on April 3.
Smartphone GPS Data Shows American Social Distancing Patterns: Unacast, a human mobility insights company, uses smartphone GPS location data collected from apps to gauge the extent to which people are staying put and generate a "Social Distancing Scoreboard" that grades adherence to social distancing guidelines by county across the United States; grades have varied greatly, with some localities such as Washington, D.C. receiving an "A" rating, while others like Wyoming earn an "F."
Cybersecurity Experts Fight Coronavirus-Related Hacks: With an uptick in phishing scams and other hacking attempts designed to exploit the coronavirus pandemic, a group of over 400 international cybersecurity experts formed the "COVID-19 CTI League" to fight hacking and ransomware attacks targeted at health organizations and other "frontline responders."
Google v. Oracle Supreme Court Oral Arguments Delayed Due To Coronavirus: For the first time since the 1918 Spanish flu pandemic, the Supreme Court has postponed hearing oral arguments, delaying the $8 billion copyright case between the tech giants.
Namecheap Blocks Registration Of Domains Containing Coronavirus-Related Words: In an effort to prevent potential abuse, fraud, and misinformation, the domain registrar has temporarily blocked all domain requests that contain words including "coronavirus," "covid," or "vaccine;" legitimate companies and website owners will still be allowed to apply for domains containing the blocked words by making a request through Namecheap's customer support team.
Twitter Locks Account For Promoting Unfounded Coronavirus Advice: The platform temporarily locked The Federalist's account after the news site tweeted an article encouraging people to deliberately infect themselves in controlled-quarantine coronavirus gatherings similar to "medical chickenpox parties"; Twitter concluded that the post violated its rules regarding COVID-19 content, which prohibit posts that "go[ ] directly against guidance from authoritative sources of global and local public health information."
Surge In Lawyers Working From Home Increases Risk Of Smart-Devices Hearing Confidential Conversations: Though companies such as Amazon and Google have stated that their digital assistants are designed to record and store conversations only when voice-activated, lawyers are being warned to remove or turn off the devices when working from home given that the devices can often activate in error.
Spanish Police Arrest Man For "Hunting Pokemon" During Lockdown: A 77 year-old man dedicated to "catching them all" was arrested for playing Pokemon Go outside, in violation of the Spanish government's coronavirus lockdown orders.
Posted on March 27, 2020 March 26, 2020 Author Brittany Thomas
Israel Turns To Cellphone Location Data To Fight Coronavirus: Israel's internal security agency has received authorization to use cellphone location data to "retrace the movements of individuals who test positive for the virus, and identify others who should be quarantined"; reports suggest that government researchers in the United States have been in talks with tech companies such as Facebook and Google on how to leverage their users' data to help curb the virus's spread in the U.S.
EU Asks Streaming Services To Downgrade From High-Definition: European Union officials are asking online streaming platforms such as Netflix to switch to standard-definition streaming to preserve bandwidth and prevent strain on the internet's functioning during a time when many are working and learning from home due to coronavirus-related quarantines or lockdowns.
House FISA Bill Delayed After Senate Extends Existing Surveillance Tools: On Monday, the Senate agreed to extend for 77 days a set of existing government surveillance tools to gain time to review the House-approved USA FREEDOM Reauthorization Act of 2020, which would update and renew domestic surveillance rules under the Foreign Intelligence Surveillance Act.
Security Firm Discovers Malware Disguised As Coronavirus-Tracking App: Mobile app security company Lookout discovered a malware app that mimics Johns Hopkins' legitimate coronavirus-tracking app and allows attackers to access a device's photos, videos, and location, as well as to enable its camera.
Facebook Spam Filter Bug Blocks Legitimate Coronavirus News: Users who attempted to share legitimate news about coronavirus from outlets such as The Atlantic and The Times of Israel had their posts flagged as spam; Facebook contends that the issue arose as the result of a bug in the company's spam filter.
TikTok Adds Content Advisory Council Following Content Suppression: The popular video-sharing app announced that a council of health and safety experts with expertise in areas such as misinformation, hate speech, and bullying will help form content policies for the app; the announcement comes after TikTok was discovered to have instructed its content moderators to suppress videos from users who appeared to be "too ugly or too poor."
Department Of Health And Human Services Loosens HIPAA Penalties In Wake Of Coronavirus: To enable greater patient assessment while limiting the risk of infection through the use of telehealth services, the Department will waive penalties for violations of the Health Insurance Portability and Accountability Act that could otherwise result from medical professionals' use of non-HIPAA-compliant videoconferencing services such as FaceTime, Facebook Messenger, Google Hangouts, and Skype.
The Show Must Go On(line): Conan O'Brien will become the first of the late-night talk show hosts to attempt to return to the air from coronavirus-imposed self-isolation by filming his segment using an iPhone and dialing in guests via Skype.
Posted on March 20, 2020 March 19, 2020 Author Tom Norton
YouTube Allows Some Content Creators To Monetize Coronavirus Content: Reversing its previous position, YouTube will now allow select content creators, including news organizations and a "limited number of channels," to display advertisements on coronavirus-related videos.
Thousands Of Political Ads On Facebook Had Inaccurate Payment Disclosures: A New York University study of the social media site's Ad Library found over $37 million worth of political ads with inaccurate or misleading disclosures about the ads' sponsors; over 19,000 ads were found to be posted by "inauthentic communities" comparable to the Internet Research Agency, the Russia-backed organization believed to be responsible for the 2016 Democratic National Committee email hack.
U.S. House Votes To Approve Extension Of The Foreign Intelligence Surveillance Act: The bill, which will now go to the Senate, extends key provisions of the Act allowing the FBI to investigate suspected terrorism or espionage by foreign powers; the bill also includes additional privacy protections and harsher penalties for violating the Act.
Cybercriminals Expected To Exploit Coronavirus Pandemic: According to a RiskIQ study of past outbreaks and patterns of phishing and malware attacks, cyber-criminal activity using social engineering is expected to increase as a result of a heightening interest in coronavirus news.
Anonymous Secret Sharing App Left 900 Million User Records Exposed: Whisper, an app used by over 30 million people per month to anonymously post personal secrets, unintentionally exposed identifying user information—including that of children—on a searchable online database for years; the database, which included information such as age, location, ethnicity, and residence, has since been removed by Whisper.
EU Plans Expansive "Right To Repair" Electronics Legislation: In an attempt to curb electronic waste and "decoupl[e] economic growth from extraction of primary resources," the European Commission plans to introduce legislation designed to compel electronics producers to "create products that last longer, include as many recycled materials as possible and are easier to reuse, repair and recycle."
Biden Clip Prompts Twitter and Facebook To Apply Fact-Checking Labels: An edited video shared by President Trump in which former Vice President Biden appeared to say that Trump would be re-elected was labeled "partly false" by Facebook fact-checkers and also resulted in the first use of Twitter's "manipulated video" tag.
Wuhan Students Try To Kick Remote Learning App From App Store: In an inventive attempt to get out of their online classes spurred by coronavirus-related school closures, students in Wuhan bombarded the App Store with one-star reviews of remote learning app DingTalk because they mistakenly believed apps with one-star ratings would be taken off the App Store.
Posted on March 13, 2020 March 12, 2020 Author Sean Conners
CLIP-ings: March 6, 2020
Cellphone Carriers Face $200 Million Fine For Selling Location Data: The Federal Communications Commission approved the proposed fines against T-Mobile, AT&T, Verizon, and Sprint after finding that the carriers violated the Telecommunications Act by not protecting the confidentiality of customers' location information.
YouTube Sees Success In Curbing Conspiracy Theories: After announcing its plan to crack down on "borderline content" in January 2019, a new study conducted by UC Berkeley finds that conspiracy theories are now 40 percent less likely to appear in users' video recommendations.
Russian Court Rules Facial Recognition Technology Does Not Violate Privacy: A court in Moscow determined that the city's 105,000-camera facial recognition system—most recently leveraged to enforce coronavirus quarantines and identify individuals at "mass events and protests"—does not violate citizens' privacy.
Chinese Nationals Assisted North Korean Hackers In Laundering Stolen Cryptocurrency: After stealing over $250 million in cryptocurrency in 2018, North Korean hackers relied on assistance from two Chinese nationals to launder $100 million of it through methods such as prepaid iTunes gift cards.
Lawmakers Look To Hold Amazon And eBay Accountable For Counterfeits: Though the retail giants have spent hundreds of millions of dollars targeting the issue, products on the sites such as "knockoff beauty products that cause people's eyelashes to fall out, and counterfeit cellphone chargers that can cause fires" still remain, prompting lawmakers to hold a hearing and introduce a bill that would make retailers liable for counterfeits sold on their sites.
Dispute Over President's Speech Raises Questions About Facebook Fact-Checking: A Facebook fact-checking partner's decision to flag as "false" articles on the platform concerning President Trump's use of the word "hoax" in connection with coronavirus has stirred questions about how Facebook has designed its fact-checking procedures.
Ninth Circuit Rules That A Privacy Violation Is A Concrete Injury: Though the court affirmed approval of a settlement challenged by Facebook users suing the company for scanning their private messages, the court rejected Facebook's argument that the users lacked standing, and instead found that Facebook's conduct resulted in concrete injury under the Electronic Communications Privacy Act and the California Invasion of Privacy Act.
Google Hides Musical Treat In Smartwatch: The mini drum sequencer, an Easter egg left by the tech company in its Wear OS device, allows wearers to create their own sick beats using "a colorful four-by-four grid."
Posted on March 6, 2020 March 5, 2020 Author Brittany Thomas


Christmas is coming! The smell of aromatic gingerbread all around the house, the tree decorated with colourful flickering lights, frosty weather, a smiling snowman peeping through the window, family members humming Christmas carols, delicious dishes cooking in the oven. It all brings up the feeling that Christmas is on its way. Adults are looking forward to the family meeting, sharing the Christmas dinner, wishing each other all the best for the holidays and to seeing smiles on the faces of the children as they open their presents. The little ones are most impatiently awaiting me, Santa Claus.
Before Christmas send a letter to Santa!
It really won't be long now till Christmas arrives, so I would like to tell you, my dear children, that very soon I will be knocking on your door. I have noticed that very often (especially in the case of the youngest children) even though they can't wait for me to come, when I reach their house, they are a little scared of me. For that reason, instead of coming to the Christmas dinner and handing out the gifts myself, I sneak into your houses at night and leave the gifts under the Christmas tree. However, before Christmas comes and before I knock at your door, I need you to do something for me. At the moment, I am reading hundreds of letters to Santa Claus that the Lapland postman keeps bringing to my workshop. They are colourful and very interesting, I am really enjoying reading them, because many children send me hugs and kisses through their letters. I prepare very long lists, think about what gifts every child should get and ask my precious helpers, the elves, to work on those presents. Mrs Santa is helping me with everything ( by the way, it's her who also prepares me some refreshments for the very long night before Christmas, when I travel the whole wide world to be able to knock at the door of every well-behaved child).
I know, my dear children, that you are waiting for me very impatiently, but please be good and help your mum with holiday cleaning and preparations, and then Christmas will come very quickly (before you know it) and a grey-haired man with a long beard, in a red outfit, with a big smile on his face, and, of course, with a big sack bursting with presents, will park his sleigh drawn by reindeer at your very house. Please remember that when I arrive at your home, I would like to be greeted in a nice way – because I try my best to travel the world far and wide on that special night.


text:
Rightsholders See Iraq as a 'Corrupt' Hotbed for Online Piracy, Ask the U.S. to Step In
February 13, 2022 by Ernesto Van der Sar
Home > Law and Politics >
Several copyright holders are urging the United States Trade Representative to help tackle the unbridled piracy that takes place in Iraq. They describe the country as a hotbed for online piracy services which are also exported to Europe and the US. Due to lacking copyright laws and systematic corruption, external pressure is needed, they argue.
Piracy is a global phenomenon but some countries have better enforcement options than others when it comes to dealing with the problem.
In Iraq, tackling copyright infringement appears to have very little priority.
This isn't a new phenomenon. When U.S. troops were still stationed in Iraq, rightsholders found out that American soldiers were picking up the local habit. As a result, "copyright notices" were sent to US bases and even United States Central Command was put on high alert.
Last December, the U.S. combat mission in Iraq officially ended so that's no longer an issue. Iraq still faces plenty of internal issues, of course, but fighting piracy is nowhere on the agenda. That's a concern for copyright holders.
Rightsholders Sound the Alarm Bell
Recently, several rightsholders mentioned Iraq in their submission to the US Trade Representative (USTR). The USTR uses these and other public comments to create its Special 301 Report, an annual list of countries that deserve extra attention due to various shortcomings that may hurt U.S. businesses.
Miramax and beIN Media Group are by far the most elaborate. The two companies sent a joint submission with over a dozen pages dedicated to Iraq. According to the rightsholders, the country faces massive piracy issues internally, but it doesn't stop there.
According to beIN, Iraqi pirates are also exporting pirated broadcasts worldwide, including to the United States.
"More than one third of all internet piracy of beIN channels originates from companies based in Northern Iraq. After being copied by these companies, beIN's channels are then re-streamed on pirate IPTV services generally, as well as from pirate websites accessible all over the MENA region, and the rest of the world.
"Some Iraqi operators are even distributing pirated content in the United States, through both physical goods channels and the internet. Again, none of these pirates has faced any enforcement actions by the Iraqi authorities, despite operating in clear view of those authorities," the companies write.
Corporate 'Pirates' Profit from Lacking Copyright Protection
This widespread piracy is hard to tackle since Iraq doesn't have any effective copyright laws to protect foreign content. The country isn't part of the WTO and didn't sign crucial copyright-related deals such as the TRIPS Agreement, Berne Convention, Brussels Convention, or the WIPO treaty.
The lack of enforcement has led to an environment where major companies in the country are seemingly profiting from piracy. This includes the largest Iraqi Internet provider Earthlink, which has a broad entertainment offering. Perhaps too broad.
Earthlink operates data centers, offers residential internet, and provides services to businesses local governments across Iraq. At the same time, however, it's also offering a controversial IPTV service called Shabakaty.
"Shabakaty provides illegal access to beIN channels, as well as channels and content owned by major US, European, and international right holders, to an estimated 5 million of its customers," the rightsholders write.
Widespread Problem, Hard to Stop
This isn't limited to beIN and Miramax channels, but also pirated broadcasts and on-demand content from Netflix, Discovery, Disney, FOX, HBO, MTV, Paramount Pictures, Sony Pictures, Universal Pictures, and Warner Bros.
The rightsholders provide several examples including screenshots of live programming and recent movies such as "Don't Look Up" and "The Matrix Resurrections" that are on offer. According to the submission, these are made available without permission.
In many other countries, these services would be taken to court, especially if they operate in the open. However, that's not realistic in Iraq and Miramax and beIN have little faith that this will change in the near future. It seems that, after sending several cease and desist letters, they've given up already.
"beIN has sent cease and desist letters to Earthlink with no results. Given the systematic deficiencies in law enforcement in Iraq, there appears to be little, if any, prospect for meaningful enforcement action. beIN and Miramax consider that pursuing these operators in a civil action would be fruitless."
To make matters worse, Earthlink is just one of the many companies that offer this type of content. The same also applies to Chaloos and iStar Media, which have a large user base as well. And locally, there are other "piracy" players as well, such as Al Nawars, Ahlina, Duhok, Saamira, Al Qush, Wadaq, Ahwar, Al Mulk, and Al Iraq Baghdad.
Failed Fatwas and Corruption
This issue isn't new and beIN has tried to get the Iraqi Government on its side. However, that hasn't resulted in any meaningful action.
Local beIN distributers even went as far as teaming up with religious leaders to release Fatwas and condemn illegal subscriptions, but that didn't help either. There is reportedly too much "corruption" going on.
"[G]iven systematic problems with corruption in Iraq, the deficiencies in Iraq's copyright regime, and our awareness of unsuccessful actions taken against pirates in that country, there does not appear to be a realistic prospect for meaningful IP enforcement in Iraq," beIn and Miramax write.
The companies don't mention any concrete examples, but they do highlight that the major piracy players in Iraq have close connections to the authorities.
"beIN understands that the owners and operators of Earthlink, Chaloos, and iStar (three of the major Iraqi pirates described above) have significant influence among Iraqi government officials, both at the federal and regional levels.
"This further supports the conclusion that there is little hope that the widespread piracy by these entities could be reduced or eliminated through the use of either civil or criminal judicial procedures in Iraq."
Piracy Watchlist
Needless to say, these are big accusations. BeIN and Miramax ask the US Government to place Iraq on the piracy watchlist, hoping that this will help to change things.
Thus far, Iraq has never been featured on the Special 301 Watchlist. The companies submitted a similar request last year but that didn't result in a listing. Instead, USTR highlighted other countries such as China, Russia, and Canada.
As previously reported, beIN and Miramax are not the only rightsholders that have mentioned Iraq in their submissions. The International Broadcaster Coalition Against Piracy, which includes the BBC and Dish Network as members, also highlighted the country as problematic.
A copy of the beIN/Miramax submission to the Office of the U.S. Trade Representative is available here (pdf)
Special 301 Report
USTR
U.S. Identifies Top Pirate Sites and Other 'Notorious Markets'
yesterday, 20:34 by Ernesto Van der Sar
TikTok Blocks Z-Library Hashtag Pending Piracy Investigation
'AI-Powered' Music Mixer Responds to RIAA Copyright Infringement Claims


American Bankers Association President and CEO Rob Nichols wrote to Senate leaders today to offer the association's full-throated support for the S. 2155.
ABA President and CEO Rob Nichols wrote to Senate leaders yesterday to offer the association's support for S. 2155, the bipartisan regulatory reform bill championed by Senate Banking Committee Chairman Mike Crapo (R-Idaho) and Sens. Jon Tester (D-Mont.), Heidi Heitkamp (D-N.D.), Mark Warner (D-Va.) and Joe Donnelly (D-Ind.). The bill is scheduled for consideration by the Senate next week.
The bill — which is co-sponsored by 26 lawmakers from both sides of the aisle — includes several provisions that are part of ABA's Blueprint for Growth, including a Qualified Mortgage designation for mortgages held in portfolio and relief from stress tests and exam requirements for certain institutions.
While supportive of the bipartisan legislation, Nichols flagged concerns about the bills "continued reliance on arbitrary asset thresholds," and noted ABA's strong support for transitioning to a tailored, "risk-based" approach to regulation.
With a vote on this legislation imminent, ABA is urging all bankers to call their senators and ask them to vote for the bill. The association also continues its efforts to build momentum for the bill ahead of the vote. ABA is engaging in an aggressive digital and print media campaign in support of the bill, and will continue to work with the alliance of state associations and with other trade associations to advocate for the legislation.


Pheromone products can work in unique ways for different people. What works for one person might not work at all for another. The only way you can learn what works for you is by trying a few things out. Instead of spending hundreds of dollars on multiple bottles of pheromone products just to find the perfect match for you, why not try out our Pheromone Sampler for Women?
Our Sampler includes a Mistress Mini, a Mojo Pro for Women, and a variety of our Gel Packs for Women. Our Gel Packs are one-use versions of our most popular products, also available in bulk quantities.


Ca Online Surya Hightower Hand Loomed Charcoalwhite Area shopping in Canada books electronics Kindle home garden.
Surya Petite Stripe Hand Woven Slate Area Rug Rug Size Runner x. Medium Gray Charcoal White. Browse our large selection of contemporary traditional designer and. Silk Surya Area Rugs. Turn on search history to start remembering your searches.
Surya Rugs are well known for their colorful tufted beauty and India inspired styles.
Surya is a leading manufacturer of high quality fashion forward area rugs and coordinating home accessories.
Shop Rugs Direct for a wide selection of Surya Rugs with Free Shipping. Gorgeous The Gorgeous rug collection features hand knotted traditional floral and bordered designs with a. You'll the Hightower Hand Loomed Charcoal White Area Rug. Hightower Updated Traditional Hand Loomed Area Rug Light Gray Camel Dark Brown at HouseDecorMall. Taupe Aqua Charcoal White. Surya Area Rugs. Surya HTW 00 1 1 1 in.
Loomed with 100 bamboo silk this rug is overtufted and.
Blended wool and viscose hand knotted carpet has a velvety pile and silky sheen perfect. Dark gray dasher elegance elegant florentine fresh fringe gemini geometric graphite gray gypsy hand knotted hand loomed hand tufted hand woven hightower.
Surya HTW 00 Hightower Area Rug Charcoal White x ft.
Presenting an exquisite traditional design the Hightower collection by Surya is simply charming. Isabelline One of a Kind Crepeau Hand Knotted x Silver Area Rug. Hand loomed with 100 bamboo silk this rug is overtufted and Willa Arlo Interiors Margaux Writing Desk.


I've changed a few features on the blog to make access and moderation easier.
1) The RSS feed now features the entirety of posts as opposed to just the first sentence. I have been told this will increase the amount of material that is actually read, but will decrease what we know about our readers. As such, commenting is highly encouraged (though that has always been the case). This may cause the RSS feed in your reader to refresh and display all the old posts again.
2)Commenting now requires an active account. Most blog readers will have something they can sign in with, so hopefully this will not raise the bar for commenting. We have been hit with about a dozen spambots daily and I want to decrease the amount of hands own upkeep that is required.
3) The google ads are gone. They were unnecessary to begin with and the expirement proved them not useful at all.
This entry was posted in QP Blogging by Michael A. Allen. Bookmark the permalink.


text:
import sys, os
import STTools
import tempfile
import shutil
from collections import defaultdict
thisPath = os.path.dirname(os.path.abspath(__file__))
sys.path.append(os.path.abspath(os.path.join(thisPath,"../../Evaluators")))
import BioNLP11GeniaTools
from pylab import *
import time, datetime
sys.path.append(os.path.abspath(os.path.join(thisPath,"../Statistics")))
import Utils.Libraries.stats

def getResults(results):
    if "approximate" in results and "ALL-TOTAL" in results["approximate"]:
        return results["approximate"]["ALL-TOTAL"]
    else:
        return results["TOTAL"]

def getScoreDict(scoreString):
    """
    Extract individual scores from a comma-separated list
    """
    scoreDict = {}
    for pairString in scoreString.split(","):
        className, score = pairString.split("=")
        score = float(score)
        assert className not in scoreDict
        scoreDict[className] = score
    return scoreDict

def updateRange(rangeDict, sourceDict):
    for key in sourceDict:
        # per key
        if rangeDict[key][0] == None or rangeDict[key][0] > sourceDict[key]:
            rangeDict[key][0] = sourceDict[key]
        if rangeDict[key][1] == None or rangeDict[key][1] < sourceDict[key]:
            rangeDict[key][1] = sourceDict[key]
        # total

def getRangeDicts(documents):
    rangeDicts = {}
    rangeDicts["unmerging"] = defaultdict(lambda:[None, None])
    rangeDicts["triggers"] = defaultdict(lambda:[None, None])
    rangeDicts["arguments"] = defaultdict(lambda:[None, None])
    for doc in documents:
        for event in doc.events:
            updateRange(rangeDicts["triggers"], event.trigger.triggerScoreDict)
            updateRange(rangeDicts["unmerging"], event.trigger.unmergingScoreDict)
            for argScoreDict in event.argScoreDicts:
                updateRange(rangeDicts["arguments"], argScoreDict)
    print "Ranges", rangeDicts
    return rangeDicts

def getStatValues(documents):
    statValues = {}
    triggerValues = []
    unmergingValues = []
    argValues = []
    for doc in documents:
        for event in doc.events:
            for value in sorted(event.trigger.triggerScoreDict.values()):
                triggerValues.append(value)
            if hasattr(event.trigger, "unmergingScoreDict"):
                for value in sorted(event.trigger.unmergingScoreDict.values()):
                    unmergingValues.append(value)
            for argScoreDict in event.argScoreDicts:
                for value in sorted(argScoreDict.values()):
                    argValues.append(value)
        for relation in doc.relations:
            for argScoreDict in relation.argScoreDicts:
                for value in sorted(argScoreDict.values()):
                    argValues.append(value)
    #print triggerValues, unmergingValues, argValues
    if len(triggerValues) > 0:
        statValues["trigger-stdev"] = stats.lstdev(triggerValues)
        statValues["trigger-mean"] = stats.lmean(triggerValues)
    if len(unmergingValues) > 0:
        statValues["unmerging-stdev"] = stats.lstdev(unmergingValues)
        statValues["unmerging-mean"] = stats.lmean(unmergingValues)
    statValues["arg-stdev"] = stats.lstdev(argValues)
    statValues["arg-mean"] = stats.lmean(argValues)
    return statValues

def standardize(score, statValues, scoreType):
    return (score - statValues[scoreType+"-mean"]) / statValues[scoreType+"-stdev"]

def getEventEVEXScore(event, statValues):
    scores = []
    if event.trigger != None:
        scores.append( standardize(event.trigger.triggerScore, statValues, "trigger") )
        scores.append( standardize(event.trigger.triggerScore, statValues, "unmerging") )
    if hasattr(event, "argScores"):
        for argScore in event.argScores:
            scores.append( standardize(argScore, statValues, "arg") )
            #scores.append( (argScore - statValues["arg-mean"]) / statValues["arg-stdev"] )
    score = min(scores)
    for arg in event.arguments: # recursively pick the lowest score
        if arg[1].id[0] == "E": # a nested event
            score = min(score, getEventEVEXScore(arg[1], statValues))
    return score

def getScore(scoreDict, typeString=None):
    """
    Get the highest score (optionally for a known type)
    """
    currentScore = None
    # EPI sites
    if typeString == "Site" and "SiteArg" in scoreDict:
        assert "Site" not in scoreDict, scoreDict.keys()
        typeString = "SiteArg"
    # Find the values
    for key in scoreDict:
        if typeString != None: # match type
            for keySplit in key.split("---"): # check for merged classes
                if key == typeString and currentScore == None or currentScore < scoreDict[key]:
                    currentScore = scoreDict[key]
                    highestKey = key
        else: # take highest
            if currentScore == None or currentScore < scoreDict[key]:
                currentScore = scoreDict[key]
                highestKey = key
    assert highestKey != "neg", (typeString, scoreDict)
    assert currentScore != None, (typeString, scoreDict)
    return currentScore, highestKey

def normalizeScore(value, key, rangeDict):
    return (value - rangeDict[key][0]) / (abs(rangeDict[key][0]) + abs(rangeDict[key][1]))

def processScores(documents, normalize=False):
    """
    Convert score strings to a single float value
    """
    print "Extracting scores"
    for document in documents:
        for event in document.events:
            if event.trigger != None:
                if event.trigger.triggerScores != None:
                    event.trigger.triggerScoreDict = getScoreDict(event.trigger.triggerScores)
            if event.trigger.unmergingScores != None:
                # unmerging scores should actually be in the event, but triggers are never shared anyway
                event.trigger.unmergingScoreDict = getScoreDict(event.trigger.unmergingScores)
            event.argScoreDicts = []
            for arg in event.arguments:
                #print arg
                event.argScoreDicts.append( getScoreDict(arg[3]) )
        for relation in document.relations:
            # Use only the first value so you don't get the relation score twice
            relation.argScoreDicts = []
            relation.argScoreDicts.append( getScoreDict(relation.arguments[0][3]) )

    counts = defaultdict(int)
    if normalize:
        print "Normalizing ranges"
        rangeDicts = getRangeDicts(documents)
    statValues = getStatValues(documents)
    for document in documents:
        counts["documents"] += 1
        for event in document.events + document.relations:
            counts["events"] += 1
            if event.trigger != None:
                if event.trigger.triggerScores != None:
                    event.trigger.triggerScore, event.trigger.triggerScoreKey = getScore(event.trigger.triggerScoreDict, event.trigger.type)
                    if normalize:
                        event.trigger.triggerScore = normalizeScore(event.trigger.triggerScore, event.trigger.triggerScoreKey, rangeDicts["triggers"])
                    counts["event-trigger-scores"] += 1
                if event.trigger.unmergingScores != None:
                    # unmerging scores should actually be in the event, but triggers are never shared anyway
                    event.trigger.unmergingScore, event.trigger.unmergingScoreKey = getScore(event.trigger.unmergingScoreDict)
                    if normalize:
                        event.trigger.unmergingScore = normalizeScore(event.trigger.unmergingScore, event.trigger.unmergingScoreKey, rangeDicts["unmerging"])
                    counts["event-unmerging-scores"] += 1
            # argument scores
            event.argScores = []
            event.argScoreKeys = []
            for i in range(len(event.arguments)):
                if i < len(event.argScoreDicts): # REL has only one score
                    argScore, argScoreKey = getScore(event.argScoreDicts[i])#, arg[1])
                    if normalize:
                        argScore = normalizeScore(argScore, argScoreKey, rangeDicts["arguments"])
                    event.argScores.append(argScore)
                    event.argScoreKeys.append(argScoreKey)
    return counts

#def sortByUnmergingScore():
#    pass

def sortByScore(documents, sortMethod="unmerging"):
    """
    Make an ordered list for all events in all documents
    """
    eventList = []
    if "EVEX" in sortMethod or "standardize" in sortMethod:
        statValues = getStatValues(documents)
        print "Stat values:", statValues
    for document in documents:
        for event in document.events + document.relations:
            if "unmerging" in sortMethod:
                score = event.trigger.unmergingScore
                if "standardize" in sortMethod:
                    score = standardize(score, statValues, "unmerging")
                eventList.append( (score, event.id, event, document) ) # event.id should keep things deterministic if two scores are the same
            elif "triggers" in sortMethod:
                score = event.trigger.triggerScore
                if "standardize" in sortMethod:
                    score = standardize(score, statValues, "trigger")
                eventList.append( (score, event.id, event, document) )
            elif "EVEX" in sortMethod:
                eventList.append( (getEventEVEXScore(event, statValues), event.id, event, document) )
    eventList.sort()
    return eventList

def markForRemoval(eventList, cutoff=1.0):
    """
    Take an ordered event list, and mark a fraction for removal by setting their arguments to [], thus
    causing them to be removed in validation.
    """
    breakPoint = cutoff * len(eventList)
    for i in range(len(eventList)):
        if i >= breakPoint:
            break
        eventList[i][2].arguments = [] # validation will remove events with 0 arguments

def evaluate(documents, sortMethod, verbose, cutoffs=[], task="GE.2"):
    workdir = tempfile.gettempdir()
    outdir = os.path.join(workdir, "events")
    cutoffs.sort()
    eventList = sortByScore(documents, sortMethod)
    results = {}
    startTime = time.time()
    for cutoff in cutoffs:
        print "Cutoff", cutoff, str(datetime.timedelta(seconds=time.time()-startTime))
        markForRemoval(eventList, cutoff)
        STTools.writeSet(documents, outdir, validate=True) # validation will remove events with 0 arguments
        #results[cutoff] = getResults(BioNLP11GeniaTools.evaluateGE(outdir, task=2, evaluations=["approximate"], verbose=False, silent=not verbose))
        if "REL" not in task:
            results[cutoff] = getResults(BioNLP11GeniaTools.evaluate(outdir, task=task)[1])
        else:
            results[cutoff] = {}
        print results
        #print results[cutoff]["approximate"]["ALL-TOTAL"]
    #shutil.rmtree(workdir)
    #maxEvents = results[0.0]["approximate"]["ALL-TOTAL"]["answer"]
    maxEvents = results[0.0]["answer"]
    print "Max events", maxEvents
    return results, maxEvents

def resultsToGraph(results, outputname, maxEvents=None, manualEvaluationFile=None, graphs="prf"):
    fig = figure()

    ax = subplot(111)
    ax.yaxis.grid(True, linestyle='-', which='major', color='lightgrey', alpha=0.5)
    ax.yaxis.grid(True, linestyle='-', which='minor', color='lightgrey', alpha=0.5)
    ax.xaxis.grid(True, linestyle='-', which='major', color='lightgrey', alpha=0.5)
    ax.xaxis.grid(True, linestyle='-', which='minor', color='lightgrey', alpha=0.5)

    ylabel('precision / recall / F-score [%]', size=12)
    if maxEvents != None:
        xlabel('events [%]', size=12)
    else:
        xlabel('events', size=12)

    plots = {}
    plotNames = [] #["precision", "fscore", "recall"]
    legendText = []
    plotColours = {}
    lineStyles = {}
    markerStyles = {}
    graphs = graphs.lower()
    if "p" in graphs:
        plotNames.append("precision")
        legendText.append("precision (BioNLP'11)")
        plotColours["precision"] = "red"
        lineStyles["precision"] = "-"
        markerStyles["precision"] = "v"
    if "r" in graphs:
        plotNames.append("recall")
        legendText.append("recall (BioNLP'11)")
        plotColours["recall"] = "green"
        lineStyles["recall"] = "-"
        markerStyles["recall"] = "^"
    if "f" in graphs:
        plotNames.append("fscore")
        legendText.append("fscore (BioNLP'11)")
        plotColours["fscore"] = "blue"
        lineStyles["fscore"] = "-"
        markerStyles["fscore"] = "s"
    for name in plotNames:
        plots[name] = []
    xValues = []
    for key in sorted(results):
        for name in plotNames:
            plots[name].append(results[key][name])
        xValue = results[key]["answer"]
        if maxEvents != None:
            xValue = float(xValue) / maxEvents * 100.0
        xValues.append(xValue)

    if manualEvaluationFile != None:
        manualPrecisions = getManualEvaluationPrecisions(manualEvaluationFile)
        plotManualEvaluationPrecisions(manualPrecisions, binSize=5, makeFig=False)

    for name in plotNames:
        plot(xValues, plots[name], marker=markerStyles[name], color=plotColours[name], linestyle=lineStyles[name], markersize=4)

    ylim([0, 80])

    if manualEvaluationFile != None:
        legendText = ["precision (EVEX)"] + legendText

    leg = legend(legendText, 'lower right')
    ltext  = leg.get_texts()
    setp(ltext, fontsize='small')
    savefig(outputname, bbox_inches='tight')
    #show()

def getManualEvaluationPrecisions(manualEvaluationFile):
    f = open(manualEvaluationFile, "rt")
    lines = f.readlines()
    f.close()

    events = []
    truePositives = 0
    falsePositives = 0
    for line in lines:
        begin, middle = line.split("--->")
        end = "\n"
        if "#" in line:
            middle, end = middle.split("#")
        eventEvaluation = middle.split(",")[-1].strip()
        if "F" in eventEvaluation:
            eventIsTrue = False
            falsePositives += 1
        else:
            eventIsTrue = True
            truePositives += 1
        # get predicted event info
        beginSplits = begin.split()
        eventWeight = float(beginSplits[3])
        fromAbstract = beginSplits[4] == "ABSTRACT"
        # add to list
        events.append( (eventWeight, eventIsTrue) )
    events.sort()
    precisions = [float(truePositives) / (truePositives + falsePositives)]
    count = 0
    for event in events:
        if event[1]:
            truePositives -= 1
        else:
            falsePositives -= 1
        if truePositives + falsePositives > 0:
            precisions.append(float(truePositives) / (truePositives + falsePositives))
            count += 1
            #print "Count", count, event[0], (truePositives, falsePositives), precisions[-1]
    return precisions

def plotManualEvaluationPrecisions(precisions, binSize=1, makeFig=True):
    if makeFig:
        fig = figure()

        ax = subplot(111)
        ax.yaxis.grid(True, linestyle='-', which='major', color='lightgrey', alpha=0.5)
        ax.yaxis.grid(True, linestyle='-', which='minor', color='lightgrey', alpha=0.5)
        ax.xaxis.grid(True, linestyle='-', which='major', color='lightgrey', alpha=0.5)
        ax.xaxis.grid(True, linestyle='-', which='minor', color='lightgrey', alpha=0.5)
        ylabel('precision', size=12)
        xlabel('events [%]', size=12)

    binnedScores = []
    currentBin = []
    count = 0
    for precision in precisions:
        currentBin.append(precision)
        count += 1
        if count >= binSize:
            binnedScores.append( float(sum(currentBin)) / len(currentBin) * 100.0 )
            currentBin = []
            count = 0

    numEvents = len(binnedScores)
    xValues = []
    for i in range(numEvents):
        xValues.append( float(numEvents-i)/numEvents*100 )
    plot(xValues, binnedScores, marker="o", color="red", linestyle="-", markersize=4)

    if makeFig:
        savefig("manual-scores-binned.pdf", bbox_inches='tight')

if __name__=="__main__":
    from optparse import OptionParser
    # Import Psyco if available
    try:
        import psyco
        psyco.full()
        print >> sys.stderr, "Found Psyco, using"
    except ImportError:
        print >> sys.stderr, "Psyco not installed"

    optparser = OptionParser(description="Analyze confidence scores")
    optparser.add_option("-i", "--input", default=None, dest="input", help="", metavar="FILE")
    optparser.add_option("-t", "--task", default="GE.2", dest="task", help="", metavar="FILE")
    optparser.add_option("-o", "--output", default=None, dest="output", help="", metavar="FILE")
    optparser.add_option("-m", "--manual", default=None, dest="manual", help="", metavar="FILE")
    optparser.add_option("-g", "--graphs", default="prf", dest="graphs", help="", metavar="FILE")
    optparser.add_option("-s", "--sortmethod", default="unmerging", dest="sortmethod", help="")
    optparser.add_option("-v", "--verbose", default=False, action="store_true", dest="verbose", help="")
    optparser.add_option("--steps", default=10, type="int", dest="steps", help="", metavar="FILE")
    optparser.add_option("--binSize", default=1, type="int", dest="binSize", help="", metavar="FILE")
    (options, args) = optparser.parse_args()

    if options.manual != None and options.input == None:
        precisions = getManualEvaluationPrecisions(options.manual)
        plotManualEvaluationPrecisions(precisions, options.binSize)
    else:
        cutoffs = [float(x)/options.steps for x in range(options.steps)]
        print "Loading documents"
        documents = STTools.loadSet(options.input, readScores=True)
#        print "Testing evaluator"
#        tempdir = tempfile.mkdtemp()
#        print tempdir
#        STTools.writeSet(documents, tempdir, debug=True, validate=False) # validation will remove events with 0 arguments
#        BioNLP11GeniaTools.evaluate(tempdir, task=options.task)
        #shutil.rmtree(tempdir)
        print "Processing scores"
        print processScores(documents, normalize="normalize" in options.sortmethod)
        print "Evaluating"
        results, maxEvents = evaluate(documents, options.sortmethod, verbose=options.verbose, cutoffs=cutoffs, task=options.task)
        if options.output == None:
            output = "scorefig-" + options.sortmethod + ".pdf"
        else:
            output = options.output
        resultsToGraph(results, options.output, maxEvents, manualEvaluationFile=options.manual)

redpajama_set_name: RedPajamaGithub