Index ¦ Archives ¦ RSS

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


Dobogoko

Estimated read time: 1 minutes

Hatarozottan emlekszem, hogy nem ez volt az elso alkalom, hogy Dobogokore mentunk bringaval, de ugy tunik idaig nem irtam rola.

8-kor talalkoztunk a Margit-hidnal Botonddal, majd Pomaz fele vettunk az iranyt, kozben utbaejtve egy Auchant reggeli celjabol. Az egesz turanak az egyik celja az volt, hogy osszehasonlitsuk eronletunket, ami szamomra pozitiv csalodas volt: gyakorlatilag a Ketbukkfa-nyeregig kenyelmesen jottunk teljesen egyutt, de a csucson is alig kellett varnom. A kis fahazban meg mindig u.az a neni arulja a sutiket, be is zsebeltem egy almas pitet, bar eleg bosszanto volt elfogyasztani a sok darazs miatt. Innen Pilisszanto es Pilisvorosvar fele vettuk az utat, majd a 10-es uton haza.

Pontos utvonal erre.

A kmora ezt merte: ido 4h22m, tav 89.81km, max 57.6 km/h.


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.


KVM port forwarding

Estimated read time: 1 minutes

This is going to be like my mysql password set post, I got tired of looking up the docs all the time, so here it is.

If you have a host running kvm instances and you want to forward the TCP port $hostport of the host machine $host to a port $guestport of the guest machine $guest, then you need:

iptables -t nat -A PREROUTING -p tcp -d $host --dport $hostport -j DNAT --to-destination $guest:$guestport

T520

Estimated read time: 3 minutes

So I’m testing a ThinkPad T520 for about 3 weeks now.

My motivations were:

  • so far I was using a netbook as my primary desktop, but recently did too much hacking on it, so I needed something more powerful

  • it’s interesting how many people I respect is a happy ThinkPad user, so I wanted to join the fun

  • I got fed up with not having any 3D acceleration on the netbook, I wanted back the sane Intel VGA that requires no blob drivers and still satisfies a non-gamer, like me

  • sometimes I did miss a larger screen, while 12" is handy, hacking in Eclipse (when I have to), watching a movie with family, etc is not really optimal

The official homepage is here, the exact model I got has the following spec:

  • display: 15.6" WUXGA FULL HD (1920x1080), AntiGlare

  • cpu: Intel Core i7-2630QM 2,0

  • memory: 8GB (2x4GB) DDR3, 1333MHz

  • hdd: 500GB, 7200rpm, SATA

  • dvd writer

  • vga: Nvidia Quadro NVS 4200M, 1024MB + Optimus

  • wireless: 802.11a/g/n

  • bluetooth: 2.1 + EDR

  • card reader: 4 in 1 (SD, SDHC, SDXC, MMC)

  • interfaces: 3xUSB2.0, 1xeSATA/USB2.0 combo, fingerprint reader, 1xRJ45, 1xExpressCard/34, 1xDisplay port, 1xVGA, 1xmic, 1xheadphone

  • webcam: 1 Mpixel

  • battery: 9 cells, 94Whr, marketing says 14h

  • warranty: 36 months

What I did not test:

  • Nvidia

  • fingerprint reader

  • RJ45, eSATA, ExpressCard

Driver support: every portion works with Linux 2.6.39 without installing any external drivers, except the out-of-core vga.

Notes:

  • the cpu is an x86_64 4-core 2GHz (in case the above link would became 404), so far it seems that enabling hyper-threading just causes trouble, once I turned that off, I no longer got random failures when doing multithread builds

  • I considered SSD but so far I think it’s too new technology for me, probably I’ll consider for the next machine

  • luckily the Nvidia card in it did not cost too much, since it would just eat my battery, one of the first things I did was to enable the in-core intel vga

  • the external vga port is nice, when I plug the external monitor in, a KDE gui pops up and manually typing xrandr commands seems to be unnecessary

  • the wireless works fine with the iwlagn Linux kernel module, but so far I was unable to connect to hidden access points (need to debug later, I only use advertised ESSID + wpa2 on a daily basis)

  • the fingerprint reader is a joke, I did not try this one, but with a similar model it seemed to work 9 times from 10 cases, but in case it did not, repeating the read did not help and finally you just had to type in your password

  • battery: with my usecase, it’s around 8h when I do nothing cpu-intensive, otherwise around 3h

  • my mini benchmark: build of LibreOffice master took more than 24h on my netbook, now it’s under an hour, an in case there were minimal changes only (so ccache has many hits), it’s around 20 minutes — and that includes installing the product and running the testsuite as well. ;)


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.


Adria

Estimated read time: 1 minutes

A heten bringazni voltunk az Adrian. Roviden erre jartunk:

  • Porec: le kocsival Bp-rol, helyben bringaval, 14.95km

  • Rovinj: vegig bringaval, 106.21km

  • Pula, Premantura: kocsival, csak helyben Pulaban bringaval, 22.90km

  • Krk sziget: a szigetig kocsival, szigeten bringaval, 102.57km (itt voltak szep emelkedok is lejtok, max: 62.2 km/h)

  • Portoroz, Piran, Trieszt: vegig kocsival

  • Moscenicka Draga, Lovran: Moscenicka Draga-ig kocsival, majd tengerszinttol fel 1020m-re (gps szerint: 1107m-re) bringaval, vegul nyilvan vissza a kocsihoz, 52.25km

Kepeket erre tessek.

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