Archive for June, 2009

Nepomuk meeting: day 2 & 3

This morning we started with a presentation of Sebastian Trüg regarding Pimo. Pimo is a system which can semi-automatically suggest tags and descriptions based on analysis of text. So if a mail comes in with a date in there, the system can find that date and remember that. Maybe it can also find the name of a town in that text, combined you can assume there is something going on a certain town on a certain date. That info is pretty useful. For example you can put that in KOrganizer automatically. The libraries for this are already written, so I was interested to implement that in Mailody and started to work on that.

After his presentation Sebastian Faubel presented the stuff he is working on. Because we lacked a beamer, we used a vncserver with multiple vncclients as a poor mans beamer. That way everyone had the presentation on his screen. He also uses Gnome, so for a few minutes there were more Gnome desktops visible in the room than KDE desktops ;-) Anyhow, he is working on a new type of file manager. Instead of showing the filesystem, he adds a layer with fixed paths and descriptions. That way the user can store the files consistently on his computer and throughout computers. For example that means that the file save dialog needs to be changed to ask questions about the specifics for that file: for example if you indicate that this is a university theses, it will ask for your professor, the deadline, etc. The system then decides where to store the document and what name to give it. The filemanager can then provide a straightforward way to find that document back: documents – university – theses. Or you can filter your documents on author or professor. I think that’s pretty neat, I’ve always thought that where exactly on the fs the document gets stored is rather unimportant. The trick is that you should get back to it as quick as possible. I hope I explained it ok, it’s difficult to explain without seeing the mockups and work he has already done.

After that presentation we started hacking, while Sebastian Trüg was walking around and answering questions, helping out everywhere…. Sort of what Volker does during Akonadi meetings… For example Digikam started working on synchronizing there own implementation of Rating images with Nepomuk Ratings. For some obscure reason they like to wait with relying completely on Nepomuk for it. But I can understand that. While the Nepomuk backend is not yet final, it can lead to data loss if distro’s switch their default backend for example. As I’m probably the only user using Mailody I do not care about that ;-).

I started implementing Pimo into Mailody, that means for now a dependency of stuff which is located in playground/base/nepomuk-kde, I’ll make that optional later on, not a big deal. At the end of the day I got some first results. Every mail is automatically scanned for Pimo entries. That means that if you have defined a company in Pimo, Mailody will search for that in every mail. If found it will suggest to you to add that tag to the e-mail. It will become useful as there will be more data available in Pimo. So, if it gets to be a hype: you heard it first in my blog, right?

Tobias König worked on the Akonadi Contact stuff. If you update a contact in the addressbook, it synchronizes that data to Nepomuk. At the start of the meeting that update process took 3 seconds. Tobias replaced the auto generated code for that part with code of his own and reduced the time it takes to synchronize back to 500ms, the maximum achievable for now. Probably Sebastian can reduce that even more by optimizing that code path. Although it happens in the background, it is still important to have it working quite fast. So a 6 times improvement already.

Daniel is working on Nepomuk from an Amarok perspective. Nepomuk remembers stuff about stuff based on its URI. In case of Music, that URI is the path to the file. An interesting problem exists for people using USB-sticks. As the USB-stick mount point can change on each insertion, it will mean the patch and so its URI can change. That means the Nepomuk info about that file is not retrieved correctly, Interesting problem to solve I guess.

Before we knew it, it was 11pm and we got trouble ordering pizza. Some decided to get to town,I heard they returned to the Hotel around 4am and some exotic bar and free Piña colada were involved. To my surprise everyone was in the conference room around 10am for day 3…

Day 3 was also used for hacking and retrieving as much information from Sebastian as possible. I continued to work on integrating the Pimo part better into Mailody, rearranging some code and improving the dialog. I’m quite happy with it now. At least I was able to work on Mailody for some dedicated time. I hope I can continue this again, the last months I hardly had time for coding, but I hope I can pick up at least a couple of hours a week again.

During the day more and more people left and in the end it was my turn to leave. I want to thank Sebastian for organizing, Mandriva for sponsoring Pizza and the KDE e.V. for sponsoring the Hotel. It is great that these kind of sprints are possible and it is boosting moral and productivity enormously. Thanks.

Nepomuk meeting: day 1 – Part II

At 4pm the meeting started, while people were coming in, we started an introduction round. It struck me that there are many different area’s people are working on, not only Amarok is present,but also people from Digikam, Dolphin, Telepathy, Raptor, etc. All seem to have different use cases for Nepomuk.

For example Raptor wants to keep track of how many times an applications has been started and when that was. This way they can probably adjust the menu to what you use most. Telepathy wants to use Nepomuk to keep track of your contacts, which are meta contacts and what way can they be reached. In the end you just want to say ‘I want to chat with my mother’, and it should simply find out if that’s possible. Really, the user does not really care of that happens via Jabber, MSN or -ftw- Skype. You do want an order in that of course ;-). You see, completely different use cases.

After the introduction round, I started hacking on Mailody. I’ve replaced the boring tag widget, with the widget which Dolphin uses. Apart from the requirement to svn cp the widgets and creating duplication, the task was pretty quickly done. I still need to fix some small issues, but I’ve time enought for that. So it’s now possible to rate emails and add comments to them. Next thing I want to do is a small popup when hovering over items, not sure I manage to do that this weekend.

I’m hungry, but I seem to be alone in that. We’ll go to the city Real Soon Now I hope.

Nepomuk meeting: day 1

Not sure what it is with German ICE’s, but always when i use them,,I get the urge to write a blog. Probably due to the fact that I get bored in them, there are power sockets and stuff happening around you. Today a large scream of one of the Bahn employees asked rather loudly who owned the folded bicycle near the door. One passenger hesitated but raised his hand. From the back the employee continued to scream to that passenger that the bicycle needs a ‘bag’ and started to tell him he should have read the fine prints. Anyhow the passenger was told to get a ‘bag’ or leave the train at the next stop. Come on, at these moments I’m feel shamed to be a human, it really makes me wonder if I fit in The Netherlands or Germany. Maybe I would feel better at home in some country that’s much more relaxed at these things. Anyhow, the passenger fetched a bag -normally used to throw away trash, and the crises was averted. Phew.

I’m en route to Freiburg, which seems to be close to Basel. There the Nepomuk meeting will kick off around 4pm. I’ve prepared my home computer to have the latest KDE trunk with Nepomuk fully active, I first tried the virtuoso backend, but that seemed a bad idea, the sesame2 backend seems to work fine though. I fixed Mailody to be able to tag messages again, and hopefully you can also add comments to mails at the end of this weekend.

I also need to rethink what I want to do with Mailody exactly. It is very tempting to make one application which can deal with Mail, News, RSS and Microblogs – just because I can do that with Akonadi. It also fits the concept of folders with items in there, so it should not be to hard to do. The question is if that will result in a nice application which fulfills all my information needs, or if that will result in a huge monster with all kinds of hacks in there to facilitate the tiny differences between those information flows.

Nepomuk meeting next weekend

Next friday I’ll be going to Freiburg, Germany. The event there is a Nepomuk meeting. I’ve mostly been to Akonadi meetings, so this is a new one for me. New people and mostly a new topic.

I’ve been working with Nepomuk bits in Mailody and Akonadi and I’m convinced semantic searching for mails has a big future. It should be simple to resolve queries like ‘I received an Excel-document from my mom last month, where is it’ and ‘Get me the mail where I made the offer to my customer’. And it should be possible to ask that question in exactly this way. Nepomuk is an answer for it. Mailody can already tag mails and Akonadi can automatically tag all incoming mails with the tags for the sender, etc. There is also a tag resource which can lists all your tags as virtual folders. In the far, far future this can be extended to an interface in which above questions could be asked and answered.

A step in that direction is pretty much kde.markmail.org, which lets you chose the mailinglist, author, etc and automatically filters on those criteria. I know Thunderbird has an extension that can do something similar. But those implementations are just the start.

Basically I want to review all the nepomuk implementations in Akonadi and Mailody this weekend, see if it all works as expected and maybe extend the tag resource to use Nepomuks query language. Also it would be nice to add Comments to mails. I think that’s a nice and very wanted feature for mails and not a to difficult goal to achieve. Ideally I would like to share the widget Dolphin uses. And I hear its author is at the meeting too!

So this week I’m preparing for the weekend, compiling nepomuk playground stuff, making sure my computer is up to date and my Eee can setup a NX-connection to this computer properly, so I can hack on my quadcore as usual and use the Eee purely to connect to it. I’m excited and looking forward to this weekend!

State of Mailody

People ask me what the state of Mailody is. There are no new releases, no blogs, no microblogs, the website is dated and there are hardly any commits. Is it dead?

Nope, not at all. The reason the development has stalled the last year or so is simple. Mailody relies completely on Akonadi. That means that the backend of Mailody is no longer a sqlite database, but based on Akonadi. Akonadi is also responsible for fetching the mail messages from an IMAP, POP3, Exchange or whatever seerver.

And that is where the problem lies. The first implementation of the Akonadi IMAP-resource was based on a library I wrote and used for Mailody3. The great hackers from KDAB looked at it, probably laughed very loud and told me kindly that it was not good enough. But that was not a surprise to me, I wrote it as one of the first things after learning C++, and I told people in the early stages before the move to Akonadi that someone with a lot of experience should carefully review all code.

Anyhow, KDAB offered to write a new IMAP resource and from what I heard it is starting to shape up nicely the last few weeks. As soon as it is ready, I will start using it. That means Mailody4 is usefull again, and I will pick up the development again. It is so much easier to work on something if you use it daily and also get daily reminders about the area’s to improve.

I’m actually looking forward to using Mailody as it has cool stuff like Nepomuk tagging – and searching – of mail messages, a quick reply function, html-mode for the composer, kontact integration, marble intgegration (always wanted to know where that mail came from?) and lots more.

So, conclusion: Mailody is not dead, it’s just waiting for the cool new IMAP resource in Akonadi to become usefull again.