Oxford Geek Night – Happy Path Talk

(Best pic I have! – thanks @jimbobc)

I’m just back from Oxford Geek Night. It’s difficult for practical reasons to get there, so it was my first, and it was a great event with many interesting folks working on some very interesting projects. A real vibrant culture of small companies, startups, and freelancers too; very different to most places you go in London.

I gave a keynote, “Take a Walk on the Happy Path”, expanding on ideas in http://softwareas.com/the-new-registration-and-login-grammars . I’ll post the presentation once the video’s out.

Quick feedback from my talk, while I remember:

  • Overall, it was evident this is the kind of content people were comparing to their own work and thinking how they could build things in like Lazy Registration and Email-Driven Interaction.
  • I heard a couple of scenarios where Email Driven Interaction would be pretty neat. Mobile is interesting, because for those not toting the latest and greatest smartphones, email support is ahead of the web.
  • I ought to mention services like Mailinator. More evidence that we aren’t amused with complicated signup.
  • One guy felt a disconnect between Lazy Reg/Email Driven Interaction
  • I had a technical issue where my laptop lid was closed; when I went to the stage and opened it, screen was black, so I had to keep turning my head to see the screen, and there was no timer. Not a big deal as I’d walked through the slides in the morning, but next time I’ll avoid that, and take a couple of minutes to get it sorted if necessary. Live and learn.
  • People were a bit stumped about BT/Osmosoft doing stuff like this, and generally being involved in open source. It’s a common reaction and I didn’t elaborate on it in the talk, so explained the setup to people afterwards.

Thanks to the organiser J-P (not that JP :)), the sponsor, and all who attended.

2010: The Year Email Took Off?

I’m getting a presentation ready for the Oxford Geek Night this Wednesday. I’m doing a keynote called “Take a Walk on the Happy Path”, which is based around the notion of lazy registration and other new interaction patterns that are making it easier to interact without having to register or log in. (BTW drop by if you’re around Oxford this Wednesday.)

One aspect is email. I’m seeing the email-driven interaction pattern get more and more popular. 2010 will be the year of many things, but I can see one thing being particular prominent in 2010: good ol’ email.

And having used Posterous a couple of months now, I can see why. Lots of unanticipated reasons to use it. e.g. I mail an answer to someone, but CC it to posterous so it goes on my public blog too. Or I flag some pics on iPhoto and email the lot in one go to Posterous so they appear on my Posterous blog and in my Flickr account, with requisite tweet if I like. Or I record an MP3 on my iphone (if only an app would actually do that) and send it to my Posterous blog – instant podcast!

It’s just old-fashioned email, but suddenly it got a whole lot more useful! The ubiquity of email has until recently been underutilised in a big way.

http://picwing.com is a new startup whose premise is mail them your photos for print. I can see other upstarts taking similar advantage of this pattern to build a competitive advantage, and combining it with Lazy Registration will help them take on the incumbents. And the incumbents will likely introduce the pattern to combat them, just as Dopplr introduced it after Tripit’s itinerary email procedure came along.

A few things worth noting:

  • It’s been done before by pioneers like Flickr, and probably much earlier than that. But now, we’re trying our luck with simple email addresses like [email protected] and [email protected] Not a secret email address with a password/PIN in it.
  • That could be a bad thing, as it’s possible to spoof the From: address. So security measures need to be in place and you can’t use it for anything too important. But most things aren’t. No need to throw out the baby with the bathwater, as long as services are designed around the fact that identity fraud is a more likely possibility than normal. One good pattern is simply a confirmation reply by email.
  • It’s more than just an email to a simple address though, because posterous is using email as a command-line. e.g. [email protected] will go to flickr and twitter; [email protected] to everything that makes sense, and [email protected] only to my blog. Maybe sounds complicated to the unfamiliar, but pretty simple once you get used to it. And most people will only ever use and care about [email protected], so it’s all good.
  • The pattern extends more broadly than email, to encompass SMS interaction and interaction from specialised devices.

Oh. This would be a good time to officially announce my Posterous blog: mini.softwareas.com. Somewhere between my Twitter and this blog, it’s been a great avenue for expanding on things that can’t possibly be said in 140 characters, but don’t warrant the longer, slightly more formal writing (well, I use hyperlinks occasionally) you see here. I also use it as a general scrap book and a place to just drop content and data into, where each random bit collection gets a URL … a glorified pastebin. In fact, it’s changing the way I write here too, as I’m using less markup and less links overall. This blog post comes to you via email in fact, as it’s just easier and lets me write things where I otherwise wouldn’t bother. So maybe this blog will converge a bit with my Posterous blog.

Also, Twitter’s handling of historical data is pants. I laugh, I cry, I laugh, I cry every time someone says Twitter will crush Google, it’s the new search, when they can’t even search tweets from more than 2 weeks ago. Yes, I realise it’s all about real-time now, and searching last month is so, well, last month. But I want to use Twitter in a way that I can easily search back to things I’ve been doing and links I’ve been noting; and, as it stands, I can’t. So I’d much rather pump all my tweets through something that is properly searchable. I still do tweet directly at times, but mostly because it’s convenient from TweetDeck; as soon as there’s an equivalently good Twitter client that posts to posterous – or just sends tweets to an email address, hah! – I’m out.

State of jQuery 2009

Fred noticed Jon Resig’s State of jQuery slides are up:

Highlights for me:


  • Now using sizzle, the quick, generic (not just JQuery), selector engine. Slide 8 show s almost 2* performance improvement on IE6 from JQuery 1.2.6 -> 1.3.2.
  • Performance improvements are apparently dramatic (browser averages):
    • width() / height() ~4* speedup (good – I need these for http://caption.im8ge.com)
    • hide() / show() ~3* speedup (good – I use them everywhere!)
    • element insert: : ~6* speedup (likewise)
  • Test Swarm is go! Awesome, Awesome initiative. I hope we take advantage of it for TiddlyWiki testing, once it extends to other frameworks. (Or make something similar.)

  • Ridiculous growth and market share (p15-17), and new big sites using JQuery (p13): Whitehouse, Wikipedia, Amazon, Microsoft. Not too shabby eh. Stuff like this makes it much easier for advocates to sell in their organisations.

  • Setting up private CDN on Media Temple, who’s donating all the resources.


  • More performance improvements in 1.3.3 – p23 shows 3.5x improment over 1.3.2! (perhaps for a subset, but it’s still a big and useful set).
  • JQuery builds optimised for mobile.
  • Moving parts of JQuery UI widget -> core.
  • Four conferences in 2009 – online, London, SF, Boston.
  • Better community sites, inlcuding online forum. Plugin site rewrite.
  • All plugins on CDN..
  • Core -> Github.

REST is good, but REST-* is …

The above image is inspired by Roy’s Rightful REST Rant, kanyelicious and kanyegate, uses @psd’s Roy Has a Posse, and is me getting up to speed with Photoshop (not that it shows) after using certain less worthy tools for image manipulation.

I’ve said a bit about this on Twitter, but basically a couple of years ago I saw REST beginning to take off in the enterprise, it was inevitable, and was amused by the prospect of vendors “embracing and extending” it for the enterprise; just as other useful terms like “synergy” and “agile” get sucked into the vortex of hollow lip service.

And now, with REST-*, it’s happened.

So it was nice to see Roy Fielding wrote the following on REST-discuss, a much tweeted tirade:

Bill, if you want people to have an open mind about what you are trying to do, then the respectful thing would be to remove REST from the name of your site.

Quite frankly, this is the single dumbest attempt at one-sided “standardization” of anti-REST architecture that I have ever seen. It even manages to one-up the previous all-time-idiocy of IBM when they renamed their CORBA toolkit “Web Services” in a deliberate attempt to confuse customers into thinking they had something to do with the Web.

Distributed transactions are an architectural component of non-REST interaction. Message queues are a common integration technique for non-REST architectures. To claim that either one is a component of “Pragmatic REST” is the equivalent of putting a giant Red Dunce Hat on your head and then parading around as if it were the latest fashion statement.

The idea that the community would welcome such a pack of marketing morons as the standards-bearers of REST is simply ridiculous. Just close the stupid site down.

JQuery IFrame Plugin

This article by Nick Zakas, covering some technical issues in iframe loading, triggered me to surface a JQuery IFrame plugin I made a little while ago, which supports loading IFrames. (I did tweet it at the time, though I’ve since changed the location.)

JQuery IFrame plugin

The plugin basically tells you, the programmer of the parent document, when your child iframe has loaded. It also has some other bells and whistles, like timing the load duration.

It’s inspired by the use cases of WebWait (http://webwait.com) and the Scrumptious trails player (http://scrumptious.tv). Both are applications whose whole mission in life is to open up an external page in an iframe, and do something when it has loaded.

There’s already an IFrame JQuery plugin, but it’s to do with controlling what’s inside the iframe, i.e. the situation which is only possible when the iframes are from the same domain. What I’m dealing with here is the parent knowing when the iframe is loaded, regardless of when it comes from and agnostic to what it does.

TiddlyWiki Quiz Plugin

I’ve produced a Quiz plugin for TiddlyWiki this evening.

Quiz plugin and demo here. (And source code in subversion here.)

It’s a macro – you just put <<quiz>> in a tiddler somewhere and it will suck in all the question tiddlers, format them to show a quiz, and let the user fill their answers in.

Authoring is pretty simple – you pretty much write each question and its multiple choices out as you’d like the user to see them. The options are just a list. Any options beginning with “” are wrong, any options beginning with “*” are right.

There’s no server-side, so it’s very easy to cheat. That’s why Joe made Firebug in the first place. Isn’t it? No? Actually, this pattern is very much in line with the TiddlyWiki philosophy (and, further back, C2 wiki, where the voting mechanism was just editing a wiki page) – a lightweight solution where people are trusted to do the right thing. Would you use it for entry to medical school? Probably not. But it’s good enough for personal drills, and TiddlyWiki is after all a personal sketchbook at heart. Maybe we’ll tack on a server-side in the future to lock away the answers properly; but for now, this will do as a proof-of-concept. And besides which, most Java/Flash/Active-X/just-plain-weird corporate training tools probably hide the answers away somewhere in the client anyway. With a little ROT-13 obfuscation, we can achieve the same effect here.

And of course, there’s plenty of room for options and different question types too. This works okay as is, but many more possibilities around.

Why did I write this thing?

  • Quizzes are tied to the concept of URL Trails. It would make perfect sense for the final page of a trail to be a quiz. Or, for a longer trail, for quizzes to appear along the way.
  • I was triggered by several hours of “fun” with a mandatory training quiz which, typical of corporate training apps in any big organisation I’ve ever worked in, went out of its way to break web standards. Perhaps this here quiz plugin will be the embryo of something we can use to help improve training. Again, this relates to trails because trails have an educational flavour to them. At an organisational or project level, it’s feasible that the two would be developed as part of the same overall programme.
  • Quizzes are something I have a personal interest in.

As an aside, building plugins is so much easier with JQuery in the TiddlyWiki core, probably three times as fast …. hurrah for that!

[Updated Sep-15-2009: can reset quiz, shows number of correct options, UI enhancements, internal refactorings]

Asking for password letters in random order is not helping security

I get this every now and then from banking and other services. I appreciate the principle of challenging you on certain letters, so the entire password is never transferred. However:

  • Please add an extra line of code to sort the positions. Asking me for the 4th letter and then the 2nd letter doesn’t fit the way I think, and has zero impact on security anyway.

  • It does get difficult when I’m walking around on my mobile and I have to punch in the 8th letter of an 11-letter password.

  • It’s also fairly pointless on a SSL-secured website, where no-one should be able to see the password – if someone is in a position to sniff the password, they will probably be able to sniff it again the next few times and get your details. It’s only useful in a call centre situation, to prevent casual abuse. You may as well do what other sites do and ask for the whole password. The above screenshot is from experian, which is probably more used to call centres and has just translated their phone script into a website without thinking about the different user experience and different conventions of the web.

Apple Forgets Basic Responsibility as a Platform Owner – Flagship Apps as Demonstrators

A good thing for a platform is for applications to have consistent look-and-feel. Not just because consistency is good, but because the look-and-feel should also be a good one – one that is usable and exploits all the platform has to offer.

While style guides are helpful as references, a far more powerful tool are flagship applications. Such as MS-Word and IE in Windows or iTunes and Safari on Mac/OSX.

Apple used to know this, but they are now trademarking their own bubbles!

And so instead of using their apps as demonstrators, they have gone 180 and are now actively blocking people from using the same UI elements. So each developer must go and make their own unique bubble, leading to wasted effort – of the kind that a platform should be preventing – and, moreover, guaranteeing a messier user experience.