Faces of GUADEC ‘09 - Part 2

Somehow, Planet picked up my the now-deleted first draft of this post. Much love for accidental ‘Submit’ button presses.

As I was saying before:

Since returning to Canada from GUADEC, I have not sat still long enough to make this blog post.

The Gnome Foundation was awesome enough to sponsor me to come. Without their help, I would not have had the chance to meet a lot of great people!

[Read more]

Adventures

July 10, 10:30 (+1) - Wake up July 10, 12:00 (+1) - Lounge around July 10, 20:00 (+1) - Farewell party July 11, 05:00 (+1) - Airport taxi July 11, 06:20 (+1) - Spanair 5005 to Madrid July 11, 13:00 (+2) - Air Canada 837 to Toronto July 11, 17:00 (-4) - Family gathering July 11, 22:00 (-4) - Finally home July 12, 12:00 (-4) - Wake up

[Read more]

adVentures in maIl - wEek 6

This week I am at GUADEC. I have been lucky to see a great number of talks and talk with some great people.

I have not had an unproductive week, however.

Over the past week, I have written the code to connection asyncronously to an IMAP server and do some -basic- IMAP parsing.

From latest git commit:

IMAPFolder

  • tracks overall folder uid list
  • count of messages in the folder
  • has data_in and data_out GIO streams
  • change_state()
    • checks if folder is in the IDLE state and sends DONE command if necessary to perform another command
  • new_search()
    • creates a new search object
    • changes state to ‘searchlist’ with the tag of the

Using a basic state variable on the IMAPFolder object to control behaviour depending on the current state. Eg. ignore EXISTS and EXPUNGED while waiting for the results of an IMAP serach.

[Read more]

GUADEC

I’m leaving tomorrow for Las Palmas de Gran Canaria.

I was lucky enough to be sponsored by the GUADEC travel committee! I’m thrilled to meet some great new people.

[Read more]

Adventures in Mail - Week 5

Sorry for the late post everyone. I’m prepping to fly to Gran Canaria tomorrow for GUADEC. (Early, I know).

this last week was filled with other work and planning for my own project.

I have a finalized idea of how the service back end will track lists.

It is unlikely that I will be using Twisted for my server connectivity. Instead, I am currently using GNIO through pybank / girepository.

[Read more]

Python Twisted

Twitter-esque entry #241011: Investivating Twisted for asyncronous connection directly to IMAP

[Read more]

Adventures in Mail - Week 3

I have successfully modularized my code. My DBus API now has little trace of IMAP-ism and my cache is working fully asyncronously. It has been a week of learning. Being asyncronous was hurting my brain initially. I’m getting used to it.

This past week:

  • Fought with Git
  • Cleaned code
  • Separated code into module files
  • Fetch data using UID instead of IMAP folder sequence number
    • This will be useful for when I’m not dealing with IMAP-based mail
  • Fetch mail from the local cache if it is present, otherwise, ask the server
  • Started code to enable the fetching of specific mime parts from a message

That’s about it for this week!

[Read more]

Adventures in Mail - Week 2

Little progress this week, unfortunately. Some unrelated work got in my way.

The last week was spent discussing how I want to have the DBus API and the storage backend communicate.

My TODO list was:

  • DBus API needs to be totally independent of the cache
  • Store raw RFC822 messages in a Maildir-esque local cache

Information requested of the DBus objects will send the request through to the storage backend which will now search for it locally but hit the server if the required information is required. This is rudimentary at the moment.

[Read more]

Adventures in Mail - Week 1

I started coding during the community bonding period.

During this phase I laid out the DBus API for mail, started a basic Command module that will control configuration data. Mail will be broken down into objects.

Most of this time was spent figuring out how to handle asynchronous requests of the mail server. Initially, I am using a bunch of threads and a queue for them to pull work from.

[Read more]

Using Evolution and Thunderbird right now

Thunderbird has my Funambol plugin so I can sync with my Blackberry. Evolution handles signatures in a way that I agree with. Thunderbird looks nicer. Evolution doesn’t need to be told to fetch messages from all of my IMAP folders Thunderbird has superior message threading. Evolution is a Gnome app. Thunderbird can mark messages deleted, instead of moving them to some weird Trash folder. Thunderbird doesn’t have the ugliest default addressbook of all time.

[Read more]