About

Member of the Board of the Polish Linux Users Group. Human rights in digital era hacktivist, Free Software advocate, privacy and anonimity evangelist; expert volunteer to the Panoptykon Foundation; co-organizer of SocHack social hackathons; charter member of the Warsaw Hackerspace; and Telecomix co-operator; biker, sailor.

Formerly President of the Board of the Polish Free and Open Source Software Foundation; CTO of BRAMA Mobile Technologies Laboratory on Warsaw University of Technology and a student at Philosophy Institute on Warsaw University.

Table of Contents

languages:
02.07.2016Dzień, w którym cenzura Sieci w Polsce stała się faktem pl 152 13.04.2015Needless haystacks en 151 12.03.2015e-Dockleracje pl 150 19.01.2015Ban on encryption is not about banning encryption en 149 13.01.2015Pochwała Copyleftu en pl 148 30.12.2014Zmiana klucza GPG en pl 147 18.12.2014Siła wyższa pl 146 04.12.2014Internet jednak bez pornografii? en pl 145 27.11.2014Zablokujmy wszystko! en pl 144 02.11.2014Pod rozwagę: ryśka prawo nieuniknionych konsekwencji en pl 143 09.09.2014Stop pedofilii en pl 142 22.06.2014Even with EME, Mozilla will become "the browser that can't" en 141 21.06.2014EuroDIG 2014 en pl 140 19.06.2014Haker w Radzie ds. Cyfryzacji en pl 139 30.05.2014Anonimowość w konsultacjach społecznych en pl 138 18.05.2014Czemu nie warto być piratem en pl 137 15.05.2014Mozilla, DRM i znaczenie en pl 136 14.05.2014Not-quite-good-enough-Mundial en 135 12.04.2014Nieodpowiedzialne nieujawnienie en pl 134 29.03.2014Ecologic, Ford i inwigilacja en pl 133 15.03.2014Otwórzmy edukację pl 132 10.03.2014Blurry line between private service and public infrastructure en 131 08.03.2014IM IN UR MINISTRY, CONSULTING UR INTERNETZ en pl 130 17.02.2014Szyfrowany VoIP, który działa en pl 129 11.02.2014A więc chcesz cenzurować Sieć... en pl 128 02.02.2014This is why we can't have nice IRC en 127 31.01.2014Prawie jak decentralizacja en pl 126 30.01.2014Żaden link nie jest nielegalny en pl 125 30.01.2014Debaty o prawie autorskim ciąg dalszy en pl 124 26.01.2014Neat HaCSS, or let's de-JS the Web a bit en 123 27.12.2013Information Account Number en 122 14.12.2013HaIPu en 121 20.11.2013Friends of TTIP and data protection in Brussels en 120 19.11.2013Jaki kraj tacy Piraci? en pl 119 05.11.2013A rude comment en 118 20.10.2013TEDx Warsaw Women i prywatność en pl 117 03.10.2013Reforma prawa autorskiego na CopyCamp 2013 en pl 116 22.09.2013Long-expected KMail2 rant en 115 18.09.2013Facebook for schools en 114 12.09.2013W którym wzywam posłów i posłanki Solidarnej Polski do zagwarantowania obywatelom Internetu wolnego od inwigilacji en pl 113 08.09.2013Complaintivism en 112 04.09.2013Sam sobie winien en pl 111 19.08.2013Kłamstwa, kłamstwa, i analityka en pl 110 27.07.2013Najkrótsza debata publiczna o cenzurze Internetu en pl 109 22.07.2013How information sharing uproots conservative business models en es 108 22.07.2013Dostępny jest markup wszystkich postów en pl 107 11.07.2013Kultura wolna i legalna pl 106 07.06.2013Internet nie jest problemem! en pl 105 05.06.2013Libel Culture en 104 17.05.2013Wojtuś Fatalista i wolność w Internecie pl 102 17.05.2013Czemu uważam, że licencje -ND są zbędne i szkodliwe en es pl 101 28.03.2013Wolność nasza codzienna pl 100 17.03.2013Nie wszystko korpo co o wolności w Internecie pl 99 15.03.2013♫ Odpowiadam na e-maile ♫ pl 98 11.02.2013Pierwsza rocznica europejskich protestów Anty-ACTA en pl 97 30.01.2013Nie ma haka na słabe dziennikarstwo? pl 96 30.01.2013Zwalczając czarny PR wokół OZE en pl 95 29.01.2013Jak skutecznie argumentować przeciw pomysłom cenzury Internetu en pl 94 20.11.2012Warunki brzegowe podmiotowości w dobie cyfrowej en pl 93 19.11.2012Blogosfera społecznościowa en pl 92 07.11.2012Fragmentacja nie jest zła en pl 91 02.11.2012SERVICES.TXT en pl 90 24.10.2012Apple finally jumped the shark en es 89 24.09.2012A mury runą... en es pl 88 24.09.2012Minister i Kultura pl 87 24.09.2012Melbourne CryptoParty video message en 86 16.09.2012O marynarskiej wrażliwości, czyli "niebo gwiaździste nade mną" en pl 85 22.08.2012Czarny PR wokół e-Podręczników en pl 84 15.08.2012Regaty utracone pl 83 24.07.2012Hypochristian Love en 82 24.07.2012Trochę nowego Dobra w layoucie en pl 81 17.07.2012Partia 2.0 en pl 80 16.07.2012Prawo autorskie po ACTA pl 79 13.07.2012Partia jako hack na systemie en pl 78 10.06.2012Are corporations dangerous only in collusion with governments? en 77 09.06.2012Proxies! Proxies everywhere! en 76 05.06.2012Automagiczna re-publikacja z Twittera na StatusNet en pl 75 18.05.2012TPSA/Orange i GIMP, czyli rzecz o 5-ciu użytkownikach en pl 74 16.05.2012Słowo o Warsztatach MAiC pl 73 15.04.2012Schowaj gadżeta pl 72 05.04.2012Perfect ToDo-oid en 71 27.03.2012Subiektywnie o Anty-ACTA en pl 70 25.03.2012O prawie autorskim w Budapeszcie en pl 69 23.03.2012Kościoła poczucie odpowiedzialności pl 68 20.03.2012Ucząc się Internetów en pl 67 19.03.2012Kościoła wiara w wiernych pl 66 29.02.2012Safari w Brukseli #1 - konferencja prasowa PE, posiedzenie ITRE en pl 65 21.02.2012Bo ACTA jest passé en pl 64 20.02.2012Tajemnica korespondencji po europejsku en pl 63 17.02.2012Premier Tusk w sprawie ACTA: myliłem się en pl 62 12.02.2012Anonimowi kontra Korponimowi en pl 61 10.02.2012Mieć ciastko i ściągnąć ciastko en pl 60 19.01.2012O ACTA znów w Kancelarii Premiera en pl 59 19.01.2012Wolni i Zjednoczeni en pl 58 16.01.2012Towarzystwo czuje się oszukane pl 57 10.01.2012Warunki Korzystania ze Świadczonych Usług en pl 56 05.01.2012Korporacyjny brak patriotyzmu en pl 55 04.01.2012Terrorystkoptery en pl 54 03.01.2012IceWeasel i prywatność en pl 53 28.12.2011Dobry Wujek Stal... Putin en pl 52 25.12.2011Useful Bash defaults done right en 51 21.12.2011Google Mail, czyli jak poczta staje się publikacją en pl 50 20.12.2011Occupy Gotham en pl 49 11.12.2011Copyfraud en pl 48 08.12.2011Multikino Wikipedia FAIL pl 47 27.11.2011Nie miejsce na pl 46 18.11.2011Cięcie jednostronne en pl 45 12.11.2011Tolerancja dla Kościoła pl 44 11.11.2011Użytkownicy i Obywatele en pl 43 30.10.2011Adhocracy i Net4Change en pl 42 18.10.2011Wojna z Radością en pl 41 16.10.2011Boli mnie w krzyżu pl 40 14.10.2011Technologiczne Samouwielbienie en pl 39 10.10.2011I Can Haz? pl 37 09.10.2011Cisza Wyborcza w Polsce en pl 38 03.10.2011Kibice i kampania pl 36 02.10.2011E-Podręczniki, Johnny Mnemonic, biznes i Sieć en pl 35 19.09.2011CC Global Streaming/Summit/Party pl 33 19.09.2011Czy jest coś takiego jak darmowe śniadanie? pl 34 12.09.2011Faktycznie Super pl 32 12.09.2011Diaspora-Based Comment System en 31 11.09.2011Konflikt wartości en pl 30 06.09.2011Wolność słowa to nie wolność od myślenia ani od krytyki pl 29 06.09.2011Prywatność i anonimowość w Sieci: kamyczek do ogródka en pl 28 04.09.2011O ostrożności w doborze słów en pl 27 03.09.2011W obronie QR Code pl 26 31.08.2011Stolica Nie Tak Święta pl 25 29.08.2011Of malware, hot steam, privacy, using one's brain and paedoparanoia en 24 29.08.2011Kragen Głośno Myśli en pl 23 18.08.2011Ból, blizny, dziewczyny i wiosła pl 22 07.08.2011Worst. Woodstock. Ever! pl 21 27.07.2011Siła woli, wydajność i rower en pl 20 19.07.2011Neo FreeRunner as a WiFi Soundcard en 19 10.07.2011Łikend z prawnikami en pl 18 09.07.2011Krok bliżej ideału en pl 17 04.07.2011Ryś Apostata en pl 16 28.06.2011KToF (Kolejna Tyrada o Facebooku) en pl 15 19.06.2011Wiara w priorytety pl 14 17.06.2011Spotkania ważne, spotkania przyjemne en pl 13 13.06.2011Ooops I en pl 12 30.05.2011Zabawy z Node.js en pl 11 25.05.2011Mozilla, Google i pasek adresu en pl 10 24.05.2011Na konferencji Sektor 3.0 en pl 9 23.05.2011Layout, CSS i RSS/Atom en pl 8 15.05.2011Startup Weekend Network Fun Fun Fun en 7 11.05.2011Nowy szef Bramy pl 6 10.05.2011World's Smallest Open Source Violin en pl 5 10.05.2011Po kolejnym spotkaniu w KPRM pl 4 08.05.2011Inspiracja na niedzielę pl 3 08.05.2011I horizontally the whole blog is that serious pl 2 07.05.2011Rysio ma braga en pl 1

Long-expected KMail2 rant

en | txt src
This entry does not seem to be available in the language of your browser; displaying in: en.

WARNING: This is a rant. You have been warned.

This bragpost has been growing on me for some time now. About since the very day I had the questionable pleasure of trying out Akonadi-based KMail2. That would be about 2 years, and back then KMail2 was buggy and slow.

Today it is buggy and on the verge of being almost possible to consider as trying to be usable. That's how far this project has gone in these 2 years.

Good Ole Days

In the Good Ole Days, and by that I mean "pre-KMail2", there were more or less two kinds of FLOSS e-mail clients out there.

Bad UI, decent engineThunderbird was an example here; compared to KMail 1.x, Thunderbird had completely absurd layout of configuration options and doing simple things (like creating a new e-mail identity and connecting it to SMTP and IMAP/POP accounts) seemed daunting.

Completely subjectively I include in this group also Evolution and Mutt, simply because I use KDE (hence GTK is bad mojo) and am a GUI afficionado (yeah, yeah, so shoot me).

Great UI, great engine — in my book, this group consisted of just one project: KMail 1.x. It had everything: IMAP/POP/SMTP, TLS/SSL/STARTTLS, Sieve, advanced local filters, multiple identities connectable not only to specific accounts but to specific mail folders, proper standards support, proper quoting, and everything configurable via a sane interface with predictable results. All mail kept nicely in standard Maildirs so that KMail's mail was the easiest to handle by any standard Maildir tool.

And from verions to version there actually were incremental improvements still. What's not to love!

What the hell happened?

Since then the KMail2 team apparently decided to take a different route, which I would guess was something along the lines of:
1. take the best e-mail client out there;
2. mangle in ways nobody would believe were possible;
3. ???
4. PROFIT!!

And thus today KMail2 lands squarely in the "WTF UI, WTF engine" category (at least retaining the "the only one in that category" title).

So, what's wrong with KMail2, exactly?

Well, what isn't?.. Not really even sure where to start. So let's start with the "migration assistant".

Migration assistant

The first time a user runs KMail2 over an existing KMail 1.x setup, a "migration assistant" appears. Not much to it, it just informs the user about the need for migration and then attempts to migrate all the accounts and e-mails from KMail 1.x. this takes a lot of time, usually, but hey, that's the price of progress, right? Once the migration is finished the user is set up and are ready to go.

What the user doesn't know, however, is that the end of the migration is just the beginning of fun times. During the next few days the user will notice many entertaining facts.

Like the fact that the migration assistant does not migrate e-mail filters. Got 200+ KMail 1.x filters set-up to help you stay afloat on the flood of everydays e-mail activity? Tough luck, buddy, that's history. Good luck re-creating them all.

Like missing e-mails (or duplicate e-mails). Or that viewing e-mails that actually got migrated will be unbearably slow at times. Some folders will just get marked as "corrupted" (yes, these folders that were created by the "migration assistant" itself, why do you ask?) and will cause KMail2 to block the whole account entirely (with a nice red tint on all folder names) until KMail2 and Akonadi get restarted...

As it turns out you can actually skip the migration and import messages from KMail 1.x store later on, and that seems just a bit better idea (caveat: "better" does not mean "perfect", or even "good").

But wait, why the heck do I need to migrate my 10GiB of e-mail history from a perfectly working (and standard!) set-up of MailDirs at all, just to use KMail2? And what the heck is Akonadi?

Akonadi

Akonadi is supposed to be the data engine behind all PIM (Personal Information Manager) related content in KDE. It handles contacts, calendars, e-mail and possibly other data (the list is growing). And it was released as stable as soon as it achieved more-or-less alpha status. At least that's what I can tell from how well it does the job at hand.

The fun part with Akonadi is that it has to have a database back-end set-up. By default it uses MySQL, so when you have Akonadi, you have MySQL instance running.

But hey, relational databases are a true and tested technology, why not use it, instead of some internal, in-memory data store that Akonadi would use either way? And of course now Akonadi doesn't have to use any internal, in-memory data store for data retrieved from such a database. Surely, the additional abstraction layer won't change much, at least not to a point where it's evident Akonadi is a problem.

Finally, it's not as if keeping everything in nice, editable, standards-compliant files on disk makes anything (backups? trying a different e-mail client? export/import? data recovery after a failure?) easier and safer, right?..

(un)Usability

Some problems with KMail2 are related to Akonadi; some are clearly the fault of KMail2 itself. Of both kinds there are many.

The first biggie is the slowness. KMail 1.x displayed the list of e-mails in a given folder instantly. And I mean instantly. Same thing with displaying the contents of an e-mail once clicked. In KMail2 I have to wait several seconds for the list to appear and be usable (i.e. the list can be visible, but not clickable). That is probably related to the fact that e-mail data are now retrieved from Akonadi, but why do I care? From the end-user perspective this is worse.

Now, displaying the folder contents is one thing. Moving a folder with a few hundred or thousand e-mails from one place in a folder tree to another — that's a whole different game. This can take about a minute (yes, I have actually timed it) before it's done and the interface is usable again.

Oh, and you get no visual cues that that's the case — the folder list looks perfectly normal. You can try to click a folder, only you'll not see the contents. You'll also notice that your CPU fan goes berserk and the whole interface grinds almost to a halt... and then magically, the folder being moved appears in the place it's being moved to and the interface is almost usable, again — with no visual cues to that effect.

Then there's inconsistency. Duplicate e-mails. E-mails that magically become unread again. Folders that have their whole contents disappear after deleting a single out of many e-mails they contain, only to show the missing e-mails after the user starts pondering, frantically, when was the last time a full backup was made...

Like the e-mails in the outbox waiting for user's explicit "send now", that get sent automagically once a new Internet connection is available. In the outgoing accounts configuration there even is an option of configuring what should happen with messages in the outgoing folder. This setting is completely ignored. Messages get sent out when KMail2 (or Akonadi?) decides so and that's that.

Like new e-mail accounts that, upon failure, display random failure messages — sometimes it's "Authentication failed", sometimes it's "KWallet access denied" (even though KWallet was never used, or was explicitly instructed to permit its use and is open), sometimes only a cryptic "Account misconfigured" even though the account worked just minutes ago.

Then there's mail importing. Supposedly a different, better way to import KMail 1.x e-mails into KMail2 than the "migration assistant", it does a decent job of importing your e-mails from the old KMail 1.x store and marking them all unread. One would think that if KMail2 is importing e-mails from KMail 1.x store, it would be possible for it to properly import also the status of messages. Apparently, one would be mistaken.

In my case that meant I had 140k (no, not a typo) unread messages I had to sift through and find the few messages that actually were unread. And then mark all the rest as read — which, unsurprisingly, took a lot of time, mainly because even marking a mail folder as unread takes much longer than in KMail 1.x.

And after I'm done with that, there's the joy of moving the imported folders (conveniently put in a "KMail-Import-mail" folder) to their correct accounts and places in the folder hierarchy. Which, as we already know, is excruciatingly slow.

Finally, the protocol or what-have-you changes. Even though KMail2 and Akonadi are being shipped as stable, the protocol and formats of the internal storage changes just a tiny bit with some minor releases. And that means that you can have all the fun and all the entertainment with "migrating" your e-mails more than once. Indeed, you can be sure you will.


But apart from these important problems, there are scores of smaller annoyances, discovery of which brings endless joy to a happy KMail2 user. I won't be able to go into detail and describe them all — mainly because there are so many of them. But here are some of my favourites.

Handling of ignored threads — that's a great feature for mailing lists: the user marks a thread as "ignored" and all future e-mails in that thread get automagically marked "read". If it only worked! In KMail2 if a thread is marked "ignored" you get 50/50 chance a given new e-mail in it will get marked "ignored" and "read". You can have (and indeed, I do have) threads marked "ignored" with several unread, un-ignored e-mails inside. Which, of course, defeats the purpose.

But wait, there's more! Once the user gets annoyed and un-ignores, pretty much all e-mails in it get marked "unread". Yay!

Password prompt for each and every outgoing e-mail. KMail 1.x had a nice, simple and very usable feature: during sending the password for a given account (if not stored) only had to be supplied once; after all messages have been sent, the password was being forgotten again. So, for 20 outgoing e-mails from a given account the user had to supply the password only once. Usable and safe.

Of course, KMail2 improves upon this idea by asking for the password separately for each and every e-mail.

Which wouldn't maybe be that annoying had the password prompt been focused properly.

Un-focused password prompt. So, you want to send your e-mail, but the SMTP password is not stored in KWallet? No worries, KMail will display a password prompt for you; but be careful, if start typing your password instantly as soon as the prompt appears, your password will land in the random other application accepting focus, as the e-mail prompt is un-focused (and there seems no way to make it focused by default).

So, instead of:
Ctrl-Enter -> type-in-password -> Enter -> sent
...you get:
Ctrl-Enter -> find-the-damn-prompt-window-and-click-on-it -> type-in-password -> Enter -> sent.

Or, well, you would, if only the following was not the case...

"Send now" means "ask when to send". In KMail 1.x the "Send now" button and short-cut meant just that: send the message being composed immediately. KMail2 usability experts decided that simple actions like "Send now" are too simple and they need to ask the users what they really want to achieve. Once you click "Send now", you get a nice dialog box asking you, if you really want to send now, or maybe send layer, or cancel the whole ordeal.

To add insult to injury, there is a setting in outgoing accounts configuration called "Default sending method", with two options:

  • send immediately;
  • send later.

This option is also completely ignored.

This is completely bollocks. If the user clicks "Send now", what makes you think, pray tell, that they want to do anything different than, you know, sending the e-mail immediately?.. This adds the need for additional (and completely unnecessary) click for each outgoing message. Usability FAIL.

"Send later" means "ask me in detail". There is also the "Send later" action. In KMail 1.x it simply saved the composed e-mail directly in the outgoing mail folder, waiting for user to initiate sending.

In KMail2 the user gets an additional dialog box containing a date and time picker, an option to configure repetition of sending of this e-mail (with no explanation if it will be attempted until successful at configured times, or is the same e-mail going to be sent again, and again, and again...), and an option to just "move to outbox".

While I can see the potential usefulness of an option to configure in detail when a given mail will get sent, this should be a separate option. Users accustomed to the good old perfectly functional "Send later" action are only going to find such a "feature" annoying. That's another click on every mail they send each day. That's a lot of unneeded clicks.

End of Rant

I have been a loyal KMail 1.x user for almost a decade. Started using it in KDE 3.x series, I always admired the standards-compliance, the configurability and adaptability, the feature set, the speed. It was so good, indeed, that no other Qt-based clients gained traction. They were unneeded. KMail 1.x simply did the job best.

Compared to KMail 1.x, KMail2 is a sad excuse of a rewrite. It's all KMail 1.x has never been to me — unstable, buggy, slow, unpredictable, with daunting configuration that has options that get ignored; nigh-unusable with the over-engineered Akonadi under the hood.. This is very sad, as there are no other Qt-based, KDE-integrated, configurable and advanced e-mail clients to choose from.

KMail2 has been in development for years now, and effects are far from satisfactory. Users want to be "saved" from it, bloggers warn about it; the question everybody asks is "Anyone succeeded with kmail2?".

I am still using KMail2 now, but am on the look-out for some sane Qt-based e-mail client. Trojitá is still too basic for my needs, but at least it's usable. If you have any suggestions where to look, please do drop a line or comment on Diaspora.