Posted by Jerry Wed, Mar 28 '07

Some thoughts on Tomboy synchronization, mostly after looking up Conduit’s documentation:

  • Conduit’s fairly interesting. You have a platform, data sources (so that’s where I got the inspiration of this Tomboy idea from! Now it’s not original anymore. Need more thought. /frown) on one side, sinks on the other. There’s some interesting combinations going on, like Google Calendar to Hard Disk, F-Spot to Flickr. Me likes. :)
  • Cons: It only supplies a DBUS interface (or so it seems after clicking through some documentation?) and Evolution support isn’t complete. I’m not sure how well it’d work in a Networked Tomboy setup. It would likely be a better idea to use libedataserver first and then port it over when a global desktop synchronization service is available (Gnome 2.20? Not very near future?).
  • That being said, I’ve been having 2nd doubts about the data sources concept. Do we really want to reimplement Conduit’s wheel?

Remind self to start looking up how Evolution data management later.

# Posted in 14 years ago comments

SoC Anxiety Syndrome

Posted by Jerry Tue, Mar 27 '07

The good thing about hosting your own proposal during Google SoC ranking times is that you know when someone hits the page. It becomes hopelessly addictive. Hello Gnomers/Googlers, if you’re reading this! (waves)

The bad thing about hosting your own proposal during Google SoC ranking times as an article on Typo is that the visitors will have no way to leave comments after reading it (although reviewers probably wouldn’t go out of their way to leave comments for fairness sake…) and you have no way to know what kind of impression it left on them, yet anxiously hoping some kind soul would perhaps wander to the front page and point out the fatal error in your document that you’ve just happened to miss… I’m tempted to add a Meebo widget. And how about the occasional mystery visits with no http reference so it’s impossible to know where they’re coming from? Great Penguins, the suspense!! I know I’m going to lose sleep until mid-April. :(

And the deadline’s extended to Thursday 2am too. Must resist… temptation to write… more!

P.S – This will also be the first time in a few years I’ve pinged Petaling Street again. Be gentle, fellow Malaysians!

Edit – Oh yeah, and I blame anxiety for the blatantly obvious elementary-level typo. :S

# Posted in 14 years ago comments

Audioscrobbler sidebar, fixed?

Posted by Jerry Mon, Mar 19 '07

Tried making changes to the Audioscrobbler (aka sidebar plugin that never seemed to show up. Changed it in the sidebars admin to use the new API 1.0 xml feeds, and then the .rb file so it can parse the feed XPath correctly (As a side note, debugging Typo sidebar plugins is hard, no output text, any exceptions thrown simply makes it not rendered. Blah, the world needs a better plugin architecture. :p). And then it worked! Woot.

Posting code changes for TYPO_HOME/vendor/plugins/audioscrobbler_sidebar/audioscrobbler.rb:

<code class="ruby">
# we're replacing this procedure here
def parse(body)
    xml =
    self.items        = [] = "" # not really used
    self.title = "Recent Music"  # title of sidebar box
    XPath.each(xml, "//track/") do |elem|
      item =
      item.title       = XPath.match(elem, "name/text()").to_s
      item.artist       = XPath.match(elem, "artist/text()").to_s        = XPath.match(elem, "url/text()").to_s        = Time.mktime(*ParseDate.parsedate(XPath.match(elem, "date/text()").to_s))
      items << item
    self.items = items.sort_by { |item| }.reverse

It still doesn’t seem to refresh though. Hmm. :S

# Posted in 14 years ago comments

Networked Tomboy

Posted by Jerry Mon, Mar 19 '07

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)

Use Cases

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

# Posted in 14 years ago comments


Posted by Jerry Fri, Sep 09 '05


  1. Any of various large birds of prey of the New World family Cathartidae or of the Old World family Accipitridae, characteristically having dark plumage and a featherless head and neck and generally feeding on carrion.

  2. A person of a rapacious, predatory, or profiteering nature.

The NFC Vulture class file is a daemon-thread class that constantly checks and removs timed-out servers and clients, a process the author fondly writes as “eating the dead“. Adequate and very amusing analogy indeed.

Was going through the server-side source when I came across this chunk of code. Who said programming is boring? :)

# Posted in 15 years ago comments