Michal Čihař - Blog Archives for English

Buggy phones

I played a bit with Gammu and my phone (Sony-Ericsson K750i) yesterday, and I found yet another firmware bug. Enabling call line identification over cable (or any connection) makes phone hang when you receive call. Don't know why it is not able to look up number, when it already shows it on the display…

Wiki has 20,000 unique visitors

When I talked last November about 10,000 visitors, I really didn't expect that in four months, wiki will double this value. Looks like it is useful source of information for users. Only thing a bit frightens me - there are only few contributors and almost none except developers and few well known users. This is wiki, feel free to edit it!

PS: Server with twice more memory serves pages much better, hopefully you also noticed this. Anyway further donations are welcome ;-).

Converting locales data

I already announced that Gammu translations were converted to gettext. Reasons for conversion were written already some time ago. Now I'd like to write about some technical details on conversion.

First I thought the conversion will be simple. Just convert one text file format to other. Unfortunately there were lots of typos in old translations, which I had to fix, because gettext is much stricter about syntax. This itself would be also good reason to switch - old localisations had several types of errors, most frequently bad escaped quotes or messed format strings. This sometimes lead to Gammu crash, because it confuses printf like functions.

Another thing which was broken in old translation were duplicates of some strings. There were about 20 duplicate messages, which only added work to translators and were never used, because Gammu used first string which matched.

After I spot common mistakes, it was quite easy to write conversion script which would handle them. It is written in Python and uses its ConfigParser module to read old localisations. Using already done modules makes thinks a lot easier :-). After reading them, they are fixed to avoid syntax errors in gettext and written in gettext format to new file. All this in 123 lines of code (well, many of this are comments and string constants).

PS: You can download conversion script here, maybe it will be usable also for some other project.

Gammu localisation online

I today managed to convert current translation data to gettext format. Thanks to conversion to gettext, we can now use many standard tools to translate Gammu. One of such tool which is already used for Wammu is Pootle.

I added Gammu po files to my installation and you can now translate online! Currently all languages are open, but if somebody want to manage some language on his own, feel free to write me. Also any requests for adding new language should go to my email.

Gammu switched to gettext

I finally managed to convert Gammu to use standard gettext for localisation. It was quite nice play with regular expressions, but I had to do only few manual edits afterwards.

Now the second part remains - converting of current translations to po files. Anybody has experiences with this?

As soon as conversion is done, you will be able to translate Gammu online at http://l10n.cihar.com.

Wammu has own domain - wammu.eu

Yesterday I decided to register wammu.eu domain for Wammu. One of reasons was that almost all other wammu.* variants are already taken by speculants and this name sounds good enough. The other reason is to give Wammu better accessible website. The old URL was not bad, but domain name sounds better :-). Also separate domain will allow later to have different CMS and/or design of Wammu pages, what is something I'd like to see, but don't have skills for that.

So please use http://wammu.eu for linking to Wammu. The old URLs are redirected to new location and they will stay redirected for long.

If there are any problems on new website, please notify me.

I'm the Debian Developer!

After half year (well almost), I passed through all pitfalls of new maintainer process and I became Debian Developer. From all rumours I heard before starting this process, I thought it will take longer.

In fact only lengthy part was three months waiting for my account being created, but I expected it because of many people were busy when preparing stable release.

Thanks to everybody who helped me going through this process.

Gammu future

Maybe it's time to write down what I plan in Gammu in future. Please note that this is not short-term plan (it is unlikely that something of this will be in next stable release), it is just list of thinks I'd like to have in future.

  • API improvements - Current ABI which changes whenever there is change in internal structure sucks. The current code will get wrappers Gammu_DoSomething(statemachine, params), which will allow to have ABI compatible as long as the function exists.
  • Unicode storage - There were good reasons in past not to use wchar_t but I thing all them have gone. Switching to wchar_t would allow Gammu to easily communicate with rest of the world and Gammu won't have to contain duplicates of many functions from standard libc.
  • Localisation - Gettext is much more flexible than current localisation system and well known format gives translators ability to use many tools.
  • Drop autotools support - CMake build system looks much cleaner than anything I was able to achieve with autotools. Right now it still requires some stabilisation, but it is anyway equal replacement.
  • Version control - I'd like to switch to Subversion, which is widely used and widely known. However I have not yet found way how to import my current revisions in Bazaar to Subversion, any conversion I tried so far crashed.

Anybody interested in these steps? Don't hesitate to tell me or write to gammu-users mailing list.

Release often

In time when I was working on Wammu 0.18, I realized, that making release not very often is bad thing. You usually get same reports over the development period and telling people that you have fixed it, but not yet in any released version, doesn't make them happy.

As you can see from past weeks, I switched to making releases as often as possible. I will try to add new features quickly after release and then give the code some time for stabilisation (well, this would need a bit more testers than I currently have). I'd like to avoid delay longer than month between releases, if there is something to release (I doubt there will be any major changes in python-gammu in near future).