Go here to sign up for The Embedded Muse.

Embedded Muse 209 Copyright 2011 TGG May 21, 2011

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
- Tools and Tips
- The Dumbest Thing I Did
- More on Backups
- 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 .

The Embedded Muse will be going on summer vacation following this issue. I hope everyone has a chance to get some time away from the office.

Quotes and Thoughts

In my opinion, most people's C programs should be indented six feet downward and covered with dirt. - - Blair P. Houghton

Tools and Tips

The tool tips keep pouring in! Keep `em coming.

Except for this week!

The Dumbest Thing I Did

When interviewing I always ask candidates (those with experience) about their dumbest mistake and what they learned from it. Those with no mistakes are generally those with no experience - or are perhaps truthiness-challenged. Do you have any?

From John Lynch: "While working for a local(large) Manufacturing company this episode happened. I was the lead technician on a large Electron Beam Processing Machine ( 750KV @ 100 ma)(actually 2 in parallel) and while replacing the cathode in one machine I removed the cathode from the top of the accelerator tube and while looking down into the tube realized the machine was running the other processor. I immediately sat the cathode cup back onto the top of the tube and within 15 minutes I had every Radiation Sickness there is. I reported my mistake to our radiation expert (sic) and he came and stuck his radiation monitor probe down into the tube and I found out that I had received less than a X-Ray's worth of radiation. * Dumb me! The machine's Design Engineer told me the machine was designed to where you could work on one tube with the other processor running with no injury. From then on out, we always had 2-3 of the EBP crew present to where this wouldn't happen again... I guess I should say * LUCKY ME!"

Paul Carpenter wrote: "Well done lots of things, most not very dumb, mainly watching others. I remember long ago, in a distant workplace, builders holding two pieces of metal frame for office partition walls apart so they could drill a hole for bolting them together at right angles. Two pieces held apart by very LARGE screwdriver being used as a lever, so the two pieces did not squash/cut a power cable. So the builders start drilling and the vibrations of drilling, shake the metal frames apart, guy holding screwdriver is holding so tight he does not realise screwdriver is MOVING upwards."

"BANG - building power goes out as screwdriver cuts across power cable. Building maintenance come around to change the VAPOURISED fuse wires for 60A/240V circuit and other trips."

"My more recent silly was getting confused about which way round things are laid out a footprint for QFN device that is mounted on BACK of board and failed to notice in the mirror image until built had the pin numbers going wrong way round the device. One respin later..."

Bill Clare sent this: This might or might not be the dumbest thing I did, but the system administrator had a good laugh about it and I remember it as the FIRST dumb thing I ever did. It goes back to when I was a green engineer, right out of college, and the senior engineers thought they'd give me a test. They asked me what the following program would do:

void main (int argc, char** argv)

"They figured I wasn't familiar with the "fork" function. Well, I was very familiar with it, having used it to implement a solution to Dining Philosophers. I wanted to show these engineers the new guy knew his stuff. I told them exactly what I thought the program would do, as follows: Continue to create processes, each of which would continue to create processes, etc., until my user account's process quota was reached. My login session would them be terminated, and my account would get reset.

"Without any warning, and before they could stop me (I can type very fast), I typed in the program, compiled it, and ran it on our Vax 11-785, which was running some BSD flavor of Unix (I think; this was more than 20 years ago...)

"Naturally the system crashed. Indignantly, I walked into the system administrator's office, and told him the entire story. He immediately burst out laughing, then explained to me that in this company, user accounts did not have quotas on the number of processes like they do in college. He did the equivalent of pushing the reset button, and everything was fine, except for the large amount of egg on my face that I had to remove."

More on Backups

Dan Beimers had a story: "Back in the early 1970s I was working on an airborne navigation system for the Navy at a defense contractor. The original source code consisted of punched cards, and the program was built on an IBM 360 mainframe in the company's administration building about 100 yards away from the engineering building. We had transitioned to storing the card images on a mainframe hard disk a couple of months earlier and were editing the code as necessary by submitting small editing jobs (still using punched cards) on a remote card reader in our building.

"Inevitably, there was a disk crash on the mainframe that destroyed our code repository, but no problem! Our backup was the original punched cards which we kept in our building. By this time, we had accumulated over three drawers of cards (roughly three feet long each if I remember correctly), so we didn't want to take the time to read them all in on our relatively slow remote card reader. Since our factory was a union shop, I called a lugger to take the drawers of cards over the administration building where there was a high-speed card reader. Imagine my horror when I got a call from the computer operator that the lugger had dropped one of the drawers as he was unloading them.

"Luckily, the computer operator had told the lugger to not touch the dropped cards, so they were laying in fairly organized piles. I went to the computer center and was able to reconstruct the card deck. "


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

If restaurants functioned like shrink-wrapped software:

Patron: Waiter!

Waiter: Hi, my name is Bill, and I'll be your Support Waiter. What seems to be the problem?

Patron: There's a fly in my soup!

Waiter: Try again, maybe the fly won't be there this time.

Patron: No, it's still there.

Waiter: Maybe it's the way you're using the soup; try eating it with a fork instead.

Patron: Even when I use the fork, the fly is still there.

Waiter: Maybe the soup is incompatible with the bowl; what kind of bowl are you using?

Patron: A SOUP bowl!

Waiter: Hmmm, that should work. Maybe it's a configuration problem; how was the bowl set up?

Patron: You brought it to me on a saucer; what has that to do with the fly in my soup?

Waiter: Can you remember everything you did before you noticed the fly in your soup?

Patron: I sat down and ordered the Soup of the Day!

Waiter: Have you considered upgrading to the latest Soup of the Day?

Patron: You have more than one Soup of the Day each day??

Waiter: Yes, the Soup of the Day is changed every hour.

Patron: Well, what is the Soup of the Day now?

Waiter: The current Soup of the Day is tomato.

Patron: Fine. Bring me the tomato soup, and the check. I'm running late now.

[The waiter leaves and returns with another bowl of soup and the check]

Waiter: Here you are, Sir. The soup and your check.

Patron: This is potato soup.

Waiter: Yes, the tomato soup wasn't ready yet.

Patron: Well, I'm so hungry now, I'll eat anything.

[waiter leaves.]

Patron: Waiter! There's a gnat in my soup!

The check:
Soup of the Day . ........... . . . . . . . . . $5.00
Upgrade to newer Soup of the Day. . . . . . . . $2.50
Access to support . . . . . . . . . . ..........$1.00

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.