July 2004

« June 2004 | Main Index | Archives | August 2004 »

There's been such a furore about Paul Graham's dismissal of Java in his latest essay, that nobody seems to have bothered to examine the meat of the essay. Which is a pity, because the whole Java snipe was trivia. It's part of the Lisp-hacker mentality to take random swipes at more successful, but less technologically pure environments. Before Java was whipping boy #1, C and Unix were the root of all evil.

The thesis of Graham's essay seems to be this:

1. Hire great hackers.
2. ...
3. Profit!

Step one is where most of the controversy has been directed, both because Graham's definition of "Great Hacker" is really based on himself and his friends, and because his recipe for hiring great hackers is "Offer them equity, and jobs that don't involve Java, Windows, or dealing with end-user expectations".

Step two is more interesting to me, because its supposed to be the real point of the essay, but it consists of a great deal of hand-waving, essentially boiling down to "Be one of the companies that I've mentioned in this essay that hired great hackers, and succeeded as a result."

It's very easy to find counter-examples. Look at Xerox PARC, which hired insanely great hackers, gave them room to work on problems that interested them, and only managed to make a bunch of other people rich as a result. Or closer to Graham's territory, look at the AI Winter, where a group of incredibly smart hackers dug such a huge hole for themselves that they managed to make Lisp a lingua non grata for the next decade.

Graham even makes exactly the points as to why hiring a Great Hacker can be a risky proposition. Such hackers (at least, the ones described in Graham's essay) are generally not motivated by money, an even if money were a factor, they're good enough to waltz into any programming job they feel like. A Great Hacker is motivated by the problem not yet solved, and bored by pretty much everything else. A Great Hacker is productive when working on an "interesting problem".

The challenge for hiring great hackers is holding their attention. If your interest is pure research, or if you and they happen to be moving in the same direction, they'll give you the benefit of that order-of-magnitude productivity advantage. If the great hacker gets distracted by some new shiny thing, some more interesting problem to solve, they'll pour their energy into that instead.

And there's not much you can do about it, because it's that focus of single-minded attention that marks a great hacker.

So the missing step 2 is:

2a. Identify a hard problem, the solution of which would fill some market niche, and that your great hacker is sufficiently interested in finding a solution to
2b. Make sure your great hacker is kept away from shiny things until the problem is solved
2c. Pray that the hacker can, in fact, produce an effective solution (if this was a certainty, you wouldn't have needed the hacker in the first place)
2c. Market that solution effectively

There, and that's the path to success, and ultimate riches!

I just ducked down to Dymocks technical bookshop in Sydney, and bought a copy of Mark Pilgrim's Dive Into Python, thus bringing Mark one step closer to that important goal of recouping his advance.

On first examination, the book presents a significant problem to any prospective owner. While it has an attractively designed cover and a nice, self-deprecating blurb by the author on the back, the book is entirely the wrong size.

Unlike most computer books, it is far too light to be used as a weapon, and not thick enough to raise a monitor to eye-level. Nevertheless, it is not nearly thin enough to be used to prop up one leg of a wobbly table. I can only imagine this is a massive oversight on the part of the publisher, who should know by now what most computer books are really used for.

Given its complete uselessness for any other purpose, I may be forced to read it.

Anyone who pays far too much attention to my blog will remember that a few months ago I complained that my IDE of choice, IntelliJ IDEA, wasn't playing nice with CVS. I was pretty sure I had everything set up correctly (and everything worked from the command-line), but all IDEA gave me whenever I tried to do anything was a "Valid request expected" error.

So for the last month I've been stubbornly getting by through the simple recourse of pasting the failing commands from IDEA's CVS output window into a shell prompt. Ugly, but it worked.

Today, I decided to upgrade to IDEA 4.5. I was determined to get this problem fixed at the same time, because I'm told the new merge tool in 4.5 is way cool. To cut a long story short, here's what the problem turned out to be:

My username on the CVS server is the same as my local username, so when I checked out the code (using the command-line), I set CVSROOT to :ext:cvs.example.com:/var/cvsroot. From the shell prompt, CVS is smart enough to infer my username when it logs in. From IDEA, it seems, it isn't.

So the fix was: find . -name Root | xargs perl -pi -e 's/:ext:/:ext:cmiller@/'

Et voila.

Another random note: IDEA on OS X appears to be an order of magnitude faster if you use the regular IDEA look and feel instead of the native-looking Aqua UI. Sad but true.

It's a strange feeling to be a blogger with nothing interesting to say. Of course some people would argue that's blogging in a nutshell, but this month I've had remarkably little cross my mind that was worthy of public comment.

I seem to be taking a break from being a nerd. After I finish work for the day, I want to stay away from the computer, watch some TV, maybe read a book. I wonder if this is how normal people behave? I hope I get over it soon, I've got a bunch of geek stuff I promised myself I'd do in my spare time.

Why is Ben wearing sunglasses in the office? The flames were just too bright!

I guess I should have responded to being biled, but why make a fuss? Javablogs' stability has been a running joke, and deserving of discontent. It's been mostly hardware-related, but there have been one or two annoying software glitches.

Anyway, as Alan pointed out to me, wasn't that the nicest bile you've ever read? I wasn't accused of a single deviant sexual practice. It was almost complimentary. As for having lost my mind when I joined Atlassian, I have to point out that I was a Websphere consultant for the previous three years. I challenge anyone to do that and retain any residual sanity.

(An aside: I'm not personally responsible for Javablogs. I'm just the guy who blogs about it every now and then. I'll happily take the blame for the stuff that's broken, but all the bits that aren't broken are the collective work of everyone at Atlassian.)

This 10kg box of M&Ms appeared at the Atlassian office last week. So much for any hope of a post-holiday diet.

Looking at my last two Quicklinks entries, I see William Shatner covering a Pulp song, and Florida youth hanging themselves on meat-hooks. I can't help wondering if the two are related. Perhaps after listening to Shatner sing, hanging on a meat-hook is a blessed relief?

How to offend women without even trying: (Charles) "Hi! I heard a lot about you, but I don't think we've ever actually met before." (Rita) "Of course we have! Didn't I spend an afternoon sitting on your lap?" Oops.

Meanwhile, if you live in Sydney, go and see Gibson Nolte performing Adam Rapp's play Nocturne at the Belvoir St Theatre. Gibson gives a pretty incredible performance, holding you for the whole 100-minute one-man show. And I'm not just saying this because he was a groomsman at my brother's wedding, and probably has incriminating photos of me from the reception.

And from IRC:

iMorpheus: I miss the Cure.
Carlton: Yeah, it's a shame Robert Smith Lost It in the 90's.
iMorpheus: what happened?
rojisan: he got meds?
Carlton: Well, I think he just finally realised that he's happily married and very rich, and forgot how to be depressed.
rojisan: that's fixable with meds too
Carlton: So everything after Wish sounded like he was trying to remember how to write Cure songs, but couldn't get in the mood.

Not that I have even remotely enough money to buy one, of course, but...

Cost of 30" cinema display from US online Apple store:US$3299
Converted to Australian dollars:AU$4499
Add 10% GST:AU$4949
Cost of 30" cinema display from Australian online Apple store:AU$5999

I wonder where that 20% markup comes from.

This scene was cut from the first draft of the Spiderman 2 script.

PETER hangs suspended from the SPIDER WEB, and
looks meaningfully at MARY-JANE

        PETER
    You see... that's why we can never
    be together. Spiderman will always 
    have enemies, and I couldn't bear
    anything happening to you. It's the
    only way to keep you safe.
    
        MARY-JANE
    Sure. What-ever!
    
PETER can't quite process this. He just sits
there on the web.

        MARY-JANE
    Well, how many mortal enemies have
    you had?

        PETER
    The Green Goblin. Doctor Octopus.
    That makes two.
    
        MARY-JANE
    And how many times have I been
    abducted by your mortal enemy and 
    almost killed, despite you being so
    very careful to make sure we're
    not a couple?
    
PETER, once again, has no response to this.

        MARY-JANE
    TWICE, you complete pillock!
    
Another moment of silence.

        MARY-JANE
    So, what difference would it have
    made if we'd just been shagging like
    crazed rabbits for the last three
    years? But no! You  just HAD to go
    on with your stupid martyr act!
    Does masochism run in your family
    or something?
    
        PETER
    Hey! That's not fair!
    
        MARY-JANE
    Too bloody right it isn't. Do 
    you realise how much this is
    going to complicate my love-
    life?
    
        PETER
    I'm sorry... What will you tell
    astronaut-guy?
    
        MARY-JANE
    Oh, I'm over him already. I was
    talking about Jarvis.
    
One more unexpected revelation might just be too
much for PETER.

        MARY-JANE
    Jarvis. Jarvis Cocker. I figured
    if I was going to be attracted to
    moping guys in thick glasses, I
    might as well find one who sings
    about how good he is in bed.
    
CUT to MARY-JANE being lowered rather quickly from
the web by a long strand of SPIDER-SILK.

Last night, after two beers but before the pool competition, I had the misfortune to be cornered by someone with a deep, abiding belief in astrology.

"So when's your birthday?"
"December."
"Ah, a Sag?"

Warning bells start going off about now. The only people who refer to Saggitarius as 'Sag' are those who use the word often enough to be dangerous.

"So, you're an outgoing guy, then. Life of the party."
"I'm a toxic introvert."
"Like the outdoors?"
"Er, not really."
"Ah, but you said you just came back from America. So you like travel. Typical Sag."

At this point, I can feel my brain-cells dying en masse just from being forced to listen to this. Or maybe it's a mass suicide to avoid having to process any more of it. I picture my neurons lined up, cups of poisoned kool-aid gripped tightly in dendrites: "It's this, or having to work out what your rising sign is! You know what you have to do!"

I have a pretty laissez faire attitude to spirituality. If you believe in a God, or several Gods, or a nebulous spiritual ether that encompasses all living things, or even the divine right of women to change their minds whenever the fuck they feel like it without any warning whatsoever, then that's really none of my business.

At least, that's what I thought. Now I know that I have one exception, in the same way that Country is my exception to having no musical biases.

If you honestly think that a human being's personality or destiny is shaped by the fact that some guy looked up at a pattern of dots in the sky a few thousand years ago and thought "Ooh! Horsey!", then I'm sorry, you're an idiot.

A few days before I left Australia, my mother gave me a copy of Dan Brown's The Da Vinci Code. She described it as "a good thriller, but rather silly", both of which turned out to be true.

For those of you who haven't read it -- and I'll be as spoiler-free as possible -- the book is a modern-day detective story firmly rooted in what is presented as a thorough research by the author into the early days of the Catholic church, the Knights Templar, a couple of secret societies, and the question of why modern religions seem to dislike women so much.

To his credit, Brown manages this intermingling of modern plot and historical/religious theory rather more seamlessly than Neal Stephenson achieved in Snowcrash. (Comparing the two books on any other level would be such an apples to oranges comparison that I refuse to even bother, except to say that Snowcrash is still cooler than you will ever be.)

As the story progresses, and the plot (and historical conspiracy theories) get stranger and stranger, maintaining your suspension of disbelief is necessarily based on your belief in the depth of his research. "The premises are true," says the author. "so just go with me on where I go with them." Science Fiction works similarly. The author courts the reader's belief by basing fantastic future technologies and societies on existing technologies and trends. This is why computers in 60's SF shows looked like computers did in the 60's: otherwise nobody would have recognised them.

On yet another tangent, The Da Vinci Code crystallises why I was never comfortable with the term "Speculative Fiction" to replace "Science Fiction". Code is most certainly speculative, but if shoehorned into the corpus of S.F, it would stick out like a sore thumb.

Anyway, my problem with Code came around page 273, when Brown veered into an area in which I have a more than passing interest. One of the main characters is a cryptoanalyst, and this is her internal monologue:

Da Vinci had been a cryptography pioneer. Sophie knew, although he was seldom given credit. Sophie's university instructors, while presenting computer encryption methods for securing data, praised modern cryptologists like Zimmerman and Schneier but failed to mention that it was Leonardo who had invented one of the first rudimentary forms of public key encryption centuries ago. Sophie's grandfather, of course, had been the one to tell her that.

(I'd also dispute the claim that the Da Vinci's cryptex is public key encryption, any more than a padlock or a safe is. The cryptex is essentially a combination-lock with a built in booby-trap. The message is physically secured, not obscured. With the right tools and some patience, you could get at the message without knowing the key.)

Anyway, Schneier and Zimmerman? While they're both well deserving of praise, their presence in that paragraph is just so terribly incongruous. Diffie and Hellman proved modern public key encryption was possible. Rivest, Shamir and Adleman produced the first workable implementation. Schneier is best known for writing a book describing how it works, and Zimmerman for producing a popular program that let people make use of it.

It's like skipping the Wright brothers, and focusing on the guys who designed the fuselage on the 747.

It would be easier to overlook this if the name-drop served any purpose other than as a shout-out to crypto nerds. It's not as if Bob Bookreader is going to think "Aha! The writers, respectively, of Applied Cryptography, and PGP!", A small part of one percentile of the book's audience would have the vaguest clue who the names belonged to, and those people would also understand why it's wrong. For everyone else, you may as well have skipped the names entirely. Surely that's worth the two minute Google search to find out who to credit?

Maybe I'm being unreasonable. I probably am. But speaking entirely for myself, this paragraph disturbed enough of my suspension of disbelief to make me uncomfortable for the rest of the book. If a single paragraph aside into crypto could jar me so much, how would I feel if I were an art or religious history nerd reading the novel? Would it be the literary equivalent of the way computers in movies always have big blinking text, a count-down to the end of the world, and "It's a UNIX system! I know this!"?

I'm trying to remember who I heard give advice that you should never consume fiction based in your area of expertise for anything other than its comic value.

Note: From my referrer logs, I just noticed this got linked from Crypto-Gram. I don't really dare go see under what circumstances I was linked, because I suspect it'll depress me. Regardless, I'd like to apologise to Bruce Schneier for the tone above. I have a great deal of respect for Schneier and the research he's done in crypto, something I don't think comes across at all in the course of this rant. I still think the name-dropping was incongruous, because it was talking about pioneers rather than practicioners, but maybe I could have been lighter on the bad analogies.

Plagiarism

  • 7:40 AM

They even stole the layout!

If you were viewing images, you'd see a photo of me holding up a menu for a fish and chips restaurant called ‘The Fishbowl’

With WWDC and JavaOne behind me, I'm now in holiday mode, which just involves me wandering around California by Greyhound bus, visiting people and trying not to think about programming. So right now I'm in Paso Robles visiting Susan. Then on Monday I'll go visit Danna before making my way back up to San Francisco where Suzy will either be taking me wine tasting or to Karaoke, depending on whether the plans change an odd or even number of times before Friday. Anyone in the vicinity with an appreciation of musical talent, you'd better pray it's wine tasting.

For a while, I referred to this holiday as the "Hot Chicks Tour of California". I think this is because I enjoy being offensive.

Susan, a bunch of her army buddies and I somehow ended up in a bar last night that was celebrating the Fourth of July by holding red, white and blue jello wrestling. As such, I have mentally named this leg of the trip "Beer and Titties Weekend", for similar reasons to the above.

At least I can say I'm getting some authentic American culture while I'm here.

In my one and only visit so far to JavaOne (sorry guys, you may have won the hockey, but between spotlight, dashboard (and its associated neat additions to WebKit), and all the other cool new stuff, Apple wins the bulk of my attention this week), I was given the five-minute demo of Project Looking Glass: Sun's 3d window manager which has just been open-sourced.

I don't claim to have made any in-depth analysis or testing. I do claim to be opinionated, prone to rash first impressions, and to have been using computers for long enough to have some idea of what works, and what doesn't.

Positive

  • Nice eye-candy

    I'm an OS X user, so I can't really complain about eye-candy. A desktop environment that looks good is just more pleasant to use.

  • Clear distinction between foreground app and background.

    The way the background apps actually move into the background is a good, informative effect. OS X accomplishes something similar (but more subtly) using drop-shadows.

  • Nice effect for virtual desktops

    Virtual desktops are navigated between by spinning your perspective from side to side. This is a cool visual clue for where you're going that might reduce one of the main problems with virtual desktops by helping you maintain a spatial memory of where you left some windows.

  • Interesting tilted window effect

    I'm not so sure on this one: it almost dropped down into the next section, but the way windows in the background can tilt slightly seems a quite effective way to increase screen real-estate. The visual cue of being angled backwards makes the shrinking of the content of the window much less disconcerting than if it had just been scaled.

  • Doesn't try to do too much

    It doesn't attempt to have you fly around in arbitrary 3d space finding your windows. It could have, but that would have made it totally unuseable.

Neutral

  • Side-on windows

    Windows can be minimised by flipping them side-on. The window title is written along the "spine", and you have a very small angled view of what's on the face of the window. I just don't see this as being very useful: the minimised windows still take up far too much space, and speaking personally, I don't see the point of minimising windows - they're just as useful hidden, or parked out the back of the desktop. (Exposé obviously helps me here)

  • Boring-looking applications

    Surrounded by the cool new window manager, the regular X Window apps with their very X Window-ish widgets and window decorations look decidedly drab and out of place.

Negative

  • Still clumsy

    The demonstrator (who had presumably been doing this for three days already) had some trouble manipulating windows that had been tilted in the background or flipped on their side. I wasn't given the chance to try this myself.

  • Notes on backs of windows

    This is one of those features that looks cool in a demo, but actually reduces the usability of the environment in practice. I almost never want to associate a note with a specific window, and since the contents of windows change pretty often it's incredibly unlikely that the note will remain relevant for long.

    The existence of the notes, however, will make closing windows a questionable affair, because you'll have to be warned about possibly destroying stuff that's completely invisible to you when you hit the close button. I'd much rather a desktop-wide notepad that can fly in, dashboard-style.

  • Crappy demo CD app

    The demo "cool 3d effects" app is a CD changer that spins a pile of CDs around. It looks cool, but compared to its two-dimensional alternatives, it's a huge step backwards in usability. User interfaces that try to model physical objects are almost never a good idea. We shouldn't be encouraging people to write awful interfaces like this by using them in demos.

    ...which begs the question: if that's the best they could come up with for the demo, is it really a good idea to try and follow that path in other applications?

All in all, Looking Glass looks like a good start. It introduces some interesting ideas to the desktop UI, but I don't think I'd want to use it seriously in its current form, even ahead of all the other dismal Linux UIs. Which is fair enough, it's an experiment and not meant for that kind of use yet.

One thing Apple consistently get right, is that eye-candy is best when it's applied to something that is already useful in its own right. Minimising a window is useful, minimising with a genie effect or by flipping the window on its side is kinda cool. Ditto with the way Dashboard widgets shimmer into view when you open them, or flip over to reveal their preferences. Even better is when the eye-candy enhances an already useful feature, such as the ways that the cube effect in OS X's fast-user switching, or the sweeping viewpoint in Looking Glass's desktop switching add a spatial element to the transition.

When looking cool comes before the feature that is being made to look cool, that's when problems start occurring.