Technomancer tools: Tiddlywiki

23 June 2017

I've been promising myself that I'd do a series of articles about tools that I've incorporated into my exocortex over the years, and now's as good a time as any to start.  Rather than jump right into the crunchy stuff I thought I'd start with something that's fairly simple to use, straightforward, and endlessly useful for many purposes - a wiki.

Usually, when somebody brings up the topic of wikis one either immediately thinks of Wikipedia or one of the godsawful corporate wikis that one might be forced to use on a daily basis.  And you're not that off the mark, because ultimately they're websites that let one or more people create, modify, and delete articles about just about anything one might be inclined to by using only a web browser.  Usually you need to set up or be given an account to log into them because wiki spam is to this day a horrendous problem to fight (I've had to do it as parts of previous jobs, and I wouldn't wish it on my worst enemy).  If you've been around a while, when you think of having a wiki you might think of setting up something like WikiWikiWeb or Mediawiki, which also means setting up a server, a database, web server software, the wiki software, configuring everything... and unless you have a big, important project that necessitates it, it's kind of overkill and you go right back to a text file on your desktop.  And I don't blame you.

There are other options out there that require much less in the way of overhead that are also nicer than the ubiquitous notes.txt file.  For the past couple of years (since 2012.ev at least) I've been using a personal wiki called Tiddlywiki for most of my projects which requires just a fairly modern web browser (if you're using Internet Explorer you need to be running IE 10 or later) and some room on your desktop for another file.

Tiddlywiki is a fully featured personal wiki that is implemented as a self-modifying HTML page.  All you need to do is download and save it somewhere; your desktop is perfectly fine.  Downloading it is little more than saving the page while viewing the website - control+S, alt+F and save, command+S, what have you.  That's all it takes.  This gives you the full Tiddlywiki package with all the documentation.  Backing up a Tiddlywiki is as easy as copying it to a flash drive or a storage provider like Dropbox and setting up a new one is really no different.  Here's the neat thing about Tiddlywiki: It doesn't need a database of any kind because the page rewrites itself.  When you save a copy by clicking the checkmark icon in the upper-right corner (when you edit a tiddler it'll turn bright red) your browser will ask you where to save it to and what name to give it.  I like to add numbers to the filename that increase monotonically (00, 01, 02, and so forth).  Now, the gotcha: Later on, when you go back to open your wiki, you want to open the latest copy of the file because that's where all of your changes are.  I do not recommend saving over your original file over and over because some operating systems don't handle this well and will corrupt the file.  Just save sequentially.  My workflow goes like this:

  • Do stuff.
  • Save Tiddlywiki with the next higher number in the filename.
  • Finish doing stuff.
  • Rename wiki.html wiki.html.old
  • Rename wiki.html.highest-number wiki.html
  • Copy wiki.html into project directory.
  • Commit changes, including new version of wiki.html.

As for what I use Tiddlywiki for, I've lost count of the number of instances I have.  For every major software development project I have on deck I have a Tiddlywiki checked into version control along with the source code.  I also use it at work to make notes on everything I have to do, because every time I start a new job I have to learn whole environments from scratch as well as whatever technologies I've never seen before.  I've been using a Tiddlywiki to organize my exocortex project since I don't know when, from weird ideas to links to things that I want to check out to documentation on every construct and bot I have to checklists for upgrade and maintenance procedures (it worked at NASA).

Creating new entries on the wiki, called tiddlers is done by clicking the plus button in the toolbar on the right-hand side.  The page will alter to show a blank entry.  Yay.  Enter a title and start typing in it.  If you decide to use the tagging functionality to further organize your data (and if you do, please use a consistent and sane tagging system to save your sanity!) enter your tags one at a time in the "tag name" field, clicking the "add" button after each one.  Click the checkmark icon at the top of the tiddler and the editor will turn into a box containing you notes.  Now click the checkmark icon on the toolbar at the far right, and your browser will ask you where to save the file.  Pick a location and save it.

This is all well and good but there's a lot more that we can do with text - bold, italic, hyperlinks to websites, even links to other tiddlers.  Go back to the tiddler you just created and click the pencil icon to edit it again.  Marking up text is as easy as highlighting it with the mouse (click and drag) and clicking one of the boxes on the tiddler's toolbar, Bold, Italic, Strikethrough, Underline, and so forth.  To add a link to another tiddler in your wiki, highlight the text and click on the button that looks like chain links.  It'll open a popup that says "Create wikitext link" with a little searchbox.  Type a few letters of the title of the tiddler you want to link to and as you type it'll show you a list of possible tiddlers you mean.  Click on one of them and you'll see the highlight change into wiki markup: [[This is your test link|HelloThere]]

You can create links to other websites the same way.  Type the word "Google" into your new tiddler, highlight it with the cursor, and hit the chainlink button.  Now type the URL to Google in that little search window:

Click on the arrow button next to the search window, it looks a little like the fast-forward button.  You'll see the highlight change into wiki markup again: [[Google|]]

Click the checkmark on the tiddler to save it again.  To close a tiddler, click the X icon at the top of a tiddler to get it out of your way.

I think I've given you enough information to get started with Tiddlywiki.  Just know that if you're not sure what something does, hover the mouse cursor over it for a few seconds and you'll see a popup describing it.  You can also access the online help built into Tiddlywiki by clicking the "Working with TiddlyWiki" link on the far right-hand side of the page and it'll open a tiddler containing links to parts of the documentation.  I strongly suggest starting with "The First Rule of Using TiddlyWiki" and wandering around in the wiki from there.  If it helps, remember that this is something that you can and should play around with.  There is nothing that says that you can't have a good time while learning something new, and in fact you absolutely should.  If you need it, I give you license to experiment with Tiddlywiki, make mistakes, and try new things with it.  The most that you'll lose is an afternoon while trying new things.

As it turns out there are quite a few fun things you can do with Tiddlywiki.  You can use it to

  • Keep a journal.
  • Keep notes for a big project you're working on, like a thesis.
  • Keep notes for a book you're writing (or write your book in it).
  • Keep track of all the API keys you use (I'm up to 320 these days).
  • Write a nonlinear story.
  • Write a game for people to play.
  • Keep track of the health and dietary requirements of your friends and family (literally a lifesaver in some cases).
  • Build an entire website with it by uploading it to a hosting provider.
    • People can download your entire website by saving the page.
    • People cannot edit your website because Tiddlywiki only lets you edit a local copy and not the one on the server!

I think I've given you enough to work with.  If you think Tiddlywiki will make a useful tool, by all means grab a copy and play around with it a little.  I think you might find it useful.