One of the things I used to dislike most about the Mac was the way that applications stuck around even when you'd closed all their windows. “How annoying” I'd think, as I searched through the Application Switcher to find all the programs I'd started that were still taking up precious resources because I'd never explicitly quit them. →
You can't go ten feet on the Internet without having Jon Postel's Robustness Principle quoted at you. Like most accepted wisdom, it doesn't quite bear close inspection. The problem arises because following the robustness principle does not protect you from people who do not follow it. The results can be quite chaotic. →
You know you've been hacking too long when you come up with an idea for a silly Science Fiction/Horror short story, in which the universe implements reference-counting, and as soon as the number of `references' (i.e. connections to other people) you maintain reaches zero, you are visited by The Garbage Collector. →
If your weblog has a comments form, it is a very good idea to have some kind of small-print on the form that explains how the submitted comment is going to be munged. →
Before you scoff about patenting the obvious, try to remember back to just how revolutionary ICQ was, and how quickly everyone flocked to it. ICQ introduced the idea that <em>presence</em> would work over the Internet, not just on closed-gate BBSs and online services. →
An object's interface (try to forget the way Java has co-opted the term for its own ends) is the set of messages to which it will respond. Thus, interface inheritance is the declaration that one class will respond to the same set of messages as another. This is the cornerstone of polymorphism: two objects that respond to a common set of messages (having a common interface) can be substitued for each other at compile- or run-time, allowing for more dynamic and flexible programming. →
Everybody seems to have glowing praise of Maven at the moment. The problem is, it's not immediately apparent from the site's front page what Maven actually does. On one hand, I really don't have the time to play around with Maven until I grok it. On the other hand, if I did grok it, perhaps it would save me an inordinate amount of time in the future? I don't know. →
Hibernate was brought up to 1.0 in a very short space of time, by two programmers working with one of the most efficient motivations a programmer can have: frustration. If any of you have ever done any significant work with Entity EJBs in Websphere 3.5, you'll know exactly the frustration of which I speak. →
There have been calls from some quarters for a fully fledged macro system in Java I think the chance of this escaping academic study and getting into mainstream Java is somewhere close to zero. →
I've only ever written two SOAP applications. The first was “Hello World”, except it would give back a random quote from the fortune file instead of the boring Hello. The second was truly diabolical... →
I think my biggest problem with the enhanced for statement is that it's the one thing in JSR-201 that is a step away from the right thing. Once foreach is implemented, the precedent has been set: whenever the lack of blocks causes us to lag behind C#, don't fix the underlying problem, work around it with a variant on what we have already. That leaves me a little cold. →
The natural mode of any disagreement on the Internet is highly charged rhetoric. It's because we have this invisible audience that may or may not exist, so the instinct is to play to the crowd. This tends to elevate the most trivial discussion into a flamewar of epic proportions, especially with things that are matters of taste that can never be decided through reason (emacs vs vi, Java vs .NET, or code conventions) →
On Hungarian Notation: I prefer to have code that is easy to read in the general case, and tools that will tell me the supporting information if and when I need it. The information should be available, but not obscuring the code. →
When looking through the comments on Slashdot stories like this, and seeing the kind of ignorant garbage that gets moderated up, it really helps to keep repeating to myself: “They're only kids. They've probably never developed anything longer than a 100 line Perl-script in their lives.” But it's so disheartening to see so much ignorance concentrated in such a small place, labeled as the “voice of nerd culture”. →
ime after time on projects, though, a set of requirements end up written on cards that do not fit. They are the round peg to the User Story's square hole. These requirements are: security, usability, performance, and logging (especially audit logs). These are generally shoved in the catch-all category of Non-Functional Requirements. →
The paper looks at both the internal structure of the diegetic universe of BUFFY, and considers the T.V. as a 'symptomatic' product of the current later capitalist culturo-political conjuncture. In particular, as the subtitle indicates, the paper uses a consideration of BUFFY to raise questions concerning where we might stand today vis-a-vis the enlightenment project of opposing all things spectral and vampyric in the name of rendering social and political life transparent to reason →
"You've got to understand that most of the input into Gartner is from briefings arranged by the marketing departments of companies that are paying them to listen to their briefings. Basically, Garter sits at the apex of the hype food-chain; they consume pure hype and produce little sh&t-pellets of hype that is[sic] as dense as neutronium." - Marcus J. Ranum, on firewall-wizards. →
Mark Pilgrim has upgraded his site to valid XHTML 1.1, and in the process provides several examples of why that's really quite a bad idea. I shall stick with my grossly invalid approximation of HTML4. →
Weblogs are fun, and interesting, and a very neat way of exchanging timely information in a decentralised environment. But they have some significant weaknesses that make them unsuitable for the task of providing a repository of academic research. →
Our intelligence services are getting exactly the same amount of information, they've just lowered their clipping levels below the point of usefulness as a result of the blame we placed on them for not warning us before the attacks in New York or Kuta. We should consider these warnings to be a failure condition, proof that our alarm is still unable to discriminate between a rumoured attack and a real plan. →
iPulse is pretty cool. It's a system monitor for OS X that can display CPU, disk, memory and network usage (and the time) all in a compact radial layout. →
When I go to the ‘Official Site’ for a computer game, there's a good chance that I already have the game, and am looking to see if there are any patches available. Put that information, or a link to it, on the front page. Even if there are no patches, link to a page that says there are no patches. →
And tonight Linux showed me how much it deserved my respect. I damaged its root filesystem beyond recognition and it didn't crash. It still hasn't crashed. I looked in directories with corrupt descriptors, files that made absolutely no sense, and Linux didn't panic on me, it just reported what it could see to the best of its ability. →
Egress filtering is a good idea, and every router should implement it as a matter of course. Sadly, a lot of them don't, and it's one of those things where even if you have egress filtering working fine across your border, you're not safe unless everyone else is doing it too. →
The Internet is in serious need of an upgrade in a number of areas. Some of these problems already have fixes, they're just not being rolled out because it's considered too hard, or there are large vested interests in maintaining the status quo. (This was originally going to be a top ten, but I ran out of writing time during my lunch hour. I may amend the list later.) →
The game is called Porrasturvat, a word the author vaguely translates to English as ‘Stair Dismount’. It's a physics simulation, the physics in question being just how much damage you can do to somebody when you push them down a flight of stairs. It's more than a little scary how much enjoyment one can get out of the simplest cruelties. →
The day a CD comes out that I want, but that only exists in a copy-protected form, is the day I return to the p2p networks. I bet you any money I'll find the whole album there. If an industry believes that its oligopoly is an excuse to treat customers like criminals, then I will quite happily satisfy their presumption. →
Every incoming mail was being silently redirected to the director's inbox. By the next staff meeting, he had a list of all the distribution- and mailing-lists we were to get off now. Needless to say, that's about when I started looking for a new job. →
One of the surest ways to get on my nerves very, very quickly, is to touch me. I have this very strong sense of personal space, and strangers touching me just makes me cringe. →
The people who invented HTTP came up with something even better. HTTP allows you to say to a server in a single query: “If this document has changed since I last looked at it, give me the new version. If it hasn't just tell me it hasn't changed and give me nothing.&rdquo →
The number one rule for starting an Open Source project. Never, ever, ever start the project without having working code that people can compile, run and play with. If you don't, you'll never develop anything. →
After a thread on the webappsec mailing list, I spent some of yesterday coming up with a guide to password recovery techniques for public web applications. Available as a PDF. →
The Manual (How to have a number one the easy way) by the KLF: "Other than achieving a number one hit single we offer you nothing else. There will be no endless wealth. fame will flicker and fade and sex will still be a problem." →
This really sums up the situation with HTML as far as the W3C is concerned. HTML4 is dead. XHTML1 was just a transition from a monolithic SGML format to a modular XML format. The as-yet-unfinished XHTML2 is the only way forward for the standardized web. Thus, any improvements we might want to make to the specification must end up in, and conform to the goals of, XHTML2. But how long do we have to wait for XHTML2, and what if we don't want to use it when it gets here? →
The found something I'd forgotten about. Once upon a time, back in 1998 or so, I had a list of things that I wanted on my homepage. On it was “A life. Preferably in a metallic blue, or maybe dark green.” Soon after, Lonita sent me this. →
An international literary parody contest, the competition honors the memory if not the reputation of Victorian novelist Edward George Earl Bulwer-Lytton (1803-1873). The goal of the contest is childishly simple: entrants are challenged to submit bad opening sentences to imaginary novels. Although best known for The Last Days of Pompeii (1834) and the phrase, "the pen is mightier than the sword," Bulwer-Lytton opened his novel Paul Clifford (1830) with the immortal words that the "Peanuts" beagle Snoopy plagiarized for years, "It was a dark and stormy night." →
I spent most of the year hanging around with people who I knew from school but didn't particularly like, because at least it avoided the hassle of trying to meet new people. Big mistake. Other interesting things that happened that year mostly involved me being thrown out of the University tavern for being underage, and having my eyebrow shaved off at someone else's 18th birthday party. →
I expect most of you have read this before, but Terry Bisson's <a href="http://www.terrybisson.com/meat.html">They're Made out of Meat</a> is always worth a read. →
The tools aren't there yet, of course. The standards don't support everything we want to do, and the browsers don't support all the standards that do exist. We've got years to go yet, but that doesn't mean we shouldn't be moving in the direction of semantically correct web-pages. →
Dave Johnson asks what's wrong with the price/quality curve of software. I reply that most expensive software requires expensive customisation, so a few hours extra installation time isn't really a serious business issue. →
I recently discovered a bug in Internet Explorer version 6 that causes random type in my weblog's sidebar to disappear. In a competetive environment, this would be IE's problem. In the real world, it's mine. →
Joel Spolsky notes the release of the second edition of Dynamic HTML: The Definitive Reference. This is the only HTML book I've found more useful than the original specifications. →
“I have come up with a new form of encryption that's better than a one-time pad. Should I patent it?” Or, “Dear Slashdot editors. April 1 was six months ago.” →
<p>Exhibit A, your honour. An options list from a website's registration form containing <em>341</em> different salutations, including “Honourable Judge”, “Senator”, “Dpty. Commissioner”, “Kepala” and “YB Dato' Paduka Bijaya Di Raja”, but shamefully missing ‘Mademoiselle’.</p> →
You know you've been hacking too long when somebody says “Axis of evil”, and you think “Hey, <a href="http://xml.apache.org/axis/">SOAP</a> isn't that bad...” →
I just looked at my weblog homepage in Netscape 4.78 for Linux. If you get the chance, you should try it, it's really funky. It looks like William Burroughs cut my page up and pasted it together in random blocks. →
From Bryan Dollery on the Extreme Programming mailing list: “If business leaders were interested in money then they'd use JBoss overWebSphere or WebLogic. The three products are, for most uses, identical -but JBoss is free while Web* can cost around $50,000 per processor. If money is that important, why do these products sell?” →
You want to make it as easy as possible for a client writer to inform the user of abnormal conditions. The easier it is to write a client, the more likely your service will be quickly adopted. Therefore, present error messages both as an easily machine-parsed code, and as a textual description. →
Too much of the marketing of development environments seems to ignore the fact that the thing coders spend the majority of their time doing is either writing code, or thinking about writing code. “Just fill in this wizard, and you've deployed your very own web service” does not impress me much when all the service does is say “Hello World” →
One of the User Interface fads that emerged in the 1990's was ‘skinnability’, the ability to customise the appearance of an application right down to its controls and window decorations. Skinning continues to be a big hit amongst computer users who can now make their entire computer look like their favourite cartoon, but it presents a challenge to User Interface designers. →
The way the media treated the first anniversary of the World Trade Centre attacks makes me sick to the stomach. It's grief as entertainment. the line blurred between sickening reality, and the vicarious hit of constructed drama. →
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. (SPOILER) →
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. No gnome should be left unturned →
I've taught a number of “Introduction to Java” courses, and I've always felt that they approach the problem the wrong way, with methods that are more suited to the teaching of procedural than object-oriented programming. So I came up with an idea of how to do it better... and discovered someone else had beat me to it. →
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 <em>know</em> without having to check my pocket, that they're still there. →
Jakob Nielsen tells us that when designing a webpage, we should always keep the browser default link-style: blue underlined text. Of course, nobody does this because in the context of a lot of pages, blue underlined text is pretty ugly. Anyway, here's my rules of thumb for links. →
There's this thing commonly called the "slush pile". It's where your manuscript will end up if you mail it to a publisher. Manuscripts in the slush pile get read by a young recruit at the publishing house, straight out of college, whose job it is to look at the tens of thousands of unsolicited manuscripts, and recommend any good ones to someone higher up in the food chain. Common practice is for them to read the first four pages, or maybe the first chapter. →
It's tiny. The picture doesn't do it justice, because it's out of proportion with my head, and just makes my hand look really big. Remember my Nokia 8820 phone? It's the same height and depth, and only about a third wider. I'm pretty sure the instructions at Apple would have been "Make it the size of a pack of cigarettes". →
You can put your feet on automatic pilot, and your brain goes into this strange mode where some part is devoted to navigation and making sure you don't walk into anything (cars, people, lamp-posts, trees), and the rest is free to think about anything you want. But the part that's doing the navigating seems to be the same part that gets in the way when you're just sitting down. →
When Dejanews came out, there was trend in certain parts of the tech sector to do a Dejanews search on a potential employee. Some of these searches were benign - to quote from memory one online friend, "Their posts in comp.software.xyz would give me a good idea of how much they know." On the other hand, the potential prejudice if someone found your posts to alt.lifestyles.furry, or the fact you used to troll alt.usage.english could be rather career-limiting. →
I can only remember meeting "Uncle Wally" once. We were visiting England for my cousin's wedding, and I must have been eleven. He had a big fancy house and a swimming pool. He was nice. I played the first few bars of Pachabel's Canon in D on his grand piano, but couldn't play any more because I hadn't learned it yet. He died on December 26, 2000. →
<p>Chris Pirillo posted <a href="http://chris.pirillo.com/archives/week_2002_02_03.html#000380">The Blogger's Manifesto</a> recently. I take issue with the fact that many bloggers and online journallers think that they are in some way above criticism—believing that just because readers choose to read a particular site, they should ignore those things disagree with while reading. →
OK. Now wouldn't it be cool if the language itself was valid XML? Why? Because... er.. because then you'd be able to make an XSLT document that takes another XSLT document and converts it into XSLT! Wouldn't that be cool? Er, yeah, sure. →
OPML is the “Outline Processing Markup Language”, an XML document format from Userland for the storage of outlines. Unfortunately, I find the whole thing rather clunky and hard to use. →
I tried to start programming in <a href="http://radio.userland.com">Radio</a> today. I didn't get particularly far, basically because it was so difficult to find out how any of it worked →
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 →
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" →