Thursday, June 21, 2012

Summer of beautiful installations

One of my favorite features of openSUSE is the one-click installation. Application authors can put a button on their web site, which brings all the machinery required to allow users to install their application simply by clicking the button. No knowledge about repository URLs, package names, or any other technical details is needed. Just one click.



The build service and the openSUSE software search make heavy use of this feature, and there are also many third party sites, which provide easy installation of software for openSUSE through the one-click installation.

In practice the one-click installation is not exactly one click. The current implementation provides a wizard with a number of steps, where the user can choose packages, import repository keys, and perform the actual installation.

As this isn't the ideal user experience, we would like to have there, Garrett LeSage came up with a new design during one of the openSUSE hack weeks, which which simplifies the installation workflow, hides technical detail, and aims to provide a more beautiful experience to the user installing software.


The idea is to have a simple and beautiful application, which presents one screen showing the state and progress of the installation and offering the user the necessary controls. The focus is on displaying the information, which is relevant and understandable to the user, and making the interaction as smooth
as possible.


As part of the Google Summer of Code 2012, Saraubh Sood is implementing the new design for openSUSE. I'm mentoring him for this project. The code and more details about the project can be found in the Beautiful one-click installer project Wiki on Github.

Saurabh is making good progress. At the beginning there was a good amount of infrastructure and background work to be done. Now we are starting to tackle the user interface. An initial result is already there.

The next steps will be to refine and complete the user interface according to the design mockup and connect it to the backend. There is a decent amount of work to be done left, but it looks like we are on track of having a beautiful one-click installation experience for openSUSE at the end of the Summer of Code.

Beyond that there are a number of things we can do to make the one-click installation system even better. We can further refine the user interface, when we have a working implementation of the new design, and can collect more user feedback. It also would be good to extend the format of the underlying installation descriptions to hav more fine-grained information about which repositories provide which packages, or some automatic selection of repositories based on the version of the distribution the user is installing on. Some more tools to easily generate the one-click install buttons would also be nice.

So there is a bright future for beautiful installation of software on openSUSE. I'm looking forward to what we can achieve over the summer and hopefully see results land in one of the next versions of openSUSE.

Monday, May 28, 2012

ownCloud 4 in a box

I got distracted by Linuxtag, but finally got around to release ownCloud in a box based on the ownCloud 4 release now. Go and download ownCloud as aplliance in your favorite format now. It's based on the latest ownCloud 4.0.0 release.


For this release I added two new formats, one is Xen, and the other one is OVF, which can be used to run it on VMware ESX. The other formats such as virtual disks for KVM, VirtualBox, Amazon's EC2 and other hypervisors as well as the live images for CDs and USB sticks, or the disk image and the Preload ISO for installation on physical hardware are of course still around.

When you run the appliance in a publicly accessible way, make sure you change the password of the system and ownCloud users. If you use the syncing client, you should also make sure that the machine runs with the correct time, as the syncing algorithm relies on client and server to have the same time.

Setting up encrypted access via https needs the usual configuration of Apache and uploading of a certificate. If you run ownCloud outside your private network and you have private data on your server, this is an advisable step.

It's nice to see all the great progress in ownCloud. But for those who are on the conservative side, there are still the appliances with previous versions around, so you can run proven versions, while you evaluate the new ones. Choose one from the column on the of the ownCloud in a box page.

Sunday, February 12, 2012

Releasing Polka 0.9

I'm at Osnabrück 10, the tenth edition of the annual meeting of the KDE PIM community at the lovely city of Osnabrück. I took the opportunity to put some finishing touches to the next release of Polka. So here it is: Polka 0.9. I consider it the last beta release before releasing 1.0 as first stable release.


It's still an experiment to provide a new view on the user interface of dealing with people. But it works quite stable and well as it is, and you can give the UI concepts a try. Read more about the concepts in my blog entry "It's not an address book". Get Polka 0.9 by checking it out from git or downloading the release tarball: polka-0.9.tar.gz.

I'm happy about feedback, so if you have comments, questions, or ideas, or would like to discuss Polka, please don't hesitate to get in contact.

Finally as a teaser here also is a sneak peek into another world:


It's not done yet, but there is first build running on the N9. The UI needs some adjustments, but the general concept actually feels right on a phone as well.

Thursday, October 27, 2011

Introducing Inqlude, the Qt library archive

Today I would like to introduce you to Inqlude, the Qt library archive. The goal of this project is to provide a comprehensive listing of all existing libraries for developers of Qt applications. So if you are creating applications using the Qt toolkit, and are looking for libraries, components or modules to use, Inqlude is meant to be the place where you find all information and pointers to get started.


The Inqlude project started at the KDE sprint at Randa this summer, where we discussed the idea of a "CPAN for Qt". There is a thriving ecosystem of libraries around Qt, KDE obviously being a big part of it. But there is no easy way to get the complete picture of it, and simply get the libraries which fit your needs best, independent of if they are part of Qt itself, of KDE, or of any other of the numerous places, where people publish their code. Other languages and frameworks have systems for this, like Perl has with CPAN, or Ruby has with Rubygems. So these served as inspiration and I did a prototype on my way back from the sprint on a Swiss train.

During the Qt contributors' summit, the desktop summit, and recently this week at the Qt contributors' day at the Qt DevDays in Munich, we had more discussions about it, collected feedback on the prototype, and refined the concept. During the last SUSE hack week I sat down to bring the code and the web site up to an alpha state, where it could serve a useful starting point for the project, for application developers to find libraries, and for library authors to contribute data about their projects.

The main component now is the web site. It's listing the data about Qt based libraries. These are only pointers, there is no hosting of code or packages involved. Inqlude is not meant to duplicate any of the functionality of code hosters, or distribution packaging systems, but integrate well with what's already there.



The meta data is stored in a git repository. So it's easy to contribute, following the well-known procedures of submitting patches. More information can be found on the "how to contribute" page on inqlude.org.

In addition to the web page, there is an inqlude command line tool. This can be used to get libraries and install them locally. Right now it's a prototype. It works with openSUSE 11.4 using the openSUSE build service as source. In the future we'll add more backends for other distributions and add more information about packages, so that you can easily install the libraries you need. Again this is not meant to duplicate any existing tools, so we'll make use of the native package management stacks and build tools which are already there.

The command line tool is inspired by the Ruby gem system, which makes it amazingly easy to distribute and get software. The inqlude command line tool prototype uses this mechanism itself. See the instructions how to get and use it on the inqlude.org page for more details. With C++ it's of course more difficult to distribute software, because there is a build step. But here comes the open build service to the rescue, which takes care of this step.


So what's next? This blog marks the official beginning of the alpha phase. The general structure of the web site is in place. So the next steps are to complete the collection of library data, and make the web site ready for end users. When this is done, we'll enter the beta phase. The goal of this phase will be to make the command line client ready for end users. Then we'll release Inqlude as 1.0, ready for production use.

If you want to help, you are more than welcome. Just go to the inqlude@kde.org mailing list. There we'll coordinate development, collect data, discuss, and help, if you have questions. See you there.

Friday, October 14, 2011

Fifteen years of KDE

Fifteen years ago Matthias Ettrich started the KDE community. On 14th October 1996 he wrote his famous email to the de.comp.os.linux.misc group on Usenet. He called for other programmers to join him to create a free desktop environment for Linux targeted at end users. Many, many people joined. Thousands of developers wrote millions lines of code. We did 90 stable releases of our core set of applications alone, not counting all additional stuff and the thousands of 3rd party applications.


So now, fifteen years later, we are done. We have a wonderful free desktop environment for Linux which is used by millions of users every day. Well, are we done? Not quite. While we have reached the original goal of creating an appealing desktop which makes Linux accessible to everyone for everyday tasks, our scope has broadened. There are whole new classes of devices in need of free and friendly user interfaces, it's not only the desktop anymore. The cloud presents new opportunities for connecting computers more than ever, and presents new challenges for freedom of software and data.

We are on it. The last two weeks saw frentic activity in the KDE community. Last week we released version 4.7.2 of our flagship product, the classical desktop. On Sunday we released Plasma Active One, our speedboat going into the waters of tablets and the device spectrum. On Tuesday we released ownCloud 2, our helicopter going into the cloud on its mission to retain your freedom and control about your data.




The KDE desktop is part of our live. We and millions of others use it every day. It's great for getting work done. We are on par with other desktops, but we are still pushing the limits and innovating, for all the users out there. This won't change anytime soon.



Plasma Active is one of the results of our innovation activities. It brings KDE to tablets, and it comes with a strong vision to create an elegant, desirable user experience for a spectrum of devices. It builds on the foundation of the KDE software, but it opens new doors, explores new areas. I'm really looking forward to what we can achieve there.


ownCloud goes beyond what we have done before. It runs in the cloud. But it's built on the values and the community of KDE. We deeply care about software freedom. Enabling users to retain control about their data and their privacy is a big part of that. ownCloud does that where other cloud solutions fall short. It brings fresh blood and energy, and opens up a space, which we weren't able to address before. Here as well I'm looking forward to what we can do.

Fifteen years of KDE is a long time. I joined the community in 1999, and I can say that KDE changed my life. I probably wouldn't have the job I have today without KDE, I wouldn't live where I live today, and I would miss a lot of great experiences and friends I wouldn't have met. In the interview I gave for the "people behind KDE" series, there was a question, what my favorite feature of KDE was. My answer was: "the community". Many other KDE people answered the same.

That's the core. KDE is an awesome community. I'm proud to be part of it, and I'm looking forward to be part of it for the next fifteen years of KDE.

Thursday, October 13, 2011

The demise of the Windows platform

I bought a Windows game last week. What I got was a scenic tour through the demise of the Windows platform. I knew that Windows as gaming platform was troublesome, but it never was as clear that it's actually moving towards irrelevance. If you ever have seriously played games on Windows you know this cocktail of driver updates, googling error messages, entering illegiible cryptic codes from stickers hidden in game boxes, waiting for online activation, going through update popups of various origins, and what not. It took me something like two hours before I was even able to start the game. I love games, and I have played quite some games on Windows, but I might be done with this now.

Of course Windows as a platform won't go away anytime soon. There are hundreds of millions of people running it. But the interesting part is that there are less and less reasons to do so. One of the arguments why people don't use Linux on their desktops always was "I need Windows to run my games". I heard this a thousand times. But as this argument becomes irrelevant, the only argument left is "I have always run Windows".

The free Linux desktop is mature. It's not only on par with proprietary desktops on other operating systems, it actually is innovating and moving beyond what other systems do. It covers all the needs of the vast majority of use cases. It has a variety of office suites, it runs several fine web browsers (another area where Windows has lost relevance up to the point of being made fun of), it has excellent tools and applications in almost any area you can think of, it's a primary choice for software developers, it even moves beyond classical desktops to netbooks, tablets, and more.

In addition the free desktop has some inherent attributes where Windows just can't compete, first of all the software freedom, but also the development model, and the distribution ecosystem. When you install a Linux desktop you have a fully functional system, you can browse the web, you can send email, you can edit your spreadsheet, even printing works out of the box these days. When you have Windows installed you are at the beginning of an odyssey to add all the bits and pieces you need to have make your system functional and secure.

Some might argue, that the desktop itself is becoming irrelevant. For some areas that might be true. People will use their phones or tablets or game consoles for things they have done on a desktop before. But there are so many people using their computers for work and other serious things, where you do want to have a solid desktop, probably not exclusively, but it won't go away for a very long time.

You might also argue, that people are using web applications instead of desktop applications. This also might be true in some areas. But the interesting part is that web applications have developed into another kind of desktop applications. The platform is different, it's Javascript and the web client environment, and the apps are heavily connected to web services. But you absolutely need a solid platform on your local system to be able to run the web apps. This platform is more than ever based on Linux (think Android), and there is no reason why this shift shouldn't continue to happen very quickly.

KDE is in an interesting position here. We are one of the key players on the free desktop, we have a mature classical desktop, we are expanding to other form factors and into the web, we have a strong community, which can make things happen, nobody would have expected to be possible (or who thought that Matthias announcement from 15 years ago would result in something like we have today).

We even have a story on Windows, where we have central applications like Kontact or Okular, which are more than a replacement for the apps, which are only running on Windows. This is more important than ever as a migration strategy. It's very easy to arrive at a point, where all the applications you run on Windows, are actually running natively on Linux as well. Running LibreOffice, Firefox, and Kontact on Windows? Fine, move over to Linux, it will run as well and better, and you will enjoy the freedoms of free software.

We have a chance to change the world, let's do it.

Sunday, September 25, 2011

SUSE hack week

Hack week. One week of ferocious hacking on new ideas without interruptions. SUSE does this twice a year to trigger those innovations, you can't realize when you are swamped by day-to-day work. Of course it's not the only way or opportunity to do new things, but it gives the freedom to actually get something done on a topic, which is not covered by conventional product planning. It's productive, it's fun, it creates great results. Next week it's the seventh edition of hack week. We are collecting ideas and activities in openFATE.



Nat started the first SUSE hack week four years ago. Others followed suit. This is quite a bit of history. So I was thinking of what I did the six times before, and what I want to do at the seventh time. Here is a summary. My hack week blog, which I usually use to report about my hack week progress, has some more details.

Hack week 1: Dynamic web services portal

In the first hack week I tried to put a dynamic web services portal together based on enriched ("activated") Atom feeds. The goal was to collect information from various source like Bugzilla, Email, FATE, Blogs, aggregate them and offer actions to work on them, such as closing a bug, responding to an email, but all from one uniform view. I wasn't able to really get this project off the ground, as I was spending quite some time on helping others, watching, what was going on, and discussing ideas. A week probably also was too short for the ambition of this project. But it was an interesting attempt, and failure is an option at hack week. Others were more successful. Ars technica has a nice piece "Novell Hack Week: an experiment in innovation" with lots more details.


Hack week 2: KDE 4.0 beta

In the second hack week a couple of KDE hackers at SUSE teamed up to bring some parts of KDE 4.0 into shape for the beta release. We took a big office sat down together and worked on various parts of KDE to make it ready for the next beta release. I did a dive again into the KOrganizer code, fixed some bugs, cleaned up the code, did some porting work, and more. It was a very targeted effort, and it was great to work in a team.



Hack week 3: Social desktop

The social desktop project was one of my most successful hack week projects so far. Again it was a team effort. Frank Karlitschek, Sebastian Trüg and Dirk Müller joined me to work on the implementation of some of the social desktop ideas Frank had presented at his Akademy 2008 keynote. While Frank was working on the server side I was implementing libattica as client library to provide social desktop features via the open collaboration services protocol. We got quite a bit of work done, and the project won a 3rd prize as best overall project at hack week. There is an interview, which was taken at Hackweek III, where I give some background and also talk about some other stuff around my work.

It's great to see that the project is still alive and kicking today, several years later. The protocol and the client library I started are widely used now, and it's used as base for  many different use cases, such as downloading wallpapers, providing a software shop, or updating Plasmoid backends. It's awesome when ideas pan out.




Hack week 4: KDE SDK

For hackweek 4 I thought I would try a big, ambitious project, I wanted to do for a long time already, provide an integrated, easy-to-use kit for KDE development. Taking great components like Qt Creator, using wonderful tool like the build service and SUSE Studio, I wanted to put together a software appliance, which could easily be used to develop KDE programs out of the box without much setup effort. I wrote a Qt Creator plugin, added KDE templates, did some services integration with git and opendesktop.org, and put everything together in an appliance. I got a lot of good feedback on the concept, but it was more work than I could do in a week, and I wasn't able to follow up later, so it's still an unfinished project. Would be great to eventually take it up again.


Hack week 5: SUSE Studio GUI client

SUSE Studio has a nice API, which can be used to control all the various aspects of appliance building and publishing. For the fifth hack week I decided to implement a GUI client for SUSE Studio using this API. It also gave me the opportunity to hack a bit on kxml_compiler, which is part of Kode, my multi-year side project for handling various aspects of XML in C++ in an easy way. I made quite some progress and had a client able to run test drives with native integration in the UI. I didn't find time to continue to work on this project after hack week, though, and there are other clients now as well. I'm not sure how much future this project has.


Hack week 6: Polka, the humane address book for the cloud

This was my most ambitious hack week project so far. I fundamentally rethought how I approached address book applications, and came up with a concept based on user's view on people from ground up. I called it a humane address book for the cloud. I had thought about that quite some time already, and also had written some code. But hack week gave me the opportunity to really bring it to a state, where I could share it with others. The feedback was amazing. One of my favorite responses was "I saw the future". Polka now is in a state, where it's actually useful, and I did a first release during the last openSUSE conference. This project has a bright future, I'll definitely continue to work on it.



Next hackweek: Qt library archive

This is my plan for hack week 7. Get the Qt library archive project beyond the prototype state. This started at a KDE sprint in Randa, was continued at the Qt Collaborator's Summit, got some more discussions at the Desktop Summit, and now needs some work to be taken to the next level. The idea is simple, create a web site listing all Qt libraries out there, and an easy way how to use them, think CPAN for Qt libraries.

There are a lot of things, which need to be done. If you are interested in joining me to work on this, don't hesitate to ping me. These are the things I plan to work on:

  • Finalize library meta data format
  • Adapt prototype tool to support the final format
  • Collect real meta data for as many libraries as possible
  • Finish the backend for installing binary packages on openSUSE via the openSUSE build service
  • Look into backends for other distributions, ideally using the same build service integration
  • Get libraries packages, which aren't
  • Implement a Qt based client, possibly with a QML based GUI
A lot to do. Help is very much appreciated. If you are at SUSE or somewhere else, if you are a KDE, Qt hacker, a packager, an upstream library author, a Ruby programmer, or a QML specialist, don't hesitate, you are very welcome to join the fun. Just contact me, and we'll figure out the rest.

Team Profile

What makes a great team? One important factor is that you have a balanced set of skills and personalities in the team. A team which only con...