2/28/2008

Never judge a blog by its color

This week, the hello kitty blog — formatted in shocking pink and festooned with pictures of its namesake — treated its readers to an informative entry on the QNX Neutrino RTOS.

When I first stumbled upon this blog, I braced myself for a stream of dewey-eyed musings on love, laughter, and Siamese cats. But instead, it’s filled with posts that define concepts like OS kernel, system shell, and software algorithms. Who would have guessed?

You can read the entry here — it’s in Italian, btw.

2/25/2008

Can multi-core chips deliver superlinear speedups?

Moving your code to a multi-core processor can yield a real performance boost, though the speedup is typically less than linear. For instance, moving a parallelizable algorithm from a single-core processor to a quad-core processor might give you a 3.95x performance increase, but not 4x. And it certainly couldn’t give you more than 4x.

Or could it? In a recent edition of Dr. Dobb’s, Microsoft’s Herb Sutter argues that developers can, in some circumstances, use “P cores to do work more than P times faster.” Read the article here.

2/14/2008

Mother Nature’s Debugger

The Goldenrod crab spider is a nasty piece of goods. A master of camouflage, it can mimic the color of its surroundings, rendering itself invisible to prey. Basically, it catches bugs by means of obscurity.

Check out the accompanying photo, which I took in my front garden. It tells the whole story: a yellow flower, a yellow crab spider, and an unfortunate fly that couldn’t tell the difference.



Obscurity is good for the spider, but not so good for humans. In business and politics, for example, hidden practices often, if not always, lead to corruption. Transparency is usually the cure, which is why a global organization dedicated to fighting corrupt practices calls itself Transparency International.

Mind you, transparency isn’t just good for CEOs and politicians; it’s also good for software developers. Vendors who publish their source code and develop their software products out in the open benefit from having more eyes inspecting their code — and the more eyes you have, the easier it is to catch bugs. (Spiders figured this out long ago.) Customers, for their part, can study the code and learn how to make best use of it. They can also use it to improve their own debugging efforts — which means even fewer bugs.

Basically, transparency is good for both the vendor and the software user. And there’s nothing obscure about that.


Using more eyes to catch more bugs.
 

2/04/2008

Getting a leg up on robotic design

I was tempted to buy a Roomba robovac last week, until my wife warned me of the pandemonium that would ensue when our schnauzers got a hold of it. So while I can’t entertain you with a cute video of my dogs attacking a robotic vacuum cleaner, how about the next best thing: a giant robotic leg powered by QNX.

This week, Carnegie Mellon’s student newspaper posted a story on Jonathan Hurst, a grad student who plans to develop a six-legged robot that can walk, run, and even climb stairs. Already, Hurst has designed an innovative leg that uses fiberglass springs to emulate natural running movements — a departure from the rotating gear motors and pneumatic actuators of traditional robots.

For his project, Hurst is using software from RHex, a QNX-based robot that is the “first documented autonomous legged machine to have exhibited general mobility... over general terrain.” RHex also serves as the basis for AQUA, a project dedicated to building amphibious robots that work underwater. Click here to see the RHex and AQUA robots in action.

If you search the web, you’ll find lots of other robotic projects based on QNX, including the famous Cog and Kismet robots from MIT. In most cases, these projects use QNX because of its realtime capabilities. However, the researchers at MIT needed to solve an additional problem: implementing efficient interprocess communications among Cog’s 32 processors. They found the solution in QNX transparent distributed processing (TDP), which allows an application to access remote software and hardware resources without special software coding. Recently, QNX published the source code for TDP on Foundry27.