The Fugue Counterpoint by Hans Fugal


On TODO lists

Lately in my TODO usage, a pattern has emerged. It's actually rather helpful, and it's dead simple.

I just keep a text file; one for work, one for my dissertation, and one for personal stuff. It's free-form, but roughly divided into 3 sections. First the page table, then the core, and finally the metadata. Yes, I really just pretended my TODO list is a virtual memory system.

In English, the first part is a refresher/jump starter. It's just a list of what's next: what I hope to accomplish today or this week. The hardest part is always starting the next task, and I find it immensely helpful to do the prioritizing once in the morning or perhaps the beginning of the week, and then I can refer to a short and ordered list of things I plan to do, and no effort is wasted hem-hawing about what to do next. (Often, life is interrupt-driven and I don't actually get to what's on my list.)

Then I have the actual list of all the things I need to do, categorized however is useful for that particular file. For work, I have sections of the various task priorities (unbreak now, hi-pri, mid-pri, low-pri), and also groupings by project (most low-pri stuff makes more sense grouped by project because it's usually done opportunistically and/or when I feel like working on that project.) Most of the tasks of any substance actually have tasks in our task tracking thing for collaboration, and most of the details are there. These are just one-line reminders. For my dissertation, it's a more traditional list and an outline of what still needs writing. A little structure but no rules.

Finally, the "metadata" is just notes and free-form text that is relevant to the TODO list but not an actual list itself. Totally free-form.

It's been working well for me, it's surprisingly effective. Together with my notebook where I regularly write out my thoughts as a sort of log to get my juices flowing (especially when I'm feeling stuck), it's a great low(ish) tech solution to staying on top of things and avoiding that overwhelming panic feeling when you can't figure out what to do next, or worse can't remember everything you have to do.


Hipster Redux

I've talked about the Hipster PDA a few times. I finally stabilized on a system that works for me. I've been using it steadily for months with no major changes now, so I thought I'd share with you.

My brief foray into the hipmod was fun, but too restrictive and small in the end. I understand others enjoy it though, so I'm glad I did it.

I find the classic hipster with a few modifications works best. My biggest beef with the original hipster is that it falls apart and it's not very user-friendly. That binder clip had to go. So I got some binding rings (½" I think, but the exact size isn't critical) and use a standard 3-hole punch to punch 2 holes in the index cards, and bind it with 2 rings. This makes a more book-like planner, which nicely folds over on itself.

Now, those rings can be pesky to open and close so I decided not to. I snip a little cut from the edge of the cards I want to be removeable to the holes. They stay in but will come right out and go right in without struggle.

I also like to print some forms (as you've seen). These I just print on regular paper and trim to size with a guillotine then hole punch (no snips, that works best on cardstock).

I made front and back covers out of a cereal box and duct tape, and even a pen holder out of duct tape. I'll post a picture soon so you can see.

My planner consists of a few reference pages I printed out (including a circle of fifths, a few airport kneeboards, performance data for my favorite planes, and morse code… anything you can find a PDF for.), my weekly calendar/todo list pages, and a bunch of index cards that I use for notes, moments of inspiration, or whatever else they come in handy for. Oh, and a paperclip to mark the current week. I only have to reprint/refill the weekly pages about once every 3 months or so.

For printing things, I wrote a script that automates some of what I mentioned in previous posts.


Token Bucket of Life

When it comes down to it, the secret of productivity is to just do it. In our line of work, it's not as simple as you're either chopping a tree down or you're not. So it's easy to get distracted on tangential or unrelated tasks and trains of thought. If I didn't know people personally who somehow manage to avoid this trap most of the time, I'd think it was impossible. For the rest of us, I present a nifty trick.

Grab two condiment bowls, shot glasses, rolls of tape, whatever. Now grab some glass "stones", some pebbles, some M&Ms, whatever. The former are buckets. The latter are tokens. Put all the tokens into bucket A.

Now for every hour you work (really), move a token from bucket A to bucket B. Do this every day for a week and keep a tally. This will show you how much time you are working and how much time you are squandering. It will be depressing. Don't let your boss see.

Now decide how much time you will permit yourself to squander. You might feel that should be 0, or maybe you feel you deserve an hour a day. No matter what you feel it should be, make a realistic goal at this point. It's just like physical excercise you know. So figure out the ratio between work time and play time. 4:1 makes the math convenient, so let's take that ratio. Now, for every hour you work you bring a token from A to B. It represents 4 quarter hours in bucket A, but only 1 quarter hour in bucket B. That is, you get to play 15 minutes for every token you have in B. Think of it as a bank account. If you don't got no tokens in the play bucket, you work. If you do, you might keep working because you're in the zone. But you might play, because you have the tokens to do so. So play, and play guilt free. The guilt-free recreation is as important as anything here. If you can't bring yourself to give yourself permission to play at work, then split it up between stuff you hate and stuff you enjoy. You do enjoy some aspect of your work, no?

This is just a slightly-modified token bucket scheme, like that used in network shaping (e.g. Quality of Service). When I first came up with it, I was inspired by "token economics" which was suggested for potty training. When I had the system going for a day or two, and was working on a QoS presentation, it dawned on me that what I had here was a token bucket. That makes it all the more cool.

What good is it? I think it's an effective tool for a couple of reasons: it's simple, unobtrusive, and authoritative. It keeps you accountable, both to it and to yourself, and to anyone who looks on that knows what it means. It doesn't nag you, nor is it susceptible to your rationalizations. It's easy to reset or set aside when it doesn't apply (when a deadline looms and you don't have time to play at all). The only habit you need to get into is checking your account before playing. But if you fail to remember, you can always adjust the totals retroactively, in which case although you may have overdrawn you will still see the state of affairs, and have an opportunity for introspection.

Now if you'll excuse me, my play bucket just ran out.



When I was in grade school, I used to bring my homework from and to school folded up in my back pocket. Life was simpler then. I always knew exactly what I had on my plate at any moment by checking my back pocket.

Fast-forward to the era of planners, PDAs, and productivity software. I've gone through all the phases. None of them fit, but I took something away from each. These days I know what I want, and none of the traditional solutions come close.

I want something analog, very simple, compact, and easy to put together. When I came across the Hipster PDA I thought I had found it, but I soon found that even the hipster wasn't easy enough. I didn't like even the smallest binder clips or paperclips because they had to be removed to actually use it. Rings didn't suit my fancy either. Loose index cards are of course a disaster. The supply of index cards got almost as unwieldy as the hipster itself. To top it all off, blank index cards alone wasn't quite enough structure. So it fell into disuse.

Then I found the D*I*Y Planner, most notably their Hipster PDA edition. This added some structure and beauty, so I gave it a try. I soon decided that printing onto index cards is completely infeasible without special equipment. So that was out, alas.

The other day, I came across PocketMod. Here was something not entirely unlike the homework in my back pocket. It had some structure, it was easy and simple and cheap. It was perfect, except… I don't want to visit a website and run a flash app every time I want to print one. What if the website disappears? And what if I want to add custom pages? (There's a Windows app for that but I don't use Windows.) Also, the printouts generated by the flash app aren't quite right—the fold points aren't on the center and so the end result is a little sloppy-looking. I wish the US used A4 paper, but that's beyond my control at the moment (though I might consider ordering some online…). So the pocketmod flash applet had to be replaced.

So I decided to combine the D*I*Y Hipster and some scripting magic, and the result is hipmod. Thanks to the magic of Multivalent (I was going to use pdftk but it's segfaulting on my laptop for some reason) I can now create hipmods including whatever PDF of interest I find lying around. See the README for more information. Here's a screenshot:

2-week hipmod


Wetware Unit Tests

This guy's personal unit tests idea is pretty funny, but it does give one pause. I think he might be onto something there—it's probably much more productive to take stock of how you've done in the past day/week than to write/ponder todo lists for the coming day/week,at least as far as these sort of "maintenance" tasks go. Being aware is half the battle, or more, and I like the focus on "how did I do, where do I sit" versus "I'm going to totally do all these things today, yeah! Oh, right after I finish slashdot..."


Be Adequate

"That was adequate" is the catchphrase you'd have heard Monday on the set of
"Prairie Home," shooting this month at the Fitzgerald Theater. It's a
favorite way for director Robert Altman to indicate he's shot enough takes of
a scene. When an actor gets a "more than adequate," says Virginia Madsen, who
plays an angel, "that means it's good." (Hewitt)

That's someone else's words that catch the gist of GK's introduction to "Make it Adequate". It was pretty enjoyable, but more than that, it made me think. And then I thought some more. And now I will share my thoughts about being adequate.

A large part of success, the largest part I wager, is just showing up and doing "it". Want to succeed in school? Read the book before class, show up to class, and do the homework. Want to be a skilled musician (erm, I mean skilled performer)? Practice every day for an hour for a couple of years. Want to be a l337 programmer? Write lots of programs.

Altman, GK, et al aren't the first ones to come up with or inspire this idea. President Kimball said "Do It". Nike said "Just Do It" (but I think they were just trying to sell shoes). 37 Signals has a whole book on the concept applied to web programming, called Getting Real. You've heard the phrases "just dive in", "show up", and "release early, release often" and others like them.

The place I've seen the tendency to not just do it in my life, is in software. I have a tendency to overdesign things. I like designing and dreaming more than sitting down and implementing. It's good to have a good design. It's better to have software running. I try to let my feet hit the pavement after the basic design phase (if I decide to do the project at all - another importan mantra is "don't bite off more than you can chew"), and when I do I feel more successful and have more to show for my work.

Don't get caught up in overanalysis or overperfection. Just go do it and be adequate in many things. You'll like the result better than being perfect in a couple of things.

Listen to the November 25, 2006 A Prairie Home Companion online, at least to the first few minutes of Segment 2.

Oh, and by the way, I thought that the movie was adequate. It was interesting to see how the show works on stage and to see GK instead of just hear him.



Some things decided to line up this week, and Kathy Sierra's post on The Asymptotic Twitter Curve was the thought catalyst.

This is the last week before finals, which means lots of catching up and studying. I had 4 homeworks/projects to do this week, which in grad school means nothing shy of 30 hours, plus grading homeworks and going to class and studying for finals. In other words, it's a busy week. Whenever I get this busy, it casts into stark contrast how utterly inefficient I am most of the time. More than anything else, this "in-the-loop" she talks about addiction is the reason why. It's not that I didn't know that already, I figured that out a long time ago. I've even learned a few techniques for getting myself out of the loop temporarily so I can get into the zone. Things like close the laptop, or actually leave the laptop in the office and go to the library or for a walk if I just need thinking time. I read RSS feeds and blogs at the same time every day and don't leave the reader open. If I'm working on the computer, I love OS X's hide feature. It's not winking at me from the status bar, it's as if the program isn't even open. I don't have a big problem with IM because unless someone's talking to me (and I'm not that popular) it's as if it doesn't exist. I do find myself checking IRC when I'm not in the zone, but if I can get past the IRC hump I know I'm on the right track. In fact, you could say I keep IRC around as a canary. When the canary croaks, I know I might be being productive.

I've been using Thunderbird for awhile, for various pragmatic reasons. This is becoming a problem for two reasons. First, I miss the opportunity to train my bayesian filter when it makes mistakes, and it's letting more spam through. Second, Thunderbird tells me when I have new mail which is a zone breaker, and it's usually spam. I was bashing Thunderbird for different but well-deserved reasons the other day, and it gave me a guilt trip that I left mutt in the first place.

Another thing that happened is MacIrssi consistently crashed on joining #opengl, for no good reason. Also, my final graphics program is a bit of a memory hogg and MacIrssi was taking more than its fair share.

So the crux is I'm going to migrate away from Thunderbird and MacIrssi back to Mutt and Irssi in a screen session. Then I can detach from that screen, and the zone breakers are out of sight and out of mind. I'm going to spend more time at the library away from the computer.

Why am I telling you this? I could have just posted a link and said "go read this, it's a good post". The primary reason is that Irssi in a screen session has no way of telling me that you PM'd me until I open it up. (MacIrssi used growl) So if you need my attention (and we all do need eachother's attention sometimes), use Jabber. Jabber is like instant email, in that it stores your message and forwards it when I get online. I won't miss it even if the computer is on and I'm just AFK. If you just want to tell me about your cute puppy's new hairdo, stick to IRC or email. If you need help or want to tell me about that awesome loaf of bread you made, Jabber. So now that you know, I won't have to worry about missing anything by stashing IRC away in a screen session.