Loud ramblings of a Software Artisan

Monday 27 July 2009

Why I did write Gnote?

Because there are so many misconception about why I wrote Gnote, I think I should clarify a bit as my original announcement wasn't clear. This is to follow up on a question that was asked to me this morning where said person, who will likely read that and probably recognise thyself, had said misconception.

I wrote Gnote to answer two questions:

  • How can I have Tomboy functionality on my custom openSUSE image I made for my EEE PC, that will fit the 2GB? I don't have room for Mono on this. For what is worth, back when I tried to put a distro on it, the only distro that would fit out of the box on this EEE PC was Eeedora, a Fedora based image for the EEE PC, but that only did provide XFCE. Since I wanted GNOME, it ended up not being that useful as I didn't have a the Fedora tools to actually regenerated a custom one. None of the other did fit on 2GB, including the Mandriva Flash I had from GUADEC, Ubuntu's own, etc.
  • Is it easy to port a C# application to C++?

The second question helped me to answer the first question.

I decided that since I'm advocating Free Software, there was no reason to develop behind closed doors. I just kept it silent for the first weeks of coding, as I actually wanted to have something that works, but it was, since day 2, on gitorious. For the rest, you all know what happened: the anti-Mono crowd took it as their victory, started FUDing, etc. Barely nobody asked me why I had written that code, compared to the many that actually thought I was supporting their cause. But that's how the internet work.

The worse part is that I seem to be have been the target of hateful messages and comments from a certain number of people who found that writing code is hostile, while they blessed Tomdroid and Conboy which both take a different approach to a similar problem (kudos to their respective authors, I find Conboy fitting well on my N800, even though any typing is like torture).

And if you still think I hate Mono think again. I worked for the company that pushes Mono (and still wish I was), and I was using Tomboy on all the Linux machines I had (and to be fair I was surprised of the number of people who actually told me they had never used it because it was Mono based... looks like this didn't stop me as I had been using it for as long as I have the laptop I'm typing this on, circa Dec 2005).

Will I continue Gnote development?

Even though I'd love to have help, I definitely will maintain it as long as I can. The next release will have a boatload of features and fixes, including D-Bus support, etc. It is all in git. One has to admit the pace as slowed down recently because I have been working on other things, including AbiWord and Niepce.

Will I port another application?

No. But if a somebody is willing to hire me for that, please, feel free to contact me, I'll see what I can do.

Thursday 16 July 2009


Today AbiWord is eleven year old according to this commit.

Over these 11 years, it has been ported to 5 different platforms/toolkits, 2 of these having been dropped (QNX and BeOS), 1 on life support (MacOS X). It has had 3 build systems. Plain Makefiles, autotools and then a rewrite of the autotools build system for better, not mentioning the "IDE" support. It has had 3 different servers, one at SourceGear, one at the University of Omaha, Nebraska and the current at the University of Twente in the Netherlands, running respectively Debian, FreeBSD and Fedora. Also 2 version control systems: CVS then Subversion.

According to ohloh, AbiWord have had 79 committers, including the 5 top with over 1400 commits, 405K Lines of C++ Code (and more with the other languages) 1929 source files in the tree. According to ohloh, again, AbiWord code base is worth close to 10M$ (I'm not convinced about that last statement from ohloh metrics, but why not).

And we forgot to celebrate the 10 years last year. :-(

Friday 10 July 2009

I write code

I don't know what the meme is about but:


nuf said.

Tuesday 7 July 2009


Nothing is better to prevent me from posting something than the laptop that decide to switch itself off when I delicately lift it to move downstairs. I had the feeling I had to save the post. It will have to wait.

Friday 3 July 2009

Half a decade

Half a decade ago I landed in Canada. Not sure what happened since, but that's surely 5 years.

A real paper cut

AbiWord had a long lasting usability issue: pressing the insert key caused to toggle the overwrite mode on and off. When doing so we provided two different feedback to the user:

  • a display in the status that switch from "INS" to "OVR"
  • the caret (insert point) switch to red.

This lead to different kind of complaints:

  • "When I type, the text to the right is replaced"
  • "Why is the insert point red? What did I do?"

See bug 3641

This reveal two problems. The first one is that the user didn't realise something happened. I hit a random key (ie he didn't realise which one) and something happened. The second the user noticed the caret changed colour, but still didn't know why.

I had a few ideas in mind.

  • Change the feedback, and there are a few options for that: change the caret shape (colour is never enough), change the status bar message, any other kind of notification
  • Do something for the key binding: popup a dialog, use clippy, play a music just make it disabled by default.

How I did implement it:

  • For now I changed the status bar message to be more readable. INS and OVR are just confusing obscure and an anachronism inherited from the AbiWord first step over 11 years ago mostly in trying to clone MS-Word with some of its atrocities. Now it is in plain $LANG (English here, but it is / will be localised, I hope).
  • I added a UI to enable the toggle. We had that option already in place, it was just on by default, not bound to any UI. I'm not a big fan of adding options, but that's just the best way to do it for now.

What can be done in the future?

  • Change the caret shape when in overwrite mode. I didn't want to do it that late in the release cycle has it seems to have been source of problems. Also it need to be well thought too as we also deal with bi-directional writing.

But that was a real paper cut for AbiWord. Not the only one, just one of them, and it was not that hard to fix. For the sake of it, I did it watching the BSG mini-series for the 3rd time.