Partial message retrieval for POP

I just implemented partial message retrieval (only receiving the message of an E-mail, not the attachments) for POP in tinymail. This was an uncertainty that I had with some of the Nokia requirements: In contrast with IMAP is POP3 really a dumb protocol that knows nothing about MIME parts. Yet I succeeded in actually implementing this. Next to summary support in the camel-lite’s POP provider (which uses the TOP capability if that is available, most POP3 servers have this, and else it too uses this new partial message retrieval feature).

The summary of your E-mail client is only the basic information for viewing a summary of a folder. You obviously don’t need to receive all message data of all messages for that. That is what this summary support for POP3 is all about.

My technique, for partially retrieving messages from POP3, is to search for the boundary in the Content-Type header and storing that parameter. Once after the headers, the second time I find this boundary string I simply disconnect from the POP3 server, make sure the already retrieved message data is correctly written to the file system as cache and then I simply let the software reconnect once the next command is unleashed. I still need to add detecting whether a message is partially retrieved and retrieving it again in case the strategy for receiving messages has since switched.

For example say the user received it partially, but now learned that the message is interesting and would therefore like to fully receive it. Including the attachments. For that I need to add some administration code that stores the retrieval status of the message and makes the correct decisions based on that.

Nevertheless has the milestone be reached: partial message retrieval for at least IMAP and POP3. Both are now implemented. The IMAP one fully and the POP3 one, well in a few hours this will be 100% correct and fully working with retrieval status detection and code that gets it right.

Update: it’s implemented now

These are in my opinion important features for mobile and embedded that very few other smaller E-mail solutions implement. Done in such a way that it’s flexible for you, the application developer (strategy design pattern), to decide when and if partial retrieval is to be utilized.

The new iPhone, we have work to do

Gnome mobile and embedded people, we have work to do: Steve Jobs is showing us his new little wonder. This time I think we will have to cooperate with the guys doing crazy 3D effects and hardware people too. I’m more than certain that with our technology we can actually compete with devices like this. The only thing we really lack, in my opinion, is coordination and cooperation between each other. Technical leadership (and I know this is the subject nobody wants to talk about).

I’m for sure going to try providing the E-mail infrastructure (not only for gtk+ based devices). But that is only an extremely tiny piece of the puzzle. The cool ui effects, like rotating the X11 window when the device physically rotates, is something for our cool X11 developers. The cool scroll effects (when using your finger) is something gtk+ can implement (if this ain’t a patented idea of Apple of course). Input techniques: same (also about the patents). Hardware: Nokia, Palm, OpenMoko? Media players, we have plenty of them, but do we have one that has a really suitable ui for mobile devices? Honest question. GSM & phone functionality, I guess that is going to be hard and will depend on the hardware a lot (but not impossible). VoIP, aha! We have Telepathy! Presence, sure: Galago! Cool art: yep we have nice SVG icons and I’m sure we would find a lot artists who could create us very good stuff for such devices.

What are we waiting for? To be as usual late for the next big thing? Steve is clearly on it already. It’s not the first time that he showed us what that next big thing in technology is, right? In combination with full wireless Internet coverage in bigger cities (which will most likely happen sooner or later), I think devices like this are one such next big thing for the coming years.

Some of the core functionalities that I have in mind (I on purpose decided not to put a lot project names in the bullet points):

  • A Windows, MacOS X AND Linux client for uploading music and other files from and to the device;
  • VoIP, Presence;
  • E-mail & SMS capabilities;
  • Small browser, good Flash & AJAX support;
  • An easy-to-use media player;
  • A small X11 with some effects;
  • A camera and a modest photo management tool;
  • A Java VM like J2ME, maybe .NET and Python too;
  • A good development platform for it. One that Windows developers can use too (“emulator.exe” -style);

OpenMoko and Nokia are, indeed, a good start. In my opinion, we need a lot more like this.

My opinion? Let us not wait and sit, in other words stare at it, like lame ducks. We do have the competence in our group to compete with this!

Maybe cooperate with Steve? I’m sure that such devices need standards like configuration standards, standards for transferring files and deploying music (insert more here). Might be Utopian thinking to want to get this standardized. Yet I believe that this standardization process would unleash the mobile world. Let the others fight each other with their standards while we create the real ones behind their backs?

Think different, be different, be creative and a few years later: Right now the new is you. Your time is limited so don’t waste it living someone else’s live. Have the courage to follow your own heart and intuition. Everything else, is secondary.

Finally, a last great quote from that recent speech:

Stay hungry, stay foolish.