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
- Tools and Tips
- Book Review
- Joke for the Week
- About The Embedded Muse
This issue of The Embedded Muse is sponsored by SmartBear Software.
Catching bugs before they cause failures => better software. Code review does improve software quality, and you can do it fast and pain-free with Code Collaborator, the world's most powerful online review tool: www.CodeCollaborator.com?EM
Say goodbye to the tedious and time-wasting aspects of code reviews, such as meetings, print-outs, and manual metrics collection - try Code Collaborator today! And check out our *free* book on best practices for most effective code review: www.CodeReviewBook.com?EM
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 his book “Quality Is Personal” Harry Roberts shows that “trying harder” won’t change anything fundamental. More substantive changes must be made, and 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/classes.htm .
I’ll be speaking at the Embedded Systems Conferences in Boston (September 21-24) and England (October 7-8). If you’re at either of these events, do say “hi!”
VDC Research is conducting its annual survey of embedded engineers, and if you are involved in the engineering of embedded systems, they'd be interested in hearing from you. The research covers embedded software, hardware, tools, and development practices. VDC will provide all respondents who complete the survey:
* A summary of the 2009 survey findings
* A chance to win a $100 Amazon.com gift certificate
* Instant access to a summary of VDC's 2008 survey findings
To begin the survey, go to: http://www.vdcresearch.com/misc/surveys/09esdt/?RID=G
Electronic Design has an interesting article for those seeking jobs: http://electronicdesign.com/Articles/Index.cfm?ArticleID=21178 . And, it seems there are indeed some companies hiring – see the jobs section later in this issue.
Quotes and Thoughts
From Geoff Patch: Well over half of the time you spend working on a project (on the order of 70 percent) is spent thinking, and no tool, no matter how advanced, can think for you. Consequently, even if a tool did everything except the thinking for you -- if it wrote 100 percent of the code, wrote 100 percent of the documentation, did 100 percent of the testing, burned the CD-ROMs, put them in boxes, and mailed them to your customers -- the best you could hope for would be a 30 percent improvement in productivity. In order to do better than that, you have to change the way you think. - Fred Brooks
Tools and Tips
Scott Rosenthal cued me in to free schematic capture and PCB layout sites. See www.pad2pad.com and http://www.capilano.com/html/dwwx.html. I’ve used the latter’s DesignWorks package for some years. But the two together lets one get a small PCB design, plus a manufacturing quote, in a jiffy. Board prices are, to this old guy who used to spend thousands on PCBs, really cheap.
There’s a good summary of the differences between decentralized and centralized version control systems in Queue magazine: http://queue.acm.org/detail.cfm?id=1595636 .
Evgeni Stavinov has some free web apps that will generate Verilog or VHDL code to create CRC generators, linear feedback shift registers, and scramblers. See http://outputlogic.com .
Dave Kellogg sent: “Hundreds of e-books on line for free. http://www.e-booksdirectory.com/ is the top-level site. http://www.e-booksdirectory.com/programming.php may be of more interest to Muse readers. There is a surprising amount of reasonably current books.”
He also passed along this link to a site that has quite a few C/C++ coding standards: http://www.sourceformat.com/coding-standard.htm .
And Dave also generously sent his comments about a slew of tools:
Understand (www.scitools.com) is a powerful IDE plus Static Analyzer. It parses your code (C, C++, Java, Ada, VHDL, and several others) at a syntactic level, and builds a database. It can then show you textual and graphical tree views of calls to, called by, included by, read or write references to variables, dozens of metrics (including McCabes Complexity, comment density, line counts, and coupling), and much more. It has a scriptable API, multiple monitor support, and all the typical functionality of an IDE. It can generate flow charts from your code. It has an architecture feature for grouping a bunch of source files together as a unit, and then doing analysis on that unit. I’m extremely impressed with the support offered by Sci Tools. If you write code, you need to check out this tool. If you maintain code written by others, then you MUST check out this tool. The price ($500) may seem high if this were just an IDE/Editor. But with its huge range of analysis features, it is a fantastic bargain. Very highly recommended.
PC-Lint (www.gimpel.com) is the most capable lint available. For $390, you get automatic detection of hundreds of questionable C or C++ constructs, coupled with extremely flexible false positive suppression. It supports dimensional analysis (detects operations on variables with incompatible units) and MISRA compliance checking. The manual is 500+ pages. Strongly recommended.
One of my favorite utilities is FileLocator Pro (www.mythicsoft.com, $40). This is WAY more powerful than your fathers GREP. It can even GREP on file names and paths. It knows how to search inside of Word, Excel, PDF, and ZIP files (and many others). It can do searches (with exclusions) that combine date, size, attributes, contents (including RegEx), and file name (including RegEx). Like any good tool, it is scriptable. Highly recommended. It is the best search tool that I have found.
Until I got Snagit (www.TechSmith.com, $50) it, I did not realize how handy having a full-featured screen capture and mark-up tool would be. If all you have ever used is Windows Screen Print, you are in for an amazing surprise. Being able to clip and add mark-up to a screen shot is a huge enabler. It is very helpful for interacting with tool venders, when resolving problems. Again, highly recommended.
If you do many presentations, ZoomIt is a very handy free utility. Go to http://TechNet.Microsoft.com and search for ZoomIt. ZoomIt will enlarge a section of the screen, and will allow you to draw on the screen using the mouse.
I gave out a number of free books a while back, and asked recipients for reviews. Carl Douglas reviewed MicroC/OS-II:
“MicroC/OS-II is a small Operating System developed by Jean J. Labrosse, inspired out of frustration with proprietary Operating Systems for embedded applications.
“The book “MicroC/OS-II” is the complete documentation including source code for the MicroC/OS-II Operating System. It is intended for students and professionals alike and uses a `nuts and bolts' approach which permits skipping over some of the finer details. The design discussions are quite readable and accompanied by diagrams, however I would recommend some experience with the ``C'' programming language before working through the implementation examples. Each subsystem of MicroC/OS-II is documented and implemented, including multi-tasking, memory management, message queues, semaphores and events.
“MicroC/OS-II is free for non-commercial use, has been ported to many different processor families and is certified for safety critical applications.
“If you ever wondered how an embedded Operating System works, this book is all you need.”
(Note from Jack: Jean has a new version of the book, and the OS, coming out soon. I have read the new book and am really impressed).
Joke for the Week
Ben Sweet passed along one that uses four letter words as a metric of code quality: http://www.veracode.com/blog/2008/02/new-unit-of-reviews-code-quality/ .