ervin's piece of web

White noise from a gearhead
  • rss
  • Home
  • About
  • Some Documents
  • Curriculum Vitae

PhD Aftermath, more than two years later

ervin | March 6, 2010 | 12:39

Some of you might remember that I graduated in october 2007. I finally managed to get the paper version of my diploma yesterday… Yes, more than two years after the facts. The best part is they managed to insert a typo in the title of my thesis on the diploma, so it seems I worked on "mulit-agent systems" and not "multi-agent systems", why not after all. :-)

Let’s talk about some more interesting information now. I remember when I graduated that some people out there would have loved to get an english version of my thesis. If you’re one of those people, I have a good news for you. Just after graduating I worked on a long paper which covers the most core parts of my thesis, and adds some more information about a potential use in information search. This paper got accepted and published in the Journal of Logic and Computation issue of October 2009 (yes the review process is kind of slow).

If you’re interested in it, you can find more information about it in the page for the corresponding issue of the journal.

Comments
No Comments »
Categories
General
Tags
Multi-Agent, Ontologies, PhD
Comments rss Comments rss
Trackback Trackback

Tokamak4: Three sprints in one? Lies!

ervin | February 23, 2010 | 01:02

Since even before the start of Tokamak4, it has been pitched as a "three in one" sprint. But that was without counting on the Solid people. In the great tradition of hardware awareness in KDE, we’re doing our job correctly only if Solid gets unnoticed by the user… and nobody noticed that almost all the core "metalworkers" were attending Tokamak4.

So we used the opportunity to have a Solid meeting to summarize the current situation of our infrastructure, and to make plans for 2010. That includes quite a few of clean ups on our stack, but also more ambitious and cool stuff like reporting devices reachable via the network. If you’re interested in details, I sent a mail summarizing the Solid meeting at Tokamak4, and you should probably subscribe to kde-hardware-devel if you’re not there yet.

Comments
1 Comment »
Categories
Conferences & Summits, KDE
Tags
KDE, Solid, Tokamak4
Comments rss Comments rss
Trackback Trackback

Helping with Maemo SDK deployment: Qt/Maemo VM

ervin | January 13, 2010 | 14:31

There’s some movement on the KDE/Maemo front. Lately we’ve seen more public announcements coming mainly thanks to the office viewer. But there’s also work under the hood cooking up. Most notably communication channels to provide feedback for the Qt 4.6/Maemo variant are open, hopefully we’ll soon see a few patches flying in. And also Jos posted some (large) patches to streamline kdelibs which are on the table for discussion and hopefully going toward a KDE wide solution.

Today though, I just wanted to let everybody know that I’ve been working on a virtual machine to help KDE developers easily get a Maemo SDK. I added some documentation so now we have a Qt/Maemo SDK VM page on techbase (download URL and installation procedure are there).

It should be relatively easy for anyone to have it working: download, boot, login, run a script, done you can know use Qt 4.6 in a fully setup Maemo SDK. Hopefully that will lower the bar to contributing for quite some people.

That’s it for now, don’t hesitate to drop me a mail if you have issues with it.

Comments
4 Comments »
Categories
KDE
Tags
KDE, Maemo, Qt
Comments rss Comments rss
Trackback Trackback

The rise of the KDE/Maemo effort

ervin | October 27, 2009 | 10:01

With Fremantle and the N900 almost out the door, it is time that we start a more coordinated effort within the KDE community to support Maemo as an official target system. In the past we had some scattered and not coordinated efforts, results got linked on techbase.

I attended the Maemo Summit 2009 in Amsterdam. Of course a few other KDE people were there. We sat down together, talking about how we could get the KDE platform working well on those devices. And we decided that if we want to see KDE succeed on such devices, we’d have to get more serious and coordinated about it.

That’s why shortly after coming back from the meeting, I asked for the creation of the kde-maemo mailing list, where we’ll be able to address Maemo as one of the official KDE target systems (like FreeBSD, Solaris, Windows and Mac OS X are). It is time for us to make Maemo a first class citizen in our community.

Of course it is not wishful thinking we’re talking about here. The efforts already started, for instance Alexis has been working on a Plasma based shell for the N900. It is still rough, and a first experiment, but it at least shows that our platform is viable on this system. Parallel to that, there’s also efforts on how to make the deployment of a Maemo toolchain more convenient, or how to modularize our platform for such embedded systems.

It is just the beginning of the journey, let’s see where it leads us!

Comments
5 Comments »
Categories
KDE
Tags
KDE, Maemo
Comments rss Comments rss
Trackback Trackback

libkimap – the genesis

ervin | October 22, 2009 | 09:31

I previously blogged about the new IMAP resource in Akonadi. We were aiminag at getting this resource from the start, but here is the not so secret story: this effort gave birth to another component, namely libkimap.

The journey started because we really wanted for KDE to have a strong and efficient IMAP support. Since we’re not really into reinventing the wheel if we can avoid that the journey started by looking at existing IMAP solutions we could reuse. The natural first contender of course was to reuse our old IMAP ioslave which we currently use in KMail and build the resource on it. But really it is showing its age now, and the interface such ioslaves expose are too limited for our needs (for those in the known of KIO internals: it would require an extensive use of the special() method, or command encoding in urls…). So we have been evaluating a few other contenders coming from various mail clients, but unfortunately most of them are either exposing synchronous API (not convenient for something event driven like an Akonadi resource), or very tied to a MIME implementation (which was a no-no as we needed to use the resource with kdepim’s MIME implementation).

Indeed this journey didn’t start quite well… We had to produce a new IMAP implementation. So a new quest started, one for an adequate API design. At that point we knew we wanted something: fast, memory efficient, asynchronous and easy to extend (as the IMAP RFC has plenty of extensions).

First, let’s examinate the “fast and memory efficient” constraints. Around the same time I got started on libkimap, Andras Mantia (fellow KDABian and hacker extraordinaire) was working on making the Akonadi server protocol handling faster and more memory efficient… And as a bonus, the Akonadi protocol for the lowest level parts, have quite some similarities with IMAP as it was modelled after it. So far so good, I could reuse Andras work on the new IMAP stream parser. It has been a two way collaboration as I also found bugs in there which got fixed. This parser is now the core of libkimap, although it is hidden from the public API, it is for a great part responsible of the good performances of the library.

Then, let’s solve the “asynchronous and easy to extend” constraints, those had a direct impact on the API. For that we rely on the good old “job based” API. You just need to create a Session object which holds a connection to an IMAP server and queue Jobs on it. Jobs are then executed sequentially. We have jobs for a lot of things: mailbox listing, fetching messages or headers, retrieving annotations, quota information, ACLs, etc. And that’s where the job based API gets interesting, we need to extend it? Just add a job, binary compatibility will be kept and so on, it makes it much easier to manage it over time.

Oh! And of course, since we still care about performances, each job is equipped to be able to pipeline several IMAP commands to the server, which dramatically reduces latency. So you guessed it, jobs don’t map 1:1 to IMAP commands, this way we can provide some convenience to developers because they get pre-shipped micro behavior (for instance, listing mailboxes and taking care about the namespace extension results always in the same list of commands, so we wired it in jobs which pipeline commands).

So we indeed solved our initial problem, we made an asynchronous IMAP library which is fast, efficient and easy to extend. It also tries to be clever when that actually makes it more convenient for developers (see the pipelining example above), but not too much, allowing to have a fine control on the higher level logic and strategies you’d need to implement in your application. And thanks to this strong basement, we could tackle the task of building the Akonadi IMAP resource on top of it.

As a post scriptum: is our library tied to a MIME implementation? Well, like others we’re tied to one: libkmime, available in kdepimlibs as well. You can’t really get around that in the end. Indeed, for fetch operations if you try to be independent of any MIME implementation, you end up implementing your own subset of MIME. That said we tried hard, and managed to keep that coupling as minimal as possible, and in fact only the FetchJob really depends on libkmime, everything else is independent of it. So, it wouldn’t be a big cost to implement your own FetchJob variant using another MIME implementation.

And finally, as a post post scriptum, if people out there wants to grab it and play with it, it is in our kdepimlibs module on trunk. You can browse it online here: http://websvn.kde.org/trunk/KDE/kdepimlibs/kimap/.

Comments
3 Comments »
Categories
KDE
Tags
Akonadi, IMAP, KDE
Comments rss Comments rss
Trackback Trackback

KMail as components, Akonadi Mail Reader

ervin | August 20, 2009 | 16:50

In my previous post, I’ve been discussing our progresses on some protocols support, and that Akonadi could now be fed with quite some mails. That’s neat to us developers who can make application harvesting data in there… But for the user it’s not really useful if he can’t see the data.

Well, recently I’ve also been working on showing up collection statistics we can get from Akonadi, and also I ported KMail message list view to Akonadi (also making it a separate library). In the meantime, the fearless Andras has been porting KMail mail reader view to Akonadi (also making it a separate library).

In fact, it is the current thread in the huge task which is the porting of KMail to Akonadi. We’re ripping KMail apart, each important set of features are factored out in a library and ported to Akonadi. In the end we’ll have a KMail completely based on Akonadi. But also, it will be much more modular, reusable for other mail clients, but also news readers, etc. Which means that the new architecture will be better suited at supporting a wide range of devices and a good base for future works.

Anyway, both Andras and me had a small test application for each of our new frameworks… So I took some time to merge the features of both into a single application: the Akonadi Mail Reader. This new baby is mainly a prototype to toy with ideas and try out the components we’re making out of the monolithic KMail. Still, it weights just under 400 lines of C++ code, and you can completely browse all the mailboxes you configured in Akonadi thanks to it. Of course, here is the obligatory screenshot:

Screenshot of the new app in kdepim which is a proof of concept mail reader using only Akonadi

It looks so much like a miniature version of KMail that it is almost scary. But don’t fool yourself, there’s a lot to do to have a full fledged KMail which will be only based on Akonadi. We’re not there yet, still it is nice to see the whole thing taking shape, in particular to reach the point where you can actually read your mail over IMAP using this small prototype and feel almost at home with it thanks to this familiar touch. :-)

From my point of view, the KDE culture of working a lot with components really pays off. KMail was first created at a time where this KDE culture didn’t reach it’s full potential yet, hence why we need to refactor it now. But, following this culture it is really nice to see that we’ll end up with small packages of mail client functionalities, and, that thanks to them and to Akonadi, it will be easy to integrate them in any application. We made a relatively complete mail reader in under 400 lines of code, so simply displaying mail content in your application or a message list becomes a trivial task.

Comments
17 Comments »
Categories
KDE
Tags
Akonadi, IMAP, KDE, Mail
Comments rss Comments rss
Trackback Trackback

The new IMAP4 IDOL, I mean IDLE

ervin | July 31, 2009 | 15:34

We got a few posts lately of people recently hired by KDAB, and suddenly it made me realize that I didn’t make such a post when I got hired… almost two years ago. I guess it’s a wee bit late to write one now. :-)

Buuuut… I figured out that I could post something about what I’m doing in KDAB (OK! OK! Sebas has been kicking me for days to make it happen). And if that proves to be enjoyable writing for me, and enjoyable reading for you people I may do that again from time to time.

So what am I doing in KDAB these days? Well, for a while now I’ve been helping the pimsters with the refactoring of our PIM suite toward making it purely Akonadi-based. There’s quite a lot of work going on in this particular space, and I’ve been focusing mainly on the IMAP support.

It has been an interesting journey so far which started with evaluating the IMAP stacks we could reuse. First on the ranks were obviously our old ioslave which served us well, and some IMAP code Tom Albers developed for Mailody. It turned out that we had to abandon the ioslave. It served us well for years, but didn’t work for some of the plans we had (most notably for adding the IDLE support I’ll talk about later). While working on IMAP I had a couple of ideas on how to still use the old ioslave, but they were really nasty and hackish… I think it was a clear sign that the ioslave reached its full potential and keeping it alive was a dead end for the future.

So after this investigation phase it has been decided to write a small library for IMAP. We already had some codecs convenience in the KIMAP library from kdepimlibs so we stepped up to extend it. And for the API we quickly settled on a job based one because we had strong needs for asynchronous operations. We clearly don’t want to be blocking waiting for some IMAP command to be processed. So our dear old KJob friend has been used for that, and it turned out to be a very good choice.

We’ve been relatively quick at having enough useful jobs implemented in the library once I wrote the core bits of the API. I got quite some help from Andras Mantia for that. By the way, I think that just like our almighty David Faure, Andras is having a few clones himself, once he gets on a task he going so fast you’d better not be on his way… something suspect is at play there, I’m sure. ;-)

In any case, Andras (and his hundreds of clones) help was welcome, as it helped me move higher in the stack and work on the Akonadi resource itself. I’ll just slow down a minute and explain for those not in the known what an Akonadi resource is (for the ones in the known, you can skip to the next paragraph). So Akonadi is our grand unified layer to access data in your desktop, applications talk to it and then they have to understand only the akonadi concepts (in short: items, and collections of items). Of course you need to get your items and collections from somewhere, and that’s the role of Akonadi resources. They just get data from “somewhere” and put it in the Akonadi cache where the applications can make use of them. Obviously for a future Akonadi based KDEPIM suite we needed an IMAP resource to access your mail on IMAP servers. And if you followed closely, that means that soon applications won’t even need to know where the data comes from, you write just an Akonadi client and it can go over: POP, IMAP, whatever! It all depends on the resources your server loaded. Neat huh?

Work on the IMAP resource started only a few days before the Akonadi Sprint in Berlin which I was attending. And the job based API quickly proved that it was the right choice. I’ve been pretty quick at building the resource on top of it (and Andras was producing new jobs for my own consumption at a furious pace). At this meeting we had kind of an informal contest about who would come up first with an Akonadi resource which can list a mailbox (since at the time POP, IMAP, and maildir support were all developed and started around the same time)… it turned out that I heard about this informal contest when I was putting the finishing touch to the mailbox listing. Sooo… DONE! :-)

I didn’t stop there of course as more features were needed to have a complete resource. And I’ve been working on that almost exclusively during the sprint. Discussing with Volker (aka the Akonadi overlord, the alpha and omega of its design) we came up with nice design ideas for the groupware support (in particular Kolab)… but that’s probably a story for another time…

Some time after the sprint, I flew over to other tasks in PIM land. And left the Akonadi IMAP resource untouched for a while. I came back to it only last week to implement in trunk one long requested feature: the IDLE extension. — And obviously that’s where the name of this blog post come from, just like my favorites novels you get the title only in the last chapter or paragraph. :-) — Thanks to this extension, if it is supported by the server, you get notified from changes by the server itself. For instance, it is not needed anymore to poll every N minutes to notice that a new mail appeared (I think this feature is sometimes called “push mail”). For the user that means, that the IMAP server can now notify the client of new emails, emails “arrive” faster at the user, and you can save a lot of unnecessary mail checking. Really handy!

I committed IDLE support in trunk this week, so it will get released with our 4.4 release. In the meantime you can start playing with the Akonadi resource when our 4.3 release will be out, as we already ship it there (although it’s not used by default, see it more like a pre-version of what’s coming, for instance this one doesn’t support IDLE).

That’s it for today, I hope you enjoyed those pimsters news from the trenches of the IMAP battle. See you later!

Comments
7 Comments »
Categories
KDE
Tags
Akonadi, IDLE, IMAP
Comments rss Comments rss
Trackback Trackback

Memories of Akademy 2009: Sleeping beauty

ervin | July 20, 2009 | 22:58

Of course, we had parties during the Gran Canaria Desktop Summit. Quite a few of them… And obviously we had some casualities. Most notably Alexis couldn’t handle it all:

Alexis at work

So Alexis, is that what you’re doing while you pretend working? ;-)

Comments
1 Comment »
Categories
Akademy
Tags
Akademy, KDE, Party
Comments rss Comments rss
Trackback Trackback

Memories of Akademy 2009: Yes, we’ll save the world

ervin | July 20, 2009 | 22:31

One of my good memories from this year Akademy will be about Glyn Moody’s keynote. I admit I was a bit skeptical at first with the title:

  • ervin's photo

It could sound like a somehow arrogant way of seeing the hacker community… Except that Glyn has an outsider point of view primarily beeing a journalist. And as a good journalist he gave us facts, simply about what already happened (the genome sequencing example was particularly inspiring as free software saved the day there), and how the free software movement influenced other movements. It looks like a snow ball effect leading us toward more sharing and less egoism. I think that most of us started contributing to free software out of some sort of optimism and because we’re aiming at some utopia. Along the way we might loose hope, and not have the idealism in mind anymore simply trying to see free software have more market shares, etc.

Thanks a lot Glyn for reminding us why we started contributing at all, and for all the hope you gave us by simply showing that free software is already making a difference in this world.

  • ervin's photo
Comments
2 Comments »
Categories
Akademy
Tags
Akademy, Conference, Idealism
Comments rss Comments rss
Trackback Trackback

Memories of Akademy 2009: Best talk ever

ervin | July 20, 2009 | 22:16

Those who know me also know that because of both my research career and my free software involvement I attended a lot of conferences and talks. And I really mean a lot. Still, I had to wait for the very first keynote of the Gran Canaria Desktop Summit to attend the finest, and brightest talk I ever attended.

It was very rich, didn’t simply stick to the technical side of things but got deep into various fields, most notably philosophy. Of course the speaker deserves credit. So if you see this man giving a talk near you:

  • ervin's photo

Simply run and attend his talk. He’s also a very nice person, and since he uses free software, he probably matches perfectly his own quote from his keynote (which is getting famous):

Liberal software is software which a gentleman would use.

Comments
14 Comments »
Categories
Akademy
Tags
Akademy, Conference, Keynote
Comments rss Comments rss
Trackback Trackback

« Previous Entries

Tags

Akademy Akonadi Conference Idealism IDLE IMAP KDE Keynote LaTeX Maemo Mail Multi-Agent Ontologies Party PhD Pictures Plasma Qt Solid Tokamak Tokamak4

Categories

  • Akademy (55)
  • Conferences & Summits (1)
  • Conferences & Summits (20)
  • General (19)
  • KDE (27)

Related

  • IPSquad
  • KDAB
  • KDE
  • Planet KDE
  • Toulibre

Archives

  • March 2010
  • February 2010
  • January 2010
  • October 2009
  • August 2009
  • July 2009
  • February 2009
  • August 2008
  • June 2008
  • April 2008
  • March 2008
  • January 2008
  • December 2007
  • October 2007
  • July 2007
  • June 2007
  • May 2007
  • April 2007
  • March 2007
  • February 2007
  • January 2007
  • October 2006
  • September 2006
  • August 2006
  • July 2006
  • June 2006
  • February 2006
  • January 2006
  • October 2005
  • September 2005
  • August 2005
  • August 2004
  • July 2004
rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress