Escape the software development paradigm trap
by Mark Bereit
It's not a given that the quality of software will always be poor. The essential complexity of software is not some immutable universal law. Writing from inside the development trenches, this author redefines the problem and points to other industries that can offer solutions.
Diversity protects embedded systems
by Jim Higgins
If all embedded systems were created equal crackers would quickly exploit their shared vulnerabilities. Just as locks aren't secure if everyone uses the same key, embedded systems aren't secure if they have the same DNA. Here's the argument for diversity.
by Niall Murphy
Rotating pixels, finding a square root, picking the length of a timeout on a watchdog timer–what do all these typical computing problems have in common? They're all likely to get you stuck in a rut, using the same boring algorithms. Knowing how to think creatively helps you solve all sorts of puzzles. Time to take a fresh look at some old problems.
Real-time debugging 101
by Srinivas Gollakota and Guiseppe Olivadoti
Debugging a “live” real-time system has its own set of problems and challenges, some quite subtle. This primer on the topic gets developers up to speed quickly.
Design your own memory using ABEL
by Gamal Ali Labib
Some circuits are harder to design than others. Often it's the tools that are the problem; using the wrong tool can make life harder than it needs to be. This article shows you how to design an SRAM using a schematics and ABEL hardware-description language.
Approximations, part deux
by Jack G. Ganssle
Vendor-supplied approximations may not be optimum for speed-sensitive real-time systems, but Jack has found an excellent source for approximations. This month, he looks at exponentiation and logs.
Appeasing the design odds
by Jim Turley
You can't force innovation but you can coax creativity to visit you more often.