I've been thinking of writing an application (for OS X) for managing my lists.
I manage all my to-do's currently using text files and emacs. I like the flexibility and ease of editing it provides, but I've been thinking about ways to improve the system.
I've been thinking about extending the idea of "tags" (a la del.icio.us) to my to-do list.
It seems like one of the most powerful suggestions that I got out of GTD is the idea of contextual lists. However, the problem is that one to-do may not apply to only one context.
The idea being that you can apply any number of tags to an item. I.e. the item "Bounce tagged to-do idea off 43folders" could have the tags "email", "online" and "low energy".
Then when deciding the proper context for any given moment, you have can define it with a lot more flexibility.
it gives me great temptation to put my todo lists on the web in
Socialtext wiki pages and tag them with delicious as is. (or take
pictures of my todo lists and tag with Flickr). the objective of both
is to get some broader audience aware of what I'm up to.
tags are certainly more useful than say categories for the task
because the understanding is that you can create tags on the fly and
use them for as long as you need them and then ignore them.
Have you thought about using Gmail's mail tagging and filtering for
your todo lists? Email yourself reminders, and have Gmail auto-tag
things for you. That handles the intimacy gradient problem of not
wanting to expose your todos to the world, though it doesn't get you
offline todo'ing away from the wifi electrosmog.
On Sat, 11 Dec 2004 23:20:55 -0500, Zach Paine <zach.pa...@gmail.com> wrote:
> I've been thinking of writing an application (for OS X) for managing my
> lists.
> I manage all my to-do's currently using text files and emacs. I like
> the flexibility and ease of editing it provides, but I've been thinking
> about ways to improve the system.
> I've been thinking about extending the idea of "tags" (a la
> del.icio.us) to my to-do list.
> It seems like one of the most powerful suggestions that I got out of
> GTD is the idea of contextual lists. However, the problem is that one
> to-do may not apply to only one context.
> The idea being that you can apply any number of tags to an item. I.e.
> the item "Bounce tagged to-do idea off 43folders" could have the tags
> "email", "online" and "low energy".
> Then when deciding the proper context for any given moment, you have
> can define it with a lot more flexibility.
> Comments, suggestions, flames?
> -Zach
-- Edward Vielmetti in Ann Arbor, MI 48104
+1 734 276 5910 / skype: edwardvielmetti
> Have you thought about using Gmail's mail tagging and filtering for
> your todo lists? Email yourself reminders, and have Gmail auto-tag
> things for you. That handles the intimacy gradient problem of not
> wanting to expose your todos to the world, though it doesn't get you
> offline todo'ing away from the wifi electrosmog.
Interesting idea. One of the reasons I really like my current emacs
scheme is the speed with which I can wrangle my lists. I think the
added layers of complexity that would be inherent in using email might
be less than optimal. I think that a low-threshold of pain in
creating to-do's and editing them is really important to the system.
I have also been thinking that since I maintain my text files in
Markdown, it might be nice to have pages automatically generated. Maybe I should look into a wiki. I'd like to hear why people prefer a
wiki over other GTD methodologies. Perhaps in a different thread
though ;-)
Cool idea. I've been thinking about doing something similar, and I'm curious to see how you'll implement it.
What would be especially neat would be if you'd keep it non-platform-dependent, so the non-mac crowd could use it too. Maybe the backend in Ruby/perl/python or even Java/C/C++ so it's portable, but the GUI done up in pretty Mac OS X (aqua?) happiness.
I'm most tempted to do it coupled with SQL, but that brings in a bunch of added dependencies that are uncool. Since you're already an emacs user, have you considered doing something in elisp? Maybe you could couple it with the beautiful EmacsWiki mode. Personally, I think I'll take a stab at writing something in Java, mainly because I'm trying to learn it.
I'm just rambling here, jotting down ideas as they come to me. I'd like to watch this in the making, if you'd do the hacking publicly. Good luck!
> What would be especially neat would be if you'd keep it
> non-platform-dependent, so the non-mac crowd could use it too. Maybe
> the backend in Ruby/perl/python or even Java/C/C++ so it's portable,
> but the GUI done up in pretty Mac OS X (aqua?) happiness.
Yeah there is certainly some advantage to doing that. I think that if platform-independence turns out to be desirable, I'd like to do something web-based. Perhaps using some crazy-cool javascript foo to create a nice interface. I think gmail has shown that web-interfaces can be as good (if not better.. yes I'm looking at you Outlook) than traditional GUI's.
> I'm most tempted to do it coupled with SQL, but that brings in a bunch
> of added dependencies that are uncool. Since you're already an emacs
> user, have you considered doing something in elisp? Maybe you could
> couple it with the beautiful EmacsWiki mode. Personally, I think I'll
> take a stab at writing something in Java, mainly because I'm trying to
> learn it.
I should take a look at this EmacsWiki mode. I've heard a bit about it, but haven't invested the time in learning about it.
> I'm just rambling here, jotting down ideas as they come to me. I'd like
> to watch this in the making, if you'd do the hacking publicly. Good
> luck!
At this point, I'm definitely looking for public rambling, so thank you. If if this turns out to be something that I actually undertake, I would like to make it public in some form, perhaps as an open source project.
I have thought about the same thing (see http://joshwand.com/blog/archives/000022.html). Outliner, wiki, tags, calendar-views, user-scripting, plugins, search-nodes, browser-based, portable, etc. I would love to put in in "Rich DHTML" as Jon Udell calls it, for max portability.
I already have a lot of the architecture mapped out for how to make this work, and some of the hard work has already been done (tiddlywiki, activerenderer, del.icio.us, etc)... I'm not a professional coder anymore, but If you are (or know) a coder who could contribute (rich dhtml + a php backend), please let me know what you can do. I am *so* up for making this happen, as an open source project, or otherwise.
I tried something very like that on the Palm, using ShadowPlan (which has a wonderful built-in system of tags). My tages included contexts, times (BusinessHours, Anytime, Evenings, Weekends, etc), People (I listed the people I commonly interact with)--it was very helpful to be able to filter based on multiple tags on occasion, but it made the inputting of NAs take just a little longer, and that was enough to make it too cumbersome. I think someone else, in their reply to this question, pointed out that it has to be REALLY easy to input your NAs or else you won't do it. hth Ben
short description more details on the second line tag tag tag space separated
Presentation is really simple, just store all the entries in some data structure, show only entries whose tag fits the current view. This should be really easy.
The harder part is editing your entries, but even that shouldn't be too bad. Perhaps each task should be assigned a specific id, stored in the text file. Downside is that now the text file is slightly less intelligible, upside is ease of locating one task. Wait, nevermind, each task's short description should be unique. So, when we want to edit, we search our database (text file) on the short description, serve up the appropriate info in text fields ready to be edited, then write the changes into the text file.
Of course, if you're making this publicly available via some server (as a web app), you'd have to handle security issues, but that's pretty much a solved problem, right?
Biggest drawback, as I see it, is that database access will be slow. Maybe that doesn't matter so much for one user running the app locally.
One cool feature would be the ability to search on two tags as an AND. I could pick "@office" and "lowenergy" and I'd only see the tasks that have both tags.
If you implement it as a web app, maybe it'd have some implications for group project planning. Might turn out to be some pretty useful software.
Like other people in this thread, I've been thinking about much the same thing.
I've been working on it from the usability end, trying to isolate exactly what the simplest set of archetypical behaviors are for using a contextual system of this sort. (That's partly what the index card photoset I posted was in aid of.) It's mixed in with some other stuff that I can't show at the moment, but my goal for this weekend is to get what I can share separated out from what I can't. We'll see. :) I'll reply here when I've worked it out a bit more...
After working on this a bit and reading the thread more, it seems to be a common view on this group that:
1. When you're using just one computer, or one operating system, it's easy to pick whatever tool (outlook, tinderbox, etc.) suits your needs best, and...
2. When you start moving from computer to computer, and _definitely_ when you move around boxes with multiple OS's, that becomes a problem, and....
3. The workarounds that exist seem to involve managing a pile of text files, a wiki or two, some webmail, a blog, a del.icio.us inbox, and a bunch of other stuff that _almost_ meshes together, but hasn't been designed, to, and so you spend a _lot_ more time than you should fiddling with your tools instead of working.
Okay. We have vaguely defined a problem (although I'd like to bash at it a bit more).
Accepting that for the moment, the proper solution for our problem seems to be something like the following:
* a kind of tag-based "glue" that applies tags to our data and allows us to hyperlink it together: like del.icio.us for the hard drive, tweaked for gtd
* a way to access that "glue" via the web (has anyone had a chance to check out BSAG's GTD On Rails webapp, BTW?), and edit it remotely. (this could be via export to a wiki from Markdown-formatted text files via your text editor?)
* It should get the hell out of your way, and not reinvent the wheel. I *have* a text editor. I'm writing this post in it now. I *have* Quicksilver; I use it all the time. I use instiki all the time, and blogging software (LiveJournal in my case).
Like I said, I have some concept work done (no code: I'm a product/usability designer, not a coder) that I can share, once I've decided what should and shouldn't be. But since we've all gathered here and we all seem to have the same itch, doesn't it make sense to cooperate on scratching it? My US$0.02, adjusted for inflation.
ewwww DHTML... I'm a complete amateur at all of this (only just a high school grad, taking a gap year before starting college next fall), but what little I've learned about web design has totally turned me off in regards to anything javascript. Bloody IE...
As for the "get the hell out of your way" approach, I totally agree. Could we write a back end in <insert favorite language here> that can integrate with any text editor? I don't know what the capabilites are, but I thought I read somewhere that software like Textmate can use Ruby scripts? What about emacs? Can you import other code through elisp? Any scripting language would do well, especially because of how portable it would be to a web app.
An added advantage of storing everything in a text file is that anyone who knows the workings of the app can just add new tasks by appending data to the file, whether with that quicksilver trick or just from a command line.
data storage: structured text files are good... you should be able to dump text in and out (e.g. from a texteditor, to a blogging tool) relatively seamlessly.
persistence: ideally, should save after each edit. doing this in the browser is non-trivial (how does JS handle filesystem stuff? security restrictions?). What about webDAV? XML-Http? If all else fails, manual save should be possible. I would LOVE to be able to stick the whole thing on a usb thumb drive and run it from there, on multiple platforms.
architecture: max cross-platform compatibility appears to be a priority... The way I see it, it should be able to run locally, and sync with a backend for backup, or for other functionality (notifications/reminders, export to wiki or other db, hooks to whatever). I plan to study the gmail, and google suggest (livesearch) architectures for clues. But DHTML + XML/HTTP + robust server backend seems like a good place to start.
what kinds of data nodes are we talking about, by the way? full-fledged wiki content? todos? something in between?
more thinking out loud.... --Josh (the other one)
PS: the google groups web interface sucks... what's a better way to read individual threads?