Showing posts from 2011

Help needed for Debian and Ubuntu

If you read any of my previous blog entries, you must be now familiar with this 'express installation' concept we have in Boxes. Its pretty neat actually, you just set a few options at the beginning and then you can leave Boxes (or your machine) and when you are back, everything is setup for you automatically in a new box. I have invested a lot of time/efforts on this already and will be spending a lot more time in future as well but I am just one man so can not possibly cover all operating systems out there. That is why I am asking for help from anyone who will be interested in adding express installation support for Ubuntu and Debian while I focus on Fedora and Windows variants. Oh and if you are interested in adding support for some other distribution/OS, that contribution will also be more than welcomed. In any case, happy hacking!

Another awesome release of Boxes

Yesterday we rolled out the second release of Boxes for upcoming GNOME 3.3.3. There are many fixes/improvements in this release to list them all here but the most significant ones in my opinion are: A nicer UI for deletion of Boxes designed for protecting the user from accidental deletion of boxes. Here is a video demo of it in action. Special handling of 'live' and unknown media: Quick launch of a temporary box for it, which is made permanent automatically (only) if anything is installed on the box by the media. Here is a video demo of this behaviour in action. Express installation for Windows XP now works, thanks to important clues provided by Lucas Meneghel Rodrigues. Don't believe me? I have video footage that proves it. UI for setting user and administrator password and in case of older Windows, ability to set product key as part preparation for express installation. Please check out the videos above for demo of this feature in action. Apart from change

Behold the Boxes!

Dear readers! If you recall, in a blog post not so long ago I introduced you to the wonderful virtual world I now live in.  Now around the same time I wrote that post, some of the GNOME designers and developers (myself included) felt the need for having a UI as an integral part of GNOME that lets users easily manage (create and destroy) virtual machines and at the same time lets them connect to remote machines. Two of our awesome designers, Jon McCann and Jakub Steiner ) started creating design for this UI. We (as in Jon McCann) named it 'Boxes' as its something that deals boxes. At the same time, we (me, Marc-Andre and Christophe ) kept working on the foundations for Boxes, mainly in the form of lots of improvements to libvirt, libvirt-glib, libosinfo and spice-gtk. About less than a month ago we started implementing the design when the design stabilized a bit. The implementation actually started as a "proof of concept" from Marc-Andre o

libvirt-glib 0.0.1 is out!

The first public release of libvirt-glib is out! libvirt-glib wraps libvirt to provide a high-level object-oriented API better suited for glib-based applications. Daniel wrote nice release notes so I'll save myself some time and quote it for more details: I am pleased to announce the first release of the libvirt-glib package, version 0.0.1 is now available from The packages are GPG signed with Key ID: 15104FDF Daniel P. Berrange Key fingerprint: DAF3 A6FD B26B 6291 2D0E 8E3F BE86 EBB4 1510 4FDF libvirt-glib comprises three distinct libraries: - libvirt-glib - Integrate with the GLib event loop and error handling - libvirt-gconfig - Representation of libvirt XML documents as GObjects - libvirt-gobject - Mapping of libvirt APIs into the GObject type system As of this release only the event loop integration and some basic APIs for managing domains are provided. The representation of XML as GObjects is a major work

Introducing libosinfo

The first release of libosinfo is out! What is libosinfo? libosinfo is a GObject based library API for managing information about operating systems, hypervisors and the (virtual) hardware devices they can support. It includes a database containing device metadata and provides APIs to match/identify optimal devices for deploying an operating system on a hypervisor. Via the magic of GObject Introspection, the API is available in all common programming languages with demos for javascript (GJS/Seed) and python (PyGObject). Also provided are Vala bindings. libosinfo is Free Software and licenced under LGPLv2+. Dependencies Required: gobject-2.0 gio-2.0 libxml-2.0 Optional: gobject-introspection Vala (build-time only) Download releases/l/i/libosinfo/ Homepage libosinfo/

GNOME 3.2 party in Helsinki!

The party turned out to be a lot more successful than I thought. I thought only a few people will show-up since there aren't that many gnomies around that I know of. We had lots of nice discussions on various topics especially the future of GNOME and Free SW in general. One of the participants was very interested in having some way to write UIs that work for both big screens and tiny screen of his Openmoko mobile phone, which turned out to be quite an interesting discussion. Taking the EXOPC running Fedora 16 with me was indeed a good idea since almost every participant wanted to see how it works. Although I had to keep telling/reminding everyone that on-screen-keyboard in gnome-shell is not exactly finished, I noticed that people were pretty much already able to use GNOME 3.2 with a touch-only interface. The biggest issue people encountered wasn't the OSK though but the bad touch-screen on the tablet. Some pictures from the event:

Helsinki GNOME 3.2 release party

If you happen to be in Helsinki tomorrow (Wednesday) evening, don't forget to drop-by at Kaisla to celebrate the awesome GNOME 3.2 release with us. Not only you will get to hang-out and have beers with other cool people in town but also get to try out GNOME 3.2 on a tablet. If you have never been to Kaisla before, this is one bar you must visit if you are interested in beers as they have a rather decent collection of beers from different countries. See you tomorrow at 8pm there!

Got a red hat? Check!

I finally got my (long awaited) hat! Now back to work...

See you in Berlin!

I have a talk where I'll attempt to brain-wash educate the masses about the awesomeness of Vala language. If you are even slightly interested, please do attend. I also have arranged a BoF together with KDE's Friedrich Kossebau to discuss about the possibility of SSDP (discovery protocol used by UPnP) as a system service. See you in Berlin soon!

Slightly more on virtual world..

Forgot to mention in my last blog post that SPICE is not just more efficient at network bandwidth utilization but is also much more faster/responsive. Also, Jon Nordby pointed out that the screenshots of virt-manager I copied from virt-manager website are several years outdated. Here is how the main UI looks like now a days. P.S. I was going to inline this screenshot but is not letting me do that. :(

Welcome to the virtual world!

About two months ago I informed  the followers of this blog that I will now be working on SPICE project  for Red Hat . Judging from the questions I was asked after that, I realized that not many people know about SPICE so I thought I write at least one blog entry dedicated to explaining what SPICE is all about. Before I get to SPICE itself, let me first introduce you to the world SPICE lives in. Virtualization and Virtual Machines (VMs) For some reason, I feel that I should leave the definitions to wikipedia  and only quote it so that is what I am going to do: " Virtualization, in computing, is the creation of a virtual (rather than actual) version of something, such as a hardware platform, operating system, a storage device or network resources. " " A virtual machine (VM) is a "completely isolated operating system installation within your normal operating system".Today, this is implemented by either software emulation or hardware virtualization ". V

Release logs are important!

Turns out that not many Free Software maintainers follow the practice of writing proper release logs targetted for packagers/end-users. To justify their laziness, they come-up with lame excuses like "Oh, the user never sees the release log" etc and at the very most copy&paste the (developer oriented) VCS changelog since the last release. Here is how it actually affects a user: Now if you click on the URL provided, you will be taken to a page where there is a lot of information but the one you are looking for: What exactly changed? In this particular case, its just an bugfix release but many times new features are added and users can't know that unless you put that nicely in your release log. So please stop justifying your laziness and take the efforts to write the release log if you are a maintainer of a Free Software project. OTOH, if you are a downstream packager, please copy or link to the upstream release log in your package's changelog that upstream main

Canon Pixma MP560 printer and Linux

When I bought this printer, I failed to find any Linux drivers for it. I must admit I didn't try hard to find them either since I was very much in a hurry at that time. Since then I had just assumed that drivers for Linux just don't exist. But today I decided to search/try harder to get it working against my fedora laptop. The result was that I found the drivers very easily and after several minutes of efforts, I finally got it working! So I thought it blog about it and provide some pointers so process gets easier for others: Ensure you have 'DefaultLanguage en_GB' line in your /etc/cups/cupsd.conf and your firewall isn't blocking Port 8611 for TCP/UDP. Get the drivers from here . The drivers are available as rpm and deb packages. Once you have the packages downloaded and installed on your system, find out the mac address of your printer somehow. The method I used was to watch for packets in wireshark and pinging the broadcast address of the network. Once

Rygel 0.10 is here!

We just made our first stable releases  of Rygel after many months of active development. I used to post a blog entry after each release with the full-log but I stopped doing that because some people didn't like it going to planet GNOME and I thought chances are high that other viewer might also be getting annoyed by it. Anways, I would like to highlight some of the changes since 0.8.3: Lots of improvements to our interoperability with other DLNA devices in the market. Many optimizations to search, browse and streaming. More efficient and correct use of Tracker APIs. Richer media hierarchies. Simplified transcoding by use of new 'encodebin' GStreamer element. Preferences UI has been trimmed down to only provide a few options that users actually need. The plan is for this UI to disappear completely in GNOME 3.2 in favor of better (more integrated with rest of the desktop) alternatives. More configurability (through config files, commandline and environment) for p

Future Perfect

Ever since I blogged about me looking for opportunities outside Nokia , I was contacted by quite some companies. Some of them ended-up giving me nice offers but in the end the offer that stood out amongst all was from Red Hat . So last evening, I accepted their offer to join the awesome Spice team. The reasons I chose Red Hat over others were: Red Hat being undoubtedly the leader in Open Source technologies for more than a decade has always been on my 'awesome places to work at some day' list. The Spice project that I'm being hired to work on is simply awesome. They offer good working conditions. I'll be staying in Finland and most likely working from home (unless I'm asked to work at the Espoo office). I will be officially joining Red Hat on May 2 and my last day at Nokia will be on April 21. Before you ask, nothing disastrous is going to happen to GUPnP and Rygel . Of course I won't be spending as many hours on these projects as now but keeping in m

Yet another git history visualization

Here is a decade of GStreamer hacking squeezed into 5 minute visualization using gource. I used the following commandline to create this: gource -1280x720 -s 0.05 --stop-at-end --hide filenames --highlight-all-users \ --file-filter po -a 5 --camera-mode track --user-image-dir ~/hackergotchies \ --disable-progress --disable-bloom --output-ppm-stream - --output-framerate 30 \ | gst-launch-0.10 fdsrc fd=0 ! 'image/ppm,width=1280,height=720,framerate=(fraction)30/1' \ ! ffdec_ppm ! ffmpegcolorspace ! x264enc speed-preset=10 ! avimux ! \ filesink location=gst-dev-history.avi

Rygel Development History Visualization (part II)

Here is yet another version thats twice slower (and therefore longer), has the gloom off and filenames disabled and is in H264+AVI format. Oh and this time I managed to use GStreamer to record the video, rather than ffmpeg. In case anyone is interested, I used this commandline to create it: gource -1280x720 -s 0.1 --stop-at-end --hide filenames \ --highlight-all-users --file-filter po -a 5 --camera-mode track \ --user-image-dir ~/hackergotchies --disable-progress \ --disable-bloom --output-ppm-stream - |gst-launch-0.10 fdsrc fd=0 \ ! 'image/ppm,width=1280,height=720,framerate=(fraction)60/1' ! \ ffdec_ppm ! ffmpegcolorspace ! x264enc speed-preset=10 ! \ avimux ! filesink location=rygel-dev-history.avi

Rygel Development History Visualization

I recently discovered this awesome tool called, gource . Using that I created a visualization of rygel 's development history and uploaded here . Note that translation commits are missing. That doesn't mean I do not acknowledge or value those contributions but I had to exclude them because otherwise the screen was too crowded for viewer to actually see anything at all.


Now that my company has decided to join forces with Microsoft, I am no longer certain of my future at Nokia. Although I would really like to stay until our MeeGo product is out at least since I hate leaving things unfinished but I don't see any harm in starting to look for other opportunities already. So like my colleague and friend, Alberto I have put my updated CV here . Feel free to send job offers or suggest any good open job positions to my inbox .


Not only that, I am also delivering a talk on one of my favorite programming languages, Vala . My other favorite language is always nicely presented by his awesomeness, Andy Wingo so I don't need to talk about that. :) Yes, I'm not doing a rygel or gupnp talk this time. My apologies if that disappoints anyone. :)

Rygel needs your help!

While it is a well known fact that Rygel is as awesome as this new Intrepid class ship of mine in Star Trek Online unfortunately its preferences UI looks as ugly as this Apart from being ugly, it also doesn't really integrate well in GNOME as there is already a UI that lets you easily specify your file sharing preferences: gnome-user-share. I had some discussions with Bastien on how to fix this and we had agreed on a plan to kill this UI while merging the relevant parts of it into gnome-user-share in July 2010: Rygel: always starts as part of the session. times-out and exits if there is nothing to share. (MediaExport backend) doesn't share anything by default. gnome-user-share uses the MediaExport's DBus API to add/remove folders. While the Rygel parts are mostly in place, Bastien (being a very busy developer) didn't manage to get any time to do the gnome-user-share part and neither did I. :( GNOME 3.0 is happening very soon and Rygel might not get i