My Org-mode journey – Chapter 1

January 30, 2011


As the title suggests, I expect this to be the first in a series of articles about how I use org-mode. Right now I’m at the point where I’m really starting to see the light. I’ve known about org-mode for several years, but only recently decided to give it a serious try.

Since I started my own company, I have been looking for a simple, effective tool for keeping track of all the various projects I am working on. I’m already using Harvest to track billable hours. For detailed planning of each sprint in an ongoing project, I love Pivotal Tracker, and I’m going to stick with that for the time being.

But I needed something else to get an overview of all those projects and ideas that are floating around in various stages of completion. Both in my head, in emails, on my hard drive and in Google Docs. Something to record all sorts of metadata about each project (estimates, ideas, contracts) as well as actual work artifacts (pointers to code commits, design docs, links to user stories).

I’m going to skip the details, but I briefly evaluated Highrise (for projects and tasks), but quickly discarded it. I may explain why in a separate post, but the gist of it is just that the workflow didn’t really feel natural to me.

So I decided to have another go at org-mode, and this time I think I nailed it!

Basics

Org-mode is an Emacs major mode which provides features for organizing information in a hierarchical manner. Lists of items can be nested into sublevels, and each item can contain plain text contents. There is support for links to URLs and to places in other files.

There is also support for lots and lots of other stuff. A much better introduction can be found at the Org-mode website.

File structure

One of the things I found hard to begin with was file organization. How do you layout the directory structure? Should you create a folder per project, with files like “plan.org”, “estimates.org” etc. inside each? Or maybe organize the files by contact?

Eventually, I ended up simply having a bunch of files in a single directory:

buzz.org 
leads.org 
links.org 
notes.org 
passwords.org 
projects.org 
readinglist.org 
todo.org 
wb.org

Side note 1: passwords.org is of course encrypted and, incidentally, replaces my use of 1Password (which worked fine but I never bothered to learn 90% of its features so the UI felt very bloated to me).

Side note 2: The file notes.org collects stuff I capture with remember.el.

Everything related to projects (whether active, planned or potential), goes into projects.org. Each project just gets a top-level item with related information organized into sub-items.

Artifacts

This was the real revelation for me: Links.

It sounds trivial, and it is, but linking to all kinds of stuff seems to be one of the best ways for me to organize my work. I have no idea why I didn’t realize this sooner. One of the reasons I tried out Highrise was because of its support for organizing emails. I still think that this is pretty clever, but org-mode is just simpler and more versatile.

Example:


The text “Data model” links to the Google Doc containing the data model description. Likewise, the text “Mail about data model” links to an email (in Gmail) I sent to the client about the data model.

This is a very simple building block, but very powerful. I can insert into my project any resource I can link to, which means almost anything these days. Commits in Github, web pages (obviously), documents, spreadsheets, presentations, video clips.

Estimates

Org-mode is ideal for breaking down major tasks into subtasks, so it makes sense that it also has support for attaching estimates to these tasks.

What you see here is column mode in action. The estimates on the lowest level tasks (cyan items) are entered by hand, and Org-mode then sums up these values in the higher level items, ending up at the root with a total estimate of 36 hours.

Tasks

Highrise has support for tasks, and I’m sure it’s good.

However, I created support for tasks just by creating the file todo.org. I really don’t need anything more fancy than a list of text strings right now. When I do, org-mode has lots of nice features for tracking deadlines, time spent on tasks etc.

Exporting to PDF

This is really easy once you have everything set up.

Suppose I want to export this very simple file:

This is done with the command org-export-as-pdf, and here is the resulting PDF.

Next steps

I’m not sure, what do you think? Any suggestions for improvements on these workflows would be greatly appreciated. Just drop a comment.

4 Responses to “My Org-mode journey – Chapter 1”


  1. […] This post was mentioned on Twitter by HN Firehose, Jacob Tjoernholm. Jacob Tjoernholm said: My org-mode journey – Chapter 1: http://wp.me/pFIFc-fg […]


  2. How do you insert links to Google Docs documents or GMail messages into orgmode?

    • chopmo Says:

      Sorry for the late reply, we just had our second child so everything is moving pretty slowly right now😉

      Inserting a link is done with C-c C-l. This prompts (in the minibuffer) for the link first, then a description which is what is inserted into the org-mode buffer. The URL can later be opened by placing point on this description and pressing C-c C-o.

      Regarding the actual URLs, Gmail continuously updates the address bar so the URL of the message you’re viewing can just be copied from there. The same applies for Google Docs IIRC.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: