Archive for November 2008
Today, my colleague Paul Downey has made an impressive contribution to Osmosoft’s mission to explain by preparing a paper about TiddlyWiki for submission to the W3C Workshop on Security for Access to Device APIs from the Web. It gives an overview of TiddlyWiki for technical audiences that already know and understand the mainstream web and its underlying technologies.
Paul’s paper can be found here:
I’m loving it in lots of different ways. It’s a really solid example of what I call a “manifesto-style TiddlyWiki”, a tightly knit mesh of content that together communicates a system of belief. I like his tone, too, nicely sober and authoritative.
The challenge that Paul has taken on isn’t to be under-estimated. I’ve had the chance to talk about TiddlyWiki to many different audiences around the world, but the most unexpected reaction I encounter is from people in that same, technical audience and it is, bizarrely, outright disbelief. Picking it up in the middle of a demo, the conversation goes something like this:
Jeremy: Here I am clicking the ‘save changes’ button, and now watch as I refresh the page in the browser, and you can see that the changes that I made have been persisted to disc
Expert: Right, that’s very interesting. What serverside technology are you using? I bet it’s Java, isn’t it?
Jeremy: No, not at all. TiddlyWiki runs entirely on the client browser, and takes advantage of special privileges accorded to HTML files loaded from “file://” URIs to be able to save itself directly to disc
Expert: That’s neat. So do you use Google Gears to handle going offline?
Jeremy: Sigh, no, not quite.
And so it goes, on and on. It sounds ridiculous, but it’s happened too many times or me to avoid thinking about it. It’s seems that the idea of a standalone HTML file is sufficiently far away from many people’s experience of the web for it to be invisible to them.
The frustration for me is because it feels as though TiddlyWiki has something important to say about the different things that happen if you let people hack the web without needing server infrastructure. My experience is that you can foster some intense innovation by radically lowering the barriers to the Copy/Modify/Share cycle that is at the heart of community innovation.
“SinglePageMode” is a typically neat little TiddlyWiki plugin created by Eric Shulman. It restores the more conventional wiki behaviour of having a single page open at once, so that clicking on a link replaces the current page, rather than inserting it below, as TiddlyWiki usually does.
Eric’s plugin has been deservedly highly popular. It seems that for a significant proportion of situations/users, the default TiddlyWiki behaviour of having multiple tiddlers at once is just too complicated. Having a community plugin to ‘fix’ this is a great solution, allowing TiddlyWiki users to choose which behaviour they prefer.
But, from an interface perspective, one of the things I find troubling about the current implementation of SinglePageMode is that it rather takes away the whole point of TiddlyWiki: after all, it started out as an experiment in having multiple wiki pages at once, with a view to making it easier to refactor content between pages. It’s also frustrating to have to have two separate modes of operation, with slightly inconsistent behaviour.
I’ve given quite a lot of thought to how one might somehow unify these two modes, to give the clarity of single page mode without giving up on the ability to quickly flick between multiple open tiddlers. I just came across some sketches buried in an old virtual machine from 2006 that show one approach that still looks like it might be interesting.
When a single tiddler is displayed, it looks much like an ordinary TiddlyWiki screen:
When a tiddler link is clicked on, the new tiddler opens in front of the previous one, building up breadcrumbs as a sort of rolodex of tabs:
Then the idea was that by riffling the mouse over the breadcrumbs you’d get a popup that allowed you flick back and refer to an earlier tiddler:
I’m not sure why I drew the popup at a reduced size, I’m not sure that that’s a good idea. I’d also intended to draw a frame showing a similar popup when hovering over any tiddler link.
I took some care to try to make it possible to implement this design with minimal changes to the TiddlyWiki internal Story object, it should be possible to do most of the work with CSS. I was imagining that there might be an ‘expand’ button over near the breadcrumbs that floops the various tiddlers out to their fully expanded size, looking like an ordinary TiddlyWiki.
Although I never implemented this design, I’ve not stopped thinking about these issues, and am exploring some of them in Project Cecily.
UPDATE: There’s some further discussion on the TiddlyWiki developers group.