Category Archives: English

Vagalume 0.2: it’s amazing and flies!

I have been busy lately so I haven’t had much time to work on my little Last.fm client, but I finally managed to prepare a new release, so here is Vagalume 0.2!

First of all I’d like to start with an introduction because some people asked me about the name of this program…

So what does Vagalume mean?

Vagalume is Galician Portuguese for firefly.

The name has absolutely no relation to Last.fm and it doesn’t have anything to do with music either. I chose it just because I liked how it sounded 🙂

How do you pronounce Vagalume?

This word is composed of four syllables and it’s stressed on the third one: va-ga-LU-me.

To pronounce each syllable you can follow these examples:

  • va as in vast, vantage or varnish (*)
  • ga as in garden, garlic or gasp
  • lu as in lucid, luminary or lunacy
  • me as in medal, melody or medical

(*) although we Galicians pronounce it as in bargain, basket or bathroom

(Updated 10 Nov 2007: as stated in the comments of this post, the Galician phonological representation of the word is /bagalume/ and the usual pronunciation is [bɑɣɑlumɪ]. Thanks Marcos and Cameron)

What’s new in this release?

There haven’t been many big changes, I basically added support to some parts of the protocol that weren’t implemented in the previous version. Here’s the quick summary:

  • Support for recommending tracks to other users
  • Support for adding tracks to your playlist
  • Volume control for the Nokia devices using the hardware +/- keys
  • A combo box to select a friend instead of having to type his/her name
  • More visual feedback for some actions
  • Some bugfixes and other minor changes

Now that most of the core features are more or less working, from now on I think I’ll begin to work on the UI. But beware! I’m not a good UI designer, so be prepared for the disaster 🙂

Where can I get it?

You can get Vagalume from my page or from garage.maemo.org.

There are packages for the Nokia 770, N800 and N810, as well as a package for Debian etch (x86).

And that’s all for now. I’d like to thank again all of the suggestions and positive comments that I received these last days. Thank you all! 🙂

UPDATE: It seems that this post has just entered planet.gnome.org. This is my first post there, so hi all! 🙂

Vagalume 0.1 released: come and get it!

After a couple of pre-releases, version 0.1 of Vagalume, the Last.fm client for the Nokia N800, is finally here.

Vagalume 0.1

This is the first proper release and it comes with full source code licensed under the GNU GPL.

There haven’t been many changes since the first pre-release from last monday, but this version includes some nice new features such as:

  • Proper support for loving/banning tracks.
  • Support for tagging artists, tracks and albums (with multiple tags at once).
  • More menu entries to select Last.fm radios. Avoid typing long lastfm:// URLs.

I have also compiled packages for Debian etch (x86) and Tablet OS 2008 (using Maemo chinook beta), so if there is any lucky owner of an N810 out there, I’d appreciate feedback 😉

I haven’t tried to compile Vagalume for the Nokia 770. I don’t have one of those and I haven’t had the time to find out if it’s easy/possible to make it work there, but if someone tries please let me know. For those interested, this program depends on GTK+2, GStreamer 0.10, libcurl and libxml2.

You can get Vagalume from my webpage.

I’d like to thank all the people who tested the initial pre-releases and sent me their comments. I’ll take them into account for future versions!

Enjoy!

Updated 02 Nov 2007: Vagalume seems to compile with gregale SDK, so I’ve just put a package for the Nokia 770 in my webpage. If anyone can try it and tell me if it works I’d appreciate it!

Updated 02 Nov 2007:Solmis has confirmed that the package for the Nokia 770 works!

Vagalume: a Last.fm player for the Nokia N800

These days I have been working on Vagalume: a Last.fm player for the Maemo platform (Nokia N800 and N810, though it’s designed to work on a regular PC Gnome desktop as well).

It’s still very small and doesn’t do much (I started it just a few days ago) but since it already works and has the most basic features that a Last.fm player must have I decided to release it.

Don’t expect a UI with lots of colours and shiny buttons in this release: I have been concentrating mostly on the protocol so the UI is stripped to the bare minimum.

Here’s a sample screenshot (taken from the scratchbox):
Vagalume Last.fm player

Features:

  • It plays Last.fm radio streams (using the Last.fm protocol v1.2)
  • You can select any radio (Personal, Neighbours, Loved Tracks …, or any arbitrary URL)
  • It implements the Audioscrobbler Realtime Submission Protocol v1.2, specifically:
    • It sends Now Playing information
    • It scrobbles tracks (so you’ll see what you’ve been listening to in your profile).
  • It is stable, I’m using it everyday and I haven’t experienced hangs or other strange behaviours so far.
  • It’s small (the binary is less than 50K).

What it doesn’t do (yet):

  • It doesn’t have the ability to Love/Ban/Recommend tracks
  • It doesn’t have a nice UI
  • It doesn’t show album covers on the screen
  • …and many other things

You can install Vagalume in your N800 (with Internet Tablet OS 2007) using this package.

I plan to release the source code under the GNU GPL later this week and I’ll probably build packages for Debian and Ubuntu as well, so you can use this program in your PC. And of course there will be packages for the upcoming Internet Tablet OS 2008 (N800 and N810) too.

And that’s all, folks!

Updated 31 Oct 2007: more packages here.

Converting office documents into PDF from the command line

One of the best-known features of the OpenOffice.org suite is its ability to export files into PDF format.

Combined with the ability to read files in many formats such as the ones used in WordPerfect and MS Office, this makes OpenOffice.org a good converter.

Of course there are more free office converters (example: wvWare) but OpenOffice.org is probably the best one due to the large number of formats that is supports and the good quality of its filters.

Its main drawback, however, is that it’s not trivial to convert documents using this suite in batch mode from the command line.

Of all the methods I’ve seen, this is probably the easiest one. Here are the steps:

  1. Start OpenOffice.org:
    $ openoffice "-accept=socket,host=localhost,port=2002;urp;"
    
  2. Download this script.
  3. Use it!
    $ ./ooextract.py --pdf mydocument.odt
    

OpenOffice.org has to be running in background for this script to have effect, so to avoid the annoyance of having the office window laying around in your desktop (or to use it in a machine with no display) you can use Xvfb or a VNC server. Example:

$ Xvfb :1 &
$ DISPLAY=:1 openoffice "-accept=socket,host=localhost,port=2002;urp;"

And that’s it. It would be nice if OpenOffice.org had direct support for conversion from the command line, but meanwhile this method will do the job.

Summer’s last sound

Although it doesn’t officially end until 21 September, the best days of summer are gone, so I’m using the title of a single by British band Disco Inferno to post again after two months of inactivity.

This has been a good summer overall. I went a lot to the beach, attended many concerts, spent a lot of time with my friends and met people who I thought I’d never meet again. But everything has an end (and holidays too) so I’m back again at work.

I’ll seize this post to tell you that I’ve just updated my Last.fm backports for Debian and Ubuntu.

It seems that Last.fm’s protocol has changed recently, and older versions of the client have problems skipping and banning songs. This obviously affects unofficial clients as well.

So although you still can play songs in the old player, now you need at least version 1.3 of the client to do it properly. This is bad news for sarge and dapper users, as Last.fm 1.3 requires a version of Qt too recent for those distributions. Those using etch, edgy or feisty can still benefit from my backports. Users of more recent distros can install the official Debian packages created by John Stamp.

For those interested, the semi-official Debian backports (not compiled by me) are also available at backports.org so sooner or later my work with Last.fm won’t be necessary anymore. I hope that it has been useful during all this time 🙂

Comparing virtualization software performance: QEMU vs UML vs KVM

I have been making some quick tests comparing the performance of some different popular virtualization programs.

This test is far from perfect but I think that at least you can get a basic idea of how all these virtualization techniques perform.

The test
The test was very simple: unpacking the source code of Linux 2.6.21.1 (from a .tar.bz2) and compiling it. I know it’s not an elaborate test but at least it involves both computation and I/O so the results shold be fairly realistic.

All the tools used were the ones that come with Debian 4.0 etch x86 (not x86_64): gcc 4.1, bzip2 1.0.3, etc. The filesystem used was ext3.

The host and the guests used basically the same software.

The host
I first compiled the kernel in the host:

  • Intel Core 2 Duo E6300
  • 1 GB RAM
  • Debian GNU/Linux 4.0 (etch)
  • Linux 2.6.21.1

As the machine has a dual-core processor I compiled the same kernel twice: first with a classic make and then with two simultaneous jobs (‘make -j2‘).

The guests
Besides compiling the kernel in the host I tested the following virtualization software:

  • User-mode Linux 2.6.17.13 in skas0 mode
  • User-mode Linux 2.6.17.13 in skas3 (v9-pre9) mode
  • QEMU 0.8.2
  • QEMU 0.8.2 using KQEMU 1.3.0-pre11
  • KVM 28

The results
Here are the results of the test ordered by total compilation time (best results are shown first).

Mode Time
Native (-j2) 4m 49s
Native 8m 38s
KVM 11m 12s
UML skas3 12m 47s
UML skas0 14m 30s
QEMU + KQEMU 17m 55s
QEMU 2h 13m 04s

Here’s a couple of charts showing the results. Both were constructed using the same data, but the latter omits QEMU as its performance is not comparable to the others. Click on the images to enlarge them.

Chart 1 Chart 2

Conclusions
As expected, native compilation is the best and making use of both cpu cores is really worth it.

KVM performed a bit worse than I expected but it’s still faster than any of the the other ones and reasonably close to native compilation.

Regarding User-mode Linux I was a bit surprised that the skas0 mode did not perform much worse than the skas3 mode. I also expected KQEMU to perform a bit better… unlike KVM, this one is even slower than plain User-mode linux running in skas0 mode (that doesn’t require any kernel module nor patch). Of course they’re very different programs, but you get what I mean.

And last but not least, I was really amazed on how slow is QEMU with no helper module. Of course in this mode (and unlike the other solutions tested) it emulates the CPU so it has to be obviously an order of magnitude slower than the rest, but still in everyday,
interactive usage, it doesn’t feel that slow.

Some extra remarks that I’d like to point out:

  • Native mode is the only one that benefits from parallel compilation. All the other virtualization solutions perform (as expected) a bit slower when compiling with -j2. QEMU and KVM have a -smp flag to emulate a machine with several CPUs but neither one boots properly with that flag enabled.
  • I made some tests comparing QEMU performance with qcow and raw disk images. The results were more or less similar.
  • KQEMU didn’t even boot if I tried to use the -kernel-kqemu flag
  • KVM requires hardware support to work properly. Only recent processors have this kind of functionality (mine has) so it doesn’t make sense to use it if your processor is older.
  • Of course there are many other virtualization programs that I did not use in this test: OpenVZ, Xen, Linux-VServer, VirtualBox, VMWare… I expect OpenVZ and Linux-VServer to perform more or less like native mode, but I’d really like to know about the other ones.

And that’s all!! I hope that this article is useful to anyone and of course comments are welcome.

Back from Primavera Sound 2007

I’ve had a great time in Primavera Sound 2007. It was a really good festival and -despite some flaws this year- very well organised.

Primavera Sound 2007

This time more than 100 artists and bands played in the festival so it’s really hard to summarize everything in a few lines. Some of my favourite concerts were (in no particular order): Wilco, Spiritualized, Billy Bragg, Sonic Youth, The Durutti Column and Malajube.

Lots of pictures and videos are already available out there.

And now, back again at work!

Finally: Last.fm again in Debian!

I’m glad to announce that, after some months of unofficial packages, John Stamp is now the official Debian maintainer of the Last.fm client.

You can find his packages in the official Debian and Ubuntu repositories. So if you’re using the development version of either distribution you can forget about this page and install this software using apt-get.

However, as many people are using etch, feisty, or some previous version of Debian or Ubuntu, I’ll keep compiling backports of John’s packages for these distributions, at least for some time.

You can get them from my home page, as usually.