Berlin ’06

On Monday I’ll be off to Berlin for a few days. Despite having lived in Germany for twelve months in 2000-2001 in a small town in the south-east, I’ve only had flying trips to the capital, so it’ll be nice to be there for a bit longer and have the chance to actually look around.

Resources for writing a WxWidgets, XMPP-aware Python aggregator

From scratch:

This list to be updated as I go

Presence-driven interruptions

As well as only being interrupted at regular, predictable times, I want any interrupt-driven tools (like aggregator and email toaster alerts) to respect my calendar and presence status. In fact, it should be possible to drive my presence status from my calendar.

If my calendar marks me as being in a meeting, or busy in any way at all, then I want my IM status to be changed automatically, and my aggregator and email client to stop popping up. I’ve seen the SharpReader toaster alerts pop-up during other people’s presentations often enough to know how useful this would be.

My instant messenger of choice is Miranda for which there is a simple command line tool for changing your status.

So what I need is a tool which reads my calendar, finds out when I’m busy or free and modifies my status accordingly (with a useful status message saying when I’ll be back, too). My aggregator and my email client then need to be able to access that status and only provide popups when I’m actually at my computer and free.

The easiest way of doing this for my aggregator is just to build a simple Jabber client into it and to add it to my user roster. This way it will always know when I’m no longer marked as available.

My mail client is Thunderbird, for which there is a Jabber client but it only supports Thunderbird 1.0, and there’s no deep integration. Presumably the best option here would be to modify the mail.biff.show_alert preference in user.js except that I believe changes to this file are only registered when you start Thunderbird, so it’s not really that useful and a more integrated way of supressing notifications would have to be found. Suggestions on a postcard please.

Leverage my attention predictably

Kathy Sierra is right, our attention is badly used and unfocussed and it’s not just our own fault – your aggregator checks for updates every hour, but that’s probably from when it started, so at what time will it next notify you of new items? Your email scans every five minutes, so the likelihood is that you’re being constantly interrupted.

Being able to schedule these interruptions is an important part of managing your attention (and being able to priortise and sort these interruptions when they arrive is another). We should be able to say “interrupt me at x hour intervals starting at x o’clock” to every application that wants to tell us something, rather than being slave to being told as and when they deem it appropriate.

Shocking NHS HTML

I’ve just applied for my European Health Insurance Card (no more E-111s!), and thought “gosh, isn’t this font small? and isn’t the menu highlight poorly written? that’s some bad CSS there I reckon – let’s take a look at the source”.

So I did.

Five minutes later, I came around.

At various points in the source, there are four HTML Doctypes declared, each one followed by opening html and head, one of them even looks like this <html:html locale="true">, which is just plain bizarre given that it’s not an XML document, and locale="true" isn’t even a valid language identifier. I just can’t even imagine the system that outputs such shitty markup – no wonder there’s no “This site written and designed by” stamp on it!

And well, you just have to look at it to see what I mean.

You can see it for yourself here: https://www.ehic.org.uk/InternetPROD/home.do

Ambient wifi rabbits

Nine months ago I was looking for a good ambient presence display, which could also be used for things like build status monitoring, but I didn’t really come up with anything.

Nabaztag on Flickr

A couple of days ago, via Chris Heathcote’s del.icio.us links I found out about the Nabaztag. It’s an 11” tall wifi-controlled rabbit with lights, motorised ears and a voice-capable speaker and also has a published web-based API so that you can send it commands via the manufacturer’s website. In summary: it’s brilliant.

Using the API, Harper Reed (of skinnycorp, the people behind Threadless) has put together a brief web form from which you can easily send commands to your nabaztag, there are also perl and ruby libraries for scripting it.

The French Nabazweb site (not associated with Violet, the Nabaztag manufacturer) has a form which lets you subscribe your rabbit to the BBC News front page using RSS (click Démos, then scroll to the bottom of the iframe) and there’s even a Nabaztag web proxy called NabazClapier which lets you use parts of the API without going via Violet’s servers.

See

Obviously since it’s completely scriptable you could easily write bots for it so you could control it over instant messenger, or let it waggle its ears when one of your friends updates their blogs, or tell you when your build fails (as in fact Reevoo do) or whatever you like!

Pixmania are currently selling them for £65 which is quite a bit, but I’m sure that I’ll owe myself a present or something in a few months’ time 🙂

I know nothing about Windows installers

I don’t know anything about configuring or using Windows installers. Seriously.

From January to February, my contact form was broken, since I fixed it, I’ve had four messages from people asking for help fixing their installers. I was completely baffled, but a quick web search later showed that my namesake is a Microsoft MVP who wrote The Definitive Guide to Windows Installer.

Just to make it clear: that’s not me.

Flock you, Ninger!

Lately, I’ve been saying Ninged a lot.

It’s shorthand for a chasm in usability. Though you’ve created new market space, the share of that market that’s valuable in the real world is tiny; though many might want to use this set of services, only geeks can use them – you’ve built a better mousetrap, but only guys like this can figure out how to use it.

There’s an obverse to being Ninged – being Flocked.

Flocked is shorthand for a chasm in needs. Though everyone can figure them out, they create little market space: only geeks want these services – you’ve built a better mousetrap, but it only catches very, very small subset of mice.

I really like that quote from The Two Chasms of 2.0, both Flock and Ning are theoretically very good, but neither are particularly useful.

JavaScript slides, Yahoo! JavaScript and Microsoft JavaScript web stitching

ETech 2006 has kicked off and of the presentations I’ve looked at so far today, two have stood out in particular:

Simon Willison’s A (Re)-Introduction to JavaScript should be compulsory reading for every single person doing JavaScript as part of their job. It covers almost every aspect of the language I can think of, and does so well. It’s 111 slides, but is actually very short for the wealth of understandable, to-the-point material it contains.

Ray Ozzie (of Microsoft) has worked with a Concept Development team there and come up with Wiring the Web, a way to copy an individual structured item on a page (such as a person’s contact details, an event, a photo, whatever) from the web, and paste it into a desktop application (he’s called it Live Clipboard). This is really good stuff and should have come along much sooner – it’s just how people have expected the web to behave for years now.

In order to get a really good idea of what he’s done, watch the screencasts

By the way, a lot of idiots are talking about Ray’s demo without actually, you know, watching it or understanding it, so please do take the time to watch the screencasts before you post to your site saying how stupid this is.

In addition, Dustin Diaz has written a great review (with sample usage code and explanations) of part of Yahoo’s new JavaScript library: Forget addEvent, use Yahoo!’s Event Utility. We’ve started using some of the Yahoo! code at work, so I’m sure this will come in handy.