Michal Čihař - Archives

Rome in May

Finally I've found time to look back at vacation in Rome and post some pictures. It has been great time there and I've really enjoyed that.

I would like to thank to Luigi Gangitano for showing us some interesting places in the city.

And now back to pictures:

Monumento a Vittorio Emanuale Spanish Steps Piramide Via Appia Antica Villa del Quintilli Castel Sant' Angello Arco di Constantino Colloseum

Four counferences in Prague this October

I'm participating on organizing this year's openSUSE conference and as we've finally finalized place and time and CFP is open, it's time to share some information.

This will be special - there is not a single conference, but four of them are sharing same space and the motto - Bootstrapping awesome!!!. The 4th openSUSE conference will be held together with LinuxDays, Czech conference following tradition of canceled LinuxExpo, what should be the biggest free software event in Czech republic. In addition there will be also 12th SUSE Labs conference (so you can meet quite a lot of kernel hackers and other strange guys) and first Gentoo mini summit (the website is empty so far).

All that will happen on weekend from 20th October to 21st October, the SUSE conferences will then continue for 22nd and 23rd October.

I believe it will be great mixture of conferences and I hope to meet lot of people there.

Android support in Gammu

Android support in Gammu is one of frequently requested features. I don't have neither time to motivation to do that, so unless somebody else will step up, it won't be done.

Recently, I got offer from MyPhoneExplorer author to share it's applet for communicating with Android phones. It basically provides protocol similar to Sony-Ericsson phones Gammu already supports, just over TCP/IP. So all what would have to be done is glue layer for using TCP/IP and possibly some minor adjustments to Sony-Ericsson code. Both of these should be quite easy tasks and I'm willing to guide you through this process.

In case anybody would be interested in this challenge, just let me know :-).

Audio playback at home

Just set up Synology Audio Station for music playback at home. I originally thought about some more open solution, but this was the easiest choice which might still change. Main motivation was that I got really cheaply Synology Remote, what is wireless remote and USB sound card and I was too lazy to set it up with something else.

It works quite nicely but now I'd like to control it from my N950 phone. Synology provide app for iPhone and Android, but others are left in the dark (there is also no documentation about the protocol). The options for me are to write native client or emulate some well know protocol, where I could use existing clients.

Quick googling have shown me python-mpd-server, what looks exactly as half of program I need, so I would have to implement only bindings to (not documented) Audio Station protocol (there is open-syno, which seems to implement this protocol, so at least there will be some hints).

Pootle vs. Weblate

As Weblate 1.0 is out, it's time to compare it to existing solutions. As first I've chosen Pootle as this is tool which we have been using for quite some time and I used it as an inspiration for Weblate.

First of all, both Weblate and Pootle use same backend for manipulating with translation files - Translate Toolkit. On the way I've learned that I've chosen different way of manipulating with backend files, what seem to lead to much smaller changes (no more reformatting of whole po file as Pootle does). Also Weblate does not suffer from some Pootle issues like not properly handling changes to fuzzy flag, which has bitten us several times at phpMyAdmin.

Another shared thing is web framework Django. For me it was obvious choice as I like writing application with it. The biggest difference here is that Weblate relies on Django admin interface for maintenance, while Pootle has everything in it's interface. Pootle has great advantage here for having consistent interface for everything, what was sacrificed in Weblate for less code to maintain (while having powerful Django admin interface). Also sharing same framework allows quite easy migration of user accounts.

Now let's functional side of things - this is where I've tried to take all good things I've seen in Pootle, while adding features I've missed there. What makes biggest difference here are project/subproject classification in Weblate, which was originally started as way to handle more project branches, but proved to be useful for translating related projects as well. This allows automatic propagation of changes across project, what is really great for translating more branches of same program or different interfaces to same functionality (eg. GUI application and command line tool).

The other big difference (and I would say key feature of Weblate) is Git integration - all changes are commited to Git with correct authorship, it can help in merging po files or automatically pull upstream changes (eg. from GitHub). This all makes integration into (Git based) development process really easy.

Other features like consistency checks or dictionary (terminology) are quite similar, though different. There is more consistency checks in Pootle, but the main reason was that I found some of them too annoying. User dictionaries are still pretty basic in Weblate and that's definitely something what should improve in future versions.

On configuration side, Pootle is much more flexible. The main reason here is that I've never used most of the options there. So there are no per project settings of checks or privileges. There is also no way to add language from Weblate - usually adding translation is not just matter of adding appropriate po file, but also other steps, which anyway had to be done manually. So Weblate leaves this up to user. On the other side as soon as new language pops up in Git repository, it is shown in the interface.

Both projects have quite good documentation - Pootle has most things covered on wiki while Weblate relies on separate documentation. However there are definitely some bits missing on both sides.

PS: If you want to want to have more "facts" in comparison, you can check Ohloh :-).

Weblate 1.0

After few weeks of heavy testing, Weblate 1.0 has been released today.

Compared to 0.9 there are just minor changes and bug fixes. The most important thing is that Weblate should be now really ready to use :-).

Full list of changes for 1.0:

  • Improved validation while adding/saving subproject.
  • Experimental support for Android resource files (needs patched ttkit).
  • Updates from hooks are run in background.
  • Improved installation instructions.
  • Improved navigation in dictionary.

You can find more information about Weblate on it's website, the code is hosted on Github. If you are curious how it looks, you can try it out on demo server. You can login there with demo account using demo password or register your own user. Ready to run appliances can be found in SUSE Studio Gallery.

Weblate is also being used https://l10n.cihar.com/ as official translating service for phpMyAdmin, Gammu, Weblate itself and others.

If you are free software project which would like to use Weblate, I'm happy to help you with set up or even host Weblate for you (this will be decided case by case as my hosting space is limited).

Ready for Weblate 1.0

I think Weblate is really ready to be released as 1.0 release. It runs pretty stable on https://l10n.cihar.com, I got some bug reports from others, but these were quickly fixed and now nobody complains.

The issue tracker lists few improvements which I plan after 1.0 which will help in user experience and performance, but I see nothing what would be needed right now. So I'm ready to release (even before deadline I have set to this milestone).

Anyway you're welcome to give it some testing and complain if anything is broken. One area where I desperately need feedback are checks, which probably still miss variations for some languages.

phpMyAdmins projects in GSoC 2012

There already has been official announcement for this years GSoC at phpMyAdmin and it's time to share my bits. First of all more details about chosen projects are available on our wiki (missing bits will get updated soon).

This year I'll be mentoring again three students. As usual, it was quite tough job to choose students and I hope we've chosen really good ones. Anyway we'll see this later during there summer :-).

As we're currently on a (long) way to phpMyAdmin 4.0, basically all projects are somehow about cleanup and refactoring of quite historical code which lives in some dark places of phpMyAdmin. The only big difference is automated testing project, which is purely about writing new test cases and making tests cover more functionality.

Anyway I'm looking forward to see first improvements from my students - Alex Marin, Yasitha Pandithawatta and Chanaka Indrajith.

Weblate gets experimental support for Android resources

I did sort of commit to at least trying to add support for Android string resource to Weblate on Stack Overflow, now while waiting for bugs to fix in 1.0 release it was right time to look at it.

It turned out to be few lines of code but it took me some time to figure them out as translate-toolkit internals are not really good documented. Anyway I've hacked something what works for Weblate (and one random project I've tried) so it might be actually useful. You can find the code for it in pull request, let's see if it will get upstream.

To use that, you need patched translate-toolkit (see above) and latest Git checkout from Weblate. As the changes on Weblate side were quite minor and not intrusive, I've decided to put this into 1.0 release, even if I originally did not plan to do so.