text:
Hornish Finishes 40th at Texas Motor Speedway
November 9, 2009
FORT WORTH, Texas (November 8, 2009) – Sam Hornish Jr., driver of the Penske Racing No. 77 AAA Dodge Charger in the NASCAR Sprint Cup Series, finished 40th in the Dickies 500 at Texas Motor Speedway on Sunday.
Prior to the start of the race weekend at the 1.5-mile oval, Hornish hosted a celebrity bowling tournament for the fifth consecutive year, in conjunction with Speedway Children's Charities. This year, the star-studded event raised $101,480 bringing the total to over $500,000 since the event's inception in 2005.
On the track, Hornish started the 334-lap event from the 11th spot following a strong qualifying effort on Friday. On the third lap of the race, Hornish was racing three-wide with the No. 00 and No. 48 cars when the AAA machine got loose after slight contact and struck the car driven by series leader Jimmie Johnson. Both cars received substantial damage and Hornish came to pit road for repairs. The AAA team serviced the No. 77 Dodge and replaced the right-rear quarter panel. Hornish restarted the race on lap seven in the 42nd position, running one lap down to the leaders.
As he continued on, Hornish reported that the race car was loose-handling on the exit of the turns. Running in 39th place, Hornish came in for the first round of green flag pit stops on lap 51 for four tires, fuel, air pressure and wedge adjustments. When the pit stops cycled through, Hornish was posted in 39th place, now two laps down to the race leaders.
On lap 87, Hornish was involved in a single-car accident on the backstretch and the AAA Dodge suffered further damage. He came to pit road for repairs and rejoined the race on lap 95 in the 39th spot, 11 laps down. Reporting a vibration, Hornish was forced to the garage for more work. Unfortunately, the No. 77 machine was damaged beyond repair. Hornish finished the race in 40th place and is now ranked 30th in the 2009 driver point standings.
Penske Racing teammate Kurt Busch scored his second victory of the 2009 season Sunday while Brad Keselowski finished 35th in his first start for the Penske Racing team.
"I got hit by the No. 00 car and didn't even have time to correct before I got up into Jimmie," said Hornish of the first incident of the race. "I don't ever want to feel like I've affected the outcome of the championship. I have my head down a little bit this week because I had a really good car and all we wanted to do is make it so we could race the last three laps like that and not the first three laps."
Hornish and the No. 77 team head to Phoenix International Raceway for the Checker O'Reilly Auto Parts 500 on Sunday, November 15, 2009. Racing action will air live on the ABC television network beginning at 2:30 p.m. EST and will be broadcast live on MRN Radio starting at 2:45 p.m. EST.


text:
Fly Racing - Terra Trek 4 Jacket
Product Code: fly-racing-terra-trek-4-jacket
Fly Racing - Terra Trek 4 Jacket
- Air Induction System allows for maximum venting featuring straps that force the chest vents open allowing for maximum air intake venting. Large zippered intake vents are located on the shoulders. Hot air is exhausted through large vents located on the back
- Multi-material construction with an advanced polyfabric textile main shell for excellent abrasion and tear resistance
- Reinforced ballistic elbow panels
- HYDRAGuard protection makes garments durably waterproof, windproof and breathable so that you stay dry and comfortable
- CE-certified elbow and shoulder armor. PE back and spine protector
- YKK main zipper
- Aqua-Guard Waterproof zippers on vents. Two-way main zipper
- Nylon webbing zipper pulls for easy use with a glove
- Anatomically correct construction for reduced fatigue and enhanced riding comfort
- Reflective panels for improved rider visibility
- Side expansion panel for added comfort
- Full removable long sleeve thermal liner for climate control
- Features inner pocket and fleece lined back panel
- Upper and lower sleeve volume control helps keep your armor in the correct position
- Velcro adjustment cuff enclosure for customized fit
- External and internal zippered pockets for peace-of-mind closure
- Elongated rear profiling, plus combined D-ring and Velcro® waist adjustment
- Hidden rear cargo pocket
- Micro fleece collar for added comfort
- Internal waist connection zipper to allow attachment to FLY riding pants
- Available in Tall (T) option

subset: commoncrawl


text:
CHAMA, N.M.—A nonprofit group that supports a historic narrow-gauge rail line that runs between New Mexico and Colorado has been designated as one of the nation's newest preservation stewards.
Friends of the Cumbres & Toltec Scenic Railroad received its designation letter last week.
The Preserve America Steward designation is awarded to volunteer programs that have been successful in preserving the nation's historic places. There are now 38 Preserve America Stewards in the U.S.
The Cumbres & Toltec group was formed in 1988. Each year, it conducts six weeklong work sessions where hundreds of volunteers help restore historic rail cars and structures along the line.
The railroad is owned jointly by New Mexico and Colorado. A tourist attraction for decades, it operates along 64 miles of track between Chama and Antonito, Colo.


text:
It was perhaps his most important campaign promise and maybe the one that resonated the most. Senator-Elect Tim Kaine vowed from the time he announced his intention to run for the U.S. Senate that he wanted to find ways to compromise.
After defeating former Senator George Allen, Kaine is now just a few months away from making good on that promise. Given his emphasis on compromise, it was no surprise that Kaine focused quite a bit on that topic in his post-election press conference.
Here is my story for NBC12:
RICHMOND (WWBT)- One of the big winners in last night's election was former governor and now Senator-Elect Tim Kaine. Kaine is ready to head to Washington and forge something that hasn't been seen much in that town as of late compromise.
Dressed casually and with a voice a touch hoarse after more than a year on the campaign trail, Tim Kaine told reporters he is ready to go work.
"The thing we most need to in both houses of congress is really commit to compromise and working together," he said.
Kaine, who edged out former Senator George Allen, in part because of that bi-partisan message, said with issues like the looming fiscal cliff and sequestration battles ahead, compromise is needed now more than ever.
It is something he was able to do as governor.
"We disagreed plenty," Kaine said of his dealings with republicans in the Virginia General Assembly. "But we maintained the relationship and the friendship that if we disagreed about something today we could find something to agree about tomorrow."
Virginia's newest senator enters a body facing historic levels of dysfunction. It is an atmosphere that despite last night's election, is not that much different.
The man who started his career as a Richmond City Councilman is hopeful a few new faces can have a positive impact.
"There is nothing that magic about it," he said. "We just need to add more voices to that common ground caucus that is what it is going to take."
Kaine is hoping to join that group of senators looking to work with the other party, but his new partner Mark Warner may be getting out.
read and see the full of the story on NBC12.com
Our report can be seen below:


text:
Hi all.
I have a XO-1, running kernel 2.6.31_xo. Currently, the root access is enabled.
How can I disable the root access, without requiring changes in the kernel code itself?
The normal procedure of changing the root-password using "passwd", doesn't seem to work on the XO.
Looking forward to a reply.
Thanks and Regards,


text:
photo 1 of 8
Wilson Gouveia
Training: Training my striking a lot, wrestling, MMA and jiu-jitsu
When and why did you start training for fighting? I started fighting in 2001. I was training a lot of Jiu-Jitsu at the time and I just naturally progressed into the world of MMA.
Getty Images reserves the right to pursue unauthorized users of this image or clip. If you violate our intellectual property you may be liable for: actual damages, loss of income, and profits you derive from the use of this image or clip, and, where appropriate, the costs of collection and/or statutory damages up to $150,000 (USD).


text:
New Mexico-Boise St. Preview
(AP) -- Regardless of whether Boise State is selected to play in a BCS bowl, Chris Petersen certainly deserves plenty of credit for the program's success.
Petersen, who continues to be a hot commodity on the coaching market, will try to become the ninth-ranked Broncos' all-time leader in victories in Saturday night's regular season finale against a woeful New Mexico team that has lost 20 straight on the road.
Boise State (10-1, 5-1 Mountain West) will finish second in the conference to No. 18 TCU, which beat the Broncos 36-35 on Nov. 12.
Petersen's team, however, is seventh in the BCS rankings and could earn a berth with a victory Saturday depending on how other results unfold across the country.
The coach is 71-6 over five-plus seasons to match Tony Knapp's total from 1968-75 for the most victories in Boise State history. Peterson's 61 wins prior to this year are the third-most in NCAA history for a coach in his first five seasons.
"I think I've been lucky and blessed to be in the right situation at the right time," Petersen said. "We've had, obviously, tremendous players. I think one thing is the coaches we've had around here and been able to keep around here and the continuity. All those things add up."
With UCLA firing Rick Neuheisel on Monday, Petersen's name has come up as a possible successor. For now, Petersen is focused on senior day for the Broncos.
"Well I think that's going to be a positive in terms of the emotion and energy that that'll create, I think in the stands and certainly on the field," Petersen said. "We don't want them to leave, but I think it will have some good emotions."
The senior expected to receive the biggest cheers will be quarterback Kellen Moore, the nation's all-time leader with 48 victories. Moore is the sixth quarterback to throw for over 14,000 yards and has guided an offense that is producing 477.6 yards per game - the 11th-best average in the FBS.
The Broncos are hoping to get off to a better start than in last Saturday's 36-14 home win over Wyoming. They were kept off the board until the final 70 seconds of the half, when Doug Martin scored on a two-yard run and Moore threw a 46-yard Hail Mary touchdown pass to Matt Miller.
"Our offense is always going to click," Martin said. "Sometimes we start a little slow, but we know we just have to keep fighting, keep swinging. Eventually it will start clicking."
Another senior making an impact late in the year is safety George Iloka, who has been forced to move to cornerback due to a number of injuries for the Broncos at that position.
"George is playing a new position, and I hope no one gets electrocuted," Petersen said.
The Broncos own the Mountain West's top defense, allowing 326.4 total yards per game. The injury-plagued unit bounced back last weekend after allowing 71 total points over its previous two games.
"It's really hard to play great defense," Petersen said. "You have to be good against the run, you have to have a pass rush, you have to have corners, you have to have the whole package. If you don't, you see what happens and you get a little thin."
The future for New Mexico (1-10, 1-5) will begin next season when former Notre Dame coach Bob Davie takes over the program. Mike Locksley was fired after the team's 0-4 start, then the Lobos were outscored 195-14 in a four-game stretch under interim coach George Barlow before their lone victory, 21-14 over UNLV on Nov. 12.
New Mexico then lost 31-10 at Wyoming on Nov. 19. Another defeat would result in a third straight 1-11 season.
"It seems that change has been the only constant around here," senior defensive lineman Jaymar Latchison told the Lobos' official website. "A lot of players left since my first year, but the ones that stuck it out with me are like brothers to me."
The Lobos have the nation's fourth-worst defense, allowing 487.5 total yards per game, and the 10th-worst offense at 305.2. Senior linebacker Carmen Messina is a bright spot, needing one more tackle to become the Mountain West's all-time leader with 434.
"We've been through a lot of hard times, but all that has brought us together," Messina said. "You play for a lot of reasons, but your teammates might be the main reason. I know that many of the guys in the locker room will be my best friends the rest of my life."
Boise State won both previous meetings in 1999 and 2000.


text:
Green, lush-looking lawns can be achieved without water even during the heat of summer.
Richard Scowden of GoGreenGrass uses a nontoxic, child- and pet-safe product to paint lawns. He says the treatment is popular in Arizona, Florida and other areas of the country, but admits business has been slow so far in the Rogue Valley.
"One of the big things I wanted was to make sure it was biodegradable," said Scowden. He investigated the possibility for his own property and then decided to make it available to others.
Lawn painting could appeal to people who are going on vacation for a couple months, and it might also be attractive to real-estate agents and banks that own vacant property, said Scowden. Companies or people hosting events or weddings also might use the service.
At his home in the hills outside Talent, Scowden and his wife, Sandy, maintain a small yard but are reluctant to use well water on it. Painting the lawn helps the couple preserve their supply for household and other uses.
One of the Scowdens' dogs ended up with green spots for a couple weeks when the couple painted test patches last year but suffered no ill effects. The paint takes a couple hours to dry. Deer can perceive a difference in the treated grass, Scowden said.
The paint's estimated life is three to four months, although Scowden says some he applied on tree roots poking through the ground last year is still visible. The painted grass can be mowed and watered. "It's not going to grow much this time of year," said Scowden.
Mike Pitts, who lives on West Nevada Street in Ashland, had his 1,000-square-foot front lawn and parts of his backyard painted last summer.
He estimated he saved about 60 percent on his summer water bill.
"When you see it going on and you see the extreme change, it's like 'wow,' " Pitts said.
When Scowden had some paint left over from another job earlier this year, he painted half of Pitts' front lawn and put up a sign to show the difference between a painted and unpainted lawn.
Pitts sprayed some water on the painted section on a recent morning.
"When you get it wet, it does look better," he said.
Scowden, who has a dirt driveway, says he sometimes sprays his painted lawn to remove the dust and restore color.
Pitts also keeps a small spray bottle of the paint to cover lawn spots. He did that the other day after accidentally spilling mower gas on his backyard lawn. The paint can also be applied to pet spots.
At one job near Ashland, Scowden arrived to find a gorgeous, lush setting. The owner wanted to cover some brown circles that had appeared on her lawn to give it a uniform appearance. Hand- or electric-powered sprayers can be used to apply the paint, which is ammonia based and may help fertilize the lawn as it wears.
A two-year study at Clemson University on lawn paints determined a once or twice per year application had no negative effect on summer turf performance, according to a summary at www.naturalgreengrasspatch.com.
Scowden retired as a captain after 32 years with Jackson County Fire District No. 5. He is now on the district's board of directors. His wife does the firm's marketing and had worked in merchandising and marketing for Bear Creek Corporation. She does similar work for a local, wholesale flower-bulb company.
The painting usually costs 12 cents per square foot, with a 500-square-foot minimum. Lawns can be prepared for the application at an hourly charge or owners can do their own preparation, which consists of removing debris and dead material and perhaps mowing.
More information can be found at GoGreen-Grass.com.
Tony Boom is a freelance writer living in Ashland. Reach him at email@example.com.
Some lawn owners turn to paint to keep them green
Green, lush-looking lawns can be achieved without water even during the heat of summer.


text: Chiefs offensive coordinator Bill Muir has given his unsolicited endorsement for Romeo Crennel to be hired as Kansas City's permanent coach. Muir said that the defense has "turned the corner" and that "it would be a shame to change that." Crennel was elevated to interim coach nearly two weeks ago, when the Chiefs fired Todd Haley after a 5-8 start.


text:
The Perfect Valentine's Day Card for Our Times
You haven't made Valentine's Day plans yet. That's okay! Who needs 'em? Manufactured holiday, singlehood empowerment, overpriced prix fixe menus. But if you must make a romantic gesture next month, let it be this card. It sums up modern relationships pretty much perfectly.


text:
July 17. 2013 9:32PM
Lawyer: Seabrook mom who fed kids bleach is mentally ill
By JAMES A. KIMBLE
Union Leader Correspondent
UPDATED: Police say Seabrook mother told kids bleach was medicine
— A Seabrook mother who was jailed Wednesday on charges she forced her two young children to drink bleach last month suffered from "undertreated and perhaps undiagnosed mental illness," her lawyer said on Wednesday.
Wendy Wright, 33, 15 True Road, was arraigned from the Rockingham County jail in Brentwood on two counts of attempted first-degree assault for allegedly trying to poison her children, ages 6 and 7.
Seabrook Detective Scott Mendes, the police prosecutor, said charges in the case could be upgraded to attempted murder, but that decision would be left to county prosecutors who are expected to review the case.
"There's always that possibility that the County Attorney's Office could increase the charges," Mendes said in an interview following the hearing. "The county attorney could decrease the charges, but in this circumstance there is that possibility they could be increased."
Video -- Seabrook Police Prosecutor Scott Mendes on the Wendy Wright arraignment:
Judge Michael Sullivan heard arguments for bail on Wednesday via video arraignment and set bail at $200,000 cash.
Wright could be heard weeping at times during the hearing. A pair of women who identified themselves as Wright's sister and mother declined to speak to reporters following the hearing.
Seabrook police were called to Wright's home on June 18 in response to a 911 call, and found her unconscious.
Police believe the children likely suffered from burns in their throat and other internal injuries.
"I think she certainly presents a danger to herself due the circumstances," Mendes said. "When police arrived there they found her in a really unresponsive medical condition."
Mendes said the children are recovering and living elsewhere, but declined to give further details about their medical condition or whereabouts.
He argued for Wright to be held on $500,000 cash bail on each of the two charges He also asked that she have no contact with her children, or their biological father.
Public defender Anthony Naro, who sat alongside Wright at the jail, said such high bail was unreachable for his client and family, calling it essentially a no-bail hold.
"This case comes down to mental illness. Undertreated and perhaps undiagnosed mental illness," Naro said.
Naro asked for a $1,000 cash bail to be set for Wright, arguing that jail would only derail her from much needed mental health treatment.
Wright underwent mental health treatment at Beth Israel Deaconess Medical Center for three weeks following the event at her home, according to Naro.
Naro called upon Judge Sullivan to dismiss the charges, saying they were defective due to the wording in the documents.
He described his client as a lifelong resident of Rockingham County with strong family ties to the area.
Wright was enrolled as a student and taking classes at the time of the incident, Naro said. She also has a third child, who was not at the home at the time of the incident.
If Wright is freed on bail, she would live with her mother and stepfather in Raymond.
Affidavits related to Wright's arrest remained sealed on Wednesday.


text:
Return to Writer's Beat.com
Writing Craft
The Reference Room
General Writing
Common Sense Writing
User Name
Remember Me?
Common Sense Writing
Thread Tools
Guard Dog and Playful Pup
Senior Moderator
Join Date: Sep 2007
Location: In the ether of my imagination
Posts: 10,834
Thanks: 904
Thanks 1,696
Common Sense Writing
Common Sense Writing
By Crystalwizard
Every author, editor, English teacher and weekend writer has a page of writing tips, so I might as well jump into the fray. Before I proceed to provide them, it's necessary for me to ask you what sort of writing you are involved in. There are two main types, fiction and non-fiction. Those break down into multiple subcategories.
Fiction is anything which isn't real. It either didn't happen, or it isn't happening right now, in quite the way you are describing it. Fiction can take place on Earth, or any where else. Settings involving a future date are always fiction. Fictional works are almost always stories, with the exceptions being things like shady stock market scams and the latest weather predictions for tomorrow and the rest of the week. Fiction can be found every where. In the newspaper, where some journalist 'spun' the facts to suit his or her private agenda. In the school history books, where the facts concerning different events or people are changed on accident, or on purpose. Coming out of the mouth of a small (or not so small) child who is trying not to get in trouble for something. In the libraries, book stores and floating around in the mind of every living person. Usually we consider only stories published in books or magazines to be fiction, however fiction is all of the above.
Non-fiction is anything which is real. Either it did happen, or it's happening right now. Non-fiction is found in all of the same places that fiction is found. Non-fiction covers both the relating of events, and such dry subjects as math, geography, cooking, and other subjects usually associated with school. 1+1=2 is a fact and non-fictional. Water gets hot if you put it in a pan over fire for a while is a fact, and non-fictional. Use an umbrella because it's pouring down rain, or you'll get wet is a fact, and non-fictional.
It's important to know what you are going to be writing, because the tools you'll need to use, the style you'll need to follow and the audience you'll be reaching require different approaches. If you are writing a middle school math book, you'll be dealing with a large number of students who probably don't want to read it, much less be interested in it. You have to find a way not only to grab their attention, but force facts into minds which probably don't want them there. If you are intending to write a novel about space travel and giant, bug-eyed monsters however, your audience might be the same people but they will be in a completely different mind set. You still have to grab their attention, but instead of making them hold still while you insert facts into small brain cells, you must transport them from where they are sitting to where your bug-eyed monsters are. If your book just spouts of dry facts about the size of the monsters, where they live, how long it takes to get there and what they eat, your audience is likely to put it back on the shelf and leave it there.
With that defined, we shall proceed to the tips.
The libraries are packed, the book stores over flow and the Internet is being buried beneath reams of these things. All the experts get up on their soap boxes and pontificate about what is 'right' and what is 'wrong'. A new writer is in serious danger of curling up into a ball under his desk and refusing to come out after reading a large number of them. It's never expressly stated that 'the world will end in a Nuclear Holocaust if you break these rules', but it's implied. It is, however, stated over and over that 'no one will publish you' if you break these rules. Unfortunately for those experts, their own writing, sometimes even on the page of rules they are presenting, breaks various rules. Sometimes they break their own, and sometimes they break other peoples rules. It's sad, it's laughable and it's annoying. What you will not find in the sections below such things as the discussion of the parts of language and how to use them. If you don't know what an adjective is, or how to apply an adverb, go to a used textbook store and buy an English course book. What you will find are common sense discussions of several things.
Read them, think about them and ignore them if you wish. You're welcome to email me if you want to talk about anything here or if you have comments you'd like me to consider adding. Don't bother to write me and flame me however. I'm fireproof. I'll just delete your mail and ignore your existence.
Should it be said?
I ran across an article the other day, written by someone who was supposed to be a well known writer for magazines and other literary pieces. I slogged through it in the hope that there would be something interesting, but all I can remember is one admonition he made. He was discussing dialog and made the statement that a writer should never use anything but the word said and never modify said with an adverb.
My first reaction was anger, my second was to close the page I'd been reading and my third was to wonder if he insisted that the only necessary veggies anyone should ever eat were potatoes, peas and corn.
While I agree that the word said is nice, and that of course if someone has uttered words, they've said them, the problem is that 'said' is bland. Let me give you an example
Take this sentence:
"The dog just ran off with my pants!" the man said.
Notice that ! after pants? The man isn't standing there, just calmly uttering his sentence. He's excited. He might not be jumping up and down physically, but his voice almost certainly is. Does the word said as used in that sentence convey that to you? Did I paint you a good picture of how the man is acting, what he's thinking, how he feels about what just happened?
Now try these sentences:
"The dog just ran off with my pants!" the man fumed.
"The dog just ran off with my pants!" the man shrieked hysterically.
"The dog just ran off with my pants!" the man laughed, tears of mirth running down his cheeks.
Now what kind of image have I painted for you with each of those sentences?
The sad, unfortunate thing that is currently happening to writing and being spouted by all the experts, is that it is becoming bland. boring. Writers are being urged to use a toolbox that contains only one #2 pencil and a pink eraser. Anything else is unnecessary.
Remember one simple fact while you are writing. You are not just communicating, you are painting a picture. If you really want to paint one using only the primary colors of red, blue and green, that's your choice. Go right ahead. But if you want to paint a striking masterpiece with subtle shades and flowing lines, then my advise is to ignore the experts. The writers toolbox should be filled with various items, such as adjectives, adverbs, nouns, pronouns and so on. The writer should feel free to use any of them, in any way and at any time that he or she wishes to in order to paint the picture he or she can see. Take into consideration your audience and make sure you don't paint a picture they can't understand, but don't make it bland just become some "expert" doesn't like the user of a particular tool.
Fad Editing
Fad Editing. Have you heard the term before? Probably not, since I believe I'm the one that coined it.
What do I mean by Fad Editing? First, lets define what a Fad is.
According to the American Heritage Dictionary: A fashion that is taken up with great enthusiasm for a brief period of time; a craze.
According to dictionary.com: a temporary fashion, notion, manner of conduct, etc., esp. one followed enthusiastically by a group.
So a fad isn't something that sticks around, stands the test of time or has much reason for being other than everybody and their dog is doing it right now.
Most people know what editing is, but for the few that don't, dictionary.com defines editing this way:
1. To prepare (written material) for publication or presentation, as by correcting, revising, or adapting.
2. To prepare an edition of for publication: edit a collection of short stories.
3. To modify or adapt so as to make suitable or acceptable: edited her remarks for presentation to a younger audience.
4. To supervise the publication of (a newspaper or magazine, for example).
5. To assemble the components of (a film or soundtrack, for example), as by cutting and splicing.
6. To eliminate; delete: edited the best scene out.
That should be enough for most people to understand what I mean by Fad Editing. Everyone who fancies them self an editor spouts off a rule. That rule is an absolute, must not be broken... for a few months, maybe a few years. Then suddenly its no longer considered valid and some other rule takes its place.
I suppose that isn't such a bad thing, language evolves and the rules concerning its usage do as well. However I am very tired of being the recipient of some of the current Fad Editing rules.
The first rule is do NOT use adverbs or if you must use adverbs, use very few. The reason given is that adverbs weaken the writing.
Unfortunately for the Fad Editors, adverbs are specifically designed to strengthen a piece of work. They provide color, texture and richness.
I recently had someone read this sentence:
Stumbling to the window of his tower, every fiber of his being aching from the battle, he stood gazing silently out at the smoke rising from what remained of his city.
After they read the sentence, they informed me that I needed to delete the word silently because it weakened the sentence. Instead I should use strong descriptions. They also informed me that by adding that word to the sentence I contributed to it being wordy.
I'm at a loss for how it weakens the sentence and I cant imagine what I could say to get across the point that the person in question is standing at the window, staring out of it without making a sound without using the word silently. That's what it means after all. Well no, I suppose I could have said standing at the window, gazing out of it without making a sound, but that adds a good deal more words than just using silently.
A search for the word Adverb on Google turns up a wealth of excellent sites, all explaining what adverbs are, how to use them in sentences, WHY they should be used in sentences and so on.
Hopefully this piece of Fad Editing will burn out and blow away before too much longer.
Another example of Fad Editing is the current mantra of Tighten up the piece!" Evidently there's a fee being charged for the number of words a writer uses. The earth will rock, the sky will fall and all babies will be born without their arms and legs if any piece of writing has the least bit of extra fluff to it.
I'm seriously tired of that little rule as well. Granted, extremely long descriptions can put me to sleep. I refuse to read The Fall of the House of Usher because the author rambles for three solid pages just describing the scene. That was, however, the Fad Editing style of his day. It was consider cheap and unprofessional to write something that didn't ramble on. A good author was one that filled the pages with long descriptions about everything.
There are many other Fad Editing rules which are perpetrated by the unaware. Very few people that offer advice on how to write have done any real research. Most just pick up what someone else has told them and pass it along. My suggestion to anyone reading this piece is:
Regardless of who you are, what you know, whether you taught English or not or even whether you work as an editor for a living or not; before you start making editorial comments, make sure that you aren't just passing along the latest Fad Editing rule.
How to lose your audience
This section primarily pertains to those of use that are engaged in writing fictional stories. Have you ever found a book with an interesting cover. The blurb on the back got your attention, the first few pages of the book snagged your imagination and you just had to have it? Most of us have run across those and in fact, that's what all authors want. It ensures you'll buy their book. Unfortunately, in a lot of cases, after you get the book home and settle down to read it you discover that the author put most of the effort into the first chapter. Maybe the first couple chapters. Long before the end of the book however, you found yourself finding other things to do. The book sat, unfinished, on your bookshelf for a while and then probably made it's way to a second-hand bookstore. The author never noticed, since you already paid for that book, but did you buy another one of his books? Or did you start to, then think 'oh that first one was horrible, no I don't think I want to read any more from this guy.'
Whether an author is churning out entries on a blog, dropping articles into magazines or publishing books, it's very important not only to capture new readers, but retain the ones already acquired. There are many ways to do this, from marketing hype (which is expensive even if your first initials are J. K.) to cliffhangers at the end of every story. The best way to accomplish this however, is to give your readers a story so engrossing that they find themselves living some where else for a while and wanting more once they have finished reading.
There are several methods of transporting your audience some where else, the tricky part is getting them to subconsciously tie into the alternate reality. For that, you need a character. The character might be anything. A magical bird, a crazy monkey, the poor milkman. That character becomes your transport vehicle. That character is what gets your reader out of their chair, off the couch, and into your world. That character is also what's going to keep them there and make them want to come back. If your reader doesn't identify well with that character, they are never going to become participants in the story. At best they will be friendly observers. They might buy another one of your books, but chances are good that they won't. However if they are participants, they will not only buy every book you release, they'll get their friends to pick them up too.
I read a story not long ago which was published many years back. A sci-fi story, it was obviously in the category of pulp-fiction. Which was fine, that's what I wanted. It started off wonderfully with a nicely detailed setting, believable characters and action that immediately sucked me in. However just as I really got attached to the main character, the author removed him from play. Oh he came back much later in the story, but by that time I didn't care about him any more. The author repeated this travesty several times. A main character would be introduced, I'd get interested in it, I'd start to identify with it and thus want to see what happened to it and then the author would remove it from the action. I made it half-way through a 200 page paper back then threw the book in the trash.
It's fine to have a number of characters which all become main at one point or another. It's fine to bounce your reader back and forth between them but don't completely remove them from the action.
An example of where this is done is J.R.R. Tolkien's Lord of the Rings. There are many characters in the story who at one time or another occupy the position of Main Character. Point of view switches between all of them as this happens. However because of the way he weaves his tale, none of the characters is ever totally removed from the story. At one point the company breaks completely up, they go off into different directions. A member gets killed. However every characters presence continues to be felt. If they are not physically present, then they are being remembered, or mentioned or in some why still woven in. You never reach a point in the story where you forget about Gandalf, even after you are positive he's dead. He's gone, but his previous actions are very much in front of you, influencing what is happening. Frodo is missing from a large part of the books. He's off slogging through Mordor not running around on the battlefield outside Gondor, yet you never reach a point where Frodo appears to have vanished from the world. There's never any danger that the reader will form an attraction with one of the characters, then toss the book in the trash because that character has been removed. It doesn't much matter if he or she comes back later if the book hits the trash before they reappear.
Another thing that can cause a reader not only to dump your story into the recycle bin, but also to post nasty things about you in their blogs, is cardboard characters. Too many writers make the mistake of painting a wonderful picture of their character, then forgetting to give them a personality. They turn out to be like those life-sized cardboard cutouts you see in movie theaters. From the front they almost look real. Walk around to the back though and you can see there's no substance.
Your character(s) are people. They live in the world that your reader is visiting. They need to act, think and behave like people. If at all possible every character, even the ones that just have bit parts for a page or two, or maybe just a paragraph, should be a real person. As you introduce new characters to your story, stop what you are doing and write a character sketch. Put down what the character looks like. Give it a name. List what he/she/it likes and doesn't like. write out it's history so you know where it came from and why it's there. Put as much detail into it as you can. Then when you use the character in the book, you'll know how to use it correctly. You won't have the street-smart detective walking into a trap that a first-grader can see. You might WANT to have him do that for plot reasons, but he's quite likely to look at you, cross his arms and say something like 'are you crazy? I'm not going in there!' Which is exactly what he should do. You might have to change your plot, but the story will be stronger for it.
One of the most devastating mistakes a writer can make is not to do research. If you are going to write a story about an ocean voyage, and you've never traveled over the ocean, you're going to make some mistakes. You won't realize that they're mistakes but those readers who have traveled over the ocean will. And they will tell you about it. A classic example of lack of research can be found in the original Star Wars movie. When Han Solo is first introduced, he has to brag about his ship. He expresses surprise that Obi-Wan's never heard of his ship and states 'It's the ship that made the Kessel run in less than 12 parsecs." Obviously the script writer didn't have a clue about astronomy. Neither did anyone else apparently. A parsec isn't a measure of speed or time, it's distance. Instead of Han saying something like 'It's the ship that made the Kessel run in less that 12 seconds' what he actually said was 'it's the ship that made the Kessel run in less than 12 feet.' (Historical note: Years after the mistake was made, an official statement was released. The statement was full of double talk and attempted to explain why 12 parsecs was correct. Everyone is well aware that the entire reason such a statement was made was simply to try and fix the gaff that shouldnt have happened in the first place. Unfortunately, it fixed nothing.)
I remember sitting in the audience, hearing him saying that and suddenly I wasn't in the movie any more. That was so blatantly wrong, and stupid, that I stopped identifying with any of the characters, with the action and with the plot as a whole. I eventually got back into the movie but my respect for Lucas and his story telling ability has never recovered to the point it was when the movie started. Go out to Google and search on "it's the ship" "Kessel run. You'll find a lot of other people still laughing at him for that mistake, and that was 30 years ago.
Research is important. Your readers must suspend their belief in order to enter your world and if you make a blunder like Han did, they will suddenly remember that they're just reading a story, not living another life. You don't want that. Once that happens, your transport vehicle is damaged and may never recover.
Rejection is a fact of life
There are only a couple of absolute guarantees in life. One is that you will eventually die, another is that not everyone is going to like what you do. While it would be really nice if they did, it just isn't possible. We humans are diverse in our tastes, and that means some people will like what others do not. Rejection can hurt, if you take it as a personal attack on yourself, but it doesn't have to. The fear of rejection affects too many writers however, and it prevents some who might be excellent story tellers from even trying.
A scene from Back to the Future illustrates this point. Marty sees George writing and asks what he's doing. George admits that he's writing stories. Marty expresses surprise and wants to read what George has written. George's response is typical of someone who allows the fear of failure to keep them from trying. He says 'oh no. I never let anyone read my stories. What if they don't like them? I don't think I could take that."
Rejection is going to happen and it's nothing to be afraid of. It's not possible to please everyone with everything we do. Look at yourself for a moment and think about your own tastes. How often every day do you personally reject something that someone else has done? Did you decide not to buy a pair of shoes for some reason? Then you rejected those shoes. Was that a personal attack on the man or woman who made them? No, you just didn't choose to buy them. Did you go to out for a bite in the last week? How many restaurants did you eat at? Likely only one. You rejected all the others in favor of the one. Were you giving a personal attack on the owners of the other restaurants? no, you just decided that you didn't feel like eating what they had.
For a writer, there are two reasons their work is rejected:
Bad writing
Wrong audience
Sometimes a rejection is the result of both bad writing and wrong audience, but for anyone with a little writing experience under their belt it will usually be only one of the two.
I sent in a story to a fantasy magazine once and it was promptly rejected. The reason given? It had a dragon in it. Well of course it had a dragon in it. The entire story was about a dragon. What crime had I committed? I neglected to read their submission guidelines carefully. If I had, I would have seen the statement that they were 'sick of stories with dragons' and wouldn't have submitted it. Good story, wrong audience.
Rejections are going to happen if you write regardless of the method you are publishing your work in. It will happen if you are trying to use a traditional publishing house, you are self publishing, you are posting to other people's blogs, you are posting to your own blog, or you are just turning in an assignment to the teacher. Rejections aren't a problem. Failure isn't a problem. Those are learning experiences from which we grow. The problem will be strictly in how you choose to react to it.
For a new writer, the most likely scenario is this. The writer has spent hours working on a piece. They've edited it, looked it over and sent it into someone. As the time ticks by and days pass, they build up a fantasy of what sort of fantastic reaction their piece evoked in the editor that read it. They begin to imagine that they will suddenly become the next literary superstar and might even make the mistake of telling friends that they are going to be a 'published author'. Then the day comes that their work is returned and they get a short little note thanking them and informing them that it hasn't been accepted. Suddenly their fantasy world crashes into ruins. Their life is over! All of their friends are going to laugh at them. Instead of occupying center stage in front of a mass of adoring fans, they are now mentally slinking down a dark alley while the entire world points and laughs.
Ok, melodrama over. While such a reaction is common, especially with a new writer, it's not necessary. Rejection slips sometimes carry a reason why, frequently they do not. If they don't have any helpful comments, toss them in the trash and get on with life. If they do, unwind yourself from your work long enough to look at it objectively. Maybe it's a case of wrong audience. You sent the piece to someone who absolutely hates cats, is publishing a magazine about dogs and your entire story is about a cat. However it might be a case of bad writing. No one's perfect. No matter how many times you edit your work, there are still going to be flaws in it. Do not react to the suggestion that it could be improved by screaming 'Why those XXXXX! How dare they insult me! Don't they know I'm a genius!". Maybe you are a genius. But even if that is the cause, it's doubtful your writing is perfect. No one's is. Pull out any of the great literary classics you care to name and you will find mistakes, goofs, blunders and examples of bad writing. Take a deep breath, put your ego back onto the shelf and set about polishing your work.
It used to be difficult for a writer to get good feedback. Friends and relatives got into the habit of hiding, or being too busy, when asked to read over the latest literary offering. That isn't the case any more however. There are hundreds, if not thousands, of writing groups on the net. There are mailing lists, in fact there are whole web sites just devoted to the craft. These things are populated with plenty of people that write and are only too willing to read what you wrote and comment on it. Like anything else, some will comment because they want to help you and some will have ulterior motives. Do several things: Set up accounts on those sites, join those groups and those lists, comment on other's work and put your work up for others to comment on. Then take everything that's said with a large grain of salt. Listen to it, think about it, make the changes if they really are necessary but don't go crazy and make every suggested change just become someone else said to.
You will accomplish two things by doing this. You'll find out ways to polish your work which will help you grow, and you'll get a feel for what kind of audience is right for the piece in question.
I wrote a children's story not long ago as an entry for a contest. The person holding the contest was delighted and told me that it was one of the best they'd read in a long time. Directly on the heels of their glowing words was a second comment. The second comment was negative about every element of the story. Why? The second person was the wrong audience. They weren't a small child, they weren't a children's author and they were trying to read the story from the perspective of an adult. Wrong audience. I did write back and politely explained what their problem was, then I deleted their email and went on with life. I don't know if they paid any attention to me. I couldn't care less if they did. I certainly didn't pay much attention to their comments.
Twenty-year-old Marisa discovers her life is all a lie:
To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
Twisty mind candy:
To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
The Following 5 Users Say Thank You to Devon For This Useful Post:
K. Klein
View Public Profile
Send a private message to Devon
Find all posts by Devon
Writing Craft
The Reference Room
General Writing
Previous Thread
Next Thread
Thread Tools
Show Printable Version
Email this Page
Posting Rules
may not
post new threads
may not
post replies
may not
post attachments
may not
edit your posts
BB code
code is
HTML code is
Forum Rules
Similar Threads
Thread Starter
Last Post
An Overview of 24 Years Of Diary Keeping
Prose For Beginners
Tips & Advice
All times are GMT -8. The time now is
vBulletin, Copyright © 2000-2006, Jelsoft Enterprises Ltd.
© 2006 - 2016 CrowdGather |
About Writer's Beat Forums
A member of the CrowdGather Forum Community
Writer's Beat


text:
More than 100,000 comic books are submitted to CGC every year, to be graded by the hobby's most experienced and trusted team. All CGC-certified books are encapsulated in our state-of-the-art, tamper-evident holder with a distinguished CGC label. Learn more >
CGC is the only expert, impartial, third-party magazine service, committed to helping you add value to your collection. We'll encapsulate your prized magazine with its CGC grade, as well as any pertinent information about the particular issue. Learn more >
We've applied our expert grading standards and proven certification process to the world of collectible film and movie lobby cards. We evaluate single lobby cards, as well as eight-piece sets, making it more secure to buy and sell these collectibles.Learn more >
CGC also provides grading services for celebrity and character photos. Every CGC-certified photo is encapsulated in a heavy-gauge, archival plastic holder with our label guaranteeing authenticity. Learn more >
© 2018 Certified Guaranty Company, LLC. | Legal | Privacy Policy


text:
|Assistant Coach
|8th at MIT
|Previous College:
|Bentley University '07
Lucia Robinson-Griggs joined the MIT women's basketball coaching staff in the fall of 2011 after a three-year tenure at Lesley University. She arrived in Cambridge as an assistant coach and then assumed head coaching duties the next two seasons.
During her time with the Lynx, Robinson-Griggs's squads were back-to-back New England Collegiate Conference champions, resulting in her becoming one of the youngest head coaches in the NCAA to win a league title. Prior to her time at Lesley, Robinson-Griggs served as the assistant varsity basketball and junior varsity head softball coach at Dana Hall School in Wellesley, Mass. She has also coached at the Bentley University and Sarah Behn Summer Basketball Camps.
A Dean's List student, Robinson-Griggs graduated from Bentley in 2007 with degrees in mathematics and psychology. During her senior campaign, the Falcons advanced to the Sweet 16 of the NCAA Division II Tournament. Robinson-Griggs went on to earn her Master's degree in math education from Lesley University.


text:
THE SQL Server Blog Spot on the Web
Back in 2008, Marc Friedman of the SQL Server Query Processor Team wrote a blog entry entitled "Distinct Aggregation Considered Harmful", in which he shows a way to work around the poor performance that often results simply from adding the keyword DISTINCT to an otherwise perfectly reasonable aggregate function in a query. This post is an update to that, presenting a query optimizer enhancement in SQL Server 2012 RC0 that reduces the need to perform the suggested rewrite manually. First, though, it makes sense for me to cover some broader aggregation topics in general.
There are two main strategies to extract distinct values from a stream of rows. The first option is to keep track of unique values in a hash table. The second is to sort the incoming rows into groups and return one value from each group. SQL Server uses the Hash Match operator to implement the hash table option, and Stream Aggregate or Sort Distinct for the sorting option.
The optimizer tends to prefer the Hash Match Aggregate on larger rowsets, with fewer groups, where there is no reason to produce a sorted output, and where the incoming rows are not sorted on the DISTINCT expression(s). Larger inputs favour hash matching because the algorithm generally scales well (although it does require a memory grant) and can make good use of parallelism. Fewer groups are better for hashing because it means fewer entries in the hash table, and the memory needed to store unique values is proportional to the number of groups (and the size of the group). Hash matching does not require or preserve the order of the incoming row stream. The query and plan below show a Hash Match Aggregate building a hash table on values in the Quantity column:
FROM Production.TransactionHistory AS th
The standard Hash Match Aggregate is blocking: it produces no output until it has processed its entire input stream. If we restrict the number of rows using TOP or SET ROWCOUNT the aggregate can operate in a streaming fashion, producing new unique values as soon as they are encountered. This streaming mode is known as Flow Distinct, and is activated depending on the estimated number of unique values in the stream. In the example above, the estimated number of output rows from the Hash Match Aggregate is 455 (based on the statistics on my test machine). Limiting the query to 455 or fewer rows using TOP or ROWCOUNT produces a Hash Match Aggregate running in Flow Distinct mode:
This plan is interesting because it limits the output to 10 rows without including a specific TOP operator for that purpose. TOP is generally preferred to ROWCOUNT for the reasons set out in the Books Online topic "Limiting Result Sets by Using TOP and PERCENT". Ignore the part that says "because SET ROWCOUNT is used outside a statement that executes a query, its value cannot be used to generate a query plan for a query" – we have just seen how it can affect a query plan.
For completeness, this is the TOP query and execution plan:
Performing a DISTINCT is the same as applying a GROUP BY on every expression in the SELECT list. A stream of rows sorted on these GROUP BY expressions has the useful property that all rows with the same GROUP BY values appear together, so all we need to do is output a row of GROUP BY keys each time a change occurs. If the required order can be obtained without an explicit sort, the query plan can use a Stream Aggregate directly:
This query plan shows an ordered scan of an index on the ProductID column, followed by a Stream Aggregate with a GROUP BY on the same column. The Stream Aggregate emits a new row each time a new group is encountered, similar to the Hash Match Aggregate running in Flow Distinct mode. This operator does not require a memory grant because it only needs to keep track of one set of GROUP BY expression values at a time.
The third alternative is to perform an explicit Sort followed by a Stream Aggregate. The optimizer can often collapse this combination into a single Sort operating in Sort Distinct mode:
FROM Production.Product AS p
To see the original Sort and Stream Aggregate combination, we can temporarily disable the GbAggToSort optimizer rule that performs this transformation:
DBCC RULEOFF('GbAggToSort')
DBCC RULEON('GbAggToSort')
The query plan now shows a regular (non-distinct) Sort followed by the Stream Aggregate:
The DISTINCT keyword is most commonly used with the COUNT and COUNT_BIG aggregate functions, though it can be specified with a variety of built-in and CLR aggregates. The interesting thing is that SQL Server always processes distinct aggregates by first performing a DISTINCT (using any of the three methods shown previously) and then applying the aggregate (for example COUNT) as a second step:
COUNT_BIG(DISTINCT p.Color)
One thing worth highlighting is that COUNT DISTINCT does not count NULLs. The previous query that listed the distinct colours from the Product table produced 10 rows (9 colours and one NULL), but the the COUNT DISTINCT query here returns the value 9. The query plan uses a Distinct Sort to perform the DISTINCT (which includes the NULL group) and then counts the groups using a Stream Aggregate. The aggregate expression uses COUNT(expression) rather than COUNT(*), which eliminates the NULL group produced by the Distinct Sort. This second example shows a Hash Match Aggregate performing the DISTINCT, followed by a Stream Aggregate to count the non-NULL groups:
COUNT_BIG(DISTINCT th.Quantity)
So far, the counting step has always been performed by a Stream Aggregate. This is because it has been a scalar aggregate – an aggregate without a GROUP BY clause – and SQL Server always implements scalar aggregates using Stream Aggregate (there would be no point using hashing since there will only be one group by definition). If we add a GROUP BY clause, the final COUNT is no longer a single (scalar) result, so we can get a plan with two Hash Match Aggregates:
In this plan, the rightmost aggregate is performing the DISTINCT, and the leftmost one implements the COUNT (with GROUP BY).
The decision to always implement distinct aggregates as separate DISTINCT and aggregate steps makes life easier for the optimizer. Separating the two operations makes it easier to plan and cost parallelism, partial aggregation, combining similar aggregates, moving aggregates around (for example pushing an aggregate below a join) and so on. On the downside, it creates problems for queries that include multiple distinct aggregates, or combine a single distinct aggregate with an 'ordinary' aggregate.
As you probably know, there is no problem combining multiple ordinary aggregations into a single operator:
The single Hash Match Aggregate operator computes the three separate aggregates concurrently on the incoming stream.
This next query does a similar thing, but with three DISTINCT aggregations on the stream:
COUNT_BIG(DISTINCT th.ProductID),
COUNT_BIG(DISTINCT th.TransactionDate),
It produces a more complex query plan:
The issue here is that once a DISTINCT has been performed on a stream, the stream no longer contains the columns necessary to perform the other DISTINCT operations. To work around this, the optimizer builds a plan that reads the source stream once per DISTINCT, computes the aggregates separately, and then combines the results using a cross join (which is safe because these are all scalar aggregates, guaranteed to produce one row each). The same basic pattern is employed if the query contains an outer GROUP BY clause, but instead of cross joins there will be inner joins on the GROUP BY columns.
More often than not, the source of rows will not be an unrestricted table scan. Where the source is complex (and therefore expensive to re-run for every distinct aggregate) or where a filter significantly reduces the number of rows, the query optimizer may choose to Eager Spool the source rows and replay them once per distinct aggregate:
th.ActualCost < $5
This is a plan shape that you are likely to encounter in the real world, since most queries will likely have a filtering condition or have a row source that is more complex than a simple scan of an index or table. For queries over larger tables than Adventure Works provides, this plan is likely to perform poorly, as you might expect. Aside from the obvious concerns, inserting rows into a spool has to be performed on a single thread (like all data modification operations in today's SQL Server). Another limitation is that the spool does not support parallel scan for reading, so the optimizer is very unlikely to restart parallelism after the spool (or any of its replay streams). In queries that operate on large data sets, the parallelism implications of the spool plan can be the most important cause of poor performance.
If SQL Server were able to perform the whole COUNT DISTINCT aggregate in a single operator (instead of splitting the DISTINCT and COUNT into two steps) there would be no reason to split plans with spools as seen above. This could not be done with a Stream Aggregate since that operator requires the stream to be sorted on the DISTINCT expression, and it is not possible to sort a single stream in more than one way at the same time.
On the other hand, the Hash Match Aggregate does not require sorted input (it keeps the distinct values in a hash table, remember), so it should be possible to design a Hash Match Aggregate that computes COUNT DISTINCT in a single operation. We can test this idea with a User-Defined Aggregate (UDA) – SQL Server 2008 required:
using System;
using System.Collections.Generic;
using System.Data.SqlTypes;
using System.IO;
using Microsoft.SqlServer.Server;
IsInvariantToDuplicates = true,
IsInvariantToNulls = true,
IsInvariantToOrder = true,
IsNullIfEmpty = false,
MaxByteSize = -1
public struct CountDistinctInt : IBinarySerialize
// The hash table
private Dictionary<int, object> dict;
// Recreate the hash table for each new group
public void Init()
dict = new Dictionary<int, object>();
// Ignore NULLs, store key values in the hash table
public void Accumulate(SqlInt32 Data)
if (!Data.IsNull)
dict[Data.Value] = null;
// Merge partial aggregates
public void Merge(CountDistinctInt Group)
foreach (var item in Group.dict.Keys)
dict[item] = null;
// Return the DISTINCT COUNT result
public int Terminate()
return dict.Count;
// Required by SQL Server to serialize this object
void IBinarySerialize.Write(BinaryWriter w)
foreach (var item in dict.Keys)
// Required by SQL Server to deserialize this object
void IBinarySerialize.Read(BinaryReader r)
var recordCount = r.ReadInt32();
dict = new Dictionary<int, object>(recordCount);
for (var i = 0; i < recordCount; i++)
dict[r.ReadInt32()] = null;
This UDA does nothing more than create a hash table, add (non-NULL) values to it, and return the count of values when aggregation is complete (the hash table takes care of duplicates). There is a little extra infrastructure code in there to allow SQL Server to serialize and reconstruct the hash table when needed (and merge partial aggregates) but the core of the function is just four lines of code. The example above only aggregates integer values, but it is easy to extend the idea to include other types. Anyway, armed with the integer and date time versions of the UDA, I now return to the multiple-distinct-count query that caused all the spooling, with COUNT DISTINCT replaced by UDA references:
Instead of all the Eager Spools, we now get this query plan:
You may be surprised to see that the three distinct count aggregates are being performed by a Stream Aggregate; after all I just finished explaining why a Stream Aggregate could not possibly do what we want here. The thing is that all CLR UDAs are interfaced to query plans using the Stream Aggregate model. The fact that this UDA uses a hash table internally does not change that.
The Sort in this plan is there to ensure that groups of rows arrive at the 'Stream Aggregate' interface in the required GROUP BY order. This is so SQL Server knows when to call the Init() and Terminate() methods on our UDA. The COUNT DISTINCT aggregation that is happening inside the UDA for each group could not care less about ordering, of course. (In case you were wondering, yes, the UDA produces the same results as the original T-SQL code).
The point here is to demonstrate that multiple DISCOUNT COUNT operations can be performed within a single operator, not that UDAs are necessarily always a great way to do that in general. As far as performance is concerned, the original spool query runs in around 220ms, and the UDA settles down around 160ms which isn't bad, all things considered.
We can also improve the performance of the T-SQL query by rewriting it to avoid the spools by scanning the source table three times (this executes in around 75ms). Part of the problem here (to go with the spool plan issues mentioned earlier) is that the optimizer assumes that all queries start executing with an empty data cache, and it does not account for the fact that the three scans complete sequentially, so the pages are extremely likely to be available from memory for the second and third scans. The rewrite and query plan are below.
Stream AS
FROM Production.TransactionHistory AS th
th.ActualCost < $5
CountDistinctProduct AS
COUNT_BIG(DISTINCT ProductID) AS c
FROM Stream
CountDistinctTransactionDate AS
COUNT_BIG(DISTINCT TransactionDate) AS c
CountDistinctQuantity AS
COUNT_BIG(DISTINCT Quantity) AS c
FROM CountDistinctProduct AS p
JOIN CountDistinctTransactionDate AS d ON
d.TransactionType = p.TransactionType
JOIN CountDistinctQuantity AS q ON
q.TransactionType = d.TransactionType
Marc Friedman's blog post presented a way to rewrite T-SQL queries that contain a single distinct aggregate and one or more non-distinct aggregates so as to avoid spools or reading the source of the rows more than once. The essence of the method is to aggregate first by the GROUP BY expressions in the query and the DISTINCT expressions in the aggregate, and then to apply some relational math to aggregate those partial aggregates to produce the final result. I encourage you to read the full post to see all the detail, but I will quickly work through an example here too:
COUNT_BIG(DISTINCT frs.SalesTerritoryKey)
FROM dbo.FactResellerSales AS frs
JOIN.dbo.DimProduct AS dp ON
frs.ProductKey = dp.ProductKey
This query contains a regular SUM aggregate and a COUNT DISTINCT, so as expected the query optimizer produces a plan with an Eager Spool (click to enlarge):
To the left of the spool, the top branch performs the DISTINCT followed by the COUNT per group, and the spool replay on the lower branch of the plan computes the SUM per group. Finally, the two branches join on the common GROUP BY expression (EnglishProductName).
The rewrite starts by grouping on EnglishProductName (the GROUP BY expression) and SalesTerritoryKey (the DISTINCT expression) to produce a partial aggregate:
SUM(frs.SalesAmount) AS ssa
FROM dbo.DimProduct AS dp
JOIN dbo.FactResellerSales AS frs ON
This query contains no distinct aggregates, so we get a plan with an ordinary join and and ordinary SUM aggregate:
To produce the results specified by the original query, we now need to SUM the partial SalesAmount sums, and COUNT (ignoring NULLs) the SalesTerritoryKey values. The final rewrite looks like this:
WITH PartialAggregate AS
SUM(frs.SalesAmount) AS ssa
FROM dbo.DimProduct AS dp
JOIN dbo.FactResellerSales AS frs ON
frs.ProductKey = dp.ProductKey
FROM PartialAggregate AS pa
GROUP BY pa.EnglishProductName
The query plan adds another layer of aggregation on top of the partial aggregate plan above:
This plan avoids the Eager Spools seen earlier and improves execution time from 320ms to 95ms in this example. On larger sets, where parallelism becomes important and the spools might need to use physical tempdb storage, the gains are likely to be much larger.
The good news is that SQL Server 2012 RC0 adds a new optimizer rule (ReduceForDistinctAggs) to perform this rewrite automatically on the original form of the query. This is particularly good because the rewrite, while ingenious, can be somewhat inconvenient to do in practice, and all too easy to get wrong (particularly ensuring that NULL partially-aggregated groups are handled correctly). The new optimizer rule was not available in CTP3, so you will need RC0 to see SQL Server turn this T-SQL:
…directly into this query plan:
This transformation is only valid for queries with a single distinct aggregate (and at least one non-distinct aggregate of course). If your query contains multiple distinct aggregates, it may not help you directly, though you may be able to refactor the T-SQL to take advantage.
If you want to see SQL Server 2012 RC0 produce the Eager Spool plan instead (created by the long-standing ExpandDistinctGbAgg rule), disable the new rule with:
DBCC RULEOFF ('ReduceForDistinctAggs')
…and then recompile. Don't forget to enable it again afterward using RULEON or by reconnecting to the server.
Even with the new rule enabled, you may still see the spool or multiple-scan plan from time to time. As always, the optimizer may explore many alternative plan forms and choose the one that looks cheapest. In some cases, the optimizer may still choose the spool plan, though it probably won't be right to do so…
Thanks for reading; please consider voting for the following Connect item (to allow CLR UDA hash aggregates). Thank you.
© 2011 Paul White
Twitter: @SQL_Kiwi
Email: firstname.lastname@example.com
If you would like to receive an email when updates are made to this post, please register here
Subscribe to this post's comments using
I think is it a very good idea to encourage Connect item voting. If you did a post on the top 10 most important Connect items from your point of view I certainly would see them through.
Great post, as usual!
Nice implementation of CLR UDA also. This is something I never had the chance to practise, but seems very promising.
Thanks for sharing, Paul.
Hi Paul, that is a very nice post, you have my vote in the connect item.
What about a solution using the rank_dense to calculate the distinct count? I mean...
SUM(frs.SalesAmount) SUMSalesAmount,
DENSE_RANK() OVER(PARTITION BY dp.EnglishProductName ORDER BY frs.SalesTerritoryKey) AS CountDistinctSalesTerritoryKey
frs.ProductKey = dp.ProductKey
dp.EnglishProductName, frs.SalesTerritoryKey
SELECT EnglishProductName,
GROUP BY EnglishProductName
This is something that works since SQL2005...
Hi Fabiano,
Yes, I think someone left a similar suggestion on Marc's post; it's the same idea (partial aggregation) of course, just implemented using a different syntax.
If there is a downside to the DENSE_RANK, it is that it will always need full sort of the stream, whereas the 2012 transformation or manual partial aggregation can use hashing.
Eliminating the sort in favour of a hash will not always be optimal, perhaps, but it would be nice to give UDAs the option - so thanks for the vote on that.
Terrific post, as usual... I probably learned at least a dozen new things by reading it. Awesome. Thanks, Paul.
Awesome! Thanks for the very informative post!
I'm guessing that there's no way this feature is going to appear somehow in older versions of SQL Server, such as 2005 or 2008, so I guess I should start looking at queries where I'm doing similar things and see if I can re-write them in the more optimal manner.
Hi Kiran,
I would agree there is next to no chance of the new transformation being back-ported, so those of us not adopting 2012 the moment it hits the shelves are left will rewriting queries the hard way.
Great article!
Thanks very much Marc - your original article was one that I have read many times over the years, so I'm pleased (and relieved) that you like this follow-on.
Hi Paul,
Great post! I focused on the UDA since the alternatives didn't work well in my case. I have a slow query that goes like this: select a,b,c,d,e,f,g, sum(h), count(distinct i), count(distinct j), count(distinct k). The count distinct was killing. 2min 20secs to run the query. By commenting all three count(distinct) it dropped to 50secs. By replacing count distinct with the UDA CountDistinctInt method, it went to 55secs. So from 2:25 to 0:55 it is a huge difference. Live saver!
Can you please clarify your remark regarding inserts into a spool being single-threaded "like all data modification operations in today's SQL Server".
I've seen multiple times an INSERT being parallelized by the optimizer in SQL Server 2008 R2?
(Like your blog)
INSERT, UPDATE, DELETE, and MERGE (DML) always use non-parallel iterators (e.g. Clustered Index Insert) to change data. The query plan may use parallelism elsewhere (i.e. in the same plan), but the modifications themselves do not use parallelism.
SQL Server 2014 introduces parallelism for SELECT INTO, and parallel index rebuilds (DDL) have been supported for a long time.
So if I see multiple RUNNING instances of an UPDATE in Activity Monitor (for the same SPID), does it mean it's just the WHERE clause of the statement that is being executed in parallel and not the actual data modification part?
Yes. Activity Monitor has many weaknesses; the way it displays parallel threads is just one of them. If a query plan operator doesn't have the little yellow parallelism icon, it isn't executed using multiple threads.
Thanks much.
You should seriously consider writing a book. This level of detail can be found nowhere else on the internet or in print. It'll get sold out before it hits the shelves :)


text:
Some 2500 years ago the Buddha noted, "To keep the body in good health is a duty, for otherwise we shall not be able to trim the lamp of wisdom, and keep our minds strong and clear."
Unicity strives to make life better by developing products that promote harmony between body and mind. One such product is UNICITYBALANCE, a natural weight loss supplement that increases energy levels and burns fat. It has an enduring, medically-proven track record of success in helping people gain control of their bodies, and ultimately their lives.
A Balanced Life
Balance has an enduring, medically-proven track record of success in helping you reach the prime of your life. Based on the patented, clinically proven Bios Life formula, taking Balance correctly and consistently will help:
- Curb hunger so you eat less and feel full longer
- Promote optimal fat loss
- Slow glucose absorption into the blood stream
- Offset the carbohydrates you eat
- Support healthy cholesterol and triglyceride levels
These benefits will empower you to live the prime life and reach your highest aspirations.
How It Works
Glucose is the primary source of energy for the body. As you eat, your body sees a sharp increase in glucose levels. To manage this influx of energy, your body must produce a significant amount of insulin. When it does so, your glucose levels are reduced relatively quickly, but your insulin levels stay high. This, unfortunately, eliminates the need for the body to tap into its fat reserves for energy.
When taken before a meal, Balance combats this issue by providing a more mild release of both glucose and insulin into your system. Then, as those levels reduce, your body can finally use its fats cells for energy—burning away those fat reserves.
Two Formulas
Each formulation of Balance is a quality product designed to help promote weight loss, balance digestion, and maintain healthy cholesterol and glucose levels. However, the variation in formulas allows the benefits of the product to be tailored to the needs of different individuals.
Balance's Bios Life Formula for Healthy Cholesterol Support is geared more specifically for those individuals looking to lose weight and has additional cholesterol management benefits. For those looking to lose pounds and inches, as well as achieve an overall balance to their life, Balance for Cholesterol is an excellent choice.
Balance's Bios Life Formula for Healthy Glucose Support is designed to help people who are focused on maintaining healthy glucose levels. While this formula will still help with weight management and supporting healthy cholesterol levels, those who are concerned about maintaining their blood glucose levels will find a more tailored experience with Balance for Glucose.
With almost 30 years since the original formula hit the market, Balance has continually been improved upon, each generation producing better results than the last.
Bios Life Diet: Introduced in 1986, Bios Life Diet was the first generation of Balance. It was created as a weight management supplement, and also helped by lowering the glycemic index of foods and providing satiety. Bios Life Diet was a game-changing product in the making.
Bios Life 2: A decade later, Unicity created Bios Life 2. It quickly became the only non-prescription product in the United States that obtained patents for its cholesterol-lowering ingredients. And healthcare and medical professionals around the world continue to recommended Bios Life 2 to their patients.
Bios Life Complete: In 2006, Unicity researchers identified three additional approaches for lowering harmful cholesterol levels and combined these methods with the effectiveness of Bios Life 2—creating Bios Life Complete. No other natural product has had the same success in reducing harmful cholesterol levels.
Start Now
To order a 30-day supply of Balance, click START NOW below.


text:
(c) Pocumtuck Valley Memorial Association, Deerfield MA. All rights reserved.
Contact us for information about using this image.
Harriet Martineau (1802-1876) was an English author who came to the United States in 1834 for a two year study. She published Society in America (1837) after she returned to England. The book was mainly a critique of America's failure to live up to its democratic principles. Martineau was especially concerned about the treatment of women and called one chapter The Political Non-existence of Women. She claimed that women were treated like slaves, since they were "given indulgence rather than justice". This sentiment was later echoed by the American suffragette Lucy Stone. This article states that Martineau seems to have fallen out of favor because she expressed her anti-slavery opinions. The author of the article cannot see why this should be the case and commends her on her views. The Greenfield Gazette and Franklin Herald was the newspaper in Greenfield, Massachusetts, from June 26, 1827 to June 27, 1837. It changed its name to the Gazette & Mercury.
top of page
Send an e-Postcard of this object
See Also...
Excerpt "On the Condition of Women in the United States" article from The Liberator newspaper
"Miss Lucy Stone" article from Gazette and Courier newspaper
"Anti Slavery Lecture" article from Greenfield Gazette and Franklin Herald newspaper
Home | Online Collection | Things
To Do | Turns
Exhibit | Classroom | Chronologies | My
About This Site | Site Index | Site Search | Feedback


text:
Orlando J. 'Chick' Ciccone Sr., 77
'Chick' Ciccone Sr., 77, of Fairview St., passed away Saturday, June 27, 2009.
Born in Providence, he was the son of the late Joseph F. and Angelina (Grieco) Ciccone and had been the husband of Rosemarie (Sciotto) Ciccone for 52 years.
Mr. Ciccone was the chef and owner of Cozy Catering for 31 years.
He was a member of the Jamestown Shores Association and the St. Mark Knights of Columbus.
He was the father of Orlando J. Ciccone, Jr. and his wife Cheryl, Claudia J. Turner and her husband John; grandpapa of Amanda and Stephanie; and brother of Joseph Ciccone and Marie Viticonte.
A Mass of Christian Burial was held at St. Mark Church and burial was in St. Francis Cemetery, Pawtucket.
Donations may be made to JEMS, 11 Knowles Ct., Jamestown, RI 02835 or to the Jamestown Fire Department, 50 Narragansett Ave., Jamestown, RI 02835.
For online guestbook, visit www.mem.com.


text:
Brian R. Cahn was a member of the Plaintiff's legal team that secured a $43.5 million jury verdict against a nursing home and its owner in Rome, Georgia. To date, this remains the largest award for nursing home negligence in the State of Georgia.
Address: 5 South Public Square, Cartersville, GA 30120
Phone: (770) 490-2371
Injured? Trust our nationwide personal injury lawyers at Pintas & Mullins Law Firm to represent you through the difficult matters. Call us today to learn more.
Address: 368 W. Huron Street, Suite 100, Chicago, IL 60654
Phone: (800) 297-4555


text:
Meningococcal vaccine: A vaccine to prevent meningococcal infection, including meningococcal meningitis, an inflammation of the membranes that cover the brain and spinal cord. Meningococcal infection is caused by the bacterium Neisseria meningitidis and can be fatal.
A meningococcal vaccine was licensed by the US Food and Drug Administration in 1982. The vaccine contains 50 µg of purified polysaccharide from each of four serogroups (A, C, Y, and W-135) which account for a large share of all cases of meningococcal infection. The vaccine is given routinely to all military recruits and is recommended for high-risk groups such as persons with asplenia (no spleen) and those who plan to travel to areas where there is an epidemic of meningococcal disease.
College students and military recruits who live in dormitories and barracks, respectively, are unusually susceptible to meningococcal meningitis. Meningococcal disease strikes almost 4 of every 100,000 college freshman in dorms. The CDC has recommended that college freshmen therefore be vaccinated against this type of bacterial meningitis. College students who live on campus have triple the risk of acquiring meningococcal infection compared with their peers who live off-campus. Among the factors are the relative crowding associated with dormitory residence, alcohol-related behaviors, and exposure to tobacco smoke. The same factors make young adults who are military recruits at higher risk for meningococcal meningitis and provide the basis for recommendations that they, too, receive the vaccine.


text:
STOCKTON - By the same narrow margin that won him the job seven months ago, Superintendent Steve Lowder received a contract extension, a raise and more job security at Tuesday night's Stockton Unified school board meeting.
STOCKTON - By the same narrow margin that won him the job seven months ago, Superintendent Steve Lowder received a contract extension, a raise and more job security at Tuesday night's Stockton Unified school board meeting.
The board voted 4-3 to increase Lowder's salary from $225,000 to $230,000. His contract now runs through 2016-17, not 2013-14. And if the board decides to remove him from office early, it will have to pay him 12 months' worth of salary, not six.
The no votes on the reworked contract came from Sara Cazares, David Varela and Colleen Keenan, who joined the board just last month. Last year, Cazares, Varela and former board member Jose Morales voted against the hiring of Lowder, 61.
"We did what we had to do," board President Gloria Allen said of the changes to Lowder's contract. "We need to move the district forward. We're on a roll."
Varela and Cazares both expressed reservations about the lengthening of Lowder's buyout, as well as the number of years added to his contract.
"I do think he has tried to move us forward in terms of achievement and school site progress," Cazares said. "I'm really just fiscally concerned. ... I voted the way I did simply because I'm concerned about the budget."
It was Lowder who asked for the three-year contract extension through 2016-17, along with the $5,000-a-year bump in pay, which gives him the same salary as predecessor Carl Toliver, who retired last year.
The superintendent said he asked for the extension because he believes Stockton Unified will benefit from long-term stability in its top administrative position. When Lowder took charge in June, it marked the district's sixth change of leadership in a span of less than seven years.
"From my perspective, it's about projecting stability and longevity of leadership," Lowder said. "To me, it's really important. This is the foundation piece. This is so important. If we're in flux, worried if that person is going to be here, you don't know if you should buy into some of those initiatives."
Only one speaker from the community weighed in on Lowder's extension request before the board voted.
"I'm very concerned," said Chuck Walker Sr., 67, who identified himself as a retired Stockton Unified senior computer operator. "Seven months into a contract, a person asks for a contract extension and a raise. I know the (classified workers), they have a six-month probationary period where they can be let go for any reason."
Allen said one of Lowder's biggest strengths has been his ability to establish calmer relations with the unions that represent Stockton Unified's workers.
"I like the fact he works well with unions," Allen said. "He's gotten some issues settled with them. Now we're working together."
Contact reporter Roger Phillips at (209) 546-8299 or firstname.lastname@example.com. Visit his blog at recordnet.com/phillipsblog.


text:
ISO 8601 - The Date and Time Standard
Tex Texin - Progress Software Corporation
To achieve interoperability on data that includes date and time values, software developers often look to ISO 8601, the relevant ISO standard, as a guide for implementation. However, this standard has many pitfalls that plague innocent developers. Although its problems are not limited to the arena of internationalization, 8601 includes some particular challenges for international applications. This session will highlight some of the contents and the problems with using ISO 8601, and recommend some alternative approaches.
|When the world wants to talk, it speaks Unicode
International Unicode Conferences are organized by Global Meeting Services, Inc., (GMS).
GMS is pleased to be able to offer the International Unicode Conferences under an exclusive
license granted by the Unicode Consortium. All responsibility for conference finances and
operations is borne by GMS. The independent conference board serves solely at the pleasure
of GMS and is composed of volunteers active in Unicode and in international software
development. All inquiries regarding International Unicode Conferences should be addressed
to firstname.lastname@example.com.
Unicode and the Unicode logo are registered trademarks of Unicode, Inc. Used with permission.
12 December 2000, Webmaster


text:
Search our database of handpicked sites
Looking for a great physics site? We've tracked down the very best and checked them for accuracy. Just fill out the fields below and we'll do the rest.
You searched for "electromagnetic waves", age: [NOT-FOUND], knowledge: Intermediate
We found 16 results on physics.org and 0 results in our database of sites
(of which 0 are Websites, 0 are Videos, and 0 are Experiments)
Search results on physics.org
What is a gravitational wave?
How are waves reflected?
What is the Higgs Boson?
Time Twins
CSI: Geophysics
What is superposition?
What is proton therapy?
Could your phone harm your health?
What is cosmic inflation?
Listening to stars twinkle
How does goal-line technology work?
How do 'invisibility cloaks' work?
Keep your ears peeled
Could we ever go back in time?
Setting Hearts Aflutter
What is string theory?


text:
His Royal Highness The Earl of Wessex has become the first member of the Royal Family to visit the Duke of Edinburgh in hospital today.
The Earl of Wessex, the youngest child of Her Majesty and the Duke of Edinburgh, arrived at around 3.30pm today to visit his father today in hospital on the occasion of his 92nd birthday.
Prince Edward apparently drove himself to the hospital and parked his car outside.
This is the 5th day that Prince Philip has spent in hospital and until today, he hadn't received any visitors. He was admitted on Thursday and is expected to remain until next week, recovering from, and receiving the results of, exploratory surgery which took place on Friday afternoon.
Gun salutes took place across the country today to mark the Duke of Edinburgh's 92nd birthday. The National Anthem was also played on BBC Radio at 7am and 8am this morning.
Her Majesty is also tipped to be planning to visit the Duke of Edinburgh today on his birthday.
There have been no other announcements about the Duke of Edinburgh's health recently.
The Earl of Wessex stayed for just 20 minutes before leaving, driving his own car. When asked about how the Duke of Edinburgh was, the Earl of Wessex replied, 'well thank you'.
photo credit: RAMMuseum via photopin cc


text:
BOGOTA, Colombia (AP) — Colombia's No. 2 rebel group on Tuesday freed a Canadian mining executive it kidnapped in January and whose release the government had demanded as a condition for opening peace talks.
Gernot Wober, 47, was freed in the turbulent northern state where he was seized Jan. 18 while visiting a gold-mining camp at a concession his company had purchased and was exploring.
The National Liberation Army, known by its Spanish initials ELN, had demanded Wober's employer halt exploration at the Snow Mine property in Sur de Bolivar state, claiming the land was stolen from local communities. Last month, Braeval Mining Corp. said it was pulling out of Colombia.
Wober, the Toronto-based company's vice president for exploration, was handed over to the International Committee of the Red Cross and a Jesuit priest, the Rev. Francisco de Roux, in a jungle rendezvous and flown by helicopter to the steamy Magadalena River city of Barrancabermeja.
He was to continue on to Bogota, said Red Cross country delegation chief, Jordi Raich. He said a Red Cross doctor examined Wober and "it seems he's in good shape."
TV images showed Wober in dark pants and a green short-sleeved shirt on the Barrancabermeja airport tarmac. He did not speak to reporters.
De Roux said by phone that the operation went off without a hitch and that Wober reported that "he had had to walk a lot but was treated well."
Immediately following Wober's kidnapping, Colombia's army had said it was close on the heels of the rebel band that held him.
A Braeval company spokesman, Chris Eby, would not say whether a ransom was paid for Wober. He did say, however, that the company was very relieved
"Gernot does have a wife and a young child, and we have every expectation that they want to be united as quickly as possible," Eby said.
The ELN's commander, Nicolas Rodriguez, said in a statement posted on the group's website that Wober's release was "a humanitarian act."
"We hope this effort will contribute to a healthy exchange and contribute to peace in Colombia," he said, adding: "We want to underscore that our message with this successful outcome shows that negotiated solutions to conflicts are possible."
Wober was the only foreigner known to be held by a Colombian rebel group.
The biggest rebel movement, the Revolutionary Armed Forces of Colombia, or FARC, announced last year that it was ending ransom kidnapping in what turned out to have been a condition for peace talks launched in Cuba in November. The FARC, whose estimated 8,000 fighters make about three times more numerous than the ELN, freed its last known foreign captives in November. It had held the four Chinese oil workers for 17 months.
There have been at least two past frustrated attempts to negotiate peace with the ELN.
It was formed in 1964, the same year the FARC was born. Both are an outgrowth of rural peasant movements that sought a more equitable distribution of Colombia's land.
Associated Press writers Frank Bajak in Lima, Peru, and Charmaine Noronha in Toronto contributed to this report.


text:
VANCOUVER, BC - Vancouver Whitecaps FC midfielder Gershon Koffie has been given a one-match suspension and fined an undisclosed amount today by the MLS Disciplinary Committee for endangering the safety of his opponent, Seattle Sounders FC midfielder Andy Rose, in the 91st minute of the game on August 18, 2012. Koffie has also been fined an additional amount for making an improper gesture in the 91st minute.
Koffie will serve his suspension on Saturday night when Whitecaps FC take on Portland Timbers FC at JELD-WEN Field in Portland, Oregon, at 7:30 p.m. PT. TV: Sportsnet Pacific, Sportsnet ONE RADIO: TEAM 1410 and teamradio.ca ONLINE: live.mlssoccer.com MOBILE: bell.ca/mobiletv.