Spent last hour planning and writing this proposal for Google Summer of Code 2007. It’s for Tomboy, an awesome note-taking application for Gnome. Although since last year we’ve already had a similar project it’s lost its novelty, but man, I really want to have these features. Crossing fingers for now, going to write 2 more proposals tomorrow or Tuesday. :)
Tomboy is a simple Gnome application for taking notes. It’s wonderful for simply inscribing random ideas, ticking off things to remind ourselves with and other significant amounts amounts of text. However, there is no way to share our Tomboy notes. To transfer a certain amount for text we could fall back to conventional methods of copy and pasting into an input window and then send it off via email or IM, or if the recipient/destination is nearby we could even transport the message physically (paper, or even voice!). However, we want to improve on that. This proposal aims to close this gap by implementing a tighter integration of text-sharing for the desktop.
This proposal covers 3 use cases: from 1 desktop to others on a LAN, from “my desktop” to “my friend”, and for “for myself, everywhere”. In the first case, the user indicates which Tomboy notes can be publicly accessible and they will be advertised on the network using Avahi, allowing other desktops to have quick access to them. In the second case, a method for sending Tomboy notes over the internet fully integrated into the Gnome desktop will be developed. One idea is to show a nautilus-sendto window (or similar) where IM contacts (we will use Gaim here) are shown and then gracefully import the note once received. In the 3rd case, we need to have some way to serve notes so that they are accessible anywhere. We can use publicly available note-sharing services, such as Google Notebook.
To summarize, these will be the deliverables:
- Gather and analyze current work on “Networked Tomboy”
- Implementation of note sharing using Avahi
- Integration of sending Tomboy notes to online IM contacts (Galago, Gaim)
- Develop a note data source framework. Build on framework to access Google Notebook
- Develop a synchronisation solution for multiple Tomboy instances (perhaps Conduit)
The 3 use cases, with interface usage concepts:
Desktop to desktop, on a LAN
Alice and Bob both use Tomboy on the office LAN. Alice would like to share static notes on a project they both work on. She selects a Publish option, and ticks off a number of notes to share.
Soon Bob clicks on “Shared notes on the network” and sees all notes available, sorted by source. He looks at Alice’s list of notes and selects one to view it. He may be allowed to edit it, or he can click to download the note for his own use.
From my desktop, to my friend
Jack and Jill have each other on their Gaim contact list. Jack wants to send the latest draft on their group homework to Jill, and sees that she is online. Jack opens up his draft in Tomboy, and clicks to send it via Gaim. A list of contacts online appear and he selects Jill. On Jill’s computer she sees Jack’s file transfer request and accepts it. The file appears in her Tomboy, ready for editing.
For myself, everywhere
Gary uses Tomboy at home, but in his office he works on a Windows computer. He keeps a checklist of things to do for the day, which he updates in Tomboy every morning. Back at the office, Gary wants to reminds himself to buy some groceries, so he opens up Google Notebook, selects his to-do list and adds to it. Later in the evening, Gary checks his Tomboy again to see his new list before leaving for the shops.
P.S – I don’t know how I came up with the use case names… they sound like marketing phrases. I probably watch too much advertisements. :P