text:
Spill Is A Reminder Of The Need To Reduce Our Reliance On Oil
Beijing, China – Nevada Senator Harry Reid issued the following statement on the first anniversary of the BP oil spill, which began in the Gulf of Mexico on April 20, 2010. Reid is in China this week, leading an historic delegation of 10 U.S. Senators to clean-energy sites across the country and to discussing other pressing matters with Chinese government and business leaders.
"The damage of BP's devastating oil spill will be felt for years to come. For the families of the 11 workers killed in the explosion, no policy change or business decision can replace lost loved ones.
"Some of the other scars of that spill will be visible — in the water and wildlife and throughout the environment. But we also will endure economic pain — in the efforts of small businesses and communities to rebuild.
"These environmental and economic impacts remind us of one of the most important lessons from this tragedy: the United States must reduce our dependence on oil.
"We must invest more quickly and more significantly in job-creating American clean energy projects that will strengthen our economy, environment and national security, as well as setting long-term policies to promote clean alternatives to oil. At this critical time in the recover of our economy, we cannot afford to keep giving huge tax breaks to big oil companies that even some of their executives have admitted they don't need.
"During our Congressional delegation's week-long trip to China, I am looking forward to learning more about how the Chinese are successfully investing in renewable energy, to see what we can do most effectively in the United States to encourage rapid investment in this important sector of our economy. Our nation has vast renewable energy resources, especially in states like Nevada, that can solve our environmental, economic and national security problems but only if we don't make the mistakes of the past and choose instead to move forward to a clean energy future."


text:
Ask a Lawyer and Get Answers to Your Legal Questions
DearCustomer- There is no legal term "regular debt". A debt is a debt however there are secured and unsecured debts. A real estate mortgage or car loan would be examples of secured debts and a credit card debt or student loan would be unsecured debts. A student loan does not change in nature when it goes into default so it is the same debt as before.
You can be sued for the student loan debt just as you can a credit card or any other debt. Most student loans cannot be discharged in bankruptcy just as other types of debts such as child support. Beyond that I'm not sure how else to explain my answer. I'm just not certain how you may have thought the student loan became something different after it went into default.
Dave Kennett
Well the bankruptcy will not help the student loan debt since virtually no student loans are dischargerable. You definitely should check with your bankruptcy attorney to see if there is a possibility that it could be discharged.

subset: commoncrawl


text:
You have no items in your shopping cart.
Vitamin B3 (Niacinamide) Capsules
Niacinamide (Vitamin B3), though closely related to Niacin, does have differing effects. Each of them plays an important role in the metabolism of energy in that they may be converted into coenzymes.
Of all of the B vitamins, Niacin is considered to be one of the most stable. It is water soluble and vital in sustaining life. It resists the effects of those elements which may cause erosion such as wind, heat, light, alkali, and acids.
Serving Size & Timing
Niacinamide is recommended to be taken in serving sizes of 1 capsule to be consumed once daily, preferably with a meal (since it increases the production of HCL, which aids digestion further). Niacinamide can be dangerous in larger servings, so it is best to avoid servings larger than a single gram until consultation with a physician is possible.
Nutritional Information
Supplement FactsServing size: 1 Capsule
Serving per container: *
|Amount Per Serving
|% Daily Value**
|Niacin (as Niacinamide)... 650 mg
** Based on 2,000 calorie diet
Gelatin Capsule or Vegetarian Capsule
Sugar, soy, dairy, yeast, gluten, corn and additives.
As a dietary supplement, take 1 capsule daily with meals, or as directed by physician.
This vegan-friendly supplement is considered pharmaceutical grade and has no fillers of any kind present in it.
As long as suggested serving sizes are adhered to, few side effects will occur. These side effects will range from irritants such as redness and rash to other minor conditions like headaches. If taking drugs to prevent seizure, it is best to avoid this supplement. Taking amounts larger than the recommended dose can have serious effects that can sometimes be fatal, including stomach ulcers and liver damage. Discontinue use or lower intake if any of these symptoms begin to develop. It is always best to talk to a doctor before taking a supplement such as this.
This is a capsuled product.
Customer Reviews
I am very satisfied with this product. It does not cause a niacin flush and I have been benefiting from it in a great way in order to balance my overall intake of the B vitamins. *
On 9/19/2017 Estelle said...
So good to be able to buy a pure product like this at such a reasonable price. *
On 3/26/2017 Kathryn said...
This is a very convenient and digestible delivery system for Niacinamide. I have made it part of my supplement program. *
On 1/3/2017 Jay said...
I can feel the effects and no flush!!!!*
On 9/7/2016 Charles said...
These are great quality and are a good value. *
On 8/21/2016 Jordan said...
Good product, Niacinamide is a very helpful supplement.*
On 4/30/2016 Brandon said...
*NOTE: These statements have not been evaluated by the Food and Drug Administration. This product is not intended to diagnose, treat, cure or prevent any disease.
**DISCLAIMER: There is no guarantee of specific results and results can vary.


text:
Woonsocket, R.I. – CVS Caremark Corp. on Tuesday raised its profit forecast for the year on Tuesday, amid better-than-expected profit. Net income for the quarter ended Sept. 30, 3013, grew 25% to $1.25 billion, compared to $1 billion in the same quarter the prior year.
Net revenues rose 5.8% to $32 billion compared with the year-ago period.
CVS cited strong performance in the retail pharmacy and pharmacy services segments as helping drive net revenue growth.
"Our third quarter results reflect strong operating performance across the enterprise," said Larry Merlo, president and CEO of CVS Caremark. "Adjusted earnings per share excluding the settlement gain exceeded the high end of our guidance by two cents per share, primarily reflecting better-than-expected third quarter performance in the PBM. We are well on track for another year of strong growth in 2013."
During the three months ended September 30, 2013, the company opened 49 new retail drugstores, and closed one retail drugstore. In addition, CVS relocated 22 retail drugstores. As of September 30, 2013, CVS operated 7,665 locations in 45 states, the District of Columbia, Puerto Rico and Brazil. These locations included 7,601 retail drug stores, 18 onsite pharmacies, 30 retail specialty pharmacy stores, 12 specialty mail order pharmacies and four mail service pharmacies.


text: I finally got my butt down to the guitar shop the other day, and tried some of these out. I had been putting it off for quite some time. I really couldn't find too much that was usefull with this switch. Only a *slight* tone change, with a very noticeable volume change. Am i missing somthing about this switch? it seems to me that people have been talking about it like it's the greatest thing in a fender since noiseless pickups.


text:
The Bombers held the first official full practice under interim head coach Tim Burke on Wednesday. It didn't look much different than a Paul LaPolice practice, but the players said it's different so I'll take their word for it.
Here's the latest on all things Bombers …
• Terence Jeffers-Harris got in trouble from his bosses in Saskatchewan for having too much glee on Twitter about LaPolice's firing. "I told him, 'At the end of the day, you're going to have your thoughts,' '' Riders head coach Corey Chamblin told The Leader-Post. "I can't change a man's thoughts. He needs to recognize that if he's a member of the Riders organization, what he does directly affects us as well. Putting it out to the public isn't the way to do it. If you want to say something to your brother or your sister, do it that way. He has to learn and we've talked about it. It will cease one way or the other.'' Jeffers-Harris seemed defiant, however. "It was a personal page of mine and I tweet my feelings,'' he told the L-P.
• This is the first time in Labour Day Classic history in which the Riders go in with a 3-5 record and the Bombers go in with a 2-6 mark. Just thought you should know.
• The Bomber offence had to run sprints after practice in the stifling heat and humidity because they went offside twice during the team portion. GM Joe Mack was even running them. He looks to be in tremendous shape, but shouldn't he be out scouting NFL camps instead of running sprints?
• Or, as Bomber fan Darrell Pomarenski pointed out following Wednesday's practice: "Maybe he's running them for all the mistakes he's made." Zing!
• Cornerback Jeremy McGee didn't practise on Wednesday due to a hamstring problem, but he didn't play last week so the roster won't be affected. Johnny Sears is still out with an unknown injury, so Demond Washington was at his cornerback spot on Wednesday.
• Chad Simpson took his usual Day 1 off and will probably do the same on Thursday. Burke expects him to practise before Sunday's tilt.
• A few links for you. Here is Paul Friesen looking at Gary Crowton going it alone with the offence, here's my piece on new de facto defensive co-ordinator Chip Garber, who isn't afraid to speak his mind, and what in the world is going on with Carl Volny?
Categories: Football


text:
A BIG community party in the park is being held at Pennington Flash.
The event will include live music from a number of bands including The Lottery Winners and Jade Alliance, dance performances, a funfair, face painting and arts and crafts.
There will also be stalls offering jewellery and cakes as well as free NHS health checks and benefits advice on Saturday between 11am and 4pm.
True Colours CIC has joined forces with My-Life CIC, Sensorial CIC and Skills CIC, who all support people in the community with varying disabilities, to organise the day which they hope will become an annual occasion.


text:
Business Law
Ask a Business Lawyer. Get Business Law Questions Answered ASAP.
The breached the settlement agreement but if the check is sent in a week rather than by overnight you would be entitled to interest - relatively minor. Delay in payment would probably not be considered sufficiently material to give you the option to consider the settlement voided and revive your original claim.
If this answer is responsive to your question, please accept it. That is how we are compensated. I would also be appreciated if you provided feed back on your view of the answer. Finally, if the answer was especially helpful you can provide a bonus. If I can be of further assistance or you have other questions in the future you can ask for me and reach me at this site.
This communication is not intended as legal advice. A local attorney should always be consulted for legal advice. No client/attorney relationship is intended or created by this communication.
I am pissed as their attorney reassured me it would be overnighted on Monday. So long story short I stayed home on Tuesday, Wednesday, and Thursday. Today I found out that it really has not even been mailed. I had several days wasted. Can I still except the check, but if they ever try to enforce their rights if I breach confidentiality, claim they breached first?
No if you wanted to try to void the agreement you would have to do so now not breach and then rely on their breach.
I do not know id this matters but I us a Service Animal Service Dog, and the "claim, came about from their refusing to let me stay there due to having a Service Dog. So I not happy to begin with. I do Know about the $4,000.00 minimum damages under the Unrhu act.
No that does not matter in this situation. I know you are frustrated but you need to move on.


text:
Best Bed & Bath Deals
The best deals in the world, sorted by newest added to our database, is shown below. Choose a deals category to limit the display to those deals. Everyday, the Wise Bread deals team hand-picks the top 20 deals of the day. Enter your email address above to subscribe to Wise Bread's Best Deals Today newsletter.
Rio Home Fashions Dream Cloud Gel Filled 233TC 100-Percent Cotton Box Stitch Comforter. King size only for 30.07 at 62% off. This are a limited number of these available via Amazon. Shipping is free.
Walmart (via Dealnews) has just reduced the price on it's comforter sets to what amounts to a perfect steal. Prices start at $10.In-store pick-up is free.
Amazon.com is offering a Luna Premium Hypoallergenic Waterproof Mattress Protector - King Size for $49.95, down from $119.98. (58% Off). Super saver shipping is free.Made in the USA.
While supplies last Smart Bargains is offering a selection of quilts and coverlets on sale up to 65% off. The English Garden patchwork cotton quilt set (pictured) is usually $110, on sale for $49.99.(54% Off).
Smart bargains has reduced the price of these beautiful (and weighty) Eyptian cotton towel sets. Regular retail was $100. Smart bargains initially dropped the price to $49.99, and has further reduced it to $34.98 for a limited time. Your choice of colors,
Smart Bargains.com is having a spring sheet sale right now. They are offering colorful sheets (including several Egyptian Cotton 700+ thread count sheet sets) on sale up to 70% off. The long-wearing 500tc cotton sateen sheets (featured) are usually $150. They are on sale right now for $69.99 (53% Off). Available in Full, Queen and King.
Walmart.com has reduced the price on their Vanilla colored micromink blankets. Sizes Twin and Full/Queen are available. These blankets started out over $25, and have had the price reduced twice to get to this point. Inventory probably won't last long. You can save even more by selecting in-store pick-up.
The twin blankets currently have a few more color options available.
Macy's (via Dealnews) is offering a Villa 7-Piece Comforter Set in Cal King, King or Queen for $49.99 (Normally $199.99). Additional comforters are on sale under $100. Shipping adds $8.
Right now Sears has mattresses marked down as much as 50%. Use the codes at dealnews to save even more.
While supplies last, Amazon.com is featuring a Yellow Northpoint Supreme Plush Ribbed Throw for $6.62, down from $24.99 (74% Off). They measure 50" x 60".
Amazon.com is featuring a set of four Malouf bed risers (6 inch) for $9.49. That's 81% off the usual price of $49.99. 1200lb weight tolerance, Creates up to 20 cubic feet of under bed storage space.
Amazon has queen size micro-fluff sheets on sale for $44.49. That's 70% off the regular price of $149.99. Other colors are available (and on sale) but the vanilla color (pictured) is the best price.
Today only, Amazon.com is featuring Sleep Innovations Contour Memory Foam Pillows for $14.99 (75% Off). Orders over $25 ship free.
While supplies last, Amazon.com is featuring sets of king size, black satin sheets for $20.63. That's 73% off the regular price of $69.99. Gold and red King sized sets are available for $18.99. Shipping is free with orders over $25.
The EatSmart Precision Digital Body Fat Scale features a 400lb capacity and an auto recognition feature to help you track your progress. It normally retails for $99.95. Amazon.com has it on sale for $49.95 with free super saver shipping. (50% Off)
Amazon.com is featuring a Tommy Hilfiger Royale Safari Duvet Set, King size for $99.99 with free shipping. That's 73% off the regular price of $375. The set includes the king sized duvet cover and two shams. The fabric is cotton sateen.
Amazon.com is offering the "Z" by Malouf Memory foam molded contour pillow for $27.99 with free shipping. It's normally $99.99 (72% Off).
Renaissance 600 Thread-Count Woven Stripe Sheet Sets normally sell for $150 (in king size). Amazon.com is offering them in your choice of colors for $44.99. ($54.09 for the Chocolate color). Shipping is free, and additional sizes are available even cheaper.
Amazon.com is featuring a king size 2.0" visco foam mattress topper for $101.08. It's normally $269.99 (63% Off). Shipping is free.
Furniture creations (via Amazon.com) is featuring a butterfly bed fantasy canopy for $4.69 + $6.95 shipping. ($11.91 total) It normally sells for $19.95 before shipping.


text:
The one thing worse than a movie that's so totally rah-rah about its subject is to put the audience in a position to care about its subject and then to, rather ruthlessly, kill its subject. Or in the case of End of Watch, half its subjects.
It's hard to imagine why writer/director David Ayer changed his modus operandi.
His previous films include Street Kings, Training Day and Dark Blue, movies in which cops have many dimensions, from straight-up good guys to baddies on the take, to all shades of gray in between.
There are no such shadings here and the movie suffers for it. Ayer deposits the protagonists, uniformed LAPD cops (Jake Gyllenhall and Michael Peña), into the daily grind of shit we've seen in other movies that take place in south central Los Angeles. Audiences will feel for these two, but who wouldn't?
The heartless, perhaps. It's only afterward that we realize we've been manipulated: These guys will die to protect us, and they deserve our respect. It's a drag when movies feel like church. It's a drag that Gyllenhall's character's documentary project, the catalyst for the film, is dropped completely.
At least he's good. Peña is excellent.
Regal Santa Fe Stadium 14, R, 109 min.


text:
OutFit: Polka dots
Styles are ever-changing, but some trends are timeless, such as polka dots. This graphic pattern is flirty, playful and befitting for every age.
For a youthful look, try polka dot jeans. Candy-colored skinnys with dots can be paired with a basic tee, scarf and sneakers for a casual vibe. Wear them with a bomber jacket and ankle boots for a city chic style.
For a sophisticated ensemble, opt for a sheer polka dot top. Wear it over a cami and pair it with dark jeans and heels for a sexy-sweet effect.
All ages look pretty and perky in a polka dot dress. Pair it with patterned accessories for an eclectic look, or play it safe and stick to neutral finishing touches.
Wake up your wardrobe with polka dots. It's a whimsical pattern that works no matter how many candles you are blowing out this year.
Ivy Parnasius owns Pollux Clothing Co. stores in Grand Junction, 321 Main St., and in Montrose, 433 Main St. Call her at 242-8050 (252-1770 in Montrose) or go to http://www.polluxshop.com.


text:
I had silicone textured breast implants on 23/9/11 the first night I had extreme pain in left side when stitches came out left side was open and clear fluid was coming out after having it stitched & glued it still remains open & implant is exposed there has been no obvious signs of infection & I haven't been Ill implant is being removed this week any ideas what might be the cause ? Other side is fine
Have I Got an Infection from Breast Implants? Draining Clear Fluid.
Doctor Answers 7
Drainage after a breast augmentation
Implant exposure
If the implant is exposed, it sounds like you need removal of the implant and then possibly delay of the revision for several months.
Have I Got an Infection from Breast Implants? Draining Clear Fluid.
The standard of care is removal of an exposed implant. Than wait from 3 to 6 months to have re insertion.
You might also like...
Exposed implant
if your implant is exposed, and you are draining fluid from that breast, you have at least a low grade infection and the wound will not heal until the implant is removed. You must wait about 4-6 months for the pocket to sterilize and then re-introduce the implant. it is very rare for it to heal without removal of the implant.
If your implant is exposed
If it is exposed two months after surgery there is very little chance that the implant can be saved. Organisms like S.epi are known to cause clear drainage from infected prosthesis. I would suggest removing the implant and waiting until you are healed up before attempting anther breast aug.
Exposed Implant Almost Always Requires Removal
In almost all instances an expsoed breast implant needs to be removed. Even though the drainage that you describe is clear, the implant is contaminated. Since the implant has no blood supply of its own, it is virtually impossible to svae it. You should see your surgeon without further delay.
Breast Augmentation Complication?
I am sorry to hear about your complicated course after breast augmentation surgery.
There are many different reasons/ causes for the complications. Your plastic surgeon will be best suited to figure out what caused the complication, as opposed to online consultants who do not have the benefit of examining you etc.
I am glad that you are not ill and that your surgeon is following you closely.
Best wishes with your upcoming procedure and any subsequent procedure planned.
Learn more: http://www.poustiplasticsurgery.com/Procedures/procedure_breastaugmentation.htm
These answers are for educational purposes and should not be relied upon as a substitute for medical advice you may receive from your physician. If you have a medical emergency, please call 911. These answers do not constitute or initiate a patient/doctor relationship.


text:
Whatever Happened to Baked Alaska? The Fates of Five Once-Faddish Dishes
In the course of researching Turkducken's real age last week, I turned to one of my favorite food resources on the Internet: the Food Timeline. If you're a food nerd, prepare to lose dozens of hours to the fascinating depths of the Food Timeline and its entries on the history of nearly every food or beverage you can think of.
One of my favorite things to do is peruse old foodstuffs that were once the pinnacle of popularity, and have since fallen out of style. During the height of at-home entertaining in the 1950s and 1960s, a dish's status was more or less determined by how expensive and laborious it was to prepare. During the 1970s and 1980s, dieting and calorie-counting diminished the popularity of many of these dishes as the foods of the fit and fabulous became ever more processed into low-fat, sodium-free versions of their former selves.
Nouvelle cuisine reached its height in the 1980s and 1990s -- think of the famous L'Idiot scene from L.A. Story -- and one day, food historians will look back at the 2000s as the decade when farm-to-table food and locavorism was favored above all else. The only question is which faddish foods we're eating now that will have completely fallen out of favor in a generation or two.
Here are five old favorites that have already fallen off the average foodie's radar, and are now resigned to food history timelines and the odd octogenarian-supported restaurant.
5. Steak Diane
According to the Food Timeline, Steak Diane "is an American invention of the late 1950s/early1960s, when French cooking (think Julia Child & the Kennedy White House menus) was all the rage. Rich wine sauces and flamboyant presentation were the norm for many top restaurants."
There are a handful of restaurants in Houston that still serve Steak Diane, places such as Brennan's and Rudi Lechner's. I like Brennan's, but I don't need to point out the one thing that these three restaurants have in common: a certain age demographic, which still wants its steak with a bucketload of butter on top and the theatricality of a flaming dose of cognac.
"The beef, sizzling in a large copper pan with brandy flaming and sauce bubbling," wrote Jean Anderson in American Century Cookbook: The Most Popular Recipes of the 20th Century, "makes a wonderful show reminiscent of the days when Humphrey Bogart and friends would bound in at midnight following the newest opening on Broadway..." Hollywood doesn't really make them like Bogie anymore, and neither do restaurants create full-on spectacles like Steak Diane (with the notable exception of Gordon Ramsey above).Gordon Ramsey makes Baked Alaska, too. Go figure!
4. Baked Alaska
"The history of Baked Alaska is an interesting study of food evolution and culinary folklore," says the Food Timeline. "Most food historians generally agree this confection originated in the 19th century. None of them are willing to commit with regards to 'absolute' credit." But no matter which origin story you believe, the fact of the matter is that traditional Baked Alaska is rarely seen in its original form these days: ice cream baked for a short time in a very hot oven, guarded from the heat by a meringue shell.
Baked Alaska reached the height of its popularity during the middle of the last century. Wrote Sylvia Lovegren in Fashionable Food: Seven Decades of Food Fads, "Ice cream pies were very chic [in the 1950s], and baked Alaska ice cream pie was too soigne for words." The feminine look of the thing even mimicked the pastel design aesthetic that was popular at the time.
But ice cream pies gave way to other desserts in the 1960s, specifically cakes: red velvet cake, Black Forest cake and Texas sheet cake soon became the things that everyone brought to potlucks and parties, and ice cream-based desserts began to fade into obscurity.
There are still a few places where you can find Baked Alaska -- like the Oceanaire in the Galleria -- but more common these days are updates and interpretations of the old dessert. Take, for instance, pastry chef Rebecca Masson's individual Baked Alaskas with strawberry sour cream ice cream and a cap of toasted meringue on top.Next Page
Get the Food & Drink Newsletter
Our weekly guide to Houston dining includes food news and reviews, as well as dining events and interviews with chefs and restaurant owners.
Recommended for You
Powered by SailThru
Upcoming Events
Beaumont Craft Beer Festival
TicketsSun., Nov. 5, 2:00pm
Sponsor Content


text:
Patent application title: RECORDING AND PLAYBACK OF TRACE AND VIDEO LOG DATA FOR PROGRAMS
Donald J. O'Riordan (Sunnyvale, CA, US)
Donald J. O'Riordan (Sunnyvale, CA, US)
David Varghese (Kochi, IN)
Cadence Design Systems, Inc.
IPC8 Class: AG06F1134FI
USPC Class:
714 45
Class name: Reliability and availability fault locating (i.e., diagnosis or testing) output recording (e.g., signature or trace)
Publication date: 2013-08-29
Patent application number: 20130227350
Sign up to receive free email alerts when patent applications with chosen keywords are published SIGN UP
Recording and playback of trace log data and video log data for programs
is described. In one aspect, a method for viewing log data recorded
during execution of a program includes causing a display of recorded
images depicting prior visual user interaction with the program during a
particular time period. The method also includes causing a display of
messages tracing and describing prior execution of the program during the
particular time period. The display of the messages and the display of
the recorded images are synchronized.
1. A method for viewing log data recorded during execution of a program,
the method comprising: causing a display of recorded images depicting
prior visual user interaction with the program during a particular time
period; causing a display of messages tracing and describing prior
execution of the program during the particular time period; and causing
synchronization of the display of the messages with the display of the
recorded images.
2. The method of claim 1 wherein the prior visual user interaction includes movement of a user-controlled cursor.
3. The method of claim 1 wherein the messages are entries retrieved from a logfile produced by the program and displayed as text.
4. The method of claim 3 wherein the display of the message entries includes displaying the message entries in a plurality of lines of text, and wherein synchronization of the display of the messages includes scrolling the lines of text to display a message entry corresponding to a currently-displayed recorded image.
5. The method of claim 3 wherein the logfile is modified to include tags that associate the message entries in the logfile with corresponding ones of the recorded images, and wherein causing the synchronization includes matching a currently displayed image with a tag in the logfile.
6. The method of claim 1 wherein the synchronization of the display of the messages with the display of the recorded images includes matching coordinates of a user-controlled cursor depicted by at least a portion of the recorded images with coordinates stored in the messages.
7. The method of claim 1 wherein the synchronization of the display of the messages with the display of the recorded images includes highlighting at least one of the messages that corresponds to a currently-displayed one of the recorded images.
8. The method of claim 1 wherein the messages trace and describe execution of the program including the program receiving input from a user.
9. The method of claim 1 wherein the display of the recorded images includes a display of a sequence of the recorded images as video data.
10. The method of claim 1 further comprising receiving user input selecting one of the messages displayed from the logfile, and causing a display of one of the recorded images that corresponds to the selected message entry.
11. A system for viewing log data recorded during execution of a program, the system comprising: at least one storage device storing a plurality of recorded images depicting prior visual user interaction with the program during a particular time period; and at least one processor, wherein one or more of the at least one processor are operative to perform operations comprising: causing a display of the recorded images; causing a display of messages tracing and describing prior execution of the program during the particular time period; and causing synchronization of the display of the messages with the display of the recorded images.
12. A method for recording log data during execution of a program on a computer system, the method comprising: capturing a plurality of images depicting continuing visual user interaction with the program as displayed on a display device during execution of the program; and storing a subset of the captured images on a storage device, the subset being a predetermined number of the captured images, and wherein a newly-captured image is stored in place of an oldest stored captured image to maintain the predetermined number of the captured images.
13. The method of claim 12 wherein the subset of captured images are stored in a ring buffer allocated in a predetermined amount of storage.
14. The method of claim 12 wherein the stored subset of the captured images depict the visual user interaction during a predetermined time period occurring before a current point in time when the newly-captured image is stored.
15. The method of claim 12 wherein the capturing of the images is halted upon a termination of the program, such that the stored subset of the captured images depicts the last visual interaction with the program before the termination.
16. The method of claim 12 further comprising associating the captured images with corresponding message entries in a trace logfile, the corresponding message entries tracing and describing the execution of the program concurrently with the capturing of the images.
17. The method of claim 12 further comprising: receiving a plurality of message entries in a logfile, the message entries tracing and describing the execution of the program, and modifying at least a portion of the message entries to associate the portion of message entries with particular ones of the captured images.
18. The method of claim 17 wherein the modifying the at least a portion of message entries includes providing tags in the logfile, the tags associating the at least a portion of message entries with the associated ones of the captured images.
19. The method of claim 18 further comprising storing logfile positions associated with the captured images, each stored logfile position indicating a message entry in the logfile that was generated at the time that a captured image was captured.
20. The method of claim 12 further comprising storing coordinates for each of the captured images, the coordinates indicating positions of a user-controlled cursor in a display area in the captured images.
[0001] The present inventions relate to software for computer systems, and more particularly to diagnosing errors in computer program execution.
[0002] Software has continually increased in complexity and sophistication. Many software applications have grown to include greater amounts of functions and abilities. For example, one common application is electronic design automation (EDA), in which sophisticated design software is used to create increasingly more complex designs such as electronic component designs. The design software allows creation, viewing, and editing, and output of graphical designs and includes simulation functions. Other graphical editors allow creation of designs of many different types.
[0003] With more complex functionality, software programs can often be more prone to errors and crashes. For example, software programs such as graphical editors are prone to bugs and crash issues, and are often used in environments in which a crash may not be easily reproducible. Even if a crash is reproducible, the gathering of a reproducible testcase to facilitate debugging the software is often prohibitive due to the amount and complexity of the data to be gathered, and/or security and sensitivity issues (e.g., customers working on critical designs often do not wish to share all the technical details of their design with the software vendor).
[0004] Thus software developers have a need for sophisticated debugging tools. One common debugging tool includes tracing and logging, in which internal steps or events of execution of a program are determined using a stack trace or other tracing function, and the steps or events are stored as entries or messages in a logfile. In case of a bug or crash in the program occurring, the logfile entries can later be reviewed by a reviewer to determine the execution operations of the program leading up to the bug or crash to help diagnose the problem. However, logfiles have several limitations. While many customers or other users are willing to share these logs with a software vendor or other reviewer, it is often the case that the log contains insufficient information for a reviewer to be able to understand or reproduce the issue in order to debug it. The log can contain a trace of the low level actions performed by an interacting user of the program prior to the software crashing, but it includes no context information describing the user's input or actions leading up to the crash. It is often difficult for the reviewer to gain an understanding of what the user was trying to do, or on what type of data the user was trying to operate a particular software feature. In addition, the log typically includes a very large numbers of entries describing many different actions, which can be time consuming to review. These disadvantages limit the diagnostic capability of the logfile.
[0005] Recording and playback of trace log data and video log data for programs is described. In one aspect, a method for viewing log data recorded during execution of a program includes causing a display of recorded images depicting prior visual user interaction with the program during a particular time period. The method also includes causing a display of messages tracing and describing prior execution of the program during the particular time period. The display of the messages and the display of the recorded images are synchronized.
[0006] In another aspect, a system for viewing log data recorded during execution of a program includes at least one storage device storing a plurality of recorded images depicting prior visual user interaction with the program during a particular time period. At least one processor are operative to perform operations including causing a display of the recorded images, causing a display of messages tracing and describing prior execution of the program during the particular time period, and causing synchronization of the display of the messages with the display of the recorded images.
[0007] In another aspect, a method for recording log data during execution of a program on a computer system includes capturing images depicting continuing visual user interaction with the program as displayed on a display device during execution of the program. A subset of the captured images are stored on a storage device, the subset being a predetermined number of the captured images. A newly-captured image is stored in place of an oldest stored captured image to maintain the predetermined number of the captured images.
[0008] Embodiments disclosed herein allow enhanced diagnosis of bugs, crashes, and other errors in software operation, thus reducing time and effort in the debugging of software.
[0009] FIG. 1 is a is a block diagram illustrating a system suitable for use with one or more embodiments disclosed herein;
[0010] FIGS. 2A and 2B are diagrammatic illustrations of one example embodiment of a graphical interface which can be used for viewing log data according to embodiments described herein;
[0011] FIG. 3 is a flow diagram illustrating one example of a method for a program to provide log data according to some features described herein;
[0012] FIG. 4 is a flow diagram illustrating one example of a method for recording image log data including features described herein;
[0013] FIG. 5 is a flow diagram illustrating one example process of a step of FIG. 4 in which snapshot images are rendered into video log data; and
[0014] FIG. 6 is a flow diagram illustrating one example of a method for playing back a log of program execution including trace log data and image log data.
[0015] Embodiments described herein relate to software for computer systems, and more particularly to diagnosing errors in computer program execution. Various modifications to the described embodiments and the generic principles and features described herein will be readily apparent to those skilled in the art. Thus, the embodiments herein are not intended to be limited to the examples shown but is to be accorded the widest scope consistent with the principles and features described herein.
[0016] These embodiments are mainly described in terms of particular methods and systems provided in particular implementations. However, one of ordinary skill in the art will readily recognize that these methods and systems will operate effectively in other implementations. For example, system implementations usable with the present embodiments can take a number of different forms. The present embodiments will also be described in the context of particular methods having certain steps. However, the methods and systems operate effectively for other methods having different and/or additional steps not inconsistent with these embodiments.
[0017] The embodiments described herein can take the form of software embodiments, hardware embodiments, or an embodiments containing both hardware and software elements. A software embodiment can include but is not limited to firmware, resident software, microcode, etc. run by a processor or processing circuit. A hardware embodiment can utilize logic gates, processors, electronic components, and other hardware elements. Furthermore, the some embodiments can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable storage medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), flash memory, a rigid magnetic disk, an optical disk, and a solid-state memory drive. Current examples of optical disks include compact disk read only memory (CD-ROM), compact disk read/write (CD-R/W), DVD, and Blu-ray.
[0018] Embodiments herein can enable enhanced diagnosis of errors in the execution of a software program. Features allow capturing and storing visual information output during program execution by recording the visual display of the running program and/or operating system graphical desktop, such as images of the interacting user's desktop or software visual state. This recording of a video including image log data is performed in conjunction with an execution trace generating and/or storing entries in a trace logfile which describes execution of the program during the same time period of the image recording. Features also allow presentation of the log data to a reviewing user, where a synchronization scheme can be employed to render a playback of the image log data as a video in synchronization with the display of the logfile entries produced by the running program, e.g., in text form. This allows a reviewing user to determine a visual context occurring during traced program execution, by viewing images and objects displayed by the running program and/or system at each moment that the software program was executing the recorded steps in the trace logfile, and allowing linking of visual events during execution to events in the trace logfile.
[0019] In some embodiments, a ring buffer scheme can be employed to store the image log data, limiting the amount of image data to a predetermined number of images and/or a predetermined duration of the software program execution at a particular playback rate (e.g., frames per second). The stored image data is thus limited to the final, and typically most pertinent, timespan of execution of the software program process being recorded, thereby conserving system resources.
[0020] The image log data provides video insight into the history of the interacting user's experience shortly before the software program terminated, such as due to a program crash. The combination of the recorded image log data and the trace logfile data provides a rich set of information for the reviewing user to attempt to debug a crash issue or other problem experienced by the interacting user and/or program(s), even in the complete absence of a reproducible test case (which often occurs in practice). This addresses the often insufficient information provided by traditional trace logfiles for error diagnosis. In some embodiments, the use of standard desktop video recording tools is not required for the recording of the image log data.
[0021] Various users can use the recording and/or reviewing system(s) which can provide numerous features as described below. Herein, an "interacting user" is a user who uses a subject program in its normal use and whose interactions are being recorded according to features described herein, and a "reviewing user" is a user who views generated log data describing the use of the subject program by the interacting user. These users can in various embodiments be a single person, or separate individuals. In some embodiments, such "users" can include persons as well as other programs that interface with the system.
[0022] The term "log data" or "log" is used herein to refer to both log data provided from tracing internal execution steps or events of a program (such as stored in a trace logfile, e.g., function calls) ("trace log data") as well as images of visual program and operating system output that were recorded during program execution ("image log data" or "video log data"). The trace log data can also be referred to herein as "messages," "entries," or "message entries" since such data is typically provided as messages that are entries in the trace logfile. The messages are typically displayed as text messages (including text-like symbols) when presented to the user. In other embodiments, the trace log data can be presented in a non-text form, such as using audio, etc.
[0023] To more particularly describe the features of the described embodiments, please refer to FIGS. 1-6 in conjunction with the discussion below.
[0024] FIG. 1 is a block diagram illustrating a system 10 suitable for use with one or more embodiments disclosed herein. System 10 can be any suitable computer system, server, or other electronic or hardware device. For example, the system 10 can be implemented in a mainframe computer or server, desktop computer, workstation, portable computer, or electronic device (set-top box, portable device, cell phone, personal digital assistant, media player, game device, etc.). System 10 includes a CPU 12, memory 14, display device 16, storage device 18, input device(s) 20, and other peripherals 22.
[0025] CPU 12 can be one or more processors or processing circuits to execute program code and control basic operations of the system 10, including processing operations, manipulating data, issuing commands to other components of the system 10, etc. For example, an operating system can run on the system 10 and is implemented by the CPU 12 and other components of the system 10. CPU 12 can also implement graphical design software 26 and other software, as described further below.
[0026] Memory 14 is typically provided in system 10 for access by the CPU 12, and can include one or more of a variety of types, such as random access memory (RAM), read-only memory (ROM), Electrical Erasable Read-only Memory (EEPROM), Flash memory, etc.
[0027] Display device 16 outputs displayed images to a user of the system 10. Display device 16 can be any of a variety of types of displays, including LCD, Plasma, CRT, etc. Some implementations of the display device 16 include a screen having a screen size, e.g., an area within which images are displayed. In some embodiments, the CPU 12, and/or a different processor in communication with the display device, can cause the display of images on the display device by providing the appropriate signals to well-known components of system 10 used in displaying images on device 16.
[0028] Storage device 18 can store data that may be retrieved by the CPU such as program instructions and/or data, including some or all of the log data recorded and/or played back as described herein. One or more storage devices 18 can be provided in system 10 and/or provided in other systems and in communication with system 10, such as over a network or other communication link. Storage device 18 can be any of a variety of devices used to store data electronically, such as hard disk, hard disk arrays, solid-state memory (Flash, RAM, ROM, etc.), CD-ROM, DVD-ROM, Blu-Ray disc, magnetic tape, etc. Memory 14 can also be considered a storage device 18.
[0029] Storage such as storage device 18 can also implement a ring buffer for use with some embodiments of log data recording described herein. The ring buffer can allocate a fixed amount of storage or storage locations to store log data such as image log data (frames), and in some embodiments can also store data associated with each frame, such as cursor coordinates and corresponding trace logfile position. After the ring buffer fills to capacity, a new or additional frame is stored over the oldest frame in the ring buffer, allowing a constrained or limited amount of storage to be used. In some embodiments, the ring buffer can be implemented in a larger-capacity storage device 18 such as a magnetic or optical disk or flash memory, which can provide greater amounts of storage than memory 14 for video frames and/or can avoid occupying system memory 14 which may be used by the running program (such as application 26). Various embodiments can store all the image frames and associated information on a larger-capacity storage device 18, or store all the image and associated information in memory 14. Or, image data can be stored in a ring buffer on a larger-capacity storage device 18 such as a disk, and associated data can be stored in another ring buffer in memory 14.
[0030] Input devices 20 can include any of a variety of devices that allow users to input commands and data to the system 10, including a keyboard, mouse, trackball, stylus, touchscreen, microphone/voice recognition device, motion sensors, other electronic device (such as another computer system or portable electronic device), or other input device. Other peripherals 22 can include any other devices connected to and used by the system 10, such as any peripheral, card, or interface device that performs one or more functions and communicates with the system 10, such as network adapters that enable the system 10 to become coupled to other computer systems or devices through intervening private or public networks, scanners, sensors, output devices (e.g., printers, sound speakers), etc. In the example of FIG. 1, the display device 16 is connected to the CPU 12 by its own dedicated bus, while storage device 18, input devices 20, and other peripherals 22 can be connected to a common bus that is also connected to the CPU. In other embodiments, the display device 16 and other devices can each have their own bus, or share one or more common buses. One or more of the buses or other links can be implemented using wires or wireles sly, according to any of well known standards and protocols.
[0031] An application 26 can be implemented at least in part by the CPU 12 (and/or other processor(s) of system 10), e.g., as directed by program code stored on the memory 14 and/or storage device 18. For example, the application 26 can be the subject program that is being traced and logged according to features described herein. The application 26 can be any program executed by the system 10 and typically providing a visual interface with which a user can interact. For example, the application 26 can cause the display of an interface and visual output on the display device 16 and receive input from one or more of the input devices 20 to control the functions of the application and interface. In an example embodiment, the application 26 can be a graphical editing application and interface to allow the creation and editing of designs or images. In some embodiments, for example, a graphical design application 26 can allow designers to create and edit designs (such as graphical schematics and layout designs) for integrated circuit schematics, circuit boards, or other electronic designs used to guide manufacture of integrated circuits. Other graphical editing applications can allow a user to create or edit other types of designs, images, documents, or other data.
[0032] Log generation block 28 can be implemented at least in part by the CPU 12 and/or other processors of system 10, based on program code read from a storage device. The functionality of block 28 can be provided as part of the application 26 (or another subject program being logged), or can be provided as part of a different application, operating system, or other program that can be separate from the application 26. Log generation block 28 can generate log data based on the execution of the application 26 and based on user interaction with the application. In some embodiments, the generated log data includes a trace logfile tracing execution of application 26, and image log data depicting the visual interaction of an interacting user with application 26. For example, the trace log data can be generated using functions of the application 26, and the image log data can be generated using a process or thread of the application. Other embodiments can use different configurations, and can split the trace log data and image log data generation in different programs. In some embodiments, the log generation block 28 can include one or more standardized components, such as a trace logfile generation program, display capture program to capture and generate image data, etc.
[0033] The viewer block 30 can be implemented at least in part by the CPU 12 to allow a reviewing user to select a particular stored log of program execution and display or replay the stored log, including trace log data and image log data, as described in greater detail below. In some embodiments, the viewer block 30 can be a separate program, such as a standard viewing application, e.g., a web browser or a document viewer. In other embodiments, the viewer functionality can be included in the application 26 or other subject program being logged.
[0034] For example, in some embodiments system 10 is used to generate log data based on an interacting user using the application 26 and system 10, and the viewer 30 and same system 10 is used by a reviewing user to review stored log data. In other embodiments, a first system 10 can be used by an interacting user to interact with an application 26 such that a local log generation block 28 generates and stores log data, and a second system 10 can access the stored log data (e.g., over a network) such that a reviewing user can display the log data on the second system using a local viewer 30.
[0035] FIGS. 2A and 2B are a diagrammatic illustration of one example embodiment of a graphical interface 100 which can be displayed by a display device 16 in system 10 and can be used for viewing log data according to embodiments described herein. Interface 100 can be displayed on a display screen to allow a reviewing user, for example, to select displayed options in the interface 100. In the example of FIGS. 2A-2B, a reviewing user has selected a stored log of program execution for a subject program and has commanded the log to be displayed/replayed in interface 100. For example, the interface 100 can be displayed by a viewer block 30 that has access to the stored log data generated during subject program execution. In one example, the interface 100 can be displayed by a web browser or other viewer program, for example. The interface 100 is shown as one or more displayed windows within a graphical user interface, but can be displayed in other forms in other interfaces. Various controls can be displayed such as menu items and buttons which allow the user to select various viewing and editing functions of the application and interface 100.
[0036] The displayed interface 100 includes a trace log view 102 which can be displayed in a window or other particular area of the display. The trace log view 102 displays trace log data of the stored log that has been selected by the reviewing user to be displayed and/or replayed. In some embodiments the trace logfile can be a standard file of log data produced by application 26 or a utility program, and view 102 displays a text rendition of the logfile messages. In this example, the trace log view 102 displays multiple steps or events of previous execution of the subject program, each step on a different text line. The display of the trace log view 102 can be scrolled based on reviewing user input (e.g., using scroll bars or other controls), and/or based on the display of the image log view 104 as described below.
[0037] In some embodiments, each message in view 102 can indicate a program execution step or event that occurred, and the specific nature of that event. For instance, in the example shown in FIGS. 2A-2B, messages prefixed with "\a" can indicate interacting user entries, and can describe commands invoked due to menu selections or other user selections in an interface of the subject program (such as application 26). Similarly, "\i" text lines can describe additional interacting user input such as coordinates of a user-controlled cursor (e.g., mouse pointer) in a window when a click was performed, e.g. a click of a mouse button in a graphical design window. In the example, "\r" text lines can indicate system responses, such as a "t" character representing a "true" state of a status flag and "nil" indicating a "false" state. Furthermore, "\p" text lines can indicate system-generated responses to the user. Other prefixes or text signifiers can also be used to indicate system-generated prompts, output or informational messages, warnings, errors, diagnostics (memory usage, etc.).
[0038] The commands invoked in some of the messages in the trace log view 102 of this example can describe any of a variety of steps taken during execution by the subject program. For example, in the example of FIGS. 2A-2B, the "hiZoomIn( )" command can indicate that the interacting user invoked a zoom command to cause a graphical view window of the subject program to change to a closer view of a displayed image or design. Coordinates that follow this command can indicate a corner of a user-drawn bounding box establishing the dimensions and location of the zoom command. The system prompt following the coordinates prompts the interacting user to input the coordinates for the diagonally-opposite corner of the bounding box, and the coordinates following the prompt indicate the interacting user's input coordinates for that corner. The first system response of "t" (true) following the coordinates indicate the system responding to the second set of coordinates (indicating that the full set of coordinates for the bounding box are now received), and the second "t" responds to the user's command invocation of the zoom (indicating that the zoom command is complete and initiated). Other commands and responses can be similarly indicated, such as panning or other view-editing commands, drawing or other creation commands, user cancellation of commands, etc. Other embodiments can trace program execution using different formats and commands.
[0039] Interface 100 also includes an image log view 104 which displays image log data in a visual form for the reviewing user. The image log view 104 can display images that were captured during the interacting user's interaction with the subject program, and rendered for display. In this example, the image log view 104 displays an image of a graphical user interface or desktop displaying multiple windows 106 visible during the interacting user's interaction with the subject program. Thus the image in view 104 captures the output of the interacting user's display screen during a previous time when the interacting user was using the subject program, on a system running the subject program. In this example, the subject program is an application 26, and is a graphical editing application providing a main window 108 that allows an interacting user to create and/or edit a graphical layout design for integrated circuits. A main view 110 in the main window 108 of the subject program displays a graphical layout or portion thereof, including design objects and/or other components or features of the design. A cursor 112 (such as a mouse pointer) is shown which was controlled by the interacting user during interaction with the graphical editing program, such as selecting objects or areas in the main view 110, selecting commands in other displayed menus or lists, etc. In other embodiments, only one or more windows provided by the subject program are captured as image log data and displayed in image log view 104. In other embodiments in which the subject program is a graphical editing application, images from other types of graphical editing applications can be displayed, such as images of line drawings, graphical shapes, photo images or videos, maps, or other images. In other embodiments, other types of subject programs can provide the image log data, such as office applications (word processor, spreadsheet, etc.), games, utilities, web-based applications, simulations, or other type of application.
[0040] In some embodiments, one or more sequential images (e.g., frames) can be displayed in image log view 104 to depict the interacting user's interaction with the subject program. The sequential images can form a video animation showing the actions of the interacting user as experienced by the interacting user on a display screen at the time of the interaction. The video images can be displayed according to a frame rate selected by the reviewing user, for example.
[0041] In other embodiments, a single static image can be displayed in image log view 104, or a series of images slowly displayed in sequence as in a slide show.
[0042] The interface 100 can also include image playback controls 120 selectable by a reviewing user, which in this example are displayed within the image log view 104, e.g., under and/or above the images displayed in that view. In the shown example, these controls can include a stop animation button 122, a start animation button 124, an enable repeat button 126, and a disable repeat button 128. The start animation button 124 causes a video or sequence of images to be played in the image log view 104 depicting the actions of the interacting user with the subject program over time, according to a predetermined and/or user-settable frame rate. In some embodiments, a horizontal bar display 130 or other display can indicate the current playback location by a progress bar 132 with reference to the entire length of the video that is represented by the width of the bar display, and allowing a reviewing user to select any location within the bar display to start playback at the selected location. The stop animation button 122 causes any playing animation to stop. Enable and disable repeat buttons 126 and 128 allow a reviewing user to select whether the image playback will automatically restart at the beginning of the video after the end of the video is played. Other standard video playback controls can also be provided, such as fast forward, rewind, next track or next video (e.g., if multiple image logs are accessible), etc.
[0043] According to some features of embodiments described herein, the displays in the trace log view 102 and in the image log view 104 are synchronized in their playback. Thus, one or more messages of the trace logfile data displayed in view 102 correspond with the images currently being displayed in the image log view 104. In some embodiments, one or more visual indicators can be displayed in the trace log view 102 to show which particular text message (program execution step or event) corresponds with the image currently being displayed in view 104. For example, as shown in interface 100, a highlight indicator 140 or other indicator can highlight the trace log message corresponding to the displayed image. As the video of further interaction by the interacting user continues its playback, the messages in trace log view 102 are scrolled appropriately to display and highlight the messages currently corresponding to displayed images.
[0044] These features allow a reviewing user to easily compare the visual context of the actions of the interacting user with the system-internal steps and events taking place for the subject program. If a crash occurs in the subject program, the visual context of the interacting user's actions are known from the video images and the system events are known from the trace logfile. In one example of a graphical editing program for circuit designs, this allows the reviewing user to debug and/or triage a crash to determine, for example, whether an interacting user was in the process of editing a schematic or a layout when the software crashed or exited, and if so, additionally determine with what types of design objects the interacting user was interacting (e.g., for schematics, these objects can be pins, wires or symbol instances, and for layouts they can be wires, vias, routing guides, etc.).
[0045] FIG. 3 is a flow diagram illustrating one example of a method 200 for a program to generate log data according to some features described herein. Method 200 and other methods described herein can be implemented, for example, by the components in system 10 or other system, including one or more CPUs or processors (or processing circuitry) and a display device 16. These methods can be implemented by software, program instructions or code, which can be stored on a computer readable medium. Alternatively, these methods can be implemented in hardware (logic gates, etc.), or in a combination of hardware and software. It should be noted that the steps described in the methods herein can be performed in a different order than shown and/or simultaneously (partially or completely) with other steps, where appropriate.
[0046] The method 200 begins at 202, and in step 204, an image recording process is launched. This process records image log data as a sequence of images of the visual output of the program and/or operating system experienced by the interacting user while the user operates the program, and captures as well the interactions of the user via a user-controlled cursor. In some embodiments, the image recording process can be launched by the subject program, such as application 26, with which the interacting user is interacting on a computer system such as system 10. For example, the image recording process can be a separate process or thread of control launched by the program. In some embodiments, this recording process can be automatically invoked and initiated when the subject program is initiated. This can be convenient for the interacting user, since a separate image recording program need not be independently invoked. In other embodiments the image recording process can be implemented by a separate program, e.g., running in the background on system 10 or a different connected system.
[0047] In step 206, the subject program initiates or provides trace logfile generation functionality that generates and stores trace log data based on execution of the subject program by the interacting user. For example, the subject program may include this trace logfile generation functionality within its code, or a separate program can be called or commanded to start and facilitate the trace logfile generation, e.g., by intercepting execution calls of the subject program and writing to the logfile.
[0048] In step 208, operation of the subject program by the interacting user is performed, e.g. the interacting user provides input and receives output in normal use of the program. For example, the interacting user can interact with a graphical interface of the subject program, move a cursor within the program's interface, input commands to the subject program, access various functions of the program, receive output from the subject program, etc. The image log data and trace log data is generated during this operation.
[0049] In step 210, the subject program terminates, from either an undesired termination such as crashing due to a bug or from some other undesired event or error, or from a normal and desired termination such as the interacting user selecting an exit command, a time duration expiring, etc. The process thus ends at 212.
[0050] FIG. 4 is a flow diagram illustrating one example of a method 250 for recording image log data including features described herein. The method 250 can be implemented by the separate process or thread launched by the subject program in step 204 of FIG. 3, for example, and performed during operation of the subject program by the interacting user.
[0051] The method 250 begins at 252, and in step 254 the method goes to "sleep" for 1/f seconds, where f is the framerate of recording image log data in frames per second (fps). This allows the process to "wake up" f times per second to perform the check of step 256 at each wakeup. In step 256, the process checks whether the subject program is still executing, e.g., whether or not the subject program has terminated and additional image log data should still be recorded. In some embodiments, this check can be performed by sending a query to the operating system process table of the system 10 running the subject program and the method 250, to determine if an entry is present in the process table corresponding to the subject program. If the subject program is not executing, the process continues to step 264 to render video including captured images, as detailed below.
[0052] If the subject program is still executing, then in step 258 the process takes a snapshot image of the use of the program by the interacting user. For example, the snapshot can be of the user's desktop image on the display screen as the subject program is running, or the snapshot can be of a designated window or other defined area of the screen. In some embodiments, this snapshot can be captured and received using a query or command to a display server program running on the system 10 (e.g., X-server for a UNIX operating system) or to another display utility which performs the image capture and sends it to the method 250. In other embodiments, the snapshot-capture functionality can be included in the subject program or log generation block.
[0053] The captured image is stored on a storage device. In some embodiments, the image is stored in a ring buffer in the next available storage space. If the ring buffer is full, then the space storing the oldest captured image is overwritten with a newly-captured snapshot to maintain a predetermined maximum number of captured images in the buffer. In this way, only a subset of the captured images is stored in the ring buffer to conserve storage space. For example, the subset of images are the most recent snapshots, which can depict visual user interaction during a predetermined period of time occurring before a current point in time when the newly-captured image is stored. The most recent snapshots are likely to be the most pertinent images related to any subsequent termination of the program. The ring buffer scheme allows storage space to be efficiently used and re-used when recording images for indeterminate duration, as is often the case in described embodiments when generating image log data for program execution. Some embodiments can include a user-specified setting as to how many images are stored before the oldest images are overwritten, e.g., specified in seconds of execution, number of frames, etc.
[0054] In step 260, the process determines and stores the current location of a user-controlled cursor. For example, a standard query or command can be sent to an operating system process that provides coordinates of a mouse pointer or other user-controlled cursor indicating the position of the cursor in a referenced display area, such as a desktop or program window. In some embodiments, the cursor coordinates can be stored in a storage device (e.g., directory) with the associated snapshot taken in step 258, or with an identifier correlating it with the snapshot taken in step 258. Some embodiments can store the coordinates using a ring buffer scheme similarly as above, e.g., in the same ring buffer as the snapshot, or in a different (corresponding) ring buffer. In other embodiments, the coordinates are stored in a different storage device (e.g., memory 14) and a link between the stored cursor coordinates and the corresponding image snapshot can be stored. In some embodiments, a timestamp can be stored with the coordinates indicating the time at which they were sampled or stored.
[0055] In step 262, the process determines and stores the current position of the trace logfile that is concurrently storing message entries from program execution. This logfile position can be represented in different ways. For example, a current size of the logfile can be specified, indicating an offset (e.g., in bytes or other measure) from the beginning of the logfile and a position of the current end of the logfile, where this location corresponds to the interacting user's current activity. The position can be specified in other ways in other embodiments. In some embodiments, this logfile position can be obtained using a query to the operating system for such information. In some embodiments, the logfile position can be stored using a ring buffer scheme as described above, e.g., in a different ring buffer entry or the same ring buffer that stores the corresponding snapshot taken in step 258 and/or cursor coordinates stored in step 260.
[0056] In some embodiments, all three of these pieces of information (snapshot, cursor location, and logfile position) can be stored using a ring buffer scheme as described above. For example, this scheme can be implemented to store no more than F*D pieces of information, where F is the frame rate in frames per second, and D is the duration of the video (image sequence) to record before overwriting data in the buffer. In some embodiments, for example, storage of the snapshots can utilize disk storage due to the large amount of data to be stored, and storage of the cursor coordinates and logfile position can be stored in memory in a ring buffer. For example, during the storage of files including the snapshots, filenames of these files can be generated using modulo F*D arithmetic such that earlier filenames and snapshots are automatically overwritten on the storage device.
[0057] Referring back to step 256, if during a wakeup the process determines that the subject program is no longer executing (e.g., a corresponding entry in the process table is not found), then the image recording process is over and in step 264 a rendering of video (or other image sequence) log data from the snapshots is performed. This rendering is described in greater detail below with respect to FIG. 5. The process is then complete at 266.
[0058] FIG. 5 is a flow diagram illustrating one example process of step 264 of FIG. 4, in which snapshot images are rendered into video log data. This process occurs after program termination such that both image log data (e.g., snapshots) and trace log data generated during program execution up to program termination are available. The process begins at 302, and in step 304 the snapshot images are ordered by the time of their creation. For example, in the example from FIG. 4, F*D snapshots were created, where F is the frame rate in frames per second, and D is the duration of the video (which in some embodiments can be determined at least in part by the size of the ring buffer). The snapshots can also be converted to an appropriate format allowing image processing. For example, in some embodiments the snapshots can be converted to PNG files, JPG files, or other format. In step 306, the trace logfile is processed for display. This allows the logfile to be displayed in the desired format. For example, in some embodiments, the trace log data and image log data can be displayed by a standard web browser, which typically displays an HTML (Hypertext Markup Language) file. In some of these embodiments, the trace logfile can be processed by modifying the trace logfile (or creating a copy and modifying it) by adding a header section to the logfile, such as an HTML header (e.g., the first 11 lines in example Listing 2 below), allowing display of the logfile messages by the viewer block 30.
[0059] In step 308, the process checks if there is another frame of the image log data to process. If not, the process continues to step 324, described below. If there is another frame to process, then in step 310 one of the snapshots is obtained (such as the next snapshot in the order of step 304, or in a user-specified order) to form the basis of the video frame. In step 312 cursor coordinates are obtained corresponding to the obtained snapshot. For example, the coordinates can represent the location of a mouse pointer controlled by the interacting user at the time that the snapshot was recorded. These coordinates were stored in step 260 of FIG. 4. In some embodiments, the cursor coordinates are obtained from a storage entry corresponding to the obtained snapshot, or by matching an identifier associating them to the obtained snapshot (timestamp, number ID, etc.). In optional step 314, a cursor image is composited on the frame based on the obtained cursor coordinates. This step can be performed in embodiments in which an image of the cursor is not captured in the recorded snapshot image, so that an image of the cursor can be added to allow a reviewing user to have reference as to the actions the interacting user was taking at the time that the image log data was recorded. For example, a bitmap or other form of image of a cursor can be positioned at the retrieved coordinates within the snapshot image of the frame.
[0060] In step 316, the frame is written to a target directory that stores the video frames of the image log data. In step 318, trace logfile entries corresponding to the frame are read. These are one or more logfile messages that describe the execution of the subject program during or corresponding with the visual output depicted by the frame. For example, these entries can include logfile messages describing reception of coordinates of a mouse pointer when the interacting user pressed a mouse button, or reception of a command corresponding to a displayed button selected by the mouse pointer. To read the corresponding logfile entries, the logfile position corresponding to the current frame (e.g., stored in step 262 of FIG. 4) can be obtained from storage and the entries in the logfile can be read up to that position. For example, entries can be read from the last logfile position corresponding to the last frame displayed, to the logfile position of the frame currently displayed. In other embodiments, the corresponding logfile entries can be determined in other ways, such as by matching the obtained cursor coordinates of step 312 to cursor coordinates stored in the logfile, or by comparing timestamps or other links. In step 320, the process determines whether there are any trace logfile entries corresponding to the composite frame, e.g., whether the number of logfile entries retrieved in step 318 is greater than zero. For example, there may be no corresponding entries to the frame if no messages were written into the trace logfile after the last snapshot was taken. If there are no corresponding logfile entries, then the process returns to step 308 to check for another frame.
[0061] If there are corresponding logfile entries, then in step 322 tags are inserted in the modified trace logfile (e.g., marked-up version of logfile). The modified logfile is a version of the trace logfile that includes tags to allow highlighting and synchronization of entries of the logfile with display of the image log data. In some embodiments, one or more synchronization tags can be inserted in the modified logfile at the logfile position corresponding to the current frame (the logfile position was read from storage in step 318). The synchronization tags associate the position in the logfile with the frame, allowing, for example, the corresponding portion of the logfile to be scrolled into view of the interface 100 during the display of the corresponding frame of the image log data in video playback. For example, a synchronization tag can include a frame number that is the same as a frame number of the corresponding frame.
[0062] Highlighting tags can also be inserted in the modified logfile for the logfile portion or entry(ies), such as a message representing a user command interaction with the subject program. The highlighting tags cause the tagged log file entry to be highlighted or otherwise indicated during the display of the corresponding frame, such as with the highlight indicator 140 described above in the example of FIGS. 2A-2B. The process then returns to step 308 to check for another frame.
[0063] Referring to step 308, if it is determined that no additional frames are to be processed (e.g., there are no more recorded unprocessed image snapshots), then the method continues to step 324, in which the modified logfile is processed for display with any needed finalization modifications, such as additional tags for display in a web browser or other viewer (e.g., a closing </html> tag in an HTML file). The process is then complete at 326.
[0064] Example Listing 1 below provides an example line of a modified logfile which can include inserted tags to allow display of the trace log data in synchronization with image log data. This example is shown in HTML format, but other formats can be used in other embodiments.
TABLE-US-00001 Listing 1 <span id="frame24"> <a name="frame24"> </a> \a_treeNavSelectionClear(dwindow(`treeAssistant1))</span>
[0065] Example Listing 1 includes "<span>" tags used as highlighting tags for highlighting the text within these tags (between "<span" and "</span>"). In this example, the term "_treeNavSelectionClear (dwindow('treeAssistant1))" represents a trace logfile entry, that entry corresponding to an interacting user's interaction with a particular component of a graphical editing application 26, such as providing a "clear" command for a selection. Thus this entry corresponding to a particular user interaction is highlighted. Example Listing 1 also includes anchor ("<a>") tags used as synchronization tags for causing the log entry to be scrolled into view during playback of the corresponding frame of the image log data. In this example, the "<span>" and "<a>" tags specify a frame number that is matched to a corresponding frame in the sequence of frames making up the video log data.
[0066] Example Listing 2, below, provides a longer example portion of a modified logfile.
TABLE-US-00002 Listing 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head> <style type="text/css"> body .err { border: 1px solid #FF0000 } /* Error */ </style> </head> <body> <html> <body> <pre> \# Program start time UTC 2011.09.07 02:33:25.574 \# Local time Tuesday 6 September 2011, 7:33 pm \o Program: @(#)$CDS: version XXX 09/05/2011 11:45 (sjfd1234) $ \o Hierarchy: /grid/cic/cm_t1b_002/main/lnx86/32/110905- 125/tools.lnx86/dfII/ \o Sub version: sub-version IC6.1.5.main.125 (32-bit addresses) \# Host name (type): sjvnc07 (×86_64) \# Operating system: Linux 2.6.9-89.0.19.ELsmp #1 SMP Wed Dec 30 12:52:55 EST 2009 \# X display name (W×H): :96.0 (1600×1100) [.. snipped ..] <span id="frame24"><a name="frame24"></a>\a _treeNavSelectionClear(dwindow(`treeAssistant1))</span> <span id="frame29"><a name="frame29"></a>\r t</span> \a _treeNavSelect(dwindow(`treeAssistant1) "/I12(schematic) Inst") \r t <span id="frame30"><a name="frame30"></a>\a _treeNavSelectionClear(dwindow(`treeAssistant1))</span> \r t \a _treeNavSelect(dwindow(`treeAssistant1) "/I18(schematic) Inst") \r t <span id="frame32"><a name="frame32"></a>\a _treeNavSelectionClear(dwindow(`treeAssistant1))</span> \r t \a _treeNavSelect(dwindow(`treeAssistant1) "/I32(schematic) Inst") \r t <span id="frame35"><a name="frame35"></a>\i exit</span> <span id="frame42"><a name="frame42"></a>\o </span> \o Loading cph.cxt \# Memory report: on exit 113987584 (0x6cb5000) bytes, UTC 2011.09.07 02:34:39.866 \# Memory report: peak usage 113827840 (0x6c8e000) bytes <span id="frame48"><a name="frame48"></a></pre> </body> </html>
[0067] In Listing 2, multiple user commands are tagged with the <span> and anchor tags. There are some gaps in the frame numbers, such as between "frame30" and "frame32" and between "frame32" and "frame35." These gaps correspond to ranges of frames obtained during a time in which no program execution or user interaction was active or recorded in the trace logfile. For example, the subject program may have been essentially idle during these periods.
Playback of Image and Text Log Data
[0068] FIG. 6 is a flow diagram illustrating one example of a method 400 for playing back a log of program execution including trace log data and image log data. The method 400 can be implemented, for example, by viewer block 30 on a system 10 by a reviewing user who wishes to view the previously-generated/recorded log data. For example, in some embodiments providing a modified logfile in an HTML format, the viewer 30 can be a web browser or other application that can view HTML documents and display images and videos. Other embodiments can provide the log data in a different format that is viewable by a different type of viewer program.
[0070] The method 400 begins at 402, and in step 404 the process checks whether a video display of image log data has started. For example, the display can be a video animation of a sequence of the images of the subject application recorded during the interacting user's operation of the program. In some embodiments, the reviewing user can select a control, such as a start button 124 as shown in FIGS. 2A-2B, to begin the video log data playback. If the video log display has started, then in step 406 the process checks whether there is another frame in the video sequence of images to display. For example, if the display is at the end of the video sequence, there are no further images. In such a case, the process continues to step 408 to check if a looping function for the playback is enabled. If so, in step 410 the video playback is reset to start from the first frame at the beginning of the video sequence, e.g., starting at a point D seconds before the program terminated, and the process returns to step 404. If looping is not enabled, the process terminates at 411.
[0071] If there is another frame to display in step 406, then in step 412 the next frame is determined. In step 406 and 412, the next frame can be in any sequence or order, e.g., selected by the reviewing user. For example, the video images may have been selected to be played in reverse order (e.g., using controls displayed in an interface), such that the next frame to display is prior in time to the frame just displayed. In some embodiments, the reviewing user can select a frame (such as a frame number) displayed in the trace logfile being displayed in the interface 100 to provide random access to any frame such that the next frame to be displayed is determined by this selection. In next step 414, the process sleeps for a time period of 1/F*M, where F is the framerate in frames per second and M can be a user-specified slow-motion multiplier factor. For example, the default playback rate can be at the same framerate as in the recording of the snapshot images for the image log data, but this playback framerate can be delayed to view the log data more slowly by increasing M to a desired level and increasing the sleep time.
[0072] In step 416, the next frame is displayed. For example, the frame can be displayed in the image view 104 of the interface 100 as shown in the example of FIGS. 2A-2B. In step 418, the process checks whether there is a synchronization tag corresponding to the displayed frame in the modified logfile. As described above, synchronization tags (such as anchor tags) can be included in the modified logfile to mark a location in the logfile which corresponds to a particular image snapshot of the image log data. Step 418 can check whether the logfile has a synchronization tag (and/or highlighting tag) corresponding to the displayed frame. For example, in Listing 2, the frame number of the current frame can be matched to the frame number listed in a tag. If there is no synchronization tag corresponding to the current frame, the process continues to step 426, detailed below.
[0073] If there is a corresponding synchronization tag, then in step 420 the corresponding tag is scrolled into view in the display of the viewer program, such as in the trace log view 102 of interface 100 of FIGS. 2A-2B. The synchronization tag itself is not visible, but by displaying the tag, the message entry of the trace logfile associated with the tag is displayed by the viewer program. In step 422, all currently-highlighted entries of the trace logfile are un-highlighted, such as one or more entries of the logfile associated with a previously-displayed frame. In step 424, the entry of the trace logfile for the currently-displayed frame is highlighted. For example, this highlighting can be based on highlighting tags (e.g., span tags) as in the examples described above. These displaying and highlighting steps of the logfile entry corresponding to the displayed image has the effect of synchronizing the trace logfile display with the display of video frames.
[0075] In some embodiments, only partial synchronization between the display of the trace logfile messages and image log data can be provided. For example, in some embodiments synchronization can be based on the recorded cursor coordinates of step 260 of FIG. 4 matching cursor coordinates stored in the trace logfile as part of program execution, where there may be periods of time in which no coordinates are stored in the trace logfile due to the user performing particular actions (e g , minimizing a window, opening a file) which may not cause cursor coordinates to be stored in the logfile. Even at times when there is no display synchronization between the trace logfile and image playback, the image log data playback still can assist a reviewing user to see the context of user actions and help diagnose an error or crash in the program.
[0076] In some embodiments, a ring buffer can also be used for trace logfile entries. For example, only the last portion of the logfile that was generated before a crash or other program termination would be stored in the buffer.
[0077] In other embodiments, the above-described input from an interacting user to a subject program is not directly provided by a user, but is provided by another system or program, or is read from a storage device such as a disk or memory.
[0078] It should be noted that the order of steps shown in the methods described above are only examples. In other embodiments, a different order of steps can be used, or some steps can be performed simultaneously, depending on preference or implementation.
[0079] Although the present embodiments have been described in accordance with the examples shown, one of ordinary skill in the art will readily recognize that there could be variations to the embodiments and those variations would be within the spirit and scope of the present inventions. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.
Patent applications by Donald J. O'Riordan, Sunnyvale, CA US
Patent applications by Cadence Design Systems, Inc.
Patent applications in class Output recording (e.g., signature or trace)
Patent applications in all subclasses Output recording (e.g., signature or trace)
User Contributions:
Comment about this patent or add new information about this topic:


text:
Celebrate the moments of iconic action and relive the timeless adventures and from Star Wars: Rogue One with this premium 6-inch replica figure of Captain Cassian Andor from Star Wars The Black Series.
An accomplished Alliance Intelligence officer with combat field experience, Captain Cassian Andor commands respect from his Rebel troops with his ability to keep a cool head under fire and complete his missions with minimal resources. Outfitted with his signature blaster rifle, and 2 prime accessories, this 6-inch Captain Cassian Andor figure from The Black Series features premium deco across multiple points of articulation and quality realism for iconic role play and ultimate collectability.
Embark on an epic journey alongside Captain Cassian Andor and the Rebel heroes, as you battle against the Imperial officers who are charged with protecting the Galactic Empire's most fearsome and deadliest construction, the superweapon known as the Death Star.
Build up an epic collection with this 6-inch Captain Cassian Andor figure and other figures and vehicles from Star Wars The Black Series, each sold separately. May the Force be with you!
Includes figure and 2 accessories.
WARNING: CHOKING HAZARD – Small parts. Not for children under 3 years.
Ages 4 and up.
|Character Series:
Please remember to add postal time (2-3 working days) to obtain a complete estimate of delivery to your door.
You will receive an email to confirm when your item has been sent.
You can also check the status of your order and individual items by accessing My Account details and following the prompts.
Please allow 10 working days from dispatch of your order before notifying us of any late deliveries.
It may be advisable to check with your neighbours to see if a parcel has been left with them, check any outhouses you might have where it may be left if it cannot fit through your letterbox and contact your local sorting office to see if the item has been returned to the depot as undelivered and awaiting collection.
Please see our returns policy.
Average connection time 25 secs
There are currently no reviews.


text:
Aqua Allegoria Foliflora Perfume
By Guerlain for Women
Aqua Allegoria Foliflora Perfume by Guerlain, From the venerable house of guerlain, (whose family has been crafting fine fragrance since the late 1890s), the aqua allegoria scents are very 2ist century and targeted to the younger generation. This is a green floral fragrance for women, which was inspired by a long, fragrant walk through acres of french country gardens. The notes are bergamot, neroli, white freesia, gardenia, peach, water lily, sandal, amber and vanilla All products are original, authentic name brands. We do not sell knockoffs or imitations. ... Read More
- Y Tu Tambien
- Yardley Iris
- Yardley London
- Yardley London Soaps
- Yardley Peony
- Yellow Jeans
- Yendi
- Yendi De Capucci
- Yerbamate
- Yes We Can
- Yin
- Yin 2
- Yin Yang
- Ylang In Gold
- Yohji Essential
- Yohji Yamamoto
- You & I
- You & Me
- You Are Divine
- Young For Ever
- Young Sexy Lovely
- Youth Dew
- Youth Dew Amber Nude
- Ysatis
- Ysatis Iris
- Ysl
- Yujin Art
- Yujin Ecstacy
- Yujin Paradise
- Yujin Sensual
- Yujin Star
- Yujin Starnight
- Yves d'Orgeval
- Yves De Sistelle
- Yves dOrgeval
- Yves Rocher
- Yves Saint Laurent
- Yves Sistelle
- Yvresse
- Yvresse Legere
- YZY Perfume
Sorry, Aqua Allegoria Foliflora is not in stock
Enter your email and click "Notify Me" and we will email you as soon as it comes back in stock.
This product has 1 Out of Stock items |
Customers Who Bought This Item Also Bought
About Guerlain
History and background of Guerlain. Entering the Guerlain universe means crossing the threshold into an exceptional world where respect for tradition and a feel for innovation weave the most beautiful creations. Guerlain has been in existence for nearly 170 years and for a company so firmly anchored in history, the challenge has always been to reconcile the richness of tradition with a sense of innovation Read more about Guerlain
More Guerlain fragrancesfor Women: Shalimar , Samsara , La Petite Robe Noire , Champs Elysees , Insolence , more
for Men: Habit Rouge , Vetiver Guerlain , L'instant , Heritage , Guerlain Homme , more
See all Guerlain products
Customer Comments
Liked the service very much--letting me know what I ordered and the cost. Prompt delivery--exactly what I wanted and what was described. I already put in another order and shall continue to use thei service. Happy Customer, Thanks much!
E. Christianson (Pleasant Hill, CA)
Reviewed by 1 customer
- And Young at Heart
- Perfect for the young
- Refreshing and entrancing
Best Uses
- spring and summer
Comments about Aqua Allegoria Foliflora By Guerlain:
Given as a gift to my Daughter. She loves it.
- Gift:
- Yes


text:
PHILADELPHIA — — The hard feelings have eroded over time, thanks in large part to a Monday ceremony during which the Philadelphia Eagles retired Donovan McNabb's number five and he officially retired as an Eagle.
But his doubts about who was behind his departure from the organization in 2010 remain.
The starting quarterback for all or parts of 11 seasons told reporters after Monday's news conference that his phone conversation with then coach Andy Reid on the day he was traded revealed no answer, and he's still curious about how the whole thing went down.


text:
RICHMOND (AP) — The Virginia Supreme Court has refused to reconsider its decision to dismiss a wrongful death verdict against the state stemming from the 2007 Virginia Tech shootings.
L. Steven Emmert, an attorney for the families of Erin Peterson and Julia Pryde, said he received the court's order Tuesday.
Peterson and Pryde were among the 32 people slain by a student who committed suicide as police closed in. It was the deadliest mass shooting in modern history.
In March 2012, a jury found that the state should have issued more timely campus warnings after the first two victims were shot. The state Supreme Court overturned the verdict on Oct. 31, concluding that Tech administrators had no way to anticipate the gunman planned to shoot more people.
You must be logged in to post a comment Login


text:
Police: Woman drove drunk with children in car
Police said they contacted the state Department of Children, Youth and Families.
A Middletown woman is accused of driving drunk with her two young children in the vehicle.
Erin Hebel, 51, was charged with driving under the influence and refusal to submit to a chemical test. She is due in Newport District Court on Friday.
Police said they got a call at about 5:45 p.m. on Feb. 22 to check on the condition of a driver on Aquidneck Avenue.
The officer who responded detailed what he saw in a police report obtained by NBC 10.
The officer said he pulled into a 7-Eleven store at the corner of Aquidneck and Green End avenues when he observed a tan SUV drive by.
The car took a left onto Green End Avenue and the officer followed. The officer said he observed the vehicle swerving in its lane of travel and crossing the white fog line, nearly missing a mail box.
From Green End Avenue, the officer said he observed the driver take a right onto Morrison Avenue. He said she ran over the curb, clipped a snow bank and crossed the travel lane, ending up with her left tires on the grass.
Police identified the driver as Hebel. Her two passengers were her two daughters, 1 and 2 years old.
Police said a cup in the center console with brown liquid had a positive reading for alcohol. Police also said inside Hebel's purse was an empty pint of vodka, a full pint of vodka, and prescription medication.
After some field sobriety tests, Hebel was taken back to police headquarters, where police said she initially agreed to take a chemical test, but said, "Well, I know that I have alcohol in my system. I just want to know what the consequences are."
Police said after speaking with her lawyer, Hebel refused the chemical test.
There was no comment at Hebel's home Tuesday.
Police said they contacted the state Department of Children, Youth and Families.