Mar 282013
 

After a few more weeks of hard work in KScreen we are glad to announce the release of our first release candidate. We decided to jump directly from alpha1 to RC because of all the great feedback we have received and the surprisingly small list of reported bugs

We’ll probably do another RC release to test some of the code that is not yet in this version, like supporting the restoration of manually added resolutions (something only needed for broken monitors).

Tarballs:
http://download.kde.org/unstable/libkscreen/0.0.81/src/libkscreen-0.0.81.tar.bz2.mirrorlist
http://download.kde.org/unstable/kscreen/0.0.81/src/kscreen-0.0.81.tar.bz2.mirrorlist

Cheers !

Mar 242013
 

In short:
From now on we will be maintaining only one release instead of 4. We are going to focus on 1.3 and try to fix all remaining bugs, then we will work on implementing some of the reported wishes and release 1.4. Once that happens we will only maintain 1.4.

Explanation:
Since BlueDevil was released we have been updating all stable versions, which means:

  • 1.0 (currently at 1.0.5)
  • 1.1 (currently at 1.1.5)
  • 1.2 (currently at 1.2.4)
  • 1.3 (about to release 1.3.1)

This has been possible because the code base did not change much between releases so we fixed the bugs in the oldest version and then forwarded the fix to all the other releases, this was the easy part.

Before each release we like to do some intense testing to make sure that none of the basic functionality has been broken. In the hardware world quality is extremely important, we do not want to leave the user without a mouse, connectivity or an usable screen just because we are lazy or we don’t feel like doing QA.

In the case of BlueDevil we test most of this before each release (independently of what code has been modified): http://community.kde.org/Solid/Projects/BlueDevil/Tests

This means that even if the “Send File” functionality was NOT modified in a new release, we test it just in case something broke.

In the list there are more or less 60 items, lets say it takes 1 minute per item to test it (it takes more) that means that it will take roughly an hour to test an entire release. Now multiply this per 4 which is the number of releases we have been doing and you will get 4 hours we invest on QA.

Besides the work we do before each release there is a constant effort of bug triaging that becomes way more difficult when you support a variety of versions since it makes you have to switch to a given version to try to reproduce and fix a bug you can’t reproduce with the version you are using.

If it is that much trouble, why have you been doing it?
In one word: distributions. Each distribution has a different time table, each distribution has a different minor release policy, each distribution is a different world. At the time we started doing this, Bluetooth in KDE was a mess so the highest priority was to have a good experience in all distributions. It should not matter which Bluedevlil version they were using.

Nowadays the situation has changed, we work quite well in all published versions so if a distribution does not upgrade (for whatever reason) the user won’t die.

So, now what?
From now on we are going to maintain only one version, and we are not going to support (or give support) to any other. This means that if a bug is reported with an old version the first thing we are going to ask is to upgrade and test again (if the part that is supposedly broken has been updated).

We are going to release 1.3.1 soon, and possibly another minor release for 1.3 if we have any bugs to fix. Then we will focus on implementing some of the wishes we have been ignoring for years (sorry for that :/)  and release 1.4. Once that happens 1.3 will be automatically deprecated and only 1.4 will be supported.

Personal thoughts:
I find it quite sad that after all this years going the extra mile so distributions can have a good Bluetooth experience, nobody stepped up to maintain stable releases. I guess this means that we are doing the right thing after all.

So, if your distribution is not shipping the latest BlueDevil version or it is not upgrading to it ask them to do so!

If after this blog post somebody feels like taking the job of maintaining the stable releases please, [email protected] is your list !

Feb 112013
 

One of the points we had left to implement before we can consider KScreen a replacement for the current  screen management was support fo XRandR 1.1.

The XRandR1.1 extension dates from 100B.C and it only knows about one screen on which you can change: size,  refresh and rotation. Luckily all modern drivers implement at least XRandR 1.2 (which know about multiple screens) so you may be wondering why do we bother to support such an old thing?

It turns out that virtualization software usually only support XRandR1.1 and some other tools like Xvnc or Xephyr do as well, so the only way of ensuring that we look good when executed in those software is by implementing support for this old api.

Can you imagine what impression will a potential user get if the first thing we do while executed in a Virtualbox is crashing? not good for sure.

So, we are a step closer to consider ourselves complete :)

Cheers !

Feb 102013
 

Belated release announcement of the last and most stable BlueDevil release:

List of unique changes in 1.3 final:

  • 308324: Fixes crash in obexftp KDED module
  • 304785: Fixes crash in obexftp KDED module (yes, another)
  • 311152: Fixes crash in network-dun plugin when no adapter is present
  • KDED crashes
  • Do not show PANU in kiobluetooth since it is not supported
  • Use common version number in all components (correct version reporting)

As always you can download it from:

http://download.kde.org/stable/bluedevil/1.3/src/bluedevil-1.3.tar.bz2

md5: 3a90e8826eb9f464084bbdafa549bf3e
sha256: 6dd3cca20da3ab89af1514717b969cf6d549ead4cd4f3b1f7b23ffe7e5d282e3

Hope you enjoy it !

Jan 262013
 

We are really glad to announce the first release of KScreen, the new way of managing screens in Plasma Desktop !

This release comes with two main components, the System Settings module which will let you configure and arrange your screens in any way you desire, and the KDED module which will remember and restore configurations whenever it is needed.

We have decided to release now since we have fixed pretty much all the bugs reported by our early adopters (special thanks and hugs to them) so we feel that it is about time we let power users test it so we can fix any bug that may still exists.

The System Settings module:

KScreen System Settings module from Àlex Fiestas on Vimeo.

 

The KDED (magic) Module:

New KDE Screen Management from Àlex Fiestas on Vimeo.

You can download tarballs from:

http://download.kde.org/unstable/kscreen/0.0.71/src/kscreen-0.0.71.tar.bz2

http://download.kde.org/unstable/libkscreen/0.0.71/src/libkscreen-0.0.71.tar.bz2

We asked packagers to fill this wiki page with instructions of how to install KScreen in their distributions, so far only Kubuntu and Arch did it :/ so ask your distribution to create packages for it !

Dec 262012
 

As you may know Dan Vrátil and I are working in a brand new screen manager that will solve most of the issues that we currently have on the desktop, making the configuration of monitors either auto-magical or super simple.

We are trying be as smart as possible adapting the behavior of it to each use case making the configuration of monitors as simple as plugging them to your computer.

A video is worth more than a million words:

New KDE Screen Management from Àlex Fiestas on Vimeo.

The behaviors are still not finished and we may change our defaults based on feedback and field test, but eh! it is a start :p

I’d like to personally thanks Red Hat for sponsoring Dan and my employer BlueSystems for letting me squeeze some time to move this forward.

Finally if you want to get this working:

  1. Compile libkscreen
  2. Compile kscreen
  3. qdbus org.kde.kded /kded org.kde.kded.unloadModule randrmonitor
  4. qdbus org.kde.kded /kded org.kde.kded.setModuleAutoloading randrmonitor false
  5. qdbus org.kde.kded /kded org.kde.kded.loadModule kscreen

Enjoy !

Dec 062012
 

Almost a month has passed since I wrote on this blog about the show, and so far everything is going great, people seem to be enjoying it and we are having a ton of fun doing it.

Since I talked about it we have done 2 more shows:

KDE TeaTime #8 – If you could change one default setting, what would it be?
http://www.youtube.com/watch?v=wgv0etfJdNE

KDE TeaTime #9 – When to release?
http://www.youtube.com/watch?v=8-pcPeUsznE

And for the next one in order to properly celebrate the #10 show we have prepared some giveaways !

During the show we will explain how to participate in the raffle so make sure to not miss it!

Cheerz!

Nov 282012
 

In this second part I’m going to explain a few techniques to debug Akonadi we use in order to understand why my KMail installation was working bad.

My configuration
I’m a heavy email user, every day  I receive and read hundreds of them, and I love to have my email synchronized across devices (laptop, workstation, phone, tablet) and particulary in my laptop and workstation I want to have all my email offline so I can make use of it with or without internet, specially useful on my laptop while traveling. Because of all those reasons I have to use something called Disconnect IMAP.

My EMail account
The account has 5.6GB of data and according to GMail it is split in 700K emails (more or less) 200K of those emails are in a folder (label in GMail) called kde-commits with a size of 1.8GB, then it has 5 folders with more than 25K emails and around 200MB of data each, and finally the rest are just small folders with 500-5000 emails. In total there are 70 folders.

First import experience
The first problem I have with KMail2 is the experience out of the first email import. Since my account is so huge it takes a while (around 15 hours) to make the full import and I can’t use the application while doing it because either the data won’t be available or all my CPU power will be used in the task.

To fix this we designed something called “Spanish sync” which basically consist on splitting the task of “Downloading all email while indexing it” into the following steps:

  1. Download all the envelopes (subject,from, to, and some other data) starting from the most recent. Once this is done KMail will be fully functional (full email will be downloaded when user tries to read it).
  2. Download in a controlled way all the email bodies (where the content of the email is). Right now this goes as fast as your internet line allows which can be a problem for people having a fast internet connection (100Mb in my case) and slow machine (my laptop is 6yrs old). Once this finishes the email content will be available offline.
  3. Finally we will index all emails. If the user tries to search before this is done we will show an progress indicator.

The full synchronization of my email is still going to take 15 hours but I will be able to use my application almost since moment one (since it will import most recent emails first).

KMail not showing email body
Even though I set my account as “Disconnected IMAP”, more or less 50% of my emails were not being downloaded so I kept getting this “loading email” message from KMail. This is specially annoying when I’m on my laptop since the internet availability while traveling is not reliable. We have not been able to identify the reason why 1 out 2 emails is not being downloaded but at least I learned how to diagnose this.

Execute the debugging application “akonadiconsole” and go to the “DB console” tab and execute the following SQL query:

SELECT count(*) FROM parttable WHERE name = “PLD:RFC822″ AND data is null;

The result should be a small amount of your total email (in my workstation it is 4K while in my laptop it is 300K). If you set your account as “Disconnected IMAP” and you are getting a high number you may be suffering the same bug.

Unfortunately there is no way to force Akonadi to download the missing body for all those emails… so you will have to either live with it or re-import your account.

KMail not updating email status, not loading anything, not working !
If all your email is offline and you do not suffer from the bug I mentioned before, you won’t even notice this… but if you are using “Normal IMAP” or you suffer the bug this is the most annoying behavior.

Basically all the actions you perform are put in a queue to be processed, for example if you read 100 emails while offline, those “100 read actions” will be stored locally and pushed to the server once online. Where is the problem? the problem is that right now “pushing” this information blocks any other operation to be sure that we are using fresh data so if for instance email XXX is requested akonadi won’t provide it until the the “pushing” finishes.

In most IMAP servers pushing this data is FAST, but for some reason in GMail each modification takes around 1/2 seconds… so if I set as read 100 email or I delete 2000 make the math :p

The solution for this is conceptually quite easy, we should only block operations that affect email XXX instead of blocking everything. The technical implementation is a little more difficult than that :p

You can use akonadiconsole to check this “todo list”, open it go to “Agents” tab, and in there open the context menu on the agent you want to check and click on “show change-notification log”.

Summary:
Akonadi and Kontact2 are an awesome piece of software, I have no doubts that once the issues I mentioned here are fixed we will offer a better user experience than the one you get either in osx or Thunderbird.

As a note, Thunderbird or iMail take also 15 hour to fetch all my email, with the difference that I can use my email right the way, we are not that far.

Finally, a screenshot of how I’d like KMail to look like by default… and I’m not the only one asking this :p

Edit: to have this config just do:

Settings–>Appearance–>Layout–>Show the message preview pane next to the message list
Settings->Appearance–>Message List–>Default Thene: Fancy with Clickable Status

Nov 262012
 

A few weeks ago I went to Berlin, this time to attend the October KDEPIM sprint.

Though I have met some PIM hackers through the years I have been around KDE, I never had the opportunity to actually work with them, and try to figure things out, and as it is usual in our community they haven’t disappointed me.

I had 2 objectives for this sprint, first get a few bugs that I discover while working on WebAccounts fixed, and secondly try to track down all the KMail issues I have when I run it in my laptop. In this blog post I will only cover the first block.

Collections that can’t be de/activated

This is a really stupid bug, but in my humble opinion these are the kind of things that makes the user feel that they are using inferior quality software.

If you take a look at the following pic, you will see how there is a checkbox left of my email address that apparently will activate or deactivate all the contact groups provided by my Google account, well it doesn’t do anything so clicking on it results on basically nothing.

Resources bug

I tried to fix it and successfully tracked the bug down to a piece of code, but I needed help from the PIM hackers to actually fix it, and of course they didn’t disappointed, in a matter of hours it was fixed :)

KMail and the “Broken” imap resource

Just after a new IMAP resource was added (doesn’t matter if from KMail or Kontact or any other method) a notification will appear saying that the IMAP resource is broken. Wait what? is it broken? if I have just added it!

Well, not this is fixed since KMail now knows how to differentiate between a broken IMAP resource and one that has not been yet configured.

Activate resources when added

Another small bug or behavior that really bothers me is that when a new resource is added (for example a Google account is configured), the new added Calendars or Agendas won’t be “activated/checked” by default. I think that if you just added something is because you want to use it, don’t you think?

Well, this problem may seem simple but it isn’t, so after taking a look at it with the PIM hackers we thought a good way to fix it, though we didn’t had time to fix it.

http://lists.kde.org/?l=kde-pim&m=135040360317368&w=2

If nobody does, I will try to fix it when possible.

See you in part 2!

Nov 082012
 

KDE TeaTime LogoFor a few weeks now 3 other KDE hackers and I have been doing a videocast/podcast/show/thing about KDE. It is a completely unprofessional unprepared amateur show where we basically talk about a different topic every week without having any script, we say things as we think them. it Doesn’t matter if they are politically correct or not.

My main motivation for having this show is to open a door to the insides of KDE. This door is open both ways so the communication should and must be from Developers to Users and the other way around, so please participate !

Some urls of interest:

And of course #kdeteatime in both identi.ca and twitter.
We are looking for all kind of participation, just to mention a few from the top of my head:
  • Leave feedback so we can improve
  • Ask questions of any kind!
  • Propose topics for future teatimes
  • Propose people to interview (and questions for these people)
  • Whatever you can think of :p
We usually do the shows every Tuesday at 16:00 CET but in anycase check the latest news and dates in our social sites.
So, join us and have a good time!