Embedded Muse 207 Copyright 2011 TGG April 18, 2011
You may redistribute this newsletter for noncommercial purposes. For commercial use contact email@example.com. To subscribe or unsubscribe go to http://www.ganssle.com/tem-subunsub.html or drop Jack an email at firstname.lastname@example.org.
EDITOR: Jack Ganssle, email@example.com
- Editor's Notes
- Quotes and Thoughts
- Tools and Tips
- The Dumbest Thing I Did
- More on Local Knowledge
- More on Backups
- More on Debouncing
- Joke for the Week
- About The Embedded Muse
Are you happy with your bug rates? If not, what are you doing about it? Are you asked to do more with less? Deliver faster, with more features? What action are you taking to achieve those goals?
In fact it IS possible to accurately schedule a project, meet the deadline, and drastically reduce bugs. Learn how at my Better Firmware Faster class, presented at your facility. See http://www.ganssle.com/onsite.htm .
Quotes and Thoughts
Ray Keefe sent in this week's thought: "I don't think a program is finished until you've written some reasonable documentation... I think it's unprofessional these people who say, 'What does it do? Read the code.' The code shows me what it does. It doesn't show me what it's supposed to do." Joe Armstrong
Tools and Tips
The tool tips keep pouring in! Keep `em coming. Except this week when there are none. I am looking at a almost unbelievable micro-oscilloscope from Gabotronics (http://www.gabotronics.com/development-boards/xmega-xprotolab.htm). This thing is an inch and a half long, has a GUI display, and costs just $35.
The Dumbest Thing I Did
I thought it would be fun to run the dumbest embedded things we've done. Please submit yours, and it's OK to be anonymous! I'll start, but there have been so many dumb things it's hard to pick the worst.
Perhaps it was a fixed price contract I bid to suck data from a specialty high-speed tape drive. The datastream was fast, really fast, so I tied it to an interrupt input. Turns out the processor's interrupt handling overhead alone was slower than the incoming stream.
I spent 5 weeks finding the fastest possible set of a half-dozen assembly instructions to keep up with the flow, and we lost money on the project.
Or, there was the time we were working on a spectrophotometer using various solvents, and I dropped a glass bottle containing a gallon of ether. I don't remember the rest of that day.
More on Local Knowledge
John Johnson wrote: "Like A.Non from the last issue, I too was called, just last week, by a former employer to make a visit to a customer site as result of product / local knowledge I posses.
"I liken the practice of relying on undocumented, local knowledge to the aboriginal peoples' traditions of oral history passing on the stories of the elders to the next generation. And my former employer had to call on this aging hunter to help them out."
Paul Carpenter said: "Couple of recent in last few days events:
"A) One email enquiry came from a newsgroup post about an old PC card (the DT2851), all I could tell the guy was that I last saw one about 20 years ago, I did not have the manual, but from memory the default I/O, IRQ and memory settings were...
"His reply was 'You are an amazing trove of information without a manual in front of you.'
"B) One of my customers, has staff that are close to retirement, well the MD/CEO is around 80! As one of the youngest people they use for contracting (a mere 50), they are asking me to ensure I gain MORE local knowledge. Because I am the only person other than their in house person who knows about certain projects. My experience is mainly designing their test equipment for the last 3 years."
More on Backups
"I have personally dealt with data recovery where possible from floods in THREE directions
" Down - Water tank/pipe/toilet - burst/leak
" Up - Sewers backed up flooding to considerable depth
" Sideways - Flash floods crashing through houses from nearby fields.
"In one case the one backup drive on a higher shelf got flooded out as well.
"Don't even get me on the old saga of the guy who thought he had installed wonderful backup software with compression for floppy disks (yes that long ago but the media size is not important). When asked how he was going to restore from the backup, his answer was always "it's on the backup discs", yes you guessed it the software was on the backup disk in COMPRESSED form, with no boot method and no archive copy of the backup software and OS.
"A lot of people are resorting to backups in the cloud, but be wary. Will the service survive or will it succumb to the usual irrational
"Cautionary tales about backups remotely or so called 'cloud', which is normally one service somewhere on the globe, probably a single machine that is itself not backed up, and insecure.
"1/ many companies and organisations in UK and EU are having to cancel their 'online'/cloud backup services as the providers cannot provide even Data Protection regulations compliance of even guaranteeing all systems used will be in the EU. This breaks the rules for many medical and financial organisations to comply with their regulatory bodies.
"2/ Going on from Data Protection many banks in UK outsourced to Asia for call centres and then found the personal information being sold by unscrupulous employees.
"3/ For another cautionary tale see Buncefield disaster http://en.wikipedia.org/wiki/Buncefield_fire
"This fire and explosion knocked out (as in FLATTENED) at least one data centre company so at least one regional hospital could not get at its patient data.
"4/ Hurricane Katrina and why backups even out of state are sometimes useful. In New Orleans after the flooding, lots of prisoners in jail, police cells and court holding facilities got lost in the system as the data was lost. So nobody could verify for some time whether somebody was being held for seven days or life."
More on Debouncing
Bill Gatliff has a different take on debouncing: "The only sure way to properly interface to a pushbutton or switch is through an ADC. That's a true statement based on my years of experience in the field, as overkill as it sounds.
"On some machines the pin assigned to the ADC function is also multiplexed with a GPIO or interrupt source. In such cases you can use the GPIO or interrupt function to automatically detect activity at the pin, relieving you of some need to poll the input--- but you still want to poll it occasionally. Once you detect activity at the pin, you use the ADC to figure out what the new state of the "switch" is."
Let me know if you're hiring firmware or embedded designers. No recruiters please, and I reserve the right to edit ads to fit the format and intents of this newsletter. Please keep it to 100 words.
Highland Technology, a San Francisco based instrumentation design company, is looking for an embedded systems programmer to help design products ranging from precision analog acquisition systems to picosecond timing controllers. The ideal candidate is an electrical engineer with an emphasis on programming bare-metal or thin-RTOS based systems. 5+ years experience preferred, brilliance a potential substitute.
This will involve brainstorming and architectural design of products from first concept to final documentation. We work on a huge range of systems, with designs involving signal processing, FPGAs, control theory, and a whole lot of analog trickery. See http://www.highlandtechnology.com/company/careers.shtml for information.
Joke for the Week
New SI units:
1. Ratio of an igloo's circumference to its diameter = Eskimo Pi
2. 2000 pounds of Chinese soup = Won ton
3. 1 millionth of a mouthwash = 1 microscope
4. Time between slipping on a peel and smacking the pavement = 1 bananosecond
5. Weight an evangelist carries with God = 1 billigram
6. Time it takes to sail 220 yards at 1 nautical mile per hour = Knotfurlong
7. 16.5 feet in the Twilight Zone = 1 Rod Serling
8. Half of a large intestine = 1 semicolon
9. 1,000,000 aches = 1 megahurtz
10. Basic unit of laryngitis = 1 hoarsepower
11. Shortest distance between two jokes = A straight line
12. 453.6 graham crackers = 1 pound cake
13. 1 million-million microphones = 1 megaphone
14. 2 million bicycles = 2 megacycles
15. 365.25 days = 1 unicycle
16. 2000 mockingbirds = 2 kilomockingbirds
17. 52 cards = 1 decacards
18. 1 kilogram of falling figs = 1 FigNewton
19. 1000 milliliters of wet socks = 1 literhosen
20. 1 millionth of a fish = 1 microfiche
21. 1 trillion pins = 1 terrapin
22. 10 rations = 1 decoration
23. 100 rations = 1 C-ration
24. 2 monograms = 1 diagram
25. 4 nickels = 2 paradigms
26. 2.4 statute miles of intravenous surgical tubing at Yale University Hospital = 1 IV League
27. 100 Senators = Not 1 decision
About The Embedded Muse
The Embedded Muse is a newsletter sent via email by Jack Ganssle. Send complaints, comments, and contributions to me at firstname.lastname@example.org.
The Embedded Muse is supported by The Ganssle Group, whose mission is to help embedded folks get better products to market faster. We offer seminars at your site offering hard-hitting ideas - and action - you can take now to improve firmware quality and decrease development time. Contact us at email@example.com for more information.