9 ms·
Why every programmer should have a Tiddlywiki
- shaggyfrog 15y agoUsed to use a wiki (MediaWiki) to track source material for a book with another collaborator. Worked mostly fine, except for when the DB crashed. I remember that it was hard to extract data out of it. Mainly I've kept most of my programming notes, records, todos, research and so on in flat text files. They are easy to view, edit, backup, exchange, copy from, and version. For my use cases, I find it a more appealing technical solution to a wiki, which requires infrastructure to back it. If someone could come up with a git/wiki hybrid, that would be interesting.
- pessimizer 15y agoJust to recommend something that people swear by, but I'm just getting around to trying out - orgmode on emacs (orgmode.org). Super-sophisticated organizer using text files. Source control can be used so you can get to the current version of the files wherever you are, and it has HTML export.
- mxavier 15y agohttp://gitit.net/ http://gitit.net/ uses git as the backend, though you still do your editing in the browser. I don't know if it is possible to edit the files directly, though.
- lda 15y agoIt is. You can also pull and push to a remote repo just like any other git project.
- cpettitt 15y agohttp://gitit.net/ http://gitit.net/ might be exactly what you're looking for. It's a wiki that uses git for history.
- gwern 15y agoOr Darcs or Mercurial. (I use Darcs.)
- baddox 15y agoYou can use a plain-text format like org-mode, and commit using git, although for something like that I just use dropbox and trust its syncing. I'm not convinced I would benefit from the full hyperlinked format a wiki would provide, since it would require a concerted effort to organize things well. I usually just throw crap into text files and use grep to find stuff later.
- keithpeter 15y agoYup, the text files are in a folder in dropbox when they are not associated with other data directly. http://onethingwell.org/post/457674798/a-poor-mans-notational-velocity http://onethingwell.org/post/457674798/a-poor-mans-notationa... I'm using a slightly hacked version of this on the main PC
- zaphoyd 15y agoDokuWiki is a nice compromise between the two. Instead of using a database it is backed by human-readable flat files. It'll run on a basic shared hosting account (or your home machine) without any setup other than dropping the files into a web accessible directory. Benefit over pure flat file is some basic formatting and links between pages.
- smogzer 15y agoI also use a dokuwiki installation. It has lots of plugins like rendering to openoffice, pdf, presentation (s5 system). It has access control lists, code formatting, a hierarchical document system, it is very intuitive to use also. It needs php but no database.
- icebraining 15y ago>If someone could come up with a git/wiki hybrid, that would be interesting. https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools#Wikis.2C_blogs.2C_etc https://git.wiki.kernel.org/index.php/Interfaces,_frontends,....
- caustic 15y agoI put my TiddlyWiki files in a DropBox folder. I think something as heavyweight as git backend would be overkill for such a simple task.
- dekz 15y agoHeavyweight git backend? Care to expand on that?
- shaggyfrog 15y agoI don't understand how git is a backend at all; I can manipulate all of the data (text files) without needing git at all. Compare with a wiki, which requires some sort of backend to work with any of its data. When I use git in this sense, I'm talking mostly about version control and backup.
- darklajid 15y agoYou prefer text files to - a text file with the extension .html? There should be no infrastructure requirements as far as I can tell (just downloaded it, gave it a spin). It's a single file, just like your current stuff. Granted, I don't know about the possibilities to recover data in cause of trouble yet, but you need nothing but a browser and can share/sync it just like your current system.
- isaach 15y agoto be fair, the whole point about Tiddlywiki (the subject of this article) is that it doesn't require any infrastructure to back it.
- nikolaplejic 15y agoDepending on your text editor of choice, vimwiki (https://code.google.com/p/vimwiki/ https://code.google.com/p/vimwiki/) could be what you're looking for. It stores all data in plain text files which can easily be versioned in your VCS of choice and/or stored in a Dropbox folder. I've been using it for a while now, works like a charm.
- cmelbye 15y agoGollum[1] is really nice for that. It power's GitHub's wiki feature. All pages are in Git, and it supports several markup languages including MediaWiki but also Markdown, Textile, etc. Nice, clean interface, nice editing toolbar. Open source. Just clone the git repository where your pages are and run the "gollum" command to start up the server. 1: https://github.com/github/gollum https://github.com/github/gollum
- wannesm 15y agoI have quite some math in my notes and like Gollum also for its integration with MathJax. I prefer the txt-based approach but a lot of math is more digestible when typeset properly so I switch between the txt and browser view. (This is of course applicable to any txt-to-html based approach)
- lukeschlather 15y agoI've played around a bit with sputnik and its Git plugin a bit. It requires a webserver and a bit of configuration, but it stores its stuff in straight markdown. http://sputnik.freewisdom.org/ http://sputnik.freewisdom.org/
- carterschonwald 15y agocheck out gitit, its a wiki tool that lets you version back stuff with any of git, darcs, or mercurial http://gitit.net/ http://gitit.net/
- flarg 15y agoI use Zim Desktop Wiki - more reliable than Tiddlywiki, no need for a browser, version control
- nikhilgk 15y agoAnother user of Zim Desktop Wiki. Almost as simple as notepad, stores as txt files, built in todos and calendars and plugin support. I just store the files in my Dropbox folder, that way I can get to the files even when I do not have zim installed.
- aashay 15y agoI find Evernote/Simplenote more effective for brain dumps. Evernote is especially useful for storing diagrams and photos of whiteboard diagrams.
- dfischer 15y agoI second this. I use Evernote for exactly this and more because of the lovely filetype support (images, audio, etc).
- jrmoran 15y agoWhile I prefer plain text in markdown, sometimes I store screenshots of code in Evernote to keep as as a reference about how I solved a problem. Its image indexing capabilities and mobile apps allow me to quickly search for something ubiquitously. http://i.imgur.com/gporh.png http://i.imgur.com/gporh.png
- detour 15y agoI use Workflowy to do this stuff.
- mindstab 15y agommm workflowy I use for lists of tasks, but for notes I use tomboy (a gnome desktop wikilike program). They both have different uses and are suited to storing slightly different information lists != notes
- hsmyers 15y agoTook a nibble sometime back and was surprised by how well it did what it promised---that however was the problem. Hard to adapt to someone else's idea of a good time. I found it easier to revert to previous home grown methods and madness...
- rshm 15y agoi use .txt
- gaving 15y agoPersonally use github's gollum: https://github.com/github/gollum https://github.com/github/gollum which is pretty awesome and git-backed. Allows you to do all your wiki pages in markdown and a sleugh of other markup formats. Plus, did I mention git backed?!
- gurraman 15y agoI write my notes in markdown and keep them in a git repository. A simple hook generates a collection of html documents that I host on my private server for reading while commuting.
- kabdib 15y agoAnother vote for .txt files. Easy to source-control and merge, easy to find stuff. I can't help but think that someone, somewhere has a bloated XML-based API for doing this, probably requiring a server running a couple hundred megabytes worth of Java-based back-end. I'm old fashioned. I don't anticipate a vanilla text file going out of fashion any time in the next hundred years or so.
- mitjak 15y agoAnother vote. Easily editable, searchable via Spotlight or similar solutions; easy to present in a formatted way especially if you keep notes in Markdown; easy to edit on the go with something like PlainText (http://www.hogbaysoftware.com/products/plaintext http://www.hogbaysoftware.com/products/plaintext); and, of course, easy to have available anywhere with Dropbox.
- cmelbye 15y agoSounds like Confluence (http://www.atlassian.com/software/confluence/ http://www.atlassian.com/software/confluence/). I wish it required a server running only a couple hundred megabytes of RAM.
- caustic 15y agoTiddlyWiki is a single self-contained, self-modifying HTML file that does not require any server whatsoever. Installing it is as simple as downloading initial template file to your disk. Being text file, it is searchable, mergeable, etc. Copy it on a USB stick, put it in a dropbox folder and you got your backups. But don't get fooled by the apparent simplicity, it is a full blown wiki, with themes and plugins, if you want them.
- follower 15y agoFor a number of years I used the single file Python wiki pwyky (http://infomesh.net/pwyky/ http://infomesh.net/pwyky/) running on a server to serve as a personal lab notebook. I added general project notes, links to relevant resources and a chronological log of projects. The biggest benefits for me were: * keep track of multiple projects; * reduce overhead of switching between projects. There was, however, also a benefit for the wider community as well, because all of the pages were public--even the in-progress projects--people could make use of the knowledge I'd found so far, even if the project itself wasn't (ever :)) entirely documented. When the server hosting my wiki, err, disappeared, I decided to create a service that would provide me the benefits I'd found and also make them available to other developers. Labradoc is the result: * http://www.labradoc.com/ With Labradoc you can: * make general project notes with Markdown formatting; * keep a chronological log of project progress. I posted a Show HN a couple of months ago: http://news.ycombinator.com/item?id=2669425 http://news.ycombinator.com/item?id=2669425 Here's my own project list: * http://www.labradoc.com/i/follower If you don't already keep a project log I encourage you to do so. If you already keep a project log I encourage you to make more of it public (it's okay, the people that judge you badly for in-progress hacks you don't want to work with anyway :) ). In either case, try out Labradoc and see how it suits your workflow.
- xbryanx 15y agoI'm a big fan of using Notational Velocity for just these same reasons - http://notational.net/ http://notational.net/
- jsulak 15y agoNotational Velocity is great. Just point it to a dropbox folder and set it to use plain text files and you're set with syncing. There's even an equivalent program for Windows - ResophNotes http://www.resoph.com/ResophNotes/Welcome.html http://www.resoph.com/ResophNotes/Welcome.html.
- tron_carter 15y agoRight, plaintext in dropbox? <tinfoil_hat> what about local encryption? saving personal notes in plaintext files...</tinfoil_hat>
- katieben 15y agoI use MediaWiki now, I love it. It's free, and has really helped my organization. I use it for everything - passwords, API keys, links, random code snippets, etc. It's better than a text file to me, because both the structure and formatting ability encourages properly organizing data. Though, it's most important to just have SOME well-greased system, no matter what the platform. If it's a text file that does it for you, great. If you spend 10 minutes trying to find a password - time to get a system.
- mhb 15y agoGarrett Lisi's An Exceptionally Simple Theory of Everything TiddlyWiki: http://deferentialgeometry.org/ http://deferentialgeometry.org/
- zachsnow 15y agoHere's a vote for Instiki (http://instiki.org http://instiki.org), a super simple wiki clone written in Ruby (that's pretty straightforward to hack on, which is a pretty important consideration when using wikis for 'non-traditional' purposes).
- rwl4 15y agoThat site has been spammed to hell. ;-)
- runjake 15y agoI find Tiddlywiki extremely cumbersome and awkward. Instead, I use Simplenote; Flick Note on my Android device, Resophnotes and SyncPad for Chrome on my PC.
- kalid 15y agoFor personal notes I like Notational Velocity (http://notational.net/ http://notational.net/), saved as plain text files in my DropBox, and linked with SimpleNote (http://simplenoteapp.com/ http://simplenoteapp.com/) for iPhone syncing.
- anotherjesse 15y agoI use this method - except I use a fork called nvalt - http://brettterpstra.com/project/nvalt/ http://brettterpstra.com/project/nvalt/ - since text files via dropbox & simplenote. The fork has better markdown support (and a few other things I forget) I map (cmd)(enter) as the global hotkey to bring nvalt to the foreground.
- carlosrr 15y agoI like nvALT (http://brettterpstra.com/project/nvalt/ http://brettterpstra.com/project/nvalt/) as a replacement for notational velocity. It is a fork of NV that adds many features. TODO list, fullscreen and markdown support are amongst the ones I use the most.
- andypants 15y agoNotational Velocity looks pretty cool, but is there an similar alternative for Windows?
- andos 15y agoYes, ResophNotes. It's not just similar, it's a clone: http://www.resoph.com/ResophNotes http://www.resoph.com/ResophNotes
- _corbett 15y agoI worked for a year at a company and training two people to do my job from a stack of my personal notebooks and insider knowledge was a nightmare. After that I decided to keep a personal wiki which was easily searchable. Having gone the .txt route in the past and found it wanting, I decided on the next best thing and went with a Tiddlywiki. I document all processes I develop and additionally keep a journal every day, and one at a project level. It has more than once saved my butt working on multiple projects and has made me a better manager. I finally graduated from a Tiddlywiki as I ended up wanting to collaborate on entries far too often. A year into my wiki experiment I switched to MediaWiki and haven't looked back as I can simply add collaborators and more transparently keep track of contributions. For others wanting to transition I made a little conversion script here: http://www.itp.uzh.ch/~corbett/projects/code/tiddlywiki_to_mediawiki.py http://www.itp.uzh.ch/~corbett/projects/code/tiddlywiki_to_m... Tl;dr Keeping a wiki as a developer: ~best decision ever.
- invaders 15y agoI would like to recommend this freeware lightweight structured text file editor. Definite upgrade over plain .txt files yet still extremely simple in every way. No browser/3rd party tool involvement needed. Its file format is human readable for the most part. It supports all kinds of links in text: local, network files, internal pages (for wiki emulation). You can drag and drop links from web browser too. http://www.horstmuc.de/wmem.htm http://www.horstmuc.de/wmem.htm I never stopped using this program since I found it several years ago.
- andos 15y agoFor years I used a similar program called KeyNote. It had an absurd amount of text tricks up its sleeve and everything was accessible via keyboard shortcuts. Most people would cringe at its late 90s GUI (it's Borland Delphi!), but after hiding a couple toolbars and palettes, it became quite the handsome app. http://tranglos.com/free/keynote.html http://tranglos.com/free/keynote.html Unfortunately it's Windows-only. Now I only work on Linux and Mac and the only software that approaches it's level of usability is Notational Velocity.
- mhd 15y agoPersonally I'm using Dropbox for stuff like this, using PlainText on iOS devices, Notational Velocity (well, NvAlt) on my Mac and increasingly [Deft](http://jblevins.org/projects/deft/ http://jblevins.org/projects/deft/) from within Emacs. I know, there's Org Mode, but I'm more a free-form guy, same reason why I never used one of those monstrously popular GTD applications…
- endlessvoid94 15y agoI'm hoping Asana largely solves these problems. I've been using it for about a week, just for personal projects and my work tasks, and it works wonderfully. I can put links in comments and descriptions and easily reference them later, in a really usable way.
- steve-howard 15y agoOneNote (part of Office since, I think, 2007) is actually great for keeping structured notes on meetings, projects, etc. I know a lot of programmers don't run Windows, but if you're not fazed by letting Microsoft handle the details (i.e. your stuff gets put on SkyDrive under a Live account), it's not a bad way to go. I set it up on my work machine after I'd been running it on my home computer for a while, and I was pleasantly surprised at how easily it loaded the notes I've had from past projects. Disclosure: Microsoft intern (in a completely different division, and I've been using it for longer than I've been here). My opinions are mine. :)
- barrkel 15y agoI spent a day a couple of years ago writing an app to solve this kind of problem, and more. File format is plain text files stored in directories. Every directory becomes a tab; every file becomes an entry, with the first line in every file being its title. Along with plain text files, .log files are kept; these keep a log of every edit to the .txt file. Nothing is ever deleted. No edits are ever lost; the whole undo stack is always there, and if you undo to a particular point and edit it, it just becomes a new revision on top of the old undo stack. There is no save / load - the app uses the directory it was started from, and saves when no edits have occurred for 5 seconds. It's a combination of notepad, brainstorming log, todo list, and general notes. I keep it in sync across multiple machines with dropbox.
- fernandotakai 15y agoAnd you could share this with everyone!
- barrkel 15y agoDownsides to sharing: it's written in Winforms on .NET (though I expect it would work with Mono just fine); the UI is minimal to reduce clutter, and relies primarily on shortcuts: Alt+Left/Right to select "page" (= text file in directory) - pages are sorted in order of last edit; Alt+Up/Down to select revision (aka undo / redo / playback); middle-click mouse to paste if nothing is selected, or to copy if something is; and some searching etc. Wrapping it all up nicely to share it, document it etc. would take at least another day, but I have many other things on my plate at the moment...
- ptn 15y agoMy very first webapp (now lost) used a similar idea. I wrote a web text editor in plain CGI with Python to allow users to create and edit an unlimited number of files. What the user saw as files in the UI were directories in my FS that contained one file for every revision, with the filename encoding the date and time of the edit; also, there was a symlink called "current" that pointed to the last revision, so I didn't need to parse the filenames to find out which version to show. That was when I learned that Linux's FS is reliable, secure and just all-around awesome.
- maeon3 15y agoI've been keeping a wikipedia on myself, _everything_ about me and who I am, what I've done and who I want to be in a wiki for the last 4 years. It has been the most illuminating thing I've ever done, and I'm so happy I took the plunge that first day. Everything is in it, taxes, dental, computers, girlfriends, projects, outcomes, desires, todo, and thousands of other categories. Looking back on my life through the wikipedia, I see a very different person than my own memory remembers. You'd be astonished how much stuff your brain removes for lack of use. I just use bluefish editor with basic html files. I've got hotkeys to make templates and. The root node is my full name, even the universe itself falls under that category, because the only way I know the universe exists is through my observations. The most gratifying part is the page outlining my geneology, I have information documented about my DNA line going up 3 levels, and if you make a point to get really detailed information on your parents, grand parents and great grand parents (biological) You'll see health problems and DNA related hardware issues. I discovered programmers and a certain abilities/disabilities run in my mother's side, I'm a programmer. With enough analysis I could probably identify the gene sequences, and thus help my offspring by telling them what their problems are going to be before they experience them, by looking at dominant and recessive traits.
- pnathan 15y agoA nerd journal. :-)
- eru 15y agoJust take into account that not all heritable traits spread via genes.
- bokonon 15y agoI really like this idea. What do you use to do this? Or what do you think would work best? I can't tell if Tiddlywiki would be good for this sort of thing.
- isTravis 15y agoAgreed! I too would like to know what you use to do this, and what type of encryption you're able to use.
- jianshen 15y agoMy favorite use of TiddlyWiki was making it the index.html in my home/public_html directory on our internal company server. I had network write access via network mount on my laptop and whoever else who just wanted to browse my notes could goto http://internalcompanyserver/~myname/ http://internalcompanyserver/~myname/
- jarin 15y agoI use Soywiki: http://danielchoi.com/software/soywiki.html http://danielchoi.com/software/soywiki.html Toss something like this in your .bashrc or .zshrc to run it in MacVim and have an easy command: export SOYWIKI_VIM=mvim alias wiki='cd ~/wiki; soywiki' Then just git init and push it up to a private GitHub repo, and you can check it and edit it on the go through the GitHub site.
- bengillies 15y agoHi, I'm a developer on TiddlyWiki. I'm not sure if this is the done thing or not (I'm relatively new to posting on Hacker News so apologies if not) but if anyone wants an online version of TiddlyWiki (that handles revisions, multiple users, has a RESTful API, etc), then we're currently working on a service called TiddlySpace (http://tiddlyspace.com http://tiddlyspace.com), which is basically an extensible online note taking app based on TiddlyWiki. It's on GitHub too.
- eknuth 15y agoLove your work in Silverchair.
- SteveArmstrong 15y agoI also hacked together TiddlyBox, which lets you leave your TiddlyWiki on your Dropbox and edit it directly. It's a simple WAR file that'll run in any Java container (Jetty, Tomcat).
- wingerlang 15y agoWill there ever be chrome-support without the java file? It never worked for me, wich is sad because it looks great.
- bengillies 15y agoNot in the near future no. In the far future, it depends on how the new filesystem api turns out. There are some thoughts going on about using node for such things, though they are only that (thoughts) at the moment.
- wingerlang 15y agoSad to hear, i was really excited when i found tiddlywiki. But i can not move from chrome.
- Jem 15y agoIs it free? This is vital information that your front page is lacking.
- cabalamat 15y agoI use MediaWiki myself.
- deleted 15y ago[deleted]
- baghali 15y ago+1 Evernote
- orph 15y agoI wrote a personal wiki for Linux called Tomboy. I've been working on Hackpad.com lately. It's a realtime wiki based on Etherpad. Pads are private by default, and you can invite people to edit them later. I think it's better than tiddlywiki. Why not try it out?
- larrywright 15y agoI loved Tomboy when I still ran Linux on my desktop. I even used it on Windows for a while. Thanks for such a great app!
- jameyc 15y agoTomboy is one of my favorite apps of all time (even kept up a Snowy for a while to sync.) Of all the alternatives mentioned here (which I've tried time and time again) it's the only one with such a slick workflow. Popping multiple pages open like sticky notes, or one big page for reference was a killer feature for me. I've been waffling between txt or Google Docs for a while now, mostly just for need of a strong mobile client, but miss my Tomboy littered desktops...
- enjalot 15y agoI've been using google docs for these kinds of notes, searchable, shareable and accessible anywhere I can get to gmail. I may consider dropbox + txt files, but gdocs is working fine so far.
- SalmanPK 15y agoblah. Blogging FTW :)
- melling 15y agoI mainly use org-mode for detailed notes. Github (kind of) understands them so I now include README.org files. I also recommend http://workflowy.com http://workflowy.com for capturing information. I'd pay for an iPad app that would sync with it.
- hboon 15y agoI've since moved on to plain text files, but at my last job, when I left, I just had to delete a few more sensitive notes before passing my TiddyWiki file to my replacement and he had all my notes for the job. It was a technical sales role. I'd argue that a personal wiki is even more important for many other vocations than for programmers.
- eridius 15y agoAny Mac users who are interested in having a personal wiki should take a hard look at VoodooPad (http://flyingmeat.com/voodoopad/ http://flyingmeat.com/voodoopad/).
- mgualt 15y agoThese periodically recurring organization threads always motivate me to take another stab at adopting some kind of coherent approach to organizing my ideas. Then I get depressed at how poorly thought out almost all the options are. I then become convinced that the only system that has been fairly well thought out is org-mode. Then I fire up my emacs and the incredible frustrations and overwhelming disgust start to rise like a slow flood. I load up my .org file and it's not wrapped. I can't read it. So I try to change the options. There are 5 incomprehensible word wrap options and none of them work. Then when I re-load my .org file, it hasn't saved the word wrapping setting. I can't remember if it's shift-tab, alt-tab, command-shift.... one of them puts a TODO, another puts a new star, now suddenly I've reordered half of my lists... Meanwhile, once I move a paragraph, emacs displays some kind of fragments of the characters in the previous location... what the hell is this? I decide that I'd like to collaborate on a project -- org-mode seems like a great tool. But wait, I forgot that my collaborator is actually a NORMAL person. What is the chance that they will read the org-mode manual? Oh that's right, I'll just send them to the IRC channel. Where was the calendar again? I am literally in tears now. tears. This is the best personal organization software we have. It's 2011. Orgmode looks like my father's 1985 IBM terminal. Why do we always have to wait for Apple to inject a miniscule amount of actual DESIGN into software? Please help me...
- MortenK 15y agoTry Evernote, OneNote or wikidPad instead :-)
- access_denied 15y ago1. Your home-folder is your nerd-journal. Not only some parts of it, everything. 2. Use sensible file-names, don't overthink this but refrain from beeing stupid. Clear house often and regularly. 3. Once you decide that your nerd-journal needs a feature, you write this as a script. You think from a usability-standpoint how you want to evoke that script (a hotkey, a menu-item somewhere, whatever). 4. Your backup-solution is your versioning system.
- mkramlich 15y agoI have a collection of scripts, dotfiles, text note files, flat text data files, and ad hoc lightweight textual databases already to do this sort of thing. Doesn't require any special software, doesn't require a hosting server or active network connection, and yet I can edit, search, compress, refactor, version, backup and synch this data anyhow I want, anytime, essentially for free, and with an absolute minimum of moving parts. And using the same set of CLI tools I already must or at least should know anyway for my profession.
- lobo_tuerto 15y agoCan't save on latest dev chrome (15.0.854.0 dev), getting this error: The original file '/home/yop/Documentos/wiki2/empty.html' does not appear to be a valid TiddlyWiki
- aufreak3 15y agoI use fossil (fossil-scm.org) for the same purpose. It is super nice that the wiki is integrated with the source code I'm working on and the bug tracker.
- ja27 15y agoYesterday I started a comment asking if I'm the only programmer that doesn't keep many notes. I actually don't keep that many, relying on my memory and falling back to code comments, revision history, and email when that fails. But then as I read through more comments, I realized that I've tried almost every one of these note systems - Tiddlywiki, TODO.txt, Evernote, Springpad, OneNote, Moleskine notebooks and others - but have never stuck with any of them. The only system that's ever stuck for me is email. I keep trying to get better at recapping meetings and decisions in email so I can find them later.