The Perfect GTD System
Over the past few years, I have tried several online methods for Getting Things Done. While there are some very good tools out there, I found a few things that were a little disheartening. The system is sound and should be fairly simple to implement via software. There are a great deal of attempts to do this, but all of them fall short somewhere. Fortunately, all the pieces exist. Unfortunately, they are all parts of different projects. I thought I would take a second to describe a perfect world scenario.
A perfect world GTD system should be:
Beautiful? – One of the apps that I really fell in love with was Things. Things has a great user interface. It’s not that it is particularly complex, intricate, or inventive. It is just well laid out, and makes sense. It doesn’t rely on any new GUI trickery. It just – is. It’s a beautiful app. The perfect world desktop gui app should be like this.
Online. My other favorite GTD system is Remember the Milk. While it is mainly an online app, and there is no really good desktop app, it allows you to do very powerful things. It allows you to textually define a very complex app with an equally complex set of behaviors very simply. Pair this with quicksilver, and it’s really simple to bark out orders to your GTD system.
Mobile. I have yet to find a good mobile app for GTD. I don’t think that it’s a problem with developers, I think it’s a problem with real estate. The small screens just don’t map well to do a full GTD app. This doesn’t matter to me too much, as when I do GTD with a mobile system, I really only use it in the context of calls and errands.
GTD is not hard to implement. It does not rely on space age technology. For the most part, I do a great deal of GTD with a pen and a notebook (Lamy Safari and Field Notes Brand, if you must know).
So, in a perfect world, I would have:
A desktop front end to Remember the Milk. This front end would be beautiful. I would even settle for pretty hot, if i had to. Thinking more and more about it, since it wouldn’t rely too heavily on fancy GUI tricks, it might be possible to run it with a cross platform GUI.
The app would haul in the present remember the milk tasks via the API. Then, it would populate the interface. At that point, you could just play away, using drag and drop, sorting, and all the other GUI tricks. When you’re done, sync again, and you’re good to go.
Since it would be based on the Remember the Milk API, all the hard work is done. It would just be a matter of developing the GUI and the sync process. It all begins to sound pretty simple.
Although I am a mac/linux guy, and don’t have much exposure to windows, it seems like it would be a good idea to make this app cross platform. It doesn’t rely on platform specific GUI tricks, it would be nice for everyone to be able to use it, and it might be a good way to learn a new framework.
Thinking this through, I am half tempted to start playing with this. My biggest problem is that I haven’t messed with cross platform GUI’s in a very long time. The way I see it is, I can choose from the following:
Google Web Toolkit – This is a web based java toolkit. It would be a little bit of a kludge, but the trick is, all the GUI widgets you would need are there. It could be truly cross platform, and even kinda neat. Unfortunately, my java skills are rusty. I doubt it would take more than a day or two to get up to speed, though.
qt – This is a cross platform, full featured c++ gui builder. It’s pretty much the bomb. the only trick is, it costs $3,600 per seat to develop UNLESS you develop open source. I wouldn’t have a problem releasing this open source, but if I did, I would like to have some help with the project. Plus, qt is just a great system to develop with.
Pharo/Smalltalk – I LOVE this environment. It’s free. It’s well designed. It’s a joy to use. The only thing I am not sure about is how this works for developing stand alone GUI apps. I have used it to develop Seaside apps, but I have not developed a stand alone app.
If anyone has any other ideas, I would love to hear them.