Friday, June 28, 2013

SUSE Hack Week 9

The results are in. The winners of the awards for SUSE Hack Week 9 have been announced.

The award for the best overall project goes to the heroic effort to kill YCP. The team has made great progress and the plan is to see the results in milestone 4 of openSUSE 13.1. It will be the first SUSE distribution since ages, which will install without requiring YCP, the SUSE in-house developed programming language. This is quite an achievement. It ends an era and starts a new one.

Other awards went to the widely discussed team effort to create a light-weight deskop using KDE technology, to Tim's great performance as individual developer to get support for encrypted web sockets into QEMU's VNC implementation, or to the glorious openSUSE ARM team. There are more awards, and you can find the full goodness of all Hack Week projects on the Hack Week Wiki.

My own project was somewhat meta. Together with Henne I worked on a web app for managing the Hack Week projects. We weren't happy with the current set of tools, because they didn't provide enough support for discovering projects and fostering collaboration. So we set out to change that, took a deep grab into the magic chest of web technology, and wrote a new app. There is a demo and source code.

You can enter and maintain your projects, join and comment on projects of others, and browse projects to see what's going on. We also started to implement a recommendation engine, which hints you at projects, which match your interests. This gives a more structured environment than before, which hopefully makes it easier and more fun to collaborate on common interests. Some more details about what we did you can find on my Hack Week blog.

Our intention is to have this app ready for next Hack Week, so that we can use it for managing the projects then. If you want to help you can find the source code on GitHub.

Another fun project right before Hack Week was to set up the Hack Week web site. Cassio, André, Tom, Ken and me threw together some time and effort and came up with a shiny scrolling front page, complete with magic project lock, and a terminal mode.

And of course we had T-Shirts.

I'm looking forward to next Hack Week.

Wednesday, June 26, 2013


I posted this on the kde-promo mailing list. But it's more fun with proper links, so I'm reposting it here.

Konqi is a part of the KDE family for a long time now. He has not only been part of our software and promotion activities, he has also made several real-life appearances on his own, or with his girlfriend Katie, and as a movie star. He has looked over the shoulders of many KDE developers and the plush version has been part of quite some kid's lifes, including mine.

Konqi has inspired artists, pastry cooks, and needlework. He also has been an excellent member of the family of free software mascots. And of course what would David be without his famous Konqi T-Shirt?

Konqi is part of our home as community, and while not everybody likes him the same, for many of us he is part of the identity of KDE. But he wasn't our first mascot, and he won't be our last one. The new rendition is cute, but still professional, and opening up a number of new interesting ways how to work with our mascot.

It will have to prove itself. I don't think it would be right to do a huge change to our mascot by a vote or a committee. But if there are people behind it, who give it a life, use it to give KDE promotion a fresh touch, make use of the opportunities it provides, it will grow and can become a worthy successor of our current Konqi. Then it will be part of the KDE family as well.

Tuesday, June 11, 2013

Experimenting with user interfaces for todo lists

When I presented Polka, my experiment to reframe the user interface for address books, some people suggested that it would be interesting to try something similar for todo lists. So I did try. The result is a small app called Bliss, because it makes you happy and gives you peace of mind.

I started with taking the concept from Polka to have freely arrangeable items on a canvas organized in groups. That works, but it had a flaw, because the basic element of todos is not the individual item, but a list.

Todos are much more dynamic than information about people. You create, remove, and rearrange them all the time. Context matters. One powerful effect of writing todos down is that you relieve your brain from having to constantly make sure you don't forget about them. This only works, if it's easy and quick enough to structure and arrange the todos according to your mental model. Lists are the natural structure here to keep priorities and order.

So basically a group became a list, where you can reorder items by dragging them around, either within the list or to other groups.

But in addition to this it's also quite useful to have multiple lists in one view. You can for example model a flow between things to do today, this week, and this month, where items in one list are replenished from the next one. Or you can have something like a personal Kanban with lists for things to do, being done, and done. Or you can use a scheme like in the Getting Things Done method. The combination of groups and lists is pretty powerful here.

Bliss keeps the complete history of what you did, so you can always look or go back without cluttering your views with done items. It animates all the transitions when moving items or navigating groups, so you don't lose context when items are rearranged or you change the view. Especially when dealing with such dynamic objects like todo items, animations really make sense, not as eye-candy, but as a way to support you in keeping track of what's happening. That said, they also make the app more fun to use.

The menus are done in the same way as in Polka, as semicircular context menus, which works nicely not only with the mouse, but also on a touch screen.

The code is in the KDE git as well as on GitHub. If you want to give it a try and play around with the UI you can get it from there. I'm happy about feedback.

The technology behind this experiment doesn't matter much. It's mostly reusing Polka code, a QGraphicsView based Qt GUI with an Kode-generated XML backend, which stores data in a git repository. To move forward it would be nice to redo the UI in QML and connect it to Akonadi. But the more interesting part it experimenting with the user interface right now.

Looking ahead it would also be interesting to rethink the UI of mails and calendars by moving beyond the limitations of the traditional widget based approach. This could make it possible to come up with user interfaces which are much more tailored to the natural mental model of people, and make full use of the opportunities you have by not being constrained to paper. There are tons of unexplored areas here.

I'm looking forward to more experimentation.