Embedded Muse 193 Copyright 2010 TGG April 5, 2010
You may redistribute this newsletter for noncommercial purposes. For commercial use contact firstname.lastname@example.org. To subscribe or unsubscribe go to http://www.ganssle.com/tem-subunsub.html or drop Jack an email at email@example.com.
EDITOR: Jack Ganssle, firstname.lastname@example.org
- Editor's Notes
- Quotes and Thoughts
- PIC32 Ethernet Haikus
- Tools and Tips
- 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 .
VDC's embedded survey will close soon. VDC will provide all respondents who complete the survey:
* Instant access to a summary of VDC's 2009 survey findings;
* Entry into a prize drawing for one of five $100 Amazon.com gift certificates (drawing to be held August 15th, 2010); and
* A summary of the 2010 survey findings once the survey is complete later this year
Here's the link: http://vdcresearch.com/survey/10_esdt.html?RID=G
Quotes and Thoughts
Increasingly, people seem to misinterpret complexity as sophistication, which is baffling---the incomprehensible should cause suspicion rather than admiration. Possibly this trend results from a mistaken belief that using a somewhat mysterious device confers an aura of power on the user. Niklaus Wirth
PIC32 Ethernet Starter Kit Haikus
Microchip generously gave us three PIC32 Ethernet Starter Kits to give to Muse readers. I asked for readers to come up with a haiku about embedded systems; the best three would win the kits. Well, it was nearly impossible to pick the "best" three as so many were so good. We did our best. Congratulations to the following for their awesome entries:
Are you sure that this
Null pointer dereference
Is what you wanted?
Peter H. Friedrichs:
We program micros.
You call us technicians but
We are magicians
fact n: if not n,
return one, else return n
times fact n less one
I had planned to run just the three winners, but so many others were so much fun! Sure, some aren't quite in haiku form, but I'm sure you'll enjoy them:
Good embedded systems
Like my home's foundation
Never need a reset
No one observes it
Working silently for us
Firmware, like haiku:
Constrained, meaningful, graceful,
ground is now power
blue smoke rises from one chip
the smell of failure
New board hopeful tests
Buzzed out, ready to power
Sadly smoke escapes
a bad line of code
never tested in the lab
a car hits a wall
Firmware releases soon.
The nights become more sleepless.
Marketing sleeps well.
Connected the brains
Surrounding us day and night
Vigilant they are
Trying all day long
The board just won't run the code
Time to re-design.
Bit and byte and words
Can you help me with this merge
bugs to be captured
the screen glows as fingers fly -
quiet smile at night
Stuck in the lab now.
Thwarted at every move!
Why doesn't this work?
One side is metric
The other imperial
The spacecraft is lost
Only dev board fried
Lonely office at midnight
Cry into coffee
The light shines anew
The prototype is gone
What has happened
Chip alone goes wild;
With debugger all is well:
one more board reboot
late night trade show deadline looms
who forgot watchdog?
Code hangs most runs now
Watchdog barking at each step;
Didn't read datasheet.
Embedded thoughts I dream
Of how to make the engine scream
Go Toyoto Go
The mighty processors
Used by all mankind
Tamed by the Engineer.
Poorly written docs
No idea what this switch does
On hold, tech support
It fell over once
Next time seemed to work OK
Bad new this morning
The new firmware failed last night
The customer fumes.
Paul J. White:
Low cost, easy to program
Where is that darn bug?
Mind a plan to profit
Sketch and flow top design
Code, test and demos
Tools and Tips
Johann Kok sent this: "I can just add my voice to the chorus for Beyond Compare. It boosts any programmers productivity and is simply the best. The latest version can even compare excel, word and pdf files great for comparing 2 versions of a datasheet.
"For synchronizing I use AllWay Sync (http://allwaysync.com). You can set up profiles for different directories with different rules for each and it only sync the file difference to speed up the process.
"For drawing UML diagrams and also generate them from existing code I use Metamill (http://www.metamill.com). It does a great job and is also very affordable."
Rich Ries echoed others' compliments about Total Commander: "A big AMEN!!! TC also has a DIY network feature which allows me to transmit files between two computers. The one is an XP machine with NO floppy drives, but thumb drives; the other is a W-98 machine with NO thumb drives, but floppy drives. The W-98 is my work machine (do the development there); the XP is the company approved networking machine which I found impossible to get my (DOS-based) development software to run on properly. TC allows me to transfer the files relatively easily. The drawback is that I have to do a manual refresh (Ctrl-R) to see the new files."
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.
Joke for the Week
Mom was the best teacher of computer science I had:
For years I badgered my mother with questions about whether Santa Claus is a real person or not. Her answer was always "Well, you asked for the presents and they came, didn't they?" I finally understood the full meaning of her reply when I heard the definition of a virtual device: "A software or hardware entity which responds to commands in a manner indistinguishable from the real device." Mother was telling me that Santa Claus is a virtual person (simulated by loving parents) who responds to requests from children in a manner indistinguishable from the real saint.
Mother also taught the IF ... THEN ... ELSE structure: "If it's snowing, then put your boots on before you go to school; otherwise just wear your shoes."
Mother explained the difference between batch and transaction processing: "We'll wash the white clothes when we get enough of them to make a load, but we'll wash these socks out right now by hand because you'll need them this afternoon."
Mother taught me about linked lists. Once, for a birthday party, she laid out a treasure hunt of ten hidden clues, with each clue telling where to find the next one, and the last one leading to the treasure. She then gave us the first clue.
Mother understood about parity errors. When she counted socks after doing the laundry, she expected to find an even number and groaned when only one sock of a pair emerged from the washing machine. Later she applied the principles of redundancy engineering to this problem by buying our socks three identical pairs at a time. This greatly increased the odds of being able to come up with at least one matching pair.
Mother had all of us children write mail in a single envelope with a single stamp. This was obviously an instance of blocking records in order to save money by reducing the number of physical I/O operations.
Mother used flags to help her manage the housework. Whenever she turned on the stove, she put a potholder on top of her purse to reminder herself to turn it off again before leaving the house.
Mother knew about devices which raise an interrupt signal to be serviced when they have completed any operation. She had a whistling teakettle.
Mother understood about LIFO ordering. In my lunch bag she put the dessert on the bottom, the sandwich in the middle, and the napkin on top so that things would come out in the right order at lunchtime.
There is an old story that God knew He couldn't be physically present everywhere at once, to show His love for His people, and so He created mothers. That is the difference between centralized and distributed processing. As any kid who's ever misbehaved at a neighbor's house finds out, all the mothers in the neighborhood talk to each other. That's a local area network of distributed processors that can't be beat.
Mom, you were the best computer teacher I ever had.
About The Embedded Muse
The Embedded Muse is a newsletter sent via email by Jack Ganssle. Send complaints, comments, and contributions to me at email@example.com.
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 firstname.lastname@example.org for more information.