January 2002

« December 2001 | Main Index | Archives | February 2002 »


Found in a comment on JavaLobby, which I rarely visit because the noise and rabid advocacy overwhelm any attempt at serious discusson, a link to a DeveloperWorks article on The pros and cons of generating native code from Java source.

Summary of the findings - compiling Java bytecodes into native code for execution may make a program faster. It may also make it slower. JVM-executed Java tends to use more memory than natively compiled Java, but not very much. Bytecode class-files take up less disk space then natively compiled executables, but only if you ignore the size of the JVM (which is huge).

Why is this important? Well, one of the differences between the compilation model of Java and Microsoft's Common Language Runtime (into which C# is compiled, for example) is that the CLR natively compiles everything before execution. These tests show that on the Java side, such an approach would give no appreciable benefit, from which we can extrapolate that it probably doesn't help C# much either.

Apple already have 150,000 pre-orders for the new iLamp^H^H^H^HMac.

I just realised that the ^H^H^H^H thing must be totally incomprehensible to most people. You see, on a lot of Unix terminals, ctrl-H is the same as backspace. This caused some problems in some programs (such as the "talk" installed on our University servers), because you'd hit backspace and instead of seeing some nice deletions, you'd just get a line of ^H^H^H^H across the screen.

A more web-friendly headline would have been: Apple already have 150,000 pre-orders for the new iLampMac.

(In emacs, ^H means "help", which was also very annoying. When telnetting in from home I had to either remap my keyboard, or learn to never use backspace in emacs.)

IBM: Linux investment nearly recouped. (CNet)

Although the article says the figures are a bit dodgy, that's still not bad given they allegedly put a billion dollars into something that everybody says you can't make money from.

For a long time, when I was working in tech support, my desktop wallpaper was this. I'm not sure if my boss noticed or not.

I am so cool.

It's a really hot, humid night. I really needed a drink before bed, and since tea was out of the question (I'd never get to sleep if I had another cup), I decided that ice water was the best way to go.

I survived six months without a fridge. My milk would go off in a day. After storing beer, easily available ice is the best reason to have a fridge. I filled my pint glass (originally purchased to hold Guinness) two thirds full of water, opened the freezer, reached into the little plastic bucket and pulled out two handfulls of ice-cubes.

One ice-cube, balanced on top of the pile in my right hand, teetered for a moment and then fell out. It bounced off the lip of the freezer door, careened at a strange angle... then I reached across and caught it on top of the equally overloaded pile of ice-cubes in my left hand. Where it stayed.

Should I worry that this is the most impressive accomplishment of my day? :)

Stupid link of the day: The 555 Phone Directory

Sydney, 800 miles S. of Nova Scotia (SatireWire.com) Ñ After what witnesses described as an all night blinder during which it kept droning on about how it was always being bloody ignored by the whole bloody world and would bloody well stand to do something about it, Australia this morning woke up to find itself in the middle of the North Atlantic.

And in other news. Ben Folds really looks like he should be an accountant.

I just realised it's over a decade since "Nevermind" was released. It's my day for feeling old, it seems. :)

Updated: Now the link works. Oops.

My God. I just found a slashdot comment that was worth reading: The Revolution Will Not Be Webcast (it's funny. It's a filk. Read it.)

An ancient link I thought I'd lost: the Web Economy Bullshit Generator.

Quote of the day from an Ars Digita article on databases.

Anyone intelligent can quickly write a highly reliable program in Smalltalk or Common Lisp. But the world embraced C++, a language in which almost nobody has ever managed to write a reliable program.

I found this in the logs for the software that maintains My more nerdy weblog.

Notified Weblogs.Com that The Desktop Fishbowl updated. And it said in response -- Thanks for the ping, however we can only accept one ping every five minutes. It's cool that you're updating so often, however, if I may be so bold as to offer some advice -- take a break, you'll enjoy life more.

Googlewhacking is when you take two common English words, search for them together in google, and get back exactly one result.

Bruce Schneier comments directly on Microsoft's Trusted Computing™ initiative, in The Register.

Microsoft is going to have to say things like, 'We're going to put the entire .NET initiative on hold, probably for years, while we work the security problems out.'

That's a pretty good explanation there of why Trusted Computing™ is just a public relations exercise.

Would you like to swing on a star,
Carry moonbeams home in a jar,
And be better off than you are,
Or would you rather be a mule?

A mule is an animal with long funny ears
Kicks up at anything he hears
His back is brawny but his brain is weak
He's just plain stupid with a stubborn streak
And by the way, if you hate to go to school
You may grow up to be a mule

Or would you like to swing on a star,
Carry moonbeams home in a jar,
And be better off than you are,
Or would you rather be a pig?

A pig is an animal with dirt on his face
His shoes are a terrible disgrace
He has no manners when he eats his food
He's fat and lazy and extremely rude
But if you don't care a feather or a fig
You may grow up to be a pig

Or would you like to swing on a star,
Carry moonbeams home in a jar,
And be better off than you are,
Or would you rather be a fish?

A fish won't do anything, but swim in a brook
He can't write his name or read a book
To fool the people is his only thought
And though he's slippery, he still gets caught
But then if that sort of life is what you wish
You may grow up to be a fish
A new kind of jumped-up slippery fish

And all the monkeys aren't in the zoo
Every day you meet quite a few
So you see it's all up to you
You can be better than you are
You could be swingin' on a star

Today I'm going to be late to work because of an argument about whether a stuffed moose should spend more time thinking about his place in the universe.

And in further news, Gateway are planning to market computers specifically optimised for Everquest.

Mind. Boggling.

According to Netscape 6.2, my download has taken 0-32:0-57:0-24 so far, and I have 0-753:0-15:0-34 remaining.

Read on Usenet: You have total freedom of speech, so long as it's punctuated correctly.

Don't like the Jehovah's Witnesses bugging you? Why not walk into one of their services, and offer them free magazines?

IBM have an article about moving from VisualAge for Java to Websphere Studio Application Developer.

The disadvantage of having a native JRE, rather than the UVM, is that some features of the UVM are lost. The most noticeable one is "hot swap," the ability to make changes to code and have the UVM load the changes without having to exit the program. This is a huge productivity aid in VisualAge for Java because while you are debugging a program, you can make changes and then test them immediately. You can also rewind the stack frame inside a running program, make changes to variables or run ad-hoc code inside the program, and then resume the program. This feature is proprietary to VisualAge for Java's UVM, although it is included in JDK 1.4. Application Developer was developed while the JDK was still in beta version, so although JDK 1.4 is supported as a run-time environment, the Application Developer debugger does not support hot swap.

I have a feeling that this is one feature of VAJ that I'm really, really, really going to miss. The whole "Something's gone wrong, fix it and drop the stack frame" thing was awfully convenient.

AOL may be buying Redhat. Welcome to the end of the world. :)

Gates calls for 'trustworthy computing' [IDG InfoWorld]

Well, this story keeps growing and growing. What's really funny is that in typical Bill Gates fashion, security is now "Trustworthy Computing"™. It reminds me of that old joke: "How many Microsoft programmers does it take to change a lightbulb?" "None. Bill Gates will just define Darkness™ as the new standard"

So. How long before Trustworthy Computing™ is the new euphemism for a security hole?

Another link: burningbird has posted the email as it would have looked while still in draft.

Bill Gates (via The Register)

We have done a great job of having teams work around the clock to deliver security fixes for any problems that arise. Our responsiveness has been unmatched -- but as an industry leader we can and must do better.

Bruce Schneier (From his January 2002 Crypto-Gram

Honestly, security experts don't pick on Microsoft because we have some fundamental dislike for the company. Indeed, Microsoft's poor products are one of the reasons we're in business. We pick on them because they've done more to harm Internet security than anyone else, because they repeatedly lie to the public about their products' security, and because they do everything they can to convince people that the problems lie anywhere but inside Microsoft. Microsoft treats security vulnerabilities as public relations problems. Until that changes, expect more of this kind of nonsense from Microsoft and its products.

The Kernel of Pain (Linuxworld)

[via Slashdot]
Summary For desktops, the 2.4 version of the kernel is just fine. If you have heavy-duty processing needs, 2.4 has been a series of disappointments. Sysadmins of big iron have two choices -- go back in time or play upgrade hopscotch. Both have problems.

As anyone who knows me will (tiredly) attest to, I really like my powerbook. One of the cooler things about it is probably the sleep/restore feature. When I close the lid, it turns itself off immediately. Even if I leave it on standby overnight (which drains about five percent of the battery), when I open it up again, it'll go from totally dark to ready-to-type in two seconds.

This, plus the fact that OSX is really pretty solid, means I don't have to turn the thing off. Ever.

[worlds:~] cmiller% uptime
 8:29PM  up 3 days,  6:27, 4 users, load averages: 1.01, 0.58, 0.45

Three days uptime. If I remember, that's because I forgot to plug it into the power at work on Monday and the battery went flat. Not at all bad for a laptop.

I was chatting to Keith about the XP vs Interaction Design article below. The interesting part is that the combination of Interaction Design and XP was exactly what we used for phase two of the project we're just finishing up now. One or two people from outside the programming team went away, worked with the customer, produced prototypes of the desired functionality, and then delivered them to the programmers to make work. That seems a lot like the combination that Alan Cooper was proposing.

In the end it worked quite well. It wasn't perfect - the prototypes left a lot of questions unanswered as far as the particulars of the application went, and those particulars often were the difference between a little code and a great deal of code, but it was certainly better than the requirements vacuum we were living in for phase one.

Somebody's bitter: This page cannot be fucking displayed. A friend who works at Earthlink Internet in the states tells me that this is their internal link of the week. It brings back memories of sitting in front of a PC doing phone tech support, with Notepad open, typing "Die you bastard. Die you bastard" over and over while I waited for the luser on the other end of the phone to find the damn Start menu.

Extreme Programming vs Interaction Design. An interview with Kent Beck and Alan Cooper.

Wouldn't it be lovely if things were just this clear-cut in the real world? (as opposed to the one Kent seems to inhabit)

Can XP work without that key element?

Beck: From the customer's perspective, no. I've had teams be called "whiners" because after 25 percent of the budget is spent, they're saying, "We have 10 features to add and we're going at half the speed that we expected. Which five would you like us to work on first?" And the customer says, "Oh, you whiners. Work some overtime or just get back to work or quit complaining." What do you say in a situation like that?

I don't know. What do you say?

Beck: You say, "I quit." Life's too short to work on doomed projects you already know are doomed after 25 percent of the budget is spent.

Has J2EE Hit a Fork In the Road? (SD Times)
No one has ever really believed in the ?write once, run anywhere? credo. But the final nail in the coffin may be BEA Systems Inc.?s upcoming new application framework, code-named ?Cajun,? as well as the extension of J2EE-compliant application servers by other vendors. The platform-independent view of Java is fading into the woodwork very quickly, and threatens to take what was conceived as a standards-based solution into very different proprietary directions.

The article seems to be mostly flamebait - that a server supports something on top of J2EE doesn't mean it doesn't also support J2EE applications. Also, it ignores the fact that for the entire history of Java application servers, they've been woefully incompatible with each other, so it's not like the situation is getting any worse.


  • 3:18 PM

From CNNLAUDERHILL, Florida (Reuters) — A plaque intended to honor black actor James Earl Jones at a Florida celebration of the life of Martin Luther King instead paid tribute to James Earl Ray, the man who killed the black civil rights leader, officials said Wednesday

Over a background featuring stamps of famous black Americans, including King, the erroneous plaque read, "Thank you James Earl Ray for keeping the dream alive."

Washington, D.C. (SatireWire.com) ? A delegation of American high school students today demanded the United States stop waging war in obscure nations such as Afghanistan, Kuwait, and Bosnia-Herzegovina, and instead attack places they've actually heard of, such as France, Australia, and Austria, unless, they said, those last two are the same country.

There's something amusing about watching two of the company directors trying to get the fileserver working again.

Some people have too much time on their hands. Way too much time.

I present, as exhibit A: On the Implausibility of the Death Star's Trash Compactor (which I found on the ever-enlightening Daypop Top 40)

LOTR in two hours.

Gandalf: (trailing) It matters not! You cannot outrun the demon!

Legolas: We don't have to . . .

Gimli: . . . we just have to outrun *you*.

Courtesy of the Daypop Top 40

Satirewire announced the winner of its 2nd Annual Poetry Spam. A poem written entirely from phrases lifted from spam email. It's called Enlarge your Boss

So I say goodnight to the elf, and curl up to go to sleep. Fifteen minutes later I'm out of bed and walking in circles around the apartment. Then, at about 1am I decide to go down the road to the 7-11.

The 7-11 is closed. I didn't think that was supposed to happen, but there was nobody inside and the automatic doors were shut. Luckily there's another one about two minutes walk down the road. I got myself a sandwich and some coke. I then came home, watched some of the Today Show on TV (we get it piped in from the States in the middle of the night) and decided to try sleep again.

This is weird. There's no reason for me to not be able to sleep, but I'm still having problems. I think perhaps it's because recently I've been very active in the evenings. I usually plan to do stuff in the evening, and then end up sitting in front of the TV being a vegetable. Lately I've been actually doing the things - programming, or research, or other things that keep my brain ticking over. So when it gets to time to go to sleep, I have to grab my brain and tell it to just shut the fuck up so I can fall asleep.

Anyway, g'nite all.

DVD Pet Peeves

  • 11:18 PM
I bought The Wall on DVD recently. Whoever designed the menu in that disk should be shot.

The interaction designer obviously thought that having a pointer was, well, a waste, so on every page of the menu, you had four options, and you followed whichever one was in the direction you pointed. Bad idea. If you only have four options on each page, you need far too many page transitions to get to things like scene access.

But it gets worse. I wanted to use the "find a song" feature so I could watch "Goodbye, Blue Sky", which has pretty damn cool animation behind it. The options on "find a song" are numbered. Only numbered. So I have to guess totally out of the blue which track it is. Even when you dig right to the bottom of the menu and you've got the individual songs to choose from, they're still just numbered. Suck suck suck.

Other pet peeves:

  • Disabling fast-forward on the advertising for the distributor. Why do they do that? Do they think that anyone outside the industry cares which studio made a film any more? Maybe back in the 30's, when the studios had their own stables of actors and writers, it meant something that this was a Universal film, or whatever, but now it's totally irrelevant, and forcing me to sit through their little animations every time I put the disk in is totally stupid
  • Similarly, some disks I have disable things like rewind or frame-by-frame advance. Why? What possible benefit is it to the DVD maker that I can't play the thing slowly in reverse if I want to?
  • Animations when going between menus. When I click a button, it's because I want to get somewhere, not because I want to see a five second clip from a movie I'm already going to watch.
  • Screwing up the remote control. On my PS2, if I click one button, it switches between soundtracks. If I click another button, it toggles subtitles. This is useful. I can do things like be listening to the commentary, want to hear what's going on behind them, rewind a bit, change to the english track, then change back to the commentary afterwards. On some DVDs, I know they have subtitles and multiple audio tracks, but when I press the button, I get a message saying that I'm not allowed. So I have to go back to the annoying menu and all its animated transitions, and lose my spot in the movie if I want to change. Thanks.
  • If you're listing the "special features" on the DVD cover, scene-by-scene access and the "theatrical trailer" don't count.
  • DVD menus with a looping soundtrack. After the movie finishes, I'm forced to move around and find the TV remote to turn the sound off, because some idiot has programmed a looping 15 seconds of "atmosphere".
  • Am I the only person who thinks that when you put a DVD in the drive and press "play", it should play the main feature by default, and only go to the menu if you hit the menu button? Chances are, if I put a movie in, I want to watch the movie, right?

The silly thing is, there's absolutely no way to put commercial pressure on the distributors to improve the interface. It's not like the web, where if a site's interface sucks, you can to go another site. The selling point of the DVD is the movie that's on it, and when it comes to that, there's no competition - if I want to buy Crouching Tiger, Hidden Dragon, I can't say "No, I'll buy the one where you don't have a minute of sword-fighting to watch just to get from the main menu to the sound menu"

Hopefully, one day, common sense will prevail, and the idiot graphic designers who tend to take over everything will be kicked out in favour of someone who actually will create something we want to use, rather than dreading.

I used to think I was a lazy git. Now at least I know I'm a normal lazy git.
(More thoughts on the Joel Spolsky essay I quoted earlier today.)

I read somewhere that if you ask a hacker how long something is going to take, the reply is invariably, "I could knock that off in a weekend". I was taken aback when I read that, because of the number of times I can remember using the exact same phrase when I was starting my programming career. I invariably thought I could knock something off in a weekend, and I was invariably wrong.

The thing is, that when programmers think of "a weekend", we tend to really be thinking of that weekend that happened once or twice when we were at University. The weekend where the assignment was due on Monday so we stocked up on caffienated beverages, sat down Friday night, and emerged on Monday morning with some code and a serious chemical addiction.

Even drifting back from that memory to more realistic numbers, we're still thinking of twenty hours or more spent coding solidly.

Now let's apply Joel's "two or three hours a day of productive work" to that equation. Our estimated weekend hack just turned into anything up to two working weeks. Is it any wonder that software projects end up being so late?

Dave Barry:

I bring this all up because now Microsoft has a new version out, Windows XP, which according to everybody is the ``most reliable Windows ever.'' To me, this is like saying that asparagus is ``the most articulate vegetable ever.''

Joel Spolsky:
What drives me crazy is that ever since my first job I've realized that as a developer, I usually achieve about two or three hours a day, on average, of productive coding. When I had a summer internship at Microsoft, a fellow intern told me he was actually only going into work from 12 to 5 every day. Five hours, minus lunch, and his team loved him because he still managed to get done a lot more than average. I've found the same thing to be true. I feel a little bit guilty when I see how hard everybody else seems to be working, and I get about two or three quality hours in a day, and still I've always been one of the most productive members of the team. That's probably why when Peopleware and XP insist on eliminating overtime and working strictly 40 hour weeks, they do so secure in the knowledge that this won't reduce a team's output.
Many of my days go like this: (1) get into work (2) check email, read the web, etc. (3) decide that I might as well have lunch before getting to work (4) get back from lunch (5) check email, read the web, etc. (6) finally decide that I've got to get started (7) check email, read the web, etc. (8) decide again that I really have to get started (9) launch the damn editor and (10) write code nonstop until I don't realize that it's already 7:30 pm.
Somewhere between step 8 and step 9 there seems to be a bug, because I can't always make it across that chasm.

I so have that pattern. Then I talked to the guy next to me who I consider a really diligent worker, and he has it too. I wonder if what I do for a living is really mentally exhausting, or whether I just have one of the most slack jobs in the world. I have a feeling it's somewhere between the two.

This is so unfair.

<Candi> okay.. it's time to go get help.. you're writing for Mac.. you have a problem. It's time to admit it :Þ
<Carlton> The Mac is really cool to write for. All the developer tools are really funky, and free.
<Candi> See! See! There's denial and making excuses for yourself!
<Carlton> And who knows. It's something I'd use myself, so maybe I'll actually work on it :)
* Carlton bops Candi.
<Candi> ow! Agressive tendencies now!
<Candi> I think an intervention may be in order. All the signs are there! You have a problem, Charles. Admit it. :)
<Candi> You're a... a.. a code-aholic!
<Candi> Now you're stooping to the lowest factor to get your fix!
<Candi> This is like hocking your mother's wedding rings so you can make one more visit to the guy in the long coat on the street corner and see what developer tools he's selling! :)

Fun with Zen.

  • 9:44 AM
From Mark Pilgrim's Weblog:

Q: What is this?

     If you have mint chocolate chip,
     I will give it to you.
     If you do not have mint chocolate chip,
     I will take it from you.

A: An ice-cream koan.

Happy New Beer!