text:
Around 10 p.m. Tuesday, 1st Sgt. Roger Wheeler sent a text message to his co-worker and friend Sgt. 1st Class Miranda McElhiney.
"Please respond to me," he wrote.
But he knew she wouldn't. She was one of four people killed and seven injured during a shooting rampage that morning at Carson City's IHOP that ended when gunman Eduardo Sencion, 32, turned the gun on himself.
"I don't know why I did that," Wheeler said Thursday. "You just can't believe it."
Of Sencion's 11 victims, five were members of the Nevada National Guard's Joint Force Headquarters unit in Carson City. Three of the five died. Those killed held three of five leadership positions in the unit.
"Not only is it difficult emotionally, but it hit the framework of the unit's organization," said Sgt. 1st Class Erick Studenicka. "It's been decimated."
The unit lost its leader, Maj. Heath Kelly, 35, who served as the commanding officer. Sgt. 1st Class Miranda McElhiney, 31, was the unit's administrative sergeant, and Christian Riege, 38, who was posthumously promoted to master sergeant Wednesday, was supply sergeant.
Despite the short staff, this weekend's drill - probably what the group was planning during Tuesday's breakfast meeting at IHOP - will go on, Wheeler said.
He said it will likely consist of a troop formation to explain to everyone the situation, then chaplains and psychology professionals will be on hand to speak with soldiers.
In addition to trying to restaff, Wheeler said, unit members also will be trying to work through their grief.
"Three people I know very well are gone," said Wheeler, a retired police officer who served 24 years in Douglas County. "I've been around so much death over the years, it's just numbing. I'm not the kind to break down and lose it. I don't know when it will hit me."
Of the three, he said, he was closest to McElhiney, whom he described as "a short little gal, but she was feisty."
She was ethical and honest, he said: "She lived the Army values of honesty and integrity."
He called her a perfectionist, from her gourmet bakery business - her license plate read "MCakes" - to the way she kept track of all 127 soldiers in her unit, who were often assigned to support different units across the state.
"It was like herding cats at times," he said. "She did it very well - so well, it's going to be hard to replace her."
She had her bachelor's degree in human resources management and was working on her master's degree. She also was considering the Troops to Teachers program.
"She would have been an excellent teacher," Wheeler said.
When Wheeler brought his girlfriend to a military ball for the first time in April, he said, McElhiney took her under her wing.
"She was very friendly," Wheeler said.
He had known Kelly, an Iraqi war veteran and married father of two, only since November, but said he was a good guy.
"He was extremely intelligent, and he loved history."
A fellow guardsman, Master Sgt. Paul Kinsey, said there was a soft side to Kelly.
"He acted like a hard ass, but if you talked to him about his kids, he would just melt," Kinsey said.
Kinsey said all three were assets to the National Guard and to the community.
"Even outside of uniform, they were good people," he said.
It makes it that much harder to figure out why someone would gun them down, Wheeler said.
"I'm frustrated. I'm angry. It makes me mad," he said. "It's just senseless."


text:
Report: Drake Is Actually Gay and His Rihanna Romance Is Fake
- 10:52 AM, Sep 27
Based on true events, "Argo" chronicles the life-or-death covert operation to rescue six Americans, which unfolded behind the scenes of the Iran hostage crisis-the truth of which was unknown by the public for decades. On November 4, 1979, as the Iranian revolution reaches its boiling point, militants storm the U.S. embassy in Tehran, taking 52 Americans hostage. But, in the midst of the chaos, six Americans manage to slip away and find refuge in the home of the Canadian ambassador. Knowing it is only a matter of time before the six are found out and likely killed, a CIA "exfiltration" specialist named Tony Mendez (Affleck) comes up with a risky plan to get them safely out of the country. A plan so incredible, it could only happen in the movies.

subset: commoncrawl


text:
BSA Hospice's Grief Education and Support Group will meet at 2 p.m. Tuesdays through August in the den of the BSA Hospice building, 600 N. Tyler St. The sessions are free. To pre-register, call 378-6777.
Quest Hospital will present "Total Care for the Aging Population" from 8 a.m. to 3:30 p.m. Friday at 7200 W. Ninth Ave. Speakers are Arthur Ware, Potter County Judge; Dr. Larry Balzer; Dr. Rush Snyder; Dr. Agustin Cabrera-Santamaria; and Dr. Mustafa Hussain.
The seminar is free. Continuing education units are available. For reservations, call D'Ann Ebeling at 356-3003.
Texas Tech University Outreach and Extended Studies will present the program "Healing Past Childhood Wounds" from 9 a.m. to 4:30 p.m. Friday at the Merket Alumni Center on the Texas Tech University campus in Lubbock.
Early registration is encouraged. Space is limited. The workshop is designed for mental health care professionals. Mary Ann Manley, a psychologist in private practice working with adult survivors of abuse, will present the course.
Registration fee for the workshop is $84 and includes professional credits, refreshment breaks and lunch. To register, call (806) 742-2352, ext. 270 or ext. 346, or fax information to (806) 742-0480, or e-mail
The Amarillo Veterans Affairs Health Care System Community Resource Committee will have its fifth annual Christmas in July at 2 p.m. Wednesday. Patients' gift distribution will begin in the Nursing Home Care Unit-B, second floor. For more information, call Cindy Barnes at 354-7801.
The medical review division of the Texas Workers' Compensation Commission will present a one-day educational seminar from 8:15 a.m. to 4:30 p.m. Wednesday at the Ambassador Hotel, 3100 W. Interstate 40.
Medical review seminars are open to the public, but are specifically designed for health care provider billing staff, insurance carrier staff and utilization review agents.
Registration begins at 7:15 a.m. The fee is $50. For more information, call (512) 440-3823.
The Home Health Coalition of the Panhandle will meet at 11:30 a.m. Tuesday at the Hoffbrau Restaurant, West Interstate 40 and Coulter Drive.
For more information, call Ken Cargile at 351-1700.
The Women's Center of the Don And Sybil Harrington Cancer Center and Baptist St. Anthony's Health System will continue community breast screening clinics at these locations:
Today - Coon Memorial Hospital, 1411 Denver Ave., Dalhart;
Tuesday - South Plains Health Care Providers Inc., 208 W. Second St., Muleshoe.
Tuesday - Harrington Cancer Center, 1500 Wallace Blvd., Amarillo.
Wednesday - Hemphill County Hospital, 1020 S. Fourth St., Canadian.
Wednesday - Parmer County Hospital, 1307 Cleveland Ave., Friona.
Wednesday - Harrington Cancer Center, 1500 Wallace Blvd., Amarillo.
Thursday - Shamrock Clinic, 1010 S. Main, Shamrock.
Thursday - ; Collingsworth County Hospital, 1014 15th St., Wellington.
Friday - Clarendon Medical Center Nursing Home, N. Hwy. 70, Clarendon.
Friday - Harrington Cancer Center, 1500 Wallace Blvd., Amarillo.
Funding is available through the Texas Department of Health for Texas residents who qualify for assistance. To make an appointment, call 356-1905 or (800) 377-4673.
The Supportive Care Division of The Don and Sybil Harrington Cancer Center will sponsor Dialogue, a weekly support group for people living with cancer, at noon Thursday in the board room of the center, 1500 Wallace Blvd. This week's topic will be "Your Local American Cancer Society."
For more information, call Gerry Kelly at 359-4673.
The Women's Center at the Don and Sybil Harrington Cancer Center will present Women In Touch, a monthly support group for women living with breast cancer, at 5:30 p.m. today in the amphitheater of the center, 1500 Wallace Blvd.
Pam Ehly of Baptist St. Anthony's Outpatient Services will present "New Treatment for Lymphedema."
For more information, call Cindy Horton at 359-4673, ext. 111 or (800) 274-4673.
© 2016. All Rights Reserved. | Contact Us


text:
With 1.7 million freelancers, we'll match you with the perfect talent.
I'm a television news anchor and have been working in broadcast television and the performing arts for over 20 years. I'm an award winning journalist (currently nominated for 2 Emmy Awards) and stage actor. My vocal delivery is both friendly and professional. VIewers/listeners often remark that they 'connect' with me.
I can provide voice tracks on multiple formats and am happy to send you samples of my delivery style.
I look forward to putting my vocal talents to work for you.


text:
Top Definition
An overly large girl
Boy, isn't Janvier a mountain
автор: General_Truffles 10 марта 2003
Trending Now
Can you define these popular missing words?
Photos & Videos
The breasts that are usually big
Hey, you with the big mountains!
автор: Liam 19 марта 2005
The same as a peak/boid etc. It's an insult to make someone upset and you can't comeback to it. Usually used when someone has done something stupid like fallen over.
Lewis: "Haha you fell over that is Mountain for you"
автор: Anzio24 28 ноября 2011
a large amount
He had a mountain of work after school.
автор: The Return of Light Joker 18 июня 2009
A person who is particularly bootylicious. Usually a Mexican male who strangely enough lives in Pinole, CA. He is a rare breed.
"Dayum, girl. Look at that guy's ass. It's the biggest mountain I can see!"
автор: fayf 18 октября 2008
upstate NY prisons (where numerous NY prisons are, away from the city)
I was away up in the mountains for 11 years and my commissary was always right.
автор: OntheHumble 14 марта 2008
the band who made "Mississipi Queen"
I'm gonna go listen to Mountain
автор: Crash Miller 10 июля 2008


text:
Personal stories about measles
The impact of a recent measles outbreak on children with cancer was highlighted at a launch of two Ministry of Health publications at Starship Hospital on Thursday 9th August 2012.
The booklets are accompanied by videos and can be viewed/downloaded from the Ministry's website.
Immunisation – Making a Choice for Your Children
Provides information for parents and others about how children and young people were affected by the measles outbreak in 2011. The booklet features stories about young people who had measles and includes interviews with Medical Officers of Health Richard Hoskins from Auckland and Ramon Pink from Christchurch.
In the accompanying video Felicity Lyme, who caught measles during the 2011 outbreaks, talks about what the disease is like.
Protecting Children with Cancer from Measles
Provides information for parents and others about how children and young people with cancer were affected by the measles outbreak in 2011. The booklet includes interviews with parents of children with cancer and Paediatric oncologists Scott Macfarlane from Starship Hospital and Rob Corbett from Christchurch Hospital who share their experiences of the disease.
In the accompanying video Leroy Beckett, who was undergoing cancer treatment during the 2011 outbreak, talks about his fears about measles and how others being immunised is important to keep people like him safe.


text:
Two archers shoot arrows in the same direction from the sameplace with the same initial speeds, but at different angles. Oneshoots at 45.0 above the horizontal, while the other shoots at60.0.
If the arrow launched at 45.0 lands 225 from the archer, how far apart are the two arrowswhen they land? (You can assume that the arrows start atessentially ground level.)


text:
Reviews & Essays
- Ladies and Gentlemen, Carla Bley.
By Alec Hillyer
"I think rock and roll is jazz, and jazz is classical music, and classical music has become rock and roll. They've all gone round one turn on the clock," pianist and composer Carla Bley quipped in a 1972 interview with John Fordman. Her claim wasn't that these genres were adopting traits of the others, but that the audiences that they served were beginning to shift, and by the early 70s the shifting was seismic. Experimental composers like Steve Reich and Philip Glass were becoming the new mavericks of minimalism. Rock and roll was siphoning off many of the hip youth that only jazz could have staked a claim to before. Rock was becoming a culture capable of absorbing a myriad of influences and transmuting that material to wider audiences. Jazz had already proved its grace in such musical synthesis. Yet, composer Carla Bley came along in the late 60s to show us new ways to compose and incorporate many of the sounds percolating through the culture. Her first act was to bring into jazz, long vaunted as a pure-performance art, the visceral power of rock and its fascination with studio-production technique, including some of the emerging baubles of recording technology. How much of this importing ended up compromising Bley's early jazz output is up for argument. But Bley's knack for the unconventional would become evident quickly, and her first two major releases would act as proper introductions to the pianist and composer.Read more
- Carla Bley- Walking Lottery Woman
By Fritz Byers
In the spring of 1980, I saw Carla Bley and her quixotic little big band in concert at Berkeley Performance Center. I knew Carla's work then only superficially and primarily in her role as the pianist in the Liberation Music Orchestra. (With university lecture halls and dormitory common rooms at the time full of shrill and thrilling clamorings about real, imagined, and failed liberations spanning the Americas, the captive radio stations aired
- Art Blakey's Jazz Message
By Alec Hillyer
Art Blakey's Jazz Messengers has had many iterations during its 35-year run. This wasn't out of desperation, but out of design. Many musicians who played with the Jazz Messengers could have dedicated much more time to the group, but Art Blakey wouldn't have it. He envisioned the group as a revolving door of young talent, with Blakey's role as the permanent bandleader, drummer, and mentor. He would hire relatively unknown musicians, groom them to play with the mastery required to tour like Art, and then abruptly let them go. When pressed on the issue Blakey famously commented, "I'm gonna stay with the youngsters. When these get too old, I'm gonna get some younger ones. Keeps the mind active". However, the band never sounded like a project for an idling old drummer, more a workshop for aspiring players and songwriters, as taught by a bebopping zealot. Blakey was steadfast in his mission to bring jazz to all audiences, and that unyielding passion can be heard in Blakey's technique. Blakey styled his drumming with an aggressive swing. He was graceful, but played with a muscular intensity, even when comping with subtle polyrhythms and fills. The sound of the Messengers was ultimately the sound of young cats forced to prove themselves on Blakey's stage. Blakey would lead the outfit until it disbanded after his death in 1990.
- 2015: The Year I Gained Perspective in Jazz
By Alec Hillyer
Read more
It's not like I was going in entirely blind. I was vaguely familiar with jazz music because of my obsession with sample-based hip-hop as a teen. I would yearn for that vinyl crackle that preluded the rapper, as the drum break was introduced. A wildly improvisational bass solo would be lassoed in to form a 4 or 8 bar melodic loop, with the drums and horns sourced from some other jazz or soul recording. These were artists creating music together although they may never have even met. The bricolage of sounds colliding in these appropriations created a quintessentially post-modern music, although I hadn't been that acute at the time. These were my most formative years, and I gravitated towards sample-based music simply because I could hear the innovations in real-time. However, I noticed a strange allure to the often aged source material.
- A Friend of the Family
By John Bigelow
Read more
- In Memory of Frank Sinatra
By Fritz Byers
Read more
- The Frank Sinatra & Count Basie Collaboration
By Kim Kleinman
Read more
Francis Albert Sinatra's birth 100 years ago this month is a chance to look at his music more closely. I have not given it the attention it deserves, so I take this opportunity to get to know his collaborations with Count Basie to overcome a rather serious lapse of taste and attention.
- The Manic Eclecticism of Charlie Haden
By Alec Hillyer
Read more
- The Best Selling Bootleg in Jazz
By Alec Hillyer
The shadows would have been getting long in Carmel, California, as the evening approached and the mid-September air finally began to cool. Audience members had filled an assembly hall at the Sunset School, anxious to witness the popular pianist Erroll Garner perform. The vivacious Garner, along with bassist Eddie Calhoun, and drummer Denzil Best, took the stage near dusk and played an intoxicating yet intimate set for the audience as the sun set over the Monterey Pacific coast. The event was promoted by radio personality Jimmy Lyons as part of his "Sunset Series" summer concert events, an early predecessor to the Monterey Jazz Festival. What transpired that night was captured on tape, and sold as an Erroll Garner live recording titled "The Concert by the Sea." Lyons executively produced the recording, which was ultimately released by Columbia Records, but none of these parties initially intended for it to exist in any recorded form at all. Now after sixty years, this jazz recording gets a long overdue reissue, one that sheds light on much of what was presumed lost from the performance that evening.Read more
- The Understated Stylings of Rotem Sivan
By Alec Hillyer
Read more
"A New Dance" (Fresh Sound Records) is the latest release from the Rotem Sivan Trio. Referred to by guitarist Peter Bernstein as "the next guitarist of our times," Sivan is known to pack his improvisations, swelling the space of the song with notes. However, Sivan refuses to force his way onto the listener, preferring to play in an often refined and quiet manner. Accompanied by Haggai Cohen-Milo on upright bass and Colin Stranahan on drums, Sivan works out on seven of his original compositions and 3 standards, all reinforcing Sivan's strengths as a pioneer in the modern New York City jazz scene. This release quickly follows last year's "For Emotional Use Only," an intimate and stripped-down live recording of the trio performing in New York City. Sivan seems to have something to prove on this record, exploring new territories of distortion, dubbing, and contemporary musical textures not present on previous releases.
- Views: 403 Jazz Spectrum - Best of 2009
Fritz Byers selects 50 new jazz recordings from 2009 that stood out for their innovation, virtuosity, and beauty.Read more
- Views: 785 The Alchemy of Scott Lafaro, by Kim Kleinman
The bassist Scott Lafaro's voice -- fresh, vibrant, and melodic -- transformed the instrument and its role in jazz. Working with artists as diverse as Bill Evans and Ornette Coleman, created pure gold in a form of artistic alchemy. Kim Kleinman considers Lafaro's achievement.
- Views: 802 Honoring Blue Mitchell, by Fritz Byers
The trumpeter Blue Mitchell created a substantial body of tasteful, expressive, and affecting music, including a series of recordings in the 50s and 60s for Riverside and Blue Note that document a sensibility of consistent excellence and appealing reserve. Fritz Byers honors Mitchell's memory.
- Views: 631 Jim Hall - An Appreciation, by Fritz Byers
For fifty years, Jim Hall has been making jazz. His accumulated body of work is rich, fluid, and marked by sustained excellence. It also reflects Hall's relentless inventiveness. Fritz Byers considers Hall's career.
- Views: 3040 On Dexter Gordon, by Kim Kleinman
Kim Kleinman considers the achievement of Dexter Gordon, reflecting on having first encountered Gordon's grand sound on the live recordings of Gordon's mid-70s return to the United States, the pleasures of seeing him perform, and his enduring influence.
To read Kim Kleinman's article, click here.
- Views: 184 2008 Grammy Award for Latin Jazz
The Recording Academy will announce the 2008 Grammys Sunday, February 8, 2009. The contenders for Best Latin Jazz album are the Caribbean Jazz Project, "Afro Bop Alliance"; Conrad Herwig, "The Latin Side of Wayne Shorter"; Arturo O'Farrill & The Afro-Latin Jazz Orchestra, "Song for Chico"; Nestor Torres, "Nouveau Latino"; and Pap Vazquez & The Mighty Pirates, "Marooned/Aislado". Fritz Byers surveys the field.
- Views: 174 Best Jazz Releases - 2008
Fritz Byers selects forty jazz releases from 2008 that made a deep impression, selected from among the hundreds of worthy discs that he listened to during the year.
- Views: 197 2007 Grammy Award for Latin Jazz
The contenders for the 2007 Grammy Award for Best Latin Jazz reflect the breadthy, vitality, and brilliance of the current Latin-jazz scene -- equal parts revered veterans and stunning newcomers. Fritz Byers argues that who wins doesn't matter; listen to all five of these terrific recordings.
- Views: 200 Best of Latin Jazz 2007
A steady stream of stirring releases made 2007 a rich year for Latin Jazz artists: the Simon brothers, Mark Weinstein, John Santos, Paquito D'Rivera, Bobby Sanabria, and Roswell Rudd in collaboration with Yomo Toro. Fritz Byers surveys the year.


text:
Shami Ahmed, Businessman
Sitter in 1 portrait
Ahmed made his name with his clothing chain Joe Bloggs by offering the youth market the right clothes at the right price. Ahmed's task force work encourages young entrepreneurs.
Tell us moreback to top
Can you tell us more about this person? Spotted an error, information that is missing (a sitter's life dates, occupation or family relationships, or a date of portrait for example) or do you know anything that we don't know? If you have information to share please complete the form below.
If you require information from us, please use our Archive enquiry service. If you wish to license an image, please use our Rights and Images service.
Please note that we cannot provide valuations.
We digitise over 8,000 portraits a year and we cannot guarantee being able to digitise images that are not already scheduled.


text:
Skip to comments.Reid calls special ObamaCare meeting
Posted on 11/13/2013 1:12:32 PM PST by jazusamo
click here to read article
RUSH: I got Fox on now and I'm seeing Geraldo Rivera, so I'm thinking somebody died 'cause that's when they trot him out from the formaldehyde, is when somebody's died. He's the Grim Reaper. But it's not. Geraldo's talking about some top Senate Democrat. I don't know the name, doesn't matter. There's 12 of 'em, now joining the push to let Americans keep their health plans. Folks, you can't.
I'm gonna get blue in the face here. They can't reinstitute that. We had yesterday, there was a story in The Politico, and one of the architects, a man named Jonathan Gruber, made the point. It was a huge El Rushbo See, I Told You So. You can't roll back and give people the plans that they had 'cause those plans are gone. The insurance companies had to get rid of them because they didn't comply with Obamacare.
Just one example is all this contraception, like in the ad we're talking about. Every policy now provides for that kind of thing, that most people aren't gonna use or don't care to have insurance cover because they'll buy it themselves. Obama, in order to get the young Millennial female vote, mandates that every policy cover contraception for everybody -- birth control pills, you name it. That constitutes change in the policy, and this guy Gruber said it.
You cannot have Obamacare and your old policy at the same time. If you keep your old policy, there's no Obamacare. They'd have to roll back Obamacare. They'd have to cancel Obamacare to give you your old plan, if we're gonna follow the law here. I guess with this bunch, that's not a given. But if the law counts for anything, you cannot have Obamacare and your insurance policy used to have at the same time because the Obamacare law doesn't permit it.
Obamacare requires a bunch of things in every policy now.
They're trying to blame the insurance companies for changing everybody's policies, and the insurance companies are simply complying with the new law. The insurance companies have to cover contraception, and that means that everybody has it in their policy. You've got to pay for it for the people that are using it so that they don't have to pay for it in their minds. All these Democrats are running around saying, "We just find a way to let people keep their plans."
Don't fall for it, folks.
It's another typical Democrat trick.
You can't get your old plan back. It's gone. You got a cancellation notice. They would have to delay, defund, or repeal Obamacare -- and then the insurance companies would have to agree to go back and re-create the policies that you had that you liked. They don't exist. One more time: The architect of Obamacare, Mr. Gruber, made the point that you cannot have both. If everybody gets their old policies back that they liked, you don't have Obamacare.
By the way, the reason is that the insurance companies will not make money on your old plan with Obamacare in effect. He said it, not me. But as a matter of law, you can't have both plans at the same time. By the way, you know, the White House website right now? At the White House website right now, there's a question: "Will my coverage at work change?" Answer: "No. If you like the health plan you have at work you'll be able to keep it." They're still lying about it. You won't keep it once January 1st comes.
It goes away like everybody else's now.
RUSH: Erick Erickson, head honcho at RedState.com, used to be a commentator at CNN, then wised up and went to Fox, just posted the following. He's also on our blowtorch affiliate in Atlanta, WSB. "Republicans are walking into a trap and they dont even realize it. They are about to consider, in the House of Representatives, legislation by Congressman Upton that would allow people to keep their insurance plans."
This is what happens. I'm editorializing here. I'll get back to Erick in a minute. First of all, Fred Upton is the Republican who was all for getting rid of the incandescent lightbulb and moving to the compact fluorescent because of environmental, climate change issues. Fred Upton. He's in tight with the House leadership. And, of course, this is so typical, because everybody now is getting their plans canceled. (Crying) "I don't want my plan canceled! I like my plan." And the Republicans, "Well, hey, you know what, we think you should keep your plan." This is the way the Republicans think. They'll come up with a piece of legislation with the proper message that they think will convince people that they're not mean and that they hear them and so forth.
So Upton's got this plan, an actual piece of legislation that would allow people to keep their insurance plans.
"Theres a problem though. It is widely acknowledged that Congressman Uptons legislation is more messaging than substance." He's just trying to relate to people. He's just trying to send the message from the Republicans to the people in the country, "We hear you. We also think you've been treated wrong. We're good people, too. Please like us." But he doesn't really mean for this to have any substance to it, according to Erick. "His legislation does not have anything in it that can force insurance companies, in the topsy-turvy world of Obamacare, to keep insurance plans going."
It's just a piece of legislation that supports the notion of you keeping your plan. The problem is and the trap is that there is a plan that does this over in the Senate. "Senator Mary Landrieu has written legislation in the United States Senate that the Democrats love. It mandates insurance companies have to keep people on their present insurance."
Now, I must pause here because the insurance companies are in a no-win on this. If the mandate passes they have to lose money doing it. Snerdley's right, 'cause the key of this is Dingy Harry.
Okay, so here's Mary Landrieu. Let me stay on point. Mary Landrieu has legislation in the Senate that the Democrats love. It mandates that these evil, man, rotten insurance companies continue to offer you your plan. And it creates this impression that it's the insurance companies that did this, not Obamacare, because she's trying to inoculate the Democrats from any negative fallout here. And the Republicans are gonna fall right into this, and here's how. Now, the Republicans supposedly oppose mandates, right? We don't like government mandates. We like freedom.
We Republicans are against the government forcing private businesses and individuals into contracts they don't want. That's why we opposed Obamacare. We don't like the idea that you can be told that you have to buy something. Fred Upton has proposed this thing with no teeth in it, but if it passes here's what's gonna happen. The House, because a lot of Democrats will support Fred Upton's meaningless provision, Democrats will see to it that this bill passes, and it'll go to the Senate. And there won't be a conference committee. Harry Reid will simply throw out Upton's plan and substitute Landrieu's plan for it and send it back to the House where you're saying, "Well, Rush, the Republicans will vote it down." No, they -- (interruption) Well, yeah, but what new one coming back?
No, here's the way it works. Upton's legislation has no teeth in it, it's just a PR message but the Democrats will see to it that it passes and it gets to the Senate, where it's real. Dingy Harry says this bill doesn't have any teeth in it, throws it out and substitutes the Landrieu plan. The Landrieu plan, with mandates in it that supposedly Republicans hate will be sent back to Republicans, and this is the trap, this is the trick. The House Republicans will be forced to either vote for it or be characterized as siding with the insurance companies against the people. That is the trick, Fred Upton trying to send a message of solidarity to the people being screwed by Obamacare is gonna have his meaningless, toothless bill thrown out by Harry Reid.
Landrieu's bill, which mandates it, will then be sent back to the House, and the Republicans will be forced with either voting for it or opposing it, and if they oppose it, here comes the media, and here come the Democrats talking about how the Republicans continue to side with Big Insurance over the people. And the Republicans won't want that said about them, and so they will pass it. Then the Democrats and Obama, via Mary Landrieu and Harry Reid and Fred Upton, will get their bill mandating that you get to keep your policy, and as far as you are concerned, Obama and the Democrats are heroes, because they have seen to it that those evil Republicans and insurance companies have once again been shafted, as they tried to shaft you.
So in one fell swoop, the Democrats will have the Republicans on record saving Landrieu's reelection in Louisiana by casting her as the one who saved Americans' health care plans, and also getting on record as really being in favor of fixing Obamacare with the use of mandates. That's what the trap is, all because the Republicans are defensive and have no confidence. They ought to be nowhere near trying to fix this. This is why I said the other day -- I'm sorry to say it again -- that this thing is starting to implode now. These very Republicans were the ones who said, "Don't oppose it, Mr. Cruz. Don't defund it, Mr. Cruz. Don't delay it, Mr. Cruz. Let it implode and let it collapse, and let it be the end of liberalism." And here come the Republicans being tricked into saving it. They ought to be doing nothing that helps the Democrats here.
"But Mr. Limbaugh, then they're going to be castigated as enjoying people's pain." The Democrats are causing people's pain! Obama is causing people's pain, not the Republicans. But the Republicans are gonna unwittingly maneuver themselves into a position where they are acknowledging that they're the cause of the pain, and they want to be the solution by agreeing with the notion that the insurance companies are the problem, not Obama, and the insurance companies should be mandated to reinstating your policy that you're losing. And then what if Obama, on top of that, decides to give people some money and call it a subsidy, for their pain and suffering during all this?
I knew I was gonna kill you with this. I knew I was gonna kill you. We snatch defeat from the jaws of victory every time, and it's all because of a lack of confidence and a defensive posture. We sit up there, we think we're hated, we're think we're despised and we'll take any opportunity we have to tell people, "No, you're wrong about us. We do agree. We think it's a horrible thing that you're losing your policy, and we're gonna go on record saying so." In doing that they're gonna end up stepping into a trap. So that's, again, a post at RedState.com by Erick Erickson. I mean, folks, I wish it weren't the case.
Yes. There's polling data out there. It's in the Stack here. Obama's approval numbers now everywhere in the thirties, everywhere. The Republicans ought to be nowhere near trying to help Obama save his bacon. But they don't think that's what they're doing, I'm convinced. If they do this, I mean, you talk about trauma and the need for therapy, I really think that the Republicans have been genuinely psychologically traumatized by decades of media criticism that they're racist, sexist, they care only about the rich, they hate women, and I think they're just obsessed with taking every opportunity that comes their way to try to prove to people they're not what the Democrats say.
Now, there may even be, in addition to that, which I wholeheartedly believe, by the way, but there may also be some establishment -- look, folks, I hate to say this, but when Ted Cruz and the boys were doing everything they can to oppose this and stop it and prevent this, there's all kinds of Republicans that campaigned on their promise to repeal it and never lifted a finger to actually do it. There's a lot of establishment Republicans who, they're envisioning being in power someday with this bill in place and in charge of the money. I don't know, it may well be that they're not falling into a trap. This may be a strategy to save Obamacare, who the hell knows. But this is the ruling class inside-the-Beltway establishment, both parties. In this case, I'd have to come down on the fact that the Republicans are unwittingly preparing to save Obamacare.
I really can't bring myself to believe that they actually want to. But reality is reality. You know, it is what it is. And what is is that the Republicans appear to want to salvage this somehow, if they can make people like them in the process. Sorry to hit you with this, but it's brewing out there. So what's the solution? Well, if somebody could get to Fred Upton in the leadership: "Just stand up. Don't propose this. You don't need to. Table the damn bill and don't send anything to the Senate and leave Landrieu and Harry Reid hanging by themselves. Do not send them anything that they can toss out and substitute their own bill. You know, call a press conference, Congressman Upton, and go tell people what you think, but don't propose some kind of meaningless legislation that could be tossed out."
I know. I know. There are 18 Democrat Senate seats on the hook. Obama's on the hook. But it doesn't matter. These 12 to 14 Democrats, who, it is said, are prepared if something's not done by Friday, to join Republican fixes for this. Why would you throw that out? I can't answer the question. You're asking me again, for 25 years, you've been asking me, "Why do the Republicans do X?" I do not know. That's all I can tell you. I don't know.
RUSH: The Republicans need to adopt Harry Reid's attitude of two or three weeks ago. Remember when Harry Reid said, "Why would I want to do that?" when asked about making sure that places that treat kids with cancer stay open. "Why would I want to do that?" The Republicans need to say, "Why would I want to do that? Why would I want to preserve Obamacare?" I don't know why the Republicans want to make Obamacare work. I don't know. Unless they so hate the Tea Party, unless they just despise the Tea Party, that they do something like this out of spite. I do not have an explanation.
That gives Butthead Reid too much power. He's nothing but a shill.
Obama is term-limited, Dem Senators are not. Time for Obama to get under the bus. LOL!
I despise that little squirrely Grinch.
Absolutely correct, sir. It will be a race to the bottom.
Nothing was stopping them from doing that before. Individual health insurance plans were always available. The reason companies offer health insurance is as a benefit to make their employees happy. If they stop the benefit, they risk losing their employees to another company who still provides it. And unless their employees are below average wage, the employees are going to have to pay more for their insurance now than they would have on the individual market before Obamacare.
The "free lunch" logic applies to employers as well as individuals. If they're think they're going to save money by pushing costs on the government, who is only going to drive costs and inefficiency up more and eventually have to raise taxes to run a health care system more expensive than it was previously, they're wrong.
And "Bang!", Obama takes credit for the fix along with the Dems, the dems get their cover for 2014, and the GOP gets demonized and blamed for the national crisis.
Timing is everything on this issue. The dems and Obama need to own this for months to come.
True!! Nix it, don't fix it...it's based on one - if not many - lies.
"Dem Senators are not. Time for Obama to get under the bus. LOL!"
Could be. Clinton threw him under the bus, distanced Hillary from O and O care. Gave "permission" for other Dems to do the same . . . OK where do the Clintons get the ability to . . . tell Dem Senators when it is OK to turn on O? Inquiring minds would like to know.
OK Bill and Hill want / need the Senate. The Dem Senators want themselves reelected and a majority. O is history; I mean, he is a lame duck even if not toast. The Dems are moving towards the future.
OR? Will Reid and O hold the line yet again?? Tomorrow will be interesting indeed! Before Bill spoke (not that he SHOULD have the credibility for anyone to listen to him) I would have bet O would veto anything; not that he would have to because Reid would not let anything through the Senate.
Come on Freepers, I would like your take on this!
No Mr. McConnell true conservatives are not panicing.
the cockus and the senior white officials? does that leave out the Kenyan?
Don't fix it (it can't be fixed). They own it. They will be destroyed with it. Don't help them. They would take all our property and kill us if they could. They are our mortal enemies.
ESAD, Dingy. You filthy RAT.
The journalistic lies start in the second sentence. It's not "hundreds of thousands" losing their policies, it's millions. A million just yesterday in one state (CA) for one provider (Blue Cross Blue Shield).
Not all CHANGE is necessary or an improvement.
obamacare changes the equation, because plans will be limited by what they must provide and the cost of bureaucratic compliance being so high businesses will find it cheaper to drop the benefit. Losing employees is no longer an issue. We now have a new normal of 7% - 9% unemployment. We do not have a rapidly growing economy and because of the debt and QE we won't for a very long time.
Yep, this so called journalist must have been pained to have to write this article but did his best to slant it for the Rats. The turkey outdid himself with the second to last sentence.
You mean the rats don't want to go down with HMS Obama?
The Silky Pony is opening a Law firm in NC.
He can add Soc Sec disability clients to his normal ambulance chasing...
"Good morning everyone! Please be seated. You will notice a sealed manila envelope in front of each of you. Go ahead and open it." (Sound of tearing paper) "Yes. These are the pictures of the midnight orgy at the last DNC meeting that the NSA kindly pulled from their files. I trust there will be no defections? Good, then the matter is settled."
I'd bet you're closer to the truth than many would believe.
And the Republicans willingly participate, if not step up first without waiting to be asked.
Exactly why it is FRAUD!
Oooooooo..A Harry Reid Meeting! I thought we had just celebrated Halloween?
I really do not understand why editors or proofreaders are no longer used-they are badly needed. My eyes just navigate to anomalies.
I definitely think companies would drop plans for lower-wage, lower-skilled workers, roughly below the income threshold where they would qualify for subsidies. But I don't think they'd find it advantageous to do so for middle and higher-income people who would have the options to seek employment from a competitor.
Me, too. My eyes just zoom right to errors. When that happens, I tend to discount the rest of the article, too.
Obama would rather have Obamacare at any cost and sacrifice his senate majority.
Reid cares only about his senate majority.
A dangerous moment for the nation, and insurance companies had better be ready for total war.
Old Racist!
Because nobody wants to go down in history as the one who started the ball rolling to pull down America's Historic First Black Pres__ent.
(Hiya, MF! :o))
They have no choice. If they do it for one group they will do it across the board. Check the Wall Street Journal, they had an article about it today. I've heard the same thing from an executive at a large company. When it starts it will be to late to reverse course, that's why the employer mandate got pushed back.
I have a friend who is a black women born and raised in Berkley in a politically active very liberal family. Last week she told me that she agreed with all my Facebook posts but couldn't say it on Facebook because people would be mad a her. Some liberals are waking up. This was a shock to me as I never expected her to see the light.
I'm saying if a company largely has lower-income employees they will do it but not if they're largely stagged with middle-to-upper-income types. Just like the companies with lower-income employees have been cutting them back to under 30 hours now, but not companies with a more educated and higher paid workforce.
Every time I see the very name Harry Reid I consider there being a face in the Websters of a limp***ked SOB.
Every time I see the very name Harry Reid I consider there being a face in the Websters of a limp***ked SOB.
Enemedia. I like that. Can I use it?
That's encouraging...This fiasco by 0bama and the Rats re 0care may just wake a lot of their liberal supporters up, it's out there for everyone to see and they can't blame it on the Republicans.
You bet, I wasn't the originator of it. It was coined by a FReeper 6 years ago or so and I can't remember their name.
I'm sorry if I'm not explaining this well. What I'm talking about is not hourly employees, but salaried employees. The executive I talked with is at the upper level of a large property management company. What they will be doing across the board is eliminate healthcare insurance as a benefit. What they will do is give everyone a stipend/bonus equal to the amount the company paid, minus the tax penalty, and let them buy their own insurance. I was told this a couple weeks ago.
Today the Wall Street Journal had an article about the same thing and the financial incentives to do this. It may start slowly, but it is going to happen. I suspect the GOP-e which represents mid to large business interests is not fighting harder than ever to repeal obamacare because business wants out of healthcare.
No adults need apply.
At the risk of getting booed, when I saw the headline "special Obamacare meeting" I thought of the Special Olympics.
Marxists convening to fix something they were never capable of creating.
All the while the GOP is pushing Illegal Alien Amnesty instead of pushing the end of ObamaCare.
If you are not getting rid of ObamaCare...you support ObamaCare
"reneger" should be renege. What an unfortunate typo due to the senior white officials being involved and all.
Disclaimer: Opinions posted on Free Republic are those of the individual posters and do not necessarily represent the opinion of Free Republic or its management. All materials posted herein are protected by copyright law and the exemption for fair use of copyrighted works.


text:
Simple Definition of favorite
: a person or a thing that is liked more than others : a favorite person or thing
: a person, team, etc., that is considered most likely to win
Full Definition of favorite
Examples of favorite in a sentence
Of all his books, do you have a favorite?
That movie is my favorite.
That movie is a great favorite with audiences everywhere.
Origin and Etymology of favorite
Italian favorito, past participle of favorire to favor, from favore favor, from Latin favor
First Known Use: 1583
Simple Definition of favorite
: most liked
Full Definition of favorite
: constituting a favorite; especially : markedly popular
See favorite defined for English-language learners
Examples of favorite in a sentence
<that teacher claims not to have any favorite students, although many in the class would disagree>
<mint chocolate chip is my favorite flavor of ice cream>
First Known Use of favorite
FAVORITE Defined for Kids
Definition of favorite for Students
: a person or a thing that is liked more than others
Definition of favorite for Students
: most liked <Pizza is my favorite food.>
Learn More about favorite
Thesaurus: All synonyms and antonyms for favorite Spanish Central: Translation of favorite Nglish: Translation of favorite for Spanish speakers Britannica English: Translation of favorite for Arabic speakers
Seen and Heard
What made you want to look up favorite? Please tell us where you read or heard it (including the quote, if possible).


text:
Swiss Museum Honoring Charlie Chaplin Hopes to Keep the Auteur's Legacy Alive
Chaplin was terrified of being forgotten; this museum wants to make sure that never happens.By Greg Cwik
Chaplin was terrified of being forgotten; this museum wants to make sure that never happens.By Greg Cwik
From the Marx Brothers to The Simpsons, Richard Pryor to Amy Schumer: 100 bits, sketches, and one-liners that changed humor forever.By Jesse David Fox
Unlike The Interview, Chaplin was trying to make a social and political statement.By Bilge Ebiri
So that's why Vivien Leigh always had her head thrown back in Gone With the Wind?By Rachel Shukert
Wait, Chaplin's in the Black Eyed Peas?By Eliot Glazer
"Earnest, on-the-nose, and exhaustively idiot-proofed."By Scott Brown
Idi Amin > General Aladeen?By Eliot Glazer
The internet's outlandish theories were all for naught.By Kyle Buchanan
Behind-the-scenes footage sparks a not-at-all-fanciful debate.By Kyle Buchanan
Thomas Quasthoff now stands at just four feet tall, with severely underdeveloped legs and arms — and having fashioned himself one of the great bass baritones of the age.
Backstage at 3.1 Phillip Lim, the designer told Jada Yuan that his fall 2007 collection was based on Little Edie Beal of Grey Gardens fame, with an international flair. "Multicultural beauty is the new modernity," Lim said. Also, see which stars skipped the Super Bowl to cheer their favorite looks. Watch more videos from fall 2007 Fashion Week.


text:
Voted as Best Calculator:
Input the matrix in the text field below in the same format as matrices given in the examples. Click the Calculate! button and find out the matrix's variance for each column.
Important! The result is given as a vector, where the k'th element denotes the variance for the k'th column.


text:
Dealing With A Smoking Gun
(I work at a grocery store at the courtesy desk. Our store is relatively new and doesn't sell cigarettes, unlike most others of the same chain. One day a woman approaches the desk.)
Me: "Hello. How may I help you?"
Customer: "Yes, can I have a carton of Marlboro Lights?"
Me: "Oh, I'm sorry, ma'am. This [Store] does not sell cigarettes."
Customer: *shocked and annoyed* "What? Why not?!"
Me: "The owner made the decision not to sell them before he opened this store."
Customer: "I can't believe this. That's just UN-AMERICAN!"
(Her husband who was nearby hears her and walks up.)
Customer's Husband: Hmm? What's the matter?
Customer: "This store doesn't sell cigarettes! Have you ever heard of that before?! It's just un-American!"
Me: "I'm sorry for the inconvenience. There is a store in the plaza that sells cigarettes just outside here."
Customer: "I shouldn't have to! It's just un-American to not sell cigarettes!"
(The customer storms off leaving me and her husband to just stare in confusion.)
Me: "Have a nice day, sir."
Customer's Husband: "Yeah, not when I'm out shopping with her!"


text:
Interlibrary Loan
EFFECTIVE JULY 1, 2016: Login to ILLiad using your UA username and password. Interlibrary loan (ILL) service will only be provided to patrons affiliated with UAS. Non-affiliated persons residing in Juneau are eligible for ILL service from the Juneau Public Libraries.
Egan Library uses ILLiad, a system for requesting and tracking books, articles, and other information resources you need. Login to ILLiad to manage and check the status of your interlibrary loan requests.
- First time users will be required to complete a short registration form.
- Existing ILL accounts and outstanding requests will be merged to new accounts using UA usernames/passwords.
- Duplicate accounts created during this transition will be merged.
- Interlibrary loan items will now accrue overdue fines at $.50 (fifty cents) per day, per overdue item. The maximum fine per item is $10.00
STARTING JULY 1st 2016: Login to ILLiad using your UA username and password.
Having trouble logging in? Get connection help at the UAS IT Accounts site.
About Interlibrary Loan
Through a network connecting the Egan Library with libraries nationwide as well as abroad, library patrons are able to get materials in varied formats for research and recreational purposes. The Egan Library's ILL Service is guided by the National Interlibrary Loan Code of the U.S. (American Library Association) and abides by copyright laws. We encourage patrons to use this service in a responsible way; exploring local resources first and then abiding by the Egan Library's ILL policies as well as those of the lending library. See the ILL FAQ page for further information.
Contact Interlibrary Loan staff
Hours: M-F 8:30-5:30


text:
For the best healthcare for your needs, choose a doctor who specializes in your medical condition.
Board certification indicates that a doctor is highly qualified in the medical field in which they practice.
Check to see that this provider treats your medical condition.
Check to see that this provider performs the procedure that you need.
Check to see if your provider has any malpractices, board actions, or sanctions.
Learn more about where this provider went to medical school, residency, and more.
View information about special awards and recognition for this provider.
Check to see what languages this provider and/or staff speak.
View memberships and affiliations associated with this provider.
Likelihood of recommending Dr. Kadrmas to family and friends is 4.2 out of 5
Check out the quality of care at the 1 hospitals where Dr. Kadrmas has admitting privileges.
Dr. Kadrmas's responses to reviews:
4/15/2016 Review
Dear Paul,
Thank you for taking the time to express your concerns. You saw one of our other ophthalmologists (not Dr. Kadrmas) who is no longer with our practice. Regardless, we are sorry to hear that your experience with our practice did not live up to your standards or ours and would appreciate the opportunity to discuss your feedback with you. Should you be willing, please call our office at 508-746-8600 and ask to speak with our office manager. We would like to work with you to sort this out and assist you with your eye care needs. We hope you will give us a second chance. Please know that our goal is always to provide top-quality patient and eye care.
Kadrmas Eye Care New England
View other doctors with similar experience to find the right doctor for you.


text:
During the months of July, August, and September, Spring Creek Anglers will be offering fly fishing school classes in Upstate NY. The location is just south of Ithaca, home to Cornell University and Ithaca College. This is the Finger Lakes Region of New York State which also has a wide variety of great wineries along both Seneca and Cayuga Lakes.
Fly Fishing School classes are conducted in a beautiful country setting at a private residence in Spencer, NY. On-water instruction allows fly fishing for both trout and bass in local waters. Spencer even has it's own public pond!
All instruction is scheduled by appointment only! Call or text to schedule your class.
Fly Fishing School classes are highly personalized, one-on-one instruction, designed even for beginners. If you have ever wanted to take up the sport of fly fishing but didn't know who to contact while in this area of Upstate NY, this is your opportunity. The small village of Spencer is located only 18 miles south of Ithaca (the southern end of Cayuga Lake). From Spencer, you can easily travel in all directions whether going to Ithaca, Watkins Glen, Elmira (be sure to visit the grave site of Mark Twain), or Owego and Binghamton. All are 45 minutes or less from Spencer.
A variety of fishing opportunities exist in the immediate area primarily for Brown Trout in seldom fished waters; plus, Largemouth Bass in a number of local farm ponds. A little further away to the East, you will find the legendary trout waters of the Beaver Kill and the West Branch of the Delaware.
In September, there is a good run of both King and Coho Salmon in the Salmon River at Pulaski, NY (just north of Syracuse) where anglers use both single-hand and two-handed fly rods. A few Steelhead also start the same run along with the Salmon though they peak during the months of October and November.
This area of Upstate NY is really beautiful during the summer months! A wide variety of activities are available including NASCAR at Watkins Glen, winery tours galore, great restaurants along the Finger Lakes and in the Ithaca area; plus, local festivals and fairs throughout the summer. Mix it up a little, and you will have a great time enjoying the Finger Lakes region at it's finest!


text:
This 500-year-old Knight's Hall with its thousand-year-old wine cellar has housed many illustrious guests: Prince-bishops, mule trains and knights and their squires, but then also Konrad Adenauer, Albert Hofmann and Paul Burkhard. The building complex, including the hospice and hotel chapel, has romantic history rooms, a knight's hall, a cosy "Stüva" (lounge) and, more recently, a Davidoff Lounge.
Hotel existing since 1756
Hotel existing since 1756
Altitude 1050 m


text:
SAE AMS2460 2007 Edition, July 1, 2007
Complete Document
Plating, Chromium
Includes all amendments and changes through Change/Amendment , July 2007
Published By:SAE International (SAE)
Page Count:13
This specification covers the requirements for electrodeposited chromium plating.
This plating has been used typically as a decorative finish, to improve corrosion resistance, to increase wear resistance, to extend tool and die life, to maintain accuracy of gauges, and to recondition worn or undersized parts, but usage is not limited to such applications. While this document is primarily intended to address electrodeposition on steels, the process has been performed on aluminum, heat resistant alloys, high nickel alloys, super alloys, and other metals. The requirements of this specification are equivalent to AMS-QQ-320 but generally more stringent than AMS 2406. Thin Dense Chrome plating should be specified by reference to AMS 2438.
Application of chromium plating to steel parts having a hardness of 48 HRC (ultimate tensile strength of 238 ksi [1641 MPa]) or higher shall not be performed unless authorized by the design documentation of the cognizant engineering organization. See 126.96.36.199 and 8.4.2. Application of chromium plating for repair of steel parts having a hardness of 48 HRC(ultimate tensile strength of 238 ksi (1641 Mpa) or higher requires a special design evaluation and shall not be performed unless specific approval has been received from the cognizant engineering organization
Safety-Hazardous Materials
While the materials, methods, applications and processes described or referenced in this specification may involve the use of hazardous materials, this specification does not address the hazards which may be involved in such use. It is the responsibility of the user to ensure familiarity with the safe and proper use of any hazardous materials, to take precautionary measures to ensure the health and safety of all personnel involved.
Electrodeposited chromium plating shall be one of the following classes.
Class 1 - Corrosion protective plating. See 8.4.3.
Class 2 - Engineering plating. See 8.4.4.
Class 1 plating shall have one of the following types of lusters, as specified.
Type I - Bright finish
Type II - Satin finish.


text:
Vintage Denim (Levi 501 Jeans)Vintagetrends.com is world renowned for our collection of vintage indigo denim, including vintage denim jeans, vintage denim jackets and major brand names such as vintage Levi, vintage Lee and vintage Wrangler. Our fantastic selection includes men's vintage Levi 501 button fly jeans, Levi vintage denim bell bottoms, and Levi Capital E jeans. We offer a variety of styles including vintage bootcut jeans, straightleg men's vintage jeans, and men's vintage bell bottoms.
Please also checkout our men's vintage denim jackets.
|The attempt to items had the following error(s):
|Please adjust your request and try again. If error(s) persist and you don't think you're doing anything wrong, please send an email to firstname.lastname@example.com detailing what you were trying to do and the error message(s) you received.


text:
Agilion develops Software-as-a-Service (SaaS) products and automates business processes.
Your organization prospers or declines depending on value you deliver to your customers, employees, investors and suppliers.
We are here to help you prosper.
We develop new revenue streams for you or reduce inconsistency through automation.
Learn more about what we can do for you.


text:
|Publication number
|Publication type
|Application number
|Publication date
|Feb 16, 2010
|Filing date
|Oct 22, 2008
|Priority date
|Dec 6, 2005
|Fee status
|Also published as
|Publication number
|Gerard T. Luc-Pat, Raghava V. Kondepudy
|Original Assignee
|Synopsys, Inc.
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (18), Non-Patent Citations (1), Referenced by (7), Classifications (7), Legal Events (1)
|External Links: USPTO, USPTO Assignment, Espacenet
This application is a continuation of U.S. patent application Ser. No. 11/295,948, entitled "Approximating Wafer Intensity Change To Provide Fast Mask Defect Scoring" filed Dec. 6, 2005.
1. Field of the Invention
The present invention relates to a photolithography mask and in particular to a technique that can provide fast analysis of defects on such a mask.
2. Related Art
During the fabrication process (step 150), a layout to implement the design is transferred onto a semiconductor substrate. One way to do this is to use the process of optical lithography in which the layout is first transferred onto a physical template, which is in turn used to optically project the layout onto a silicon wafer.
In transferring the layout to a physical template, a mask (usually a quartz plate coated with chrome) is generally created for each layer of the integrated circuit design. This is done by inputting the data representing the layout design for that layer into a device, such as an electron beam machine, which writes the integrated circuit layout pattern into the mask material. In less complicated and dense integrated circuits, each mask comprises the geometric shapes that represent the desired circuit pattern for its corresponding layer. In more complicated and dense circuits in which the size of the circuit features approach the optical limits of the lithography process, the masks may also comprise optical proximity correction features, such as serifs, hammerheads, bias and assist bars, which are sub-resolution, sized features designed to compensate for proximity effects. In other advanced circuit designs, phase shifting masks may be used to circumvent certain basic optical limitations of the process by enhancing the contrast of the optical lithography process.
These masks are then used to optically project the layout onto a silicon wafer coated with photoresist material. For each layer of the design, a light is shone on the mask corresponding to that layer via a visible light source or an ultra-violet light source. This light passes through the clear regions of the mask, whose image exposes the underlying photoresist layer, and is blocked by the opaque regions of the mask, thereby leaving that underlying portion of the photoresist layer unexposed. The exposed photoresist layer is then developed, typically, through chemical removal of the exposed/non-exposed regions of the photoresist layer. The end result is a semiconductor wafer coated with a photoresist layer exhibiting a desired pattern that defines the geometries, features, lines, and shapes of that layer. This process is then repeated for each layer of the design.
As integrated circuit designs become more complicated, it becomes increasingly important that the masks used in photolithography are accurate representations of the original design layout. It is, unfortunately, unrealistic to assume that the electron beam and other machines used to manufacture these masks can do so without error. In the typical manufacturing process, some mask defects do occur outside the controlled process.
A defect on a mask can be defined as anything that is different from the design database and is deemed intolerable by an inspection tool or an inspection engineer. Exemplary defects could include pinhole defects, edge protrusion defects, and geometry bridge defects in the opaque areas of the mask as well as opaque spots and edge intrusion defects in the clear areas of the mask.
Inspection tool 200 can include an image acquirer 215, a defect detection processor 225, and a defect area image generator 230. Stepper image generator 240 can include input devices 245 and 255, a mask image simulator 205, and a design image simulator 260. Defect analyzer 290 can include an image comparator 280, a process window analyzer 285, and a performance output device 225.
In this system, inspection tool 200 can inspect physical mask 205 by scanning an image generated by image acquirer 215 for possible defects. This inspection can be carried out by scanning the surface of mask 205 with a high resolution microscope (e.g. optical, scanning electron, focus ion beam, atomic force, or near-field optical microscope) and capturing images of mask 205. For each defect area image that is identified on those captured images, defect detection processor 225 can operate to locate the corresponding area on design layout data 210 and provide this information to input device 255. In one embodiment, the design layout data 210 can be in GDS-II format.
Defect area image generator 230 can generate defect area images of those areas of the mask containing possible defects (as determined by defect detection processor 225). Defect area image generator 230 can provide its defect area image data to input device 245 of stepper image generator 240. Mask image simulator 250 can receive the processed image data from input device 245 as well as lithography conditions input 265 and can generate a defect wafer image 270 as well as simulated process window information.
Note that not all mask defects are important with respect to the desired end result, i.e. an accurate representation of the original design layout on the photoresist material or etched into silicon, because not all mask defects will "print". Loosely speaking, the printability of a defect is how a defect would impact the outcome of a given photolithography and/or etching process. The importance of printability now becomes apparent, because the goal of defect inspection is to correctly identify a defect to avoid a failed wafer processing.
Because printability of a defect is mainly associated with the stepper exposure, it depends on the particular stepper exposure conditions. Therefore to say a defect is "not printable" means that it has little effect on the expected outcome of a particular stepper exposure, even though it may become "printable" under a different set of stepper exposure conditions. Put in a different way, printability can be highly dependent on lithography conditions 265, because a defect may print under one set of conditions, but not another. Lithography conditions 265 can include: wavelength, numerical apertures coherence factor, illumination mode, exposure time, exposure focus/defocus, and the reflection/transmission characteristics of the defect among others.
Input device 255 of stepper image generator 240, in one embodiment, can receive design layout data 210 corresponding to the defect area from defect detection processor 225 and provide design image simulator 260 with design data representing an area to be simulated that corresponds to the defect area being simulated. Design image simulator 260, also using lithography conditions input 265, can generate a reference wafer image 275 and simulated process window information.
Note that in one embodiment reference image 212 may be provided to input device 255. In this embodiment, design image simulator 260 can then use reference image 212 to generate reference wafer image 275 as well as simulated process window information.
Image comparator 280 of defect analyzer 290 can receive defect wafer image 270 and reference wafer image 275. In one embodiment defect analyzer 290 can include a computer-implemented program that is capable of displaying these simulated images as well as displaying the differences between the two images such that an operator can visually detect any differences.
The simulated process window data from stepper image generator 240 can be provided to a process window analyzer 285 of defect analyzer 290. In one embodiment, process window analyzer 285 can be a computer-implemented program capable of displaying the effect that a potential defect area has on the overall process window of the lithography process as compared to the "perfect" design mask. The simulated process window data from stepper image generator 240 can also be provided to a performance output device 225. In one embodiment, performance output device 225 can be a computer-implemented program capable of determining and displaying the effect that one or more defects have on the overall performance of the integrated circuit for which the physical mask 205 will be used to produce.
If there are no defects, or defects are discovered but determined to be within tolerances set by the manufacturer or end-user, then mask 205 can be used to expose a wafer. On the other hand, if defects are discovered that fall outside tolerances, then mask 205 fails inspection. At this point, a decision must be made as to whether the mask may be cleaned and/or repaired to correct the defects or whether the defects are so severe that a new mask must be manufactured.
Although the system described in reference to
Therefore, a need arises for a fast mask defect scoring technique.
Providing a full simulation of the defect inspection image and the reference inspection image can be slow and resource intensive. In accordance with one aspect of the invention, approximated wafer simulations can be performed on the defect inspection image as well as its corresponding reference inspection image. These approximated wafer simulations can be done using a Gaussian filter and a single convolution.
Using the approximated defect wafer image and the approximated reference wafer image generated by these approximated wafer simulations, a defect maximum intensity difference (MID) can then be computed. Specifically, computing the defect MID can include subtracting one approximated wafer image from the other approximated wafer image to generate a difference image. At this point, a defect region of the difference image can be defined. This defect region can eliminate any noise associated with the difference image. Thus, the defect region effectively narrows the location where the defect MID should be computed.
To further accelerate the defect scoring process, computing the defect MID can further include simulating a centroid (i.e. a single point) of the defect region to generate the defect MID. After the defect MID is computed (represented by an intensity) it can be compared to a prototype MID. This prototype MID can represent a generic nuisance defect or a generic large border defect.
In one embodiment, the detection of defects and the scoring of defects on the mask can be implemented by a computer-implemented program with instructions for performing the above-described processing and computations.
Full simulations can provide accurate results that determine whether defects on a mask should be ignored, repaired, or render the mask unusable. However, these simulations are computationally complex and require significant system resources. In some cases, fast mask defect scoring with less accuracy can be useful. In a mask defect scoring technique described below, approximated simulations and the computation of the maximum intensity difference can advantageously speed up simulation as well as measurement.
Step 304 detects any defects after this image alignment. The difference of the inspection images is computed. Defect regions are then established by drawing a contour around each defect. Advantageously, this defect detection can quickly distinguish between nuisance defects, i.e. those defects that will not significantly affect printability, and those defects that require further analysis.
In step 341, a contour can be established around the actual defect in the difference image, wherein the area within that contour is defined herein as the defect region. In one embodiment, the contour can be defined by a threshold that eliminates as much of the non-defect region (which can be characterized as "noise") as possible.
In step 342, a full simulation can be approximated using a Gaussian filter. A Gaussian filter is a two-dimensional convolution operator that can perform smoothing. A convolution is a mathematical operation that provides a way of "multiplying together" two arrays of numbers (typically of different sizes) to generate a third array of numbers. In a simple convolution, a kernel can be "slid" over an image so that the kernel moves through all of the positions where the kernel fits entirely within the borders of the image. Each kernel position corresponds to a single output pixel, wherein the value of that pixel is calculated by multiplying together the value of a kernel cell and the corresponding image cell, then adding up the products for that kernel position.
A typical stepper can be characterized as a partially coherent optical system in which points of the light source are not necessarily in-phase. A prevalent way to model a partially coherent optical system is a sum of coherent optical systems where each coherent system has all points of its light source in-phase. In accordance with one aspect of the invention, the wafer image intensity (w) can be computed by the following equation,
wherein m is the mask, * is the convolution, hi is the ith coherent kernel, the "| |" operator means amplitude, and N is the number of convolutions/coherent optical systems.
In one embodiment, for each image, i.e. reference inspection image 301 and defect inspection image 302, a single convolution (N=1) can be used to generate an approximated wafer image. (Note that six convolutions (N=6) are typically used for simulations.)
In step 343, a maximum intensity difference between the approximated wafer simulations can be determined.
To further speed up defect detection, the center of gravity of the defect (i.e. the centroid) can be computed. At this point and referring to
In one embodiment, the standard deviation of Gaussian curve 361 can be defined as lambda/(NA*(1+sigma)*3) or approximately ⅓ the estimated optical resolution of the scanner, wherein lambda (λ) is the wavelength of light used in the scanner, NA is the numerical aperture, and sigma (σ) is the furthest illumination point from the illumination origin. For example, if a circular aperture is used, then sigma is effectively its radius. However, if an annular aperture is used, then sigma could be computed as R2, wherein R2 is the outer radius. Note that irrespective of aperture, sigma is an approximation because the stepper functions are non-linear.
Note that it is possible a defect region can include both light and dark defects. For example, if a mask writer error occurs, then the resulting difference image could include both dark ("positive") as well as light ("negative") areas, which could both be encompassed by the contour defining the defect region. In one embodiment, this composite defect region can be divided, thereby facilitating separate maximum intensity differences (MIDs) to be computed for each type of defect, i.e. one MID for the light defect and another MID for the dark defect. The MID having the largest absolute value can be used to determine defect scoring.
Referring back to
In accordance with one advantage of the invention, full-scale simulations are performed only on those defects characterized as requiring further analysis. In other words, by looking at the results of mask scoring step 305, negligible defects can be quickly identified. Other defects can thus be characterized as requiring further analysis. To perform this analysis, a full simulation (e.g. all convolutions) can be performed on those defects.
Note that mask scoring step 305 is performed using real-valued intensity. However, to perform optical simulation, the necessary input is a complex-valued mask. Therefore, mask recovery step 306 can make this conversion. For an incoherent inspection system, an inspection image intensity (i) and the complex-valued mask (m) have the following relationship:
i=|m| 2 *|g| 2
wherein g is the inspection system kernel, the "| |" operator means absolute value, and * is a convolution. Therefore, mask recovery step 306 can derive "m" from the "i" of mask scoring step 305.
In one embodiment, mask recovery step 306 can include increasing the defect region to a larger footprint, thereby ensuring that proximity effects from other features can be taken into account. This larger footprint can be up to the footprint of the inspection images 301 and 302. In another embodiment, mask recovery step 306 can also include undoing some effects of the inspection system. For example, the inspection system can discard phase information and blur edges. These effects can be countered by using various techniques.
In step 307, full (i.e. optical) simulation can be performed to generate wafer images 308. During a wafer processing stage, wafer images 308 can be further processed, e.g. using an auto-threshold step 309, a CD measurement step 310, an area measurement step 311, and a wafer scoring step 312. In one embodiment, cutlines to measure feature CDs (or spacing between features) in step 310 can be used in areas having substantially parallel edges. Thus, cutlines would not be used for portions of the features having non-straight edges (e.g. slanted lines). A final decision 313 regarding the repair of defects on the mask can be made using the results from mask scoring step 305 and wafer scoring step 312.
Notably, the above-described fast mask defect scoring technique changes a non-linear technique into a linear technique. Specifically, comparing simulations (e.g. 6 convolutions) of the reference and defect inspection images is a non-linear technique. For example, referring back to
w difference =w defect −w reference
This computation can be rewritten as:
w difference =q(m defect)−q(m reference)
wherein q=|m*hi|2
However, notably
w difference ≠q(m defect −m reference)
In contrast, referring to
w′ difference =w′ defect −w′ reference
This computation can be rewritten as:
w′ difference =q′(m defect)−q′(m reference)
wherein q′=|m|2*|hi|2
Notably, in this case,
w′ difference =q′(m defect −m reference)
Therefore, using the estimated simulations is a linear technique with respect to the inspection image |m|2. Advantageously, a linear technique is significantly faster than a non-linear technique.
Although illustrative embodiments of the invention have been described in detail herein with reference to the accompanying figures, it is to be understood that the invention is not limited to those precise embodiments. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed. As such, many modifications and variations will be apparent.
For example, note that full simulations of inspection images generate wafer images that have varying degrees of trustworthiness. Specifically, the portions of the wafer image corresponding to the periphery of the inspection image are not as trustworthy as the portions of the wafer image corresponding to the central part of the inspection image. That is, the wafer image periphery can be affected by mask features adjacent to, but outside the border of the inspection image. However, these mask features just outside the inspection image borders are unknown. In one embodiment, the periphery region can be defined as within 0.49*wavelength/(NA*sigma) of the border. Therefore, the above-described fast mask defect scoring technique can be used in areas of the mask where accuracy (by performing full simulation) is not possible. In one embodiment, for a given defect, two MID values can be computed—one MID at the defect centroid and another MID at the nearest periphery point. The MID of a defect region in the periphery of a wafer image can be computed as follows: (i) find the nearest point of the periphery to the defect region centroid and (ii) at that nearest periphery point, compute the intensity of the difference image that is caused by the defect region. The defect is then characterized as significant if its MID at the nearest periphery point is larger than the MID of some prototype defect that represents a large border defect. Note that the larger border prototype defect can be different from the nuisance prototype defect.
Note that the above-described nuisance defect characterization can be combined with more traditional defect characterization techniques. For example, in one embodiment, a defect can be characterized as a nuisance defect if (1) the defect MID is less than the prototype defect MID and (2) the area of the defect (e.g. using the defect region) is less than a predetermined area. Thus, a defect that appears very diffuse in an approximated simulation may have a low MID, but still take up a large area. Therefore, the combined characterization using MID and area could ensure that such a defect would not be characterized as a nuisance defect, thereby triggering further analysis of that defect using full simulation.
In one embodiment, the detection of defects (step 304,
Accordingly, it is intended that the scope of the invention be defined by the following Claims and their equivalents.
|Cited Patent
|Filing date
|Publication date
|May 19, 1986
|Nov 17, 1987
|Gmf Robotics Corporation
|Gray scale vision method and system utilizing same
|Jul 22, 1986
|Jun 2, 1992
|Schlumberger Technologies, Inc.
|System for expedited computation of laplacian and gaussian filters and correlation of their outputs for image processing
|Aug 17, 1993
|Aug 1, 1995
|United Parcel Service Of America, Inc.
|Apparatus for simultaneously convolving multiple digital binary images using a single convolver with a binary mask to determine pixel densities
|May 19, 1999
|Jun 10, 2003
|Cognex Corporation
|Methods and apparatuses for normalizing the intensity of an image
|Jan 15, 2003
|Jan 18, 2005
|Kla-Tencor Technologies Corporation
|Apparatus and methods for removing optical abberations during an optical inspection
|Mar 20, 2001
|Mar 29, 2005
|Synopsys, Inc.
|System and method of providing mask defect printability analysis
|Feb 12, 2004
|Apr 26, 2005
|Stine Seed Farm, Inc.
|Soybean cultivar 0509249
|Feb 11, 2003
|Aug 9, 2005
|Synopsys, Inc.
|Simulation based PSM clear defect repair method and system
|Sep 24, 2001
|May 2, 2002
|Kabushiki Kaisha Toshiba
|Defect inspection apparatus and method
|Jan 15, 2003
|May 27, 2004
|Kla-Tencor Technologies, Corporation
|Apparatus and methods for removing optical abberations during an optical inspection
|Feb 11, 2003
|Aug 12, 2004
|Numerical Technologies, Inc.
|Simulation based PSM clear defect repair method and system
|May 3, 2005
|Sep 8, 2005
|Synopsys, Inc.
|Simulation based PSM clear defect repair method and system
|Mar 30, 2005
|Oct 6, 2005
|Fujitsu Limited
|Pattern inspection method, pattern inspection system and pattern inspection program of photomask
|Nov 3, 2006
|Mar 15, 2007
|Synopsys, Inc.
|Reference Image Generation From Subject Image For Photolithography Mask Analysis
|Dec 6, 2005
|Jun 7, 2007
|Synopsys, Inc.
|Approximating wafer intensity change to provide fast mask defect scoring
|Mar 26, 2007
|Sep 27, 2007
|Kabushiki Kaisha Toshiba
|Calculating method, verification method, verification program and verification system for edge deviation quantity, and semiconductor device manufacturing method
|Mar 29, 2007
|Oct 4, 2007
|Satoshi Tanaka
|Light intensity distribution simulation method and computer program product
|Jun 28, 2007
|Dec 20, 2007
|Synopsys, Inc.
|System And Method Of Providing Mask Defect Printablity Analysis
|Fiekowsky: "The End of Thresholds: Subwavelength Optical Linewidth Measurement Using The Flux-Area Technique", Presented at Photomask Japan 2000, Poster 4066-67, Apr. 2000.
|Citing Patent
|Filing date
|Publication date
|Aug 17, 2010
|Sep 17, 2013
|Sony Corporation
|Shape simulation apparatus, shape simulation program, semiconductor production apparatus, and semiconductor device production method
|Jan 31, 2011
|May 27, 2014
|Nuflare Technology, Inc.
|Defect estimation device and method and inspection system and method
|Aug 21, 2013
|Jun 10, 2014
|Sony Corporation
|Shape simulation apparatus, shape simulation program, semiconductor production apparatus, and semiconductor device production method
|Dec 5, 2012
|Jul 15, 2014
|Nuflare Technology, Inc.
|Defect estimation device and method and inspection system and method
|Dec 5, 2012
|Mar 17, 2015
|Nuflare Technology, Inc.
|Defect estimation device and method and inspection system and method
|Jan 21, 2015
|Nov 3, 2015
|Nuflare Technology, Inc.
|Defect estimation device and method and inspection system and method
|Apr 7, 2011
|Sony Corporation
|Shape simulation apparatus, shape simulation program, semiconductor production apparatus, and semiconductor device production method
|U.S. Classification
|716/52, 382/144, 382/145
|International Classification
|Cooperative Classification
|European Classification


text:
Top Definition
An unfortunate rash on the face which results from kissing somebody with a beard.
I like, totally made out with this lumberjack, and his beard, like, gave me this pash rash...
by Laffertron March 07, 2006
Trending Now
Can you define these popular missing words?
a rash around the perimetre of the lips that is caused by pashing/snogging a guy/girl with facial stubble, resulting in a nasty ass rash.
Karen came to school the next day with a scarf over her mouth because her pash-rash was so obvious
by Cricketa' September 17, 2005
a rash u get if u pash way 2 fuckin much
OH my god! Check out your pash rash, that is so wrong!
by CUT THE CHEESE December 13, 2004


text:
Creating A Custom Image Upload Service For Tweetie (Twitter For iPhone) Using ColdFusion
The other day, I was uploading a photo from Tweetie (Twitter for iPhone) when it occurred to me that I might be able to write my own custom image upload service using ColdFusion. After all, if Tweetie supports multiple image upload services, then I figured all I would have to do is follow some standard API to make it work. As it turns out, this is exactly correct. If you look in the Services section of your Tweetie settings, it allows you to define a custom image upload service:
This setting is nothing more than a single web service URL that supports a common API. According to the documentation on the AteBits development site, the web service API to model is the TwitPic image upload API. From what I can tell, though, the API supported by Tweetie is a subset of the image upload functionality provided by TwitPic.
Since Tweetie was bought by Twitter, the documentation on AteBits has become outdated. Tweetie no longer posts the Twitter username and password of the individual uploading the given photo. After a good deal of Googling, I finally figured out that Tweetie is now taking an "oAuth Echo" approach to user validation. In this approach, the client application - Tweetie - secures oAuth credentials for the user. It then posts the image along with both the oAuth credentials and a user validation web service URL to the 3rd party application - our image uploader. Our image uploader then uses both the oAuth credentials and the user validation web service URL to validate the user. Once the user is validated, we can then store the uploaded image and return our XML web service response to the client application (Tweetie).
Once the 3rd party application has secured the oAuth credentials, it posts the following HTTP headers along with the image upload:
- X-Auth-Service-Provider
- X-Verify-Credentials-Authorization
The "X-Auth-Service-Provider" header provides a URL to the user validation service that our image uploader is supposed to use to validate the user (posting the image). In this case, is posts the following Twitter API url:
The "X-Verify-Credentials-Authorization" header provides the oAuth credentials that we are supposed to post the above validation web service. This value will look something like this:
OAuth oauth_timestamp="1279135448", oauth_version="1.0", oauth_consumer_key="IQKbtAYlXMLDipLGPWd0HUA", oauth_token="15148392-0X4TUDVS1137rkucSCoxLMgtPhGldnHpq02v", oauth_signature="VwqniHwBe%2BdangTastydYUGj3BTxz5c%3D", oauth_nonce="7C7D01FD-2777-FFC0-802C-087077ACABC6", oauth_signature_method="HMAC-SHA1"
This oAuth value needs to be posted as the "Authorization" header to the validation web service. The validation web service will either respond with a 401 Unauthorized response, or it will respond with a 200 OK response. If it returns with a 200 OK response, then the content of the HTTP response will be a JSON representation of the authorized Twitter user. It is from this JSON structure that we can get the username of the Twitter user that is uploading the given image.
Understanding the oAuth Echo work flow was the biggest hurdle in creating a custom ColdFusion image upload service for Tweetie. Once I figure it out, however, the rest was little more a standard file upload. According to the TwitPic API, you are supposed to return different error codes based on what aspect of the image upload algorithm failed (authorization, file size, etc.); but, for this demo, I am keeping it very simple - it either works or it doesn't. I'm not bothering to break down the exception reasons, although, you'll see in the following code that I am raising different exceptions which can be caught and handled individually if you like.
That said, here is the ColdFusion code that handles the image upload from Tweetie. It is this file that is defined as the end point in the custom upload service setting.
Tweetie Custom Image Upload Service
- <!---
- Define the uploads directory - this is where the images
- will be stored after the user has been authorized.
- --->
- <cfset uploadDirectory = expandPath( "./uploads/" ) />
- <!---
- Define the uploads URL. This is the externally-accessible URL
- to the uploads directory. When we respond to this web service
- call, we have to return a media URL.
- --->
- <cfset uploadUrl = (
- "http://" &
- cgi.server_name &
- getDirectoryFromPath( cgi.script_name ) &
- "uploads/"
- ) />
- <!---
- Wrap a Try/Catch around the processing since we might
- break something and we need to be able to send back a
- failure response.
- --->
- <cftry>
- <!--- Check to make sure that the request is a POST. --->
- <cfif (cgi.request_method neq "post")>
- <!--- Throw error - we only accept POST. --->
- <cfthrow
- type="InvalidMethod"
- message="Only POST is supported."
- />
- </cfif>
- <!--- ------------------------------------------------- --->
- <!--- ------------------------------------------------- --->
- <!--- Param the form parameters. --->
- <!---
- This is the form field that contains the image data. This
- image data is coming across in the same way a standard
- File/Upload works.
- --->
- <cfparam name="form.media" type="string" />
- <!---
- This is the twitter message associated with the image being
- uploaded. We will not be making use of it in this demo, but
- you can certainly use it.
- --->
- <cfparam name="form.message" type="string" default="" />
- <!--- ------------------------------------------------- --->
- <!--- ------------------------------------------------- --->
- <!---
- Get the HTTP request header data. We will make repeated use
- of this, so let's just get a short-hand reference to it.
- --->
- <cfset httpHeaders = getHttpRequestData().headers />
- <!---
- Check to make sure that the Twitter client has passed
- along the appropriate headers with the request. We are going
- to be using an "oAuth Echo" approach which means the client
- will be passing us the oAuth information as well as a service
- we need to use to verify the credentials.
- --->
- <cfif !(
- structKeyExists( httpHeaders, "X-Auth-Service-Provider" ) &&
- structKeyExists( httpHeaders, "X-Verify-Credentials-Authorization" )
- )>
- <!--- Throw error - we are missing authorization headers. --->
- <cfthrow
- type="Unauthorized"
- message="oAuth Echo authorization headers were not supplied."
- />
- </cfif>
- <!--- ------------------------------------------------- --->
- <!--- ------------------------------------------------- --->
- <!---
- Since we have the authorization headers for the oAuth Echo
- approach, let's validate the user's credentials with the
- Twitter service. We are hoping for a 200 response with the
- Twitter USER data.
- NOTE: We are going to assume that this is coming back in JSON
- format. We could check the URL, but we'll just go with it
- for the moment.
- --->
- <cfhttp
- result="oAuthEcho"
- method="get"
- url="#httpHeaders[ 'X-Auth-Service-Provider' ]#">
- <!--- Pass along the oAuth information. --->
- <cfhttpparam
- type="header"
- name="Authorization"
- value="#httpHeaders[ 'X-Verify-Credentials-Authorization' ]#"
- />
- </cfhttp>
- <!---
- Check to make sure that we got a 200 response. If we didn't,
- then something went wrong - either bad credentials or the
- timestamp of the oAuth signature was no longer valid.
- --->
- <cfif !findNoCase( "200", oAuthEcho.statusCode )>
- <!--- Throw error - Twitter authorization failed. --->
- <cfthrow
- type="Unauthorized"
- message="Twitter authorization failed."
- />
- </cfif>
- <!--- ------------------------------------------------- --->
- <!--- ------------------------------------------------- --->
- <!---
- Since authorization worked, let's parse the Twitter response.
- It should contain the JSON data for the authorized user.
- --->
- <cfset user = deserializeJSON(
- toString( oAuthEcho.fileContent )
- ) />
- <!---
- Twitter may have authorized this user, but let's make sure
- that this user is "internally" authorized to use this image
- upload service. For this demo, only Ben can upload.
- --->
- <cfif (user.screen_name neq "bennadel")>
- <!--- Throw error - user is not internally authorized. --->
- <cfthrow
- type="Unauthorized"
- message="Internal authorization failed."
- />
- </cfif>
- <!--- ------------------------------------------------- --->
- <!--- ------------------------------------------------- --->
- <!---
- If we've made it this far, then the user is authorized. Let's
- upload the photo. The Image data is posted in the form in the
- "media" form field.
- --->
- <cffile
- result="upload"
- action="upload"
- filefield="media"
- destination="#uploadDirectory#"
- nameconflict="makeunique"
- />
- <!--- Make sure the file type is acceptable. --->
- <cfif !listFindNoCase( "jpg,gif,png", upload.serverFileExt )>
- <!--- The file is no good, delete it. --->
- <cffile
- action="delete"
- file="#uploadDirectory##upload.serverFile#"
- />
- <!--- Throw an error - file is not a valid type. --->
- <cfthrow
- type="InvalidFileType"
- message="Only files with JPG, GIF, or PNG extensions are supported."
- />
- </cfif>
- <!--- ------------------------------------------------- --->
- <!--- ------------------------------------------------- --->
- <!---
- If we've made it this far, then the user has been
- authorized and the image has been SUCCESSFULY uploaded.
- Let's return a success response.
- At this point, you'd probably want to actually store the
- image upload record in a database and return something like
- a Unique ID or short URL to a "view page". But, to keep
- this demo super simple, I am just returning the physical
- image resource url.
- NOTE: The FORM scope also has a "message" field, which is the
- twitter message accompanied with the image. We are not making
- any use of this field at this sime.
- NOTE: Tweetie (Twitter for iPhone) doesn't support the
- MediaID node in our response; but, TwitPic uses it, and
- TwitPic is the API we are supposed to model so I am just
- throwing it in here.
- --->
- <cfsavecontent variable="response">
- <cfoutput>
- <?xml version="1.0" encoding="UTF-8"?>
- <rsp stat="ok">
- <mediaid>#getTickCount()#</mediaid>
- <mediaurl>#uploadUrl##upload.serverFile#</mediaurl>
- </rsp>
- </cfoutput>
- </cfsavecontent>
- <!--- ------------------------------------------------- --->
- <!--- ------------------------------------------------- --->
- <!---
- Catch any raised exceptions. In the above work flow, we have
- been throwing typed-errors. This gives us the ability to
- catch specific errors; but, for this demo, I am only catching
- general errors. If you wanted to add some CFCatch/Type tags,
- you'd be able to better support the TwitPic error response
- specifications for error codes (see "err" XML node below):
- 1001 - Invalid twitter username or passwor
- 1002 - Image not found
- 1003 - Invalid image type
- 1004 - Image larger than 4MB
- For now, I'm just returning error "2001" since I am not
- mapping exceptions to valid error types.
- --->
- <cfcatch>
- <!---
- If anything went wrong, try to delete the temporary file
- from the implicit ColdFusion upload directory. This gets
- cleared out periodically, but let's help the cause.
- The file path to the .TMP file is stored in the media
- form field.
- --->
- <cftry>
- <!--- Delete the TMP file from the form post. --->
- <cffile
- action="delete"
- file="#form.media#"
- />
- <cfcatch>
- <!---
- The temp file could not be deleted. Perhaps it
- has already been (moved and) deleted by a step
- above.
- --->
- </cfcatch>
- </cftry>
- <!---
- Define the error response. Since we are creating XML,
- be sure to escape the dynamic text in case it has any
- non-XML safe characters.
- --->
- <cfsavecontent variable="response">
- <cfoutput>
- <?xml version="1.0" encoding="UTF-8"?>
- <rsp stat="fail">
- <err code="2001" msg="Unknown error - #xmlFormat( cfcatch.message )#" />
- </rsp>
- </cfoutput>
- </cfsavecontent>
- </cfcatch>
- </cftry>
- <!--- ----------------------------------------------------- --->
- <!--- ----------------------------------------------------- --->
- <!--- Stream the XML response back to the client. --->
- <cfcontent
- type="text/xml"
- variable="#toBinary( toBase64( trim( response ) ) )#"
- />
Because there are so many dependent steps in this work flow that might break, I am using a CFTry / CFCatch / CFThrow approach (as outlined in my ColdFusion API Presentation). In using this approach, not only can I easily respond to individual exceptions using typed-CFCatch tags, I can also be sure that at every step along the way, all of the previous steps were valid.
To keep this demo as simple as possible, I am returning the physical resource URL of the uploaded image. In reality, you'd probably want to take the uploaded URL, insert it into a database, and create some sort "view" page for said image. Then, you'd probably want to return a short-url to said view page in lieu of returning the actual image URL. But, at that point, we would need to get much more specific in our implementation. This code is meant to be a general approach to handling custom image uploads from Tweetie.
Looking For A New Job?
- Software Development Engineer - REQ20003869 at Express Scripts
- Mobile Application Developer at Xorbia Tickets
- 7 Year + Lead ColdFusion Developer at Atprime Media Services
- Full Time ColdFusion Developer Needed at InterCoastal Net Designs
- Developer-focused job platform at Honeypot
Reader Comments
Thanks I was looking for something like tweetie, for a project I'm considering for http://redtideflorida.org/page/ where people could upload photos and tweet to help track the oil damage on beaches (and red tide when it comes back) in Florida.
But hey, maybe a little fairy will come, wave her wand and make this service not necessary!
BTW, your code above is freakin beautiful.
Thanks my man. Good luck with your app - sounds like a very environmentally cool service.