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.
Of course not being an emacs user may make editing org mode files a little difficult. However, any system will do as long as its consistent. If not org-mode; txt2tags, markdown, etc can also serve in a pinch.
I think plain text is the de-facto universal format. There's also no restriction on presentation and interface. Your choice of tools are pretty wide open with plain text.
Try moving your point to (defun... and pressing << C-c ' >>. It should work with org-mode bundled in Emacs 23; if not, you can get the newest version from http://orgmode.org.
With org-babel enabled, you can actually run this code, or use it in literate-programming style to write programs.
One think that you can do in the latest orgmode, is to write code snippets in the org documents, extract the code, compile it (if needed, like for C code), run it, and insert the result back into the org document.
Vimwiki does an essentially equivalent thing, and there are numerous other tools for other environments. Your favored tool is really not that special. Sorry. =)
(Me, I just use Dropbox and vimwiki, and occasionally push it to a private Hg repo on BitBucket.)
Your favored tool is really not that special. Sorry. =)
Vimwiki isn't in the same league as Org mode. Sorry. For example, how can I create and edit spreadsheets using Vimwiki?
Read the entire manual to understand Org mode's power. It has no equivalent that I know of, and I searched thoroughly before giving up and learning Emacs.
I've read it. Hell, I've used it, before I discarded emacs. Perhaps I should amend it with "unless you want to bend one tool to do the job of the others". Which I guess is half the point of emacs in general, so I apologize and retract my statement--it's quite special.
Have you actually used org-mode to say that these are "essentially equivalent", or do you just say this because your favored tool cannot possibly be worse than someone else's favored tool?
From what I've seen, vim people generally are not really interested in creating enormous extensions as the emacs people are, so if they actually created something similar in power and complexity, I would be really surprised and impressed.
I really think Emacs is much easier to figure out than it looks. Meaning: you probably already grok it, but you _think_ you don't because it's Emacs, damn it!, it's supposed to be hard and complex and bend the fabric of space and time!
But its essence is actually quite simple: it's a toolbox for all things text. Not a _tool_, mind you; a toolbox. It _contains_ tools. Lots and lots of them. Oh, and it has funny keyboard shortcuts.
So here is Emacs in a nutshell:
1. "find-file" is a function;
2. you can "M-x any-function" to invoke it;
3. you can assign a shortcut like "C-x C-f" to any function;
4. you can define your own functions in the same language Emacs itself is written (i.e., you can really extend Emacs, not only call some simpleton API);
5. you customize Emacs' settings and behaviors by changing some variables ("please highlight the line the point is currently on").
That's pretty much it. Yes, there is a mountain of functions and variables and modes that are complicated and interconnected and you _will_ spend some time configuring everything. But the gist, the essence, the core -- that's it. You've already grokked Emacs. Now you can learn one function at a time and extend your knowledge of it little by little. It doesn't have to be more complicated than that.
The modes? Well, remember, Emacs is a toolbox. Each mode is a tool, specialized in some area of the Great Forest of Text Editing. There's a mode that will help you save keystrokes (yasnippet); there's a mode that will help you write code in the language X (x-mode); there's a mode that will help you open files and buffers easily (ido, anything); there's a mode that will help you with your todos and prose-like text (org-mode).
Regarding org-mode specifically: you can spend weeks using only ONE shortcut, Shift-TAB, and already it will be extremely useful. Then you'll wish for some feature (like adding tags to headlines), and you'll find that it's already implemented. And that pattern will repeat, and repeat, and soon you'll be using lots of advanced features, and you won't even notice, because it'll have become a natural thing.
I hope this makes sense. And, just to be clear: I know a size does not fit all. I did not write this to say "everyone should like Emacs, look, I proved it". This is just my experience with it. I hope it's useful to someone.
What is the best way to use/access information from org-mode using a smart phone (iPhone, specifically, but Android solutions will be interesting to know too)?
TiddlyWiki 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.
Or Firefox. Firefox will also send you to the open tab if you try to go to an URL you already went to, instead of opening a second instance of the same page.
Last write wins. Although tiddlywiki does detect the situation when file was changed on disk, there is not much you can do at this point. Before tiddlywiki I used to use pmwiki on a server and it has the ability to merge changes (via diff3). I miss that dearly in tiddlywiki.
Ok, it is a text file, a web page, but why so complex an interface? I feel it is very weird to have the content of paragraphs inserted just below the TOC in http://www.tiddlywiki.com/ (I am guessing this page showcases TiddlyWiki, right?)
Simple anchor links should work much better, and would not break the back button.
One of the reasons I like Dokuwiki and use it for my team is the fact that it stores everything in .txt files.
You get to use wiki formatting and the features that wikis give you that text files don't (linking between related pages, etc), but it's still just a script writing to .txt files in a human-readable format. No lock-in and no database to worry about configuring or recovering from a crash.
I'm using MoinMoin, which I also like because it stores its data in text files. MoinMoin has a "personal wiki" configuration that requires hardly any configuration and runs its own built-in web server. It also has a full-blown wiki with user IDs, access control lists, etc. that you can run under Apache or other web servers. I'm using it at work to store some documentation for my work group. (http://moinmo.in)
I'm doing .txt files, too -- but lately, I've been doing them via Dropbox and the Google Chrome add-on called "SourceKit". I now have a permanent tab in any of my PC's browsers that allow me to quickly open and edit these files.
Another 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); and, of course, easy to have available anywhere with Dropbox.
I use ReStructuredText mostly. Files start out as plain text and slowly grow more markup as they progress. Easy enough to read in plain text ... then can be thrown through rst2pdf to hand over to clients as "the documentation". Not pretty, but compared to the nightmare of keeping .odt docs up to date across branches and merges ...
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), which is basically an extensible online note taking app based on TiddlyWiki. It's on GitHub too.
I 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).
Not 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.
These 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?
Used 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.
Just 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.
DokuWiki 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.
I 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.
Gollum[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.
I 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)
I'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.
I 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.
Depending on your text editor of choice, 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.
You 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.
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.
You 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.
I use this method - except I use a fork called 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.
For a number of years I used the single file Python wiki 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.
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.
While 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.
Notational 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.
I'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.
I 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.
I 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.
I 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.
My 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.
Downsides 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...
I 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.
For 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.
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.
I'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.
My 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/
Another 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.
OneNote (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. :)
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?
Tomboy 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...
Yesterday 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.
I 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.
I 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.
I 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.
Personally 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/) 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…
Here's a vote for Instiki (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).
Took 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...
mmm 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
I'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.
I 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.
My encryption is to keep everything on a hard drive that isn't connected to the internet. The insurance companies would no doubt like to see my timeline on my health category with a timeline on dates of every issue I have ever had with the hundreds of sub components of my body with everything from acne to heart trouble to ringing in ears to joint pain.
I have a category with everything I intend to do to the child if I have kids. I have a category with pictures of me every year from 3 days old to today. I do the same with my parents and grandparents (which is more spotty).
I have a category on all the friends I've ever had, what they liked, why they liked me, what I did to become aquainted, birthdays, their parents, all the information about them you would expect a close friend to have.
I've got all my tax returns back to 2005 (I started the wiki somewhere in 2007). My current net worth plotted on a chart, documented by what I did which caused certain plunges and rises in that graph.
A big category on girlfriends, kinds of women and what works with some. I can give you a cruise through every significant romantic event in my life from my first kiss back in college to sexual encounters. With photos of each girl. Each girl I dated given a full psycho analysis, funny how I searched out each edge of the (Smart, Sane, Pretty pick any two) triangle. I even dated a few (1 of 3) and (0 of 3). Big mistakes that haunt you.
I have a category of books I've read, and plotted those against my life timeline. What I've thought of them, how they changed me.
Anyone who got ahold of this wikipedia and had 20 hours to read it all would know as much about me as I know about me.
This wikipedia is what I want to see on dating websites, If I could include this on a dating website, and have all the girls do the same, it would make dating a lot easier. I imagine a post with dental records, tax returns, employment, income histories, aspirations, books read, history of diseases/conditions, family genetic lines, computers owned, friend structures, self psychoanalysis, and hundreds of other subjects which makes us unique from other humans.
A big worry is that the hard drive bricks iself or gets stolen, this wikipedia is worth tens of thousands of dollars to me. My backup strategy is to make a hard drive cloned image every 3 months with clonezilla, with the hd stored in a physically different location. so my wiki would even survive an fbi takedown where they steal all your stuff.
I've got all the programs I've ever written saved, so I can go back in time 4 years and see programs I wrote in C++, Visual Basic. It's like reviewing your essays from first grade, I can't bear to see them, my programming skill has gone up slowly but surly over time.
Wow, that's really amazing. I think I'd like to start doing the same kind of thing. What exactly to you use to accomplish all of this? What wiki? Plugins? Anything else? Do you have any other advice for someone wanting to get into this? Or something you would have liked to do differently from the start? Any advice you have would be wonderful.
"bluefish editor" freeware on top of a linux operating system (Fedora core). I suggest a more user friendly version of linux for non programmers. I've made short shell scripts which copy templates to different keyboard combinations. I have scripts which validate the html I've written. One of the things that bogs you down is getting image link text from camera/scanner into the html file, so I automated that as much as possible so It is just a matter of opening the scanner and hitting one hotkey which kicks off a script, and scans the image, puts in in the images folder (prompting me for a filename) saves it and injects the html into my bluefish editor. Same thing for photographs and videos on my camera. It's all gotta be (One click-add) or it will take hours each session just fiddling around with documents.
The real secret is adhering to the rules of a wikipedia. Nothing may be added without establishing its link and relevancy to another page. Also, Here is the secret sauce, a tough rule is that when you introduce a new page that links to an old subject, which introduces new information, or new evidence which contradicts old pages, you have to spend time and re-build the pages being linked to. I have a system where editing one significant page has the possibility of having me go back and change previous observations, the benefit is that it automates your thinking process. If you keep all your thoughts you ever have into a tight tree form, you can find that your human memory is upgraded a hundred times over. I was able to use process of elimination to determine which foods were causing my acne, and through continued graphing and elimination, was able to find what elements in which foods were causing it. Something many doctors would probably like to see. When I go to a new dentist, I sometimes bring along my entire history of each tooth, each operation i've had, i can see where that time I kissed the wrong girl caused a microbe party in my mouth which caused cavities. Though the dentists have no idea what microbes are in my mouth, through my wiki. I have a good idea. In some ways the wiki makes me a better dentist (to myself) than the professionals.
It's a wikipedia that treats myself like scientists would treat a newly discovered intelligent alien craft. Everything about it is described, graphed, analyzed, compared, and charted. Nothing about it is taken as a given. The part that keeps me coming back to it is my thirst for knowledge. When I browse hacker news, stackoverflow, and (years ago, digg), anything that struck me as useful for growing myself or growing knowledge was included. So now I have like 800 items in a list organized by category and awesomeness, that to this day when I look at it, I still see the importance. I have a category of guitar songs I can play, piano tunes, how I learned. etc.
Whenever I hear a song that provides a certain response, sadness, happiness, euphoria, depression. I write it down on a receipt, then when I get home I log it. So I have a series of songs I can play which seriously induce all these emotions. I try to stick to the happiness songs. there is a boat load of ones that cause the other emotions. As a result I have 30 songs that when I play, suddenly make me happier. Sometimes when I'm depressed I play the depression inducing songs and it makes me extremely depressed, and I can look at myself like a computer, an input output device, and I see that depression is only a response to external stimuli, if you can take control of your external environment, you can custom make your emotion for that hour/day.
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.