Michal Čihař - Blog Archives for English

How to name your job?

If you don't know much about things you do, work for a small company and want to look like a professional working for a big company, then the Japanese way to do this is to write following job name on your business card:

Embedded System Technical Division
Operating System Section
Chief Engineer

When I saw this for first time, I thought this business card is some kind of joke, but not, they're real.

When non ASCII names will finally work?

By using my name in various web services I usually spot bad implementation of displaying name field in their website. I can see that over years the amount of servers which cripple my name to something like ÄŒihaÅ™ is getting lower, but there are still lots of them. When I find way how to report it, I usually do so and I always enjoy fields like "How to repeat". This time the guilty one is the MySQL bugtracker.

PS: Fortunately all Debian pages seem to catch up this year and my name is no longer crippled in NEW queue or Lintian pages :-).

Gammu test version 1.18.90

New Gammu testing version is out. This is mostly bug fixing release, especially with lot of tweaks for Windows build and for AT driver. Full list of changes:

  • Do not link with irprops.lib on Windows.
  • Various MSVC compilation fixes.
  • Improved AT model parsing and added tests.
  • Fixed possible crash in reading SMS from AT phones (bug #515).
  • Proper fall back to automatic model when user enters wrong one.
  • Added identification of several phones.
  • Fixed reading of messages from AT phones without ME memory.
  • Improve charset detection on Motorola phones (bug #522).

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

PS: Debian users can get packages from experimental.

Gammu stable version 1.18.0

Good news everyone, first stable Gammu release in this year is out. Since 1.17.92 only few small fixes in SMS decoding and AT engine did happen, but there is quite big list of changes compared to 1.17.0:

  • Fixed decoding of an empty SMS.
  • Fixed some mistakes in API documentation.
  • Fixed compilation under MS Visual C++ Express.
  • Various small fixes if AT driver.
  • Add simple shell script to generate JAD file from JAR.
  • Added support for adding memory entries to 6510.
  • 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.
  • 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/.

My first Drupal module

As I use Drupal for Czech phpMyAdmin pages, it was only a matter of time till I will have (or want) to add some functionality. My first Drupal module is quite trivial, but anyway I already got positive feedback on it just after committing to Drupal CVS :-). Today I finished little cleanup which my initial version required and I decided to make a first release out of it.

And what I'm still talking about? It's a module for adding measuring code for various web auditing systems used in Czechia. I didn't wanted to hack this somehow into templates and module which will provide block with those looks as best solution to me. You can get it on Drupal pages.

Gammu test version 1.17.92

New Gammu testing version is out. This is mostly bug fixing release, but you should be able to do addnew with 6510 driver now. Full list of changes:

  • Fixed some mistakes in API documentation.
  • Fixed compilation under MS Visual C++ Express.
  • Various small fixes if AT driver.
  • Add simple shell script to generate JAD file from JAR.
  • Added support for adding memory entries to 6510.

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

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 :-).