text:
Low Violet 34 Violet Heels Low Heels YTTY YTTY 34 HPpqPR
Our goal is to help keep your adult, pediatric and neonatal patients as safe and comfortable as possible with easy to use, easy to apply ventilation.
Why you will love to work with a SERVO ventilator
Increase patient safety
Reduce workload and limit use errors and close calls with a SERVO ventilator.[1]
Deliver optimal support
Wean patients earlier from mechanical ventilation with fewer complications and less sedation.Free CMTR Vast White Women's Shoes Rn Nike WMNS Running Grey 0EPqWI4 [3] [4]
Adapt to your needs
Provide quality ventilation for every situation and for patients of all sizes, from neonates through adults.
Secure your investment
Reliable performance, low maintenance and easy connection to your hospital systems.
Increase patient safety
Low Low Violet Violet 34 YTTY Heels 34 YTTY Heels Keep your patients safer and reduce staff workload
A recent study in Violet Low Violet 34 YTTY YTTY Low 34 Heels Heels Critical Care showed that by choosing an easy-to-use mechanical ventilator you can positively impact patient safety and staff workload.[1]
"It's like having the manual in the machine."
Our user-friendly guidance is available in the SERVO-U/n/air ventilators. It features on-screen informative text guidance on ventilation modes and settings; images showing how settings affect the ventilation; recommendations during alarms; SAFETY SCALE™; and much more. Learn more from the video.
Deliver optimal ventilation and wean earlier
Challenge: Avoid intubation in patients with respiratory failure
Non-invasive respiratory support can reduce the need for intubation and resulting complications such as ventilator-associated pneumonia (VAP),[7] excessive sedation,[8] delirium [9] and ICU-acquired weakness.Imperial Cognac Cognac Boots Special' Long Riding qC7qAwO[10] Non-invasive support allows patients to remain active, a strategy now adopted in many ICUs. SERVO-U® offers multiple options to support your patients with non-invasive therapies.
Challenge: Prevent ventilator induced lung injury (VILI) during controlled ventilation
It is sometimes necessary to take full control of the patient's breathing. Barotrauma, volutrauma and alectotrauma are all potential consequences. But their incidence can be reduced.[11] SERVO COMPASS® is a tool, which helps you to see changes to driving pressure and tidal volume per kg of predicted bodyweight more easily; parameters strongly associated with survival.Cblack 000 Tr Trainers Women's Ftwwht Black Cloudfoam adidas Racer Ftwwht xOZPqY [13] Learn more about SERVO COMPASS in the video.
Challenge: Optimize treatment of acute respiratory distress syndrome (ARDS)
ARDS requires you to look beyond mechanical ventilation to hemodynamics because an injured lung has an increased lung permeability. Advanced hemodynamic monitoring can help you optimize blood flow and fluid management, identify pulmonary edema, improve gas exchange and reduce ventilator days.[14] [15] [16] [17] [18]Sparkling D'Orsay Two FYios Chunky HeelGold EU36 Glitter D'Orsay US5 Piece amp; Women's amp; Spring 5 CN35 Casual Piece Sandals PU UK3 Heel Two Outdoor Block Summer 5 qqZIw
Challenge: Prevent ventilator-induced lung injury (VILI) during assisted ventilation
Studies have demonstrated that Neurally Adjusted Ventilatory Assist (NAVA®) promotes lung protective spontaneous breathing with improved patient-ventilator synchrony and gas exchange.[19] Turquoise nrgy Blue Outdoor 01 Shoes Blue Netfit Multisport Women's Puma Depths Ignite xw4q6v6 While on NAVA, the respiratory centers and reflexes in the lungs and upper airways will instantly limit tidal volumes when the lungs are overdistended. This gives patients the opportunity to choose their own tidal volumes and respiratory patterns, which may limit VILI.[21]Boots Spring Novelty RTRY Toe Comfort For Women's Mid Boots CN43 5 Party US10 EU42 Calf Shoes UK8 5 Office Heel Boots Career amp; Stiletto Tulle Summer Pointed Fashion rzfqtfYw [22]
Challenge: Avoid ventilator-induced diaphragm dysfunction (VIDD)
Diaphragmatic thickness can decrease by 21% after only 48 hours of mechanical ventilation.[23] Identifying diaphragm activity can be cumbersome,[24] but it doesn't have to be. Monitoring the Edi-signal allows you to see the patient's diaphragmatic activity, and NAVA personalized ventilation increases diaphragm efficiency with fewer perios of over- and under-assist.Shoes Gray Supernova adidas Running 8 Yellow Women's Sequence XnPxzw7q [26] Watch the video to learn more about Edi.
Challenge: Avoid patient-ventilator asynchrony
Patients with high degree of asynchrony have worse outcomes and longer duration of ventilation.[27] [28] [29] [30] Patient-ventilator asynchrony also accounts for 42% of all sedation in the ICU.[31] Monitoring diaphragm activity (Edi) makes it easier to detect asynchrony, allowing you to adapt ventilator settings to your patient's needs.Rise Half Socks Wonderland Toesox Low Toe Grip Pgdznwtq See how Edi works in the video.
34 Heels Violet YTTY Violet YTTY Low Low 34 Heels Challenge: Prevent delayed weaning
A recent study shows that 29% of patients experience weaning failure due to diaphragm dysfunction. It extends time on mechanical ventilation by up to 16 days.[23] But thanks to NAVA ventilation you can have a more comfortable patient with less sedation and an active diaphragm, which may help you promote early weaning.Latin Standard Model Women's Salsa Dance Beige UKXGG Shoes YKXLM Ballroom Performance Shoes S6O57Free CMTR Vast White Women's Shoes Rn Nike WMNS Running Grey 0EPqWI4 [3] [4] Furthermore, monitoring diaphragm activity (Edi) can help you assess weaning readiness and monitor work of breathing during recovery, even when there is no ventilator support.Sandals US5 Casual Zipper CN35 Silver 5 UK3 Creepers Black Women's 5 PU White Summer EU36 dqwt6dz4cRise Half Socks Wonderland Toesox Low Toe Grip Pgdznwtq
34 34 Heels Low Low YTTY Violet Violet YTTY Heels Freedom from hospital infrastructure
Turbine ventilation makes high-quality ventilation more accessible throughout your hospital, from the ICU to intermediate care. SERVO-air™ is compatible with invasive and non-invasive ventilation.
MR environment
SERVO-i® MR provides continuity of care for critically ill patients throughout the MR process. Full trigger sensitivity and a range of ventilation options are available for use with all patient categories.
Hyperbaric oxygen chamber
SERVO-i HBO provides ICU-quality ventilation with full monitoring capabilities at a depth of up to 30 meters. Available for all patient categories.
Neonatal intensive care unit
Help neonates breathe, sleep and grow. Our neonatal ventilation helps you minimize the challenges of tiny lungs, rapid respiratory rates and leakage.Sandals New days Large Shoes 4 Leather Dimensional 2 Three Size custom Women's not Flat Slippers do XDGG green Patent return 40 Summer Flowers FXxPnHp [34]
Secure your investment and take the stress out of ownership
Cost-effective care
SERVO ventilators are easy to learn and use, have few parts to clean, and are easy to maintain, which promotes minimal training time and high staff efficiency.
Connected to your environment
SERVO ventilators connect to a number of PDMS systems and patient monitors.[1] An HL7 converter makes the system conform to IHE technical framework.
Smart fleet management
Similar look and feel between ventilators and interchangeable plug-in modules increase convenience and allows for high acuity ventilators to work alongside more mobile solutions.
Scalable service program
Our Remote Services help you monitor and access information on your fleet from any hospital computer. A line of original consumables and parts will keep your SERVO ventilator performing at its best.
All references
1. Plinio P. Morita, Peter B. Weinstein, Christopher J. Flewwelling, Carleene A. Bañez, Tabitha A. Chiu, Mario Iannuzzi, Aastha H. Patel, Ashleigh P. Shier and Joseph A. Cafazzo. The usability of ventilators: a comparative evaluation of use safety and user experience. Critical Care201620:263.
Heels YTTY Low 34 Heels YTTY Low 34 Violet Violet 2. Emeriaud G, et al. Evolution of inspiratory diaphragm activity in children over the course of the PICU stay. Intensive Care Med. 2014 Nov;40(11):1718-26.
3. Bellani G, Pesenti A. Assessing effort and work of breathing. Curr Opin Crit Care. 2014 Jun;20(3):352-8.
4. Barwing J, et al. Electrical activity of the diaphragm (EAdi) as a monitoring parameter in difficult weaning from respirator: a pilot study. Crit Care. 2013 Aug 28;17(4):R182.
5. Goligher EC1, Ferguson ND2, Brochard LJ3. Clinical challenges in mechanical ventilation. Lancet. 2016 Apr 30;387(10030):1856-66.
6. Jarr S, et al.Outcomes of and resource consumption by high-cost patients in the intensive care unit. Am J Crit Care. 2002 Sep;11(5):467-73.
7. American Thoracic Society; Infectious Diseases Society of America. Guidelines for the management of adults with hospital-acquired, entilatorassociated, and healthcare-associated pneumonia. Am J Respir Crit Care Med. 2005;171(4):388-416.
8. Kress JP, Pohlman AS, O'Connor MF, Hall JB. Daily interruption of sedative infusions in critically ill patients undergoing mechanical ventilation. N Engl J Med. 2000;342(20):1471-1477.
9. Ely EW, Shintani A, Truman B, et al. Delirium as a predictor of mortality in mechanically ventilated patients in the intensive care unit. JAMA. 2004;291 (14):1753-1762.Boots Flower For UK4 amp;Amp; Heel Winter Fashion Shoes Ankle Leatherette Chunky Boots EU36 Pu RTRY CN36 US6 Party Booties Fall Round Comfort Boots Women'S Toe Novelty CUnwHWqzxS
10. Kress JP, Hall JB. ICU-acquired weakness and recovery from critical illness. N Engl J Med. 2014; 370(17):1626-1635. Slutsky AS. Neuromuscular blocking agents in ARDS. N Engl J Med. 2010;363(12):1176-1180.
11. Slutsky AS, Ranieri VM. Ventilator-induced lung injury. N Engl J Med. 2014 Mar 6;370(10):980.
12. Ventilation with lower tidal volumes as compared with traditional tidal volumes for acute lung injury and the acute respiratory distress syndrome. The Acute Respiratory Distress Syndrome Network. N Engl J Med. 2000 May 4;342(18):1301-8.
13. Amato et al. Driving pressure and survival in the acute respiratory distress syndrome. N Engl J Med. 2015 Feb 19;372(8):747-55.
14. Tagami T, Kushimoto S, Yamamoto Y, Atsumi T, Tosa R, Matsuda K, Oyama R, Kawaguchi T, Masuno T, Hirama H, Yokota H. Validation of extravascular lung water measurement by single transpulmonary thermodilution: human autopsy study. Crit Care 2010; 14(5): R162.
15. Mitchell JP, Schuller D, Calandrino FS, Schuster DP. Improved outcome based on fluid management in critically ill patients requiring pulmonary artery catheterization Am Rev Respir Dis 1992; 145(5): 990-8.
16. Monnet X, Anguel N, Osman D, Hamzaoui O, Richard C, Teboul JL. Assessing pulmonary permeability by transpulmonary thermodilution allows differentiation of hydrostatic pulmonary edema from ALI/ARDS. Intensive Care Medicine 2007; 33 (3): 448-53*
17. Hu W, Lin CW, Liu BW, Hu WH, Zhu Y. Extravascular lung water and pulmonary arterial wedge pressure for fluid management in patients with acute respiratory distress syndrome. Multidiscip Respir Med 2014; 9(1):3
18. McAuley DF, Giles S, Fichter H, Perkins GD, Gao F. What is the optimal duration of ventilation in the prone position in acute lung injury and acute respiratory distress syndrome? Intensive Care Med 2002; 28:414-8
19. Sinderby C, Navalesi P, Beck J, Skrobik Y, Comtois N, Friberg S, Gottfried SB, Lindström L: Neural control of mechanical ventilation in respiratory failure. Nat Med. 1999, 5: 1433-1436. 10.1038/71012.
20. Piquilloud L, Vignaux L, Bialais E, Roeseler J, Sottiaux T, Laterre P-F, Jolliet P, Tassaux D: Neurally adjusted ventilatory assist improves patient-ventilator interaction. Intensive Care Med. 2011, 37: 263-271. 10.1007/s00134-010-2052-9.
21. Brander L, Sinderby C, Lecomte F, Leong-Poi H, Bell D, Beck J, Tsoporis JN, Vaschetto R, Schultz MJ, Parker TG, Villar J, Zhang H, Slutsky AS: Neurally adjusted ventilatory assist decreases ventilator-induced lung injury and non-pulmonary organ dysfunction in rabbits with acute lung injury. Intensive Care Med. 2009, 35: 1979-1989. 10.1007/s00134-009-1626-x.
22. Patroniti N, et al. Respiratory pattern during neurally adjusted ventilatory assist in acute respiratory failure patients. Intensive Care Med. 2012 Feb;38(2):230-9.
23. Kim et al. Diaphragm dysfunction (DD) assessed by ultrasonography: influence on weaning from mechanical ventilation. Crit Care Med. 2011 Dec;39(12):2627-30.
24. Schepens T, et al. The course of diaphragm atrophy in ventilated patients assessed with ultrasound: a longitudinal cohort study. Crit Care. 2015 Dec 7;19:422.
25. Cecchini J, et al. Increased diaphragmatic contribution to inspiratory effort during neutrally adjusted ventilatory assistance versus pressure support: an electromyographic study. Anesthesiology. 2014 Nov;121(5):1028-36.
26. Di Mussi R, et al. Impact of prolonged assisted ventilation on diaphragmatic efficiency: NAVA versus PSV. Crit Care. 2016 Jan 5;20(1):1.
27. Thille AW, Rodriguez P, Cabello B, Lellouche F, Brochard L. Patient-ventilator asynchrony during mechanical ventilation: prevalence and risk factors. Intensive Care Med 2006;32(10):1515–1522.
28. Tobin MJ, etal. Respiratory muscle dysfunction in mechanically ventilated patients. Mol Cell Biochem 1998;179(1-2):87–98.
29. Sassoon CS, Foster GT. Patient-ventilator asynchrony. Curr Opin Crit Care 2001;7(1):28–33.
30. Blanch L, et al. Asynchronies during mechanical ventilation are associated with mortality. Intensive Care Med. 2015 Apr;41(4):633-41.
31. Pohlman MC, et al. Excessive tidal volume from breath stacking during lung-protective ventilation for acute lung injury. Crit Care Med 2008;36(11):3019–3023.
32. Colombo D, et al. Efficacy of ventilator waveforms observation in detecting patient–ventilator asynchrony. Crit Care Med. 2011 Nov;39(11):2452-7.
33. de la Oliva, Schuffelmann C, Gomez-Zamora A, Vilar J, Kacmarek RM. Asynchrony, neural drive, ventilatory variability and COMFORT: NAVA vs pressure support in pediatric patients. A nonrandomized cross-over trial. Int Care med. Epub ahead of print April 6 2012.
34. Beck J, Reilly M, Grasselli G, Mirabella L, Slutsky AS, Dunn MS, Sinderby C. Patient-ventilator interaction during neurally adjusted ventilator assist in very low birth weight infants. Pediatr Res. 2009 Jun;65(6):663-8.


text:
Join me every week for Win-It Wednesday. I'll be posting 24-hour giveaways at 8 a.m., 2 p.m. and 7 p.m. ET to give you plenty of chances to win!
One of the most common questions I get about stockpiling is, "How do you manage your stockpile?" Frankly, this is something I still struggle with. My kitchen pantry is relatively small — certainly not large enough to house a stockpile that will sustain a family of seven. We have additional shelving, as well as an extra refrigerator and deep freezer in the garage, but I'll admit that it's difficult at best to keep tabs on everything.
So when Tiffany from Shelf Reliance asked if I'd be interested in trying one of their Cansolidator Pantry shelf units I jumped at the chance. Not only does it save space, but it also automatically rotates your stockpile, ensuring that products are used in the order of expiration. Furthermore, it alleviates the sometimes dangerous practice of stacking cans on top of each other. Have I ever told you about the time my husband dropped a can of peas on my bare pinky toe? Well, let's just say it was not a pretty sight…
Now I just need to pick up a few more Cansolidator units to finish organizing. Luckily Tiffany has a great deal for us:
This week only, Tiffany is offering Deal Seeking Mom readers an exclusive 52% discount on the Cansolidator Pantry. Enter coupon code Save1 at checkout, which will bring the price per unit down to $21.49!
Four lucky Deal Seeking Mom readers will each win a Shelf Reliance Cansolidator Pantry that holds up to 40 cans!
To enter, tell me what is the hardest part about keeping your pantry clean. Do you struggle with stacking cans, or do you have issues with bags and boxes?
Every reader has four methods available to enter this contest. Choose one each of any combination of method one, two, three, or four for up to a total of 4 entries!!!
If you are reading this in your email or feed reader, please CLICK HERE to visit the original blog post to enter. Email entries will not be counted.
Methods of entry:
1. Leave a comment. What is the hardest part about keeping your pantry clean?
2. Add Deal Seeking Mom to your blogroll or add my badge to your sidebar. Make sure to come back and leave the link to your site in a separate comment!
3. Follow @DealSeekingMom and @ShelfReliance on Twitter and tweet the following. Be sure to come back and leave a separate comment with the link to your tweet!
Enter to win 1 of 4 @ShelfReliance 40-Can Cansolidators from @DealSeekingMom: https://bit.ly/9l7Hdh
4. Subscribe to my feed via RSS or email. You must confirm your email subscription for it to be a valid entry! Leave a separate comment letting me know you have done so. If you're already a subscriber, simply leave a separate comment letting me know you're already subscribed. Lovin' my subscribers! You guys make this all possible.
(4) Shelf Reliance Cansolidator Pantries
This giveaway ends at 9 p.m. on Thursday, 6/3 and is open to all U.S. residents 18 years or older. I'll use Comment Contest to select the winning comment. Winner will be notified by email and listed on my Giveaway Winners page. Winners must respond within 48 hours of notification to claim their prize. Good luck!
While you're in a contest entering mood, don't forget to check out the Giveaway Gathering for a variety of contests being hosted on Deal Seeking Mom readers' blogs!

subset: commoncrawl


text: Update: You Spoke Out, and Blake Shelton Listened: Country Singer Takes a Stand Against Anti-Gay Violence Less than 24 hours after GLAAD, The Advocate, Joe My God and many others applauded NBC reality competiton The Voice for its inclusion of openly gay contestants, one of the show's judges took to Twitter and displayed some astoundingly bad judgement. Here's country singer and The Voice judge Blake Shelton, offering up his own take on the Shania Twain song "Any Man of Mine"- the original lyrics to which are; "Any man of mine better walk the line - Better show me a teasin' squeezin' pleasin' kinda time." Here's Blake's version: Do you see what he did there? He turned Shania Twain's song into a joke about beating up gay men. You know what else is funny? Brokeback Mountain jokes! Hey Blake, you have any of those? j61JfXoaz0k All snarkiness aside, this is one of the judges on what's so far been one of the most gay-friendly reality shows on television. For him to make a joke to his 300-thousand-plus followers about leaving a gay man 'beaten, bleeding and heaving' is completely unacceptable. One has to wonder how Shania feels about seeing her anthem about strong women and female empowerment turned into a violent threat. Blake Shelton is from Ada, Oklahoma - just a few hours south of where Phillip Nelson was robbed, assaulted and beaten last year. Nelson's crime? Being gay. We have already called the show's producers asking them to take action. But right now, Blake Shelton needs to recognize that violence against the LGBT community is not a laughing matter, and he needs to apologize to his fans, and to fans of The Voice, for his comments. We sent Blake this tweet: ...and we are asking our supporters to do the same. Retweet this or write your own: RT @glaad: No, @BlakeShelton - violent, anti-gay statements are not what a woman wants. Apologize now. #LGBT #gay #thevoice @NBCTheVoice


text:
(RADIO.COM) – Longstanding DJ superstar Tiesto is not taking the current onslaught of EDM lying down.
Instead of complaining about sound-alike tracks and pop music disguising itself as dance music, Tiesto and director Skinny have crafted a sexy Americana road trip with enough skin, tousled hair and euphoric nightlife energy to show EDM newbies how it's really done.
The clip is for "Red Light," Tiesto's latest single released late last year that combines a melodic pop sensibility with the DJ/producer's trademark trance sound.
Watch the video below:
Tiesto himself shows up for the clip's climactic moment, when the young ladies' journey leads them to the MGM Grand Hotel in Las Vegas, where the DJ presides over a packed club Hakkasan (and coincidentally holds a residency).
Tiesto is co-headlining 99.7 [NOW!]'S "Electric Bounce House" along with Calvin Harris, Afrojack and Vice. The highly anticipated EDM show will be Friday, March 21st and taking place at the SAP Center in San Jose.
Read more at Radio.com


text:
Difference between revisions of "1. S. 2321: E-Government Reauthorization Act of 2007"
|Line 1:
|Line 1:
'''Action Alert'''
'''Action Alert'''
S. 2321: E-Government Reauthorization Act of 2007'''
'''S. 2321: E-Government Reauthorization Act of 2007'''
See text and status on [http://www.govtrack.us/congress/bill.xpd?bill=s110-2321 GovTrack.us]
See text and status on [http://www.govtrack.us/congress/bill.xpd?bill=s110-2321 GovTrack.us]
Revision as of 09:27, 12 May 2008
Action Alert
S. 2321: E-Government Reauthorization Act of 2007
See text and status on GovTrack.us
Colleagues, below you will find background information and suggested talking points on Senate bill 2321, the E-Government Reauthorization Act of 2007. This bill will amend the E-Government Act of 2002 to reauthorize appropriations, make information on federal agency websites easier to find, and strengthen privacy protections for citizens who use e-government.
Talking Points
The E-Government Act of 2002 took a great step forward to providing comprehensive government information to American citizens. The E-Government Act of 2007 builds on the earlier law and contains key amendments to the 2002 law that will increase accessibility to federal agency websites and will strengthen the protection of citizens' private information as related to new information technologies.
With the vast amount of information on the web, most citizens rely on commercial search engine crawlers to find government information. However recent studies, such as the OMB Watch report entitled Hiding in Plain Sight: Why Important Government Information Cannot be Found Through Commercial Search Engines, highlight the fact that many federal government websites are not searchable by these engines.
By asking the Office of Management and Budget to provide guidance and best practices for search engine crawler accessibility of federal agency websites, citizens will have better access to government information.
Privacy Impact Assessments (PIA) were included in the 2002 law to increase transparency in how the federal government collects, manages, and uses an individual's personal data. Implementation of the PIAs has varied from agency to agency, with most providing minimal information to citizens on risk assessment and potential threats to their private information, as well as detailing ways to mitigate these threats.
The amendments in S. 2321 instruct the Office of Management and Budget to provide best practice guidelines for all federal agencies in creating PIAs so consistent and quality information about agencies' uses of private information is provided to the public.
Key features of the S.232:
The E-Government Reauthorization Act of 2007 contains four sections:
• Reauthorization of appropriations established by the E-Government Act of 2002 (Public Law 107-347) by extending support through 2012,
• The establishment by the Office of Management and Budget (OMB) of best practices for federal agencies creating Privacy Impact Assessments,
• The providing of guidance and best practices by OMB for improving the searchability of government documents on the World Wide Web, with provision for agencies to report back to OMB on compliance with this law, and
• The establishment of an annual report by OMB to Congress on progress regarding the above issues. Legislative Background:
This bill is currently before the Senate Committee on Homeland Security and Governmental Affairs.
Committee Members:
Joseph I. Lieberman (I-CT), Chairman
Susan M. Collins (R-ME), Ranking Member
Carl Levin (D-MI)
Daniel K Akaka (D-HI)
Thomas R. Carper (D-DE)
Mark L. Pryor (D-AR)
Mary L. Landrieu (D-LA)
Barack Obama (D-IL)
Clair McCaskill (D-MO)
Jon Tester (D-MT)
Ted Stevens (R-AK)
George V. Voinovich (R-OH)
Norm Coleman (R-MN)
Tom Coburn (R-OK)
Pete V. Domenici (R-NM)
John Warner (R-VA)
John E. Sununu (R-NH)
The Government Documents Round Table of the American Library Association urges you to contact your senators and urge them to sign on as co-sponsors of S. 2321, the E-Government Reauthorization Act of 2007, or thank them for co-sponsoring.
Sponsor: Sen. Joseph Lieberman (I-CT)
Co-sponsors: Sen. Thomas Carper (D-DE), Sen. Susan Collins (R-ME)
Thank you,
Kevin McClure
Bill Sleeman
Sample Fax/E-Mail Message
Feel free to personalize this text with your own words. Our message to our representatives is strongest when we share our stories of the importance of government information to our users and their constituents.
Dear Senator _________,
I am writing to urge you to support the E-Government Reauthorization Act of 2007 (S. 2321). By requesting the Office of Management and Budget to provide guidance and best practices for search engine crawler accessibility of federal agency websites, this legislation will ensure that citizens will have better access to government information.
Congress must also support the myriad ways that libraries have become E-government service centers as more government information has migrated to electronic-only formats. As a librarian who works with government information to serve my library's users, I have direct experience with the important roles that libraries already serve in providing E-government services. As libraries assume expanding duties as the primary front-line providers of online government data, forms, reports, and even emergency services in times of disaster, we need financial support to provide training, technology (including broadband services), and the necessary resources to provide a government service that is reliable, trusted, expert, and available to citizens in their communities.
Please make tangible support for these vital E-government roles served by libraries explicit so that the American public will be better served by the proliferation of E-government services.


text:
We're big fans of Downton Abbey, which airs on Masterpiece on PBS. On the show, Dame Maggie Smith plays Violet, Dowager Countess of Grantham, the widowed matriarch of the Crawley family and a source of cutting wit.
Dowager means "a woman holding property or a title from her deceased husband." It comes through French from the Latin word meaning "to endow" and is related to dowry. Using the title dowager countess also distinguishes Violet as the widow of the previous Earl of Grantham from the current countess, Cora.
Another related word is dower, which refers to the property of a deceased husband that is given by law to his widow during her lifetime. The dowager countess lives in the dower house, a smaller house for the widow's use that is on the same grounds as the family residence.
Downton Abbey airs on MASTERPIECE on PB


text:
July 18th 2010 | Christian Cantrell
Now that we have just launched AIR 2, I figured it would be a good time to look back at all the AIR code I've written over the last few months and pick out some of the best snippets and concepts to share with the community. This article describes ten techniques I've used to improve performance, usability, and security of AIR applications, and to make the development process faster and easier.
Now that we have just launched AIR 2, I figured it would be a good time to look back at all the AIR code I've written over the last few months and pick out some of the best snippets and concepts to share with the community. This article describes ten techniques I've used to improve performance, usability, and security of AIR applications, and to make the development process faster and easier:
In order to make the most of this article, you need the following software:
This article assumes that you have a general understanding of Adobe AIR, and that you are comfortable with ActionScript.
I recently wrote an email notification application called MailBrew. MailBrew monitors Gmail and IMAP accounts, then shows Growl-like notifications and plays alerts when new messages come in. Since it's supposed to keep you informed of new email, it obviously has to run all the time, and since it's always running, it has to be very conservative in terms of memory usage (see Figure 1).
Since the runtime does automatic garbage collection, as an AIR developer you don't have to manage memory explicitly, but that doesn't mean you are exempt from having to worry about it. In fact, AIR developers should still think very carefully about creating new objects, and especially about keeping references around so that they can't be cleaned up. The following tips will help you keep the memory usage of your AIR applications both low and stable:
dispose() functions
You've probably heard this before, but it's worth repeating: when you're done with an object that throws events, remove all your event listeners so that it can be garbage collected.
Here's some (simplified) code from an application I wrote called PluggableSearchCentral that shows adding and removing event listeners properly:
private function onDownloadPlugin():void
var req:URLRequest = new URLRequest(someUrl);
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onRemotePluginLoaded);
loader.addEventListener(IOErrorEvent.IO_ERROR, onRemotePluginIOError);
private function onRemotePluginIOError(e:IOErrorEvent):void
var loader:URLLoader = e.target as URLLoader;
loader.removeEventListener(Event.COMPLETE, onRemotePluginLoaded);
loader.removeEventListener(IOErrorEvent.IO_ERROR, onRemotePluginIOError);
this.showError("Load Error", "Unable to load plugin: " + e.target, "Unable to load plugin");
private function onRemotePluginLoaded(e:Event):void
var loader:URLLoader = e.target as URLLoader;
loader.removeEventListener(Event.COMPLETE, onRemotePluginLoaded);
loader.removeEventListener(IOErrorEvent.IO_ERROR, onRemotePluginIOError);
Another technique is to create a variable that holds an event listener function so that the event listener can easily remove itself, like this:
public function initialize(responder:DatabaseResponder):void
this.aConn = new SQLConnection();
var listener:Function = function(e:SQLEvent):void
aConn.removeEventListener(SQLEvent.OPEN, listener);
aConn.removeEventListener(SQLErrorEvent.ERROR, errorListener);
var dbe:DatabaseEvent = new DatabaseEvent(DatabaseEvent.RESULT_EVENT);
var errorListener:Function = function(ee:SQLErrorEvent):void
aConn.removeEventListener(SQLEvent.OPEN, listener);
aConn.removeEventListener(SQLErrorEvent.ERROR, errorListener);
this.aConn.addEventListener(SQLEvent.OPEN, listener);
this.aConn.addEventListener(SQLErrorEvent.ERROR, errorListener);
this.aConn.openAsync(dbFile, SQLMode.CREATE, null, false, 1024, this.encryptionKey); }
In Flash Player 10.1 and AIR 1.5.2, we added a static function to the System class called
disposeXML() which makes sure all the nodes in an XML object are dereferenced and immediately available for garbage collection. If your application parses XML, make sure to call this function when you're finished with an XML object. If you don't use
System.disposeXML(), it's possible that your XML object will have circular references which will prevent it from ever being garbage collected.
Below is a simplified version of some code that parses the XML feed generated by Gmail:
var ul:URLLoader = e.target as URLLoader;
var response:XML = new XML(ul.data);
var unseenEmails:Vector.
= new Vector. ();
for each (var email:XML in response.PURL::entry)
var emailHeader:EmailHeader = new EmailHeader();
emailHeader.from = email.PURL::author.PURL::name;
emailHeader.subject = email.PURL::title;
emailHeader.url = email.PURL::link.@href;
var unseenEvent:EmailEvent = new EmailEvent(EmailEvent.UNSEEN_EMAILS);
unseenEvent.data = unseenEmails;
If you are writing a medium to large application with a lot of classes, it's a good idea to get into the habit of adding "dispose" functions. In fact, you will probably want to create an interface called
IDisposable to enforce this practice. The purpose of a
dispose() function is to make sure an object isn't holding on to any references that might keep it from being garbage collected. At a minimum,
dispose() should set all the class-level variables to
null. Wherever there is a piece of code using an
IDisposable, it should call its
dispose() function when it's finished with it. In most cases, this isn't strictly necessary since these references will usually get garbage collected anyway (assuming there are no bugs in your code), but explicitly setting references to
null and explicitly calling the
dispose() function has two very important advantages:
dispose() function for all your classes, you are less likely to inadvertently retain references to instances which could prevent objects from getting cleaned up (which might cause a memory leak).
System.gc() when you're finished with the operation.
Below is a simplified version of some MailBrew code that does explicit memory management:
private function finishCheckingAccount():void
this.accountData = null;
this.currentAccount = null;
this.newUnseenEmails = null;
this.oldUnseenEmails = null;
private function disposeEmailService():void
this.emailService.removeEventListener(EmailEvent.AUTHENTICATION_FAILED, onAuthenticationFailed);
this.emailService.removeEventListener(EmailEvent.CONNECTION_FAILED, onConnectionFailed);
this.emailService.removeEventListener(EmailEvent.UNSEEN_EMAILS, onUnseenEmails);
this.emailService.removeEventListener(EmailEvent.PROTOCOL_ERROR, onProtocolError);
this.emailService = null;
There are several different methods for persisting data in AIR applications:
Each of these methods has its own set of advantages and disadvantages (an explanation of which is beyond the scope of this article). One of the advantages of using a SQL database as opposed to something like loading a lot of data into memory from flat files is that it helps to keep your application's memory footprint down. For example, if you store your application's data in a database, you can select only what you need, when you need it, then easily remove the data from memory when you're finished with it.
A good example is an MP3 player application. If you were to store data about all the user's tracks in an XML file, but the user only wanted to look at tracks from a specific artist or of a particular genre, you would probably have all the tracks loaded into memory at once, but only show users a subset of that data. With a SQL database, you can select exactly what the user wants to see extremely quickly and keep your memory usage to a minimum.
No matter how good you are at memory management or how simple your application is, it's a very good idea to profile it before you release it. An explanation of the Flash Builder profiler is beyond the scope of this article (using profilers is as much an art as a science), but if you're serious about building a well-behaved AIR application, you also have to be serious about profiling it.
It's very difficult to provide general tips about CPU usage in AIR applications since the amount of CPU an application uses is extremely specific to the application's functionality, but there is one universal way to reduce CPU usage across all AIR applications: lower your application's frame rate when it's not active.
The Flex framework has frame rate throttling built in. The WindowedApplication class's
backgroundFrameRate property indicates the frame rate to use when the application isn't active, so if you're using Flex, simply set this property to something appropriately low like
As I learned when writing MailBrew, sometimes frame rate throttling can be slightly more complicated, however. MailBrew has a notification system that brings up Growl-like notifications when new messages come in (see Figure 2), easing them in with a gradual alpha tween. Of course, these notifications appear even when the application isn't active, and require a decent frame rate in order to fade in and out smoothly. Therefore, I had to turn off the Flex frame rate throttling mechanism and write one of my own.
The technique I used was to specify the application's default frame rate in my ModelLocator class. If you use the Cairngorm Framework, this will look familiar; if you don't, ModelLocator is simply the class which represents the model in an MVC framework. The constant is defined like this:
public static const DEFAULT_FRAME_RATE:uint = 24;
I then listen for the application's activate and deactivate events like this:
this.nativeApplication.addEventListener(Event.ACTIVATE, onApplicationActivate);
this.nativeApplication.addEventListener(Event.DEACTIVATE, onApplicationDeactivate);
I also have a bindable variable in my ModelLocator defined like this:
[Bindable] public var frameRate:uint;
The part of my application that manages frame rate changes then listens for changes to the
frameRate variable using the
ChangeWatcher like this:
ChangeWatcher.watch(ModelLocator.getInstance(), "frameRate", onFrameRateChange);
Now, whenever any part of the code changes the ModelLocator's
frameRate variable, the
onFrameRateChange function is called:
private function onFrameRateChange(e:PropertyChangeEvent):void
this.stage.frameRate = ml.frameRate;
Finally, when the application is activated or deactivated, I update the frame rate accordingly, like this:
private function onApplicationActivate(e:Event):void
this.ml.frameRate = ModelLocator.DEFAULT_FRAME_RATE;
private function onApplicationDeactivate(e:Event):void
this.ml.frameRate = 1;
All this infrastructure allows me to do the following:
frameRate variable.
DEFAULT_FRAME_RATE before showing a notification, and then bring it back down after the notification fades.
Writing your own frame rate throttling framework is more complex than using the one built into Flex, but if you need more flexibility (no pun intended), and you still want to keep your application's CPU usage down when it's not active, it's worth the additional time investment.
As I mentioned above, there are several ways to persist data in an AIR application, each of which has its advantages and disadvantages. But if you want to store data securely, your three best options are:
If you only need to store a username and password, I would recommend using the EncryptedLocalStore (ELS) class. But if you want to store larger amounts of data, you will likely want to either use an encrypted database (which AIR fully supports), or do the encryption yourself, and save the encrypted data to disk. (I assume that you are using an encrypted database since a tutorial on managing your own encryption is beyond the scope of this article.)
The great thing about using ELS is that you don't need a password or a passphrase to encrypt and decrypt its data which makes your application much more usable. For example, it doesn't do your users any good to store their usernames and passwords for a service if you then have to prompt them for another password or passphrase to decrypt their original credentials. So how can you provide the same good experience that users get with ELS when you have to encrypt more data than ELS can hold?
The answer is to do the following:
This may seem complicated, but fortunately, most of the code you need is already written. Let's take a closer look at each of these steps.
The code below is a set of functions I wrote to generate very random and un-guessable passwords:
private static const POSSIBLE_CHARS:Array = ["abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ","0123456789","~`!@#$%^&*()_-+=[{]}|;:'\"\\,<.>/?"];
private function generateStrongPassword(length:uint = 32):String
if (length < 8) length = 8;
var pw:String = new String();
var charPos:uint = 0;
while (pw.length < length)
var chars:String = POSSIBLE_CHARS[charPos];
var char:String = chars.charAt(this.getRandomWholeNumber(0, chars.length - 1));
var splitPos:uint = this.getRandomWholeNumber(0, pw.length);
pw = (pw.substring(0, splitPos) + char + pw.substring(splitPos, pw.length));
charPos = (charPos == 3) ? 0 : charPos + 1;
return pw;
private function getRandomWholeNumber(min:Number, max:Number):Number
return Math.round(((Math.random() * (max - min)) + min));
Now that you have a random password, it's time to store it.
The best way to securely store the password that you will use to generate a database encryption key is to use the EncryptedLocalStore class. The ELS APIs are very simple to use; however, I typically use my as3preferenceslib project, instead. The advantage of using as3preferenceslib is that I can store all my application's preferences using the same APIs. Behind the scenes, as3preferenceslib uses ELS to store data that you designate as secure. The code looks like this:
var ml:ModelLocator = ModelLocator.getInstance();
var prefs:Preference = ml.prefs;
var databasePassword:String = prefs.getValue(PreferenceKeys.DATABASE_PASSWORD);
if (databasePassword == null)
databasePassword = this.generateStrongPassword();
ml.prefs.setValue(PreferenceKeys.DATABASE_PASSWORD, databasePassword, true); // The third argument indicates secure storage
Generating a cryptographically secure encryption key is complicated, but fortunately, we have code to do it for you. I use the EncryptionKeyGenerator located in the as3corelib project.
Using the EncryptionKeyGenerator adds another layer of security on top of your encrypted data by associating your random password with your specific user account and your specific machine. In other words, even if someone were to discover your random password, unless they had the user's machine and were logged in as the user, it wouldn't do them any good.
When using the EncryptionKeyGenerator, it's important that you don't store the encryption key that it returns; rather, you store the password that you use to seed it, and generate the encryption key on-demand. The code below demonstrates the correct technique:
// Get the databasePassword from the Preference object using the code shown above, then...
var keyGenerator:EncryptionKeyGenerator = new EncryptionKeyGenerator();
var encryptionKey:ByteArray = keyGenerator.getEncryptionKey(databasePassword);
// Now use the encryptionKey to encrypt and decrypt your database.
Now that you have a cryptographically secure database key, all you have to do is pass it in when creating a connection to your database. The sample code below (simplified since it's lacking event listeners) shows loading an encrypted database file and creating a connection to it:
var keyGenerator:EncryptionKeyGenerator = new EncryptionKeyGenerator();
var encryptionKey:ByteArray = keyGenerator.getEncryptionKey(databasePassword);
var dbFile:File = File.applicationStorageDirectory.resolvePath("myEncryptedDatabase.db");
var aConn:SQLConnection = new SQLConnection();
aConn.openAsync(dbFile, SQLMode.CREATE, null, false, 1024, this.encryptionKey);
Applications that continue to run after their main window is closed are sometimes referred to as "headless" applications. Many applications use this paradigm on the Mac, and on Windows systems, it's not unusual for some applications (IM and email clients, for example) to "minimize to the system tray" (see Figure 3).
AIR applications can be designed to exit when the main application window closes, or they can run as headless applications. The easiest way to make your application continue to run after the main application window closes is to set the
autoExit property of
NativeApplication to
false like this:
private function onApplicationComplete():void
NativeApplication.nativeApplication.autoExit = false;
If you're using the Flex framework, you can also set this property using the
autoExit attribute of the
WindowedApplication tag, like this:
Now that you have prevented your application from exiting when the main application window closes, you have to think about reopening the main application window when users need it again—probably when they click the dock or system tray icon. The easiest way to design your application to support this kind of interaction is to put your main application interface in its own component as a child of
NativeWindow. The code below shows a cross-platform technique for reopening your main application after it has been hidden or minimized to the system tray:
private function onApplicationComplete():void
NativeApplication.nativeApplication.autoExit = false;
if (NativeApplication.supportsDockIcon)
NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, onShowWindow);
else if (NativeApplication.supportsSystemTrayIcon)
SystemTrayIcon(NativeApplication.nativeApplication.icon).addEventListener(ScreenMouseEvent.CLICK, onShowWindow);
private function onShowWindow(e:Event):void
var mainApplicationUI:MainApplicationUI = new MainApplicationUI();
Another technique for writing a headless application is to stop your main application window from closing and to simply hide it, instead. This technique doesn't require you to set the
autoExit property of the NativeWindow to
false since you're not actually closing your main application window, but it does require you to write code to stop the window from closing and to set its
visilibity property to
false, like this:
private function onWindowClosing(e:Event):void
this.visible = false;
ml.frameRate = 1;
The technique for bringing your main application window back is similar to the one described above, but rather than creating a new instance of your main application UI, you simply set your application's
NativeWindow.visibility property to
true again, like this:
private function onShowWindow(e:Event):void
this.visible = true;
ml.frameRate = ModelLocator.DEFAULT_FRAME_RATE;
I would say the technique of toggling your main application's
visibility property is the easier way to go, and will work in most cases. The only case where it doesn't make sense is if you want users to be able to open multiple instances of your main application UI as in an application like PixelWindow.
In order for headless applications to maintain some kind of visual presence, they often take advantage of the dock on Mac, or the system tray on Windows. These icons give users a way to restore the main application window, and they give applications a way to provide end users with information. AIR doesn't provide APIs for superimposing text on top of your application icon, however there are APIs for dynamically generating bitmaps, and for updating your application icons in the dock or the system tray (see Figure 4).
The code below is a sample taken from MailBrew which shows how to add text and graphics on top of of the dock icon so users can see how many unread messages they have at a glance (see screenshot to the right). A similar technique can be used with the system tray icon, as well, however system tray icons are only 16 pixels square which makes it difficult to superimpose much text on top of them. Windows 7 has support for more expressive task bar icons, which we plan to support with new APIs in the future.
// If we're on Windows, return. This icon wouldn't look very good in the system tray.
if (NativeApplication.supportsSystemTrayIcon) return;
var unseenCount:uint = getUnreadMessageCount(); // Function for counting the number of unread messages.
var unreadCountSprite:Sprite = new Sprite();
unreadCountSprite.width = 128;
unreadCountSprite.height = 128;
unreadCountSprite.x = 0;
unreadCountSprite.y = 0;
var padding:uint = 10;
// Use FTE APIs to get the best looking text.
var fontDesc:FontDescription = new FontDescription("Arial", "bold");
var elementFormat:ElementFormat = new ElementFormat(fontDesc, 30, 0xFFFFFF);
var textElement:TextElement = new TextElement(String(unseenCount), elementFormat);
var textBlock:TextBlock = new TextBlock(textElement);
var textLine:TextLine = textBlock.createTextLine();
textLine.x = (((128 - textLine.textWidth) - padding) + 2);
textLine.y = 32;
unreadCountSprite.graphics.drawEllipse((((128 - textLine.textWidth) - padding) - 3), 2, textLine.textWidth + padding, textLine.textHeight + padding);
var shadow:DropShadowFilter = new DropShadowFilter(3, 45, 0, .75);
var bevel:BevelFilter = new BevelFilter(1);
unreadCountSprite.filters = [shadow, bevel];
var unreadCountData:BitmapData = new BitmapData(128, 128, true, 0x00000000); unreadCountData.draw(unreadCountSprite);
// The Dynamic128IconClass referenced below is embedded.
var appData:BitmapData = new Dynamic128IconClass().bitmapData;
appData.copyPixels(unreadCountData, new Rectangle(0, 0, unreadCountData.width, unreadCountData.height), new Point(0, 0), null, null, true);
var appIcon:Bitmap = new Bitmap(appData);
// If you do want to change the system tray icon on Windows, as well, add a 16x16 icon to the array below.
InteractiveIcon(NativeApplication.nativeApplication.icon).bitmaps = [appIcon];
As more and more data is moved to the cloud, desktop applications that access and cache that data locally become increasingly important. Adobe AIR is the perfect platform for writing these kinds of applications for the following reasons:
One of the challenges of writing a desktop client on top of a web service is determining network connectivity. Even with the proliferation of WiFi and high-speed wireless data protocols such as 3G (and soon 4G), the truth is that we still are not always connected. Therefore, applications that depend on network connectivity need a way to definitively know whether they're connected or not.
Our first attempt to tackle this problem led us to the
NETWORK_CHANGE event on the NativeApplication class. The
NETWORK_CHANGE event fires whenever a network connection becomes available or unavailable which we initially thought was sufficient. However, we rapidly realized that this wasn't nearly enough information to let developers know whether or not they can reach a particular service.
For example, network connections come and go as VPN connections are opened or closed, virtual machines are started or stopped, wireless networks come in and out of range, cables are plugged in and unplugged, and so on. And, of course, it's sometimes impossible to predict where an application's services are going to reside; they might be on the public Internet, behind a firewall, or even on the local machine. Finally, even if you can determine for certain that you can reach a service, there's no guarantee that the service is going to be up or capable of responding at the moment you need to access it. All these factors suggested to us that we needed more comprehensive APIs, and some best practices around how to use them.
I've discovered that desktop client applications generally fall into two categories: applications that access a known set of services (Twitter and Facebook clients, for example), and applications that access any number of unpredictable services (RSS aggregators, email or IM clients, and so on). In my experience, it makes sense to handle connectivity changes for these two types of applications differently.
If you know which web services your application needs to access, the easiest way to monitor their availability is with the
air.net.URLMonitor class (or
air.net.SocketMonitor, if you're using TCP rather than HTTP). The URLMonitor class essentially polls a specific set of URLs at a specified interval and lets you know of any status changes as demonstrated in the code below:
private var urlMonitor:URLMonitor;
private function onCreationComplete():void
var req:URLRequest = new URLRequest("http://www.myserver.com/myservice");
this.urlMonitor = new URLMonitor(req, [200, 304]); // Acceptable status codes
this.urlMonitor.pollInterval = 60 * 1000; // Every minute
this.urlMonitor.addEventListener(StatusEvent.STATUS, onStatusChange);
private function onStatusChange(e:Event):void
if (this.urlMonitor.available)
// Everything is fine.
// Service is not available.
// Consider alerting the user.
If you don't know which services your application is going to be accessing because they are configured by the user (as in the case of an email client), or you don't know how many services your application is going to be accessing (as in the case of an RSS aggregator), using the
URLMonitor isn't practical. In fact, the less predictable the services that an application accesses are, the more difficult it is to know if the service is actually accessible. For example, even if your application knew that it didn't have a reliable connection to the public Internet, it might still need to aggregate an RSS feed behind your firewall; or even if your application knew there were no network connections available at all, it might still want to access a service running on the local machine. Since network connectivity becomes increasingly difficult to predict and measure, the best technique in many circumstances is to simply try to make the connection, and report an error if it fails.
MailBrew is a great example. Since MailBrew can be configured to access any number of email accounts, there's no reliable way for the application to know if a service is actually reachable until it tries. Therefore, the application handles network errors gracefully by doing the following:
HTTP_RESPONSE_STATUS_EVENT, and so on).
Update the UI to communicate to the user that a service isn't available. In Figure 5, my two Gmail accounts are accessible because I have a network connection to the outside world, but my Adobe account is not accessible because I'm not on the VPN.
Note: Even if you use
URLMonitor to check the availability of your services, you can't rely on it since it's always possible for a service to become unavailable between the time the monitor last checked and the time your application needs to access it. Therefore, you must always listen for the appropriate events which may indicate a connectivity issue and handle any problems gracefully.
Network connectivity can be complex, but it's important that applications behave in a way that is informative and intuitive to end users. Using the two techniques described above should enable your application to do the right thing in any circumstance, no matter how unreliable or unpredictable connectivity is.
All application developers know that writing code is a highly iterative process. The workflow is usually to write some code, run the application to test it, and then repeat dozens, hundreds, or even thousands of times, depending on the size of the application.
If your application is accessing external services, however, this process may be complicated by the fact that you could get rate limited (as in the case of a Twitter or an IM client), or accessing a remote service might simply slow the process down significantly (when averaged over hundreds of iterations). There are two techniques I use to managing these kinds of scenarios: test mode and debug mode.
When I was writing one of my first mobile AIR applications, TweetCards, I realized very quickly that grabbing data from Twitter on every iteration wasn't going to scale. Not only would it slow down development, but I would probably get rate limited (meaning Twitter would reject requests from me for some period of time because I was connecting too frequently), and I wouldn't be able to work on the application when I didn't have a network connection (I did some of the coding on a cross-country flight).
The answer was to create a test mode which was activated whenever the username and password entered into the credential fields were both "test" (see Figure 6). The code below demonstrates the concept:
private function onSaveAccountInfo(e:MouseEvent = null):void
var username:String = this.usernameInput.value;
var password:String = this.passwordInput.value;
var ml:ModelLocator = ModelLocator.getInstance();
ml.testMode = (this.usernameInput.value == "test" && this.passwordInput.value == "test");
ml.credentials = {"username":this.usernameInput.value, "password":this.passwordInput.value};
ml.currentScreen = Screen.READ_SCREEN; }
When the application is in test mode, rather than making a request to Twitter for data, I generate my own test data:
private function getTweets():void
var ml:ModelLocator = ModelLocator.getInstance();
if (ml.testMode)
The result is that the data loads instantly, and I'm able to test my application without making any requests to Twitter.
Another technique I discovered while writing MailBrew was to build a "debug" mode into my application. The need for a debug mode arose as soon as I wrote code to check the user's email accounts as soon as the application started up. From then on, every time I wanted to test something in the application - even something as small as the position of a button - I was making requests to several email services which began to slow down my development. The following code was the work-around:
private function onApplicationComplete():void
// If we're running from ADL, put the app in debug mode.
ModelLocator.debugMode = Capabilities.isDebugger;
Inside my
InitCommand (the command that runs when the application is initialized), I simply added the following:
if (!ModelLocator.debugMode) new CheckMailEvent().dispatch();
Problem solved. From then on, the
CheckMailEvent would not be dispatched when running MailBrew from ADL. And there were some additional advantages, as well. For example, I decided I didn't want to use the new global error handling functionality in AIR 2 when running from ADL, so I turned this line:
this.loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onUncaughtError);
into this:
if (!ModelLocator.debugMode) this.loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onUncaughtError);
And finally, there are certain APIs such as
Updater.update() and
NativeApplication.startAtLogin that will actually throw runtime exceptions when called from ADL since they don't make sense in a development and testing environment. If you use any of these APIs in your application, it's a good idea to wrap them in a conditional which checks for debug mode.
Note: Notice that I use
Capabilities.isDebugger in one place to set what is essentially a global
debugMode flag rather than using
Capabilities.isDebugger in every location where I want to check the mode. The advantage is that I can easily change the criteria that determines whether the application is in debugMode or not in a single location. For example, I might decide to support putting the application into debug mode with a command line argument so the installed version could be put into debug mode for testing purposes.
When we were making sure that it was possible to write a notification system for AIR applications, we realized that we also needed a way to detect if the user is actually at the computer or not so the application would know whether it made sense to actually show the notifications. For example, it wouldn't be very useful if MailBrew continued to show and play notifications if the user wasn't actually there to see and hear them.
The way we solved this problem was with the
USER_IDLE and
USER_PRESENT events on the NativeApplication class. Registering for these events will tell the application when users have gone idle, and when they've returned to their computers. The code below shows a simple example:
private function onCreationComplete():void
NativeApplication.nativeApplication.idleThreshold = 2 * 60; // In seconds -- the default is 5 minutes.
NativeApplication.nativeApplication.addEventListener(Event.USER_IDLE, onUserIdle);
NativeApplication.nativeApplication.addEventListener(Event.USER_PRESENT, onUserPresent);
private function onUserIdle(e:Event):void
// No keyboard or mouse input for 2 minutes.
private function onUserPresent(e:Event):void
// The user is back!
I've found that registering for these events directly in my application isn't all that useful in real-world scenarios; it usually makes more sense for libraries like notification frameworks to do it, instead. For example, the notification framework that MailBrew uses automatically registers for these events, and queues up notifications when the user is idle, then automatically starts showing them when the user returns. Additionally, make sure you take the workflow of your application into account when using these APIs. For example, if your application shows video, you might want to disable the idle timer while media is playing since the user probably isn't actually idle.
For a simple but real-world example of these APIs in action, see my screen saver sample application called SPF, or Screen Protection Factor.
It's not uncommon for AIR applications to open secondary windows for things like preferences or about boxes. Opening secondary windows in AIR is easy, but there's something you have to watch out for: opening more than one of the same instance. Since AIR doesn't have a concept of modal windows, if you want to prevent users from opening more than one window at a time, you have to program it yourself.
Fortunately, it's very easy to do. I have a class called WindowManager which contains several functions useful for working with secondary windows such as the following:
* Returns an instance of a NativeWindow if it's already open.
public static function getWindowByTitle(title:String):NativeWindow {
var allWindows:Array = NativeApplication.nativeApplication.openedWindows;
for each (var win:NativeWindow in allWindows)
if (win.title == title)
return win;
return null;
getWindowByTitle function allows me to open windows like this:
private function onOpenSettings(e:MouseEvent):void
var win:NativeWindow = WindowManager.getWindowByTitle(WindowManager.PREFERENCES);
if (win != null)
var prefsWin:PreferencesWindow = new PreferencesWindow();
This technique ensures that only one Preferences window can be opened at a time—even if the user inadvertently double-clicks the Preferences button. If the Preferences window is already open, it will simply be activated (brought to the front and given focus) rather than duplicated.
As a bonus, here's another useful function out of my WindowManager class:
* Hand me a window, and I'll center it on the primary monitor.
public static function centerWindowOnMainScreen(win:NativeWindow):void
var initialBounds:Rectangle = new Rectangle((Screen.mainScreen.bounds.width / 2 - (win.width/2)), (Screen.mainScreen.bounds.height / 2 - (win.height/2)), win.width, win.height);
win.bounds = initialBounds;
win.visible = true;
AIR is a crossplatform runtime, but that doesn't mean applications can't or shouldn't recognize the differences between platforms. We have already seen in this article how you have to use different icon sizes when working with the system tray on Windows versus the dock on Mac OS X, but sometimes platform differences go much deeper. For example, in the MailBrew settings window, I have an option on Mac OS X for bouncing the dock icon when new mail arrives which isn't there on Windows, and on Windows, I have an option for flashing the task bar icon which doesn't exist on Mac OS X.
There are several techniques for dealing with these kinds of platform-specific issues, so rather than claiming that one is correct or superior, I'll simply show you a few approaches I experimented with while writing MailBrew. Below is the relevant code for handling platform differences from the PreferencesWindow component:
As you can see, the key here is to use the very convenient Flex states feature to do most of the work. But, of course, there are other ways of doing it, as well. For example, another platform difference in MailBrew is the main application window's tool bar. On Mac OS X, the title and logo are on the left side and the buttons are on the right (see Figure 8).
However, I discovered that on Windows, positioning anything interactive on the right made it too easy to close the window accidentally by inadvertently clicking the window controls. The answer was to reverse the order as demonstrated with the following code:
In this example, rather than using states, I simply rearrange or remove components using their
right, and
visible properties.
Although I try to keep platform differences in my applications to an absolute minimum, the reality is that they do occasionally come up. In my opinion, it's better to write a little code to handle the differences between platforms than to pretend like they don't exist.
I hope this article has given you a few ideas of how you can make your AIR applications better, or how you can make your life as an AIR application developer a little easier. If you're looking for some inspiration or more sample code, just about everything I write gets open sourced and can be found either on Google Code or on GitHub.
Christian Cantrell is an application developer on the Adobe AIR team. His job is to build applications in order to validate AIR APIs, and to research emerging technologies in order to help guide the direction of the platform. Read his blog or follow him on Twitter.
Next tutorial:
Breadcrumbs: Formatting Money, Money, Money
Previous tutorial:
Using Away3D with Flex
Flash Player 11 and AIR 3 beta's out on Labs


text:
Your whiskey stash is probably better than mine. "What!", you might say. "You write a whiskey blog – how is that possible?" It's possible because I drink the whiskey I buy. As in – I don't hoard it. If I don't like it, I give it away. If I love it, I drink it and especially share it with others.
You will find no more Pappy Van Winkle 15 Year in my cabinet because I got three bottles last year, planned on saving two, but the stuff is so damn good that I simply cannot force myself to keep it around. I bought two extra bottles of the Four Roses Limited Edition Small Batch for 2012. I did so with the following mindset that I'm sure is familiar, "this stuff is great, and if I have two more bottles I'll be able to savor and enjoy it for years to come." Who am I kidding? This whiskey will be gone before the first tulip peeks its head above ground. And that's just the way I am.
Yes, I've got some extremely good whiskeys around the house. Some you can find, some you can't. Regardless, they'll all be gone soon because I appreciate great stuff. The people that made these whiskeys didn't do so for me to look at it for a decade. They did it for me to enjoy. And that's what I do. Will I miss these bottles after they are gone? Yes, indeed, but they become a memory that is even better.
Drink your whiskey!


text:
Toll Free: 800-339-9297
Local Callers: 801-225-8012
helping you get the job done since 1971
stay connected
Free "Best Way" Shipping on Orders Over $125!
Home > Vacuums > Bags, Belts & Filters > Hoover > Bags > Hoover Vacuum Bags - Style D (3-pack)
This is a Genuine Hoover replacement 3-Pack of vacuum bags, a full vacuum bag can cut out the suction of your vacuum and put dust back into your home?s air, for optimum performance you should change your bag every 1-2 months, or as needed.
These Genuine Hoover Style D disposable vacuum bags will fit the Hoover Dial-A-Matic upright vacuum cleaners.
These are genuine Hoover disposable dust bags, they will directly replace your old vacuum bags and are original Hoover bags, ordered directly from Hoover. The Hoover Style D bags are also known by the manufactures part number 4010005D, but are also referred to as; Type D bags, or H4010005D.
These style D disposable paper dust bags are packaged in a set of three. The bags should be stored in a clean dry place.


text:
By Travis Rae, Communications and Sports Information Intern
KANSAS CITY, Mo. – John Gilbertson of The Master's (Calif.) has been named NAIA National Men's Outdoor Track Athlete of the Week and Zack Lindsley of Doane (Neb.) has been tabbed as the NAIA National Men's Outdoor Field Athlete of the Week, the national office announced Wednesday. Gilbertson and Lindsley were selected based on their performances from March 25 – 31.
Gilbertson, a senior from Saugs, Calif., established a new world's fastest mark in the 10K at the NCAA Division I Stanford (Calif.) Invitational on March 29. He finished the 10K in 28 minutes and 30.35 seconds, winning the event. His time surpassed Elroy Gelant of South Africa who previously held the world's fastest 10K mark at 28:50.24.
Lindsley, a senior from Columbus, Neb., broke the school record in the discus in his first meet of the season. In the Hastings (Neb.) Bronco Relays on March 29, Lindsley finished first in discus with a throw of 58.89 meters (193-2). Along with winning the discus, Lindsley won the shot put with a throw of 17.62 meters (57-9 ¾). Lindsley also competed in the hammer throw, where he finished second, with a heave of 52.58 meters (172-6).
For the complete Athlete of the Week calendar, click here.
Track Nominees: Zach Boyd-Helm, Southern Oregon; Albert Huntley, Cumberlands (Ky.); David Walters, Langston (Okla.); David Swiatocha, Texas Wesleyan; David Sanders, Indiana East; Greg Mongtomery, College of Idaho; Kameron Spivey, Lindsey Wilson (Ky.); Tyler Ernst, Clarke (Iowa); Ben Sievert, Concordia (Neb.); Tariq White, Grand View (Iowa); Gabriel Green, William Penn (Iowa); Brandon Gourdine, South Carolina Beaufort; Sam Frens, Davenport (Mich.); Jon Leonard, Missouri Valley; Jeff Cherry, Aquinas (Mich.); Brandyn Willard, Southwestern (Kan.); jacob heil, Tabor (Kan.); Lucas Harnish, Goshen (Ind.); Frantzy Sejour, Union (Ky.); Vincent Bett, Embry-Riddle (Fla.); Brad Davis, Lee (Tenn.); Nick Radionoff, Indiana Tech; Kevin Mowatt, Milligan (Tenn.); Brandan Wilchcombe, Taylor (Ind.); Taylor Bodin, Northwestern (Iowa); Connor Hatfield, Bryan (Tenn.); Arya Bahreini, Oklahoma City; Austin Houchens, Berea (Ky.); Phil Rizzo, St. Francis (Ill.); Clay Shepperson, Oklahoma Baptist; Scott Minor, Oregon Tech; Gregory Turner, Wayland Baptist (Texas); Bobby Mingie, Campbellsville (Ky.); Teddy McCord, Park (Mo.).
Field Nominees: Corey Chaffin, Cumberlands (Ky.); Jovan Fulton-Wilson, Langston (Okla.); Keith Arutoff, Georgetown (Ky.); Austin Basterrechea, College of Idaho; Joshua Kles, Lindsey Wilson (Ky.); Gavin Dedering, Clarke (Iowa); Carson Farr, Concordia (Neb.); Cy Williams, Grand View (Iowa); Tori Brooks, Davenport (Mich.); Robert Watson, Shawnee State (Ohio); Adam Lohner, Aquinas (Mich.); Jeff Crouch, Missouri Valley; Richard DePalma, Siena Heights (Mich.); Artrail Skipper, Southwestern (Kan.); William White, Union (Ky.); Nathan Brown, Grace (Ind.); Peter Benoit, Embry-Riddle (Fla.); Aaron Baker, Indiana Tech; Ken Higgins, Taylor (Ind.); Brandon Sissel, Milligan (Tenn.); Jeremy Gathright, Baker (Kan.); Travis Miller, Baker (Kan.); Eric Davis, St. Francis (Ill.); Cody York, Briar Cliff (Iowa); Jordan Patterson, Oklahoma Baptist; Keith Lester, Oregon Tech; Tim Perdue, Campbellsville (Ky.).
2013 Men's Outdoor Track & Field Athletes of the Week (Field, Track)
Week 1 (March 20): Willy Irwin, Concordia (Ore.), Dontaey Paige, Indiana Tech
Week 2 (March 27): Willy Irwin, Concordia (Ore.), John Darmody, St. Ambrose (Iowa)
Week 3 (April 3): Zack Lindsley, Doane (Neb.), John Gilbertson, The Master's (Calif.)


text:
Guiding the speaking, writing, and travel of President Eaton this year are SPU's five signature commitments, including its focus on global education. Here are some of his recent activities:
NCAA (National Collegiate Athletic Association) National Convention
January 11–14, 2008
Nashville, Tennessee
To prepare for his upcoming role as chair of the CEO Board for the Great Northwest Athletic
Conference (GNAC), President Eaton attended the 2008 NCAA National Convention with SPU Athletic Director Tom Box, Compliance Officer Erin O'Connell, and Faculty Athletic Representative William Woodward. The convention was attended by more than 3,000 delegates representing members from all divisions of the NCAA. The NCAA requires university presidents to provide leadership for the athletic conferences; Eaton's tenure as chair will begin in the summer of 2008.
"President Eaton has been a strong voice within our conference," says Box. "He was involved in the formation of the GNAC and has been involved in the ongoing growth and development of the conference. It will be great to work closely with him as SPU fulfills a heightened role in conference leadership."
CCCU (Council for Christian Colleges and
Universities) Presidents' Conference
February 1–2, 2008
Washington, D.C.
President Eaton was one of nearly 80 presidents from CCCU institutions who attended this conference. Topics discussed included the intellectual climate on campuses, living and thinking digitally, fundraising, building international partnerships, and a variety of legislative and legal issues.
"SPU is intentionally working to become a more global organization," says Eaton. "And so this year I especially enjoyed interacting with presidents from international CCCU institutions. Their presence among the U.S. presidents definitely changes the conversation, and that is healthy."
NAICU (National Association of Independent
Colleges and Universities) Conference
February 3–6, 2008
Washington, D.C.
President Eaton extended his stay in Washington, D.C., to join leaders who share an interest in representing private colleges and universities on public-policy issues with the federal government. Conference attendees discussed the potentially enormous impact of the Higher Education Reauthorization Act that will emerge from Congress soon. "NAICU is doing a superb job of representing our interests in D.C.," says Eaton.
AFMEI (Association of Free Methodist Educational Institutions) Conference and AAPICU (American Association of Presidents of Independent Colleges and Universities) Conference
February 19–21, 2008
Phoenix, Arizona
President Eaton attended the annual gathering of leaders from Free Methodist colleges and universities and the denomination to review and renew their partnership. The AAPICU Conference that followed focused on careful consideration of public policy and independent higher education.
While in Phoenix, President and Mrs. Eaton hosted a group of alumni and friends for dinner sa part of the University's "target cities" effort. Phoenix is one of several cities across the U.S. in which SPU is building new partnerships.
Return to top
Back to From the President Home
Founded in 1891, Seattle Pacific University is a leading Christian university that equips people to engage the culture and change the world. Find out more about SPU's mission, core themes, and vision.
3307 3rd Ave West, Seattle WA 98119-1997 [MAP]
206-281-2000 | Contact | Emergency Info
Connect with Us


text:
Article source: CMDGroup
It may just be the calm before another storm, but the economic news seems to have quietened down quite a bit over the last little while. As for the political news, as both the Democrats and Republicans race towards their leadership conventions in a few months, that's another story.
The pain in the oil sector on account of the deeply depressed price of crude is finally leading to some self-correcting courses of action. In the U.S. and Canada, capital spending plans have been slashed and production levels in the fracking sector significantly reduced. Internationally, Iran isn't expected to ramp up export sales as quickly as once thought. And other OPEC members, including Saudi Arabia, appear intent on re-imposing a degree of control over their output levels.
The global price of oil may have found a floor near $40 USD per barrel. That's a lot better than when it was nosediving towards $20. Furthermore, it will still provide car drivers, when they fill up, with gasoline charges that are pleasing bargains. Freeing up money so that it can be spent in other areas will prove especially important as the summer vacation season quickly arrives.
Against this backdrop, there are the following additional 'nuggets' to be gleaned from the latest government agency and private sector data releases. The 'soil' is rich and the 'crop' abundant.
(1) Let's begin with CMD's own construction starts statistics. Perhaps the most informative way to look at the numbers is to compare the year so far (i.e., through the first quarter, 2016) with the same time frame in 2015. On such a basis, grand total starts, in 'current' (i.e., not adjusted for inflation) dollars, were +7.4%, with major type-of-structure sub-categories performing as follows: residential, +3.7%; non-residential building, +11.8%; and heavy engineering, +5.8%.


text:
Hell Rell Says Hes About To Expose Max B With Some Paper Work + Says Max Is Their Slave! "He Messed Up Alot Of People" + Clears Up Source Magazine Rumors "They Are Not Charging Me $1K" [Audio]
Jose reports "HELL RELL CALLS JENNY BOOM BOOM. EXPOSES MAX B'S ALEGATIONS SAYS "HE MESSED UP A LOT OF PEOPLE'S LIVES", "HE SLAVES FOR DIPSET, IF YOU WANNA BOOK HIM YOU GOTTA GO THROUGH US", SAYS HE HAS PAPERWORK. ALSO "WE ALL LOYAL TO CAM". CLEARS THE RUMORS OF THE SOURCE CHARGING HIM 1K FOR A MIXTAPE REVIEW"
Please click the "Report" button below if the video on this page is not working properly.
Comments will only be displayed by verified emails. No Spamming or Racism.


text:
Teacher resources and professional development across the curriculum
Teacher professional development and classroom resources across the curriculum
Unit 3.1
Minidoc-Solar Power
The mini-documentary deals with the chemistry of
photovoltaics using silicon semiconductors. The advantages
of solar energy are discussed.
Video program cues: 00:30 5:05
Trapping solar power
"Its really a combination of chemistry
and physics: the solar cells are made out of silicon; its
a semi conductor, which is very abundant on earth. The photovoltaic
process itself is fairly simple after all. Photons from
the sun hit the silicon. If they have enough energy, they
are going to split one of the silicon atoms into a silicon
ion, Si+ and an electron. If you dont do anything
with them, they recombine, because everything is at stable
conditions and is neutral, so the charge will be just the
same. If you attach wires on the front and the back, after
creating physical field, a positive/negative field, you
will be able to separate this electron and the silicon positive
ion for enough time to have them go out of the cell, go
into another appliance do some useful work there, and go
back through the back of the cell.
"So, its fairly very simple, because
were just splitting an atom into an ion and an electron
and the electron goes out into the load [electrical appliance],
comes back through the back [of the solar panel] and then
the circuit is closed and we have enough energy for the
Dr. Jean Posbic
BP Solar, Maryland
Manufacturing solar power
"Phosphorous is a group V element, it
has an extra electron in its last layer, which means that
it is going to share it with the silicon around it. Which
means that it is an n, negatively doped area of the silicon.
Hence, you have a field, a negative to positive field, that
when the photon hits the solar cell, will create a field
to separate the electron from the silicon ion, during this
"So here in this case, this machine
is going to do the printing on the cells. We are printing
on the front and on the back some metals in order to capture
the electricity from the solar cell. The back is completely
covered with silver, because we dont have any light
coming from the back, and we have a very conductive material,
silicon is very good at that. The front is covered with
very thin fingers, that allow light to come through the
wafer, and create electricity from the sun. The cells that
we saw before, the gray cells, reflect up to 20% of the
light that hits them, because of the nature of the color
that they are made of. In order to minimize the reflection
and maximize the electrical efficiency, we add on the front
of the cell a very thin layer of titanium dioxide. We trap
more of the light using this titanium dioxide layer. So
some of the light is trapped, goes in, is reflected, comes
back in, and gets more chance of doing some work in the
solar cell. Only the very strong and the very powerful light
, which is the UV, and the blue, is reflected, and we see
them. That is why the cells are blue. "
Dr. Jean Posbic
BP Solar, Maryland
Georgios. T. (1997)' Atomic and Molecular Structure in Chemical
Education: A Critical Analysis from Various Perspectives
of Science Education, 'Journal of Chemical Education,
Vol. 74, pp: 922-925.
Using solar energy
"The solar module will live for about
30-40-50 years. This means that it will be generating for
the next 30-40-50 years just free energy. Obviously, thats
a great advantage for our earth; we have mined a lot of
the fossil energy. This is finally a way of renewing some
of the energy, and being green for the earth."
Dr. Jean Posbic
BP Solar, Maryland
Hileman, B. , (2000), Oil Firms Act To Curb Climate Change,
'Chemical & Engineering News, Vol. 78, No. 45,
pp: 26-31.
© Annenberg Foundation 2017. All rights reserved. Legal Policy


text:
E6 Wants To Fight Kesan On PPV - Interview With HardBody TV Pt. 2! "Son. You Aint Got Nuttin Else Better To Do But Make Lies. You P*ssy" + Spits The Full MTV G's To Gent's Acapella Freestyle
E6 interview with HardBody TV Pt. 2
Please click the "Report" button below if the video on this page is not working properly.
Comments will only be displayed by verified emails. No Spamming or Racism.


text:
Tips for getting your apps approved
BlackBerry strives to get your app reviewed and approved quickly, but you can help if you:
- Include all your.bar files (for BlackBerry 10 OS and later) or .cod files (for BlackBerry OS 7 and earlier) in your release bundle.
- Complete the Confirmation of Digital Rights form if your application includes third-party content.
- Complete the User-Generated Safeguards form if your application contains user-generated content (for example, chat with another user or upload a photo).
- Complete the Export Control Questionnaire form if your application uses an encryption method like HTTPS or SSL.
- Link to a privacy policy if your app collects or uses customers' personal information.
- Check that your application, name, description and screenshot/icon images do not name competitors or competing products.
- The BlackBerry brand and trademark are used appropriately, as outlined in the Public Guidelines for Use of BlackBerry Trademarks.
- If you have written authorization or license from BlackBerry, you may use BlackBerry branding (BlackBerry PlayBook, BlackBerry) in your application.
The guidelines for BlackBerry owned brands can also be applied to other recognizable brands, such as Facebook, Twitter, Google, or Microsoft. Generally, if an application name starts with a brand/company/product it implies an association and that it's an authorized or official application submitted by that brand/company/product. For example:
Not allowed
- Player for YouTube
- Chat for Facebook
- Workflow for SAP
- YouTube Player
- Facebook Chat
- Microsoft Excel Tips
Once your apps are approved, they will automatically be posted for sale. You can opt out of this automatic posting during the application submission process, but you need to do so before you submit your apps for review. You will receive email notifications from the administrator of the BlackBerry World vendor portal when your releases and applications are approved.
New apps can take 12 to 24 hours to appear on the BlackBerry World web store and device client. Once your application is submitted for review, you can change only the metadata (icons, screenshots, description, and so on) in the vendor portal. Any metadata changes submitted after your application is published can take up to 12 hours to appear on the web store and device client.
You cannot modify anything except for supported devices in a release that has been uploaded for review. To request your release(s) be removed from the review queue to enable for modifications, complete the BlackBerry World vendor support form.
What to do if your app is not approved
While BlackBerry strives to approve all third-party applications submitted to the BlackBerry World vendor portal, some applications can be denied. An app can be denied if:
- The app contains broken links or buttons.
- There are keyboard issues. The keyboard must use correct mapping and become visible when needed.
- There are navigation issues. Users must be able to navigate through the app and return to the home screen.
- The app crashes or closes during use.
- The app damages the device or causes excessive battery drainage.
- The app release has missing .cod files or does not work.
- The vendor does not have the appropriate digital rights to distribute the application.
- The app violates the terms or conditions of the BlackBerry World Vendor Guidelines and the BlackBerry SDK License Agreement.
Some examples of policy violations apply when the application:
- Promotes an illegal or potentially illegal act.
- Is obscene (contains nudity or pornographic content) or is in bad taste.
- Violates privacy (for example, tracking apps, sex offender lookups).
- Is a web launcher without completing appropriate digital rights.
- Is a spam tool.
- Is a copycat app which is not sufficiently discernable from an existing app in either look, feel, or functionality .
If your app is denied, search for the app in the vendor portal and click Move to Draft. Make the required changes to your app, releases, or digital goods and submit the app for approval again.
Got questions about leaving a comment? Get answers from our Disqus FAQ.comments powered by Disqus


text:
CST MICROWAVE STUDIO® (CST MWS) is a specialist tool for the 3D EM simulation of high frequency components. The unparalleled performance from CST MWS makes it the first choice in leading R&D departments.
CST MWS enables the fast and accurate analysis of high frequency (HF) devices such as antennas, filters, couplers, planar and multi-layer structures and SI and EMC effects. Exceptionally user friendly, CST MWS quickly gives you an insight into the EM behavior of your high frequency designs.
We promote Complete Technology for 3D EM. Users of our software are given great flexibility in tackling a wide application range through the variety of available solver technologies. Besides the flagship module, the broadly applicable Time Domain solver and the Frequency Domain solver, CST MWS offers further solver modules for specific applications. Filters for the import of specific CAD files and the extraction of SPICE parameters enhance design possibilities and save time. In addition, CST MWS can be embedded in various industry standard workflows through the CST STUDIO SUITE® user interface.
CST MICROWAVE STUDIO® is seen by an increasing number of engineers as an industry standard development tool.
"I use the virtual TDR function in MWS as the standard method for developing all of my high-performance broadband interconnects for electronic packages. TDR simulations are simply the best way to do this in my mind. I recently presented a paper at IMAPS 2008 in San Jose describing an connector/package design having high performance from 0 to 30GHz, which compared to previous attempts achieving perhaps at the most 22 GHz of bandwidth. This interconnect was designed using TDR and the MWS optimizer"Dr. Jerry Aguirre, Kyocera America, Inc.
Your session has expired. Redirecting you to the login page...


text:
Pool skimmers are vital in protecting your water against dirty water and for removing debris from your pool. Pool skimmers trap floating garbage before it sinks to the bottom of your pool keeping it clean, and also enhance the efficiency of your filter. Pool Center offers skimmers for both above ground and in ground swimming pools as well as skimmer replacement parts and accessories.
One of the main functions of pool skimmers is to remove floating debris from your pool before it sinks or reaches your filter. Pool Skimmers keep your water clean and also help improve your filter's performance. Pool skimmers are installed near the surface of your pool and include a basket, a lid, and an open channel through which water flows. Pool skimmers are equally vital for both in ground and above ground pools although they perform the same function, they are installed differently. Above-ground pool skimmers feature a faceplate and are installed in the wall of the pool; whereas In-ground pool skimmers are drilled into the concrete of your pool making them stronger and long lasting.
Pool skimmers feature a very simple operation- water passes through the skimmer where debris gets collected in skimmer baskets and the clean water returns to the pool. Poo skimmer baskets need to be emptied periodically to prevent debris from blocking water from passing through the skimmer, and maintaining a clean pool.


text:
Falmouth Theatre Guild
Community Theater on Cape Cod
Story of My Life
Fun Home
Suede in Concert
Play it Again, Sam
9 to 5 The Musical
Join Us
Our 61st Season
2019-20 Season
Brazen Belles Valentease
Support FTG
Buy Tickets
Join Today!
Our History
Past Productions
Hall of Fame
60th Anniversary
Photo Gallery
Contact Us
Our Location
Who's Who
Submit a Proposal
FTG Scholarship
Anti-Harassment Policy
2015/16 Season
2015-2016 Season Show Titles
Be sure to like us on facebook!
See Current Productions!
Click here
Buy Tickets!
Join Falmouth Theatre Guild!
Click here
© 2019 Falmouth Theatre Guild.


text:
Make drop-down box for multiple choices with reporting tool
Drop-down box for multiple choices
Drop-down box has many advantages. Such as simplifying data input, avoiding wrong input and realizing the mapping between display value and code, etc. Therefore, it is very common in the input interface of Web report.
Usually, drop-down box is made for single choice. But in real business, the value of a field may have several choices. In this condition, a drop-down box for multiple choices will be helpful.
Take an employee information report for an example. An item is specialty foreign languages, and someone may be good at several foreign languages. If users have to design a column for each foreign language, the structure of the report will make users crazy. Then, if users can make a drop-down box for multiple choices, and those selected foreign languages can be saved in only one field, the problem will be solved.
It seems that the function is easy to realize. But this is not the case. Main difficulties are as follows:
1. The data submitted from multiple choices box to background is an array. Before saving it into database, programmers have to write program to transform it to a string separated by comma.
2. The data saved in database is a string. Before modifying the data in multiple choices box, programmers have to write program to transform the string to an array, and then display it in the input interface.
3. When there are too many options, drop-down box will be inefficient. In this condition, a drop-down tree will be helpful. However, as leaf node allows multiple choices, and branch node doesn't allow doing this, programmers have to set different properties for them. Therefore, it is much more difficult.
As a professional Web reporting tool, RAQ Report does everything to make users feel convenient. With thorough consideration of corresponding detail, RAQ Report provides a multiple choices option for many edit styles directly. Such as drop-down list, drop-down dataset, and drop-down tree, etc. With this wonderful function, users can realize multiple choices easily.
Easy Operation
1. Set Report style as Row report and set Input type as Input Report.
2. Define the edit style of the report. Such as drop-down list, drop-down dataset, and drop-down tree, etc.
3. Check the Multi Selection option in the properties box of edit style.
Reference: http://freezea.blogspot.com/


text:
Leashes On! AWLA's Shelter Walk For Homeless Animals | Pets
ALEXANDRIA, Va. (WUSA) - Grab your dog's leash and slip on your most comfortable walking shoes for Sunday's dog-and-family friendly event.
The Animal Welfare League of Alexandria (AWLA) is hosting the Alexandria Shelter Walk for Homeless Animals starting at 9 a.m. Sunday. This fun weekend event will benefit the residents of the Vola Lawson Animal Shelter, and is the only walk to benefit Alexandria's homeless pets.
The walk helps increase awareness about the ever-present problem of pet overpopulation,and covers 1.5 miles, beginning and finishing at Market Square. For registration information and details about the walk route, go to www.AlexandriaAnimals.org/Walk .
Participants, on four legs and two, will stroll through the streets of Old Town Alexandria's historic neighborhoods, and yes, George Washington himself once walked there (although no one can confirm whether a dog accompanied him.).
Those who share their homes with cats, ferrets, bunnies, guinea pigs, hamsters, birds or fish are asked to let their animal companions stay home from the Walk---really, the pets much prefer sleeping in on the weekend!-- but are encouraged to walk to represent their animal friends' species.
The sights and sounds of Old Town are always enjoyable, and on this coming Sunday, a spectacular autumn morning will offer new appreciation of the quaint and storied community. Hundreds of area canine-and-human duos are expected to turn out at this event, which is open to the public and the media. Congressman Jim Moran and members of the Alexandria City Council have also been invited.
Teams such as the Lyles-Crouch Animal Crusaders, a group of local 2nd
through 5th graders, will participate, as well as sell baked goodies to hungry walkers, with proceeds going to AWLA.
Local vendors will be in place all around Market Square in
support of the AWLA and all the Walk participants.
Adult registration is $25 and includes an event t-shirt and bandana. Children and teens are invited to join in the fun under the supervision of a registered adult. Youth registration (ages 6-16) is $10 and includes a t-shirt. Children 5 years of age or younger are free. Walkers are encouraged to form teams with coworkers, family members or civic group members. Prizes will be awarded to the top Team and Individual fundraisers. Adult participants who raise $100 also win an LED flashlight and poop bag dispenser to keep your evening walks clean and bright.
Online registration closes October 19, 2012 at noon, but day of registration will be available the morning of the walk, at Market Square, starting at 7:30 a.m.


text:
AT&T Says You Can Use Any Video Streaming App You Want... Just As Soon As It Can Get The Meter Running
from the cheap-phone-subsidized-with-a-two-year-shakedown dept
AT&T isn't going to let something like "net neutrality" slow it down from shaking every spare cent out of its customer base. (Source: I'm a customer. Also: see these.) Beginning last year with its blocking of Apple's Facetime app (exempting customers who were paying for higher service tiers) and continuing on through its recent lockout of Google Hangouts, AT&T has skirted neutrality by using one term: pre-loaded.
In its mind, as long as an app is "pre-loaded" by phone manufacturers (and competing options are available), AT&T can block app functionality if it feels it's somehow leaving money on the table. Of course, this irritates many of its customers and brings with it an uncomfortable amount of heat as the word travels around the web.
AT&T has now issued another statement to critics of its Hangout-blocking, one which sends the clear message that the company will gladly welcome streaming video apps with open arms (even pre-loaded apps), just as soon as it's able to simultaneously welcome a fat stream of income.
AT&T has issued a second, follow up statement that doesn't make a whole lot more sense than the first one did, and again tries to place the blame at the feet of OS and device makers. AT&T does, however, promise that they'll stop blocking video chat apps from running over their network by the end of this year:AT&T's buying time while trying to appear to be working towards a "solution" for all of its customers. The longer it can hold out, the more likely the chance that someone upgrades or switches devices, thus pulling them off their grandfathered unlimited data plans and onto tiered/metered plans that earn AT&T a bit more money.
"For video chat apps that come pre-loaded on devices, we currently give all OS and device makers the ability for those apps to work over cellular for our customers who are on Mobile Share or Tiered plans. Apple, Samsung and BlackBerry have chosen to enable this for their pre-loaded video chat apps. And by mid-June, we'll have enabled those apps over cellular for our unlimited plan customers who have LTE devices from those three manufacturers.
Throughout the second half of this year, we plan to enable pre-loaded video chat apps over cellular for all our customers, regardless of data plan or device; that work is expected to be complete by year end.
Today, all of our customers can use any mobile video chat app that they download from the Internet, such as Skype."
It tries to present this as a network issue, but Karl Bode translates AT&T's corporatespeak into the miserable truth:
In other words this isn't really technical (AT&T's LTE network is currently ranked the fastest available in the States), it's a way to bully unlimited users on to costlier plans. It's also a network neutrality violation, regardless of AT&T's choice of language.Now, there's nothing wrong with a business attempting to earn more money. But the key word here is "earn." AT&T's just trying to grab more income while offering nothing in return but a bunch of laughable statements -- both in regards to the current issues, as well as the non-stop "congestion" posturing it uses to justify limited, expensive data plans. It's obviously most interested in tying users to high-margin "services." The least it could do is drop the obviously ridiculous statements and tell its customers they can have what they want just as soon as it gets what it wants.
Filed Under: apps, broadband meters, net neutrality, streaming apps
Companies: at&t