rock’n roll

December 28, 2005

working with address book

Filed under: mail — dinhviethoa @ 1:18 am

In etpanX, I need an address book to choose easily the recipient when writing a message.
I could use my own format such as abook did. But that would imply writing an address book editor, which is not my goal. And for interoperability reasons, this would not be a smart choice. Then, I think that for address book format, vCard is the best choice since much address book programs can export to this format.

This format was first designed by versit consortium (which as Apple, IBM and Siemens). This is mostly a standard by use but this is now an internet standard (RFC 2426).

Now, which parser to use ?

  • KDE uses its own parser in kdelibs.
  • mozilla uses its own parser (embedded).
  • rolo has implemented its vcard library (LGPL).
  • we can find ccard (MPL).
  • gnome-pim uses its own parser.

In mozilla, in fact, we can find a parser that is based on an old code from versit consortium (libversit). That code is free for all usage. Then I choose to use that. Though, it needed some fixes so that it works with vcard files generated by Mac OS X Address Book.app. By searching on the internet, I could find some version of this vcard parser that had the source of the parser.

There are no much choice to use a vcard parser without breaking the licence (which is planned to be BSD for etpanX). libversit will be used.

December 23, 2005

IMAP filters

Filed under: mail — dinhviethoa @ 6:48 pm

1. History
Most of mailers had IMAP filters rather lately or do not have it. Mac OS X Mail.app, Evolution and Thunderbird have them. Kmail had it lately. Outlook or Sylpheed still do not have mail filtering for IMAP. It looks like this is a difficult problem.

2. Sylpheed-Claws
Let’s take the example of sylpheed. Mail filters for Sylpheed-Claws are applied when retrieving POP mails, which works for POP accounts. This does not apply to IMAP model. In IMAP model, all messages are already the folder.
I implemented something that would give a first solution to this : processing. This is a mail filter that applied to a given mail folder.
Historically, this was introduced to get the same functionnality as Gnus. I was told that it was possible to delete automatically messages that were x days old.
The problem of this solution is that it introduces a performance problem. Everyone don’t want to apply filters on their folders.
We were obviously spending too much time filtering the messages.
To solve that, filters were not applied until some condition was raised : starting browsing the folder and at startup. We also added an option to disable it at startup.

3. Why not to use “processing” ?
Eventually, the use of processing was not that interesting. Most users did not understand the concept of “processing”, we had to define rules to apply before the folder specific rules, define rules to apply after the folder specific rules (when you have rules common to much folders) and there were the rules specific to the folder. Since filtering existed, the user did not understand the goal of “processing”. People did not use it. Then, we’d better not showing it.

4. Ideas for IMAP filtering
In fact, we don’t have to apply filters on all folders since messages that were already filtered will be in folders different that INBOX. We don’t need to filter them again. Then, we only need to apply filters on messages of INBOX.
One additional solution could be to mark messages when they are filtered, so that we evaluate the rules only once on the messages.
Now, we have to choose when to apply the filers. In etPanX, mailboxes will be regularly scanned (STATed) for new messages to update the counter of new messages per mailboxes. Then, before scanning the folders, we could first apply the filters rules on messages.

Update: I was told that sylpheed claws will now filter IMAP mails using filtering rules.

December 14, 2005

any fanatic ?

Filed under: life — dinhviethoa @ 1:24 am

star wars 1

star wars 1

what am I doing here ?

etpanX work

Filed under: book, mail, music — dinhviethoa @ 12:57 am

1. etpanX
I am back working on etpanX.

1.1. message viewer
- message viewer is mostly finished, text/html (lynx will be called to convert the content to text) and text/enriched can be viewed.
- attachment can be downloaded or opened.

TODO :
- show a list of non-visible attachment
- don’t show the entire list of recipient if it is too long

1.2 message list
- contextual menu has been implemented.
- ‘mark messages’ is not yet implemented.

TODO :
- message are not expunged yet
- option are not greyed out when needed

1.3. folder list
- progress indicator is on the folder list

TODO :
- mark folder as read
- contextual menu needs to be implemented

1.4. preferences
This part is a work-in-progress.

preferences

1.5. general
- drag & drop, filtering and spam filters are not yet implement

2. libetpan
An error has been done in libtool versioning of libetpan. This will be fixed in next release.

3. music
Listening to Sikth, Dredg, Static X.
DVD of Killswitch Engage is out.

4. books
Reading The Logic of Scientific Discovery — Karl R. Popper.
ISBN: 0415278449

December 2, 2005

Mac OS X developer

Filed under: mail — dinhviethoa @ 1:05 pm

1. Review of libetpan
Here some positive review about libetpan (and other IMAP libraries) :
http://www.theronge.com/2005/11/13/imap-libraries/

2. Mac OS X implementation of mail client
http://www.theronge.com/2005/11/24/another-day-and-more-progress/
Let’s wait and see the progress of this.

libetpan 0.41

Filed under: mail, music — dinhviethoa @ 12:56 pm

is out (as requested for sylpheed-claws)

1. libetpan
As requested by users, passphrase has been implemented in libetpan 0.41 (though, passphrase prompting is not yet implemented in etpan).
This also fixes a clash of symbols when libetpan was linked with GnuTLS and sylpheed-claws linked with OpenSSL.
sylpheed-claws was calling initialization of OpenSSL, then libetpan was thinking that initialization of GnuTLS was already called, then was making the calls to GnuTLS (through OpenSSL compatibility interface) without initialization.
That made the things crash.
The prefered solution was to use GnuTLS specific API when libetpan was compiled with GnuTLS.

2. music
- Steve Stevens (guitarist of Billy Idol)
- Al Di Meola
- Yes

Blog at WordPress.com.