Time to pay up, Bill

Yesterday, I was regaling my colleagues with an urban legend about Hershey's kisses. It goes something like this: Decades ago, factory workers wrapped the kisses by hand. To speed up the process, some workers would lick the bottom of each kiss before placing it on the wrapping paper — this practice ensured that the kiss stayed in place while being wrapped.

People laughed (uncomfortably) and my colleague Bill Keeler spoke up: "Okay, Paul, if you can write a blog entry connecting that story to QNX, I'll ship you a bag of Hershey's kisses, gratis."

Bill, it was all too easy: I simply googled "QNX Hershey". The first page of search results pointed to the LinkedIn page of someone who designed a QNX-based control system for — you guessed it — Hershey's Chocolate.

To rub salt (or should I say glucose) in the wound, QNX also served the OS for a recipe management system used by Cadbury Chocolate in Toronto.

Bill, is that connection good enough for you? If so, you still have an hour or two to mail me the kisses before Christmas. :-)

MulticoreInfo selects best multi-core posts of 2009

In 2009, the folks at MulticoreInfo published 1800 blog posts on multi-core computing. A couple of days ago, they selected what they believe were the top 10 posts of the year.

I haven't finished reviewing the selected posts, but I've already bookmarked a couple of them. One offers an introduction to parallel computing and other topics; the other explores the difference between concurrency and parallelism — two words that people often use interchangeably. (Count me among the guilty.)

You'll also find links to OpenMP, OpenCL, CUDA, MATLAB, Grand Central Dispatch, and many other topics, both introductory and advanced. To view the article, click here.


Solar Impulse plane completes first test flight

As I mentioned in an earlier post, QNX Software Systems is the realtime operating system provider for the Solar Impulse project, which intends to fly a solar plane around the world in 2012.

The champagne corks were popping on December 3, because on that day, the flagship aircraft for the Solar Impulse project left the ground for the first time. The flight was just a ”flea hop” — 350 metres in length at an altitude of 1 meter — but it was an important milestone nonetheless.

Now that the plane has proved airworthy, the Solar Impulse team will dismantle it and transport it to the airfield in Payerne, Switzerland. Starting in early 2010, the plane will make its first solar test flights — the solar panels weren’t used in the initial test flight — and the team will gradually increase flight duration until the plane makes its first night flight using solar energy.

Here's a video of the test flight; the best part starts at the 0:50 mark:

LTE Connected Car: The word cloud

Just for fun, I decided to create a word cloud of the LTE Connected Car press release.

In this word cloud, size indicates frequency: the larger the word, the more often it appears in the press release. Click the image to get the bigger picture:

Note the lack of self-congratulatory references: Alcatel-Lucent, QNX, and other ng Connect members figure very small in this word cloud, whereas the key concepts — car, LTE, connectivity — loom large. I like that. It shows that the companies issuing the press release were willing to focus on the topic at hand, rather than on themselves. Too many press releases do the exact opposite.

To create this word cloud, I used Wordle. It's a fun tool that lets you create a word cloud out of any web page or piece of text. It also lets you control a number of parameters, including fonts, colors, and layout. In this case, I filtered out many of the lesser-used words in the release to improve the signal-to-noise ratio and to make the cloud more visually attractive.


Why I didn't bike to work today

I must admit, I left my bike in the garage today. In fact, I didn't even bother going to work. I just stayed home, put on a pot of coffee, and made myself nice and comfortable.

The morning didn't start out that way. In fact, I was biting at the bit to get out and get going. But then I peered out the window. The rest, as they say, is history...

Click photo to enlarge

Hm, I think I left the key to the snowblower around here somewhere...

GE locomotives pull ahead with QNX

Sheer brute strength. That, to me, sums up a train locomotive. After all, how else do you haul 20 million pounds of freight up a mountain?

As it turns out, it takes more than raw horsepower. Case in point: the Evolution locomotives from GE. To my surprise, each Evolution locomotive employs 20 QNX-based Pentium-class systems to monitor and control the diesel engine, traction motors, compressors, battery chargers, radiator fans, and numerous other systems. According to an article in Design News, these systems “measure and check 2,500 to 5,000 parameters with data latency varying from tens of microseconds to tens of seconds, depending on the system…”

Why all the compute power? Because on its own, raw physical power doesn’t cut it. For instance, each axle on the locomotive uses a 1000 horsepower inverter to regulate torque and slippage. Too much slippage, and the wheel burns “through the rail in a hurry.”

Lots of horsepower, and lots of compute power to boot.

To learn more about these locomotives, check out the article here and the GE brochure here. To learn more about how QNX is used in control systems, check out the QNX industrial software platform webpage here.


Rx for ACVA (Acute Computer Virus Anxiety)

Earlier this week, my computer got hit by a virus — and a nasty one at that.

Being the calm, collected person that I am, I immediately went ballistic. Which resulted in a Class A headache. Which degraded into neck spasms. Which made me crabby. Which made everyone around me crabby. Which made me even crabbier.

But here's the thing: Nothing could lift me out of my funk. And believe me, I tried everything: diazepam, muscle relaxants, jogging, jumping jacks, Jack Daniels, aromatherapy, massage therapy, music therapy, cognitive therapy, psychotherapy, Oprah, peyote, naturopaths, green tea, Ovaltine, Prozac, Muzak, Mongolian throat singing, transcendental meditation, mystical levitation — the whole nine yards. Nothing worked.

Finally, my IS department intervened. They handed me a tool that had proved efficacious in similar situations and encouraged me to engage in some, ahem, therapeutic behavior:

In case you're wondering, I feel much better now, thank you.


Cool Eclipse CDT shortcuts

A sneak peak at an upcoming Eclipse webinar

I’m totally addicted to PhotoShop. But, like every other PhotoShop user, I’ve resigned myself to the fact that I’ll never really master the program. It simply has too many tools, any of which can be used in a thousand different ways.

Eclipse CDT is a lot like that. It’s so feature rich that you can take years to become a true power user.

My colleague Andy Gryc, who has helped customers with their Eclipse issues, has seen this problem first hand. And it gave him an idea: What if he canvassed a number of advanced Eclipse users and collected their favorite productivity tips?

Well, he did just that, and the result is a new webinar called “Hot Tips and Tricks for the Eclipse IDE.” I just got an early look at the content, and it’s shaping up to be a great session for anyone who wants to squeeze the most out of their Eclipse-based toolset.

Andy plans to cover automatic code formatting, code folding, advanced search, automatic refactoring, call hierarchy navigation, plug-ins, keyboard shortcuts, custom breakpoint actions, and many other techniques for boosting productivity — more than two dozen topics in all.

Sample techniques
To give you a taste, here are a few techniques that Andy will cover. Keep in mind that I've chosen some of the simpler examples — the webinar will also explore more advanced topics.

Viewing definitions and prototypes
If you press <Ctrl> and hover your pointer over an identifier, it transforms into a hyperlink. Simply click the link to view the identifier’s definition or prototype:

Prompting for command-line arguments
To prompt for command-line arguments when launching an executable, go to the program’s Launch Configuration, click the C/C++ Program Arguments tab, and insert the ${string_prompt} literal:

Detaching views
If you use multiple monitors, detaching a view from the main window can come in really handy. Simply right-click on the header and select Detach:

Again, this is just a sample — Andy will also cover template proposals, variable directory paths, automated header file include, function completion, automatic structure completion, expansion of #define’s, version compare, and many other techniques.

The webinar occurs Thursday, December 10, 2009 at 12:00 noon EST. For more information or to register, click here.

Remember, though, to fire up your Eclipse environment before entering the webinar. That way, you can try out the techniques in real time.

Honestly, I'm not making this up, Part III

When you issue a press release announcing support for ARM-based industrial processors, you just never know who will cover the news. Case in point:

BTW, if you're interested in QNX support for these processors — whether out of concern for humanity or for your next industrial project — you can download a QNX board support package here or here.

For the full text of the press release, click here.