Go here to sign up for The Embedded Muse.

Embedded Muse 193 Copyright 2010 TGG April 5, 2010

You may redistribute this newsletter for noncommercial purposes. For commercial use contact jack@ganssle.com. To subscribe or unsubscribe go to https://www.ganssle.com/tem-subunsub.html or drop Jack an email at jack@ganssle.com.

EDITOR: Jack Ganssle, jack@ganssle.com

- Editor's Notes
- Quotes and Thoughts
- PIC32 Ethernet Haikus
- Tools and Tips
- Jobs!
- Joke for the Week
- About The Embedded Muse

Editor's Notes

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 https://www.ganssle.com/onsite.htm .

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:

Ralph Hempel:
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

Scott Larson:
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:

Peter Harris:
Good embedded systems
Like my home's foundation
Never need a reset

John Darjany:
No one observes it
Working silently for us
Mimicking nature

Chris Svec:
Firmware, like haiku:
Constrained, meaningful, graceful,
efficient design.

Ken Smith:
ground is now power
blue smoke rises from one chip
the smell of failure

Marty Pomeroy:
New board hopeful tests
Buzzed out, ready to power
Sadly smoke escapes

John Visosky:
a bad line of code
never tested in the lab
a car hits a wall

Tom Burke:
Firmware releases soon.
The nights become more sleepless.
Marketing sleeps well.

Peter House:
Connected the brains
Surrounding us day and night
Vigilant they are

Thilo Lauer:
Trying all day long
The board just won't run the code
Time to re-design.

Duane Mattern:
Bit and byte and words
Can you help me with this merge
Development blues.

Bill Lovegrove:
bugs to be captured
quiet smile at night

Greg Hawley:
Stuck in the lab now.
Thwarted at every move!
Why doesn't this work?

Steve Langstaff:
One side is metric
The other imperial
The spacecraft is lost

Victor Szeto:
Only dev board fried
Lonely office at midnight
Cry into coffee

Scott Harrison:
The light shines anew
The prototype is gone
What has happened

Pete Klammer:
Chip alone goes wild;
With debugger all is well:
Heisenberg effect.

John Breitenbach:
one more board reboot
late night trade show deadline looms
who forgot watchdog?

Jerry Penner:
Code hangs most runs now
Watchdog barking at each step;
Didn't read datasheet.

Greg Gentile:
Embedded thoughts I dream
Of how to make the engine scream
Go Toyoto Go

Jim Greene:
The mighty processors
Used by all mankind
Tamed by the Engineer.

Kevin Walton:
Poorly written docs
No idea what this switch does
On hold, tech support

Graham Harrison:
It fell over once
Next time seemed to work OK
Release anyway

Chip Fleming:
Bad new this morning
The new firmware failed last night
The customer fumes.

Paul J. White:
Tiny CPU
Low cost, easy to program
Where is that darn bug?

Prasana Angolkar:
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.

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 jack@ganssle.com.

The Embedded Muse is supported by The Ganssle Group, whose mission is to help embedded folks get better products to market faster. can take now to improve firmware quality and decrease development time.