Why every programmer should have a Tiddlywiki

A year ago, my good friend Casey Watson suggested that I try using a personal wiki to keep track of my programming knowledge. This turned out to be great advice, so I’ll be sharing how I use one and how to start your own.

Why would a personal wiki make you productive?

In a phrase: to keep a your web of knowledge accessible from one place. You need a place to put your meeting agenda, important project/server links, and even a to-do or waiting-for list. Not only can you store a lot, you can tag it, search it and otherwise customize the crap out of Tiddlywiki.

Eric's TiddlywikiYou are not going to be able to remember everything you need, keeping links and information in email folders just doesn’t cut it. You can easily keep track of your meeting notes, DB schema diagrams, bug lists, blah blah blah…

In other news, great programmers Venkat Subramaniam and Mark Richards called Tiddlywiki their favorite technical tool. Favorite. As in more valuable than their IDE.

Roll your own… now!

It’s really stinkin’ easy! Just grab my favorite flavor of Tiddlywiki, d-cubed, and save it somewhere you can access easily. The first time you use it your browser will ask you to confirm that you can edit your HTML file through it (standard security check).

You will probably want to theme it so it fits you, and I found a bunch of nice themes at TiddlyThemes. It’s just CSS and JavaScript anyway, dowhatyouwant! whatyouwant!!

Once you have customized your wiki’s look-and-feel etc., it’s time to grab some slick plugins. Here are a few I use and recommend:

To install a plugin, just make a new Tiddler (wiki page) with the same title, content, and tags. So easy!

Next steps

I recommend starting by creating tiddlers for all your projects and just putting links to other resources in there. After awhile, copy bits of emails you need to remember to relevant places so you can search it anytime. Baby steps, but stick to it. The setup cost will be returned in cases (as in the beer others will buy you for rocking)!

You’re now well on your way to wiki-fying yourself. Share your experiences and have fun!

If you liked this post, please help me share it

Responses (29)

  1. Eric,

    I have been doing this for quite some time, and it works great! The other great thing is that you can “separate your concerns” as it were, by placing different topics in different directories/wiki’s and then you can link related topics together by placing links between individual wiki’s when topics overlap.

    Usually when I mention this to my co-workers, they just don’t get it…I wish I could explain it to them better. Any suggestions?

    - Andy

  2. @Andy:
    First things first – does your work group have a wiki setup? If so, they should be able to see the benefit of sharing information on a wiki. If not, consider setting up a wiki for your group just to share status or something. Build from there.

    One way that I advocate the use of my wiki is by using it in front of my co-workers. Many of them will mention how cool it is that I 1)Had the info they needed etc. and 2)How quickly I got to it.

    If they don’t get the whole wiki linking thing, tell them a wiki is like your own personal website, just for you. You can put whatever you want on it easily.

    Hope that helps.

  3. @Eric Where I work we have sort of an anti-wiki. It keeps track of our history for each of our clients, and although it does work over the network, it is not web-based.

    I did however seem to peek the interest of one of my co-workers with my wiki (off-line tiddlywiki) and he said he would maybe like to use one to keep track of client website updates.

    (I’m in PA, we’re probably about 10 years behind you guys in CO…depending on where you work around here) :-)

  4. @Andy:
    Hmmm. I can see how it would be tough to get a real wiki going at work.

    There must hopefully be other bits of information you can share with co-workers. We love sharing links to development tools, code snippets, class diagrams, and programming practices with ours.

    To your manager it sounds like duplicated effort, so I encourage you to start your own wiki that’s accessible on the intranet (or internet) for yourself and point your co-workers to it. This is actually how I started the wiki system for my last job.

    Good luck!

  5. Justin says:

    Doesn’t work at all for me on OS X 10.5.5 Firefox or safari and it doesn’t seem compelling enough to work out why, have fun with it if you can.

  6. @Justin:
    Interesting. So it doesn’t work on a Mac? I don’t own one so I can’t find out.

    @Everyone:
    Have you guys had trouble with this on OS X? If so, how did you fix it?

  7. fs111 says:

    Great advice, but did you know that there is a free hosting service for your own tiddlywiki called http://tiddlyspot.com/ It’s pretty cool b/c you don’t have to carry it around on a USB stick and can access from everyones PC. Check it out!

  8. Kristofer H says:

    Nice to see TiddlyWiki getting noticed, it’s a truly great tool! Used to document solutions and such in word documents but switched to tiddlywiki about a year ago and just keep finding new usefull ways of using it. One of the biggest pros is the searchability + the simplicity.

    I have also managed to get a whole bunch of ppl at work using it, and they keep coming back telling me how much they love it! Started by printing pdf’s (containing the wiki header) directly from my tiddlers which I sent out when ppl asked for information that I had already documented for personal use. This got people interested, wanting to know more.

    My favorite plugins are: IntelliTagger, YourSearch, and SyntaxHighlighter.

  9. Bob teh Pointy Bosse's trainee says:

    I am a Project Manager.
    On my past projects I have been keeping one huge Word document as a project journal. It grew in form and function to the degree I had buttons and even links to MS-Project report fields to track progress.

    The I found TiddlyWiki and now I keep all my Project Knowledge in that.

  10. David says:

    Another alternative is Wiki on A Stick. See this Wiki on a stick tutorial.

    I’ve been using it at work for over a year and have built up 250 pages of work notes.

  11. pokiri says:

    nice to have a wikki like this.great yaar

  12. Ian Purton says:

    I use Tiddly Backpack which is a fusion of tiddly wiki and backpack. It’s a bit less garish looking and I’ve store pretty much everything I do in terms of programming on there.

  13. I didn’t really like the quirkyness of TiddlyWiki myself – in fact, i pretty much preferred something like Backpack, i.e. hosted on a server. However, Backpack costs money and i tend not to entrust my data to third parties.

    So i made my own. ala RuckSack

  14. [...] Why every programmer should have a Tiddlywiki Eric Wendelin’s Blog (tags: programming) [...]

  15. @fs111:
    I found out this morning from Andrew. Great tip!

    @Kristofer:
    I’ll give those plugins a shot. Thanks!

  16. Wilcox says:

    Programmer wikis are a great idea at work although letting your colleagues see your wiki can put you at a disadvantage and reduce your job security. As for TiddlyWiki, it’s a little too fiddly. A much more user-friendly wiki is Jotspot – recently updated to Google Sites – which has the advantage of being accessible via your gmail account.

  17. @Wilcox:
    It is an evil notion to keep information only to yourself for job security. I like Jotspot too, but I think Sun would rather I keep these things totally under my control. It works for some, but not others I guess.

    • Guillermo says:

      Eric, Great post on Tiddlywiki. I agree with you and I already use a Tiddlywiki. Also, I enjoy your blog.

      I have a question. Why is it an ‘evil notion to keep information only to yourself for job security’? Aren’t most people motivated primarily by self-interest?

      Don’t you believe in evolution? Isn’t it true that the scientists tell us that existence consists of competition for mates and resources between individuals and that only the fittest survive? In which case it seems reasonable for individuals to take action to assure their survival, doesn’t it?

      How do you define evil?

      I look forward to your answers. Thanks for your blog.

      • I believe it is wrong to hide INFORMATION from your co-workers. It intentionally impedes team progress only to give the offender the benefit of assumed job security.

        Rather, it is SKILLS that one should use and obtain for job security. In that way, you stay uniquely valuable while giving others the tools they need to work better.

        In this way, I would define evil as things that are intended to benefit one person at others’ expense. I’m sure you can argue my point with regards to money, but I consider that a different beast entirely.

  18. dj says:

    I use asciidoc. The input’s a plain text file, and the output can be html, pdf, docbook. It supports syntax highlighting and for math, asciimath and latexmath. So it works for general knowledge, as well as disaster recovery doc where all you may have is nano, vi, or cat.

  19. wwwald says:

    I’ve used TiddlyWiki a few years back, but I agree with some previous comments that it is a bit quirky at times.

    I’ve been using WikidPad ever since. Python-based, easily customizable, actively developed, maybe a bit technical to set up sometimes but that’s just the way I like it.

  20. floor jack says:

    This is the first time I commented here and I should say that you share genuine, and quality information for bloggers! Great job.
    p.s. You have a very good template for your blog. Where did you find it?

  21. Mark says:

    Eric, great site and good article. It partially answered some questions I had, but not enough to get me started. Maybe you can clarify some things?

    1. Do you post your tiddly wiki online? Would love to see how it’s implemented.
    2. I’m trying to find a location to post various bits of information such as a recipe database and reviews of restaurants that I go to. I don’t really plan on posting these publicly, just want something that I can use tags with and easily search. I’m currently using a blog, but I’m trying to figure out if a wiki would suit me better.

    Thanks!

    • I don’t post my tiddlywiki online, since it might contain work-related stuff and Sun wouldn’t very much like that. ;)

      Basically I use d-cubed referenced in my post, creating a Project for each code project and reference tiddlers tagged with searchable bits. Each project has an associated TODO list, that is easily added to.

      A wiki would definitely serve the purpose of recipe DB or to keep restaurant reviews. The 4 best benefits of a wiki here would be:
      - Ease of editing and backup (it’s just one file)
      - Search is quicker, you don’t have to Ajax anything up, it’s all local so you can get to things faster.
      - Just like a blog, you can tag things and then search on a tag, or open up all “tiddlers” for a tag.
      - TiddlyWiki has a Journal feature that you could use in addition to just tagging and tiddlers.

      I hope that answers your questions. My best advice is to give it a shot for a few hours and decide you like it.

      • Mark says:

        Thanks Eric. I can definitely see the potential and your website inspired me to learn more about it. I think it’s a matter of finding the right template to use at this point. I do like D3 for task related stuff though.

Leave a Reply