Emacs: Choosing between Org and Planner

jaaronfarr asked me why I switched from Planner to Org. Both of them are popular personal information managers for Emacs, and both of them have practically all the features I need. They both do a good job at helping people
manage tasks, schedule, and notes. If you have a few
months to explore this, I suggest that you try both for at least a
month each. On the other hand, if you want quick results, some time
thinking about how you plan can save you more time later.

I tried out Org because I was working on a chapter about schedule
management and it wasn’t fair to just rely on the manual or the
mailing list. In the beginning, I
felt frustrated by the lack of things I’d gotten used to in Planner:
the freedom to edit anything on my day page, little conveniences like +2tue to mean two Tuesdays from now (which Carsten has just added), publishing my blog…

After two months of using Org almost every day, I’m starting to
understand it. I’ve come to appreciate the ease of working with an
outline. I love the way it clocks time. I find the daily and weekly
views really helpful. I’ve hacked stuff for it: time/load estimation,
time reporting, next action summaries, agenda publishing… I’m fairly deeply

As a geek, I have to confess—I like Planner more. Planner is more fun
to code. Maybe it’s because I’ve spent years with it, and I know my
way around the source.

Maybe it’s because we split Planner up into lots of little pieces that
can be reused and advised. Maybe the modularity of Planner is because
chunks of the code were written on a computer with a teensy screen,
which forced me to write functions that fit 80×48 characters. (See,
that limitation was there for a reason!) There are plenty of entry
points. From time to time, I still find myself copying an entire
function in order to change something in the middle, but usually I can
just get away with wrapping something around something else. With Org,
I find myself doing a lot of copy-and-paste programming. I’d fix this
by breaking the functions down into smaller bits, but I don’t have the
brainspace right now. Maybe after the book.

Org is better for my brain, though. It gives me a better overview of
both the ground-level tasks (what am I going to do right now, today,
this week) as well as the 50,000-foot view (what are my big projects)?
Planner’s good at the ground-level tasks, but the overview’s always
been a little awkward because it has to visit a number of files to get
a big picture. Org handles that easily.

And the one-place-for-data thing of Org is pretty cool, too. Org
dynamically generates reports, which could take a bit longer if you
have a large Org file. Planner copies data wherever it makes sense, so
you’d have a copy of the task on your day page and a copy of the task
on your plan page. Plan pages can get out of sync unless you’re either
religious about using planner-edit-task-description and other
functions to edit your tasks, or you use planner-id and you’re lucky.
Timeclock entries get out of sync, too. You can trust Org more than
Planner in terms of consistency.

So now I’m kinda in the middle of these two modules. I use Org for all
my work tasks, and I’m moving towards using it for all of my personal
tasks as well. But I still keep my blog entries in Planner, even
though they get mirrored into a WordPress blog on my web server.

*What would I recommend?*

It depends on the way you think. If you’re the kind of person who was
never happy with day planners because you needed more space to doodle,
write notes, move things around, add other things, try out Planner. If
you like outlines and organizing your tasks into projects, try out
Org.

Note that just because you work that way now doesn’t mean you’ll work
that way in the future. Don’t worry. Emacs will adapt. You can switch
between Planner and Org fairly easily. Just give yourself a week or so
to adjust (or a month if you’ve customized your old tool extensively
and miss lots of things about it). Use the tool every day, and you’ll
be fine.

Have you tried out both? Or have you tried out one of them and are curious about the other? I’d love to learn from your experience or answer your questions.

On Technorati: , , ,

Random Emacs symbol: malayalam-composition-function – Function: Compose Malayalam characters in REGION, or STRING if specified.

Emacs: Getting Things Done with Org – Basic

2(please remove leading spaces from code excerpts)

You’d like to use the Org Mode for Emacs to manage your tasks. In this
blog post, I’ll cover the absolute minimum you need to get started.
We’ll assume that you already have GNU Emacs 22 and that you’re reasonably
familiar with using Emacs, including installing external modules and
adding them to your load path.

There are a million ways to plan, but we’re going to focus on two. The
first approach is Getting Things Done (GTD), described by David Allen
in the book of the same title. GTD focuses on next actions (the very
next thing you can do) and uses context lists to keep things
manageable. Popular ways to do GTD are with index cards, recycled
business cards, or software programs. If most of your tasks are in
your head or scattered on scraps of paper, GTD will probably give you
the most organizational bang for the least effort.

The second approach is day planning. You plan your week based on your
projects and priorities, write your tasks onto the pages for each day,
and copy unfinished tasks over to the next day. If you’ve used one of
those Filofax, Franklin-Covey or Dayrunner personal organizers, you’re
probably used to this way of planning.

As you learn more about Emacs and task management, you’ll probably
develop your own way of doing things. These two are a good place to
start, though. (Don’t recognize how you plan your day, but
interested in using Emacs anyway? Please get in touch with me! I may
know of something that fits, and I’d certainly love to hear about the
way you work.)

If you use GTD, read on. Otherwise, read the Setup and then wait for
the next blog post! =)

Set up

Org is part of Emacs 22. To make it even easier to collect tasks and
notes, install a separate package called Remember.

First, download and unpack Remember. As of this writing, Remember is
at version 1.9. You can get the TAR.GZ from
http://download.gna.org/remember-el/remember-1.9.tar.gz605 or the ZIP
archive from http://download.gna.org/remember-el/remember-1.9.zip606 . If
these instructions are out of date, check
http://www.emacswiki.org/cgi-bin/wiki/RememberMode607 to find out where to get Remember.

Then add this basic configuration for Org and Remember to your ~/.emacs,

   (add-to-list 'load-path "~/elisp/remember-1.9")                                  ;; (1)
   (require 'remember-autoloads)
   (setq org-remember-templates
      '(("Tasks" ?t "* TODO %?\n  %i\n  %a" "~/organizer.org")                      ;; (2)
        ("Appointments" ?a "* Appointment: %?\n%^T\n%i\n  %a" "~/organizer.org")))
   (setq remember-annotation-functions '(org-remember-annotation))
   (setq remember-handler-functions '(org-remember-handler))
   (eval-after-load 'remember
     '(add-hook 'remember-mode-hook 'org-remember-apply-template))
   (global-set-key (kbd "C-c r") 'remember)                                         ;; (3)

   (require 'org)
   (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))                           ;; (4)
   (global-set-key (kbd "C-c a") 'org-agenda)                                       ;; (5)
   (setq org-todo-keywords '("TODO" "STARTED" "WAITING" "DONE"))                    ;; (6)
   (setq org-agenda-include-diary t)                                                ;; (7)
   (setq org-agenda-include-all-todo t)                                             ;; (8)
  • (1): Change the directory as necessary.
  • (2): You can use a different filename.
  • (3): You can change this keyboard shortcut.
  • (4): This tells Emacs to open all .org files in org-mode.
  • (5): You can change this keyboard shortcut.
  • (6): This makes it easy to pull in holidays and other events. See the chapter on managing your schedule.
  • (7): This includes all unfinished todos in the Org daily and weekly views. You can remove this line when you get used to working with todo lists.

After you evaluate that code by calling M-x eval-buffer or restarting Emacs, you’re ready to create an Org file.

  1. Open ~/organizer.org (or whichever file you specified in (2)).
  2. Save it. This is probably the only time you’ll have an empty TODO list.
  3. Use C-c [ (org-agenda-file-to-front) to add it to your org-agenda-files. You only need to do this once for this agenda file.

Read on to find out how to use your new Org file for GTD, or skip ahead to the section on Day Planning to find out how to plan by day!

Org and GTD

So you’ve read David Allen’s book about Getting Things Done (or any of
the countless summaries of it on the Net), and you’d like to get
started with Emacs and Org mode. I’ll show you the bare minimum you
need to support the five phases in the GTD task workflow:

Phase GTD Org
Collect Capture everything you need to do. Collect all your bits of paper or put everything into your inbox
Process Actionable? Yes: do, delegate, or defer; no: file, throw, or incubate Put tasks on your list, track delegated tasks
Organize Next actions, projects, waiting for, someday/maybe Tag tasks, view tasks by tag
Review Daily, weekly, etc. Agenda view
Do Actually do the work! No, Emacs won’t do the work for you… (But it can brew coffee!)
Collect

The first thing you need to do is get all the tasks out of your head,
off scraps of paper, out of your e-mail, and so on. If this is the
first time you’re putting tasks into Org, you have a lot of tasks to
collect. The best way to collect lots of tasks is to open your Org
agenda file (~/organizer.org) and put this heading at the end of the
file:

   * Inbox

Now go to the end of the file, and type in ** TODO and the first task
you can think of, like this:

   ** TODO Buy milk

Press C-M-RET and keep typing other tasks. Keep going until you’ve
gone through all the things in your head and all the scraps of paper
lying around. Do not get distracted. Your goal is to write all the
tasks down. If you are as easily distracted as I am, do not even open
up a browser window or look at your e-mail. It can be a real struggle
sometimes to focus long enough to get everything down, especially when
you’re writing down all these tasks that you can work on. DO NOT DO A
TASK UNLESS IT TAKES LESS THAN TWO MINUTES TO DO. In fact, if you are
just starting out with GTD, you might find it better to resist all
temptations to do tasks during this step. Get it all out.

Now that you’ve gotten your tasks out of your head and into your
organizer.org file, breathe. There’s less stress in your brain now,
because you don’t have to worry about forgetting things (as long as
you remember to check your Org file, that is!).

DO NOT FILL YOUR BRAIN BACK UP WITH OTHER THINGS TO DO. The brain is a
wonderful thing, but it’s not good at remembering what you need to do.
Whenever a task comes your way—through e-mail, in conversation, in
the shower—put it in your ~/organizer.org. Well, you probably don’t
want to drip all over the computer, so sometimes you’ll need to hang
on to an idea—but get it out of your head and into your organizer as
quickly as possible.

To collect tasks within Emacs as they come up, use Remember. With the
basic configuration you set up in the previous section, you can use
C-c r t (or M-x remember and “t” for the Tasks template) to pop up a
buffer where you can type in the task description and some notes.

    ## Filing location: Select interactively, default, or last used:
    ##     C-u C-c C-c  to select file and header location interactively.
    ##         C-c C-c  "~/notebook/personal/organizer.org" -> "* Tasks"
    ## C-u C-u C-c C-c  "???" -> "* ???"
    ## To switch templates, use `M-x org-remember'.

    * TODO

And if you’re lucky, there will even be a hyperlink to the file or
e-mail you were looking at when you called C-c r t (remember, tasks).

If you brain-dump your tasks and use C-c r t to collect tasks as they
come up, you can free up your brain for other things, such as
contemplating the meaning of life.

Process

Now that you’ve collected all those tasks into your inbox, you can
process them. Open your Org agenda file and go to your inbox.

For every item there, decide if it’s something that you need to act
on. Is it really just a note? If so, take out the TODO keyword and
organize it like you would store other notes. If it’s a true-blue
task, decide if it’s something you can do within the next two minutes,
delegate to someone else, or leave on your task list. Go through your
list systematically, delegating and eliminating whenever possible.

If you delegate the task, change it to WAITING by moving your cursor
to the headline with the TODO keyword and typing S-r (org-shiftright)
until it changes to WAITING. To keep track of who you delegated it to,
just edit the task description to reflect it. Your organizer file will
look like this:

 ** WAITING Buy milk - WJY
Organize

You have a list of tasks that _you_ need to act on. If you’ve
braindumped everything that people have asked you to do and that
you’ve thought of doing, this is probably a very long list.
Intimidatingly long. The next step in restoring sanity to your life is
to organize your list into next actions, projects, things you’re
waiting for, and someday/maybe tasks.

Review that task list. For each task, decide if it’s something you can
do immediately. Is it something you can do in one sitting, and do you
have everything you need in order to do it? If so, great! It’s a next
action. Leave it on your task list.

If you can’t immediately work on a task, it may be a project in
disguise, and it needs to be broken down into smaller, concrete next
actions. For example, the task:

 ** TODO Write a book about Emacs

would probably result in me getting complete writer’s block. If you’re
faced with a big task like this, move it out of your inbox and make it
a project. Then you can think of the very next action you need to do.
Your Org file could look something like this:

 * Projects

 ** Emacs book
 *** TODO Write about basic Org and GTD

 * Inbox

 ** TODO ... lots of other things go here ...
 ** TODO ... lots of other things go here ...
 ** TODO ... lots of other things go here ...

A task might also be stuck because you need to wait for someone else.
For example, I’m currently working on renewing my visa, but I need to
wait for the embassy. Mark those stuck tasks as WAITING with S-right
(org-shiftright).

Someday/maybe tasks are nice to think about once in a while, but you
don’t want to clutter your day-to-day tasks with them. A basic way to
deal with this is to move those tasks into a separate Organizer file
such as ~/someday.org . Another is to use tags, which we’ll cover in
the section on intermediate Org. For now, just move them to another
file.

Review

You’ve gone from a whole bunch of tasks in your brain and on pieces of
paper to one text file containing everything you need to do, with an
easy way to get to just the things you can do right now. To view all
your tasks, type C-c a t (org-agenda, tasks). You’ll get something
that looks like this:

  Global list of TODO items of type: ALL
  Available with `N r': (0)ALL (1)TODO (2)STARTED (3)WAITING (4)DONE
  TODO Write about basic Org and GTD
  TODO Blog
  TODO Answer my mail
  TODO Alter slacks
  ...

Type “1 r” to show only the active tasks, and review what you’re
waiting for with “3 r”. Review this WAITING list every so often
to make sure that nothing falls through the cracks.

Type “f” to start follow mode, which displays the relevant lines from
your Org agenda file as you move around. This is helpful for quickly
reviewing your task list.

Do

All of the above should take you less than fifteen minutes of planning
each day. The rest of the time, you can focus on doing the work,
undistracted by shiny new tasks that pop up because you can get them
out of your way with C-c r t.

To work, review your task list with either C-c a t (org-agenda, tasks)
or C-a a (org-agenda, agenda). From the agenda view, type “t”
(org-agenda-todo) to change the task status. I find it helpful to mark
a task as STARTED because it helps me remember what I was working on
in case I get distracted by something urgent, but you can also use C-u
t to jump to a status without cycling through the ones in between
(say, marking a task as DONE). You can also press ENTER to jump to the
task headline and edit it directly.

Going back to reviews: As you mark tasks done, you’ll also want to do
daily and weekly reviews. You can see those with C-c a a (org-agenda,
org-agenda-list), which opens an Org agenda view. To see completed
tasks in the Org agenda view, type l (org-agenda-log-mode). To switch
to the day view, type d (org-agenda-day-view). To switch to the week
view, type w (org-agenda-week-view). The basic configuration I’ve
suggested here will automatically include unfinished tasks at the
beginning of the agenda. Scroll up to review your tasks, and press
ENTER on a line to jump to it.

Wrapping up

There’s a lot more you can do with Org to make it support GTD, but
here’s a basic configuration that can get you started on collecting,
processing, organizing, managing, and actually doing your tasks. Stay
tuned for the intermediate Org article for more tips on setting up
repeated tasks, clocking time, working with projects, and tagging
tasks!

On Technorati: , , ,

Random Emacs symbol: bbdb-edit-current-field – Command: Edit the contents of the Insidious Big Brother Database field displayed on

UPDATE: Thanks, Victor, for catching the bug! Changed org-install to org.

5 ways to deal with writer’s block

This entry is part 5 of 19 in the series A No-Excuses Guide to Blogging

Oh no! I’m stuck in the doldrums.

My dad said that the difference between an amateur and a professional
is that a professional will deliver even when he doesn’t feel like it.
Or he’s good at making himself feel like it. Someday I’m going to
figure out how to be a professional writer.

Here are the five things I’m going to try to break this writer’s block:

  1. Write for five minutes about anything. Sometimes it’s just a matter of getting the words flowing from my mind to the computer.
  2. Mindmap to see if the problem is that I don’t know what I’m talking about. If so, then this calls for some more research and playing around with Emacs.
  3. Tell myself that I only need to write about Emacs for five minutes. Just like in conversation, I tend to get carried away—but I have to start somewhere.
  4. Take care of my other tasks so that I’m not thinking about them.
  5. Deliberately not write until it drives me mad and I just _have_ to write.

See, that wasn’t so hard…

On Technorati:

Random Emacs symbol: make-char-table – Function: Return a newly created char-table, with purpose PURPOSE.

Chapter 7: Managing Your Notes in Emacs – done!

By golly, it’s starting to look like a book.

I just finished putting together my third chapter, which is really chapter 7 in the book: managing your notes and Emacs. This chapter is about taking notes in Emacs, focusing on Remember, Org, Planner, and blogs. At 38 pages, it’s a little over my planned 35 pages, and I haven’t even covered all the things that I wanted to like random information management with Howm, blogging to Blosxom, and customizing Planner templates. Maybe after some really fierce copy-editing, I’ll have some space.

I sent a copy off to my editor, and I just finished uploading a PDF and OpenOffice.org document that you can download and read. There’s also an HTML version, but the formatting is a little wonky. I hope you find this useful! I didn’t blog as much of this as I did last time, so I missed out on all the wonderful feedback people could’ve given me. I’ll do that next chapter.

I formatted most of the chapter this afternoon, hanging out with Leigh Honeywell, Seth Hardy, and a few other geeks at the Linux Caffe. Leigh’s working on a book proposal, and we’re thinking of organizing a writing group for technical authors. We’ll start by meeting this Thursday at Leigh’s apartment. iI enjoyed chatting with them as I worked on my book, drifting in and out of conversations. I think it would be a good idea to work somewhere quieter, with plenty of table room for assorted gadgets, but this was a good start.

Next chapter: contact management in Emacs. I’ve got a lot of fun hacks that I want to share here, so coming up with material shouldn’t be hard. I’ll keep you posted!

(UPDATE: Fixed links. Thanks to Leschinsky Oleg for pointing that out!)

Kaizen Presentations: Web 2.0 and the University

I’m still buzzing from the first client teleconference presentation I made. I gave a brief overview of Web 2.0 and universities.

Here’s what I learned because I did it well:

  • Energy and excitement really helps. I focused on topics I was passionate about, picked highlights that I wanted to share, and told myself not to be intimidated by the collective IQ in an audience I couldn’t see.
  • Standing up is good. It makes it easier to project more energy and pretend to be giving an actual presentation. This also makes it easier to gesture.
  • If you need to use the handset, use your hand to hold it against your ear instead of scrunching your neck. This not only saves you from a sore neck, but also allows you to improve your breathing. If you have a noise-cancelling headset, use that instead. I don’t have one of those yet.
  • If you’re running out of preparation time, practice your opening and closing, run through middle parts quickly, then go back and practice enough of your opening to give you a confident start. It’s important to make a good first impression. Not only does the primacy effect mean that people will remember the beginning of your presentation more than the following parts, but a strong start will give you confidence and make the rest of the presentation flow. A strong close that recaps important points and energizes people is also very helpful. Things in the middle will come to you once you get into the flow.
  • Upload the presentation to Sametime Unyte instead of sharing your screen. Not only will this be faster for your audience, but you’ll also be less worried about random things popping up. (It’s still a good idea to set Sametime to Do-Not-Disturb or something similar, though.)
  • Call in and start recording the Unyte presentation at least ten minutes before the start of your session. Things get really hectic right before the presentation. It’s easier to spend 10 minutes just waiting on the phone than to try to remember to set up all of your recording while the organizer’s announcing you.
  • Check your social network for resources. Cattail was really handy. =) Also, thanks go to Stephen Perelgut for links and de-stressing!

Here’s what I can do to make things even better:

  • Bring a glass of water. No stage doesn’t mean no stage fright.
  • Create an activity template to make sure I remember to do everything. I’m starting to believe in Activities – I used it as a last-minute checklist for myself.
  • Make sure I get a quick brief from the organizer as early as possible. I went down the wrong path with my first draft. Fortunately, the client rep briefed me last Tuesday, so I spent the rest of the day (and the night) hurriedly revising the presentation. It came out nicely.
  • Reserve a room. I hadn’t reserved a room because I was planning to take one of the smaller non-bookable rooms, but all of those rooms were full. Moving to the “think bar” near the windows didn’t help. I should book a conference room. Even if the room is more space than I need, using that space is better than distracting more than six people. This will also minimize distractions from people asking me to quiet down. ;)
  • Keep a library of materials. I need a good system for organizing slides, images, stories, and so on.

Happy! =D

May 8, 2012
I remember this talk. I was nervous, but I pulled through, and things were just fine. Many of the tips I shared here ended up resurfacing in my “Remote Presentations That Rock” talk. I’m still in the process of building a library for slides. Slideshare gives me a visual library of my past presentations. I’ve been using Emacs Org to collect ideas and snippets, and I use Evernote to store some of my hand-drawn images.

Gen Y Growing Up: My first chat with a financial planner

Another milestone! Today, I consulted a financial planner for the first time. I’d been meaning to find a financial planner who could review my setup and suggest other best practices, and I learned a lot from the session.

When I told the financial planner how I’d maxed out my registered retirement savings plan. She was impressed and suggested looking into corporate class funds. They’re taxed a little differently than regular mutual funds, and can be more tax-efficient than regular funds when outside an RRSP. I took the literature and promised to read up on it. Based on this Globe and Mail article about corporate class funds, it seems that corporate class funds are good for active investors who like switching in and out of funds, and not so good for buy-and-hold investors who favor index funds because of tax efficiency and low management expense ratios. (TD Canada Trust e-Series has the lowest-MER index funds I’ve seen so far, as the exchange-traded index funds that are increasingly popular in the US are somewhat bulkier over here.)

It was good to get some advice on uncommon concerns, such as international personal finance. How would I need to prepare for the scenario of moving back to the Philippines? I knew that my RRSP investments could be left in Canada, but I didn’t know how to handle my non-registered investments and other accounts in a tax- and duty-efficient manner. It turns out that I can leave money here, but I may not be able to give further instructions from overseas, and withdrawing everything could result in losses or high taxes. One way to handle this situation might be to convert all my accounts into long-term investments, then leave very good instructions. I’m currently planning to stay in Canada for a while, but it’s nice to know what I need to do in order to prepare for other options.

I answered her questions about my existing assets and expenses, and I asked her to help me prepare several retirement scenarios: the traditional retire-at-65 kind of plan, the ambitious be-flexible-at-40 plan, and the calculations for time in between. I wanted to figure out what a basic plan is, then inch that retirement date earlier and earlier. I gave her the numbers she asked for, and she’ll share some plans with me the next time we meet.

Writing about this gave me an epiphany. What I want to develop is not a retirement plan, but a medium-term opportunity plan. I don’t need to know how many dollars I’ll need in order to never work again. I’m not in the habit of postponing life until then, and I certainly hope I can continue doing meaningful work forever. What I want to know is this:

How can I position myself so that I can create and take advantage of opportunities while dealing with the risks?

(This post is not financial advice. Good luck!)

May 8, 2012
I ended up not going with the financial advisor or her advice, instead sticking with index funds with low management expense ratios. I’m not trying to beat the market, and I don’t trust actively-managed funds. The opportunity fund that I started building after this epiphany worked out really well, though. It enabled me to leave my full-time job and focus on building my own business, which is what I’m doing now. Yay!