Index ¦ Archives ¦ RSS > Tag: en

From gammu to Google Contacts

Estimated read time: 1 minutes

One typical migration people do when changing phones is migration of contacts and calendar items. In case of mine, this is about migrating data from an S40 phone to Google apps, where every smartphone can sync from.

Migrating calendar items is easy: gammu can save the data from the phone to a .ics file and Google Calendar can just import that. The situation is a bit harder for the phonebook, as Google Contacts would take a .csv, while gammu as its own ini-like format for storing this data.

I already found a script doing something similar, but the result was unusable. ;) Given that the whole task is not that complex, I decided to write my own converter, available here.


Replying to SCM commits using Gmane

Estimated read time: 1 minutes

SCM commit mailing lists are handy in case you want to comment others' commits in an email. OTOH they are problematic, as they generate a lot of mails, and in case I subscribe to the list, usually I don’t read those commits at all. (In case you have time to read them, that’s a different use case.)

So here is an example how to reply properly — without having to subscribe.

  • search for the commit ID you want to comment (here b863767bd1ddc2af18900fa1df0cd61ef2fa6edb)

  • extract the article ID associated to the push from the link (here 1643)

  • download the article in mbox format, so you can reply to it from mutt (or your other favorite MUA).


First openSUSE contribution

Estimated read time: 1 minutes

More than 3 years ago I gave a talk on Frugalware, and part of that was a comparison to various other distributions, including SUSE. My argument against SUSE was its closed development process.

Times change, earlier this year they even renamed their build system to signal its open nature.

I wanted to try it out how open they are so I made an experiment.

First, I created a cpm package in OBS to get familiar with the packaging process a bit. (Note that anyone can just register and use the build system to share their binaries-- sadly we don’t have resources in Frugalware to provide something similar.) Then I happily noticed that their mutt package already contains my favorite sidebar patch, though the edge of the sidebar looked awful. So on Monday I mailed the maintainer of the mutt pkg if he would take a patch, fixing this issue. I got a positive reply today, submitted a patch and in minutes it got accepted.

So it looks like they are really open, which is just cool. :)


LibreOffice Conference 2011

Estimated read time: 1 minutes

http://conference.libreoffice.org/themes/libo/images/LibO_Conference_Logo_2011Paris_color.png

I’ve been invited to the first LibreOffice conference in Paris to give a short talk about this year’s GSoC work of mine: the RTF import rewrite in Writer. (Here are the slides.)

It also allowed me to allocate some time on hacking, including:

Thank you for the invitation, it was great fun!


Userspace boot speed: less than a second

Estimated read time: 1 minutes

I did not care about boot speed for a long time, since servers usually restarted only for kernel upgrades, laptops suspend to ram all the time, and I have no desktop machine at home for years now. Though one use case started to motivate me recently: I use virtual machines a lot, and waiting for them to boot up is boring.

So I looked at the systemd-analyze blame output, and it turned out that for a base-only install the only service that takes a lot of time is netconfig. It’s because it was a oneshot service, so the whole boot process waited for dhcpcd to get an IP. A much better solution is to just start netconfig in the background and move on — and that’s exactly frugalwareutils in git does now.

Before:

$ systemd-analyze
Startup finished in 2030ms (kernel) + 1166ms (initrd) + 6755ms (userspace) = 9953ms

After:

$ systemd-analyze
Startup finished in 2039ms (kernel) + 1146ms (initrd) + 892ms (userspace) = 4079ms
Note
Again, this is for a virtual machine (where the host has some IO cache) and for a base-only install.

Speeding up build with a lot languages enabled

Estimated read time: 1 minutes

When we got back from Munich, Andras had an idea what is the current bottleneck with the build when there are a lot of languages enabled, and it was the po2oo script, which is part of translate-toolkit.

First I tried to optimize that script, but then I tried to do the same gettext-to-SDF conversion from scratch, without using that framework at all, and it seems that caused a drastic speedup.

There were a few iterations, but now the two patches are in master, along with a fix in fast_merge.pl, which was there since at least commit 654810b (2009-06-17). ;)


Thanks for the Hackfest

Estimated read time: 1 minutes

http://vmiklos.hu/pic/hackfest2011.png

We were in Munich during this weekend, and I think all of us had great fun, kudos go to the organizers! If you are curious, there is a growing list of features implemented during the event.

Update: Oh, and I forgot to mention that we (Andras and me) especially thank the FSF.hu foundation for funding our travel!


Positions in RTF font tables

Estimated read time: 1 minutes

Tonight I worked on fdo#39337, and while the writerfilter-based RTF import filter almost handled the document in question correctly, the fonts were not correct.

It turned out that this was caused by the fact that RTF’s font table (a table where each row has an ID and it contains the font name, charset and other properties) does not require continuous ID’s (for example positions 0, 2, 3 are allowed, even if 1 is not set), but dmapper (the glue layer between the RTF tokenizer and the Writer UNO API) does.

I already sent the position of the entry to dmapper, but the position turned out to be ignored, so now I fixed the RTF tokenizer to send continuous ID’s.

A related improvement is that I just discovered the writerfilter::TagLogger::unoPropertySet() method, which can dump the properties of an UNO object, and now I’ve enabled dumping of shape properties, which can help a lot when something goes wrong there.


bitlbee-skype is now merged

Estimated read time: 1 minutes

http://bitlbee.org/style/logo.png

Back in April I had the idea to merge my bitlbee-skype plugin to the main BitlBee project. The reason is simple: BitlBee does not really have plugins (basically my Skype plugin was the only one) and because of this, ABI compatibility was not guaranteed, so I usually had to rebuild or even fix it after each BitlBee release (though Wilmer was helpful in case I was in doubt). Today this is all past, the plugin is part of the main BitlBee repo I won’t make separate bitlbee-skype releases anymore. (Latest version of the code is here, bzr info here.)

I’m quite happy this little piece of software did not get lost, but now is in the hands of an active maintainer again. :) If you need help with BitlBee, ask on #bitlbee, at irc.oftc.net.


LibreOffice 3.4 Packaging

Estimated read time: 1 minutes

The next major LibreOffice version, 3.4, means some work for (Linux distribution, and other) packagers, as the build repo is now deprecated and packagers are suggested to use the bootstrap repo directly, which is a different build system.

On one hand, this is a nice cleanup - there is now a single configure script. OTOH this needs major rework of distro build scripts.

The interesting part here is that the official binary installers are not using the make DESTDIR=/some/path install method to install the compiled binaries, so it was discovered quite late that it wasn’t working properly. First Hanno and Petr worked on this, then I fixed a minor, but blocking glitch.

As a result 3.4 beta4 will be something packagers (even the ones not using the split build) can offer to distro users for testing without patching. Binaries for Frugalware users here (i686-only at the moment).

© Miklos Vajna. Built using Pelican. Theme by Giulio Fidente on github.