[maemo-developers] Tags based todo application - a call for participation

From: Mathieu Boespflug mboes at tweag.net
Date: Fri Mar 30 02:22:31 EEST 2007
Hi list,

A few weeks ago I started writing some code for a new todo application
specifically for the Maemo platform that is lightweight and tuned for
fast usage, but powerful and flexible enough that it can cope with
rather complicated organizational needs. I've made a Google SoC
application relating to it, extracts of which I'm attaching below.

I would like to get some input on the usefulness of such an
application, what you would like to see it do, and perhaps comments on
the design presented in the GSoC application. My personal goals for
this kind of thing is for it to work really well with David Allen's
"Getting Things Done" methodology, but obviously different GUI
frontends supporting other methodologies could easily be supported!

Also, Quim has asked me if I could try finding a mentor for this
project. I take it there isn't any at the moment. Any takers?




I propose to write a contextual todo application making extensive use
of tags and filters, tailored for use as a supporting tool for the
"Getting Things Done" methodology by David Allen.

* Motivation

There currently exists a handful of applications on Maemo to keep
track of "todo" items. These range from the simple note taker to the
specialized but simple GPE-Todo. On the desktop however, there are
literally hundreds of applications for organizing tasks, from
command-line tools to web applications. Many of the web applications
are ill-suited for use in Maemo because of the relative lack of
responsiveness of the Opera navigator on the Nokia N800 device and
because many make heavy use of Ajax. Likewise, most GUI desktop
applications are not designed for an embedded setting, are expensive
in terms of resources or runtime dependencies, or lack features.

I propose to write a modular todo application written from the ground
up for Maemo in C that integrates well with user interface and other
applications on the platform. For convenience and particularly because
of the limited input capabilities of embedded devices, ideally such an
application would be capable of semi-automatic task creation, such as
automatically creating a task when emails matching a certain pattern
arrive in the Inbox of the mail client. Or a new entry is made in the
calendaring application.

* The Project

The project consists of at least two components.

The core component is a simple wrapper around a storage facility for
general todo items. It's role is to connect to the system D-Bus bus
and listen for signals from various applications, creating new todo
items in reaction to such signals if deemed necessary. The storage
facility would probably be an SQL table to allow for flexible an
efficient filtering over the data and constructing complex queries.

A number of simple components can then be built on top of this core
facility. A home applet with a single text field could be used to
collect rough notes quickly. A larger dedicated application should
also be implemented to view all items in the database, organize them
and add new ones. Such an application would ideally allow for easy use
of the GTD method, notably by separating "collection", "processing"
and "organization" phases, but be flexible enough that other ways of
working are possible too.

The system can be made very flexible and arbitrarily extensible by the
user. Beyond the generic notion of an "item", very little needs to
hardcoded. The system could allow for arbitrary terms (or tags) from
various "vocabularies" to be attached to any given item. The
vocabularies are arbitrary and new ones can be added at will. Examples
of vocabularies include "status", "projects", "context". Terms for
each of these would be "done", "new car", "at home", respectively.
Prepared queries can then be defined to generate lists of items that
contain some arbitrary combination of terms for one or more

Of course, this project is a unique opportunity to gather extensive
input from the community as to what people's specific needs are, and
the development of this project should reflect the needs of the
community, rather than make stringent choices and cast a design set in

More information about the maemo-developers mailing list