Tag Archives: Jeremy Ruston

The Power of Tiddly

This week’s Loose Wire Service column, a service for print publications,  is on the TiddlyWiki, a piece of software I find myself coming back to from time to time:

This isn’t for everybody, but I’ve found myself recently going back to a little itsy bitsy piece of software that turns your browser into a notebook cum database.

It’s called TiddlyWiki, and it takes the two concepts — tiddlyness, as in smallness, and Wiki, as in simple editing software — about as far as you can take them. The result: a flexible piece of software that contains both the programming needed to run the thing and the information you put it into in one file.

This is how it works. You download the software from www.tiddlywiki.com, a site run by the TiddlyWiki’s creator, Jeremy Ruston. The file itself is just an HTML file, the same as most web pages you visit.

Inside that one file is all the code you need to start your own TiddlyWiki. Once open, the file has a title, a menu on the right and a couple of basic entries — called Tiddlies, in the trade — already open.

You can then add your own entries by clicking on “New Tiddly”. You can change the title and subtitle of the page by editing the corresponding Tiddly. It’s both nerdy and intuitive: You quickly learn that it’s possible to convert plain text to bold by adding you add two apostrophes before and after the text you want emboldened.

To highlight text in yellow add two @-signs before and after the text. And so on. To edit a Tiddly just double click anywhere in its text; when you’re done, hit Control + Enter, or else click on the Done button.

The power of the TiddlyWiki is, in my view, in how you can organize your entries. You can add tags, or labels, to each entry, adding new ones on the go or from a pull down list of existing tags. You can then see at a glance what entries you’ve got with those tags. You can see your entries in chronological order, or alphabetically. Or you can search through the entries looking for specific words.

Why might you want something like this? Well, there are a number of advantages:

You have a project and you want to keep all the data in one place. Or you want to create small databases of, say, recipes or contacts for a specific project.

You don’t want to splash out for expensive database or outliner software.

You like something like EverNote, but you can never find what you’re looking for.

You crave simplicity. TiddlyWiki is not as fancy as most programs, but that doesn’t mean it’s not powerful.

You’re using both Macs and Windows computers (or Linux); TiddlyWiki works on most browsers, and of course doesn’t care what operating system it’s on.

You like trying something new, but don’t want to get a headache. Tiddly, as they say, ain’t fiddly.

You want something you can put on a USB stick and carry with you, and use on any computer without installing something.

You want to create a quick and dirty website (TiddlyWiki can be uploaded and used as a website, though it’s not overly elegant; as all the data is in one HTML file, it may slow loading the page.

You like programs that are always improving themselves; a passionate user base is always coming up with improvements and add-ons. A great way to waste an evening.

I messed around with it a couple of years back and enjoyed it, but bumped up against its limitations. My main problem was that adding too much to a TiddlyWiki makes it unwieldy. This time around, instead of adding everything to one TiddlyWiki, I made different ones for each specific project.

Keeping the entries smaller and the number of entries to 20 or so made it much easier. It got me through a tricky project, I have to say.

Downsides? Some people swear by the TiddlyWiki, but I suspect it’s the kind of thing you play with, and perhaps come back to from time to time, as the mood and need take you.

I wouldn’t recommend it for everyone either; some of us just need things to be a bit more straightforward than TiddlyWiki presently is. But for the rest of you, this is a great way to try something a bit different and see if it fits a need you have.

The Jakarta Post – The Journal of Indonesia Today

The TiddlyWiki Report, Part IV: Jeremy Ruston

This week’s WSJ.com/AWSJ column is about the TiddlyWiki (here, when it appears Friday), which I reckon is a wonderful tool and a quiet but major leap forward for interfaces, outliners and general coolness. I had a chance to chat with some of the folk most closely involved in TiddlyWikis, but sadly couldn’t use much of their material directly, so here is some of the stuff that didn’t fit.

Last, but not least, Jeremy Ruston, the man who started it all.

Jeremy Ruston: Hi Jeremy
Loose Wire: hi jeremy, thanks for getting back to me…
Jeremy Ruston: no problem, hope it’s not too late wherever you are
Loose Wire: i’d like to hear from you about the history of this, how it works under the hood, what they’re used for and where it’s going…
Jeremy Ruston: sure, where to start
Jeremy Ruston: i was originally trying to do a personal site
Jeremy Ruston: kind of wanted to blog, but acknowledged that I’m not a great writer
Jeremy Ruston: (being more of a inventor/design/coder type)
Jeremy Ruston: so, wanted something that would let me do a partwork, gradually assembling a coherent picture of the work I’m interested in, and the stuff I’ve done
Jeremy Ruston: but I wanted it to be enough like a blog that people would recognise it as one
Jeremy Ruston: anyway, i started messing around with dhtml, for the first time in years
Jeremy Ruston: and realised that actually it might be a good enough way to implement some of the wiki ideas I’ve been thinking about for a long time
Jeremy Ruston: I did the first version which was very primitive and didn’t allow saving
Jeremy Ruston: which got a bit of attention, but everyone said ‘tsk, if only it allowed saving’
Jeremy Ruston: which of course, I knew was Totally Impossible for a mere HTML file
Jeremy Ruston: which turned out to be wrong…
Jeremy Ruston: oh, and I never did get around to doing the personal site I originally envisaged
Loose Wire: interesting. basically all the code that makes the TW happen is stored in the same file as the content, right? It’s all self-contained?
Jeremy Ruston: yeah, just one file with three main chunks: html to deliver the skeleton of the layout and the content itself; css for the appearance of elements and javascript for the behaviour
Jeremy Ruston: it’s really the opposite of what computer geeks consider conventional wisdom, which would be to separate stuff neatly
Jeremy Ruston: it’s kind of like if every Word document actually incorporated a copy of Microsoft Word itself
Jeremy Ruston: but in the crazy world of the web the application is shorter than the document
Loose Wire: it
Loose Wire: ‘s an interesting twist…
Jeremy Ruston: now there’s a couple of other projects that use the same approach, but I think TiddlyWiki was the first
Loose Wire: which projects are those?
Jeremy Ruston: is the one I was thinking of
Loose Wire: how hard was all this to do?
Jeremy Ruston: Hard, I guess, but it’s the kind of thing I enjoy 🙂
Jeremy Ruston: A lot of it is actually quite routine from a programming perspective, but some bits were ridiculously hard to get right
Jeremy Ruston: for example, getting it to display properly in Internet Explorer — Firefox is easy
Jeremy Ruston: also, the code to actually do the saving was pretty complex, and the code to handle wikification (what I call turning Wiki text into proper displayed text with links etc)
Jeremy Ruston: The great thing about the internet is that it’s a great resource for finding out more about the internet… there’s masses and masses of chunks and slivers of code out there to learn from
Jeremy Ruston: hopefully tiddlywiki is now something that other people are learning from
Loose Wire: i found it interesting, too, that other tiddlywikis sprang up — the GTD one, for example — and now have been folded into the original….
Jeremy Ruston: yeah, I’ve been astounded by the reaction from the developer community
Jeremy Ruston: or rather the way that tiddlywiki has formed it’s own developer community
Jeremy Ruston: there’s something eminently hackable about JavaScript, though
Loose Wire: do you see it as part of this ‘AJAX’ resurgence?
Jeremy Ruston: Slight aside about the previous point: 15 to 20 years ago, all computers came with a BASIC interpreter; the owner was expected to do a bit of programming, or at least tinker with other people’s programs. I felt it was a shame when that era ended, but it seems that the web has ushered in a new era of accessible, hackable, available programming tools
Jeremy Ruston: As to AJAX, yes, absolutely, I think that TiddlyWiki is one of the quintessential AJAX apps. And yet, perversely, it technically fails to meet the original criteria of AJAX because it doesn’t talk to a serverside. But I think that that is a shortcoming in the definition of AJAX…
Loose Wire: have you heard back from people about how they’re using TWs? any surprises?
Jeremy Ruston: yes, astonishment usually
Jeremy Ruston: 🙂
Jeremy Ruston: I’ve heard of people really stretching it: putting about 50 times more data into it than I’d ever bothered to test, for example
Loose Wire: those would be big files, no?
Jeremy Ruston: I think a lot of the people who are actually using TiddlyWiki (as opposed to hacking the code) don’t ever publish their stuff. A key feature of tiddlywiki for them is that it’s utterly private; you don’t have to trust any shady, fly-by-night dotcom with your data
Jeremy Ruston: so there’s a huge mass of ‘dark TiddlyWikis’ that we can’t see
Jeremy Ruston: but of the ones that I can see, I’m thrilled that academics have taken to it so well – have you seen Elise Springer’s site?
Loose Wire: no…
Jeremy Ruston: (yes, putting lots and lots and lots of text into it)
Jeremy Ruston: Jeremy Ruston: there’s also a site about religion:
Jeremy Ruston: which I think is interesting because it’s the sort of densely argued manifesto that works really well in tiddlywiki
Loose Wire: Elise’s site is beautiful…
Jeremy Ruston: Yeah, she’s really dedicated to getting it how she wants it, very impressive
Jeremy Ruston: This one is interesting too: it’s about Bolivian politics
Jeremy Ruston: One thing that was definitely a surprise was the translation activity. Volunteers have gone and done translations into German, French, Dutch, Bulgarian, Chinese (traditional and mandarin), Portuguese
Jeremy Ruston: and probably others I’ve forgotten
Loose Wire: excellent… any idea of the number of folk using TW now?
Jeremy Ruston: I think it’s impossible to measure in any sensible way; people only visit the site once to get a copy, and can then use it as often as they like without me being any the wiser
Jeremy Ruston: but it’s certainly tens of thousands I’d have thought
Loose Wire: one feature that particularly attracted me was the tagging thing. it really helps propel TW into another league…
Jeremy Ruston: Yeah, it was an obvious thing to add, and does really work well
Jeremy Ruston: also a good example of a feature that I’d envisaged but got implemented first by other people
Jeremy Ruston: But I don’t think it yet scratches the surface of what’s possible with tagging
Loose Wire: what do you imagine happening there?
Jeremy Ruston: being able to ‘twist’ on a tag that you’ve used to see things that other people have tagged the same way
Jeremy Ruston: that’s something that flickr and del.icio.us do today
Jeremy Ruston: TiddlyWiki needs multi-user features before it can do that
Loose Wire: yes… but i’ve always felt tags are just as useful to the individual as the group…
Jeremy Ruston: yes indeed
Loose Wire: TW is the first i’ve seen really using that. suddenly you have a very powerful way of organising and accessing stuff.
Loose Wire: it really puts to shame most other data organisers…
Jeremy Ruston: Thanks!
Jeremy Ruston: Well, I’d like to make it easier to navigate by tags
Jeremy Ruston: and search by them
Loose Wire: jonny was saying he is working on being able to select multiple tags…
Jeremy Ruston: oh cool, that will be interesting. I’m interested in extending that to more complex things (give me everything tagged ‘jonny’ and ‘jeremy’ but not tagged ‘football’)
Jeremy Ruston: I think that the challenge with those kinds of features is the ui
Loose Wire: that would be excellent..
Loose Wire: yes…
Jeremy Ruston: I’ve aimed to give tiddlywiki a liquid interface that’s as uncluttered as possible
Loose Wire: i’ve been juggling data for a project using a TW and already the ways to get related data is beyond any other program i’ve used.
Jeremy Ruston: it’s a challenge to keep these complex features out of the way but accessible and discoverable
Jeremy Ruston: hehe that’s excellent
Jeremy Ruston: what do you think of the search? I still find it way too slow, and keep wondering about making the search results popup as a submenu that you can select from
Loose Wire: i also started thinking about how one could turn blogs themselves into databases… many of us blog, but that stuff is not all that accessible once it’s blogged..
Loose Wire: (the search idea, i agree on)
Loose Wire: TW struck me as the intersection of publisher and database.
Loose Wire: i can’t think of any other program that fills that space.
Loose Wire: and yet now we are all publishers, we need it more than ever!
Jeremy Ruston: Yes, indeed, I like the counterpoint with blogging
Jeremy Ruston: blogging seems essentially ephemeral because individual posts are often so meaningless shorn of their context, while using tiddlywiki can lead to the production of a coherent body of work, something of lasting value
Jeremy Ruston: (sorry rambling)
Loose Wire: exactly. and blogging offered us different methods of navigation, and TWs are kind of bringing that home, to one’s own data too. indeed TW is an example of not really distinguishing between public and private, offline and online data.
Loose Wire: at least in the sense of the way it’s edited and collected.
Loose Wire: now i’m rambling too.
Jeremy Ruston: yes, I like that too
Loose Wire: 🙂

Loose Wire: i guess my wishlist would include making it easier to set up a TW — maybe a desktop shortcut — and an easier way to tweak the stylesheet…
Loose Wire: perhaps some tip bubbles…
Jeremy Ruston: yeah, there’s a sizeable percentage of ‘normal people’ who I see sit in front of it: they scroll it up and down, and don’t actually click on anything, and so completely miss the point…. Thought provoking for an interface designer
Loose Wire: anyone who has ever just wanted to save some stuff they found, or keep notes in the same place, would welcome TW…
Jeremy Ruston: you’re right of course. The hackers are very vocal so I tend to neglect the more ease-of-use oriented features…

Loose Wire: finally, where do you think it might go?
Jeremy Ruston: well, I hope that in 12 months time, I’m working on it full time, and offering a really nicely polished, free, version of the current single file thing, along with some probably more commercial expanded version with multiple users, real time collaboration, spell checking and all that good stuff
Jeremy Ruston: but if I’ve learned one thing over the last 12 months, it’s to put stuff out there and see what happens
Jeremy Ruston: so I guess I’ll keep doing that 🙂
Loose Wire: how scalable is it, do you think? does it hit a limit? can you get around that?
Jeremy Ruston: tiddlywiki itself doesn’t have any (serious) inherent limits; it’s just that browsers tend to explode if you push them too far
Jeremy Ruston: so, a 10MB tiddlywiki would probably kill internet explorer
Jeremy Ruston: but yes, these problems are all get-around-able
Jeremy Ruston: fun problems to solve, actually, generally
Loose Wire: cool… well, thanks for this jeremy.

The TiddlyWiki Report, Part I: Jonny LeRoy

This week’s WSJ.com/AWSJ column is about the TiddlyWiki (here, when it appears Friday), which I reckon is a wonderful tool and a quiet but major leap forward for interfaces, outliners and general coolness. I had a chance to chat with some of the folk most closely involved in TiddlyWikis, but sadly couldn’t use much of their material directly, so here is some of the stuff that didn’t fit.

First off, an edited chat with Jonny LeRoy, a British tech consultant who offered his view on TiddlyWikis over IM:

Loose Wire: ok, thanks… i’m doing a little piece on tiddlywikis, and was intrigued to hear how you got into them, how you use them, where you think they might be of use, how they might develop etc…
Jonny LeRoy: sure. I first came across them when a colleague sent round a link. The thing that hooked me was the “install software” page which just said – “you’ve already got it”. I’ve been doing web stuff (mainly Java server side development) for quite a while and seeing the immediacy of the tiddlywiki was great. I’ve tried all sorts of tools for managing thoughts and tasks and generally end up going back to pen and paper after a while. tiddlywiki is fast and easy enough for me to keep using it. The micro-content idea is pretty interesting but I’m also pretty interested in how they slot into general progressions in the “Web 2.0”. more and more functionality can now be pushed client side – especially with Ajax and related async javascript technologies. TiddlyWiki takes this to the extreme by pushing *everything* client-side …
That does raise the problem of sharing and syncing the data, but it’s not really in essence a collaborative tool. though there’s no reason why that can’t be added on top of what’s there. Does that make some sense?
Loose Wire: it does. very well put…
Jonny LeRoy: cheers 😉
Loose Wire: 🙂 i particularly like the tagging idea, which you seem to have introduced…

Jonny LeRoy: Yup – for me when I started using tiddlywiki the main thing missing was any kind of classification. I’ve had a fair amount of experience with pretty complicated taxonomies and ontologies – particularly for managing / aggregating / syndicating content on a travel start-up I was involved in. but the simplicity of sites like delicious and flickr started to make me realise that some simple keyword tags gets you nearly everything you need. and also removes half of the issues related to category hierarchies and maintenance. particularly when your dataset isn’t massive. even when the dataset and tag list grows there are ways of “discovering” structure rather than imposing it … see flickr’s new tag clusters for a good example of this. In the good open source fashion I had a quick hack at the TW code and put some basic tagging functionality in place. A few other people were creating tag implementations at the same time, but they were more based around using tiddlers as tags ….. I was fairly keen just to keep the tags as metadata. I’m still yet to see a good online wiki that has tagging built in. for me that’s been an issue with most wikis I’ve used

Loose Wire: i get the impression that tagging is still considered a social thing, rather than tagging for oneself, as a way to commit to hierarchies, a la outliners etc?
Jonny LeRoy: that’s one of the beauties of it – though not so much in TW. the free-association you get by browsing other people’s tags is amazing. comparing what you can find through something like delicious compared to open directory projects – dmoz etc is quite interesting
Loose Wire: it is great, but i feel there’s huge potential in using tags for oneself, too?
Jonny LeRoy: yup – when you’re using them for yourself you can set your own little rules that get round some of the hierarchy problems. overloaded tags – with more than one meaning can get confusing in a social context, but personally it’s much easier to manage how you refer to things. also the ability to add tags together – so you can search on multiple tags creates an ad hoc structure.
Loose Wire: yes. i’d love to see TWs let you choose a selection of tags and then display the matches… oops, think we’re talking the same thing there…
Jonny LeRoy: yeah – I’d been meaning to put that in place, but haven’t had a moment 🙂
Loose Wire: is that going to happen? all the various TWs are now under one roof, is that right?
Jonny LeRoy: Yeah – Jeremy Ruston – who started it all off seems to be managing things reasonably well. and pulling together different versions. there was a bit of a branch with the GTDWiki which got a lot of publicity.
Loose Wire: is that a good way to go, do you think?
Jonny LeRoy: it’s a weird one, because it’s not like a traditional open source project with code checked into CVS. so versioning can be quite hard. but it’s also one of the beauties of it – anyone with a browser and a text editor can have a go.

Loose Wire: i noticed the file sizes get quite big quite quickly?
Jonny LeRoy: a lot of that is the javascript – if you’re just using it locally then you can extract that out into another file. that makes saving and reloading a bit quicker. the file will grow though with the amount of data you put in.
Loose Wire: is that tricky to do?
Jonny LeRoy: no – you just need to cut all the javascript – put it into a new file and put in an HTML tag referencing it
Loose Wire: how much stuff could one store without it getting unwieldy?
Jonny LeRoy: That really depends on your PC / browser combo – how quickly it can parse stuff.  if you were going to want to store really large amounts of data then you might want to look at ways of having “modules” that load separately.

Loose Wire: is it relatively easy to turn a TW into a website/page?
Jonny LeRoy: yeah – couldn’t be simpler – upload the file to a webserver … and er … that’s it. it does rely on people having javascript enabled – but 99% do. one issue is that since all the internal links are javascript search engines like google won’t follow them. but google will read the whole text of the page if it indexes you

Loose Wire: where do you think this TW thing could go? do you see a future for it? or is it going to be overtaken by something else?
Jonny LeRoy: Definitely – the company I’m working at right now (ThoughtWorks) have used it for a major UK company . they used it for a simple handbook for new people
Loose Wire: oh really? excellent!
Jonny LeRoy: really simple to use and quick to navigate – it got pretty good feedback. I see more people being likely to use it personally on their own pcs though. I use it to keep track of things I’ve got to do or have done. the dated history bit is really useful to work out what was going on a couple of weeks ago.
Loose Wire: the timeline thing?
Jonny LeRoy: yup
Jonny LeRoy: I can also see new TW like products coming out for managing tasks better – an equivalent of tadalist on the client side. beyond that it’s a good thought experiment in how datadriven sites can work. the server can push the data in some structured format to the browser and then the browser uses TW like technology to work out how to render it.
Loose Wire: yes. … [however] i feel a lot of people like to keep their stuff on their own pc (or other device, USB drive, whatever). not all of us are always online….
Jonny LeRoy: exactly – the wiki-on-a-stick idea is great. you can stick firefox and your wiki on the usb key and off you go
Loose Wire: yes, very cool…
Jonny LeRoy: The next step is then to have the option to do some background syncing to a server when you end up online
Loose Wire: do you think more complex formatting, layout and other tasks could be done? and could these things be synced with portable devices?
Jonny LeRoy: the portable devices question is interesting – it really depends on how much javascript they’ve got on their browsers. there’s no reason why it’s not possible, but there are more vagaries of how the functionality is handled
Loose Wire: javascript is the key to all this, i guess….
Jonny LeRoy: it’s a bit like the web in the mid 90s where you didn’t have a clue what people’s browsers would support. it’s actually having a bit of a comeback. many people just see it as a little glue language to stick things together or move things around ….. but it’s actually really powerful – I discovered more of it’s dynamic possibilities while playing with TW. the best thing about it for me is that anyone who’s got a modern browser can run javascript – there’s no extra install.

Loose Wire: yes, making the browser an editor is a wonderful thing… what sort of things do you think we might see with it?
Jonny LeRoy: I’m not sure what new thing we’ll see, but we’ll definitely see the things we use the browser for already getting much better and smoother. the user interaction is starting to become more like working on a locally installed application.

Thanks, Jonny.

The Power Of Wikis, The Power Of Tags

I’m really getting into these client-side wikis. This one is especially cool — TiddlyTagWiki – Micro-content with the power of tags … — and is a great example of using tags on one’s own computer to tag one’s private content:

Welcome to TiddlyTagWiki – an adaptation of Jeremy Ruston’s TiddlyWiki. It’s a simple, self-contained, client-side, personal publishing engine. It’s a single web page containing all the content you create and the logic to link it all together. This makes it fast and portable.

The addition of TiddlyTags allows you greater control over how you group together your chunks of MicroContent.

Definitely worth a play.