Ringtone etiquette
Being born on the trailing edge of Generation X, it's hard for me to accept that anything can be without irony, but the ringtone is the inevitable exception. →
tail -f /dev/mind > blog
Being born on the trailing edge of Generation X, it's hard for me to accept that anything can be without irony, but the ringtone is the inevitable exception. →
One of the features in the Confluence 1.3 release that I still look back on and say "Hey, that's neat", is the representation of threads in the email archives. →
The myth, of course, is that the lawyers have to protect their trademarks against any use by third-parties, because otherwise they lose the mark. It's a very convenient myth, and I suspect it's quite a lucrative one that the lawyers don't really put much effort into dispelling. →
The fact it took most of the day to come up with an hour's worth of presentation is testament to just how much of a time-sink putting together a halfway decent slide-show is. →
Really, this is just an excuse to post an mp3 of Richard Burton saying "creatures that swarm and multiply in a drop of water". →
Looking at the web applications Google is producing, I can comfortably say (and I'm almost never comfortable making technological predictions), that if you develop web applications and you aren't looking today for ways to include techniques like XmlHttpRequest, you're going to end up being beaten by someone who is. →
Happy birthday to me →
We need a new word for "computer game". Preferably something short and unpretentious -- I don't want "simulated" this or "immersive electronic experience" that -- but without the baggage of the mental image of a thirteen year old kid playing Super Mario Brothers. →
What I love about TheServerSide's occasional cartoons is not just that they're all remarkably un-funny, but that the kind editors of TSS go to such great lengths to explain the joke in advance in the sidebar. →
To get the most out of your programmers, you should give them the tools to do their job efficiently, remove potential interruptions, and make sure they're motivated. Mandatory overtime isn't on this list, believe it or not. Not just because it sucks (which it does), but because it's counter-productive. →
Despite the emphasis on lines like "I can't prepare for death more than I already have", and "Give me one reason to do it", this CD shows me a Smith moving forwards musically, not one about to abruptly stop. And that's why it's annoying. I want to hear what he does next, damnit. →
I would like to thank the tireless participants in Atom's standardisation process for providing me with some great test data. →
I simply don't understand how anyone in their right mind could vote for Bush. I'm sure a lot of really smart, rational human beings have done so, but I just don't understand the degree of self-deception that has to go on to say "Hey, this lunatic is a good thing for the future of our country." →
I love the Ruby language. I have doubts about the ability of its interpreter, though, after it was a factor of fifty slower at parsing XML than Java. →
Microsoft tells us what we already knew. Want to improve your online security? Get a Mac. →
It may just be me, but every time I come across a reference to John Kerry (or any other politician "flip-flopping", all I can think of is that episode of The Simpsons when Sideshow Bob ran for mayor. →
So I turned off swap. And everything seems to be running pretty smoothly. There are still bursts of IO as the database does something complicated, but in general, the box is back to barely working up a sweat. →
"So long as you understand you don't know what you're doing", I tell myself with a knowing wink. "It will be fine." →
I was ten feet away from Brian May kicking some serious ass on guitar. Loud cries of "We are not worthy" were heard from the crowd. →
It was my brother Ayad. He was bleeding from his legs, knees and forehead. I told my sister: 'Find out if he's still breathing.' She said: 'No. Nothing.' I started crying. The next day they took away his body." →
Languages where null is false make me happy. I am aware that this may label me as a sad, sad individual. →
Why Lucas should have got someone else to direct the prequels. →
Quicksilver is the best program I've seen so far that combines the code-fu of the command-line with the aesthetics of the GUI. →
screen ran my entire digital life for eight years. Not a bad achievement for a 250k binary. →
If you're running an old version of Blojsom, fix your RSS 2.0 template. For everyone else, a cautionary tale regarding standards that weren't supposed to survive. →
It's nice when one of your random bits of punditry from a few months ago is proven to be mostly correct. →
Anyway, last night, my mother came to me in a dream... →
Start strongly. Know your areas of competence. Have a point of view. Aim for 1000 words. →
Opening the letter curiously, I found two printed sheets of paper. At the top of the first was printed: "My name is Dave Rhodes, and in September 1997 I lost my job." →
"We thank you for calling this method. All of our programmers are busy right now, but if you wait, then some day one of them might get around to fully implementing all of the methods in the JDBC2 specification. Phew, there sure are a lot of them!" →
Still, [Allchin] said, dubbing Longhorn without WinFS as "Shorthorn" is "derogatory," because the operating system "is packed full of capabilities." Some of the features he mentioned were "great roaming support," .Net Framework 2.0, "new browsing capabilities," the "fresh" user interface, improved migrations and deployments, "more resilience to malware" and "a new photo experience." →
I half-jokingly mentioned I was considering doing a presentation called "Why My Brain Likes Ruby". They called my bluff. I'm almost hoping my second bluff is called, and someone asks me to present the damn thing. It might be fun. →
I guess one of the things about becoming a verb is that it ensures you at least some form of immortality. →
Yesterday it was Ministry. Today it's Tom Waits. →
Alan: It's times like this I wish I'd never learnt Python. I'd be a much happier Java programmer. →
Please, gentle readers of this weblog. Offer me the simple courtesy of assuming I am not completely stupid. If you don't feel able to offer me this courtesy, then why are you wasting your time reading the feeble scratchings of an idiot? →
Enter IOC/Dependency Injection. Now, each Content object needs to be injected with the renderer component by the IOC framework before any rendering can be performed. So instead, you just have people call the rendering component directly, creating an additional dependency. →
On Friday, I woke up with a pretty nasty cold. I grabbed some Paracetemol/Pseudoephedrine/Codeine tablets on the way in to work, and staggered somewhat unproductively through the day. By Friday night, I was in no state to do anything but stagger home and feel sorry for myself. →
The challenge for hiring great hackers, then, is holding their attention. If your interest is pure research, or if you 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, you're in trouble. →
Unlike most computer books, it is far too light to be used as a weapon, and not thick enough to prop up a monitor effectively. Nevertheless, it is too thick to be used to prop up one leg of a wobbly table. →
It's a strange feeling to be a blogger with nothing interesting to say. →
Not that I have even remotely enough money to buy one, of course, but... →
This scene was cut from the first draft of the Spiderman 2 script. →
I have a pretty laissez faire attitude to spirituality. 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. →
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. Which is fair enough, it's an experiment and not meant for that sort of use yet. →
Over the next month Gmail is down more often than it is up, none of the programmers are getting any sleep because they're too busy putting out fires, and some sub-editor at the New York Times decides "Gfail?" would make a good headline for the post-mortem, which really isn't good publicity for a company looking towards its IPO. →
Caption competition... →
The practical result, however, is different. It's very rare that I ask Google to give me a page that occasionally mentions the terms I am searching for. What I usually want is a page that is largely about the terms I am searching for. →
What is the difference between a number in single-quotes, and one outside? Well, sometimes it's a few orders of magnitude of performance. →
If they could grow human meat in a vat... →
Saggitarius: Your hard disk light will not go out today. Plan for occasional bursts of activity. Your lucky number is 2.6.5-gentoo-r1. →
If you are writing an API that takes a filename, you _must_ also provide an API that does precisely the same thing to an arbitrary stream of bytes. →
No, I don't. Pretty much everything I do is electronic, all of my records are electronic, why do I need to print anything out? →
What do you do? If you leave the comment un-challenged, you look like you're providing a supportive environment for random flamers. If you try to interject, you're getting into an argument that's really between the commenter and Bob, that you really have no personal interest in being a part of. →
What I'd like to add, though, is that there is still no room for complacency, because none of this keeps you safe from specific threats. Specific threats make no use of the network effect: if I want to get into your computer, I no longer care about the market-share of your operating system. →
Tonight, the only thing on TV is Starship Troopers. So guess what I'm doing? →
PetitionOnline is another one of those lazy options: "How can I convince myself I'm accomplishing something worthwhile, without more than two minutes effort?" →
There's a call on line two for Charles from a Mr Deja Vu. He says you left your brain at home, and would you like to pick it up? →
Yes. It was on display in the bottom of a locked filing cabinet stuck in a disused lavatory with a sign on the door saying 'Beware of the Leopard.' →
In any community with a moderation policy, the first (and constantly repeating thereafter) complaint is hypocrisy: that comment was just as “against the rules’ as mine, why wasn't that deleted? To which the one and only response is: 'because I felt one was worthy of remaining, and the other was not.'; →
Let's just forward stupid emails instead. That'll make us feel better. Yeah. →
A stupid type system is one where the programmer is forced to do unnecessary work for the compiler. Java's implementation of static typing is stupid. →
Unfortunately, this is a visual gag, and explaining the joke in alt text wouldn't be particularly funny. →
I shudder at the time I have to invest in this. I don't like fiddling around with installation and configuration, and yet I'm going to have to spend however long it takes to fix all this up. Joy. →
Straight Eye for the Straight Guy →
Two uses for mock objects, two families of priming methods. I'm not sure I need to draw this any clearer. →
Shiva opens her arms now to make sure I don't get too far. And in the middle of negotiations, you break down. →
None of this, of course, means anything. These micro-benchmarks are so ridiculously contrived that they only serve to throw around confusion and pretty mindless advocacy. →
Keep in mind this thing was profiling C code. Java runs in this carefully managed environment, surely we should have better tools? I suspect that if the Java vendors don't wake up, this is somewhere .NET can really clean up by making similar tools just come with the environment. →
Nice to see Google isn't losing its personality, even in the face of gigantic sums of money. →
Lung cancer? I wanted heart disease. →
Is Google finally devouring itself? →
Random swirling ideas that weren't big enough for a post by themselves. →
This time around, it didn't feel like home. It felt like this place I happened to know my way around. Maybe this is natural: four years is enough time to lay down roots in a new home, be planted somewhere else. Or maybe it's just that I live so much of my life within myself already that I'm not so easily attached. "I am the cat who walks by himself, and all places are alike to me." →
If we can write 137 lines of code without a bug, then we can structure our programming style so that we're always writing units of fewer than 137 lines. We can build those units into components, and voila! No more bugs. →
Two months ago, I thought reaching 1.0 was one of the toughest things a software project could do. On your left is a pile of bug reports, on your right a pile of feature requests, and in the middle there's a calendar screaming "Release, already!" →
Like all plans, it was simple and effective. I even wrote it up on the whiteboard in clear steps. It was all downhill from there. →
Are we all at sea with webservices? Geek Cruises seem to think so. →
Now call me a cynic, but I can't help wondering if the next year will see a less aggressive, more financially responsible Sun cutting back on projects that are unprofitable and that only exist as a weapon against a company they are no longer in pitched battle with. Like, say, OpenOffice.org. →
For that, I'll happily tell the world how excited I am to be in partnership with you, and how much I respect you as a company. I'll come to your barbecues and laugh at the funny slogan on your apron, even if nobody else does. →
We're only talking about a few lines of helper method here, of course. Apache Commons already has one ready-made and waiting for me. All this would be doing, though, is moving the ugly code into a ghetto so I wouldn't have to see it. It would still be there. →
Alright, we're here. Let us never speak of the shortcut again. →
This pretty much sums up the Internet. →
Confluence 1.0.1, out tomorrow, will mostly consist of workarounds for weird Sybase behaviour. →
Now to be fair, these are minor niggles, and two of the three are very clearly pointed out in the Velocity documentation as places in which the language does not behave the way you'd expect it to. Given that you've been warned, any mistakes you make as a result are your fault, right? →
All you'll then need to do in order to write the perfect program is master the right combo-moves, and prove your Code-fu is truly superior. →
Or maybe I'm just making it one. Is the general consensus that "Robot" as defined by the exclusion protocol means "Indexing spider"? →
You know you've completely lost it, though, when after failing to get the pointer to cross between computers the first time, you slam the pointer harder against the side of the screen, with the unconscious belief that if you just push hard enough, it'll make it across the gap. →
If I get in an online argument these days, I inevitably just end up annoyed that this thing is taking up too much of my time, and that the _other_ party in the argument obviously has all the spare time I don't have any more. →
Against a collaboration software that combines the expressiveness of HTML, the simplicity of WYSIWYG and the seamless networking of SubEthaEdit, all in a package that people actually want to use regularly, we have wikis. Wikis have the advantage of... well... existing. →
Thankyou for registering your complaint about this user. He is an habitual troublemaker, and we have now had him taken out the back and shot. Have a nice day. →
When you buy furniture you tell yourself: "That's it. That's the last sofa I'm gonna need. Whatever else happens, I've got that sofa problem handled." →
I was honestly planning to make some kind of point here, but I seem to have lost it on the way. →
As I examined each of my issues with the concept of continuation-based web programming in enough detail to write about them, I discovered they weren't really problems at all... that is, all but one. →
I still run Linux at work because I can't program without the Unix tools around me, and every time I use Cygwin I feel the immense philosophical disjunct between the Unix tools and their Windows environment. But I think the above explains why at home, I turned my last Linux box off last week, and now it sits unpowered next to its year-idle Win2k counterpart. →
I've always basically believed that Google were genuine about their "Don't be evil" credo, despite recent growing pains and stuff-ups. →
As a programmer, you're responsible for the code. If any of these other things get screwed up, your project may well be doomed. If any of these other things are done well, your project may succeed despite bad code. But at the end of the day, your job is to make the best of what _you're_ being paid to do. →
I've allowed myself time to think about them. The inspiration has faded, but in thinking I've given myself even more ideas that I need to perspire over before the article is done. And that's what kills them. →
And by making us excited and getting us hooked, eyeballs are delivered to advertisers. Newstainment. →
Suddenly I feel slightly better about my own edge-cases. →
YAGNI tells us not to implement features blindly or architect clever "flexible" solutions just in case: it asks us to keep in mind that there is a cost to everything, and that we should prioritize development of things we know we need over things we might need later. →
It's one thing when your only tool is a hammer. It's another when you have a full toolbox, but you're so loyal to the hammer you'll apply it to every screw that you find. →
select pg_class.relname,pg_locks.* from pg_class,pg_locks where pg_class.relfilenode=pg_locks.relation; →
I can't help thinking that perhaps discipline at this school is a little harsh. →
I'm getting more than a little tired of project websites where I have to scan down the left-hand side to find the link that will take me to the page that _finally_ tells me what the damn project is about. →
So, what value should null have? →
One day, the Novice came to the Master and asked, "Master, how can I write perfect code?" to which the Master replied: "To write perfect code, you must not code." →
Adventures in writing a one-page deployment script. →
What Raymonds really means is that there's a lack of adoption of Java from Unix/C Open Source nerds. From Raymonds point of view, the Open Source community is centered around the Linux community: so any Open Source that isn't related to the Linux community slips under his radar. →
The defining nature of a Wiki is consensus. Every participant in a public wiki has the same power to create or destroy, and the resulting content is the consensus of the group. Where there is no consensus, the content remains self-contradictory. →
After years of mediating between people who pronounce each letter individually, and people who say "sequel", I want to make it clear that the correct pronunciation of SQL is... →
The FAQ said that learning to lucid dream is all about learning to notice when you're dreaming: to always be questioning reality just enough that when you're no longer _in_ reality, you can tell. →
I'd be among the first to admit that Java has its flaws. Its design is a compromise, and it is thus compromised. But it still has a lot going for it: not the least of which being the quality of tool support and available libraries. And it is a language in which talented people can produce worthwhile software. →
Rediscovering Cocoa. Again. →
Persistent login cookies are the cookies that are stored with your browser when you click the "remember me" button on the login form. The following recipe for persistent cookies requires no crypto more powerful than a good random number generator. →
For a moment, my blog descends into crass commercialism. →
Charles dips his toe into a few Unit Testing topics, after seven beers and a little too much getting his ass kicked in Soul Calibur II. →
HTTP has a bunch of useful response codes. As web application developers, we should be familiar with the codes, and use them when they are appropriate. →
The computer wants your blood. →
All these ideas fight in the bizarre landscape of the computing market. It's like watching evolution at work: except this is evolution played at maximum fast-forward, with an ice-age every couple of years and meteorites hitting the planet constantly from every angle. →
When Spam starts reminding you of old TNG episodes, you know it's time to give up on life. →
When you get to the bottom of what's going on, it's an interesting insight into the way a couple of unrelated design decisions can turn around to produce unexpected behaviour that's only really predictable in hindsight. There's a bit of a lesson in here. →
The reason some of you may have noticed that is because my script didn't know how to deal with an empty banlist, went slightly insane and banned the whole world. →
Aren't you glad you don't have my brain? →
I find it annoying that in order to get my Mac to check my spelling against an English dictionary instead of an American English dictionary, OS X thinks that "American English" is just "English". →
A while back, I theorised that every Java project ends up writing some kind of StringUtil class. Today I found proof. →
(1) I forgot to take a hat, and had to buy one at the ground. (2) Despite large volumes of sunscreen, I have turned bright red. →