August 2002

« July 2002 | Main Index | Archives | September 2002 »

30
Aug

(Warning, spoiler)

Signs sucked. It was a typical M Knight Shamayalan movie—all the characters were unbelievable and totally impossible to identify with, and the pacing was way off. This worked in Sixth Sense, where the two main characters were both supposed to be other-worldly, but both movies since have fallen flat because of it. He tried to offset it with a bit of David Lynch–style small-town weirdness, but he didn't manage to pull it off. There were a few funny moments, but not enough to carry the movie.

It was totally impossible to suspend disbelief. I'm not talking about the the whole “Crop Circles” rubbish, where you have to believe that aliens capable of space-travel are so bad at drawing maps that they have to flatten fields to remember where they parked their cars. You figure hey, that's the premise of the movie, I can live with that.

It's the stupid things. Like blurry video that looked like one of those newsreel bigfoot movies being automatically accepted as a real alien by the news. Or the fact that aliens can fly across the boundless reaches of space, but can't get through a locked wooden door. Or the total lack of any reaction from the powers that be. Or aliens who melt when exposed to water raid a planet that is 70% water, and they DON'T WEAR PROTECTIVE SUITS! I mean, for fuck's sake!.

Anyway, Signs was rubbish. You don't want to see it.

Unsafe Safety

  • 8:07 AM
There are three kinds of security. Stuff that makes you safer, stuff that doesn't really work at all, and stuff that works so badly it makes you less safe than you were before.

In Bruce Schneier's latest Crypto-Gram, he links to Carnival Booth: An Algorithm for Defeating the Computer-Assisted Passenger Screening System. It's a description of how the CAPS program, a system in use in US airports since 1999 that selects people to search based on terrorist profiling, actually makes it easier for a sufficiently large and organised terrorist organisation to sneak something onto a plane.

It works like this. Say the security at an airport have the personnel to thoroughly search 8% of passengers. Normally, you'd have an 8% chance of being caught sneaking something through that doesn't get picked up by the metal detectors. Enter CAPS. If CAPS flags the top 6% of passengers for search (and you keep doing the remaining 2% randomly), now your chance of being caught if you're on the profile is 100%, but if you're not on the profile, your chance of being caught has dropped to 2%.

So all terrorists have to do is send potential attackers on three or four flights before the main event. If they get searched, they're replaced by someone else. The "security measure" has actually reduced their chance of discovery by a factor of four.

Spent the afternoon at Apple's OS X Tech Talk. Highlights of the afternoon were:

  • The Quartz Extreme demo. Transparent terminal window overlapping with a semi-transparent animated 3d demo, over a running QuickTime video. Composite that, inferior operating systems!
  • The new zoom feature in Jaguar's accessibility panel. Sometimes the simple things are pretty impressive.
  • The explanation of why Java 1.4 is delayed. Apparently, the current OS X Java GUI (both Swing and AWT draw themselves using as much of the native kit as they can get away with) is Carbon-based. They hit a speed-bump, so they've been busy rewriting everything in Cocoa.
  • The American's silly pronounciation of “Jagwar”, and the Australian server-guy's insistence on saying “authentification”
  • The whole thing made me want to do a lot more Cocoa programming. I've done some hacking with it before, and it's way cool. After beating my head against Swing a few times, putting GUIs together in Cocoa was an absolute joy. I even have a grudging acceptance Objective-C

Remember that email that was floating around a few years ago? The Australian Bureau of Statistics just released the information that in the most recent census, 70,000 people put down “Jedi” as their religion.

From a link in Euan Semple's Weblog, I found... a guide to the psychology and etiquette of the British pub.

Before you can order at all, you must learn the correct bar-counter etiquette. You will notice that the bar counter of the pub is the only place in Britain in which anything is sold or served without the formation of a queue. Many visitors have observed that queuing is almost a national pastime for the British, who will automatically arrange themselves into an orderly line at bus stops, shop counters, ice-cream stalls, lifts, entrances, exits, and sometimes in the middle of nowhere for no apparent reason.

...

Whether you are male or female, and whatever the sex or social background of your native companions, the words “It's my round - what are you having?” will always be appreciated as a friendly gesture. This line may not be in your phrase book, but it is one of the most useful sentences in the English language.

Many of the rules on this site also apply in Australia.

From a link in Euan Semple's Weblog, I found... a guide to the psychology and etiquette of the British pub.

Before you can order at all, you must learn the correct bar-counter etiquette. You will notice that the bar counter of the pub is the only place in Britain in which anything is sold or served without the formation of a queue. Many visitors have observed that queuing is almost a national pastime for the British, who will automatically arrange themselves into an orderly line at bus stops, shop counters, ice-cream stalls, lifts, entrances, exits, and sometimes in the middle of nowhere for no apparent reason.

...

Whether you are male or female, and whatever the sex or social background of your native companions, the words “It's my round - what are you having?” will always be appreciated as a friendly gesture. This line may not be in your phrase book, but it is one of the most useful sentences in the English language.

Many of the rules on this site also apply in Australia.

Rogers Cadenhead thinks my idea of avoiding main methods when teaching Java might be a bad idea:

Beginners ought to be shown that they can accomplish something with the language before the subject of object-oriented programming is introduced, which often confuses the bejabbers out of people the first time they are exposed to it.

After two minutes investigation, I discovered Rogers co-wrote one of the books I originally learned Java from, so perhaps I should listen. :)

Perhaps it's a difference of situation, though. I find that objects are a lot easier to demonstrate than to describe - in the classes when I just read out the OO stuff from the foils, everyone shrugs and looks bemused. Then I sit down and show them, and it all becomes a lot clearer. The learning environment thingy might exacerbate the “telling” problem, while making the “showing” thing a lot easier.

Idle thought of the evening: if I had taken advantage of every penis-enlargement spam I'd ever received (and they'd all worked as advertised), how long would it be by now?

HTML pet peeve

  • 6:41 PM
The alt attribute of the img tag is for replacement text—what you'd see if the image was not displayed at all. The test for alt-text is "If I saw this text instead of the image, in the same place in the page, would it make sense?

If you want something to accompany the image, and that will show up as a tooltip, use the title attribute.

A scene from the first draft of the Fellowship of the Ring script.

Yes, I know. The Hugo Weaving joke's been done before, but somehow my brain wouldn't rest until I'd done this.

	THE FELLOWSHIP OF THE RING: Draft Scene

FADE IN:

INT. FRODO'S BEDROOM IN RIVENDELL

FRODO wakes up. The sickness from his battle with the NAZGUL 
has left him, but he is still tired and disoriented. Sitting
at the bottom of the bed is ELROND, flanked by TWO VAGUELY
OMINOUS ELVES. Elrond opens a THICK LEATHER-BOUND BOOK. Frodo
can make out the words THERE AND BACK AGAIN on the cover.

		ELROND
	As you can see, we've had our eye
	on you for some time now, Mr Baggins.

ELROND opens the book near the end, and looks through a few
pages. Being IMMORTAL, he feels no need to hurry.

		ELROND
	It seems that you have been living two
	lives. In one life, you are Frodo Baggins,
	heir to the Baggins fortune. You have a
	hobbit-hole, you smoke pipe-weed. You help
	your uncle with the gardening.

A few more pages are turned.

		ELROND
	The other life is lived outside Hobbiton
	where you go by the name of Underhill, and
	are chased by Nazgul. One of these lives has
	a future. One of them does not.

FRODO looks very worried.

		ELROND
	I'm going to be as forthcoming as I can be,
	Mr Baggins. You are here because we need your
	help. We know you have a ring of power belonging 
	to a certain individual. A being who calls himself
	Sauron. Whatever you think you know about this
	man is irrelevant to the fact that he has caused
	more evil than any other being in the history of 
	Middle-Earth.

		ELROND (Cont.)
	My colleagues believe that I am wasting my time
	with you, but I believe you want to do the right
	thing. It is obvious that you are an intelligent
	Hobbit, Mr Baggins, and that you are interested
	in the future. That is why I believe you are
	ready to go to Mordor and destroy the ring.

FRODO gulps.

		FRODO
	Yeah. Wow. That sounds like a really good deal.
	But I think I have a better one. How about I give
	you the finger --

He does.

		FRODO
	Put the ring on it, and use its power to defeat
	Sauron?

ELROND is unfazed.

		ELROND
	And tell me, Mr Baggins. What good is a ring of
	power, if you are a wraith?

CUT TO: RIVENDELL COUNCIL.

I've spent the evening watching Apocalypse Now Redux. One of the fun things about watching this movie (apart from the fact that it is a total mind-fuck), is spotting the places that have been sampled by industrial bands. Fear Factory used a couple of places, and I just spent five minutes wondering why a particular one-second sound-byte was familiar. It suddenly dawned on me that it was a sample in Ministry's N.W.O.

Well, the browser that became Netscape was always called Mozilla IIRC. –Brett Morgan's Insanity Weblog Zilla

Jamie Zawinski tells his version of the story of where the name Mozilla came from, in his scary journal of how Netscape 1.0 came about.

A week or two ago we all sat around and tried to think up a name for the client; we can't call it Mosaic, because that's the name of the company. The marketroids had all kinds of silly suggestions like Cyber this and Power that and blah-blah Ware. Then someone said something about crushing NCSA Mosaic, and I blurted out “Mozilla!” Everyone seemed to like that, so I think that might end up being the official name of the browser.

The readme files for each version of Netscape Navigator and Communicator ended with the line: ‘And remember, it's spelled N-e-t-s-c-a-p-e, but it's pronounced “Mozilla.”’

Gnome Swapping

  • 10:34 PM
There was a story on the news about people stealing garden gnomes. Now call me a wild-eyed anarchist, but I think this is a good thing for gnomes and people alike.

One of the sad things about being a garden gnome would be the monotony. You're generally stuck in your spot, looking in the same direction, surrounded by the same people. Sure, they were all interesting when you moved in, but you've all been standing in the same place for years, and you quickly run out of conversation. And there you are, still, covered in moss, dangling the same fucking fishing-rod in the same fucking pond all day, all night. It's torture, plain and simple! It would be a favour to these gnomes to give them a change of scenery!

But, at the same time, it would be unfair to completely deprive a garden of a gnome. What the world needs is... Gnome Swapping™!

Gnomes could swap gardens overnight. Change suburbs. Make new friends. Dangle their rods in whole new ponds. A gnome for a gnome, and for each gnome a new home. No gnome left unturned.

I see a great need.

In “Rethinking the Java Curriculum: Goodbye, Hello World!”, Daniel Steinberg talks about how non-OO current introductions to the highly object-oriented Java language are, and challenges us to come up with an alternative. I've taught a number of Introduction to Java courses, and I've long thought there must be a better way.

Update: Like all good ideas, it seems someone else has had this one first. Check out BlueJ for an example of pretty much exactly what I was talking about.

The way we teach Java to beginning programmers at the moment often does more harm than good. In a nutshell, the problems lie in two places—the need to produce fully running programs, and the consequent far-too-early introduction of the GUI.

Procedural and functional languages, you learned by starting with simple, command-line programs that calculated your biorhythms, your ideal weight, or how many cents you earn per minute. If you take the same approach with Java, you end up teaching all new Java programmers how to code procedurally. You then have to repair the damage you've caused, and shunt them painfully into the world of objects.

Java's command-line capabilities are also pretty dismal, so almost immediately, students are asked to write applets or stand-alone GUI components. GUI programming is difficult, and involves understanding a lot of concepts that students aren't even remotely comfortable with, so this is another thing that damages the student.

Working as a Java professional, I've noticed there are two things I almost never write: graphical user interfaces, and public static void main (String[] args). Almost all the code I write is in the form of objects that fit into some environment such as an application server. So how about we reflect that in beginners' classes?

Here's the first object a student should write:

public class Greeter {
    public String getGreeting() {
        return "Hello World!";
    }
}

Unlike public static void main (String args[]), this code-fragment immediately focuses the virgin programmer on the central concepts of Java—not program entry points, but the object and the method. Once they have written this, they can do the obvious next modification.

public class Greeter {
   private String name;

   public Greeter(String name) {
       this.name = name;
   }

   public String getGreeting() {
       return "Hello, " + name + "!";
   }
}

This moves us on to instance variables, constructors, and we can go on a quick tangent about the slightly weird + operator. And so on. From the outset, we build objects, not procedures, not programs. By the end of the day, we've written a simple, multi-function calculator object that doesn't do anything on its own, but can be used to perform any arithmetic operation we want.

But if we don't have a main method, how do we run anything? Simple. Think of a Smalltalk environment, or of those tools that use introspection to allow you to test arbitrary EJBs. Provide the students with a “learning environment” that allows them to test the behaviour of the objects they have just written by sending them messages, and viewing the results. The hot-swapping introduced in Java 1.4 would allow a certain degree of on-the-fly debugging and immediate “if I do this, it changes the behaviour like this” feedback.

Ideally, such an environment would let students create objects, inspect them, pass them around, maybe even step through code when necessary. The basic idea, though, is once again we're immersing the students directly into the real world of Java programming - thinking in terms of objects and messages, not procedures and short-lived programs.

It would also free the students from having to immediately dive into AWT. The learning environment would be fully graphical, allowing direct manipulation of objects, so the “create a button that sums the two numbers in the text fields” problem would no longer be a necessary evil of Java tutoring.

Eventually, eventually, you would introduce the students to ways of making objects work outside the learning environment. The time to do that would be after the students understood what “public”, “static”, “void” and “String[]” mean.

I recently wrote this to Bugtraq, about the Recent SSL Vulnerability (It's called an IE vulnerability in the email I was responding to, but since it affected Opera, libssl and Konquerer as well, it's really the "Pretty Much Everything Except Mozilla" vulnerability.)

On Fri, 2002-08-16, robert walker wrote:

A huge amount of infrastructure is managed remotely via SSL and IE these days. It just boggles the mind the extent to which the security integrity of that infrastructure is now under a cloud unknowing

Actually, the SSL vulnerability is a very predictable answer to an old question. For a while now, one of the big “what ifs” of Internet security has been “What if one day, the SSL infrastructure is completely compromised?” The most common hypothetical example of this was the compromise of a Verisign root signing key.

Predictions have ranged from the death of e-commerce, to the end of the world as we know it.

Now, it's not hypothetical any more. Until this is patched and the majority of users upgrade (in other words, give it two years), anyone can forge site certificates that seem valid to 90% of Internet users. The result? The news hasn't reached the “real world” at all. The story has stayed on news-for-nerds websites and in the technical section of mainstream press. E-commerce hasn't skipped a beat.

Certainly none of our1 customers, who were so adamant when we were speccing their web-applications that it must be secured with SSL, have come screaming to us wondering what to do now anyone can man-in-the-middle them.

I'm not sure whether to be saddened or wryly amused. I think I'll go with the latter.

Charles Miller

1 Well, none of mine anyway.

Ian Hickson sets the following quiz, as a demonstration of the limitations of HTML Validators. The following is a complete HTML document that parses as valid according to the W3C HTML Validation Service.. Despite this, it goes against the HTML specification in four ways. Can you guess how?

(If you're reading this in Radio's News Aggravator, it's probably not unencoded properly. Don't blame me!)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
   <html lang="english">
   <title>Written by Ian Hickson</title>
   <h1>Current weather in <cite>Berlin, Germany</cite></h1>
   <p>There are thunderstorms in Berlin at the moment. The air is
   very humid. The temperature is a warm 24°C.
   <img src="icons/low-wind" alt="low wind icon">

(If you're curious about the answer, it's probably better to email me than Hixie. That way he won't get spammed by the propagation of the link. I'll only respond to honest guesses, though.)

One day, I'll fix the HTML on this site. Honest, gov.

“The $100 bills are another matter. This is an airport; they can drag me to a windowless room in the basement and handcuff me to a chair. They can confiscate my stash, call in the DEA, FBI, and IRS. It will be up to me to prove that I'm not a drug dealer. To customs agents, $100 bills smell like cocaine. In reality, I'm a writer, with six pulpy thrillers under my belt, but today I'm on the scent of a real life story even more high-octane than any of my fictional jaunts. I'm ferrying money for Kevin Lewis, one of the best card counters alive. He's taking me back to his glory days when he ran a card team that hit Vegas for millions.” –Wired 10.09, Hacking Las Vegas, (via Mike Cannon-Brookes)

I've always loved stories about good hacks, and this is one of the more impressive ones. Give it a read.

Studying

  • 9:04 PM
Just when I was starting to get annoyed with work again, a few planets align.

The other day, I spent the afternoon drafting a prototype network security policy. We don't have one, and it's something I'd been worrying about for a while, especially since we have to have a machine lying around running that notoriously secure Redhat 6.2 in order to support Websphere 3.5. At the same time, we're getting into a bit of the security business ourselves—providing external audits for other companies and trying to sell them expensive Lotus network management gear.

So, as a result, the company's going to pay for me to take the rather expensive CISSP certification. Looking through the material, and doing some of the sample questions on the web, I already know most of this shit. I mostly have to make sure I know the proper names for things (like what exactly is RAID level 10, or the Bell LaPadula model, or how does TACACS really work)

Trainrek would probably be somewhat amused at all this. It's a six-hour exam though. *shudder*

Enterprise shits me. I don't even watch the show any more, and it still manages to shit me. I was channel-surfing during an advert break, scooted across Channel 9, and there it was. Quantum Leap Guy talking to Ferengi.

Excuse me for being a Trek nerd. The Ferengi were first introduced in The Next Generation. A big point was made at the time that these aliens had never been seen before. And, lo and behold, they show up in Enterprise. I didn't watch enough of the episode to see what kind of retconning they did to justify it, but I don't care.

It's just another sign of the laziness and ineptitude on the part of the writers and directors that caused me to give up on watching the show in the first place. They don't trust themselves to come up with anything original or interesting, so they have to fall back on the old faithful "these guys worked in the last series". If they hired decent scriptwriters, and gave them free rein, perhaps they wouldn't have to wave goodbye to continuity? Gutless and weak.

To accompany batty's Kevin and Kell reprint I'd like to mention that I was looking at the Livejournal stats page last night.

The typical Livejournal poster is a 17-year old girl from California. It explains a lot, really.

Update: In fact, there are more 17 year olds on Livejournal than the sum of all people my age (26) and older.

Quote of the evening, half-remembered from an old speech my brother used to have on tape.

The dragon that sits on your shoulder must, logically, shit down your back. -- Terry Pratchett

Mobile nerding

  • 10:40 AM
A few weeks ago, as I mentioned, I bought an AirPort card for my powerbook, and a wireless hub. the documentation for the hub said that its effective outdoor range was 300m, something I took with several grains of salt.

So this morning, I was considering breakfast. There's a rather nice cafe across the road and a little way up from my apartment. I can see it from my balcony. Aha! I thought. That means line of sight! Without further ado, I packed up my laptop, wandered across to the cafe, sat at a nice table outside by the road, and... voila! I'm still connected to the Internet.

The signal gets a bit dodgy now and then, especially when a truck drives by.

Where's my nerd award for the day?

Picking Locks

  • 8:34 PM
I have this routine I go through unconsciously as I walk out of my apartment. Hold door open. Check pockets. Make sure key is there. Let door close. Sometimes the last two overlap, but never so much that I wouldn't have time to catch the door if I discovered I didn't have the key—usually I don't hear the "click" of the latch until I'm ten feet down the corridor in front of my apartment.

It's one of those things I've conditioned myself to do—it takes no conscious effort. As soon as I step out of my door, my hand is in my pocket checking the keys. And I'm not satisfied until I've found the leather National Theatre Company keyring that distinguishes my house–keys from my office keys (which have an old 1-meg SIMM on the keyring).

I make sure I listen for the click of the door closing, though. Sometimes the door doesn't close properly, and I have to turn around and pull it shut. Since I was burgled, I've been pretty paranoid about things like that.

So this evening, I was ducking out to Shakespeare's Pies to get dinner. This is the shop that proudly proclaims that it sells "The best pies on the planet", and while they're possibly not that good, they're pretty bloody nice.

I pull my jeans on, grab my wallet, and walk out the door. I'm wondering whether I should turn the radio off, but I decide I'll only be out for ten minutes, I may as well leave it on. By this moment, the door is swinging shut.

That's when the mental image hits me. My front-door keys, sitting spread out by the keyboard on my computer desk. And I know, I know without having to check my pocket, that they're still there.

They're still fucking sitting there on the table.

I leap for the door.

click

Fuck.

It just goes to show. You can foster a good habit until it's second nature, but one moment of thinking about something else, and it's as if you never bothered.

So I decide to be sensible about this. Apart from one moment of annoyance, there's no point getting upset about something like this. It's like when someone in a shop makes a mistake—people make mistakes, it's human nature, and getting pissed off about it is counter-productive. I'm not perfect, and berating myself for something I'm usually pretty good at is pointless. I just resolve to get a spare set of keys cut on Monday and give them to my mother for safe-keeping, like I should have in the first place.

I panicked the last time I got locked out of my house. This was when I was 15 and living with my mother and brother. Mum had been on holiday in Europe for the previous two weeks and my brother and I had been taking care of the house. She was due to return at 2am, and the afternoon before that I came home from my previous all-nighter role-playing nerd session to find my brother had vanished indefinitely, and my keys were sitting inside on the kitchen table. The house needed cleaning before my mother got home. The house needed a lot of cleaning. It was then that I learned how useful (and how bloody expensive) locksmiths are, but not before I'd panicked for an hour or two wondering what the hell I could do.

So this time, I go and have my pie. No point wandering around on an empty stomach, and it's not as if I'm in a hurry. My apartment isn't going anywhere. After dinner, I phone my father to make sure he's home, and catch the train to North Sydney. From there I arrange a locksmith to meet me back at my place. I don't bother trying to contact my agent or landlord, it's Saturday night and I don't want to annoy them any more than I already have by being constantly late with rent.

My mother lives closer, but she's got a new phone number, and the only place I've got it recorded is on my mobile phone. My mobile phone is sitting on the computer desk next to my keys.

It's absolutely amazing how quickly a locksmith can earn $100. My front door has two locks on it, one regular one in the handle, and one pretty expensive Lockwood 001 deadbolt. One pick shoved in the bottom, a few pokes through with a lock-picking gun, and they were both open in the space of two minutes. We put all this faith in locks, but the fact is, anyone can open them in a snap with enough practice. I downloaded an instruction manual for lock-picking over the net a few years ago. I'm wishing I'd practiced now—If I had, I'd not be out a hundred bucks.

Remind me not to do that again.

After spending the last few days banging my head up against JBoss 3.0, I'd like to post the obligatory link to Richard Stallman's Why Free Software Needs Free Documentation.

Why are people so afraid of Java? I came across a post on the cms-list mailing list that I found quite disturbing. This guy was looking for a Content Management System written in PHP because "java is s...l...o...w..."? Where did he get this from? Has he ever tried a java app before? [Rick Salsa via Anthony Eden]

This always amuses me. "Java is slow because it's a byte-code interpreted language with JIT compilation. So use [foo], which is a fully interpreted scripting language!"

I wanted to reply to perspectivism, but my response was too large for LJ to accept, so I posted it here. This is the original post

A wonderful example of working backwards from predetermined conclusions.

Some ideas are spun off from the personal computer1 into consumer devices. Those that are, are done so because the consumer device offers something (form factor, interface) that the personal computer does not. So you get the portable mp3 player because you can't fit a PC in your pocket, but all mp3 players synchronize against a personal computer. You do all the complicated interactions such as importing the music and setting up the playlists on the computer, and then the portable player sucks that data in and allows you to walk around with it.

I've never encountered a stereo component that plays mp3s. If you want that, you can plug your computer into the stereo.

If there's any stability to mp3, it's because so many consumer devices support it, not vice versa. mp3 is threatened by the open-standards Ogg Vorbis from below, and from the copyright-enforcement-DRM-Disney-DMCA goons from above. mp3 is as volatile as you get, but some consumer device manufacturers took a punt on it because they could produce something that wasn't there before - a box the size of a pack of cards that could hold your whole CD collection.

Games consoles predate the PC. Before there was Apple or Microsoft, there was Atari. In the 80's, there was the big console crash, and everyone moved to the personal computer. There were lots of different personal computers, from IBM, Amstrad, Commodore, Sinclair, even Atari came out with the (pretty damn neato) Atari ST in the late 80's. The IBM-compatible always had the fastest core, but the rest made do by being cheaper (because they were integrated packages, instead of the component-built PC), and having specialised features such as dedicated graphics and sound chips.

In the general computing arena, the differentiator was Microsoft. As DOS gave way to Windows and then Windows 95, the ubiquity of Microsoft killed off the usefulness of owning any of the competing products except for playing games. The Amiga, for example, realised this and tried to produce a "games machine" (the CD32), but by then, the big players in the console arena, the Nintendos and Segas, and Sony looking for a piece of the action, rediscovered the advantage they'd lost in the 80's. As the computing market returned to "You run Windows, or you're an Apple Mac, or you play games", the consoles found their niche again.

You can't say that gaming has "stabilized" in any way since the 80's. Hardware continues to advance at the rate of Moore's law. Each generation of consoles supersedes the one before. People still play games on the PC because a mouse and keyboard give you so much more control over what you're doing. The consoles haven't killed the PC, they've complemented it. There's no stability there, there's just a segmented market.

There've been many attempts over the years to produce a word-processing appliance. And you know what? They've all been boxes with a screen and a keyboard. And this is why they've failed. Nobody's going to buy something with exactly the same form factor as a personal computer, but that only performs one, very limited function. Get away. Who's got room in the house to have one device that's a Word Processor, one that's a spreadsheet, one that does email and Internet...

The personal computer is an expensive, annoying box that is distinguished by its flexibility and richness of interface. If you can sacrifice the interface, you can make the box cheaper and less annoying, and spin it off into a more convenient product. But the simple fact is, sometimes we want to be able to do complicated things, such as organise our collection of 2,000 mp3s into playlists, and you just can't do that on a consumer device with an interface that is less rich than the personal computer.

Apple had the right idea. They positioned their computer as the "Digital Hub" - you use your consumer devices, your digital cameras and mp3 players and PVRs and whatever, but when you want to do anything complicated with all that information you've gathered, you plug them into your Mac and the Mac will make sense of it for you, and allow you to move everything around with a keyboard and mouse. And you know they got that idea right, because Microsoft immediately copied it.

[1] I try to say "personal computer" instead of PC, because PC implies "IBM compatible", or more recently, "Wintel".

Only nerds will get this one.

I was reading an obituary for Edsger Dijkstra, one of the great computer scientists, who died this week.

Apparently he used to go exploring with his wife in a Volkswagen bus.

They called it "The Touring machine"

*groan*

This is the Strangest piece of spam I have ever seen.

It's so weird I can't describe it. It sounds very much like they're selling marajuana, except they arent, but, it... you just ahve to go read it for yourself... it's is realllly strange. [weblog.masukomi.org]

That is truly whacked. Bet they were smoking their product ... [Brett Morgan's Insanity Weblog]

This is TheWeirdestSpamIEverReceived. It's very long, so I'll just paste the first three paragraphs here. Follow the wiki-link for the rest.

Hello

Later this year - prophecy will holdtrue, you will see.
For it is written in the eyeinthepyramid...

The Entity does not want to be caught out!
In fact right now, the Entity is doing everything in its power to get you to discredit this emailcommunication. The Entity is a ForeignInstallation that sits inside your consciousness and lies to you and dis-empowers you, robbing you of your essence, and aims to weaken you and bring you into pain and suffering.

Tag Soup Forever. What's new in XHTML 2.0 (via diveintomark):
Forms is replaced with XForms (http://www.w3.org/TR/xforms).
Events are replaced with XML Events (http://www.w3.org/TR/xml-evens).
Frames (not in 1.1 at all) are implemented via XFrames
(http://www.w3.org/TR/XFrames when it is published - might not be there yet).
[Some points elided -cm]
Tables has a more normalized content model.
Applet is gone - use object.
Img is gone - use object.

My prediction of the day. XHTML 2.0 will be the HTML's dead-end. In five years time, people will still be writing tag soup in HTML4 transitional, because thanks XHTML's march into complexity, the option to move to something cleaner will just not be there for them.

Modularity is wonderful. In theory it allows you to only concentrate on the bits of XHTML that you need to know about. But the simple fact is, to write a web-page you're going to need to use something like 14 of the 16 modules in XHTML 2.0, plus XForms, so what's the point of splitting them up again? And, of course, once you start splitting the spec up like that, tracking HTML versions is going to be a big game of mix and match.

(That said, my weblog is HTML4 transitional tag soup because I'm too lazy to write my own template)

Mike Cannon-Brookes wrote a post about the perennial Open Source debate. If you haven't read that, read it first or this will be way out of context.

Probably the best response you'll see to open source has come from Apple. Open Source does infrastructure very, very well. Take the infrastructure, and build something on top of it that Open Source doesn't do well at all - a consumer operating system, populated with fantastic, original applications.

IBM's done the same. It's not supporting Linux just because it likes penguins. It's using it as a cheap platform to stick really big expensive things like DB2 and Websphere on top of.

JIRA's another good example. An open-source base (WebWork, OFBiz, and it can run on the major open-source appservers), topped with a slick user-interface, and very responsive support.

Open source is great for commoditising things that deserve to be commoditised - the implementations of standards and protocols, areas of computing where innovation has slowed or stopped, and the building of tools that can be used to build other tools.

Even Microsoft recognise the value of open source, which is why you'll find the BSD license reproduced in your Windows 2000 licence booklet.

Dave Winer is a trifle disingenuous, because even Userland benefits from programmers working for free. Radio may not itself be open, but Userland has a very liberal policy on allowing people to post patches for it or add-ons based on Radio code. Because there's no competing Radio clone, everyone who creates and distributes a free add-on for Radio (under the open-source principle that it's easier to share than to hoard) is improving the Radio application, and making it more valuable to Dave Winer.

Closed source vendors could also learn a lot from open source. They're mostly Cluetrain-style lessons. The first lesson would be "Don't lie to your customers". Keep an open bug database. Let people know early what you're working on, and when their pet problem is likely to be fixed. Don't just shovel new releases into the trough under a cloud of hype.

Maybe if they'd learn that lesson, there'd be a lot less crap released.

Spam subject-line of the morning: LOOK~ You need Extreme Colon Cleanser
Mark Pilgrim, talking about reading blogs directly from their RSS feeds as opposed to reading the original page itself captures exactly my feelings about reading Livejournal from your friends page (except I never smoked)

This is an admission that reading in a news aggregator is fundamentally different than reading individual sites in a web browser. I don't use my aggregator to read things; I use it to find things to read. I tried the whole "read everything in your aggregator" thing, and it depresses me. It reminds me of when I used to smoke, and everything tasted the same.

A few weeks ago, I went slightly mad and bought myself an AirPort card for my Powerbook, and a wireless hub for the home network. It was one of my more frivolous purchases, since my apartment is really tiny, and if I had a 15m CAT5 cable, it'd be able to reach anywhere I wanted it.

That said, the wireless LAN is way cool. I'm sitting out on my balcony right now, typing on the laptop, drinking my beer, watching the cars drive by, breathing the open air, feeling the breeze and watching the late-afternoon sky. I will be doing this more often I think.

What I'd really like to do is be able to take the laptop down the road to the little park, sit on the grass and nerd away, but I somehow doubt the network stretches quite that far. I am, however, tempted to go downstairs and across the road, just to see what the reach of the signal is.

And no, it's a closed network. There will be no warchalking.

Charles in the office, making tea for various cow orkers: "The fridge threw an InsufficientMilkException".

I need therapy.