Bits from Plasma Active Sprint and future events

•17 March, 2012 • 11 Comments

Hello there. New blog post just to catch up with some happenings in the last days and future events. Never been very good at introductions, so:

Plasma Active Sprint

As you might have read already, I have been joining the Plasma Active sprint in Darmstadt. Besides having seen lots of old friends and meeting new ones, we’ve had very productive discussions over the future of Plasma Active and KDE in general. Me and Martin in particular have been thinking and working a bit on the concept of Account management and Metacontacts (a very old discussion we have had in KDE Telepathy multiple times).

One thing which became clear from these discussions was that we want to foster the usage of Akonadi and Nepomuk as much as possible, to avoid reinventing several wheels especially when having to store or cache data. Martin will probably propose a GSoC me and (hopefully) somebody else will mentor about all of this. We want to make KDE a desktop/mobile shell deeply integrated with internet services and this is just the first of many steps we will take. Surely interesting times are ahead of us if you are excited about this.

There have been also several other topics of discussion which are too long (and some maybe uninteresting) to be summarized in a blog post, but one thing is sure: KDE is much more alive and kicking than ever, and the future seems really something to look forward to.

Akademy Pre-Event

From the 26th of March I will be in Tallin, Estonia, with Claudia and the local organizers to have a brief pre-event of Akademy 2012. For the occasion, I will be holding a lesson/workshop on KDE/Qt development at the Estonian IT College, which is also going to be the venue of the event. Needless to say that if you happen to be there, try not to miss it! We will also take care of studying the venue to make sure Akademy 2012 will be among the best ever!

Google Summer of Code is on!

Teo already blogged about this – KDE has been (again) accepted as an organization for GSoC for 2012! For me it is a time I am always looking forward to – this year I have not one but two awesome potential students with great skills and great ideas, ready to make KDE rock even more. Do you think you got what it takes to be part of the great number of students that every year join KDE in submitting a proposal? Then look no further: we have a huge set of ideas, and we are more than happy to welcome yours (we know a lot of people with great ideas out there, and you are probably one of them. Don’t be shy 🙂 ).

If you are serious about your application, learn from your fellow students! Every year we get an incredible amount of outstanding proposals – and they’re so many sometimes we even have to reject them. So you want to be up to the challenge. The amazing Teo cooked up a great (and funny) blog post covering everything you need to write a kick-ass proposal. I consider it as a must-read for any student who is really committed to having his project accepted in KDE.

The application period will start in a week  – get ready!

Software

There’s amazing things coming up in our software as well. I’ll write about them briefly as they deserve their own post, when time will come:

  • David blogged about KDE Telepathy 0.4. It’s going to be awesome.
  • I have been through some modifications of KAuth for frameworks. Some changes are slightly intrusive, but guarantee some fixes and a much improved workflow. I will tell you more in a separate blog post in the next days.
  • We are trying to get serious on the Accounts thing (see Plasma Active Sprint), and hopefully we’ll be showing some results soon
  • And we are trying to cook up something for artist and designers who happen to use or like KDE. Stay tuned for that, news very soon.

Hopefully that’s enough for you to look forward to further updates 🙂

Advertisements

Fixing lid close suspension in 4.8.1

•22 February, 2012 • 25 Comments

I never thought I would have dedicated a blog post to a single bug, but here I am. It has been quite an effort fixing that for good, but we made it, and I wanted to share some considerations we made while doing this.

Before I begin, let me say that bug was an incredible example of constructive feedback by our awesome users: we got plenty of relevant information in a ridiculous amount of time, so I want to thank anyone who replied and/or reported, and if you, dear reader, have an outstanding issue in your KDE desktop – this is a good example of what it takes on your side to get it fixed as soon as possible 🙂 But let’s get to the point…

The issue

Since 4.8, as you probably already know if you follow my blog, inhibition in power management got a significant boost all over the place, but most of all started to work as it should. In addition, we enforced a policy which considered a lid close action to be implicit. We didn’t consider, though, that many application implemented inhibition before 4.8, even if in fact the whole routine was broken in a relevant number of cases. Turns out that some of them were actually doing this wrong.

In addition, we found a bug in our RandR code for detecting multiple displays connected, which triggered a persistent inhibition throughout the whole session since a second display was always detected.

So, what happened in the end? Lots of users weren’t able to suspend their laptop when closing the lid, maybe even you reader. But we tackled down every cause and fixed them.

Applications

Unfortunately, there is no way we can predict whether an application will do its job or not – we can just trust them to do it right. The good news is that our awesome users found the cause in two applications – KTorrent and Apper. While for KTorrent the inhibition feature is actually configurable, so it wasn’t really a bug but a new behavior discovered, for Apper the case was different – a bug in the inhibition routine went unnoticed, and we fixed that. I heard Daniel just released a new version which contains the fix – needless to say upgrading is highly recommended.

KRandR

I am a bit sad about this since this was meant to be one of our killer features. Although, we had to face a number of problems with drivers and such when detecting a second display, as already mentioned. We managed to get to a point where most of configurations will be actually supported, and fixed a number of corner cases where inhibition was not desirable. However, in the end we will probably make this feature configurable, as some users also told us that having suspension inhibited in a multi-head setup is not what they want.

Explicit vs. Implicit

And here’s to the very root of the problem. Our power management system is smart enough to distinguish whether an event has been explicitly requested by the user, such as a button press, or it was an implicit decision from the system, such as an idle timeout. The inhibition mechanism is designed not to inhibit any explicit action, just preventing the system from undertaking an action when the user is not taking part in the decision. The reason why we considered lid as an implicit event was probably wrong, after the feedback we got; but it was mainly to prevent the system from going down when something important (software update) was going on.

Most of our users showed us that the expectation of a lid close is definitely to carry on the configured action regardless of what’s happening in your system, which is indeed something sensible. At the same time, some people were happy with the new behavior and provided some good use cases to prove this (for example, using the new applet checkbox to prevent suspension when closing the lid). In the end, my take was to make this kind of behavior configurable – in 4.8.1, the advanced options will have a checkbox which is going to define whether a lid close is going to be considered explicit or not. And by default, it will be considered explicit like in previous versions.

Conclusion (or TL;DR)

I am happy to say this annoying bug should be completely fixed in 4.8.1, and at the same time we managed to leave our users with a choice to make their PC behave as they think it should. I really hope for 4.9 we’re going to deliver a rock-solid KRandR+Power Management implementation and we’ll try really hard for that, even because that would be a neat feature for Active.

So, if you were affected by this bug and do not care about anything besides your PC suspending when your lid closes – all of this will be just a bad memory after updating to 4.8.1 without the need for you to do anything apart from the upgrade itself. Otherwise, you can restore 4.8.0’s behavior by going in the advanced options. And, in any case, do not forget to update any application which was misbehaving.

KDE Telepathy 0.3, KDE SC 4.8, let’s party!

•28 January, 2012 • 2 Comments

What a week it has been. Not only I’ve had a few days of vacations in beautiful Australia, but two major events happened.

You probably already know that, KDE SC 4.8 has been released. I might be biased, but trust me – this release is amazing. I am especially proud my work on power management got the first page this time – it’s really a killer feature, and I really hope it will become a keeper and another great reason for using KDE for most of you.

But it doesn’t end here: KDE Telepathy 0.3 has been released. Now, as much as this event might seem less interesting, it has a very special meaning to me. KDE Telepathy has been the proof of how a group of friends can get together and build something awesome, while having a lot of fun.

The project is now in a beta state, meaning we’re almost there, and you can start checking out what’s boiling without fearing your PC will blow up in a billion pieces. Of course, we are still not advertising this release to be fully stable, but we do accept bug reports at this stage, and believe the basic features are ready to be tested. So, no excuse: together with your new shiny KDE 4.8, try the future of Instant messaging on your favorite desktop environment!

Assuming you are a developer, are you interested in what these changes will bring to your world? Well, you’d better be excited. A video is worth a thousand words, they say – then why not checking out my talk at linux.conf.au about creating social apps with Telepathy and Qt? And if you are wondering – yes, the code for the example is actually available on KDE’s git on one of my scratch repos (link coming later, quickgit seems to be unreachable at the time I’m posting). See for yourself how easy it is to make your application rock even more!

But, the most amazing thing happened when David started the beer fundraiser, to get us wasted at FOSDEM. Well, the response has been flattering: up to now we have raised something along the lines of 230€, which is enough to kill a couple elephants considering where we’re going. So thank you! Given this thing has gotten quite far, we’re adding some more rules to our small game, and we’ll rollover funds to any other meetings if we pass out before spending all of this money (likely). Want to have a nice picture to show to your kids of a bunch of friendly hackers lying on the floor or having lots of fun without actually doing anything of the usual activities they are supposed to do? You still have time to donate.

(apparently wordpress.com doesn’t like paypal buttons – please refer to David’s blog post for donating)

Thanks again everyone for your support, and I hope our new software will rock your world.

Some news, and improvements in inhibition

•18 January, 2012 • 13 Comments

Hello everyone,

I am at linux.conf.au at the moment, where I am delivering two talks, about Qt and Multithreading, and Social applications with Telepathy. The first one was yesterday, and I was very pleased by the feedback I received – thanks to all of you who attended, and if you couldn’t make it, videos will be up soon. The conference is being streamed live, so you’re still in time to follow me on Friday.

Besides that, I wanted to blog about some improvements towards flawless power management inhibition. A GCI student, George Stephanos, took the task of testing and fixing inhibition in 4.8: the results were two bugs fixed, and dragon player being able to successfully prevent any power management action. But it does not stop here: yesterday I also added inhibition support in Okular – if you are giving a presentation with it, you don’t have to worry about your screen or your system going down anymore.

Of course this doesn’t end here: the quest for making the new inhibit button of 4.8’s battery applet less and less useful has just begun, but we need your help. What’s your favorite application in which you miss inhibition? Adding support for that is ridiculously easy, but if you don’t want to get your hands dirty, just saying something in the comments will probably have some brave developer take care of that issue for you. And if your target application is not using KDE/Solid, don’t feel cut out: we still support the legacy org.fd.o PowerManagement interface, and our APIs for inhibiting screen power saving and sleep are available through DBus as well.

And on a related note, from 4.8 on Solid::PowerManagement::beginSuppressingScreenPowerManagement will also take care of inhibiting the screensaver for you, if any. With one or two simple function calls, you can improve the user experience significantly for your and our users. So, since you no longer have an excuse, give out your help now to make power management a complete hassle-less experience in KDE!

Polkit-Qt-1 0.103.0 Released

•15 December, 2011 • Leave a Comment

Howdy,

a quick update just to notify a new release of polkit-qt-1. Release announcement after this link.

This release brings a fix to infamous Bug 258916, thanks to a patch by Nick Shaforostoff. Needless to say distributors are highly encouraged to update their versions.

Updates all over

•12 December, 2011 • 10 Comments

Although I promised I would have blogged more often, I find myself to be always very short on time to do that, and always in need of writing “wrap-up” posts to keep up with everything I do –  I guess you can live with that. While writing this post I am stuck in Frankfurt Airport waiting for a train, so why not writing a blog post after quite a while. But let’s cut the introductory words and let’s get straight to the point(s).

Big updates in KDE Telepathy
Last days I have been working very hard on KDE-Tp and Tp-Qt, bringing some big changes and improvements to both projects. As Martin already blogged, I took over a big part of the porting to the new Tp-Qt. One of the main reasons why we did that was some patches I have been pushing to it. First of all, thanks to the new Tp-Qt, we are now able to correctly detect action messages, such as “/me” (David already has a patch about that). High-level DBus tube support is soon to be merged as well, which will eventually allow many applications to take advantage of the feature in an easy way.
This is not everything though: the underlying architecture has undergone quite a change due to the fact telepathy-common-internals is now a private library used by all of our projects. Which means: if you want to compile KDE-Tp master, which will eventually be KDE-Tp 0.3, you will now need Tp-Qt master and telepathy-common-internals right before building anything else. Our final 0.3 release is obviously planned after the first release of Tp-Qt 0.9, so our packagers can stay assured we won’t rely on snapshots.
I have also been lucky enough to catch Nuno in San Francisco and take advantage of his awesome UI Clinic. I got some useful feedback I still need to reorganize and communicate, but it’s been indeed very interesting and useful. And I also learned something more about how to spot (and what are) UI design errors, which is always a good thing.
So, what’s coming up? Lots of things. The 0.3 release will mark the move of KDE-Tp out of Playground and into Extragear, leading the path towards our first, awesome stable release and towards starting to spread our software to all distributions near you. 0.3 should still be considered beta, but we are getting there. Our effort is complex and geared towards a stable and long-term solution, and I can assure you won’t regret the wait.
More stuff in 4.8 Power Management

If you are a loyal reader (you are, aren’t you?), you are probably aware of the big changes the Power Management infrastructure has undergone in 4.8. Before the final release, I still had the time to fix a few bugs (a lot of them were long standing from previous KDE versions, so you should indeed be happy), and to implement a few new small things. One of them is “supported actions”. What does it mean? From 4.8, individual actions are able to advertise if the system supports them. If that is not the case, the action won’t activate itself and won’t even show in the UI.
To give you an example, suppose your monitor does not support DPMS (unlikely, but well). Before this change, the “Turn off Screen” action would have appeared in the configuration UI and loaded under the hood. From 4.8 on instead, the config UI will not expose the action at all in the configuration, and the daemon will simply refuse to load it. And since the check is always done at runtime, you will be always 100% sure to see only the actions your system supports.
This is a huge step forward towards the integration of more complex and hardware-specific actions, which can now be shipped by default but be exposed only on systems which support those. It will be extremely useful on mobile devices, like in the Plasma Active land, but don’t underestimate the impact such a thing can have on desktops as well: my friend admiral is coding an action to allow automatic switching of graphic cards on systems which have this feature (like my Macbook Pro) and support it. This is quite late for 4.8 of course, but thanks to the new architecture it can be shipped into a separate package for people who cannot wait. It will probably make it into workspace in 4.9 though.
Of course, this also means if you have hardware which supports particular power management features, you should really look into writing a new Action and finally getting rid of those scripts. Although writing an action is really straightforward, I indeed plan to write a decent guide on Techbase for interested people. As I had many cries for support of particular powersaving features in different video cards, be aware that you no longer have an excuse to prevent you from contributing!
Catch me around

If you want to catch me around in the next few months, in January I will be in Ballarat at linux.conf.au, talking about how to build social applications with Telepathy and Qt, and most probably also on multithreading features in Qt and how to get the most out of them (yes, two separate talks of course). Otherwise, I will very likely be at FOSDEM in February to meet old and new friends. If you want to catch me for a beer, be my guest. Also, I will be going around with some ALERT leaflets and will probably give out a lightning talk about ALERT and KDE’s involvement in that.
And that’s all for today, my train’s about to arrive. See you next time.

KDE Tutorials, and several updates

•10 November, 2011 • 3 Comments

Hello everyone,

I am blogging from Canada at the moment, where I am going to spend the month of November before going to San Francisco to attend Qt Dev Days, hoping to see many of you there. While I’m here, I wanted to give you a brief update of what’s happening behind the scenes and about some initiatives we had.

KDE Tutorials

Last month, in an initiative to gather more contributors, Lydia, Myriam and me held and managed a series of live tutorials about KDE. You can find the sample code I used for mine in a scratch git repository after this link. The tutorial was overall a success, and it’s something we’re gonna repeat in the near future. However, many things went wrong and need fixing to allow a better experience.

Technical problems

We tried using the Hangouts feature of G+ to hold the tutorial. We had a series of problems regarding the attendants unable to join, or non fluent video/audio streams. Besides that, we got an impressive response despite the very short time we had between the announcement and the tutorial itself. Turns out no more than 10 people can join the same hangout at the same time, making it quite impossible to handle such a thing with a decently sized audience.

Also, I didn’t manage to record the tutorial, as recordmydesktop constantly got out of memory and crashed every time. We are looking forward to suggestions on how to fix this in the next tutorials, and people helping us in providing a reliable infrastructure for live training. Do you have ideas, the know-how, and want to help? Get in touch!

What’s next for tutorials?

As I anticipated, I will do soon a series of off-line tutorials (videos) with the concepts of my last one to be posted on Planet KDE and such. But we’re keen on pursuing the live tutorial way, and we look forward to organize more of those. And since the audience is YOU, you decide: what would you like to see in an upcoming tutorial? Don’t be afraid to ask, and a friendly KDE developer will eventually hold one on the topic you suggested!

In short, you can expect more events and videos to help people getting involved in KDE even more easily. But show us your interest, excitement and your ideas: you’re going to help us and motivate us in organizing more.

Power management

As a short heads-up, everything I have been talking about in my last blog posts about power management has been merged into master before the freeze. This means: all of this goodness will be in KDE 4.8.

ALERT

If you follow my friend Stuart, you probably already know I am involved as a member of the KDE e.V. in the ALERT project, a partly EU funded technology project that aims to improve the ways in whch free software communities track bugs in software, identify trends and issues and find the right person to fix a problem (yes, copy-pasted from Stu, he’s much better than me in these kind of things 🙂 ).

If you are interested in finding out what it is, it’s your chance to meet me up at FOSDEM next February and have a beer and a chat about it: I’ll be around showcasing it, so don’t be afraid of getting in touch and ask your question(s). This project might indeed become very beneficial for KDE in the future, and we’re more than happy to clear your doubts on it, and tell you what’s coming up.

GSoC Mentor Summit

I was one of the brave souls representing KDE at last Google Summer of Code mentor summit. It has been a great experience, and it was great bringing the voice of KDE out to so many different communities and people. We also got some very interesting discussions and proposals regarding next year’s SoC and a general way for making people getting involved more easily. So, if you are a student: you have another very good reason for applying for SoC next year – or, if you are impatient, there’s Code-In waiting for you right next door. It has never been more easy (and rewarding) to get started into KDE development immediately, so don’t be shy!

That’s all

…and I think I covered pretty much everything I could. Stay tuned for more news!