Pavol Rusnak #cypherpunk #hacker #openhw #privacy #bitcoin #newmediaart

FOSDEM 2010 Report

Last weekend I attended FOSDEM 2010 and it was a blast! I’ve never seen such a high number of tracks on a conference. Kudos to the organization team! During these two days I was sending a short messages via identica and twitter, because as @amedee said “the crew provided a fiber optic network, so people can compress their thoughts in char[140] blurbs”. :-) I still decided to write a short report, because not everything could fit into these blurbs and not everyone uses these microblogging services. So here we go!


The first keynote I attended was the “Evil on the Internet” by Richard Clayton. The Janson room totally crowded as can be seen on the photo below. I expect there were around 1200 people in the audience. Richard spoke about various tricks how to identify scammers and one of the interesting points was that you can use Google Street View to check scammers’ (often fake) addresses.


After the keynote I went to see KDE SC 4.4 demo by Jos Poortvliet. It turned out to be a good choice, because I finally learned why the “Rotate widget” feature is useful. :-) Imagine a multitouch-table with 8 people around, each working with his/hers own set of widgets. Pretty cool idea!

I was interested how Maemo and Fedora manage their communities, so I attended the respective talks in the Distributions track. Maemo uses karma to measure the activity of its community members. They have 6 masters who take care of their field related issues and 5 members of community council (see team page). Max Spevack of Fedora surprised me that he had no prepared slides, but he is a good speaker so the talk was still very good. He spoke about Fedora governance “mountain” which is: Individual, Regional, SIG, Project, Board, Project Leader. One good thing about SIGs is that they can miserably without bad impact on the distribution as a whole (but they tend to be wildly successful). In the end Max recommended us reading The Starfish and the Spider book.

Then I went to see the Ruby+Rails devroom. More than 70% of people had MacBooks there, but this could be expected. :-) Nicolas Jacobeus gave us 25 tips for Ruby and Rails development and Francois Stephany told us about how Ruby is still being inspired by Smalltalk even today and used pretty funny examples to demonstrate it:


I wanted to see the last 2 XMPP talks, but their devroom was desperately full, so I went back to our stand to meet the rest of the openSUSE gang and have dinner with them.


Second day had even more visitors and most of the smaller rooms were full. I couldn’t get to Miguel’s talk about Mono Edge, so I went to see NixOS talk. They use very interesting package management and configuration storage. See bottom of this page for more info.

After that it was my turn to give a talk on RPM packaging collaboration. It went quite well although the battery in my microphone died, so the recording will be probably fubared. I got valuable feedback from Fedora and Mandriva folks, even from Jeff Johnson. Let’s see if it raises the level of discussions on wiki, mailinglists and IRC.

I was finally able to make it into the Mono room where Miguel shortly presented the Pinta paint editor and Alp showed us Moonlight player which used fully-managed Theora codec to play the movie. These demos were followed by series of in-browser and desktop Moonlight demonstrations by Andrea Gaita.

Then I rushed to see Evan presenting his StatusNet project (you might know it under ther former name, but I was able to catch only Q&A at the end. Shortly after GregKH appeared on stage and gave very funny (as usual) guide how to contribute to Linux kernel. He also talked about the coding style and gave a perfect explanation why to care about it (of course, not only in kernel, but generally): If you have a coding style, code patterns will start to emerge and you are able to see the “metadata”.


This was the last FOSDEM talk and all I had in front of me was a looooong travel home, but definitively worth it! :-)

(Twitpic photos by: @jaom7, @Cimm, @vyruss).

Geeko Postcard

Today I had a very nice surprise laying on my office desk. It was a postcard from my dear friends from Brno (so called #fedora-cs mafia :-D) depicting a 3D image of a geeko on sand. Luckily I was able to find two shops (here and here) which offer this jewel. The latter one also had the 3D picture so I can share this viewing pleasure with you:


It looks even better in real-life! :-)

Make your emails more colorful

I use Mozilla Thunderbird as my e-mail client and I prefer plain-text messages over HTML format. When you view a threaded conversation it looks like this:


I found a little hack on Mozilla website which adds different colors for various quote levels in messages. Unfortunately the example is no longer valid for Thunderbird 3, because the default color scheme had changed. I modified the CSS to fit the new look and ended up with this:


If you like it, just run the following command to create the userContents.css file:

mkdir -p ~/.thunderbird/*.default/chrome
touch ~/.thunderbird/*.default/chrome/userContent.css

and put the following contents there:

/* Quote Levels Colors */
/* bar color: #729fcf */
blockquote[type=cite] {
    color: #394f67 !important;
    background-color: #edf3f9 !important;
/* bar color: #ad7fa8 */
blockquote[type=cite] blockquote {
    color: #563f54 !important;
    background-color: #f4eff4 !important;
/* bar color: #8ae234 */
blockquote[type=cite] blockquote blockquote {
    color: #45711a !important;
    background-color: #f0fbe5 !important;
/* bar color: #fcaf3e */
blockquote[type=cite] blockquote blockquote blockquote {
    color: #7e571f !important;
    background-color: #fef5e6 !important;
/* bar color: #e9b96e */
blockquote[type=cite] blockquote blockquote blockquote blockquote {
    color: #745c37 !important;
    background-color: #fcf6ec !important;

Don’t forget to restart Thunderbird! :-)

Gemcutter + openSUSE Build Service cooperation (idea)


If you are closely following Ruby development and especially the situation around ruby gems, you might already know of Gemcutter. It is a new service, which provides a very easy way how to publish gems and also a good API to deal with them. It is not trying to replace RubyForge as whole, just its gem hosting (+ now defunct GitHub gem hosting) and will soon become the central and the only place for Ruby gems. The whole site is MIT licensed and the code is available on GitHub.

During the winter holidays I wrote a simple script which utilizes the Gemcutter API and prints versions of rubygem-* packages in our devel:languages:ruby:extensions Build Service repository compared with the corresponding gem versions on Gemcutter. Using this script and a great gem2rpm (more particularly gem2rpm-opensuse command which applies openSUSE template and is available from rubygem-gem2rpm package), I was able to update nearly a hundred of gems in just two hours. Rails rubygems have a specific packaging in openSUSE, so I left them out, but more than 90% of the rest didn’t need any changes in autogenerated spec file.

This brought me an idea. If only Gemcutter had an option to somehow send out notification that a new gem has been pushed, we could automate the process and have up-to-date rubygems in our devel:languages:ruby:extensions repository almost instantly. (We would still need to keep the list of “dirty” rubygems that need to be updated manually, though. For example, Rails packages I mentioned earlier, where we keep multiple versions, or others where we need to add a patch replacing /usr/local/bin/ruby with /usr/bin/ruby in scripts).

Few days later, Gemcutter gained RSS feed support, but only for the gems one is interested in. I didn’t find the option to have RSS feed for all gems. This could have helped in creating such mechanism, but that won’t be needed anymore because …

… yesterday Nick Quaranto of Gemcutter announced webhook support. I’m really excited, because that’s exactly what we need! When one registers a webhook, Gemcutter emits a POST request on a certain URL when a gem is pushed or updated. This request is a JSON document containing the info about gem. What we need is to create a mechanism that:

  • receives notification via POST JSON request
  • checks whether the package is not “dirty” -> exit if it is (and probably send some email …)
  • fetches the package from the Build Service or create a new one
  • fetches the new gem, removes the old one
  • runs gem2rpm-opensuse to create a spec file replacing the old one
  • adds changelog entry
  • pushes the updated package back into the Build Service

Last but not least: If Fedora and Mandriva had gem2rpm templates in a perfect shape too, Build Service could provide packaged gems also for their distributions.

So what do you think? Any volunteers for this? Right now, I’m off to fix some small bugs I found in gem2rpm while fiddling with it … :-)