text:
Some things just get better with age. While we're not discussing a perfectly aged Bordeaux, the maxim is no less apt when applied to quintessentially cool, NYC-based menswear brand, Shipley & Halmos. Celebrating five years in the biz, the boys behind the label (and longtime R29 buds), Sam Shipley and Jeff Halmos, have delivered another timeless menswear collection for fall '13. And, no gimmicks here: "It's safe to say we've spent more time thinking about how the brand is evolving than on specific seasonal stories, like Shackleton's expedition in 1914 meets RuPaul's reality show," the guys say.
Looks like that dedication has been put to good use for S&H's autumn offerings. Once again, it manages to hit the perfect median between casual and dressy on the proverbial head, with clean classics and expertly tailored formalwear (investment-piece gold for any dapper dude). This season, look for all the rich hues that go along with the changing leaves (clay brown, forest green, plus, and camel), plus awesomely textured fabrics that make for spot-on layering pieces (we're talking tattersall checks, Donegal tweeds, shearling, and corduroy). Yo, Sam and Jeff, just in case you're reading: We're particularly fiending for that tartan peacoat, wool-and-leather varsity jacket, and live-in-em-always light denim. Thankfully, Ru Paul won't like anything you're about to see.


text:
"AMERICA'S NEXT TOP MODEL" � (8:00-9:00 p.m. ET)
"We are Spartans!" (CONTENT RATING TBD)
TYRA PHOTOGRAPHS THE MODELS � The models embrace their inner warriors when they learn Gladiator-style fighting complete with swords. The challenge winner hits the streets of Rome on a shopping spree. Tyra photographs the models in an old Roman castle and is startled by one model's unique beauty (#1010).

subset: commoncrawl


text:
|CHOCOLATE DESERTS: Looking for something dipped in chocolate? Make your own Edible Creations at EdibleCreations.com! Find recipes for making cholocate covered fun and other fruit baskets and deserts.
|CONCRETE SURFACE REVIEW: Get Fully polished concrete floors - Do you have old carpet or tile and want something new? Visit Concrete Solutions, a certified user of Ameripolish, Prosoco and the Super Abrasive Process provides high quality 100% epoxy floors and fully polished concrete floors. See more here at http://KansasCityConcreteSolutions.com
|KANSAS CITY CONCERT TICKETS: Find your Kansas City concert tickets at the KCMetro Ticket Center. Get them now before they're gone! For the best things to do in Kansas City, check out KCMetro.com. Chief Tickets go fast, so do NASCAR and other local venues. Get discounted tickets for many of these events.
|INTERNET NEW MEDIA: Converg Media provides Digital PR SEO Services through it's infrastructure and technology architecture. If your company is interested in knowing what their competitive advantage is or would like a free proposal to look at what you can do better, contact the premierDigital PR SEO Company today.
|SECURITY TRANSFER REVIEW: Security is the highest concern amongst business who share large files online. Virtual Drive has put a lot of resources in ensuring that their sharing capabilities are above the normal standards in order to keep users files safe and secure.


text:
0day 0:0:0 Left
People who love this item are also interested inSee More >>
Romantic Colorful Roses Pattern Waterproof Splicing 3D Wall MuralsUSD $ 23.75
European Style Country Style Small Town Pattern Waterproof 3D Wall MuralsUSD $ 23.75
Charming and Gorgeous Girl with Colorful Feather Hair Design 3D Wall MuralsUSD $ 23.75
Unique Colorful Plants Pattern Home Decorative Waterproof 3D Wall MuralsUSD $ 23.75
White and Black Simple Style Horses Pattern Waterproof 3D Wall MuralsUSD $ 24.74
Reclaimed Wood Distressed Wood Panel Wood Grain Self-Adhesive Peel-Stick WallpaperUSD $ 16.92
Creative Modern Design Starry Sky through a Hole Pattern Waterproof 3D Wall MuralsUSD $ 23.75
Decorative Beautiful Flowers Pattern Waterproof 3D Wall MuralsUSD $ 23.75
This wall mural can be stuck on the wall in bedrooms, dining room, hallway, living rooms and other decorative rooms. Applicable range is so wide. The default price online is for the size 39*39in, the price for other larger sizes being higher, so you can select it according to your actual decorative wall size.
· Size: estimated 39*39in/100*100cm
· Material: PVC
· Feature: 3D Waterproof Wall Mural
Installation Introduction
· Due to transportation and installation, the wall mural, whose width is more than 47in, will be cut and packaged as a scroll of estimated 47in width with no effects on the overall appearance as long as you stick them correctly.
· Tape four corners of the template on the wall.
· Peel the adhesive film off the back to fix it on the wall.
· Peel the front paper layers off.
· The default price online is for the size 39*39in. You should choose size and its quantities according to the size of decorative wall.
· No water should be touched on the back gum.
Due to differences in monitor settings, there may be a slight variation in color on screen,versus the actual material.
|Shipping Time
|Shipping Cost
|Standard Shipping
|4--8 Days
|Expedited Shipping
|2--5 Days
No one has posted a comment, it's your time to start now!
No one has consulted this product.
|E-mail Address *
|This will be used to sign into your account.
|Password *
|Must have 6 to 30 characters and no spaces.
|Re-type Password *
I accept
Terms of Use
Security and Privacy
of Beddinginn.com


text:
Talk:Eddie Pulaski
| This talk page is for discussing the Eddie Pulaski article.
This includes commenting on the article, questioning whether it is correct, or adding suggestions for improvements
Questions about GTA games, not about the wiki page itself, should be asked at Community:Questions.Remember to always add your signature to the end of your comments/replies using four tildes:
I think Eddie Pulaski might come from Poland,because in the last mission End Of The Line Big Smoke is saying to CJ
Smoke: Man, fuck this shit! Ahh, that's some good shit. Fuck Tenpenny, fuck his polish lapdog and fuck the police. Man all that's old shit. Look at you, you got the whole world! I ain't go no regrets man.
Well his name is PulaSKI Bearded Hoplite 03:15, June 21, 2010 (UTC)
Possible connection to CJ
It seems like there's evidence to say that Pulaski knew CJ when they were kids, the biggest bit is that CJ calls him by "Eddie" rather then just Pulaski, and it appears that the two are about the same age.--Allurade Dendra 22:59, October 8, 2009 (UTC)
- Carl calls him by his first name two times I think. Calling someone informally doesn't mean that the person is a childhood friend. I can call my boss by his first name but he's not a friend, he's my boss.--Spaceeinstein 23:22, October 8, 2009 (UTC)
- Okay, I never said childhood friends, I said they might of known each other, Tenpenny is clearly older then them, and it shows.
- Oh, I misunderstood you. Calling someone by their first name just shows informality, doesn't necessarily mean they know each other when they were kids.--Spaceeinstein 16:27, October 9, 2009 (UTC)
- Yeah, they were informal. I can never see him being that personal with a cop though. With Tenpenny, it was just "Tenpenny" never Frank.
- Oh, I misunderstood you. Calling someone by their first name just shows informality, doesn't necessarily mean they know each other when they were kids.--Spaceeinstein 16:27, October 9, 2009 (UTC)
Pulaski is Polish. Not american!
I from Poland, too. / Też jestem z Polski. Mat. 11:56, April 28, 2010 (UTC)
I think he knows ken Rosenberg
I was listening to the audio files in Vice City and in "bust_17.wav" Ken Rosenbeg says in the court:
"Get Seargent Pulaski down here, that fat chump owes me a favor."
I'm sure he meant officer Pulaski from San Andreas. Not to mention he put some emphasis on fat chump.
Proof: http://www.megaupload.com/?d=NX7BMY1Z
Jackass2009 01:43, May 4, 2010 (UTC)
Not likely, Pulaski is either in his 30's or 20's, about the same age as Carl. That makes him too young to be the same guy--Allurade Dendra 01:49, May 4, 2010 (UTC)
Seemed to me like he was about 42. Jackass2009 01:51, May 4, 2010 (UTC)
Nah. He's about as old as CJ I would think, Tenpenny is around 42 though.--Allurade Dendra 02:15, May 4, 2010 (UTC)


text:
Twitter is all about the here and now – it's a rolling stream of what's going on at any given moment, as reported by friends, news sources and celebrities. And all that data is going somewhere, and each person's updates constitute a digital record.
But reading that record is difficult. By default, Twitter's search function only goes back a brief period of time, which seems to vary. Sometimes it's a week or two, sometimes a couple of days. Third-party sites that let you search a timeline are limited to the last 3,200 tweets.
Earlier this year, Twitter CEO Dick Costolo announced that users would soon be able to download an archive of all their tweets. He later promised this capability by the end of 2012.
While there has been no formal announcement yet, it appears this feature may be rolling out to users. The Next Web said Sunday that some users had spotted this capability in their accounts.
Based on these reports, here's how it works:
1. If you're one of the users with early access to the feature, you'll find it on the Twitter Settings page for your account. Scroll to the bottom to see a button that reads "Request your archive". Click it.
2. Twitter will then prepare your archive and send you an email when it's ready to download. Click the link in the email to grab all your past tweets.
3. The archive arrives in a ZIP file. Unpack it and you can view your tweets in a handy calendar format. The Next Web says the archive contains the tweets in CSV and JSON formats, which could be used in applications to manipulate the data in interesting ways.
Of course, the size of the file (and possibly how long it takes to generate) will depend on how long you've been on Twitter, and how active. For example, I joined on March 12, 2007, and have tweeted nearly 49,000 times. That should be a decent-sized file.
The early reports don't indicate if the archive includes downloaded photos posted to Twitter's image-hosting service, which is relatively new. I hope so – that would be very handy.
Check your Twitter account, and see if you're one of the lucky ones with this feature. Let us know what you find in the comments.
Update: Houston Twitter user Mike Tremoulet, who's been on the service since March 2007, found he had the archive feature and so he downloaded his past tweets. He graciously sent me the ZIP file and gave permission to post a screenshot here.
This is what it looks like:
If you mouse over the bars in the calendar area on the right, you can see how many tweets were posted in that month. Clicking on them takes you to the month's tweets.
Clicking the View on Twitter link takes you to the tweet on Twitter itself. From here you can embed any of the tweets in a Web page. Here's Mike's very first one:
Sitting in a panel on social networking and bridging cultural divides.
— Mike Tremoulet (@coffeemike) March 10, 2007


text:
W.H. blasts recess ruling
The White House dismissed a Friday court's decision Friday that President Barack Obama had violated the Constitution with three recess appointments to the National Labor Relations Board made last year.
For now, the decision is binding law for any cases that come before the U.S. District Court in Washington as well as those that come before the D.C. Circuit. Other appeals courts do not have to follow the case, but the D.C. Circuit is the court that hears most appeals from legal disputes arising in Washington. Experts said it could upset many NLRB rulings as well as some decision by the CFPB.
Story Continued Below
( Also on POLITICO: Court: Obama recess appointments violated Constitution)
The administration could petition the full bench of the D.C. Circuit to rehear the case or ask the Supreme Court to take it up.
But White House press secretary Jay Carney, who blasted the U.S. Court of Appeals for the D.C. Circuit ruling as "novel and unprecedented," said that he did not expect any broader application.
"It's one court, one case, one company," Carney said.
( PHOTOS: 12 things less popular than Congress)
Carney said there has been "enormous frustration" at the White House with the Senate's refusal to approve nominees. But the ruling Friday "contradicts 150 year of practice by Democratic and Republican administrations. … So we respectfully but strongly disagree with the ruling."
Carney declined to say if the administration planned to appeal, referring questions about next steps to the Department of Justice.
Justice Department officials did not outline their plans, saying only,"We disagree with the court's ruling and believe that the President's recess appointments are constitutionally sound."
( PHOTOS: 13 things more popular than Congress)
The ruling found that the Senate was not actually in recess when Obama made them.
"[T]he President made his three appointments to the Board on January 4, 2012, after Congress began a new session on January 3 and while that new session continued," the court wrote in its decision. "Considering the text, history, and structure of the Constitution, these appointments were invalid from their inception."
Implications of the decision are still being sorted out. One potential result raised immediately was that by invalidating the labor board appointments, the decision may have opened the door to effectively invalidating all the board's work since they were made, including orders and regulations issued.
The NLRB and the White House expressed confidence that this would not happen.
"This court decision does not effect this operation, their ability to function," Carney said.


text:
EXXXtreme Booty Clapping from the hottest babes in the hood! These bangin' booties clap for hardcore fucking. From deep throating huge cocks to maximum penetration these hot honeys take booty clapping to a whole new level!
Angel Eyes
Ebony women will only take the biggest thickest African brothas. Our extra large monsters show these nubian princesses what a real orgasm feels like. Watch Angel Eyes clap that booty before getting pounded deep and hard!
Alexis Texas
Think white chicks can't clap? Then you've never seen Alexis Texas in action! Tight sexy bodies and a lack of common sense makes this fresh sweet fuck slut ripe for a dickin. Pop your cock inside and her perfectly tight pink pussy will clench down on your rod so hard you won't have a drop left.
Misti Love
Misti Love is taking all black meat with no exceptions. We only choose top quality ebony booty and we're satisfying it with their favorite hung dark monsters.


text: Sijun Forums :: View topic - something fishy (wip) Log in to check your private messages Sijun Forums Forum Index >> Work in Progress View previous topic :: View next topic Author Topic : "something fishy (wip)" BilbomemberMember #Joined: 31 May 2000Posts: 356Location: Israel Posted: Thu Jan 11, 2001 3:31 pm A couple of months ago i got the full version of Painter 5.5 on the coverdisc of a magazine called Pc-format. (if you hurry up you might be able to find some back issues for sale). Anyway, here's my first go with painter, using mostly oil type brushes: Obviously it's not finished yet, i'm not sure whether i'll return to it... any type of helpfull crits and comments will be appreciated. Back to top AmpamemberMember #Joined: 09 Nov 2000Posts: 110Location: UK Posted: Thu Jan 11, 2001 4:10 pm Obviously not finshed? Why? Looks pretty damned good to me! Full of character, and I love the use of different hues, from the yellow highlites to the purple shadows. A great piece of work - full of character. Hugz Ampa. Back to top shardikmemberMember #Joined: 09 Apr 2000Posts: 494Location: Buffalo, NY Posted: Thu Jan 11, 2001 4:10 pm wow what month of pcformat? ------------------ -matt Back to top shardikmemberMember #Joined: 09 Apr 2000Posts: 494Location: Buffalo, NY Posted: Thu Jan 11, 2001 4:11 pm ... also.. it does look pretty finished to me.. damn good, great work ------------------ -matt Back to top BilbomemberMember #Joined: 31 May 2000Posts: 356Location: Israel Posted: Thu Jan 11, 2001 4:31 pm Thanks guys. The Painter5.5 software was attached to issue no.112 (september-2000) here's a scan of the disc cover: [This message has been edited by Bilbo (edited January 11, 2001).] Back to top ToasT 01memberMember #Joined: 03 Jan 2001Posts: 74Location: Johannesburg - South Africa Posted: Thu Jan 11, 2001 9:26 pm I think its great the style and coloring go hand in hand i love it - to finish it off i think ( You could put a framed picture on the wall using a slightly contrasting color with an image that is almost a narative for the scene your looking at ) Im talking crap arent I - walks away *nice work* ------------------ ToasT ( the world made me the monster i am - thanks! ) Back to top NexmemberMember #Joined: 25 Mar 2000Posts: 2086Location: Austria Posted: Fri Jan 12, 2001 1:53 am the first thing that came to my mind when i saw it was Earnest Hemmingway- nice painting Back to top Display posts from previous: All Posts1 Day7 Days2 Weeks1 Month3 Months6 Months1 Year Oldest FirstNewest First Sijun Forums Forum Index -> Work in Progress All times are GMT - 8 Hours Page 1 of 1 Jump to: Select a forum Digital Art----------------Digital Art DiscussionWork in ProgressGallery/Finished Work Miscellaneous----------------Random MusingsArchive : Sep99 - Dec00 You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot vote in polls in this forum Powered by phpBB © 2005 phpBB Group


text:
Salamander: the story of the Mormon forgery murders : with a new afterword
Signature Books, 1989 - Religion - 570 pages
Drawing from thousands of pages of police reports, court documents, interviews, letters, and diaries, Sillitoe's and Roberts's narrative cuts through the complexities of this famous crime investigation to deliver a gripping, Capote-esque tale. They embrace the details, then lay them out systematically as seen through the eyes of the detectives, victims, and the perpetrator. The darkest secrets unravel gradually, allowing the reader fleeting glimpses of the infamous salamander as it ducks in and out of its fabricator's head.
What was the "salamander letter" and why were so many people determined to possess -- and to conceal -- it? Why was this one of the most unusual cases in American forensic history?
A skilled con artist by anyone's assessment, Mark Hofmann eluded exposure by police and document authenticators -- the FBI, Library of Congress, the LDS church historical department, and polygraph experts -- until George Throckmorton discovered the tell-tale microscopic alligatoring that was characteristic,of the forgeries. What ensued was a suspense-ridden cat-and-mouse game between seasoned prosecutors and a clever, homicidal criminal. In the end, this story verifies the saying that sometimes truth is stranger than fiction.
What people are saying - Write a review
Pipe Bombs in the City of the Saints
The Third Bomb Victim
An Unprecedented Investigation
19 other sections not shown
Other editions - View all
Salamander: The Story of the Mormon Forgery Murders
Linda Sillitoe,Allen Roberts
No preview available - 2006


text:
This site uses cookies. Some may have been set already.
You can read our privacy policy here
Please click the button to accept our cookies. If you continue to use the site, we'll assume you're happy to accept the cookies anyway.
Away Travel
Photo Galleries
Supporters Association
Club Archive
FA Cup History
Summer of 2004
Roll of Honour
Honours and Records
FA Trophy History
Club Info
Tickets & Admission
New Bucks Head Stadium
Club Directory
Directions and Transport
Car Parking
Charity Collections
Ground Regulations
Vanarama Insurance
Match Package
Executive Box Hire
Mascot Experience
Match Day Sponsorship
Match Ball Sponsorship
Player Sponsorship
Ground Board Advertising
Sponsors and Offical Partners
Community Coaching
Safeguarding Policy
Contact Us
This privacy policy sets out how AFC Telford United Limited and AFC Telford United Supporters Limited use and protect any information that you give AFC Telford United Limited and AFC Telford United Supporters Limited.
AFC Telford United Limited and AFC Telford United Supporters Limited are committed to ensuring that your privacy is protected. Should we ask you to provide certain information by which you can be identified, then you can be assured that it will only be used in accordance with this privacy statement.
AFC Telford United Limited and AFC Telford United Supporters Limited may change this policy from time to time by updating this page. You should check this page from time to time to ensure that you are happy with any changes.
What we collect
We may collect the following information:
Name and job title
Contact information including email address demographic information such as postcode,
Preferences and interests
Other information relevant to customer surveys and/or offers other information relevant to our relationship with you
What we do with the information we gather
We require this information to understand your needs and provide you with a better service, and in particular for the following reasons:
Internal record keeping.
We may use the information to improve our products and services.
We may periodically send promotional emails about new products, special offers or other information which we think you may find interesting using the email address which you have provided.
From time to time, we may also use your information to contact you for market research purposes.
We may contact you by email, phone, fax or mail.
We may use the information to customise the website according to your interests.
The information will be held by both AFC Telford United Limited and AFC Telford United Supporters Limited.
We are committed to ensuring that your information is secure. In order to prevent unauthorised access or disclosure, we have put in place suitable physical, electronic and managerial procedures to safeguard and secure the information we collect.
How we use cookies
A cookie is a small file which asks permission to be placed on your computer's hard drive. Once you agree, the file is added and the cookie helps analyse web traffic or lets you know when you visit a particular site.
Cookies allow web applications to respond to you as an individual. The web application can tailor its operations to your needs, likes and dislikes by gathering and remembering information about your preferences.
We use traffic log cookies to identify which pages are being used. This helps us analyse data about web page traffic and improve our website in order to tailor it to customer needs. We only use this information for statistical analysis purposes.
Overall, cookies help us provide you with a better website, by enabling us to monitor which pages you find useful and which you do not. A cookie in no way gives us access to your computer or any information about you, other than the data you choose to share with us.
You can choose to accept or decline cookies. Most web browsers automatically accept cookies, but you can usually modify your browser setting to decline cookies if you prefer. This may prevent you from taking full advantage of the website.
Links to other websites
Our website may contain links to other websites of interest. However, once you have used these links to leave our site, you should note that we do not have any control over that other website. Therefore, we cannot be responsible for the protection and privacy of any information which you provide whilst visiting such sites and such sites are not governed by this privacy statement.
You should exercise caution and look at the privacy statement applicable to the website in question.
Controlling your personal information
You may choose to restrict the collection or use of your personal information in the following ways:
whenever you are asked to fill in a form, look for the box where you can indicate that you do not want the information to be used by anybody for direct marketing purposes
If you have previously agreed to us using your personal information for direct marketing purposes, you may change your mind at any time by writing to us at the club office or by emailing us at firstname.lastname@example.com
We will not sell, distribute or lease your personal information to third parties unless we have your permission or are required by law to do so. We may use your personal information to send you promotional information about third parties which we think you may find interesting if you tell us that you wish this to happen.
You may request details of personal information which we hold about you under the Data Protection Act 1998. A fee of £10 will be payable. If you would like a copy of the information held on you please write to
Data Protection Officer
AFC Telford United
The New Bucks Head Stadium
Watling Street
If you believe that any information we are holding on you is incorrect or incomplete, please write to or email us as soon as possible, at the above address. We will promptly correct any information found to be incorrect.
AFC Telford United Ltd - Registered in England and Wales No. 05138735
New Bucks Head Stadium - Watling Street - Wellington - Telford - TF1 2TU
Tel: 01952 640064
Fax: 01952 640021
Email: firstname.lastname@example.com
© Copyright AFC Telford United Limited
Privacy Notice


text: It's a common misconception that estate planning is only appropriate for the elderly and those who have amassed a significant amount of wealth. Not true. All adults who are mentally capable should have an estate plan, which can include a last will and testament, trusts and/or advance directive such as a healthcare power of attorney and living will. An estate planning lawyer can work with you and your spouse to assess your estate planning needs, create the documents which form the foundation of your plans and then update those documents as necessary. Estate planning law firms can also work with clients who have special needs and concerns, including those dealing with a chronic or terminal illness, the parents of disabled children and parents who want to protect certain assets for their children from a prior marriage.


text:
Exceptional accommodations in Vermont can be found that the Green Mountain Inn in Stowe. Our historic Green Mountain Inn was one of the first tourist-oriented lodgings to build in this scenic area. In 1833, long before Stowe was known as a skiing community, the Green Mountain Inn was erected to cater to the travelers who stopped to enjoy this very pretty location in northern Vermont.
The town of Stowe is located in the valley-area directly below the popular ski hills and hiking trails that draw tourists into our area today. Our Green Mountain Inn is centrally located in town. Many people who visit our Inn enjoy walking to visit nearby shops, community events, and attractions. On the mountain, people enjoy miles of hiking trails, skiing opportunities, and the exciting off-season carnival atmosphere at the ski slopes.
The Green Mountain Inn has evolved and grown over the years. Today, our modern resort-style of hotel accommodations in Vermont includes various sizes of rooms, suites, family units, apartments, and full-scale townhomes that we offer to vacation travelers. Our high-quality Inn offers on-site fine foods, activities, and a friendly staff who are all detail-oriented to provide our guests the finest vacation services available.
Stowe is well known as a popular wedding and ceremony location for couples who want our breathtaking scenery to be a part of their new lives together. The Green Mountain Inn offers multiple meeting locations that are appropriate to use for all types of special group gatherings. Our meeting accommodations in Vermont can hold up to 120 guests and the entertainment for your event. Wedding packages and planners are available to help with all types of special occasion needs at our friendly Green Mountain Inn.
The overnight accommodations in Vermont can include every type of luxury imaginable. At our Green Mountain Inn, we offer a wide variety of niceties that our guests can choose from as they are making their reservations or gathering plans. It is possible to have rooms with marble bathrooms, gas fireplaces, double Jacuzzi spas, canopied beds, or completely equipped kitchens. Our on-site restaurant offers delicious foods, marvelous desserts, and a microbrewery menu that is just as impressive as our selections of fine wines. For your next vacation trip or special group gathering, our Green Mountain Inn accommodations in Vermont are worth your consideration.


text:
I've already found out enough about the human beings to be cynical about our chances for survival as a species. This does not help, Tie My Shoes, Please: How Persuasion Works
Over the years, psychologists have studied the techniques of manipulation and found several that seem to work. (Read on only if you agree to use these techniques for good and not for evil!)
One is called the door-in-the-face technique. You start by asking for something outrageous; when that's turned down, you then ask for something reasonable. A boss may ask an employee to work weekends for a whole year, for example, and when that request gets turned down, the manager might ask for a report to be turned in by Friday. The outrageous request reframes the real request to make it sound reasonable.
Another technique is known as fear-then-relief. Here, you tell someone he narrowly dodged a bullet and take advantage of his relief to make your real request.
[ ]….Dolinski had a confederate stop people en route to a supermarket and say to them, "Excuse me, but I suffer from terrible back pain and I cannot bend down. My shoelaces are undone. Could you please be so kind as to tie them for me?"
That was the unusual request. Other passersby were given a routine marketing survey.
A little later, the passersby were stopped by a woman standing outside the supermarket.
Dolinski wrote: "The second request was posed at the entrance to the supermarket by a woman who asked the participants to 'keep an eye' on her shopping cart full of goods 'for a moment.' She explained that her husband had her car keys and he had disappeared somewhere in the supermarket, and as the cart had a broken wheel, it was very hard to push. She would like to look for her husband without having to push the cart."
Dolinski found that people were more likely to mind the woman's grocery cart when they had been previously asked to fulfill an unusual request — to tie someone else's shoelaces.
We do have to make some assumptions here given the lack of details. One we have to assume that under the circumstances that the people were manipulated. I might well have tied someone's shoes for them if they looked as though they were indeed, disabled. Some other factors may have come into play. Their tone of voice for instance, or the time of day, most of us are less lightly to help someone late at night in a dimly lit area – self-preservation is a strong motivator. Perhaps the people who did tie the shoes were genuinely altruistic personalities. On to the dark side. Marketing specialists and politicians are well aware of these techniques. Fear-then-relief is now a well-known part of negotiations. While most of us have hopefully a mere healthy dose of cynicism, this technique works because most of us believe the person setting just across from us, looking us straight in the eye, is not using any kind of subterfuge. What I find especially damning about dealing with some people in negotiations or issue resolution is that they use one of these techniques and the manipulative nature of them has been completely discounted. They no longer consider the ethical issues. The subterfuge is part of their nature. Hey, they haven't held a knife to your throat, they're just good at getting what they want. And there is nothing wrong with that, now is there. In situations where the power dynamic is fairly equal – say between friends, and the stakes are not over getting a rise, keeping your job, allowing toxins into the local river. One could mark that up to the human tendency to want things and figuring out ways to get it – like having an extra dessert. When the power is unequal – between employees and someone with authority, between a politician and one of their constituents( we're supposed to be their boss, but in reality they do not look at it that way), between civilians and law enforcement ( I'm thinking of behavior like Stop and Frisk and outright torture of detainees) we're at a terrible disadvantage. There is with every word an implied threat to our well-being. Speaking of threat and relief, marketeers now seem benign by comparison. Yet they have a physiological advantage. People like to be liked. Most people confuse need with want. And people tend to attach, on some psychological level, especially in western culture, their self-esteem to the quantity of their possessions. We have to have some of those possessions to have what society has deemed a standard level of material comfort. Advertisers know this. As much as people say that commercials, newspaper or radio ads do not work on them. In 2010 $467 billion dollars was spent on advertising world-wide. Ever watched one of those hoarders programs or Storage Wars . People buy and keep an awful lot of crap. On a personal level, except for the hoarders, it's not a big deal, it is even funny. On a national level, it means that a lot of resources – petroleum to make the plastic, trees cut for the wood and paper, oceans polluted, more CO2 into the air, more petrol burned to transport from China to France or Ohio. Creating stuff and buying stuff is not inherently evil – every kind of job one can think of is related to stuff someone wants you to buy. When the buying habits of nations hit a level where many of the residents indulge in decadence, the marketeers are also enjoying some unfair and unethical leverage over the behavior of others. I'm trying to strike some middle ground. Commercial activity allowed me to buy the PC I"m writing this on and to have a nice dinner later. On the other hand, marketing goods and services, like a lot of things, hell just about every human activity, can be done to excess. Anyone with an addiction to food, texting, power or shopping can tell you, quitting a self-destructive or destructive behavior is not easy. While individuals are reaching down, calling on every bit of self-discipline, there are people working in the background trying, with all the techniques at their disposal to keep them from making better decisions.
While not a hedge fund manager I do know enough about investment returns to know that making $141 for every dollar invested is the kind of return that fuels the fantasies of most Americans – Data Show that Federal Investment in Research Pays
The HGP (Human Genome Project ) generated great prosperity, according to a 2011 report by the Battelle Technology Partnership Practice. Between 1988 and 2010, human genome sequencing and associated activities by private industry and researchers generated $796 billion in US economic output. This represents a return on investment of $141 for every $1 spent by the government. The HGP has also generated an estimated 3.8 million job-years of employment and increased government revenue. As was reported by the Battelle group, the genomics-enabled industry generated more than $3.7 billion in federal taxes and $2.3 billion in state and local taxes in 2010 alone. "Thus in one year, revenues returned to government nearly equaled the entire 13-year investment in the HGP," states the report.
Beyond economic benefits, the HGP has influenced and benefited numerous disciplines outside genomics. From human health to agriculture and forensics, the discoveries and methods resulting from the project have generated numerous societal benefits. No one could have anticipated how revolutionary the project would be in improving human health, feeding the planet, fueling society, and remediating degraded environments.
Conservatives and libertarians, at least those that have the courage of their convictions, will kind out exactly how much they benefited from this research and return every penny over what they contributed in taxes. I'm not sure how to quantify the financial rewards of the health benefits to them and their families – like living instead of dying. Consider that a gratuity.
family day at the beach early 1900s. before there was Instagram.
Romney Says His Tax Plan Will Create Jobs. Let's Check the Data. Romney's plan is Bush 3.0. The job market remains sluggish and cutting taxes will not be some magic potion. The tax faerie tale implies that corporations are not hiring because they don't got no money to hire folks. Corporate profits are already at an all-time high as a percentage of GDP. They are higher now, in what conservatives say is a terrible not yet recovered economy than before conservatives crashed the economy in 2007.
Palin mocks Cheney over 'mistake' jab: 'Dick… never misfires'. One assumes that Palin thinks her "dick" joke is funny. It kinda is, but what is really funny is that she thinks Dick Cheney has been brain washed by the liberal media. Reason#476 I could never be a conservative. I cannot juggle that much batsh*t insanity in my head.
Mitt Romney financial genius and his taxes
H'/T to Atrios for today's graphic text,
As I've said many times, what's fascinating about the what's-in-romney's-tax-returns story is that the man who has been running for president forever (presumably) could never bring himself to conduct his finances in such a way so as to make it politically possible for him to release the damn things.


text:
BEGIN Part1.lhs
Some technical info about this post: it looks like literate Haskell file, but it isn't one. I'm not sure if it is possible to write this in a single Haskell file (I'll explain later why), it had to be split into two files. Since the extra part should be read in the middle, this post ended up being split into three Haskell modules, that can be type-checked and compiled, then concatenated into single file, that no longer type-checks, but it parses just fine, and that's enough to use BlogLiterately on such files. It cannot be copy-pasted into a Haskell file, but it's useful anyway - there's syntax highlighting for free, and you should be familiar with literate Haskell structure - only lines prefixed with "> " are Haskell code, other code (even highlighted one) isn't taken into consideration by the Haskell compiler. Contents of this post (in regular Haskell files) are available at my blog repository
The code depends on HList library. It works with ghc 6.10. It works with ghc 6.12.1, but HList 0.2 won't compile with 6.12.1 because of ghc bug, so you can either hack HList to work around this bug, or wait for 6.12.2. It won't work with ghc 6.8, it uses equality constraints from TypeFamilies extension, introduced in 6.10.
This post is about generalized function zipWithN. Why?
many people think it's impossible
there were a lot of attempts, but they all required boilerplate - extra type annotations, idiom brackets, some value or type-level counters in one way or another
I've seen only one version of such function, that didn't require any boilerplate from the user, but that version couldn't deal with some polymorphic functions, without staying boilerplate-free (I know how to fix it now)
but, all of these versions, simple HM ones and those full of type-hackery, are based on the same idea, which is a step in the right direction, but somehow no one noticed what this idea is really about.
I'll present a solution, that works for all polymorphic functions, without any boiler-plate, and has a very beautiful implementation, that's very easy to explain. What can be considered beautiful? Short code, that is built from more general pieces. What to do, when you have ugly, verbose code? Either you can spot a known structure and re-use its implementation, which makes code shorter, or you discover a new, previously unknown abstraction, then you can publish it, gain fame and fortune and perhaps even some up votes on reddit.
First some background. There's a 12 year old paper on this matter: "An n-ary zipWith in Haskell" by Daniel Frindler and Mia Indrika, you can read about it there, but don't try to understand the code - I [hope, that I] can explain it much better. So, there's a family of functions in functional languages, that allows to "zip" n lists of arguments with a a n-argument function, and get back a list of results. Just like in that paper, I'll refer to them as zipWithk, where k stands for the number of function arguments, or equivalently number of list arguments. In Haskell's Prelude we have zipWith3 - zipWith7, zipWith2 is called just zipWith, zipWith1 is called map, and zipWith0 is called repeat. Other Haskell libraries have smaller number of zipWith functions - vector has up to 6, stream-fusion has up to 7, but only 0-4 are fusible. OCaml only has zipWith1 and zipWith2 in the List module, they're called map and map2 respectively. It's not a good situation, user has to match zipping function arity to the name of zipWith function. There once was a similar problem with matching name of function to the type of its argument - people were tired of using printInt and printString. The solution was easy, just use (and invent first) type classes. In case of OCaml it was even easier - just switch to Haskell.
The paper presented the following solution (module header is obviously needed for other code, they didn't know back then how to abuse Haskell like that):
> {-# LANGUAGE MultiParamTypeClasses
> , FunctionalDependencies
> , FlexibleInstances
> , FlexibleContexts
> , UndecidableInstances
> , OverlappingInstances
> , TypeFamilies
> , NoMonomorphismRestriction
> #-}
> module Part1 where
> import Data.HList
> inzip :: [a] -> [a -> b] -> [b]
> inzip (a:as) (f:fs) = f a : inzip as fs
> inzip _ _ = []
> (~~~) :: (a -> b) -> (b -> c) -> a -> c
> (~~~) = flip (.)
> (~~) :: [b] -> ([b1] -> c) -> [b -> b1] -> c
> as ~~ rest = inzip as ~~~ rest
> infixr ~~
> zipWithFI f t = t (repeat f)
zipWith function from the paper got a different name (FI stands for names of the authors)
> test1 = zipWithFI (,,) ([1..] ~~ "hi" ~~ "world" ~~ id)
*Part1> :t test1
test1 :: (Num a, Enum a) => [(a, Char, Char)]
*Part1> test1
It was certainly usable, but there were two problems - a lot of boilerplate and it was extremely complicated - there were some continuations involved. I didn't understand it - sure, I could use it, but I wouldn't be able to explain it to someone else. Now I know why, and I'll tell you later, so forget about it for the moment.
There was also another solution mentioned, by Magnus Carlsson:
> zap = flip inzip
> test2 = repeat (,,) `zap` [1..] `zap` "hi" `zap` "world"
*Part1> :t test2
test2 :: (Num a, Enum a) => [(a, Char, Char)]
*Part1> test2
If you're wondering why I didn't just test if test1 == test2, it's because such expressions could help disambiguate some type variables in test2. That's not the case here, but it's a good habit when wri^H^H^Habusing Haskell code.
After noticing, that zap == Prelude.zipWith ($) (it's also <*> for ZipLists), this solution starts to look very good - it has pretty semantics: we start with infinite list of initial functions, and apply to them list of arguments, getting lists of partial applications, until we end up with the final result.
Have you ever read anything on sigfpe's blog? He always has pretty drawings of smart things (e.g. here). Let's give it a shot, here's a picture that shows left to right evaluation of test2:
Oh well... yes, I am art-impaired. I did this with kolourpaint and this is the best I can do.
Now, that you've managed to stop laughing, let's get back to zipWiths. What's the problem with this solution? Turns out, it can be expressed as a very general recursion pattern, but instead, it does it manually. This is the idea behind Carlsson's version of zipWithN:
zipWithN f a1 a2 ... an == repeat f `zap` a1 `zap` a2 `zap` ... `zap` an
After adding parens around repeat f, and using prefix form of zap, which is left-associative, we get this:
zipWithN f a1 a2 ... an == zap (... (zap (zap (repeat f) a1) a2) ...) an
Any programmer, that accepted functional programming into his heart, should recognize that it's just a left fold over the list of arguments. Can it be rewritten like the following?
zipWithN f a1 a2 ... an = foldl zap (repeat f) [a1, a2, ..., an]
Well, not really, after all, these lists don't need to be of the same type, and you cannot put them into one list. But the solution will look just like that fold.
Now, when we know that zipWithN is just a left fold, let's go back to the original solution of Frindler and Indrika. After inlining definition of zipWithFI, we get this scheme:
zipWithN f a1 a2 ... an = (a1 ~~ a2 ~~ ... ~~ an ~~ id) (repeat f)
Understanding (~~) should suffice, to get a hold of this idea. Let's unfold all sub-expressions into (~~) definition. inzip will be replaced with flip zap:
as ~~ rest = inzip as ~~~ rest
   { prefix forms }
(~~) as rest = (~~~) (inzip as) rest
   { def (~~~) }
(~~) as rest = (flip (.)) (inzip as) rest
   { def flip }
(~~) as rest = (.) rest (inzip as)
   { eta expansion }
(~~) as rest a = (.) rest (inzip as) a
   { def (.) }
(~~) as rest a = rest (inzip as a)
   { inzip == flip zap }
(~~) as rest a = rest (flip zap as a)
   { def flip }
(~~) as rest a = rest (zap a as)
We use some alpha conversions, to not get confused about arguments and their names:
(~~) x y z = y (zap z x)
We can treat zap in the prev equation as a free variable. You were probably expecting, that now I'll say "but this is just ...". No. My only thought about it was "it's weird" (actually it was something else, but let's pretend that I'm more civilized). Then I realised, that I've already seen similar "weird" code, and it was also followed by id function. Where? The paper "Cheap deforestation for non-strict functional languages" by Andy Gill. There's a theorem/equation that states, that any left fold can be rewritten as a right fold:
foldl f z xs = foldr (\b g a -> g (f a b)) id xs z
After transforming the "folded" idea of Magnus Carlsson with this equality, we get the following:
zipWithN f a1 a2 ... an = foldl zap (repeat f) [a1, a2, ..., an] = foldr (~~) id [a1, a2, ..., an] (repeat f)
The authors were claiming, that Carlsson's idea was sidestepping some dependent-type problems, but as it turns out, their preferred version was identical, only extremely obfuscated and hard to understand.
I've promised you a beautiful solution to the zipWithN problem. According to the previous definition of beautiful implementations, it has to be short and made from bigger pieces. It'll take two lines of code (unfortunately, because of Haskell type system, one of those has to be transformed, with a simple transformation that could be automatic, to 4 lines of code, so in the end there are 5 lines of code) and it will use 5 or 6 other, very general functions, that have nothing to do with zipWiths and can be used to implement other things.
We'll start with a simpler problem - uncurried version of zipWithN. uncurriedZipWithN will take a zipping function and a tuple of list arguments. There's no point in using normal Haskell tuples, 2-tuple (,) and 3-tuple (,,) have as much in common, as Ints and Strings - there's no recursive structure. Better option is to use nested 2-tuples, that lean to the right (e.g. (a,(b,(c,d)))). While it's possible to use nested tuples directly, it's easier to use nested tuples, that have an explicit terminator at the end, which makes it isomorphic to lists, that can contain values of different types. There's a whole library for use with these heterogeneous lists - HList, created by the one and only - Oleg Kiselyov.
As any list library, HList contains a fold function, unfortunately only right one, we have to write HFoldl ourselves. This definition follows the style of other list functions from HList, so you can read more about it in the HList paper (HFoldr is explained in one of the appendices).
> class HFoldl f z l r | f z l -> r where
> hFoldl :: f -> z -> l -> r
> instance HFoldl f z HNil z where
> hFoldl _ z _ = z
There's one problem with hFoldl (compared to other functions like hTail) - it's a higher-order function and it's not possible (in general) to use such functions at the type level in Haskell. What do we do, when we want to write a higher-order function in first-order language (in this case - Haskell's type system)? We apply Reynolds defunctionalization. There is a open type function Apply, modelled as a class with a single method apply. hFoldl's argument takes 2 arguments, but it's easier to model it with a pair of arguments, that way single class Apply is sufficient for all functions. Here's the defunctionalized version of inductive case of HFoldl:
> instance ( HFoldl f y xs r
> , Apply f (z,x) y
> ) => HFoldl f z (HCons x xs) r where
> hFoldl f z (HCons x xs) = hFoldl f (apply f (z,x)) xs
Now we have to adjust our zap to this defunctionalized hFoldl. We need "avatar" for zap function. It doesn't need any values inside (those would probably be modelled as type variables), because there are no closures involved.
Naive solution would look like this:
> data ApplyZapNaive = ApplyZapNaive
> instance Apply ApplyZapNaive ([x->y], [x]) [y] where
> apply ApplyZapNaive = uncurry zap
This seems to be working:
> testNaiveApply1 = apply ApplyZapNaive ([not], [True, False])
*Part1> :t testNaiveApply1
testNaiveApply1 :: [Bool]
*Part1> testNaiveApply1
But, there are problems:
> testNaiveApply2 = apply ApplyZapNaive ([negate], [1])
*Part1> :t testNaiveApply2
testNaiveApply2 :: (Num a, Num t, Apply ApplyZapNaive ([a -> a], [t]) r) => r
([negate], [1]) has polymorphic type, over two different type variables.
Haskell type-checker tries to satisfy the
Apply ApplyZapNaive ([a -> a], [t]) r constraint, but there is no instance that matches this pattern - the only instance that matches ApplyZapNaive, has the same types in both lists, which is too specific.
The usual solution is to use local functional dependencies, that allow to use more general patterns in the instance head (which is the only thing taken under consideration when choosing instances), and after the instance is chosen, force the required equalities, which "improves" the types, or if they're different, there's a type error. I'll use equality constraints for this purpose, they are very similar to TypeCasts, but they look better (almost like "="), and they don't require any functions at the value level.
> data ApplyZap = ApplyZap
> instance (a ~ [x->y], b ~ [x]) => Apply ApplyZap (a,b) [y] where
> apply _ = uncurry zap
This works as expected:
*Part1> :t apply ApplyZap ([negate], [1])
apply ApplyZap ([negate], [1]) :: (Num a) => [a]
*Part1> apply ApplyZap ([negate], [1])
Now, we're ready to define the first of the two lines, that form the solution to the main problem (notice that there's no need for any type signatures):
> uncurriedZipWithN f = hFoldl ApplyZap (repeat f)
> test3 = uncurriedZipWithN (,,) ([1..] `HCons` ("hi" `HCons` ("world" `HCons` HNil)))
*Part1> :t test3
test3 :: (Enum a, Num a) => [(a, Char, Char)]
*Part1> test3
It works, but it looks similar (or even worse, thanks to the left-associative HCons) to the original, obfuscated version. But we're not done yet!
Now, let's develop some of those "bigger pieces" for creating pretty code. Let's start with a function that will count the number of arguments of another function. It's clear, that it has to be a class method. Don't mind the HNat constraints in contexts, I use Peano numbers from HList, and they use this constraint. It's not needed for anything, it's just a "comment", that helps writing code in a dynamically typed language - Haskell's type system.
> class HNat result => Arity x result | x -> result where
> arity :: x -> result
Base case for non-functions:
> instance (result ~ HZero, HNat result) => Arity x result where
> arity _ = hZero
Recursive case for function arguments. We create dummy, undefined value, force it to match the type of this functions arguments to get a dummy value of the resulting type, and use it (actually, only it's type) to call arity recursively, and finally increment it.
> instance (Arity y n, result ~ (HSucc n), HNat result) => Arity (x -> y) result where
> arity f = let x = undefined
> y = f x
> in hSucc $ arity y
If you're wondering why the type of the result is bound with equality constraint, instead of being used directly in the instance head, it's because it wouldn't compile. There would be an error, because functional dependencies don't play along with overlapping instances. The solution again relies on TypeCasts, and once again I choose equality constraints.
If you're familiar with Oleg's papers/code (e.g. the previous link), you know that Oleg doesn't like overlapping instances, and tries to limit their use to writing overlapping type predicates (like IsFunction), that are later combined with the two class trick, one of which is a wrapper class (and could be substituted with a function), and the other dispatches on the type of "flag" argument. I decided against this style, because overlapping instances extension is still needed. Moreover, the wrapper class, with a single instance, gets inlined by the type simplifier at every call place, which leads to longer (additional call to that type predicate) type signatures, that have an extra type variable (flag). When using 2 or 3 complicated functions, inferred types get filled with unneeded info pretty quickly.
> arityTest1 = arity map
> arityTest2 = arity (,,,,)
> arityTest3 = arity (+)
*Part1> :t arityTest1
arityTest1 :: HSucc (HSucc HZero)
*Part1> :t arityTest2
arityTest2 :: HSucc (HSucc (HSucc (HSucc (HSucc HZero))))
*Part1> :t arityTest3
arityTest3 :: (Arity a n, Num a) => HSucc (HSucc n)
It works correctly in the first two cases, but fails to count the arity of (+). The difference between functions like map and (+) is the type of the result. The recursive case is correct, it did what it could when checking (+) arity, we know that it is greater or equal to two. But, at the end, when the type-checker has to decide the type of the result, which is just a type variable, it doesn't know which instance to choose, because they both match. So the type-checker decides to be lazy and wait until it knows something more about this type variable. There is no problem with map or tuple constructor, because the result type is known to not unify with the arrow type, so the more general, base case can be chosen safely.
The next type function is ResultType, it returns the type of the result. It uses the same pattern of recursion as Arity, and the same issues apply. This must only be used at the type-level, because its value has to be bottom. You wouldn't want to live in a world, where you could implement this as a total function (unless you're a lawyer).
> class ResultType x result | x -> result where
> resultType :: x -> result
> instance result ~ x => ResultType x result where
> resultType x = x
> instance ResultType y result => ResultType (x -> y) result where
> resultType f = let x = undefined
> y = f x
> in resultType y
END Part1.lhs
BEGIN Part2.lhs
Previously on Lost, oh wait... anyway, those issues with Arity function have to be fixed. How? More abuse and more type system extensions. IncoherentInstances extension is an obscure extension of OverlappingInstances. Whenever there's a situation, that there are two instances, matching some unknown type variable, knocking on the door, instead of cowardly hiding in the kitchen, like OverlappingInstances, it flings the door open and says "IncoherentInstances here, what do you got?". Then, it eagerly chooses the more general one.
IncoherentArity is the exact copy of Arity, but it is defined in a module with IncoherentInstances extension enabled. In theory all the code could be defined in such a module, but that would break many things, and it would be very confusing.
Instead of equality constraints, it uses explicit TypeCasts, because the former don't work so good with IncoherentInstances extension. While it is possible, it requires many explicit type annotations, or else type simplifier simplifies things too early.
> {-# LANGUAGE MultiParamTypeClasses
> , FunctionalDependencies
> , FlexibleInstances
> , UndecidableInstances
> , IncoherentInstances
> , NoMonomorphismRestriction
> #-}
> module Part2 where
> import Data.HList
> import Data.HList.TypeCastGeneric2
> class HNat result => IncoherentArity x result | x -> result where
> incoherentArity :: x -> result
> instance (TypeCast HZero result, HNat result) => IncoherentArity x result where
> incoherentArity _ = typeCast hZero
> instance ( IncoherentArity y n
> , TypeCast (HSucc n) result
> , HNat result) => IncoherentArity (x -> y) result where
> incoherentArity f = let x = undefined
> y = f x
> in typeCast $ hSucc $ incoherentArity y
How does it work?
> arityTest1 = incoherentArity map
> arityTest2 = incoherentArity (+)
> arityTest3 = incoherentArity undefined
*Part2> :t arityTest1
arityTest1 :: HSucc (HSucc HZero)
*Part2> :t arityTest2
arityTest2 :: HSucc (HSucc HZero)
*Part2> :t arityTest3
arityTest3 :: HZero
There is a downside to this extension:
*Part2> :t incoherentArity
incoherentArity :: x -> HZero
incoherentArity == (\x -> incoherentArity x), and there are two matching instances for this case, the more general, base case was chosen. It can be very confusing. It is possible to write an expression in a Haskell file that type-checks, but asking about its type in ghci results in a type error.
There's another problem with using it in a sane way. Trying to write a simple alias for it:
> incoherentArityAlias = incoherentArity
Results in a statically chosen instance (but the dreaded MonomorphismRestriction is disabled), that really doesn't care about its argument type:
*Part2> :t incoherentArityAlias (+)
incoherentArityAlias (+) :: HZero
To define correct alias (or any other function that should use it in a normal way), we have to add explicit type signature, which delays the whole process:
> incoherentArityAlias2 :: IncoherentArity x result => x -> result
> incoherentArityAlias2 = incoherentArity
*Part2> :t incoherentArityAlias2 (+)
incoherentArityAlias2 (+) :: HSucc (HSucc HZero)
END Part2.lhs
BEGIN Part3.lhs
> {-# LANGUAGE MultiParamTypeClasses
> , FunctionalDependencies
> , FlexibleInstances
> , UndecidableInstances
> , FlexibleContexts
> , NoMonomorphismRestriction
> #-}
> module Part3 where
> import Data.HList
> import Part1
> import Part2
OK, back to zipWithN problem. We have uncurriedZipWithN available, so it would seem that we're one curry away from the final solution. But is it even possible to write such a magic curry function? The answer is: Yes! Haskell can do that.
We want to write a function curryN, that takes an uncurried function from a tuple/heterogeneous list, and returns a curried version. So how does curry really work?
curry :: ((a, b) -> c) -> a -> b -> c
curry f x y = f (x,y)
It may seem trivial, but most of that triviality comes from the fact, that it is fixed for functions working on a pair. Let's try to disassemble it - take a look at the following version:
curry :: ((a, b) -> c) -> a -> b -> c
curry f = \x y -> let z = (x,y)
in f z
It makes things much more clear. curry does 3 things:
- "eats" function arguments
- constructs a tuple from them
- calls the original function with this tuple as an argument
This can be generalized. First step is to write a function eat, that will fulfil steps 1 and 2. Eat is a type function (with mirroring value level method), that takes a type numeral, and returns a function, that will "eat" that many arguments and construct heterogeneous list from them. As many similar functions from the value level, it will be defined in a more general way, with an accumulator that will carry list of already eaten arguments. Again, just like in Arity case, ignore HNat constraints, compiler can tell you where they are expected.
> class HNat n => Eat n acc result | n acc -> result where
> eat' :: n -> acc -> result
Base case - the list is full and couldn't eat another bite. Return reversed accumulator.
> instance HReverse acc result => Eat HZero acc result where
> eat' _ acc = hReverse acc
Recursive case: how to eat n+1 arguments? Return a function, that eats the first one, and then eats n more, remembering the one just eaten by adding it the accumulator.
> instance Eat n (HCons x acc) result => Eat (HSucc n) acc (x -> result) where
> eat' n acc = \x -> eat' (hPred n) (HCons x acc)
> eat n = eat' n HNil
> eatTest = eat four
> where four = hSucc $ hSucc $ hSucc $ hSucc hZero
*Part3> :t eatTest
eatTest :: x -> x1 -> x2 -> x3 -> HCons x (HCons x1 (HCons x2 (HCons x3 HNil)))
All that's remaining is step 3. curry from Prelude can easily call the original function on the tuple, because it has a value of that tuple, whereas generalized curryN only has a function that will in the end return such tuple. Situation may look pointless, but fear not! All we have to do, is to compose such tuple-producing function with the original, tuple-consuming function. It has to be so called "furthest" composition, and as usual, Oleg already did it. I didn't use it, because that code looks really old (pre-OverlappingInstances era), and it is only defined for some basic, monomorphic types. I also didn't understand all those 5 class variables. I ended up writing version with only 3 class arguments, while it worked correctly, it wasn't too helpful for the type-checker, and couldn't deal when composing very polymorphic functions. Otherwise there were these uncommon problems, that ghc doesn't like the type it inferred (I'll explain later why it was a problem). The final version uses 4 arguments, and thanks to additional functional dependency it helps a lot when disambiguating types. Interesting thing is, that all versions (mine 3 and 4 parameter, and Oleg's 5) had different types, but method definitions were always the same.
MComp class has mcomp' method, that takes two functions of the following types:
f :: a1 -> ... -> cp
g :: cp -> d
where cp is not a function, and returns composed function of type:
f `mcomp` g :: a1 -> ... -> d
Yes, it takes arguments in different order than (.), more like (>>>). It's not a bad thing, after all, we are used to reading (code) from left to right.
> class MComp f cp d result | f cp d -> result where
> mcomp' :: f -> (cp -> d) -> result
Base case is even more base (sub-base?) than Oleg's - when first function isn't even a function, just apply it to the second function.
f :: cp
g :: cp -> d
f `mcomp`g :: d
> instance MComp cp cp result result where
> mcomp' f g = g f
Recursive case. Value level method has the obvious implementation, instance signature is the only one, that would type-check with such method.
> instance MComp rest cp d result => MComp (a -> rest) cp d (a -> result) where
> mcomp' f g = \a -> mcomp' (f a) g
I mentioned additional functional dependency earlier, it couldn't be added to the class, because of that problem that overlapping instances don't play along with functional dependencies. So it was added to extra, wrapper class with a single instance. And classes with a single instance can be rewritten as regular functions. Constraint
ResultType f cp helps to disambiguate (part of) the type of the second function.
> mcomp :: (ResultType f cp, MComp f cp d result) => f -> (cp -> d) -> result
> mcomp = mcomp'
MComp has the same problems as the coherent version of Arity - it can't deal with functions (as the first argument) that have type variable as a result type. This works fine:
*Part3> :t (,,,) `mcomp` show
(,,,) `mcomp` show :: (Show a, Show b, Show c, Show d) => a -> b -> c -> d -> [Char]
because (,,,) has return type that doesn't unify with an arrow type (it's a tuple). (+) isn't so lucky:
*Part3> :t (+) `mcomp` show
(+) `mcomp` show :: (Num a, Show cp, ResultType a cp, MComp a cp [Char] result) => a -> a -> result
While it could be solved with IncoherentInstances, there's no need for this - we use if with eat function, that results in a tuple/heterogeneous list, so there's no ambiguity. Here's the definition of curryN' function, it still needs some type number:
> curryN' n f = eat n `mcomp` f
Here's the definition of curryN, that computes the number from the function itself, by generating dummy value of the function's argument type, and counting its length (it's a type level operation, so there are no problems with bottoms). That "case undefined of x ->" trick is needed to make x monomorphic, thanks to copumpkin from #haskell for this.
> curryN f = case undefined of
> x -> let _ = f x
> in curryN' (hLength x) f
curryN cannot be used for the final zipWithN definition, because it's based on computing length of tuple function argument, which is not possible for hFoldl - it works with all lists. But we can reuse curryN' and compute needed number another way. Here's the final solution:
> zipWithN f = curryN' (incoherentArity f) (uncurriedZipWithN f)
If you remember the problems with incoherent functions, we have to delay choosing instance by providing the type signature:
> zipWithN :: ( MComp r1 cp r2 r3
> , ResultType r1 cp
> , Eat r HNil r1
> , IncoherentArity a r
> , HFoldl ApplyZap [a] cp r2)
> => a -> r3
How did I come up with that? I didn't. I substituted incoherentArity for regular, coherent arity in zipWithN's definition, asked ghc to infer the type, copy-pasted it here, and replaced arity/Arity with incoherentArity/IncoherentArity.
The other "incoherent" problem remains unfortunately - asking ghci about zipWithN's type is confusing:
*Part3> :t zipWithN
zipWithN :: a -> [a]
But it stops being confusing when it's applied to the argument. Some tests demonstrating, that it can be used without any boiler-plate, even for functions polymorphic in their result type:
> ones = zipWithN 1
> succList = zipWithN (+1)
> hiWorld = zipWithN (,,) [1..] "hi" "world"
> fibs = 0 : 1 : zipWithN (+) fibs (tail fibs)
*Part3> :t ones
ones :: (Num t) => [t]
*Part3> ones !! 10
*Part3> :t succList
succList :: (Num a) => [a] -> [a]
*Part3> succList [1..5]
*Part3> :t hiWorld
hiWorld :: (Enum a, Num a) => [(a, Char, Char)]
*Part3> hiWorld
*Part3> :t fibs
fibs :: (Num y) => [y]
*Part3> fibs !! 10
Well, that is all. What Frindler and Indrika thought to be impossible, implemented in two lines of code, that got defunctionalized to 5 lines. Everything based on a simple idea, boiler-plate free, and also there's some general purpose (if you like to abuse Haskell that is) utility functions.
Thanks for reading, comments are welcome.
END Part3.lhs


text:
CONSTITUENT HOTLINE: 1-888-909-RYAN (7926) paulryan.house.gov | RSS | YouTube | Twitter | Facebook | A Roadmap for America's Future
A road map to saving Medicare
http://www.washingtonpost.com/wp-dyn/content/article/2010/08/12/AR2010081204918.html By Paul Ryan Friday, August 13, 2010
The annual analysis of Medicare's financial health released by the program's trustees on Aug. 5 led some Democrats to claim that Medicare's imminent bankruptcy has been delayed, thanks to the creation of their health entitlement program. Only in Washington could the government raid one entitlement program to finance a brand-new one and still claim that deficits have been reduced and entitlements have been reformed.
The trustees' report compares the revenue that supports Medicare's trust funds with the program's planned expenditures. Last year's report revealed a $38 trillion shortfall over the next 75 years. This year the shortfall appears to have decreased, but only after the Democrats' health bill cut $529 billion from Medicare. This apparent improvement was the basis for Democratic celebration -- even though the program remains tens of trillions of dollars in the hole.
With the same legislation that cut more than half a trillion dollars in Medicare spending, the Democrats created a nearly $1 trillion health-care entitlement. The Obama administration's own chief actuary has explained that in addition to the dubious assumptions on provider cuts and other claims of savings, the health-care law's Medicare cuts cannot be used to both reduce Medicare's unfunded obligations and pay for a new entitlement. And the Congressional Budget Office said in March that the health-care overhaul's Medicare savings "would be used to pay for other spending and therefore would not enhance the ability of the government to pay for future Medicare benefits."
Put simply, Medicare is on course to collapse. Medicare and interest on the national debt alone will soon overwhelm the federal budget, crowding out all other national priorities. The CBO estimates that Medicare will consume 12 percent of gross domestic product by 2080 (up from 3.6 percent of GDP today), bringing total health entitlement spending to 17 percent of GDP. Exacerbating our unsustainable trajectory, health spending explodes under the Democrats' health plan -- raiding Medicare, expanding Medicaid and creating two entitlements without any clue of how to finance the ones we have now. The economy simply cannot handle such crushing levels of taxation and the borrowing required to finance this spending; the CBO warned last month of a devastating debt crisis within two decades.
We do not have a choice as to whether Medicare will change from its current structure. It is being driven to insolvency. An honest debate requires a serious discussion of how Medicare will avert its collapse and be made sustainable. Unfortunately, but not surprisingly, the Democrats' political machine has attacked my contribution to this debate, making the false claim that the only solution put forward to save Medicare would "end Medicare as we know it."
The CBO has said that my reform plan, "A Roadmap for America's Future," would put Medicare on a sustainable path. The plan protects and preserves Medicare for those enrolled now and for those who will become eligible in the next 10 years, while reforming the program to ensure it will be there for younger generations. Future seniors would have access to the same coverage I enjoy as a congressman.
Far from the claims of "radicalism," this proposal is based on a key reform from the National Bipartisan Commission on the Future of Medicare, chaired by then-Sen. John Breaux (D-La.). That commission in 1999 recommended "modeling a system on the one Members of Congress use to obtain health care coverage for themselves and their families."
Future Medicare beneficiaries would receive a payment to apply to a list of Medicare-certified coverage options. The Medicare payment would grow every year, with additional support for those who have low incomes and higher health costs, and less government support for high-income beneficiaries. The most vulnerable seniors would also receive supplemental Medicaid coverage and continue to be eligible for Medicaid's long-term care benefit.
If we act now, we can avoid disruptions for current seniors while advancing patient-centered reforms so Medicare will be strengthened for future beneficiaries. The alternative is the European-style death spiral of the welfare state: kick the can down the road as our debt explodes. Under an ever-expansive, all-consuming central government, costs will be contained with Washington's heavy hand imposing price controls, slashing benefits and arbitrarily rationing seniors' care.
The Democratic leadership will seek to brand every Republican running for office with my road map. Ironically, if Democrats succeed in demagoguing to death efforts to save Medicare, that political victory will hasten the program's end. While I am proud to have 13 House Republicans co-sponsor the legislation, and have been overwhelmed by the support outside the Beltway, my plan is not the Republican Party's platform and was never intended to be. This proposal is my sincere attempt to break the political paralysis on entitlement reform, to show that this challenge can be met -- mathematically and politically -- and to challenge those who disagree with my proposal to offer their own.
The writer, a Republican from Wisconsin, is the ranking minority member of the House Budget Committee.


text:
Victoria's Secret NYC Launch Event
Victoria's Secret Angels Erin Heatherton and Lindsay Ellingson, along with model Toni Garrn, were at the store in New York City yesterday to celebrate the spring season and discuss the brand's dreamy new collections — the Dream Angels push-up bra and the Love is Heavenly floral fragrance. Check out some sexy photos from the event.
Related Posts
You can follow us on Twitter and Facebook for content updates. Also, sign up for our email list for weekly updates and check us out on Google+ as well.
Posted in: Models, Stuff to Buy
Tags: Erin Heatherton, Lindsay Ellingson, Toni Garrn, Victoria's Secret, Victoria's Secret Angels


text:
Summary Report for:
15-2041.00 - Statisticians
Develop or apply mathematical or statistical theory and methods to collect, organize, interpret, and summarize numerical data to provide usable information. May specialize in fields such as bio-statistics, agricultural statistics, business statistics, or economic statistics. Includes mathematical and survey statisticians.
Sample of reported job titles: Assistant Division Chief for Statistical Program Management, Clinical Statistics Manager, Human Resource Statistician, Private Statistical/Psychometric Consultant, Program Research Specialist, Senior Statistician, Statistical Analyst, Statistician, Statistician (Demographer), Trend Investigator
Also see: Biostatisticians, Clinical Data Managers
Tasks | Technology Skills | Tools Used | Knowledge | Skills | Abilities | Work Activities | Detailed Work Activities | Work Context | Job Zone | Education | Credentials | Interests | Work Styles | Work Values | Related Occupations | Wages & Employment | Job Openings | Additional Information
- Identify relationships and trends in data, as well as any factors that could affect the results of research.
- Report results of statistical analyses, including information in the form of graphs, charts, and tables.
- Analyze and interpret statistical data to identify significant differences in relationships among sources of information.
- Adapt statistical methods to solve specific problems in many fields, such as economics, biology, and engineering.
- Develop software applications or programming to use for statistical modeling and graphic analysis.
- Develop and test experimental designs, sampling techniques, and analytical methods.
- Prepare data for processing by organizing information, checking for inaccuracies, and adjusting and weighting the raw data.
- Plan data collection methods for specific projects and determine the types and sizes of sample groups to be used.
- Process large amounts of data for statistical modeling and graphic analysis, using computers.
- Evaluate the statistical methods and procedures used to obtain data to ensure validity, applicability, efficiency, and accuracy.
- Design research projects that apply valid scientific techniques and use information obtained from baselines or historical data to structure uncompromised and efficient analyses.
- Present statistical and nonstatistical results, using charts, bullets, and graphs, in meetings or conferences to audiences such as clients, peers, and students.
- Develop an understanding of fields to which statistical methods are to be applied to determine whether methods and results are appropriate.
- Supervise and provide instructions for workers collecting and tabulating data.
- Evaluate sources of information to determine any limitations, in terms of reliability or usability.
- Apply sampling techniques or use complete enumeration bases to determine and define groups to be surveyed.
- Examine theories, such as those of probability and inference, to discover mathematical bases for new or improved methods of obtaining and evaluating numerical data.
- Report results of statistical analyses in peer-reviewed papers and technical manuals.
Technology Skills
- Analytical or scientific software — SAS ; StataCorp Stata; The MathWorks MATLAB ; XLISP-STAT (see all 35 examples)
- Business intelligence and data analysis software — Qlik Tech QlikView ; Tableau
- Data base management system software — Apache Hadoop ; Apache Pig ; Teradata Database
- Data base user interface and query software — Data entry software ; IBM DB2; Microsoft Access ; Structured query language SQL (see all 5 examples)
- Data mining software — Angoss KnowledgeSEEKER; NCR Teradata Warehouse Miner; SAS Enterprise Miner
- Development environment software — Common business oriented language COBOL ; Formula translation/translator FORTRAN; Microsoft Visual Basic
- Enterprise application integration software — SAS/CONNECT
- Enterprise resource planning ERP software — SAP
- Object or component oriented development software — C++ ; Python ; R ; SAP PowerBuilder (see all 5 examples)
- Object oriented data base management software — Microsoft Visual FoxPro
- Office suite software — Microsoft Office
- Operating system software — Linux ; UNIX
- Presentation software — Microsoft PowerPoint
- Spreadsheet software — Microsoft Excel
- Word processing software — Microsoft Word
Hot Technology — a technology requirement frequently included in employer job postings.
Tools Used
- Mathematics — Knowledge of arithmetic, algebra, geometry, calculus, statistics, and their applications.
- Computers and Electronics — Knowledge of circuit boards, processors, chips, electronic equipment, and computer hardware and software, including applications and programming.
- English Language — Knowledge of the structure and content of the English language including the meaning and spelling of words, rules of composition, and grammar.
- Mathematics — Using mathematics to solve problems.
- Critical Thinking — Using logic and reasoning to identify the strengths and weaknesses of alternative solutions, conclusions or approaches to problems.
- Reading Comprehension — Understanding written sentences and paragraphs in work related documents.
- Active Listening — Giving full attention to what other people are saying, taking time to understand the points being made, asking questions as appropriate, and not interrupting at inappropriate times.
- Active Learning — Understanding the implications of new information for both current and future problem-solving and decision-making.
- Complex Problem Solving — Identifying complex problems and reviewing related information to develop and evaluate options and implement solutions.
- Judgment and Decision Making — Considering the relative costs and benefits of potential actions to choose the most appropriate one.
- Science — Using scientific rules and methods to solve problems.
- Speaking — Talking to others to convey information effectively.
- Programming — Writing computer programs for various purposes.
- Writing — Communicating effectively in writing as appropriate for the needs of the audience.
- Systems Analysis — Determining how a system should work and how changes in conditions, operations, and the environment will affect outcomes.
- Learning Strategies — Selecting and using training/instructional methods and procedures appropriate for the situation when learning or teaching new things.
- Monitoring — Monitoring/Assessing performance of yourself, other individuals, or organizations to make improvements or take corrective action.
- Systems Evaluation — Identifying measures or indicators of system performance and the actions needed to improve or correct performance, relative to the goals of the system.
- Mathematical Reasoning — The ability to choose the right mathematical methods or formulas to solve a problem.
- Deductive Reasoning — The ability to apply general rules to specific problems to produce answers that make sense.
- Inductive Reasoning — The ability to combine pieces of information to form general rules or conclusions (includes finding a relationship among seemingly unrelated events).
- Number Facility — The ability to add, subtract, multiply, or divide quickly and correctly.
- Information Ordering — The ability to arrange things or actions in a certain order or pattern according to a specific rule or set of rules (e.g., patterns of numbers, letters, words, pictures, mathematical operations).
- Near Vision — The ability to see details at close range (within a few feet of the observer).
- Oral Comprehension — The ability to listen to and understand information and ideas presented through spoken words and sentences.
- Oral Expression — The ability to communicate information and ideas in speaking so others will understand.
- Written Comprehension — The ability to read and understand information and ideas presented in writing.
- Problem Sensitivity — The ability to tell when something is wrong or is likely to go wrong. It does not involve solving the problem, only recognizing there is a problem.
- Written Expression — The ability to communicate information and ideas in writing so others will understand.
- Category Flexibility — The ability to generate or use different sets of rules for combining or grouping things in different ways.
- Speech Clarity — The ability to speak clearly so others can understand you.
- Fluency of Ideas — The ability to come up with a number of ideas about a topic (the number of ideas is important, not their quality, correctness, or creativity).
- Speech Recognition — The ability to identify and understand the speech of another person.
- Originality — The ability to come up with unusual or clever ideas about a given topic or situation, or to develop creative ways to solve a problem.
- Perceptual Speed — The ability to quickly and accurately compare similarities and differences among sets of letters, numbers, objects, pictures, or patterns. The things to be compared may be presented at the same time or one after the other. This ability also includes comparing a presented object with a remembered object.
- Selective Attention — The ability to concentrate on a task over a period of time without being distracted.
- Speed of Closure — The ability to quickly make sense of, combine, and organize information into meaningful patterns.
Work Activities
- Analyzing Data or Information — Identifying the underlying principles, reasons, or facts of information by breaking down information or data into separate parts.
- Interacting With Computers — Using computers and computer systems (including hardware and software) to program, write software, set up functions, enter data, or process information.
- Processing Information — Compiling, coding, categorizing, calculating, tabulating, auditing, or verifying information or data.
- Communicating with Supervisors, Peers, or Subordinates — Providing information to supervisors, co-workers, and subordinates by telephone, in written form, e-mail, or in person.
- Interpreting the Meaning of Information for Others — Translating or explaining what information means and how it can be used.
- Making Decisions and Solving Problems — Analyzing information and evaluating results to choose the best solution and solve problems.
- Getting Information — Observing, receiving, and otherwise obtaining information from all relevant sources.
- Updating and Using Relevant Knowledge — Keeping up-to-date technically and applying new knowledge to your job.
- Thinking Creatively — Developing, designing, or creating new applications, ideas, relationships, systems, or products, including artistic contributions.
- Documenting/Recording Information — Entering, transcribing, recording, storing, or maintaining information in written or electronic/magnetic form.
- Provide Consultation and Advice to Others — Providing guidance and expert advice to management or other groups on technical, systems-, or process-related topics.
- Communicating with Persons Outside Organization — Communicating with people outside the organization, representing the organization to customers, the public, government, and other external sources. This information can be exchanged in person, in writing, or by telephone or e-mail.
- Organizing, Planning, and Prioritizing Work — Developing specific goals and plans to prioritize, organize, and accomplish your work.
- Establishing and Maintaining Interpersonal Relationships — Developing constructive and cooperative working relationships with others, and maintaining them over time.
- Estimating the Quantifiable Characteristics of Products, Events, or Information — Estimating sizes, distances, and quantities; or determining time, costs, resources, or materials needed to perform a work activity.
- Identifying Objects, Actions, and Events — Identifying information by categorizing, estimating, recognizing differences or similarities, and detecting changes in circumstances or events.
- Training and Teaching Others — Identifying the educational needs of others, developing formal educational or training programs or classes, and teaching or instructing others.
- Developing Objectives and Strategies — Establishing long-range objectives and specifying the strategies and actions to achieve them.
- Scheduling Work and Activities — Scheduling events, programs, and activities, as well as the work of others.
- Evaluating Information to Determine Compliance with Standards — Using relevant information and individual judgment to determine whether events or processes comply with laws, regulations, or standards.
- Coaching and Developing Others — Identifying the developmental needs of others and coaching, mentoring, or otherwise helping others to improve their knowledge or skills.
Detailed Work Activities
- Analyze data to identify trends or relationships among variables.
- Prepare analytical reports.
- Prepare graphics or other visual representations of information.
- Apply mathematical principles or statistical approaches to solve problems in scientific or applied fields.
- Design software applications.
- Design research studies to obtain scientific information.
- Evaluate data quality.
- Prepare data for analysis.
- Determine appropriate methods for data analysis.
- Evaluate project designs to determine adequacy or feasibility.
- Present research results to others.
- Supervise information technology personnel.
- Update knowledge about emerging industry or technology trends.
Find occupations related to multiple detailed work activities
Work Context
- Spend Time Sitting — 92% responded "Continually or almost continually."
- Electronic Mail — 76% responded "Every day."
- Importance of Being Exact or Accurate — 72% responded "Extremely important."
- Freedom to Make Decisions — 52% responded "Some freedom."
- Face-to-Face Discussions — 48% responded "Once a week or more but not every day."
- Indoors, Environmentally Controlled — 80% responded "Every day."
- Telephone — 52% responded "Once a week or more but not every day."
- Structured versus Unstructured Work — 64% responded "Some freedom."
- Duration of Typical Work Week — 60% responded "40 hours."
- Impact of Decisions on Co-workers or Company Results — 52% responded "Important results."
- Work With Work Group or Team — 40% responded "Very important."
- Contact With Others — 60% responded "Contact with others about half the time."
- Letters and Memos — 56% responded "Once a month or more but not every week."
- Level of Competition — 52% responded "Moderately competitive."
- Time Pressure — 52% responded "Once a month or more but not every week."
- Frequency of Decision Making — 36% responded "Once a month or more but not every week."
Job Zone
|Job Zone Five: Extensive Preparation Needed
|Most of these occupations require graduate school. For example, they may require a master's degree, and some require a Ph.D., M.D., or J.D. (law degree).
|Related Experience
|Extensive skill, knowledge, and experience are needed for these occupations. Many require more than five years of experience. For example, surgeons must complete four years of college and an additional five to seven years of specialized medical training to be able to do their job.
|Job Training
|Employees may need some on-the-job training, but most of these occupations assume that the person will already have the required skills, knowledge, work-related experience, and/or training.
|Job Zone Examples
|These occupations often involve coordinating, training, supervising, or managing the activities of others to accomplish goals. Very advanced communication and organizational skills are required. Examples include librarians, lawyers, astronomers, biologists, clergy, surgeons, and veterinarians.
|SVP Range
|(8.0 and above)
Percentage of Respondents
|Education Level Required
|Master's degree
|Bachelor's degree
|Doctoral degree
Interest code: CI Want to discover your interests? Take the O*NET Interest Profiler at My Next Move.
- Conventional — Conventional occupations frequently involve following set procedures and routines. These occupations can include working with data and details more than with ideas. Usually there is a clear line of authority to follow.
- Investigative — Investigative occupations frequently involve working with ideas, and require an extensive amount of thinking. These occupations can involve searching for facts and figuring out problems mentally.
Work Styles
- Analytical Thinking — Job requires analyzing information and using logic to address work-related issues and problems.
- Attention to Detail — Job requires being careful about detail and thorough in completing work tasks.
- Integrity — Job requires being honest and ethical.
- Dependability — Job requires being reliable, responsible, and dependable, and fulfilling obligations.
- Independence — Job requires developing one's own ways of doing things, guiding oneself with little or no supervision, and depending on oneself to get things done.
- Persistence — Job requires persistence in the face of obstacles.
- Achievement/Effort — Job requires establishing and maintaining personally challenging achievement goals and exerting effort toward mastering tasks.
- Initiative — Job requires a willingness to take on responsibilities and challenges.
- Cooperation — Job requires being pleasant with others on the job and displaying a good-natured, cooperative attitude.
- Innovation — Job requires creativity and alternative thinking to develop new ideas for and answers to work-related problems.
- Stress Tolerance — Job requires accepting criticism and dealing calmly and effectively with high stress situations.
- Leadership — Job requires a willingness to lead, take charge, and offer opinions and direction.
- Adaptability/Flexibility — Job requires being open to change (positive or negative) and to considerable variety in the workplace.
- Self Control — Job requires maintaining composure, keeping emotions in check, controlling anger, and avoiding aggressive behavior, even in very difficult situations.
Work Values
- Independence — Occupations that satisfy this work value allow employees to work on their own and make decisions. Corresponding needs are Creativity, Responsibility and Autonomy.
- Achievement — Occupations that satisfy this work value are results oriented and allow employees to use their strongest abilities, giving them a feeling of accomplishment. Corresponding needs are Ability Utilization and Achievement.
- Recognition — Occupations that satisfy this work value offer advancement, potential for leadership, and are often considered prestigious. Corresponding needs are Advancement, Authority, Recognition and Social Status.
Related Occupations
Wages & Employment Trends
|Median wages (2018)
|$42.20 hourly, $87,780 annual
|State wages
|Employment (2016)
|37,000 employees
|Projected growth (2016-2026)
|Much faster than average (15% or higher)
|Projected job openings (2016-2026)
|State trends
|Top industries (2016)
Source: Bureau of Labor Statistics 2018 wage data and 2016-2026 employment projections . "Projected growth" represents the estimated change in total employment over the projections period (2016-2026). "Projected job openings" represent openings due to growth and replacement.
Job Openings on the Web
Sources of Additional Information
Disclaimer: Sources are listed to provide additional information on related jobs, specialties, and/or industries. Links to non-DOL Internet sites are provided for your convenience and do not constitute an endorsement.
- American Academy of Actuaries
- American Educational Research Association
- American Statistical Association
- Association for Institutional Research
- International Biometric Society
- National Council on Measurement in Education
- Occupational Outlook Handbook: Statisticians
- SAS Users Groups
- Society of Actuaries
- The American Society of Human Genetics


text:
First of all Spin It Rich! Slots can be attained cost-free. Therefore, you shouldn't be concerned about any concealed charges. Alternative versions are out there for either Android and iPhone, therefore this is yet another strain that you can put off your shoulders.
The following thing that must impress you about Spin It Rich! Slots is that it is relatively safe. There's no need to fear about your personal data being taken if this is the game that you choose.
On top of that, it gives you a broad number of Free Coins, and consequently you would be spoilt for options. It is not likely that you won't be able to discover something that would suit your requirement as the option of Free Coins is also available.
If you do not have fun with a particular game, you can jump onto another one.
By the way, I strongly recommend checking our Facebook.


text:
Jeremy Grant
Senior Executive Advisor, Identity Management, NIST (US Commerce Department)
Jeremy Grant is the Senior Executive Advisor for Identity Management at the National Institute of Standards and Technology (NIST). Grant joined NIST in February, 2011 to lead the establishment of a National Program Office to implement the National Strategy for Trusted Identities in Cyberspace (NSTIC).
He comes to NIST with a diverse background and deep understanding of identity and cyber security issues, having served in a range of leadership positions spanning government, technology firms and the financial services sector. He is a former co-chair of the Identity Management Committee at TechAmerica. He is a graduate of the University of Michigan.
- Website http://nstic.blogs.govdelivery.com/
- Follow Jeremy on Twitter http://twitter.com/nsticnpo


text:
The PBCC is heading back to three ballparks this Summer and you're invited to join the fun! Go to bat against breast cancer with us in Harrisburg, Lancaster and Erie. We're looking for batters and volunteers to fight for breast cancer survivors and their families. Can we count you in?
Registration is now open for all three Take a Swing Against Breast Cancer home run derby events. This year, we've introduced three fundraising levels for batters with an easy-to-use website for receiving donations. Sign up as an individual batter or create a team and invite your family and friends. We hope to see you at this summer!


text:
The Today Club is a business networking group that runs in Wallington covering the Sutton and Croydon areas.
We run fortnightly on Tuesday lunchtime. Please select a date from the list to register.
The group is open to everyone who runs their own business and is looking to be proactive and work with others to get results, we are a friendly bunch and love making new contacts from all industries.
Your time is valuable, you need to ensure you use it wisely to gain contacts, do some marketing and sell your services. The sessions run twice a month, membership is great value and you actually work on your business there and then.
The format of our meetings are the following:
- We go round and have 1 minute each, just to introduce ourselves, our business and what business we are looking for.
- We then split out into tables and have 3 minutes to go further into our business and what we are after, we then have time for questions.
- Also every week we then have a presentation done by one of the members (on a rota basis). It is an in depth look into their business and what they have going on.
- Lastly we go through everyone's referrals for each other and the thank yous of the business that has been generated.
The setup has proved extremely successful and we have regular fantastic feedback.
Whether you are an experienced networker or want to see what is in it for you, we invite you to join us. We welcome new ideas and value an enthusiastic and pro-active approach from our members.
Membership is only £195.00 with a £10 fortnightly meeting fee
If you are interested in visting our club and seeing what we do please contact Adelle Gibson to book your space.