Michal Čihař - Blog Archives for English

When to release 1.0?

This is not about any particular project, but more a generic thought. When should be something considered to be stable enough to be released as 1.0? Over ages I started several projects which are in different quality right now and this is maybe not completely related to version they use.

Let's take one of older ones - Wammu. It was started long time ago, it really does not get any major code changes for several years and I still don't want to make 1.0 release there. The reason is that I think that many things could be done better there. However there are quite lot of users which use it and they probably consider it stable enough :-). But they will have to live with 0.x versions as I do not plan 1.0 at all for now even if it maybe deserves it :-).

Different case is Ukolovnik. It does not have tons of features, but it's enough for me and it will be 1.0 soon. I have features to add, but I don't thing that RPC interface has to be in 1.0, it can be just thing added later.

Toshiba ACPI keys, HAL and friends

Long time ago I used FnFX to handle events from ACPI keys on my Toshiba notebook. However when reinstalling notebook because of disk crash, I thought there must be a cleaner way to handle these and I found patch for acpid which added handling of these special events.

However I really didn't like patching acpid on every update and there didn't seem to be chance to merge it upstream, so I started to look for better solution. After another amount of googling, I found that HAL already has some support for Toshiba hotkeys. Unfortunately it is now disabled in Debian because most key did not emit anything using HAL.

Okay, let's fix the HAL, maybe it will get later enabled. Converting FnFX keymap to C code was quite easy and I made a patch for HAL to add support for all keys. Hopefully it get merged soon and I can then file bug on Debian package to reenable Toshiba support in HAL.

Meanwhile I'd like to find some generic way of configuring what happens on these events. For now I hacked simple Python script which listens to DBUS events and invokes appropriate commands for keys, but I hope that some such tool already exists and I just missed it. If you know something, please let me know at michal@cihar.com.

One year under my reign

One year ago, I took over Gammu maintenance. I think it time to summarize a bit what happened during that year. There were definitely good and bad releases in that time (especially strictness introduced to SMS parser in 1.13.0 took quite a lot of releases to fix various bugs), but generally I things Gammu is moving in a good way.

What I would definitely call positive:

  • Added build time testing. This helps a lot to catch regressions. However more tests could be done.
  • I cleaned up lot of code parts so that Gammu is now more resistant to bad data and should not crash in these cases.
  • Added lot of API documentation, most API functions are now fully documented.
  • More often testing releases - I try to release every week. Sometimes changes are huge, sometimes just few bugfixes. This makes Gammu occur among most vital projects on freshmeat.net.
  • Quite complete IrMC implementation together with AT/OBEX switching gives support for quite a big range of phones today.
  • SMSD got PostgreSQL support.
  • AT+CMGL support for reading messages gives us support for many phones which were not supported in the past.
  • I started to use OpenSuse Build Service and Ubuntu PPA to provide up to date binaries for many distributions.

There are also some bad things:

  • Nobody cares about build under MSVC. It is broken sometimes and I try to fix issues, but no constant testing of this causes problems.
  • Almost no new features for Nokia phones. I simply lack time to do anything more than bug fixing here.
  • Still bad support for Symbian phones. Some developer interested in this area is definitely needed. But probably OpenSync with SyncML is enough for most people.
  • The changes I made to the SMS parser broke too much things, I should have payed more attention to this change. But now things seem to be worked out.

Some statistics of last year (based on Ohloh):

ValueDec 2006Dec 2007Difference
Code Lines90,540101,687+12%
Comment Lines9,20415,336+67%
Comment Ratio9.2%13.0%+30%

All these changes were made in approximate 1200 commits.

I hope next year will not be worse :-).

Gammu test version 1.17.91

New Gammu testing version is out. Besides fixing there is important feature for people finding proper flags for not supported phones - you can do it now without recompiling Gammu! Full list of changes:

  • Phone features now can be defined in configuration, so there is no need to modify common/gsmphones.c for testing different settings.
  • Config file loading behaves more consistent in lookup. In some cases it can now find different configuration file.

You can download from usual place: http://cihar.com/gammu/.

Good bye Enca

Some days ago I was notified by DEHS that Enca homepage is unreachable. Okay, this happens sometimes. But as the error lasted longer and longer, I decided to ask author about it.

Unfortunately the reply was that this nice software is not maintained anymore and computer which hosted it's homepage is gone. As it would be bad to loose this software completely, I offered place to host downloads for it. No, I'm not going to develop it, I already have enough projects for which I don't have enough time. So my server has just become a download place for Enca.

Gammu test version 1.17.90

New Gammu testing version is out. This time there are no exciting new features, I still continue in bug fixing mode and cleaning up things. Full list of changes:

  • Fixed crash when there are too many messages (bug #466).
  • Fixed crash when printing messages on Windows (bug #476).
  • Do not ask phone for IMEI so often (bug #480).
  • No need to set LD_LIBRARY_PATH for tests.
  • Properly wait for SMSD child processes (bug #486).

You can download from usual place: http://cihar.com/gammu/.

Ukolovnik 0.9

New version of simple todo manager called Ukolovnik has been just released. Version 0.9 comes with following changes:

  • Fixed double SQL escaping in some cases.
  • New Swedish translation.

Back in Japan

After two weeks being back in Czech and mostly offline, I got back to Japan this weekend. The travel went quite okay, the only thing I really don't understand is why Japanese customs always want to check my luggage. There must be something special on it or I probably look like drugs smuggler, but he did not answer my question why they always select me for checking things :-).

Anyway I already processed most of email backlog, only about 100 mails remain, I hope to read and reply them during this week.

Time for Christmas

Today is last day when I'll be more or less online, so if you wanted something to me this year, it's probably already too late :-). I will somehow follow emails, but do not expect much.

Tomorrow I'll spend by traveling back to Czechia (NGO - FRA - PRG), then I will just enjoy time being home and not being pushed to deliver tons of papers to somebody.

This is also most likely last blog post this year, so I can not skip the merry Christmas and happy new year phrases ;-).