December 8th, 2003


written on the plane to Connecticut

I am flying Jet Blue. They have LCD screens set up at every seatback. It's quite cool, actually.

One of the ads they show says "Air Guitar Through the Night". It has a picture of what I think is supposed to be a girl, carrying a tray with a TV on it.

The girl is a dead ringer for Desire. It's rather creepy.

That is all.

(Actually, she's really sexy. I am such a sucker for the androgynous look.)

(no subject)

Note to software developers:

Trying to restrict people from installing across a network or locally does not work!

Sequence of steps: Download ISO. Unpack ISO to local directory. Mount that directory on another computer. Attempt to install. Swear quietly. Copy directory to other computer. Attempt to install. Swear more loudly.

Download Daemon Tools. Mount ISO. Install. Smile contentedly.

It's worth pointing out that I mounted the ISO *across the network*.

marketing techniques

At the Topcoder Open, we had three presentations we had to go to.


Revelations Software was the one I'd never heard of before. They had a rather dry uninteresting presentation about what was, actually, a rather interesting database. It's a database designed for doing supercomplex stuff, rather than doing terabytes (or petabytes) of simple stuff. You could do all sorts of neat things like have columns that were generated programmatically, have event triggers based on queries - for example, you could set it up so the database itself would log every single query it got. You could even create programmatical virtual tables - like, given one table with id, name, and cost, and another table with id, name, cost, and quantity, I could create another table defined as "everything from Table 1, plus everything from Table 2 only with cost divided by quantity", and then I could do selects on *that* table. All automated, all avoiding worst-cases.

It was actually pretty cool. It was an incredibly dull presentation.


Intel was, if anything, even worse. Everyone there had been dealing with hardware architecture for years. We all knew about pipelining. We all knew about caching. We all knew everything they were teaching us, effectively, and they did it really badly. They had a few mildly interesting things about vectorizing compilers, but it never got past "compilers that vectorize can take advantage of MMX". Yeah. Thanks, guys. We knew this.

There was only one good part to the Intel presentation. They showed us example code, like such:

for( int i = 0; i < 4096; i++ ) {
    a[ i ] = b[ i ] + c[ i ];

And then they said "ah, but our new compiler changes the code so it's more parallizable!".

And they showed us the following code, as an example:

for( int i = 0; i < 2048; i++ ) {
    a[ i ] = b[ i ] + c[ i ];
    a[ i + 1 ] = b[ i + 1 ] + c[ i + 1 ];

Note that I didn't say it was a good presentation from *their* point of view necessarily.

(For the people in the audience who don't code, I should point out that the second piece of code isn't actually equivalent to the first piece of code - it's got a rather nasty bug in it.)


NVidia, on the other hand, brought us to a bar and gave us free drinks. The next day, they gave everyone free games (I got C&C Generals, plus the expansion), and they gave the finalists free graphics cards.


Now *that's* marketing.