Subscribe to RSS Subscribe to Comments


I’m busy. And like everyone and his brother (although not my brother), I’ve read David Allen’s Getting Things Done (GTD) and thought about how his organizational theories might line up with the way I work.  If you’re uninitiated, GTD is a collection of methods and tidbits that Allen says are better for keeping your projects organized and your head clear than the old-fashioned alternatives.  It has quite a following, and I like a fair number of the informational nuggets inside.

The trouble is implementing GTD in software — there are a zillion and a half software solutions, all of which are single-purpose, incompatible with each other, and walled data gardens.  Most are not even cross-platform, nor do they support networked backends, meaning you must keep duplicate copies of your info and worry about syncing it. I’ve learned to dislike such solutions for personal data — I want my personal wiki to be available to me wherever I am, I want my addressbook available on every device where I might need to call, email, or send an IM, etc.  So I don’t want my GTD projects sealed in a single-purpose app on one computer.

I have found a GTD Web app that I like quite a bit: Tracks.  It is free software (of course), it is simple in its interface, and it provides output data in a lot of useful formats — including iCalendar feeds. I can access and update Tracks from desktop Linux, Mac, Blackberry, Maemo, and Symbian platforms — all of which I use regularly. The only trouble is that it produces read-only feeds, meaning it does not integrate into any of the available calendaring apps. That would be too easy.

But more importantly, looking at Tracks got me thinking about how to represent GTD information in a standard format. Since it is essentially calendar scheduling and to-do management on roids, the best fit of any RFC’ed standard is VTODO.  Lots of calendaring apps already support VTODO, although in most it takes a back seat to VCALENDAR.

The question is how to represent GTD’s unique ideas in VTODO. As a refresher, the important concepts in GTD are that you track “next actions” — single-step to-dos that are more easily managed and attacked than large-scale projects.   But you also keep track of projects as a whole, and you sort your next actions by context — at home, in the garage, calls to make, emails to send, etc.

Though individual VTODO tasks are a natural fit for next actions, how to map projects and contexts is not as clear.  VTODO has 33 defined properties (although two of them are mutually exclusive, if I read correctly).  Some are basic (description), some are calendar-like (duration), some computery (geolocation), some Exchange-like but potentially useful (attendees).

The “categories” property seems to be the only real option for GTD incorporation — but is it better used as a “project” field or as a “context” field? Whichever you choose, the other field will have to be represented some other way, perhaps as an iCalendar calendar. That is because VTODO items must belong to an iCalendar; they cannot be separate. Thus you cannot just have a single calendar for all of your GTD items. You could have one calendar for each context, and within it use VTODO “categories” for each project, or you could have one calendar for each project, and use the VTODO category to denote the context associated with the action. Which is better?

At first glance, it seems like one calendar per context is better; contexts are less transient than projects, and if you wanted to make certain contexts available only on certain devices, the calendar subscription method makes that possible.  What doesn’t work so well is that most calendaring apps don’t pay much attention to “categories” support — predefined categories are always trite alternatives like “work” and “birthdays,” you cannot create new categories from within the task manager, you cannot vary display colors on the basis of category, and so on. You are also supposed to be able to assign multiple categories to a VTODO task, but that is also unsupported in the client apps I have tried — Thunderbird, Chandler, Evolution, probably some more….

In fact, as I am typing this entry right now, I’ve discovered that I cannot open and edit existing tasks in Thunderbird/Lightning.  I can right-click and access menus for progress, priority, and calendar, but progress and priority are grayed out.  I certainly can’t change the due date, location, or status.

I guess the ultimate question is why are there so many single-purpose GTD silo apps out there, while our existing calendar applications need so much work on task support. Am I missing something? Is there a killer task-supporting calendar out there?

PhotoCD conversion II: photometric boogaloo

Way, way back in aught 7, I wrote this rarely-read piece about the trials of converting the legacy PhotoCD (.pcd) format into something useful on a modern day computing machine.  The principle problem was that since no new files were being produced in .pcd format, the knowledge of how to correctly decode them was slowly beginning to atrophy, even though the spec was open and the source code to tools like ImageMagick was open as well.

Just last week, I received an email from Ted Felix, the PhotoCD decoding ninja who did all of the groundwork for the applications I mentioned in the original article. Since the piece has gone into read-only archive mode following the transfer of from SourceForge to the Linux Foundation, I’m posting the info Ted sent to me here, instead.

The news is the launch of a new command-line tool called pcdtojpeg. Pcdtojpeg appears to use Ted’s luminance look-up-table (LUT), which correctly converts from .pcd’s weird PhotoYCC color model to standard sRGB without blasting out the highlights. I haven’t used it yet to report on any other fancy features, but it’s good to see work in this area continue.  I only wish it were pcdtotiff….

Only YOU can prevent lame free graphics software

If you haven’t already, please go over to this Pledgie campaign page and make a modest donation to help support the best volunteer-driven event for people who use free software and love graphics: Libre Graphics Meeting 2009.

LGM is half-workshop and half-conference; developers that work on all sorts of graphics programs gather together and collaborate on tools that make graphics better — we’re talking photography apps, drawing apps, pub design, 3D modeling, fonts, and this year even video editing.  But there are also a lot of “behind the scenes” projects and libraries that make an important contribution, too — from rendering SVGs to managing color to printing.  When the teams that build these libraries and applications get together in one place, it enables more innovation, better communication, and makes all of the apps rock that much faster.

But LGM has no corporate overlord to make it happen; it is completely volunteer-driven and self-supported.  There is no expo floor and there is no entrance fee; the conference depends on the kindness of the community to make the venue, accommodations, and travel possible.  And for the past three years, the community has come through admirably — helping bring the conference together and in turn reaping the rewards of better graphics on Linux, UNIX, Macs, and even Windows.

But wait, didn’t I say that LGM was only half workshop?  That’s true, because even if you’re not a developer, you’re welcome to attend,  and attend free of charge. You can learn how to help out, learn how to make better use of the graphics apps that you already love, learn about applications and features that are brand-new, plus enjoy demos and performances from the free graphics community.

So if you edit photos, sketch, paint, design, or build in 3D, for fun or for work, you’ve got something waiting for you at LGM 2009. And even if you can’t make it to Montreal on May 6-9, you can help make the conference bigger and better for everybody. All you have to do is visit the LGM Pledgie page and make a small donation.  Why not now?

Click here to lend your support to: Support the Libre Graphics Meeting and make a donation at !

Tomboy for the notify!


Java for the notify!


« Previous PageNext Page »

Based on FluidityTheme Redesigned by Kaushal Sheth