Too much of a good thing

So the last couple of months, after our return from Italy, were nicely busy. At the day job, we were getting ready to create an image to send to the production facility for the QML-based embedded application we had been developing, and besides, there were four reorganizations in one month, ending with the teams being reshuffled in the last week before said image had to be ready. It was enough pressure that I decided to take last week off from the day job, just to decompress a bit and focus on Krita stuff that was heaping up.

Then, since April, Krita-wise, there was the Kickstarter, the kick-off for the artbook, the Krita 3.0 release… The 3.0 release doubled the flow of bugs, donations, comments, mails to the foundation, questions on irc, reddit, forum and everywhere else. (There’s this guy who has sent me over fifty mails asking for Krita to be released for Windows XP, OSX 10.5 and Ubuntu 12.02, for example). And Google Summer of Code kicked off, with three students working on Krita.

And, of course, daily life didn’t stop, though more and more non-work, non-krita things got postponed or cut out. There were moments when I really wanted to cancel our bi-weekly RPG session just to have another Monday evening free for Krita-related work.

I don’t mind being busy, and I like being productive, and I especially like shipping: at too many day jobs we never shipped, which was extremely frustrating.

But then last Wednesday evening, a week ago, I suddenly felt queer after dinner, just before we’d start he RPG session. A pressing, heavy pain on my breast, painful upper arms, sweating, nausea, dizziness… I spent the next day in hospital getting checked for heart problems. The conclusion was, it wasn’t a heart attack, just was all the symptoms of one. No damage done, in any case, that the tests could figure out, and I am assured they are very acccurate.

Still, I’m still tired and slow and have a hard time focusing, so I didn’t have time to prepare Krita 3.0.1. I didn’t manage to finish the video-export refactoring (that will also make it possible to pass file export configurations to Krita on the command line). I also didn’t get through all the new bugs, though I managed to fix over a dozen. The final bugs in the spriter export plugin also are waiting to be squashed. Setting up builds for the master branch for three operating systems and two architectures was another thing I had to postpone to later. And there are now so many donations waiting for a personal thank-you mail that I have decided to just stop sending them. One thing I couldn’t postpone or drop was creating a new WBSO application for an income tax rebate for the hours spent on the research for Krita’s scripting plugin.

I’m going forward with a bit of reduced todo list, so, in short, if you’re waiting for me to do something for you, be aware that you might have to wait a bit longer or that I won’t be able to do it. If you want your Krita bug fixed with priority, don’t tell me to fix it NOW, because any kind of pressure will be answered with a firm nolle prosequi.

Leaving KO

Inge, Tobias and I founded KO GmbH in 2007 in Magdeburg. We named it KOfficeSource, because we believed that KOffice, which is Calligra these days, was getting ready for the big time, especially on mobile. Nokia was beginning to invest heavily into open source, Intel joining in with Moblin, the times were heady and exciting! After a bit of rough-and-tumble about the name, we renamed KOfficeSource GmbH to KO GmbH and from 2010 on, we were in business!

For a couple of years we had a great time. We ported Calligra to Maemo, Meego, Sailfish and Windows. We created half a dozen mobile versions of the core Calligra applications: viewers, editors. Along the way, we found some other customers, next to Nokia and Intel: NLNet helped with the port to Windows, SKF used Calligra in their Orpheus ball-bearing modeling tool as the report-writing component, ROSA was getting interested in the WebODF technology we had developed together with NLNet.

Our customers were happy: we really delivered amazing technology, applications with a great user experience, were good at working together with other teams and, well, basically, we always delivered. Whether it was C++, Python or Javascript, Qt, QML or HTML5.

Then things began to go awry. Even after dropping Meego, Nokia was still a customer of ours for some time, but we were doing prototype stuff in j2me for Asha phones. Not really exciting! ROSA went broke. We lost SKF as a customer when they had to reorganize to turn their development process around. Other customers had to cut down — and we were also basically a bunch of tech nerds with no idea about doing sales: until now we never had to do sales.

Which meant that we failed to build enough of a business to sustain ourselves. We tried to expand, with Krita being an obvious choice for a mature product. But that still needed sales, and we failed at that, too.

So, from January on, I’ll be no longer with KO GmbH. The Krita Foundation has taken over Krita on Steam and the support for the Krita Studio customers. We’ll first release Krita 2.9, which is going to be awesome! And then, I’ll be looking for work again, as a project lead or developer, freelance or with a company, on Krita or something else altogether.

Hanzi flashcards?

Hm… I’ve been weeding out my linguistics library to donate everything that has to do with Indo-European, Greek or Celtic to Menna, and everything that has to do with the history of the English to Rebecca. There’s still about a forty feet of bookshelves left.

And then I found my old Classical Chinese readers and Pulleyblank’s. Now I’ve forgotten most of the characters, and I learned those by writing them down on index cards and manually shuffling them (I threw those out ten years ago). Back then, you’d need special ISA board plugged into your PC to show Chinese characters on the monitor…

But in this day and age, something better should be available. So… Is there a open source, preferably KDE, application that assists learning hanzi, preferably integrated with a tablet for dealing with writing characters in strokes? I know of commercial websites that do that, some open source java applications that are not that nice to use — and a KDE app for learning Japanese characters and phrases, which are just too different to be useful.

Bonus points for traditional characters instead of abbreviated ones.

On my way to the KDE on Windows sprint

With all the work of putting Krita on Windows, it has become sort of imperative for me to join the KDE on Windows hackers. Besides, Osnabrück is only two hours by train from my home.

I’m currently trying to make a build of qt and kdelibs that doesn’t start any of the usual daemons: dbus, kded and so on. That seems to have succeeded, I now just need to fix some runtime errors!

This is also the first time in years that I’m travelling without any real Linux device. I’ve got a nice ultrabook prototype that’s running a build of Windows 8. I’m sort of disappointed in Windows 8. I was hoping it would be bad enough that we’d have another Vista-like opportunity, but it isn’t that bad! was hacked…

Last week. We’ve been working frantically to restore the website and make it available again. And just when we thought we had succeeded, Google finds links to malware sites that we had missed, so is flagged as an attack site.

And of course, this is the week of the 2.4 release! Which is an extremel important release because it marks Krita as not just ready for end-users, but ready for professionals. And there’s the experimental Windows installer…

For the record: the only thing hit was the website. Not the source code, not the mailing list, not the forums, just

We are still confident that everything will be up again tomorrow, the day of the release. If not — well, we’ll have to do a small release party a little later on!

My Desktop Summit

No, I didn’t queue for the exo-pc. More on exo-pc’s and tablets in an  earlier post. But I am very glad I came to the desktop summit. Had a great time with lots of people, met many people from the Calligra project, including Summer of Code and Season of KDE students Siddharth, Shreya and Aakriti, and even had some hacking time. We even went to an Indian restaurant with Shreya and Shaantanu.

And I gave two presentations. The first was together with Thorsten Zachmann from Nokia.

The Calligra Suite of applications has been going places. First came FreOffice, the open source first mobile office suite, later renamed to Calligra Mobile when it was ported to the WeTab and MeeGo. Calligra Mobile is based on QWidget technology.

Then came Calligra Active, part of the Plasma Active project. The development of Calligra Active was sponsored by Nokia. Calligra  Active is written using QML.

And Nokia, together with the Calligra community and KO GmbH, developed the successor of Calligra Mobile: Harmattan Office. At the Desktop Summit, Thorsten Zachmann revealed Harmattan Office for the first time. We would have shown it in a life demo had the beamer been compatible with the video out port on the N950. Harmattan Office not only uses Calligra, but also Poppler and will be made available under a GPL license when it ships.

Calligra really has been going places and one of the topics of my presentation was to show how a company-community collaboration can be a success. All in all, Nokia has been involved in the Calligra development for several years now, spanning two generations of mobile office applications.

They spend time (and money) to integrate in the community. They joined sprints, sponsored sprints. All the development on the calligra engine was done directly upstream, in first the KDE subversion and then afterwards the KDE git repository.

At first, bugs were registered in the maemo bugzilla, but all those bugs were pretty soon moved to the KDE bugzilla, and that’s where we work with them.

Nokia hired testers to test Calligra. Not just their own gui frontend, but also the backend. They assembled a huge repository of test documents — and all those are in the open.

Nokia made a lot of effort to grow the community, for instance by sponsoring more than a dozen students to do an internship inside Nokia working, in public, on new features for FreOffice.

It cost effort and was something everyone had to get used to, but as much as possible, everyone used the same communication channels, notably the public irc channels, except for things more tied up with internal process, like the daily scrum meetings. If I would change one thing, I would propose to also do this in the open irc channel.

Like any community member, Nokia scratched their itch. They mostly needed a viewer application, so they were interested in loading office document files, both OpenDocument and Microsoft Office, as well as PDF. And they were interested in rendering fidelity. That’s where they put their effort, and not in the desktop gui which they didn’t need.

What Nokia also did was develop their gui on top of the calligra engine in-house, so it would be a surprise when they released their new systems — and then FreOffice was released under GPLv2+. The community had a choice to accept this code-dump or not, and we accepted it. The same will happen with Harmattan Office.

All in all, I consider that the cooperation between Calligra and Nokia has been an example of doing everything right. And the result is impressive: in many, if not most ways, Harmattan Office is more capable of loading and rendering complex office documents than any other mobile office suite.

Then — after the break, provided by LibreOffice’s Michael Meeks, it was my turn again, this time to talk about Krita!

I perhaps over-prepared my Calligra Everywhere presentation — and underprepared my Krita presentation. In the background, I had gwenview running with a slideshow of all the great art people have created with Krita, and in the foreground I told my story…

Mostly about where Krita came from — a Photoshop/GIMP clone — where it went (everywhere, but without focus — to where we want to take it now — a really good digital painting application.

I also touched lightly on why Krita seems to be flourishing right now. I don’t claim to have all the answers, but some of the things in the mix are these:

  • Focus: instead of trying to do everything, focus and try to be very good at only some things.
  • Friendly: new developers are welcome. We spend a lot of time mentoring, and we don’t go ballistic when new code isn’t perhaps as tight and nice as some other code. Some parts of Krita code might look like a dungheap — but don’t forget this: a dungheap is alive, and a marble statue is dead.
  • Not afraid of taking money: when Lukas found himself with the choice of taking a boring web developer job before he could finish at university, or working on krita full-time we decided to do a fund raiser for him. And he neatly separated funded and non-funded work. Funded was bug fixing, non-funded was brush engine coding. And everyone was happy.
  • Say “thank you” for bug reports. Really. Even if the report is abusive. A “thank you” is the beginning of a productive relationship!
  • And users can be part of the team. Are part of the team. If users do cool art, discuss your work and your problems with us, they’re not on the other side of some mythical line. If users engage, they belong just as much as people writing documentation, doing video tutorials and coding!

Third time to India

I’ve been to India three times now, in the space of about ten months. I’ve never really had any problems, but this time I came home with a bad bowel infection, and it’s still raging… I’m not sure where I went wrong, maybe it’s just that this time I was a little less careful. I even forgot to take my medication and the mosquito repellant this time! Anyway, I’m up and about, most of the time, active and working, most of the time, but I might not be around when you need me, and I might postpone writing difficult mail and so on.

But apart from that, this visit to Bangalore was as wonderful, or perhaps even better, than the previous visits. The first part of the week was spent working on the Calligra-based office document viewer application Nokia is developing for Harmattan/MeeGo. It’s going to be pretty cool, in many important ways better than the proprietary competition. Calligra Stage (formerly known as KPresenter)’s maintainer Thorsten Zachmann was there too, and we had a good time together with Mani, Vidhya and Sai.

And I managed to see parts of the Cricket World Cup match India vs Netherlands! I still think, though, that the Indian in the breakout room shouldn’t have laughed so much at our blunders! We put up a good game for a country with fewer cricket players than the average layout of Bangalore, I think…

Highlight of the trip was, of course, I managed to be there on Friday and Saturday. It was very, very well attended, by hundreds of people, mainly students.

The Calligra talks given by Inge, Mani and me were very well received, even if the content was quite technical. On Saturday, Inge, Mani and me helped quite a few people getting started hacking on Calligra and Krita. I even worked together with a five or six year old boy on fixing a bug in Braindump, the latest addition to the Calligra family!

The conference promises to be quite succesful when measured by new contributors arriving on the mailing lists and irc channels, fixing bugs and providing patches.

A truly great conference. Thanks Pradeepto and team for organizing it!

My Sunday was spent with Girish, working on a shared project, but also meeting his wife and nearly one-year old son (who learned to push a chair around the room while I was there). And a nice walk through Ramamurthy Nagar’s farmer’s market. As organic as organic can be, but it was extremely crowded as well as dark and dusty, so I couldn’t take any pictures.

And now it’s time to check out the progress Krita has made in my absence…

Mobile World Congress

I’m travelling too much… I just returned from India, where I visited and did some work — but I haven’t had time to blog about the Mobile World Congress, which I visited before going to India! And the First Calligra Sprint in Berlin is already coming up, and I haven’t got my train tickets yet… Oh well, first things first. The MWC! (I’m sure to be the last MWC attendant to blog, so there’s value in there as well…)

MWC is a huge event, with tens of thousands of visitors in a sprawling setting with eight enormous halls. We went there on behalf of KO, invited by Intel, to show off Calligra running on MeeGo at the Intel App-Up booth.

We had three versions of Calligra to show: the desktop version, the mobile phone version (formerly called FreOffice, now renamed to Calligra Mobile) and an experimental tablet prototype that has support for multi-touch pinching and zooming. We intended to show that the Calligra engine really is kind of the webkit for office document apps — a story we kept repeating.

But in general, the concept of open source or free software seems to on the retreat, if the MWC is any indication. There were a few free software companies with a booth of their own, but they got hardly any interest. And whenever we gave our spiel about Calligra being a free and open engine for office software, just like webkit, we mostly did’t get much response. Similar for MeeGo at the MeeGo pavillion: people were interested in it, interested in the hardware, but the upstream-first, open nature of MeeGo didn’t seem to interest anyone much.

It might just be the kind of audience, but I think that Nokia retreating back into the comfort zone of closed source, proprietary development might have something to do with it. Even though Nokia’s announcement isn’t the end of MeeGo — Intel is pretty much committed, as they were when they were on their own with Moblin, and Nokia still develops it as a research project, like they did with Maemo, and there are still plenty partners in the consortium, it still is a watershed moment for the open source world. The trend of increasing openness and cooperation is quite clearly reversed.

What people seemed to repeat to us most was something like this: Apple succeeded with completely proprietary systems, Google succeeded with grabbing code and dumping back what they had to. Nokia twice tried to engage with the community to build their product. They failed twice. Proprietary development vs Open Source, score: 2 – 0. It’s very hard to discuss this idea, especially since Nokia did not do anything really wrong in their engagement with first KOffice and now Calligra.

About Nokia… The Nokia booths and developer days were very, very weird. Especially because everywhere Nokia was still giving out the pre-Friday message: Qt everywhere, MeeGo cool, Symbian cool… They were even handing out E7 phones. The Qt booth had some pretty impressive demos as well. Down to “Qt Everywhere” posters in the Nokia lounge.

Android is clearly everywhere. And that makes the release of an alpha version of a Qt for Android SDK so incredibly important. With Android and WebOS running Qt apps, the only place where Qt isn’t, is Windows Phone 7. (By the way… I made a Windows Phone 7 phone crash by playing with the pre-installed Microsoft Office app on it.)

Whenever I make a trip, I like to have some time exploring the place. I didn’t get to see the Sagrada Familia, instead I got lost a bit in the Barri Gotic, saw the remains of the Roman walls and visited a wonderful fresh food market. And one afternoon I took an hour or two off to visit the Catalan Art Museum. Parts of it were closed, like the romance art section, but the parts that were open were fantastic. The gothic art, frescoes and paintings, were different enough from the flemish art that it became interesting and the sculpture collection had some very interesting pieces, even in the modern section.

All in all, a great experience, very educational and a wonderful city to visit. The City Part Hotel Sant Just we stayed at had such great food that we never really went out for dinner anywhere!


Since yesterday, the river IJssel has flooded its banks. The embankment (“Welle”) is now flooded. It’s expected that we’ll get some more water. There’s no danger it’ll reach our house, though, since we’re living on little mound that’s been dry since the first people came here in the Neolithic.