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.

1/28/2008

What multi-core crisis?

Quick: How big is a fox terrier? If you’re like most people, you probably have no idea. Yet, for almost a century, science textbooks stated that Hyracotherium, an extinct relative of the horse, was the size of one.

Why would textbooks keep repeating this comparison, when nine out of ten people wouldn’t know a fox terrier if it bit them? For that matter, why would a science book even use such a comparison, when inches or centimeters would be more, well, scientific?

The explanation is simple: The people who wrote the textbooks didn’t know how big Hyracotherium really was. They simply regurgitated what they had read in previous textbooks. Worse, the comparison is inherently flawed, since some research (MacFadden, 1986) suggests that Hyracotherium weighed in at 55 pounds — almost three times the weight of a healthy fox terrier.

Stephen Jay Gould revealed this sorry tale of science education in his 1988 article, “The Case of the Creeping Fox Terrier Clone.” It’s a classic story of how a handy phrase can encourage flabby thinking and obscure the truth. Incredibly, a number of sources continue to clone the erroneous comparison. One source makes a vain attempt to evade the issue by replacing "fox terrier" with "terrier" — a term that refers to a large variety of breeds ranging from 5 to 100 pounds.

Which brings me to a new phrase that has been cloning itself in the blogosphere: “The multi-core crisis.” If you look here, you’ll find several recent blog posts that warn of this impending catastrophe.

But here’s the thing. Most of these posts provide a balanced perspective on the multi-core issue. They don’t claim that the sky is falling. Rather, they say that system performance is going to hit a plateau unless software developers start designing more parallelism into their applications.

Why, then, do they call it a crisis? Alexander Wolfe nailed it when he said that bloggers are using the phrase because it “makes the problem much more accessible.” Nothing like a bit of drama to spark interest.

Nonetheless, the phrase obscures the truth. QNX, for example, has customers in the networking, industrial, and medical markets who have already made a successful transition to multi-core, and they did it without having to totally rethink or rewrite their software. The transition to multi-core on the desktop has been equally lacking in catastrophe. Case in point: I just read a review of an 8-core Apple Mac Pro in which three video-production applications took advantage of the system’s 8 cores, right out of the box.

Doesn’t sound like a crisis to me.

Are there challenges in moving to multi-core? Of course. Will some software developers find the transition harder than others? No doubt. But is there a true crisis looming? Only if we keep calling it that.

Tags: Multi-core

1/18/2008

Anything good on your geek shelf?

I’ve been enjoying QNX’s new Pocket Geek game and have come to a few conclusions about the diminutive coder:

  • He’s a die-hard command-line user (never touches the mouse)

  • He works in an extreme-programming environment (never codes more than 40 hours a week)

  • He’s concerned about IP contamination of his code (if that isn’t why he kisses his black duck, I don’t want to know about it)

  • He owns a penknife (how else do you sharpen a pencil as thick as your forearm?)

  • He never consults his reference library
Now that brings up an interesting point. At no time in the game does the Pocket Geek ever consult the massive tomes looming over his head. So why does he keep them?

If you’re a techie, you probably have a few reference books on your shelf. Are they all gathering dust, like the ones in the Pocket Geek game? Or has one made a real difference to your skills and productivity as a software developer?

Think of it this way: If the Pocket Geek were to read one book that would raise his productivity to new heights, what would it be? The 7 Habits of Highly Effective People? Extreme Programming Pocket Guide? The Joy of C?

1/11/2008

Green shift

For as long as I can remember, the QNX corporate color has been blue — RGB 0,51,102, to be exact. Lately, however, things at QNX have been looking a bit greener.

No, Spring isn’t coming early to Ottawa. Rather, QNX has been working hard to shrink its environmental footprint.

We started with small things, like getting rid of coffee stir sticks and styrofoam cups. Next, we placed more recycling bins at strategic locations throughout QNX headquarters. Then, we replaced older fluorescent lighting with ballasts and bulbs that consume significantly less energy. We’ve even installed motion sensors in meeting rooms and washrooms so that lights turn themselves off when not in use.


QNX HQ: Now with less styrofoam.

We’re discovering that, over time, even small changes can reap big benefits. Case in point: Raising the office temperature slightly during summer and lowering it slightly during winter not only reduces energy consumption, but also cuts down on our electricity bills.

We’re also looking more closely at the goods we consume. For instance, we realized that the paper for our photocopiers and fax machines contained no recycled fibers. So we switched to paper that does.

Mind you, initiatives like this work only if everyone gets involved. So the folks in charge of our environmental efforts have been encouraging employee feedback and implementing it where feasible. As for myself, I took a cue from other QNX employees and started biking to work — though admittedly, I’ve had to stop temporarily as a result of record snowfalls in Ottawa. (Sometimes, even nature can get in the way of a green initiative!)

What about you? What measures have you or your company implemented to pollute less and recycle more? Are there any difficult challenges you had to surmount? Any techniques or ideas you’d like to share?

1/07/2008

QNX gets a jolt

Good news: Dr. Dobb's magazine has just announced that the QNX Momentics IDE is a finalist in the 18th annual Jolt awards. Momentics is up against five other IDEs in the Development Environments category, including Sun's Netbeans IDE 6 and ActiveState's Komodo IDE 4.

Taking home this award would be a real coup, as the Jolt judges actually download and try out the shortlisted products. In many other technology competitions, judges simply review written submissions and make their decisions based on what they've read.

But hey, why wait to hear what the Jolt judges say? If you've never used QNX Momentics, download it now and judge for yourself. Visit http://www.qnx.com/products/getmomentics/.


Using the QNX Momentics IDE to analyze a quad-core SMP system.


Tags: QNX

1/04/2008

Blisteringly fast

Back in 2005, a press release described 25 ways in which people encounter QNX technology every day, whether they’re watching TV, washing their car, or surfing the web.

Allow me to add item 26: Taking your medicine.

This week, VisionSystems Design published a story on a new QNX-based vision system that can inspect up to 500 pharmaceutical blister packs a second. Developed by Scanware Electronic of Germany, the system uses algorithms written in C and C++ to detect contamination, broken pills, and empty or overfilled packets.

It turns out that the QNX Neutrino RTOS has a long history in vision and imaging systems. You'll find it in everything from the space vision system that helps Shuttle astronauts position the Canadarm to inspection systems that scan for defects in the lids of peanut butter jars.

Speaking of which, allow me to add item 27 to the list: making a PBJ!







Scanning for defects at up to 500 bps (blister packs per second)










Tags: QNX