Miscellaneous


4
Nov 09

Branching, merging, rebasing…

Giggle Graph

The image at the left is exactly what Giggle shows in this very precise moment for one of my coding projects. I think this is the most complex commit graph I have seen during my occassional coding tasks… This is how Git is supposed to be used: a branch per feature, and small atomic commits. Definitely I like this way of working :D

(This post is no more a small coding break… just to leave some neurons rest before reclaiming them back :D )


25
Sep 09

Two months after…

Two months have passed after my last post, and things here have been quieter than usual in this blog, but the world kept moving in the meanwhile so there are some things to tell, and some other that have already been told. Probably the most exciting thing for me and my work mates was the announcement of the shiny Nokia N900. I have resisted the temptation then, because a lot of things have already been said about it. We systems administrators are usually in the shadows, but even so it is a delight working as backing support for people who does big things.

There were a couple of releases this week what are a great example of why Igalia reached its eighth year, and we are still rockin’ in the free world:

  • Hildon 2.2.0, the user interface toolkit used in Maemo. No words are needed to explain how awesome is this!
  • Also, some of my work mates are fine-tuning MAFW after bringing it to life in order to provide multimedia coolness to Maemo, and (who knows!) maybe the desktop as well. Of course all built on top of the lovely GStreamer libraries.
  • GNOME 2.28, which includes the hard work from a lot of work in form all around the world, and a revamped Epiphany web browser which uses WebKitGTK+ as the rendering engine. This means that some of my colleguaes have been killing kitties and their hard work will be deployed in every GNOME install!
  • Frogr 0.1, a tool which carries out out the simple (but important) task of uploading pictures to Flickr, and it is doing a fine task for me right now.
  • In the operating systems ground, Haiku R1 Alpha 1 has been released. This may sound like “some other hobbyist operating system”, but it is a lot more than that: it is a new life for the mighty BeOS R5, which  took eight years to to bring from the dead. I have played a bit with the live CD: the experience is great, although somw rough edges still exist, but I would say that Haiku contains lots of superb work and I am eager to install it in some real hardware.

But more changes apart from software releases happened: in a more personal note, I am now using Fedora 11 in a daily basis at my laptop. Initially I wanted to try out Foresight, because the Conary package manager looks like an interesting piece of software, but unfortunately the installer does not have support for LUKS-encrypted volumes in the installer, and I did not want to bootstrap it manually. Interestingly enough, Fedora does have such support using the same Anaconda installer. I did not like Fedora back in version 6, but I must admit that the community did an impressive improvement (at least comparing version 6 to version 11!) and I am very happy with my current setup. I am even considering Fedora 11 for installing it on my brand new PlayStation 3: I bought one of the old “fat” models, because the new “slim” ones do not officially support installing third-party operating systems.

Finally, a quick note to finish this “I am alive” post: I am glad that we have decided to push Linux-vServer in our servers, because we are getting some interesting benefits thanks to it, being the main one the ability to easily clone a running machine and use the clone for testing purposes before applying changes in the production environment. Also, we are now able of easily provide sandboxed environments in which users have almost-full administrative privileges without having to worry about other services being affected in case something goes wrong. And we are getting those niceties with a minimal overhead (~1.5%) in terms of kernel CPU usage. As we are moving services which were previously run on physical machines into virtual machines, we are saving power and contributing to the environment while providing a better service and support to our staff :-D


2
Aug 09

More DebConf9 adventures

Now it looks like it is time to complete my previous post about DebConf9, after a tiresome journey back from Cáceres to Coruña the 30th, an Igalia assembly the 31st (the first one ever for me :-D ), and sleeping for more than 14 hours today.

Fortunately I did not need to travel alone, as Diego came with me to visit Coruña and the journey was more enjoyable than the other way around. To make the most out of the occasion, we followed an alternative route via  Ciudad Rodrigo (where we had lunch and bought some red wine, olive oil, and Iberian “embutido”: chorizo, salchichón and cured loin), then Porto (where we saw the bridges by Gustave Eiffel and his disciples), Valença do Minho (where we bought some goods which are sold in Portugal: salted butter, cheese, coffee, guava jelly…) and finally we made a longer stop at Santiago de Compostela in order to see the cathedral and the old town area while eating a sandwich. It took some time to complete the trip, but was far funnier that going alone to Cáceres.

But going back on to DebConf9, here is the rest of my batch of lectures and events, including summaries of them:

  • Free travel instead of free beer: Very nice presentation of photographs from all past DebConf and FLOSS related events, by Andreas Tille who has attended loads of them! This was a quite relaxing event, and the people there made the thing more enjoyable by telling the others about anecdotes and funny things about the places and the things which happened all along the world in past conferences.
  • Stable/Volatile/Backports ecosystem: This was a nice chat trying to define how the different Debian repositories should interact between each other. I think that the nicer part was including the not-so-official backports.org repositories, but nothing has been said about including debian-multimedia. It is a good thing to be coherent with the DFSG and being picky with which packages are actually in the main repository, but in my opinion something should be done to support the packages the users want in some way, including debian-multimedia as well.
  • Qemu for Debian developers: Not something which could be considered astonishing, but I have learned a couple of nice Qemu tricks with this. This was an interesting introduction for people wanting to make packages for architectures different than the one they are running.
  • Drowning in bugs: This was an extremely interesting chat about how it would be possible to actually get people to do bug triaging in Debian. Some solutions were outlined, like having some kind of teams for people to belong to, so they get at least some social recognition (e.g. “look, I am part of the Debian Foo-Bar Bugsquad” and the like), adding a score meter to the BTS like in the Gnome Bugzilla and so on. I think that something which should is being cooked right now will help a lot with this.
  • Libvirt, hypervisor independent virtual machine management: I heard before about libvirt, but have always thought that it looked like an unneccessary layer of indirection about THE virtualization technology you want to use. The facts are that it does not have Linux-vServer support (well, it might) and that one gets an interesting feature: remote management of virtual machines. Does that feature that pose much differences from using SSH to open a remote session? Probably if you use Qemu and/or Xen, but I do not see the point of having the additional hassle of another software layer.
  • Debian Redesign: Agnieszka aka “pixelgirl” proposed a new design for some stuff related to Debian, logo, colours, fonts and website. Some minor work for boot splash screens and is also there in the pack. It was funny to see how people asked questions about the openness of the license of the new font used for the logo, when the old one has a commercial one… I hope that she does not get annoyed too much by the rest of the community, because I also think there is a real and urgent need to give some love to how things look in Debian. And having people which has the neccessary knowledge to properly design nice things is great, so the community should support her.
  • State of the Bug Tracking System: Don Armstrong was making some improvements and cleanups to the old debbugs big code clean-up, and presented to the public one new feature which allows to mirror the state of the BTS and run a local copy. This made all the audience clap hands like crazy, as this allows for speedier operations, especially for searching and filtering in reports.
  • Introducing DebConf10: New York will held the next DebConf, which will be also the 10th anniversary of the event. The main venue will be at the Columbia University which looks great for such a thing. The main issue could be problems for people living in certain countries to get a visa so they can travel there the next year, so the organizers will be even providing legal advice and support. I just hope that this will not make the next edition be a “DebConf light” and that people from all around the world is represented the next year.
  • Debian on Network Attached Storage (NAS) devices: First of all, as most igalians have a NSLU2, I would want to say that Martin has already found the perfect and improved replacement for them: the Marvell SheevaPlug. It is great to see how well GNU/Linux is spreading over to all kinds of devices and architectures. And it is even nicer to see how the developers have designed a way for seamlessly installing Debian in this kind of devices in such a way that an average user could do it without requiring ninja skills.

That’s a good selection of the lectures and events I attended to. Of course there were some more interesting things, like the conference dinner, the massive group photo, giving a talk (slides here), the odyssey all along Cáceres to find a proper Irish tavern… The pint of Guinness with Gunnar, Gustavo and Diego was one of the best moments of the conference ;-)

Quick summary: going to DebConf9 was a rewarding experience, even when I ended up extremely tired after it. Let’s try to attend some more conferences anytime soon…


27
Jul 09

First day at the DebConf9

I arrived yesterday at the main venue after a the long trip by car: ~700km in a car without air conditioning. I was very tired so I headed up for my room (which is in an ancient building at the old town area of Cáceres), had a shower and decided to take a nap… with so much success that I slept for two hours and a miracle made me wake up just in time for the Cheese & wine party. It was great to taste an uncountable amount of kinds of cheese, wine and liquors from places all around the world. Among a lot of tasty stuff, it was really enlightening to try out some real japanese sake and the best peanuts I ever tried.

After a quick breakfast today in the morning, my personal schedule included attending the following:

  • Using FOSSology for license analysis in Debian: a tool which determines which license a package has by examining its sources and looking for license disclaimers and similar texts contained in source code was presented. This way even cases where each source file may have a different license can be easily identified. For packagers this makes easier to check whether a software component complies with the packaging policy.
  • Not your grandpa’s debhelper: This one really catched my attention, as I do some packaging from time to time it is very interesting to know about new incarnations of tools which suppose an aid to this task. The new dh thing is able of greatly simplifying build rules. I wanna try it!
  • Debian System Administraors BoF: I thought that it could be interesting to know how systems used for running the Debian infrastructure are configured. Three of the members of the team asked lots of questions from the audience, most of them being about e-mail services and whether it would be possible to improve spam handling.
  • Scratchbox2 for cross-compiling Debian: It was a shame that there was no projector nor something similar for Riku to give an introduction to Scratchbox 2, which looks like a good step forward. For example now it is possible to use it without root privileges at all.
  • Point releases – How to update stable more efficiently: I have missed some bits of this lecture because I was sitting near the end of the room, but if I understood correctly there is a plan for rolling updates sooner into the Debian stable package set by using a repository in the fashion of the Ubuntu “proposed-updates” one, so users can get theirs hands on sooner on the packages in order to provide the needed feedback for stabilization.

After having a light dinner I went along with Diego for a walk along the old town area, to see how does it look at night. The perfect accompaniment was a glass of beer and a magnificent ice cream. And that is enough for today… :-D


24
Jul 09

See you at DebConf9

DebConf9 LogoI will pick up my car and embark myself into a 8-hour trip to reach Cáceres tomorrow in the evening, after 699 km of road trip. The goal: attending (and enjoying!) the ninth edition of the Debian Conference, which has already started. As I do not know exactly the arrival time, I will skip the dinner tomorrow, but I will do my best to be at the Cheese & wine party and bringing some “tetilla” (small breast) cheese from Galicia, which has a funny shape as you can imagine:

I am looking forward to be there tomorrow, as this will be my first time at a big community event and it really looks like this kind of things are really interesting and a great opportunity to get in touch with latest developments, learning lots of new stuff, and meeting people from all around the world… The latter is a must for me, as I will not know anyone there because there will be no more Igalians attending the conference. So if you will be there from 25th to 30th feel free to approach me and have some chat :-D

Last, but not least, shell scripters (and anyone interested) may want to know that have a slot in the unofficial track for a  lecture on Shaft, a tool which we have been using lately to do declarative unit testing of shell scripts. I am just now polishing the slides, preparing a couple of examples and preparing the code for release.

See you there!


16
Jul 09

My own Gtk+ theme

I have never been completely happy with how the widgets of Gtk+ applications looked like. Undoubtedly the “Clearlooks” theme was an impressive improvement, but it has some glitches with some applications (for example Claws-Mail has to be tamed to look good with some themes) and I always had the curiosity of knowing how a theme is made. So I picked up the Chrome theme which uses the Murrine engine, and modified it to have warm gray colors, and the Gnome panel with the same shades as the rest of the widgets. After some tweaking I came up with this:

It makes a smooth, clean environment without too much distractions, apart from the blue shades of the selected items, so it is a good option for everyday use. Especially if you spend loads of hours in front of a computer. It matches nicely with the “Clearlooks” theme included in the latest versions of the OpenBox window manager (which I use).

I think this is nice enough to share, so you may want to get the theme conveniently packaged as a tarball.


2
Jul 09

Gentle CSS3 support in Gecko

Today I updated XulRunner to version 1.9.1 (with accompanying updates to Epiphany 2.26.3 and Firefox 3.5), and made a little experiment which I do everytime a web browser get updated: surf to css3.info and check whether some CSS3 cool stuff which was previously unsupported works with the latest release.

This update brought in the following improvements:

  • Text and box shadows, to make the browser generate more bling with less tricks.
  • HSL and HSLA color spaces, essential for conveniently creating shades of the same colour, by changing the saturation and/or lightness.
  • Some new background positioning options.
  • Multicolumn layout. I still do not have a clear idea if I would like use this in a web design, but I feel like it will be superb for generating printed media.
  • At last: TrueType fonts loaded from the web!
  • Other minor niceties :-D

I find very appealing that browsers are finally getting some of this implemented, especially drop shadows and fonts loaded from the web, as they allow designers for crafting very interesting designs while keeping sites accessible. Especially with web fonts: it will be no longer necessary to pre-generate titles and the like as bitmaps or generating them server-side. Something as simple as a good font design can turn a boring website into something beautiful, so this having feature (for now in Safari/WebKit and Firefox/Gecko) is absolutely thrilling.

Good times for web design are coming… ;-)


22
Jun 09

Successful upgrade to Bash 4

Yesterday my package manager insisted in updating Bash to version 4, which was released some time ago. I was a bit worried because as this new version intruduced new features, just in casethey could cause some of my working scripts to fail miserably. The fact is that finally I decided to bump to the new version, as I have not heard nothing about painful upgrades (as happened in the 2-to-3 transition). After installing it everything continues to work nicely with version 4.0… and I can try out the new cool features (hash tables are one of my favourites!).


22
Mar 09

Python talks collectd

I have been playing lately with collectd again, which is a very nice piece of software to monitor out things, especially when you want more than just the network statistics that other tools like MRTG. In a coffee break someone commented that it would be interesting to process and display some if the data sent by collectd daemons installed in machines in real-time, and it sounded like a funny idea, so the first thing I did was implementing the network protocol. At the moment I have a working pure-Python implementation of it working: collectd.py, capable of receiving data (sending data is stil work in progress).

As a quick introduction, you could use the module as follows:

from collectd import Reader

rdr = Reader()
while True:
    print "-" * 80
    for item in rdr.interpret():
        print item

This will join the default IPv4 multicast group (239.19274.66) used by collectd (sorry, IPv6 support is incomplete) and start listening for incoming UDP packets in the default port (25826), will interpret each incoming data packet, and then print each component of the data packet to standard output in a rather readable format:

[1237749608] localhost.localdomain/swap/swap/used [(1, 48082944.0)]
[1237749608] localhost.localdomain/swap/swap/free [(1, 1007009792.0)]
[1237749608] localhost.localdomain/swap/swap/cached [(1, 18640896.0)]
[1237749608] localhost.localdomain/users/users [(1, 5.0)]

Each data item is an instance of collectd.Values (which behaves mostly as a list, and can contain multiple values) and collectd.Notification. Both of them share some fields inherited from collectd.Data. For example, you could filter messages regarding swap space usage from machines containing foobar in their host names:

if "foobar" in item.host and item.plugin == "swap":
    print item

If you want to bind to a particular address/port or join any other multicast group than de default (sorry: joining multiple groups is not implemented right now) you can pass parameters to the constructor:

rdr = collectd.Reader(host="192.168.0.32", port=9000)

The protocol was pretty straightforward to interpret, the hardest part was guessing how to properly handle multicast, as I never had to deal with it before. Now it is time to spend some time with PyCairo, or even PyCha which looks pretty convenient, and make a small application which dumps real-time graphs to a window :-)


6
Feb 09

Using blogpost.py with Docutils

I am right now trying to add support for writing files in reStructuredText format to the blogpost tool. In fact, if you can see this post nicely formatted, I would be that the thing has worked and I will be posting the patch anytime soon™…

Stay tuned ;-)

Update: grab the patch here