User Interfaces and Usability for Embedded Systems

Feedback to Murphy's Bookshelf - Murphy's Law, Oct' 2003

return to Murphy's Law


You said: "Gray makes many references to engineers getting the opportunity to build something that didn't have a military objective. Many of these engineers spent their careers designing jets for the U.S. military and, therefore, were much more motivated to build something with a more altruistic goal."

Don't most engineers believe that the defense of America is beneficial (benefits others)? Living in San Francisco I am bombarded with this kind of thinking -- that work done in defense of the nation is a low form of work. I think it is the highest!

Altruism = "devotion to the welfare of others" Let's drop our defenses and see what happens to the condition of our welfare!

Del Hatch

Niall's response: Thanks for your feedback, and I appreciate that your opinion on military work differs from mine. Part of the quote y0ou refer to was motivated by a point in the book where Harrison is trying to recruit an old friend and he says "They are going to let us build something that does not have guns on it." (I do not have the book to hand here so my quote may not be exact). Anyways, I was trying to reflect that feeling from the book that struck a chord with me - so I was trying to reflect a message from the book as distinct from expressing my own opinions. Having said that my own slant would be also fairly anti-military.

Bear in mind that I live in a neutral country, Ireland, so from my point of view the "defence of America" generally means one country holding a lot of power over smaller countries. While most Americans believe that they are entitled to develop any and every sort of technology in their own defence, they deny that right to other countries - you may say that some of those countries are run by nutters, but the engineers in those countries think Bush is a nutter, so working on Iraqi defence weapons is just as honourable a goal as working on US weapons. For my own part I would not choose to work on "defence" or military projects for any country, including my own- I figure if you have lots of bombs around, some of them are bound to go off, and bombs going off is, on average, a bad thing for someone.

I lived in San Fran briefly myself, and I see your point that opinions there are very different to the rest of the US - however if you lived outside of the US, you would find that the opinions in SF are more similar to those in the rest of the world. The US used to receive a certain amount of respect as the "policeman of the world", but Bush has lost that respect, and it will take decades to fix the damage.

Sorry if all this makes me sound like a pinko-commie-surrender-monkey. I generally avoid this topic in my columns, since it is a forum for technical, rather than political, discussion, but on this one I let my colors show.

Dear Niall,

In the "Murphy's Bookshelf" section when reviewing "The Code Book" you said: "...One of Alan Turing's greatest achievements was the cracking of the German Enigma machine during World War II..." I would like strongly object to your comment as it discrimantes the historical achievements of polish cryptoanalysts that actually cracked the Enigma Code in the 1932!!! Turing merely was given the chance to continue their work and contributed in a very limited way.

Or maybe Turing invented "Reverse Polish Notation" as well? Why not, lets go and rewrite the whole history again... Best regards,

Adam Czaplinski Senior Embedded Software Engineer

Niall's response: You make a fair point and history will always be written with a slant towards one's one. In fairness to "The Code Book" it does give a lot of attention to the Polish work on Enigma, though I did not refer to this in my article.


Hello, I enjoyed your article from 09/04/03 on embedded.com

I am aware of the effect you are talking about and illustrated with your seaweed example.


"I have had to struggle with this issue on many occasions in my career and have come to the conclusion that new techniques can fail if they are hard to debug."

Nowadays, I use C and C++ everyday with nice source level debuggers that have a lot of shared knowledge about what the compiler has created but I remember the pain of adopting C early or C++ early and (in the case of C) stepping through code that was both hard to follow but painfull to witness as a natural born optimizer.

The Standard Template Library, is a counter example. In this case, I cannot avoid using the STL just because it is a huge pain to debug, because the productivity benefits are amazing. I eagerly await debugging technology to catch up.

Now, I have a jaundiced eye not because of the 'seaweed effect' but because I know that newer techniques (especially ones grown in-house) can carry large burdens when put into practice. Our company has recently returned to C++ from an 1 1/2 year excursion into Python. Not only was Python much more difficult to debug, its performance really became an issue.

Our company recently went down the road of interface based architecture. Similar to COM or CORBA we now have a unified system of defining interfaces using an Interface Description Language (IDL). The problem is, the system as designed adds layers(s) of abstraction around every object and call. The IDL we are using has only encompasses a fraction of C++. Every object now requires dynamic casting through every return value because the IDL only supports a few simple types. We now have this self perpetuating mess seeping into every aspect of our work. It's increddibly difficult to debug because the debugger has no way to know to what a pointer is pointing. It makes gratutitous use of templates and thus is harder to debug than the STL but with almost no benefit that I can determine.

But because I am afraid that I just "don't get it" and am like the people of Aran, I don't want to completely write off a new technique. I certainly dislike this system because of the difficulty with debugging.

So, I in summary, often in the rush to more productive methods, the debug cycle is overlooked. It should be an important part of the design and no techique should be considered finished until debugging is fully addressed. I don't know if/where this fits in with the seaweed anology...

David Galloway
Senior Programmer
Humongous Entertainment

[PanelSoft Home | Training Courses ]