Archive for September 2006

When Things Go Awry Writing

I’ve been writing a series of articles for DevX on concurrent programming. The final installment was supposed to be “Multicore for multimedia.” Plan A was to speed up the MAD (MPEG Audio Decoder) processing library using OpenMP. That went well enough except for the fact that the code was so clean that I couldn’t get any very impressive wins without committing myself to really changing the design in some fairly substantial ways (like concentrating the processing phases of a single audio channel to a single core). So Plan B was to write a video filter. Problem with that is that Adobe Premiere Pro already uses multiple threads to perform the callbacks to the video filter, distributing one frame to one core, the next frame to the next. That’s pretty much optimal. So when I added threads, my performance actually decreased.

So now I’ve got to figure out a Plan C. Oh, and I recommend MAD and Adobe Premiere Pro: they’re well engineered pieces of code.

Laser-Based Processor: A Nanosecond is Still A Foot

Intel’s announcement of a laser-based chip is frickin’ cool and, at the practical level, may be a big deal (beats me). But one thing that blows my mind every time I think about it is that light can only travel ~11.8 inches in a billionth of a second. And even though things get tricky when you start talking about CPU clocks multipliers, if we take a 4GHz CPU at face value, light can only travel 3 inches per cycle! You could barely get around the perimeter of the chip in that time! So chip designers literally have to take into account time as a physical dimension! That’s just awesome! (As clearly evidenced by my excessive use of exclamation points.)

HP: I’m A Little Confused

One of the things that differentiates me from many of my analyst colleagues is that I don’t generally delve into business stuff: I’m a technology guy. So normal boardroom shenanigans and so forth aren’t “my beat.” So let me see if I have this straight: the chairwoman of HP hired people to … let’s just put the whole “pretexting” thing aside — she hired people to install keyloggers on other people’s systems? And the debate isn’t how long she’s spending in prison, but kind of whether it was “ok” or not?

Am I missing something here? Is this not clearly illegal?

Are the CLR & JVM Well Suited For The Manycore Era?

Patrick Logan refers to Ted Leung observing that quad-core and octo-core MacPros don’t show anything like linear speedup. This accords with my own fanaticism about the manycore future. A question I don’t know the answer to: Do the CLR & JVM have characteristics that dramatically help or dramatically hinder their suitability for manycore hardware?

The CLR & JVM are based on abstract hardware. The virtual machines have some things which immediately jump out as, let’s say, “tough” for parallelizability — both have a model whereby separate threads are responsible for coordinating their own access to shared memory (i.e., fields in objects). On the other hand, they have at least one thing which jumps out as potentially a “very good” thing for parallelizability — their stacks are conceptually separate from main memory, which may make the threading models easier to evolve (in a world without pointers, data in the stack is inherently local to the current thread.) The “inherently parallelizable” aspect of functional languages arises from their exclusive use of the stack for volatile state, but with the way the stack is generally conceived (as, y’know, a stack) requiring pushing and popping and copying variables from one to another, problems arise when copying large datastructures; thus my thought that maybe the abstraction of the stack could be a “win.”

Is That A Turbine In Your Pocket?

I’m not sure that I’d feel comfortable carrying a fan rotating at 20,000 revolutions per second in my cellphone, which I keep in my pocket, which is next to my…

The thing produces 10 watts. I don’t know if I’m just being paranoid about wondering how it might fail catastrophically (I don’t fret about batteries blowing up, even though it’s obviously possible). I suppose you wrap the thing in titanium and have “crush zones” like a car.

Update: Added link so you know what I’m talking about.

Made In Express Winners Announced: I Call "Shenanigans!"

The Made In Express contest is over, with the winner being an “All Terrain Self-Maneuverable Robot.” This is unfair for at least two reasons:

  1. It’s a group entry (“Group entries will not be accepted“), and
  2. It’s been under development for years

I downloaded the source to the robot and the very first file I opened had a history file showing it had been finished in March of 2005! This is patently unfair to individuals who wrote their programs, as the contest clearly promotes, in two or three months.

To be fair, a re-reading of the rules page doesn’t restrict time of development to the big graphic on the frontpage that says “May: [Finalists] start to build their ideas into projects,” but the “group entry” thing is clearly forbidden.

“Made In Express” was a contest to highlight the use of the freely downloadable “non-professional” versions of Visual Express. I had criticized some of those chosen as finalists, including the robotic entry, because they were clearly overly ambitious for the short development window. I don’t want to rehash the particulars, but I hope that if there’s a repeat of this contest, the process could be a little more rigorous.

Tina and I Were Among The First Americans To Dive There

Tina and I dove this area of Irian Jaya years ago. It was beautiful and very wild. We didn’t see any fin-walking horn sharks, though. (We did see a species of stonefish that is classified as deadly and the locals were like: “Oh, if you get stung, you chew that leaf over there, spit it into the wound, and you’re fine.”)

Oh, and I had to pin a cassowary that had escaped to the bottom of our boat for 2 hours.  They named him “Larry the Cassowary” in honor of the occasion. He was a lot of fun (I mean, after the boat ride was over and he was released on the island and calmed down). He would chase after you and then you could spin around and chase him. It was sort of like having a small T. Rex as a pet.

Want to work with me?

Game Developer’s Conference Is Now Huge

This is fascinating: in a time where the common wisdom is that “big” industry conferences have met their doom, the Game Developer’s Conference has just announced that they are doubling the size of their floor space (i.e.: making money from people spending tens of thousands of dollars in setting up booths and glad-handing strangers walking by) and is projecting 12,500 attendees will walk through Moscone Center in San Francisco.

I think the Software Development Conference peaked at around 16,000 attendees circa 1999 and is now far smaller. That the GDC, which used to be a wonderfully intimate event, has surpassed CMP’s flagship development event is really striking.

Jamil Moledina and crew have done a wonderful job of growing the GDC and making it a real exception to CMP’s overall clumsiness in transitioning to the Internet era.

Test Drive Unlimited With A Steering Wheel

The slow boat from Amazon finally brought my copy of Test Drive Unlimited, a “massive multiuser online racing game” set on the island of Oahu. At first, I was slightly disappointed, since while the layout of the streets is based on reality, the scenery isn’t. So it’s not like you’re bombing down the street at 180 and see the old water department and thereby know that you’re coming up to Punchbowl Street (although I did shout to Tina “Don’t go around the block! Just take Prince Kuhio the wrong way for three blocks!”).

The individuality of the cars doesn’t seem quite at the same level as Project Gotham Racing, especially the drift mechanics (in PGR3, you go around one corner and you can tell where the engine weight in the car is). The engine sounds of PGR3 are also more distinctive.

So, while I was very happy with the TDU as a different kind of racing game, I wasn’t entirely jazzed. And then, after tooling around for a couple hours using either the gamepad or my MadCatz steering wheel, I discovered the somewhat obscure “Options|Controllers|Steering Wheel|Enable” setting. Oh baby… The problem with steering wheels has always been that games optimized for thumb-stick steering aren’t responsive to the slight corrections of “real” steering. So although you have a steering wheel (which is nice), you have to throw it side to side. Not with TDU: once you tell it you have a steering wheel, the responsiveness improves tremendously and, instead of feeling like a video game, you feel like you’re driving and can do things like stay in your lane, track through corners, weave through traffic… It’s incredible. I lost like 3 hours yesterday to it. (For me, spending 3 hours of daylight in front of a TV is inconceivable.)

Awesome game.