I survived FOSDEM 2011

After some reports from other LibreOffice crowd members (here and here),  I'm adding mine to the heap:


The fun has started at Prague airport already.  Due to (to put it mildly) incompetence of the printing shop I'm not gonna name, Kendy and me had exactly 10 minutes to dispatch 45 kilos of swag through the check-in -- that meant distributing the load into our luggage and shipping the remaining boxes as overweight ( including paying criminal surcharge for it). I hereby apologize to Czech Airways check-in clerk for spoiling her shift with it ;-) Getting the material from Brussels luggage claim to the train station was rather challenging as well, but fortunately there were some helping hands waiting for us at Brussels Nord (thanks Thorsten, Rene and Kohei). In Kendy's words: "The experience doesn't necessarily have to be positive, but it definitely has to be remarkable. We would have nothing to talk about otherwise."

Friday's beer event (my first ever) was also an enchanting experience. Met Caolan and Florian 'flr' Reuter for the first time (who, in slightly boozed state, asked me "Hey, so you are my successor at Novell?"). It was amazing to see LibreOffice crew almost having blocked the street in front of Delirium Cafe :)


Pleased to meet more LibreOffice crew members (Chris, Bjoern, Jacqueline), some of them for the first time (Cor, Charles).  I've spent most of the day in and around LibreOffice booth, talking to people and selling/giving out swag, but there was plenty of time for other stuff as well. I've seen lightning talk by Rudolf 'Ruik' Marek on coreboot (purely as his fan club member, he's FEL CVUT alumni just as I am) and also Nokia's Kenneth Christiansen presentation on challenges encountered by devs of mobile applications. Managed to have my empty cellphone battery charged by a device made of hairclip (thanks, Pavel). Also made a tour around the other boots, to grab some interesting swag (there'll be another blog post on this in the near future).
Here are some photos from the day (left to right, up to down: unpacking the swag; Caolan and Fridrich; LibreOffice crew in hot hot hot T-shirts; LibreOffice crew talking to visitors -- Jacqueline, Bjoern, Thorsten, Kendy; more visitors chatting -- Cor and Chris; hungry Kendy with portion of vlaamse frieten):

The fun continued until late in Volle Gas restaurant, where LibreOffice crowd & its fan club and friends moved after FOSDEM venue closed. Got introduced to Jim Blandy ("that Madeira guy") and talented Mr. Seward -- more than pleased (insider joke: having Wikipedia article about oneself is an ultimate tool to impress anyone, not just women ;-) ). I was slightly underwhelmed by the quality of food, but hey, for having a really good rabbit one has to go to Malta.
Some more pics to share (left to right, up to down: the whole crowd in Volle Gas; Fridrich, Flr and Kohei; genius' corner; shiny happy Sweetshark):


Spent morning in the LibreOffice booth, boosting our swag sales with Cor. The highlight of the day is clearly this Sun/Oracle executive in LibreOffice sweatshirt:

As LibreOffice devroom has been opened today and we were pretty much short on crew, there was unfortunately not much time for me to see some other presentations. Bad luck, I heard Michael's talk has been fun (as usually, he knows how to make a show) and I was also curious about WoMoz ladies. However, within our devroom I attended Chris' fabulous presentation on LibreOffice design team, Thorsten's Impressive hacking talk and Kohei's Calc bright future presentation (as a camera (wo)man, not quite voluntarily *grin*). Time passed by quickly and unfortunately (or not, I was already feeling as if run over by truck ;-) ) we had to leave. With Thorsten, we managed to grab some delicious waffle (lot of cream, strawberries and chocolate) on the way to the airport, yummy :)

And that, dear children, is finally the end of FOSDEM fairytale. I'm definitely coming back next year.

Yay! LibreOffice 3.3 released

Most of the important stuff has been already said, so without much ado, let me share some pictures from LibreOffice release party we threw yesterday at 12 a.m. sharp in Prague Novell office.

Prague hacker crowd waiting for the fun to start:
Hacker crowd waiting for the fun to start

Ready to rock!
Ready to rock!

Kendy waving the LibreOffice flag:
Kendy waving the LibreOffice flag

... and the final baptism of this baby of ours:

Many thanks to everyone who participated! Another round of thanks to Kobliha for photodocumentation. No animals were harmed and no hackers got drunk while producing those pics.

Freeeeeee Fall!

Yeah, it is really me jumping from the aircraft and falling down. My first thoughts after the jump weren't "Wow, this is fun", but "Geez, I've done it and I'm still alive".
Big thanks to Gejza and Bery (the two instructors accompanying me) - if it weren't for them, I would have never mustered courage to actually jump. Another big thanks to ACMik, Alenka and Danny - there's nothing like landing into the cheering crowd of your friends, especially when it's your first time :)
  • Current Music
    Iron Maiden: Aces High

I survived LinuxTag 2010

Migraine. Fatigue.
Sucky talk on the usual suspect. Better let some projects die.
Saw Matthias SuperStar Ettrich live. Yes, and QML rocks too. 
Disappointed to see no hackers in OpenOffice booth.
Got introduced to lovely Jacqueline (German community lead).
Seen Szabgab's talk on Perl testing, didn't manage to say shalom to him.
Currywurst (the best in the world) with Oliver and Thomas.
Absolutely fantastic talk by Ivanka on how to make usability happen in Linux.
More talks, on how Microsoft and SAP care about open source.
Didn't quite enjoy the party (anti-social event).
Enlightened by AJ on why Berlin cycling lanes are red (it's all blood of the tourists).
Attended OOo usability workshop ...
... turned out to be " what's wrong with OOo community, oh and btw also with OOo interoperability" discussion.
Met Elizabeth and Talented Mr.Noack. Long chat about Rennaisance. Wish I could participate
Interview for Radio Tux. Must've been lousy companion.
Saw what has remained of Berlin Wall (wish for tearing down the wall between Israel and Palestine one day).
More fatigue. Waiting for the circle to close.
  • Current Mood
    depressed depressed

Celebrating Ada Lovelace Day

Today is Ada Lovelace day - an international day of blogging to celebrate the achievements of women in technology and science ((thanks Sankar for reminding me, although I signed the pledge some time ago already, I would have certainly forgotten it completely in this "moved to a new team" frenzy ;-)).

I'm going to introduce to you one of the most brilliant mathematicians of her era, a heroine that lived in difficult times where women were not admitted to the universities and scientific societies. Despite all the obstacles, she significantly contributed to number theory and her findings helped to solve one of the greatest mathematical mysteries of all times - Fermat's last theorem. Ladies and gentleman, Sophie Germain.

Sophie was born in 1776 into the middle class French family. She discovered magical world of numbers and mathematics as a teenager, to a great dismay of her parents who in the effort to prevent their daughter from pursuing such an unfeminine career used to confiscate her candles and remove heating from her room so that she couldn't study. But in the end, it was her father who financially supported her research and her efforts to break into the male-only community of mathematicians.

In 1794, Ecole Polytechnique was opened in Paris, but unfortunately, its gates were closed to women. In order to pursue studies anyway, Sophie assumed an identity of drop-out student, monsieur Le Blanc and was submitting answer sheets under this pseudonym. It was only after course supervisor, Joseph-Louis Lagrange, astonished by her brilliant answers, insisted on meeting the talented student when her true identity was revealed.

She quickly moved from homework assignments to more difficult problems and being interested in number theory, she had to come across Fermat's theorem sooner or later. She proved the theorem for particular type of primes, making an important step towards the final proof on which later generations of mathematicians could build. In later age, she also explored elasticity theory and received grand prize from Paris Academy of Sciences for her research on the subject. Sophie died of breast cancer in 1831. A particular type of primes (if n is prime, 2n+1 is also prime) is called "Sophie Germain prime" in her honour.

My choice of extraordinary female scientist to blog about was not random - I wanted to introduce a pioneer woman in some field to illustrate how much prejudice and institutionalized misogyny  women had to (and sadly, sometimes still have to) overcome to succeed just as well as men do. Using the words of Carl Friedrich Gauss ("the prince of mathematician") in one of his letters to Germain: "A taste for the abstract sciences in general and above all the mysteries of numbers is excessively rare: one is not astonished at it: the enchanting charms of this sublime science reveal only to those who have the courage to go deeply into it. But when a person of the sex which, according to our customs and prejudices, must encounter infinitely more difficulties than men to familiarize herself with these thorny researches, succeeds nevertheless in surmounting these obstacles and penetrating the most obscure parts of them, then without doubt she must have the noblest courage, quite extraordinary talents and superior genius."

Many thanks to these brave heroines who paved the way to us, modern women in technology and science.

References: Wikipedia, Simon Singh's book (Fermat's Last Theorem - highly recommended read)
  • Current Mood
    cynical cynical

Back from Israel

 It has been fabulous vacation I can wholeheartedly recommend to everyone. Not taking into account some small things, such as obnoxious security officers at Prague airport who spent almost an hour questioning me (young women traveling on their own are probably the most dangerous criminals ;) maybe because they're so stealth :D ), it'd be perfect.

I brought this hilarious joke home as a souvenir (attention - if you tend to be offended by jokes showing the Palestinians in negative light, don't read on):

What happens when a fly falls into a coffee cup?

The Italian - throws the cup, breaks it, and walks away in a fit of rage.

The German - carefully washes the cup, sterilizes it and makes a new cup of coffee.

The Frenchman - takes out the fly, and drinks the coffee.

The Chinese - eats the fly and throws away the coffee.

The Russian - Drinks the coffee with the fly, since it was extra with no charge.

The Israeli - sells the coffee to the Frenchman, the fly to the Chinese, drinks tea and uses the extra money to invent a device that prevents flies from falling into coffee.

The Palestinian - blames the Israeli for the fly falling in his coffee, protests the act of aggression to the UN, takes a loan from the European Union to buy a new cup of coffee, uses the money to purchase explosives and then blows up the coffee house where the Italian, the Frenchman, the Chinese, the German and the Russian are all trying to explain to the Israeli that he should give away his cup of tea to the Palestinian.
  • Current Mood
    giggly giggly
  • Tags

Sad and blue

I'm blue.  And not only that, I seem to suffer from writer's block. If there's something like "code-writer's block", I probably suffer from that, too (I believe there is, there was just no Stephen King to write a few horror books about it so far .... something I can consider doing when I retire).

I no longer feel the sense of accomplishment from the things I'm working on and I'm unhappy with the way where something I was always doing with passion (ie. YaST hacking) is heading. The fact that I can do absolutely nothing to change that further deepens my blues.

Most of the time, I tend to be the one trying to cheer up my colleagues and friends when they write blogposts like this by writing encouraging comments or pasting links to some feel-good stuff (my favourite one).  Unfortunately, I can't do the same now for myself. Oh well ... 
  • Current Music
    Nightwish: Passion and the opera

News from libstorage/YaST partitioner insectarium

NFS to the power of 4

After ext4 and btrfs in openSUSE 11.2, nfs4 is the next filesystem to be fully supported by libstorage (libstorage is the engine that makes YaST partitioner moving). In the upcoming first milestone of openSUSE 11.3, you can already try mounting nfs4 shares from partitioner during installation and later too (*cough* it has been possible to opt for mounting the share as nfs4 already in 11.1, but GUI option was just dummy, you ended up with regular nfs3 anyway *cough* ;-) ). Big thanks to Arvin and Thomas for implementing it (if you want to help with libstorage hacking, read here how, if you are not into hacking, you can contribute your ideas).

And slightly off-topic (as this post tends to be storage-related): you can also give nfs4-based software repositories a try - openSUSE 11.3 libzypp (hence also zypper and YaST repo manager) is now nfs4-enabled, too.

Sheep^WDisk cloning

Imagine a box with four brand-new clean disks you want to combine into RAID5. Unless you're proficient in CLI tools usage and script writing, here's what you'd probably do: go to YaST partitioner, click first disk, click Add (1st partition), enter the data, click Finish, click Add again (for 2nd partition), enter the data, click Finish ... the same procedure for all partitions on the first disk. Now multiply that by four - isn't so much clicking around an annoying waste of time and energy?

Well, it doesn't have to be so anymore. As disks in RAIDs  tend to have identical (or at least, very similar) partition layout, you can make use of new disk cloning feature (openSUSE 11.3 is the first one to have it - the original code was written by me for SLE11 SP1, and ported to 11.3 by captain Arvin):

Here you just partition one disk and pick the cloning option from the menu. A dialog with list that pops up shows all available disks that are suitable candidates for being the clone of the first one [1] Select one or more of those, confirm with OK and after committing the changes, voila! - there are now few clone brothers with the same partition layout, ready to be bundled into RAID (or LVM). It's easy :)

I wonder if any of other distro's partitioning tools can clone, too, and what approach they're using for setting up complex storage scenarios in an user-friendly way ...

[1] Of course, only the same size or bigger disks qualify, and for simplicity sake, they must share the cylinder size as well

On testing

( I promised this article to Lukáš  today, so now I really have to write it :) )

What is the most important part of software project? Experienced developers? Creative user interface designers? Good managers? Meticulous testers? Decision making in the right hands? Hmmm ... if you ask me, it's balanced combination of all of these, but this is not what I'm going to write about. Testing - that's (maybe along with l10n work) one of the most underestimated and largely invisible part of any software project, be it a small appliance or something as large-scale as Linux distribution.

Hackers often look down on QA guys and view them as those not being smart enough to actually write the code. Nothing can be further from the truth. A good tester is worth his/her weight in gold. Fairly recent experience with work on (partially closed-source) project taught me a lesson about vital importance of  testing that I'll never forget. Really. Even the best code is dead without somebody testing it.

It is a tester who has to, using his/her experience and intuition, be able to pinpoint weak points of the software. When implementing a feature or creating a bugfix, developer's time is just enough to do some basic testing, verify it works, the bug is really fixed and be done with it. Tester has to use his/her creativity and come up with scenarios developer never dreamed about.

Tester has to have enough patience to go through the same boring set of basic routines with each and every new build. His/her learning curve with a new software has to be pretty steep. In limited time, s/he has to understand principles and configuration of the software and start using it as if s/he was an advanced user. At the same time, s/he has to quickly find out where the borderline between PEBCAK (Problem Exists Between Chair And Keyboard aka Layer 8 issue) and a real bug lies. I have to admit that this was the reason why I pretty much sucked at testing - I was so anxious about "I don't want to look stupid and file an invalid bug" that I spent hours and days studying docs and verifying it's not just me doing something wrong. I didn't realize that misleading documentation or confusing UI qualify as bugs as well.

When the project is finished, hackers are the guys in the spotlight and, sadly enough, QA work often stays unnoticed. Worse even, if the whole thing is a failure, testing squad is the first one to blame ("Damn, those guys must've had no QA. What? They had some? What they have been doing all that time then?"). Needless to say, that doesn't exactly boost one's confidence in the meaningfulness of his/her work.

To conclude, I'd like to dedicate this post to all our Four-Letter-Project testers (especially to the most active one of them) and to all former, present and future openSUSE testers. Ladies and gentlemen, a big round of applause for all those heroes, known and unknown!
  • Current Music
    Judas Priest: Jawbreaker
  • Tags

bYnary incompatiDEbility

All I really need know I learned in kindergarten ... Come on, say you're sorry when you mess things up. Allright, we released a YaST (ncurses) update. It broke ncurses packager in openSUSE 11.1 and 11.2 for everyone. One could still use GUI (qt/gtk) packager or zypper CLI - instead, or to fix things up (e.g. to downgrade), but this is not exactly the thing that boosts user's trust in the distribution, is it? Many thanks to Marcus  for prompt response - a new update has  been released swiftly  and it can be downloaded by now. It was enough to rebuild ncurses packager against updated YaST ncurses UI lib ...

Logically, one could now ask "How comes you guys released such a crappy update? Hasn't it been tested at all?". Well, as Marcus already stated in bzilla, openSUSE update testing largely depends on those community members who use Update:Test repo and apply patches (almost) ready for the release before they hit official update repositories.
To improve the quality of updates (and to prevent buggy updates from hitting many users), we need more hero testers. What does it mean? Go subscribe Update:Test repo and/or look here how you can help maintenance team otherwise. Oh, and you may also talk your neighbour (sister, cousin, ... ) into doing the same :)

Moreover, in this particular case, it was few other little things that summed up and resulted in failure.
  • The original bug ("paging bug") this update was about to fix was reported against Package1 (yast2-backup), fixed in Package2 (yast2-ncurses) and the resulting patch crashed Package3 (yast2-ncurses-pkg). Package3 is one of approx. 80 YaST packages. Taking also update description into account, even a seasoned tester would probably pick the original module (yast2-backup) for testing here.
  • With dramatic increase in the popularity of zypper and "mainstreamness" of GUI tools, I wouldn't be surprised to find out that very few of our update testers actively use ncurses packager
  • This was the first yast2-ncurses update introducing ABI incompatibility since its split (package manager used to be integral part of the library in the past). We didn't have the experience "a dependent pack must be also included in the update"  yet

Wanted: plugin lib versioning know-how

When sh** hit the fan, my thoughts followed along this line: "Now, if we introduce some system of tracking ABI changes in YaST libs .. " (shared library versioning it is called, now I know it) "... and have dependent packages require the correct version of shared library, we can avoid breakages like this in the future." But alas, my visit to YaST core wizard made me pretty pessimistic. Not only YaST core doesn't encourage shared lib writers to version their libs correctly, it makes (in its current form) the versioning impossible. 

YaST core doesn't link against shared libs, it loads ( dlopen()s ) them on demand as plugins and the existence of different versions of plugins would complicate the situation ... So, my dear readers, if you happen to know some (preferably) open-source project that is already proficient in this i.e. it loads its components as plugins AND applies solid library versioning policy at the same time, let us (include MVidner the Wizard in the loop, too) know. Kingdom for know-how !

And now .... winter hibernation again.