Akonadi meeting – Day 2: The Big Changes

Yesterday evening we continued working on Akonadi and Co. Kevin is working on replacing KLocalSocket with the new QLocalSocket, but that’s not going that good yet. Thomas is working on the collection model/view/delegate (simple language: the folderlist), to allow it to make the unread count of the toplevel visible and available. Frode is cleaning up Mailody resources and the KCM, code style, indentation, consistent placement of the * and & signs, etc, etc.

I made the systemtray a bit more intelligent by watching the dbus to see if Akonadi is started or stopped. When it notices a change the menu items are adjusted and the title of the context menu changes. That title of the context menu costed some headaches, because the kdelibs api did not have a way to do it, so I had to draw my own title above the context menu. Urs Wolfer spotted my commit and immediatly fixed the kdelibs API and improved to layout of the title. That’s awesome. I will change the tray application soon, but I don’t want to force everyone to recompile kdelibs trunk and depend on let kdepim depend on that. I assume not everyone has a build cluster like we have here at KDAB currently.

Tobias made some changes to the API just before we left the building, which broke kdepim and playground. We fixed that in the meanwhile. Yesterday we started at ~9.30 and left around ~2.30, so we managed to invest 6×17=102 hours of time in one day. Say a ‘normal’ person would work on KDE – next to his dayjob – 4 hours a day, that means, we put 25 days of work in one day ;-)

Anyhow today Tobias continued API changes, assisted by Till and Volker. Frode implemented purging of mailboxes for the imap resource and I did some fixes here and there, one change made sure Mailody can be used for reading newsgroups from now on. After the lunch at 15pm (that’s an improvement of 4h compared to yesterday), Thomas gave a small presentation / tutorial about debugging with gdb, I’m sure I’ll use it from now on, instead of a flooding amount of kDebugs. We concluded with a small valgrind demo, so I can check mailody for memleaks soon. After that we walked through Mailody and discussed what we could share between KMail / Mailody and KNode. We’ll soon prioritise that list, so we have some kind of planning for the next couple of releases.

About one thing we doubt a bit, we can now only store nine quintrillion, two hundred and twenty-three quadrillion, three hundred and seventy-two trillion, thirty-six billion, eight hundred and fifty-four million, seven hundred and seventy-five thousand, eight hundred and eight items in Akonadi, and we would like to know if that is sufficient. Say everyone on this world would use the same akonadi database and want to make an addressbook with everyone else in the world in there, would that fit?

6 Comments

  1. “nine quintrillion, two hundred and twenty-three quadrillion, three hundred and seventy-two trillion, thirty-six billion, eight hundred and fifty-four million, seven hundred and seventy-five thousand, eight hundred and eight”

    Had to translate this into a number in order to only remotely understand it ;) So to save everyone else some time, here it is:
    9223372036854775808

  2. … and thats exactly 2^63. But why? Shouldn’t it be 2^64-1 = 18,446,744,073,709,551,615?

  3. It is signed. ;-)

  4. Could you share the gdb tutorial in some way? I’ve been struggling to use it to track down a bug in KMail but I’ve been unable to get anything useful out of it :(

    /BR
    Naga

  5. Thomas McGuire

    The basic tutorial for setting up KDevelop can be found at
    http://techbase.kde.org/index.php?title=Getting_Started/Set_up_KDE_4_for_development#KDevelop

    This doesn’t yet include how to use the integrated debugger though, but it is fairly easy to use it from inside of KDevelop to set breakpoints, step through the code etc.

  6. I’m sorry but this will not be enough :

    Let’s assume a world population of 6 billions (less than the actual number; bear with me I’m being conservative here, $DEITY knows why some people on earth would refuse to use the Great Akonadi Database, but it might happen). If they all have their 6 billion – 1 peers as contacts, we reach 36 quintrillion entries, 4 times more than what is available to us.

    Changing to an unsigned long would still only give us half of what we need. Alternatively, we could make it a world policy that people are not allowed to enter more than a quarter of the world in their address book, but this is clearly suboptimal. Another risk is that a global contact entry market might emerge, with nasty economic consequences.

    I’m worried about the future of KDE. How can we expect our world domination to go smoothly, if our software is built with such cripling limitations ? Please find a solution.