Monday, June 27, 2011

Putting things together

Half a year ago there was a thread on the kde-core-devel mailing list with the topic "why kdelibs?". I gave a potential answer and this resulted in a series of great discussions. While these discussions were very constructive, it was pretty clear, that we would need an in-person meeting to finally answer the question about the future of the KDE platform.


At the same time Mario was preparing the third KDE developer meeting at Randa, Switzerland. It began with a Tokamak sprint in 2009, continued with a combined KDE multimedia and KDE edu sprint, and for 2011 he was preparing a triple sprint with KDE multimedia, KDevelop, and Nepomuk. Mario put up with the adventure and offered to host another sprint as well, so we put things together and added the Platform 11 sprint to the list.


The sprint ended two weeks ago. It turned out to be four and a half sprint in one, with the kdenlive gang joining us for some extended hacking fun. Almost sixty KDE people were in the middle of the Swiss mountains, coding, discussing, and plotting the future. It was an inspiring and productive event, thanks to the hospitality of Mario and his team (including his family), thanks to the incredible energy, which is unleashed, when KDE people get together. I have been at many sprints over the last years, but it still amazes me every single time, that it immediately feels like meeting old friends, even if you have never met the people in person before. But it's more than just a bunch of friends. It's a group of professionals, putting an incredible amount of passion, creativity, and talent into KDE. This makes these kind of events unique and it's stunning what can be achieved there.

For me the most important result of the Platform 11 sprint was the consensus we built about where we want to move the KDE platform. It's about making the components we provide more accessible to developers, expanding our reach, and cleaning up our technology. We'll go with more modular frameworks with less dependencies, which can be used naturally along other Qt libraries, and a release process which will deliver our work quickly. More details are described in a series of mails about the future of our frameworks from Sebas, the intended organization of our frameworks from Kevin, a plan to transition to KDE frameworks from David, and the KDE git workflow from me, on the kde-core-devel mailing list. To reflect the changes we'll refer to the KDE libraries and required runtime components as the KDE Frameworks in the future and retire the use of the platform term. This expresses well, that KDE provides utility for building great applications, but isn't tying users or developers to a monolithic block of dependencies.


What happened to the idea of merging the KDE development platform and Qt? It was a radical idea to trigger some thoughts, not a plan how to actually proceed. The main goals behind the idea, to make the KDE libraries more accessible, lower the barrier for developers using the libraries, to remove redundancies, to clean up the developer story, grow the developer community, and provide a consistent story to users, they still hold. A lot of what we discussed at Randa goes into this direction. Libraries will become more self-contained and we'll try to put quite some code into Qt. For a full merge neither Qt nor KDE are ready yet, so I think it's a good solution for now, to work on the concrete plans we came up with at Randa along the goals of making the KDE frameworks more easily accessible and available to a wide audience of application developers.

The other sprints happening at Randa also created impressive results. The multimedia guys were putting together the bits and pieces around Amarok, Phonon, PulseAudio, and KMix, and kdeenlive joined the KDE community. At the Nepomuk sprint the Zeitgeist and Nepomuk developers came up with a plan how to integrate their technologies, putting together the best parts of semantic technology on the free desktop. The KDevelop group was tremendously focused, they weren't really visible to me. When I was leaving Randa I met Alexander Dymo at the train station, as we took the same train, and he told me that they managed to check off all their todo items during the sprint. That's impressive, and it reflects the spirit of the Randa meeting.


We had a great mix of people at Randa, KDE dinosaurs and fresh blood, people central to the community for years, and people just joining. We had some friends from the GNOME community there, and we had local people being interested in what we were up to. Even when taking a walk through a bit of the mountains around Randa, we met people interested in what we were doing and ended up discussing KDE.


In the end to me the dominant theme of the meeting was putting things together. We did that with our plans for the KDE frameworks, we did that with various parts of the community, we did it with our relation to other communities, and of course we put quite some code together on top of all that.

Sunday, June 5, 2011

More Polka, please

After blogging about Polka, my experiment with a radically new take on an address book, I got a lot of great feedback. I appreciate all the comments, questions, and encouragement. Two people made me particularly happy, as they not only sent feedback, but also contributed some welcome work. Sascha Manns built packages, and Saleel Velankar created a beautiful logo. Free software rocks.


When I started with Polka, one of the main ideas was to not do a traditional desktop user interface, but try out something more natural. One of the side thoughts was that this kind of interface might also work well on some non-desktop devices, for example on devices with a touch interface. But I didn't really know, if it would work. So I decided to try it out.

My first attempt resulted in a port of Polka to MeeGo. MeeGo is a system targeted at touch interfaces, and being Qt based it seemed to be close enough for a getting Polka to work on it. It took me a while to get a working development environment set up, but thanks to Google, and careful study of a bunch of Wiki pages, I finally was able to create MeeGo packages with QtCreator and run them in an emulator.

Porting Polka then was not a huge effort anymore. The proven approach of bundling it with a mini version of kdelibs covering only the functionality required by Polka on MeeGo worked out well again. So here is Polka Touch.


Unfortunately I didn't have a MeeGo device, and the emulator only gives a very limited impression, of how the user interface works. So I needed real hardware, and luckily I came across some cheap WeTab.

The WeTab comes with some version of MeeGo, but I didn't bother with trying to build packages for it, but installed openSUSE. Again some Googling and studying of Wiki pages was required, but then openSUSE ran on the WeTab like a charm. The WeTab might not be the greatest tablet hardware from an end user's perspective, but for a developer it's great. I even was able to compile Polka directly on the tablet.


So how does Polka work on a tablet with a touch interface? It works surprisingly well. Arranging people by moving them around on the canvas feels even better than on the desktop. The menus work well, not using traditional desktop menus definitely is a win here. The dialogs for input of data, are not that great, but it should be straight-forward to adapt them to some more native method to gather data from the user. Another thing which needs some improvement is the use of the canvas background to show a menu for adding labels. This is easily activated accidentally by just touching the screen. It would be better to support scrolling the canvas with touching the background. This might even be interesting on the desktop version.

Overall I have to say it's fun to use Polka on a tablet. Still needs some tweaks, but the first experience is already quite good. It's nice, when ideas work out.

Friday, June 3, 2011

Platform 11 at Randa

I'm at the Platform 11 sprint at Randa. We are here to discuss and shape the future of the KDE platform. It's the first meeting of this kind since Trysil five years ago. Four people who were at Trysil also made it to Randa, including a respectable dinosaur, but it's great to also have new and very new faces around.


Randa is a great location. It's a small village in the south of Switzerland, in the middle of the mountains. The Swiss railroad system did an impressive job of bringing us to Randa on a steep and winding track. Now we are surrounded by thousands of meters of mountains, and there is snow and glaciers, but no escape. Perfect time to focus on the KDE platform.


Yesterday we did a brainstorming and collection of topics to discuss, and started to go into projects in smaller breakout groups. A Kanban board keeps us on track and moving. There is a lot to discuss, but it's already pretty clear, that there is a solid base of consensus on many of the core questions, how to make kdelibs more modular, how to better seperate and define the framework and the platform, how to lower the barrier for application developers. We will need to do lots of additional work to sort out details and find the best solutions to the key questions, but that's what we are here for. So I'm looking forward to the next few days, and all the results we'll create.