Go here to sign up for The Embedded Muse.
TEM Logo The Embedded Muse
Issue Number 283, May 4, 2015
Copyright 2015 The Ganssle Group

Editor: Jack Ganssle, jack@ganssle.com
   Jack Ganssle, Editor of The Embedded Muse

You may redistribute this newsletter for noncommercial purposes. For commercial use contact jack@ganssle.com.

Editor's Notes

What's the difference between a mutex and a semaphore?  Even very experienced firmware developers too often fail to appreciate the importance of using the correct tool for the job at hand.  And, unfortunately, misuse of these two distinct parts of the standard RTOS API can lead to difficult-to-debug defects in embedded software, with potentially severe consequences.  Please take the time to educate yourself via http://barrgroup.com/mutex-v-semaphore.

After over 40 years in this field I've learned that "shortcuts make for long delays" (an aphorism attributed to J.R.R Tolkien). The data is stark: doing software right means fewer bugs and earlier deliveries. Adopt best practices and your code will be better and cheaper. This is the entire thesis of the quality movement, which revolutionized manufacturing but has somehow largely missed software engineering. Studies have even shown that safety-critical code need be no more expensive than the usual stuff if the right processes are followed.

This is what my one-day Better Firmware Faster seminar is all about: giving your team the tools they need to operate at a measurably world-class level, producing code with far fewer bugs in less time. It's fast-paced, fun, and uniquely covers the issues faced by embedded developers. Information here shows how your team can benefit by having this seminar presented at your facility.

India update: I will be doing a three day version of this class, open to the public, in Bangalore, India July 15-17. Contact Santosh Iyer for more information.

Embedded Video

After too long of a hiatus from making videos, here's Jack's review of GW Instek's GDS-1052-U bench oscilloscope. This is a dual channel 50 MHz unit, for $300.

Quotes and Thoughts

"Software design errors are like space explosions. They are seldom heard and hard to spot. You do not see them coming but when they hit, they hit with more energy than they did when initiated. Once found, you spend the rest of the project dodging their debris. Spend your time and attention in the design phase. Knock out design flaws while they are small; do not wait until they are death stars." -Gary Petersen

Tools and Tips

Please submit clever ideas or thoughts about tools, techniques and resources you love or hate. Here are the tool reviews submitted in the past.

Last Muse I asked if anyone had experience with this week's giveaway, the GW Instek GDS-10520-U oscilloscope. No one answered in the affirmative, but two readers had used their power supplies. Clyde Shappee wrote:

I have used the Instek PST-3201 triple supply in the past.

As with many of their supplies (I think) it has a power-on button and a button which effects the connection to the loads--a very nice feature. If any of the supplies should trip, they are all instantly disconnected.

I did get a surprise one day when the supply tripped for apparently no reason. Turned out an unused supply was current limited to 0.000 A. A little noise got in there!

Chris Svec commented:

I have a GW Instek dual output power supply which is just okay - it's got a loud fan that runs all the time, and the voltage output seems to drift a bit, but that could be because I nudge the sloppy control dials unknowingly. The power supply is a GW GPS-2303. It puts out 30V @ 3A, which I need.

Richard Tomkins likes DevDocs:

DevDocs works standalone (within a browser) and integrates with Brackets.

Although both DevDocs and Brackets are oriented towards the internet, DevDocs contains C, C++ and JavaScript references and Brackets is turning out to be a really strong text editor with a huge plugin community.

Free Bench Oscilloscope

Free oscilloscope

As mentioned in the last Muse, we're upping our game and will have some great giveaways. This month some lucky Muse subscriber will win a free bench scope, a GW Instek GDS-1052-U. This is a dual channel 50 MHz unit, and offers great performance for the $300 price.

The contest will close at the end of May, 2015.

Go here to enter in the contest. A video review is here, and a written one should appear on embedded.com this week.

Office Space in Decline

Why does software cost so much? That's the lament of so many managers. Tom DeMarco had an interesting answer: compared to what? I imagine Microsoft invested a fortune in writing Excel. But cost of the alternative, building it from non-computer hardware, would suddenly make that software investment look pretty cheap.

Yet producing software products is expensive and many look for ways to reduce costs. Unfortunately, all too often the wrong solutions are implemented.

DeMarco and his colleague Tim Lister found that the biggest killer of software productivity is interruptions, and they found nearly a three to one difference in productivity between software engineers who were frequently interrupted, and those that weren't.

Three to one. You'd think that would drive people's thinking.

It doesn't.

Consider Facebook's new ten acre campus, a completely open environment into which 2800 engineers are shoehorned. That's 160 square feet per engineer, and surely there are a lot of additional and uncounted support people milling around as well, not to mention storage, bathrooms and the like. I suspect the actual amount of "office" space is on the order of 80 square feet per engineer. Perhaps less.

Those who measure these things have found that office space is declining:

Office space per worker

We engineers like graphs and numbers. I extrapolated that data. The results aren't pretty:

Trend in office space

Younger engineers had better figure on some serious dieting!

On Technical Forums

If there is ever an exercise in futility, it's posting comments to a political forum, or in response to an article about some bit of politics. You can be sure in the latter case that the majority of comments to left-leaning publications will be left-leaning, and those to right-leaning postings will be right leaning.

Technical forums, though, are coming under fire sometimes as well.

A reader of one of my recent columns posted this article about Stack Overflow. It's a pretty serious indictment of the nature of the site, and more so of some of the more highly-rated posters to that site. His rant is tempered by some thoughtful suggestions for improving things.

I generally stay away from forums, for a few reasons:

  • Too often pointless flame wars reduce the signal-to-noise ratio to near zero.
  • In many cases the same questions get asked over and over.
  • Or, the questions are unanswerable ("what's the best MCU to use?").
  • Many of the issues discussed are pointless, philosophical ("is a mobile phone an embedded system?") or just not interesting to me.
  • The last thing I need is a reason to spend more time in front of the computer!

Steve Anderson shares his experience with embedded Linux forums:

Greetings, I truly enjoy your articles, and have been considering sharing some of the issues I have been overcoming with embedded linux.

The community is rife with questions by people like me which are generally answered in 2 ways...

First is the sound of crickets in the night... no answer... ever... Not even an "I figured it out, here it is, and thanks for nothing..."

Second if someone bothers to answer, leads to an educational experience path pointing to documents or suggesting ideas which generally seem to be intended to lead one down their own educational path.

Never do I see a direct and succinct answer to even a simple direct and succinct question.

Never do I see anyone who posted an unanswered question post the solution they arrived at themselves.

After all, either of these might prove helpful to someone else looking for a solution to a similar problem later on.

It is a bit like an archaeological adventure - finding other peoples questions on the web in blogs and trying to fit together an answer from the non-answers they got.

I suppose that the biggest problem is that I am not an indoctrinated acolyte of any specific cult of linux - I couldn't afford the robes and am terrible with secret handshakes.

It's not like being in college again...

It's more like being in some strange sort of jedi/padawan lerner martial arts world for the technologically inclined...

A world where the indoctrinated are somehow not permitted to make direct answers due to some unspoken non-helpfulnes prime directive.

And then they wonder why they are not commercially successful with support like this...

And yet, some forums are rich in content (e.g., Stack Overflow) and Google mines them well. They are a great resource. As a Google user who uses forums as a database, rather than as a participant, I like Stack Overflow's approach to rating answers. We're building a barn, and I'm often looking for information about framing, the Code, and the like, and find so many postings contradictory. In the course of ten postings you may find ten different answers.

What is your take on the technical forums?


Let me know if you’re hiring embedded engineers. 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. There is no charge for a job ad.

Joke For The Week

Note: These jokes are archived at www.ganssle.com/jokes.htm.

In Muse 272 I posted a picture of a road sign that appeared to indicate a highway "zero." Readers informed me it was highway letter-O. Bandit sent in what really looks like a highway zero, first exit sign going east on I-40 just after you enter Texas from New Mexico:

Exit zero

Advertise With Us

Advertise in The Embedded Muse! Over 23,000 embedded developers get this twice-monthly publication. .

About The Embedded Muse

The Embedded Muse is Jack Ganssle's newsletter. 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.