Two Years In (or rather, Out)

So it’s time for a bit of review! Yes, I know! Everyone gets sick and tired of reading year-end reviews of the past year, but in the first place, I like writing them as a form of reflection and record, and in the second place, this one is original, since I’m doing two years in one go!

So, slightly over two years ago, I came out. As a trans woman. After not serving as a subdeacon in Church (lockdown), not seeing my daughters (lockdown) or my dad (lockdown), I had simply lost any reason to pose as a man. So, after a bit of a depression in summer, I came out. First to Irina, then in the KDE community. In retrospect, that was easy… Irina walked to her desk, took out the she/her pronouns pin she used at Worldcon in Helsinki and pinned it on my dressing gown. The next day, she gave me one of her medieval-style dresses that was too long for her.

The first time I wore it, I kept the curtains of the living room closed for fear people might see me. It was a Sunday morning, and I got a big hug when Irina came up from church (it was still pandemic lockdown, with limited church services, but she’s choir, and I could only attend when invited, which was not that Sunday.) She gave me a big hug.

Of course, I hadn’t given much thought to my name…. But I ended up taking an easy-to-pronounce name from the conworld Irina has been working on since before she met me, as suggested by Irina. These days, we mainly play TTRPG in that world. It was a perfect fit, since I had never played a PC with that name, even though I have played a lot of girls and women in that world. It also is very suited to me calling myself out in exasperation when I do something dumb: “Hallaaaaaaaaaaaaaaaaaaaa… Jij doos!”

For KDE, it was a bit harder, but not worth all the emotional explosions I underwent at the time. I say it was a bit harder, but that’s because while I started accepting I needed to come out, I also had started noticing someone else close up was going through something similar, and I didn’t know who to prioritize… But in the end, our sysadmin, Ben Cooksley, simply replaced my old name everywhere with my new name, and a KDE contributor who is also a libera.chat admin helped me fix it on IRC.

After that, it was simply a matter of telling all sponsored Krita developers and volunteers about my v2.0 release, and people started getting used to it.

In december, I started going out, after dark, in one of the dresses I had ordered by then. Like most trans women, I became a bit of a shopaholic, and while at first I only got black (like most trans women), I got into colour preeeeetty quickly.

By March 2021, I was ready to be out in public, and my first stop was the dentist, for the first time since the pandemic started. That caused remarkably little commotion, only the assistant had to run to the dentist after she had done the preliminary work to warn him.

After that, the GP. My doctor admitted complete ignorance about transitioning, even though she had a transmasc boy as one of her patients already. Still, she got me a referral to a brand-new gender clinic quite close by, Nijmegen. Dear reader, I now have my appointment for the intake: February next year. The Quality Standard Somatic Transgender Care specifies a maximum wait time between referral and intake of SIX WEEKS. This was over NINETY WEEKS, or 23 months to the day.

(The other GP, I have two who take turns in their practice, told me that waiting times of two years were just peachy because it would give me time to reflect before I started undergoing medically unnecessary interventions.)

I did the things I could do on my own: get laser to stop that stupid denial beard I had just shaved off from coming back, get voice therapy, nag the insurance company to do something for me to get my intake earlier.

Voice therapy was great fun: Suhail from Voice in Progress turned out to be an excellent teacher, and Irina and I went there together so she would know about the exercises I’d have to do at home. That amused and pleased Suhail, and it was really useful. Of course, when I went into my first puberty, my mom was all like “stop with that burr, it’s not cute. Keep a clear, high voice!” So I had a tendency to speak in a higher voice anyway. (Which caused much bullying, of course. Everyone assumed I was gay because my voice was a bit high.) In about a year, I was done there already.

Duygu Demir from Huid en Laser Kliniek Deventer turned out to be in the same building as my GP, and she, also, did and is doing an excellent job. It’s expensive, and the insurance still wasn’t doing anything for me. The last time I had a call with them they were telling me they really needed the psychological diagnosis, because otherwise something else might be up, without specifying what.

Weirdly enough, voice therapy is covered, except that the insurance company creatively keeps invoices back over year breaks so I never go over my deductible, so I have to pay everything myself anyway. With physiotherapy, they went the other way, collecting several years worth of invoice and processing them at once, so I had to pay for the sessions after the ninth anyway.

May arrived. I was happy: my hair was getting long enough that the wind would blow it into my face when walking down the street. I was pissed: a shopkeeper thought it absolutely necessary and a total hoot to misgender me. I started exploring DIY hormone replacement therapy.

Lockdowns happened again, though not as severe, but I’ve always been a bit of a homebody, and not going anywhere didn’t bother me much. I worked hard on Krita… But then my eldest daughter announced she was going to have a wedding. She was already living together with her boyfriend on a farm house somewhere in the North. And by now, I only boymoded when doing something I needed to show my passport for, like getting vaccinated against covid19.

I also had lost quite a lot of weight, and my boy clothes simply didn’t fit anymore.

By the time the wedding ceremony was planned, I wouldn’t be able to boymode anymore, at all. No fitting clothes, and panicky fits when trying to wear them.

So I decided to tell her. But it wouldn’t be fair to tell my children one by one, so I used the family whatsapp chat group for that. That was a big mistake! Eldest immediately sneered at me, though the middle one complimented me on my new name, and the youngest one reacted a bit cooler.

Long story short: Irina and I were disinvited from the wedding, and I was told that by coming out as trans I had once again destroyed the “normal” life she had built up. I guess growing up in a house where gay, lesbian and trans people are guests all the time was a problem for her. That, or she had read too much Harry Potter.

I also told our priest, and he said he’d accept me completely, but since Halla wasn’t a saint’s name, I needed to have a proper name for church purposes. I chose Antonia, my third name, and my mother’s name. He has been exceedingly good using that ever since when I had the chance to take communion!

Summer came and went. Lockdown ended again. By now, I really wanted to get onto HRT, so I prepared a statement for my GP: either she would prescribe, she would refer me to a local endocrinologist, she would assist me getting HRT from GenderGP and help out with blood tests, or I would do everything on my own.

We were on our way to Egmond aan Zee for our first vacation in years when I got her call: she would cooperate with the GenderGP route. Yay! The place we stayed was a privete holiday home where we’d been before, and the owner knew us, but she was completely fine with me. As soon as she was done telling us about her gay uncle and had left, I completed the application with GenderGP. That needed a selfie…

An awkward trans woman taking her first, reluctant selfie.
A picture of myself that I had to send to GenderGP for identification purposes.

The vacation was fun! I walked in the dunes, and noticed for the first time the advantage of hiking in a skirt: women were a lot less cagey when noticing me coming in their direction on the dune paths. In church, the pastor opened with the usual “bro” — and then corrected herself to “Sisters — it seems the brothers are rather absent today!” And pretty soon, after we had returned, my HRT meds had arrived!

After a month of taking those, I started feeling really good. I got more supple, tits started to bud, skin started to clear, body hair started to disappear. We celebrated Christmas in beautiful evening gowns, together. That’s exactly one year ago today!

Then in January, I got my booster shot. Ten days later, I got sick, and took to bed for a week or two. Ever since I’ve been sick on and off. Good days are great, bad weeks mean puking my guts out, spending all day lying down on bed and being unable to think because my brain just feel like it’s being steamed. Was it covid? I don’t know. I wasn’t able to do a test because the instructions were too complicated. While I had been teaching myself new cuisines, new painting techniques and reading lots of history earlier in the pandemic, by now I was reduced to reading the simplest and most repetitive of Japanese manga. Ah… A festival. Ah, they drew a yukata. I recognize that. Zzz…

We still managed to keep Krita development up, but I would lie if I said that I was pulling my weight. And of course, in February dictator Putin started out on what would become his greatest war crime to date, the invasion of another sovereign country. His actions in Syria and elsewhere were, of course, already war crimes, but this was on another level. And also another level of sheer stupidity. You can have a working army, or a lucrative kleptocracy, but not both at the same time. Even Mencius already warned about that!

Then, back to the personal, my dad came to visit for the first time since February 2020. I had kept onto one of my pairs of jeans, but I was all like, should I boymode, or not. When I put on the jeans and white dress shirt — my uniform for many years, I had twelve long-sleeved, twelve-short-sleeved white dress shirts and three pairs of identical blue jeans — I started shaking, and I also noticed that I had gone from size 52 to size 42. My prediction about my old clothes stopping fitting me was spot-on.

So I met him in a purple dress with flowers and beads embroidered, and all he said was “Can’t say it’s unexpected. Also, that dress suits you.”

Phew!

From then until now, life has been boring: I work on Krita, recently on adding a simple little feature, undo/redo for color sets, which blossomed out into a many-month refactoring that I’m still working on. I try to paint now and then, which is hard, because one of the problems I keep having is that brain fog, but also seeing double and having the weirdest tingling, shaking sensation in my left arm.

Oh, and apart from the usual amount of street harassment, I got targeted a couple of times in the street for being trans. Last time, it was September, my ring finger got hurt, and it’s still too thick to make it possible for me to wear my wedding ring.

Irina now wears it on her necklace that also has her little cross.

We bought a new kitchen, and it was a pain to get the fitters to finish fitting it. They started in October, and it’s still not completely complete, though usable.

Dutch Parliament debated the new trans self-id law, and after all the usual fascists spewed their misinformation, a decision was postponed again. So I went and got my “expert declaration” and Irina and I went to Alkmaar, my place of birth, to get my birth certificate fixed.

The person handling this was SO friendly and congratulated us. And that was a bit of a pattern, because after that I needed a new passport, in the name of Halla Simone Antonia Rempt, and get the change carried through with banks, mortgage bank, pharmacy and lots of other places. And everywhere people were genuinely happy for me!

And, apart from getting sick all the time, I’m really happy, too. Life is so much easier compared to before!

Merry Christmas!

A slightly more confident trans woman taking a selfie in her new Christmas festive dress
Festive Christmas dress!

About Names…

I was named after the then-king of Belgium and my parents. Apparently, discussions with both the minister and the grandparents were getting heated enough that naming me in the Rempt family tradition (Simon, Cornelis, Simon, Cornelis, ad infinitum) wasn’t going to fly, and putting in the names of the granddads as second, third name wasn’t going to work either.

So I was a Boudewijn Simon Anthonie. My mom has always been pissed it wasn’t Anthony, but that was a spelling mistake on my dad’s part, at the registry office. My dad is Simon, my mom was Antonia (born 1939, so what was the connection to the NSB’s Mussert again? Though I also had an Antonia aunt who was born before WWI.) And my “roepnaam” — what my parents put on the birth card as what they were going to call me was “Boudy”.

Yeah. When that got known in primary school, it heralded much bullying.

And in secondary school, feminizing my name to “Boudewina” was pretty much a fave of the bullies — and that group comprised all of my classmates, pretty much. Hey! Boudewina! You’re sitting like a bitch — kick. Hey Boudewina, you’re walking like a tart, push. Hey, Boudewina, your test resultts are good like a girl’s — stomp.

(And years later, when I was in my fifties, and I was out to my wife, though not in public yet, when I was fifty, the local comic book shop owner revived “Boudewina” all on his own…)

When I got into free software, and irc, and Linux, “Boudewijn” was too long — too many characters for a Linux user name back in in 1993. So, I shortened it to “Boud”. And that worked?

Pretty much the only problem I had was teaching people the right pronunciation, but I didn’t really care about that. There was one Krita sprint where I was near the table where Cyrille, Dmitry and others were hacking, and one after another put their finger in the air and shouted, “Boud, boud, can you take a look at this?”

And then corona happend, and I had no reason anymore to fake being male, and came out, first to my wife, who also doesn’t live with her baptismal name.

And I was like, I need a new name, and, NOOOOOO, it doesn’t need to start with a “B”. Fuck that letter ‘B’! Like so many of us, I went through all the table-top RPG player character names of all the people I had played in the past thirty years. Unlike many of us, they all had different names — I didn’t want to contaminate one character with another — but I didn’t figure out anything appropriate. Maybe because I had so many names I had used before?

At that point, Irina, my wife, suggested “Halla”. It’s an Ilaini word (and Irina and I got together over our respective invented worlds and languages) and it means “blackbird”, and I’ve always been really partial to blackbirds… And I had never used this, the most common girls’ name in Ilaini, for any of my PC’s, so it was free!

So, in the end, I once again didn’t name myself, but got named by someone else, by  the woman I’ve been with for over thirty years, and the name just fits!

(The really weird thing right now is that I not only never played any PC with the name Halla, but also that meeting other Halla’s in Valdyas is really making me feel discombobulated.)

Should we stop flying to our free software conferences?

Whelp, the latest IPCC report doesn’t beat about the bush. It whacks right into it. And, yes, while governments and companies need to take responsibility and finally start to DO something, we all still have a personal responsibility.

As KDE we’re working on the energy consumption of our applications (which already has shown something we, the Krita developers, can do right away), I changed to buying the electricity I use for building Krita (and everything else) from the local windmill coop… I don’t drive, never have, and that pile of wood next to the stove dates back to 2018, and we’re not going to burn it any more. (Why would we — it’s too warm in winter, when we came to live here in 2007, we needed that stove because it was too cold otherwise!)

All of that is peanuts.

But there is one place where we, as a free software community, have to take responsibility (that word again) and stop doing something we absolutely love to do, and for which we’ve been pining.

In-person conferences with a world-wide attendance.

I’m hating having to say this, and I’m hating that I have to say that it is inevitable, and I hate that many of my Krita collaborators won’t actually be meeting me, the improved second release, but… We, as a free software community need to have this discussion, and until now, all I’ve seen has been silence.

Flying always scared me irrationally, but that’s not the reason I think we should stop it. Cheap air travel is only possible because it’s subsidized, untaxed and airlines are being kept alive only as a matter of national pride. And that’s the only reason we can actually afford to fly people from all around the world to conferences, sprints, Akademies and the like.

Our conference model is built upon something we wouldn’t be able to afford if air travel was priced in accordance with its real cost.

And, we’re probably not going to miss the presentations, much? Most presentations at free software conferences are, honestly, a bit meh. A conference with presentations is something we’ve copied from Academia. What we’re really missing is the meetings, the chats, the sitting together at a table and making notes, the occasional pair programming, the making new acquaintances, the gossip.

And the remote conference format pretty much only provides the presentations, with a bit of chat, which we already have next to it. And I really cannot handle remote conferences myself. For meetings and BoF sessions, I get a headache in a minute or ten. For presentations, especially when pre-recorded, I get bored in under a minute. That sucks.

Maybe we can find a better on-line get-together activity. Max Miller from Tasting History has a virtual cocktail party with his patreons. Maybe the next virtual conference could start with planning and facilitating the socializing, and only add in a program as an afterthought?

But whatever, we still should not go back to burning enormous amounts of kerosene for our get-togethers. Would it be too much to say that that would be criminal?

Looking in or looking out?

In my previous blog post, I mentioned that being part of the wider Free Software community can be a drag on a project.

In this post, I want to put that in perspective. Elaborate a bit, if you will.

For someone like me who wrote his first GPL’ed application in 1993 (it was a uucp mail and usenet client written in –gasp!– Visual Basic), I’ve spent countless hours pleasantly occupied contemplating the where and which of Free Software. I am part of the KDE community, the Libre Graphics community, the Free Software community. Inside our communities, we’ve got engrossing discussions about licensing, diverting flamewars about business models, scintillating technical developments, awesome foes to smite, forks to be praised or lambasted. There are conferences to be visited, or be perorated at, sprints to organize and organizations to join.

In short, you can develop Free Software within the Free Software community while all the while looking in. This is important for Free Software. That is bad for Free Software. If I make this effort, or take this initiative, or mentor this student, Free Software will improve.

And that’s fun, and gives one the satisfied feeling of making the world a better, freer place. And I care about software freedom, really I do!

It does take a lot of time, though, and that time — is that really spent making the world better for the people who use my software? Is all that caring about the ins and outs of the Free Software community the best use of my time, when I’m working on an end-user application? And does it give me the right kind of insight in what I should be doing?

That’s what I meant when I wrote that I was kind of agreeing with Ton that being part of the Free Software community could be a drag on Krita becoming successful.

If I’m spending my time on GNOME vs KDE, Flatpak vs Snap vs AppImage, deb vs RPM, then I’m only worrying about technical details that don’t mean a thing for someone who wants to paint a comic. That makes it at worst a waste of my time, or at best a hobby that is only tangentially related to Krita and its users.

If I’m looking inside the community, and not out of it, facing the people who will actually be using my software, I probably won’t be making the right kind of software.

If I’m visiting conferences like Akademy, Fosdem or Linux Application Summit, I’m spending time on nourishing the Free Software community, but not on meeting my users, meeting their expectations or even learning what my proprietary competitors are doing.

Like I said on Friday, we need funding to make sure our projects have a stable base of effort. That stable base makes our projects more attractive for other developers interested in helping out. But we also need to look out of the window. And that’s a message for me, personally, too. Because our delicious little Free Software feuds and ruckuses are almost as big a time-sink as Brexit.

Quick notes

Because I shouldn’t blog, but be fixing Krita bugs (although I’ve already fixed quite a few important bugs today.


Google delivered the Summer of Code t-shirt today. It’s a nice change from previous years, and Irina immediately liked it. Which is good, because I don’t wear t-shirts. She’s also got the Trolltech Developer Days t-shirt, with the word “five” in binary.


The Qt Software Developer Days in München were lots of fun. It was incredibly busy: there were about 550 developers and about 50 trolls. I don’t think we really fitted in the Hilton hotel anymore… Scary was the keynote where the Nokia guy told us that they were looking to expand the Qt Software development team ten-fold. I mean — where are they going to find so many top-class Qt hackers? Even scarier: someone else told me Nokia is looking for 3000 Qt developers in Finland. And at the same time, almost everyone I spoke to was looking for developers, too — half dozen for this company, a dozen for that company. Us, we’d have have been happy with just three suitable candidates.

The Qt ecosystem may be large and vibrant, but this is scary stuff, for a couple of reasons: if there are 500 people working on Qt itself, it cannot but dilute the quality of the development team and it cannot but make Qt balloon in size until it becomes as unmanageable for a developer as Java. And secondly, if Nokia hires all good Qt developers, there will simply not be enough developers for third parties — which means Qt becomes less attractive, less used and less interesting.

On the other hand, there’s so much exciting stuff happening. I am looking forward to being able to play with Project Greenhouse — if it gets open sourced, of course. It looks like a very nice and nimble IDE. The Cocoa and WinCE ports are great news; and I sure hope that Nokia will indeed bet their shirt on Qt, because at work we are faced with having to develop our mobile apps three or four times (iPhone, Android, WinCE, maybe S-Something), which sucks.

What I didn’t get was the astonishing eagerness with which Nokia doles out N810s. I mean, these are cool little things, but still just a tiny bit too GTK-based for a Qt conference, aren’t they?

Well, for the rest: it was great to meet lots of people, from KDE, from the wider Qt world. One evening a small group of us went into München, to a very cool little bar, a converted petrol station, where there was some excellent beer, nice music and a cool atmosphere. The other night, my colleages (Arend, who used to work on krdc, and Henk, who’s a born-again pythonista) went into town and had a great dinner in the Rathauskeller and a nice drop of beer in the Hofbrauhaus.

The Hilton, by the way, is a weird place… The beds are good, but the rooms cramped. I could, through the ventilation ducts, follow the goings-on in the neighbouring rooms on floors 11, 12 and 14. The food was pretty good, although I think Gerolsteiner mineral water is the most insipid mineral water I’ve ever tasted. The big, big bummer, however, was that there was no free wifi. Come on! This is, after all, the twenty-first century!


I was glad to go home, no wifi meant no contact with Irina. I managed to nail a nasty, nasty bug in Krita that only occurs when Krita is compiled with -O2. And last night we spent watching “Aanrijding in Moscou” with the family. It’s a long time since I’ve seen such a recently-released movie, but it was pretty good, really funny and really touching in places.

And now my compile is done: back to working on Krita!

Standing on the shoulders of giants

Is generally reckoned to be a Good Thing. Not-Invented-Here and solipsistic DIY frowned upon. The danger, of course, is when the shoulders one stands on come with feet of clay. If, for example, someone in the 16th century mis-interpreted a 12th century book and the mis-interpretation becomes the foundation of generations of shoulders, fun ensues.

So, just like the kilt isn’t Scottish, witches weren’t burned by their millions by the Church of Rome and Columbus wasn’t the first man to realize the
earth was a globe
, the Middle Ages turned out to be clean and not feudal at all.

Now for a historian who manages to undo the artificial separation between the history of the Christian West and the Christian East.

Cross-platform to the rescue

There have been discussions all over the place about whether it would be a  good or bad for the uptake of free software to make applications available for non-free platforms.

Having complained in the past about the way my daughters’ are forced to use Windows software for school, notably Microsoft Office.

So, when Naomi told me today she had to download an application to do some music homework I was filled with apprehension. Turns out the chosen application was Audacity! Plus some instructions to download a precompiled lame ddl…

Well, one apt-get install audacity later she’s in business. Now if only there  was a distribution that supports both sound and a usb wifi stick for her laptop, she wouldn’t have needed to borrow her sister’s laptop.

Lesson learned: cross-platform applications make the update of a free platform possible, even if the powers-that-be still live in benighted obscurity.

Libre Graphics Meeting is fun!

On Friday night there was a Grand Gala Dinner for all attendants. I got introduced to someone who was really, really complimentary about Krita, telling us that he thought our colour handling was much, much more logical and useful than even Photoshop’s color handling. Like, wow! Lots more compliments ensued 🙂

On Saturday, Cyrille and I gave our Krita talk. Right afterwards Cyrille presented his talk on OpenRaster.

The Krita talk went really, really well. I was almost mobbed by people wanting to talk to me after the presentation and all through the afternoon people came up to me to tell me they really liked our style of presentation, that they thought it was one of the best presentations they’d been at. And, did I have a business card for them? I should have asked the KDE promo team for a set — and I’ll be sure to do that when I get home.

During the talk someone asked me whether I intended to make Krita compete with Corel Painter. Dramatic silence… Then I said “Yes!” To which he said “Good!”. It turns out his wife illustrates children’s books with Corel Painter. She uses an older version — 5.5, if I remember correctly, because newer versions are too slow for here 600dpi drawings. Seems like we’ve got a new hard requirement for Krita! And then someone else jogged my sleeve and told me he’d been a Corel Painter developer a few years ago — and if I had any questions, I should be sure mail him about it.

The OpenRaster talk was great. It provided the catalyst for a great round-table discussion with all the experts present. From people who could provide input on the xml style we use to people who are really hot on color and color requirements. There are a couple of people I really. I feel outnumbered a bit compared to the large Scribus, Inkscape and Gimp teams, so Bart, Casper, Sven, Adrian, Emanuele and Jan really should have come! And then Clarence Dang for Kolourpaint, Gilles Caullier for Digikam (so he could have fight^Wdiscussion with Hubert Figueire on the best way to (ab)use dcraw) and especially Zack Rusin for general graphic goodness! I really suspect that this conference will rival and outclass siggraph in a few years, the level of energy, commitment and just plain expert knowledge is really great.

One thing I especially like about the atmosphere of this conference is the open-mindedness of the people around, users and developers. I’m loving meeting the Gimp people, the inkscape people, the scribus people. I’ve had a great talk with Peter Sikking, the Gimp usability guru. I’ve been going out for dinner & a beer with a group of panorama enthusiasts — one of them took not only a panorama shoot of the restaurant table, but also of the beer glasses in the bar! (Yummy beer and interesting beer, and live music.)

Of course, there are also moments that tie in tightly with Aaron’s blog. Jakub Steiner gave a presentation about photo management and editing with F-Spot and GIMP. Quite interesting to see him work with those applications, but his explanation at the end that free software was simply not ready for a 16-bit workflow so we had to make do with the 8-bit limitations of Gimp, Ufraw and F-Spot was a bit, well, parochial-minded. After all, with Digikam and Krita, you can go 16 bit from your original RAW image to the finished artwork without any trouble. Pity, but we’ll overcome that.

Regression testing

We’ve had quite a few release of Krita now — 1.4.1 in July 2005, 1.4.2  in October 2005, 1.5 in April 2006, 1.5.1 in May 2006, 1.5.2 in July 2006, 1.6 in October 2006, 1.6.1 in November 2006– and we’ve got 1.6.2 coming up for January and 2.0 for somewhere in 2007. The dot zero releases, 1.5 and 1.6 were accompanied by alpha, beta and rc releases. And still, with every release (except for 1.4.1) we had regressions — features that worked in the previous releases that didn’t work in the new release.

Do we suck and are too incompetent to code good software or is there another problem? Well, I’ve got hubris enough to believe that we don’t suck, that we, on the contrary, have a great team of hackers who dedicate most, and sometimes even all, of their leisure time to working Krita.

The problem is that software is complex: fixing a bug may cause a bug, improving usability for one feature may kill an unrelated feature. The code  that determines the size of a selection is a case in point: we use that in a lot of places for a lot of different things. It’s used in adjustment layers, in masks, in selections. Our architecture is not fragile, we just reuse a lot of functionality. That cuts two ways: a fix often fixes a number of unrelated bugs, and a fix may hurt a number of very nearly unrelated features. It’s the only way we can write software in a mere 70.000 lines of code that provides all the functionality Krita offers.

The problem is testing. And this problem is hard. For one thing, a developer is not a tester. A developer starts with a mental (or sometimes paper) model of how a certain feature is going to work. For me, that model is almost geographical, like a 3d landscape with features, landmarks and connections. From that model, the code is written, and then we usually exercise the code a few times to see if it conforms to the model. Given that we know the model behind the code it is next to impossible to come up with ways of exercising the code that don’t follow the model for developers. For another thing, we’re really, really pressed for time. Krita developers seldom have the time to use Krita for any tasks — I haven’t touched my real oil paints for more than a year now, let alone started a good painting in Krita.

So — what’s the solution? Is there any solution? Where should the solution come from?

To me, it’s obvious that we need real regression testing prior to a release. All functionality of Krita needs to be exercised — every feature needs to be used — and we need to keep track of what works and what fails. Alpha and beta releases don’t work for that. People installing an alpha or a beta generally do so to see whether a promised new feature is what they need. They don’t test the whole application rigorously. I think I have an idea that could work out. It combines the team spirit of our translators, the pride involved with buzz, cvs and bugzilla statistics and the accessibility of bugzilla (which, despite all claims, is not bad).

I would like a web application a little like bugzilla, where for every application testcases with test scripts can be added. The goal is to have the test cases completely cover the application’s feature set. Then, when a release is looming an application is put in test mode. At first, the application has been tested 0%. Everyone with an account can join the, say, Krita 2.0 Test Sprint, and pick test cases. The goal is to reach 100% of tests executed, but it’s okay if several tests are run more than once, by different people. Tests that fail are mailed to the relevant developers mailing list.  Successes, too, of course.

The whole thing can be jazzed up with statistics, adding a little gentle competition between applications in release mode, chat forums, irc channels and all the other things that build a community.

I have started coding on it, using Django, but my web application skills are meager, and besides, I need to flakify Krita in a hurry. So, there isn’t much more than a proposal for the data model. I might pick it up again, but I’d much rather hack on Krita — which is why I’m writing this blog. Any  volunteers? I’m not wedded to Django, and I’m prepared to install any web app environment on calcifer.valdyas.org for a test environment. If it pans out, we can look for real hosting.