Loud ramblings of a Software Artisan

Friday 1 May 2009

I'm a switcher

I bit the bullet and installed Fedora 11-BETA on my only machine, to replace openSUSE 11.1. Let's see how it goes. I don't think there will be any big issue.

I need to figure out the package building though.

Saturday 7 June 2008

New packages

Lately I packaged the following in the openSUSE build service:

  • Nemiver 0.5.3. The debugger for GNOME. Just an update over 0.5.2 (that is in openSUSE 11). openSUSE 10.3 and 11
  • Twitux 0.62. A twitter client for GNOME. Took the package for 0.60 from Packman and updated it. openSUSE 11 only as it requires gio.
  • Google Gadgets 0.9.2. The version of Google Gadget for the Free Desktops, released as Free Software under Apache v2 (the right way unlike some other Google stuff). openSUSE 10.3 and 11 with both KDE and GNOME support.

Wednesday 21 May 2008

openSUSE 11.0

I did it this time. I took my ThinkPad Z60t, the one I was not using since last September, and finally installed openSUSE 11 to replace the not yet upgraded Ubuntu. I must say that the installer is slick.... as long as your DVD media is not broken (had to redo it because the first one had errors). Everything is done very fast.

I'll not talk about the multiple imporvement, including zypper, latest GNOME, etc. (I have been running it on the desktop for quite a while).

And I chose KDE 4 as a default desktop.

And now to figure out how to fix this damn keyboard where return and the arrows don't work that well. I guess IBM quality is long gone. Update: This is a keyboard hardware problem

Tuesday 19 February 2008

Moving job...

It is the season apparently. Last week I moved inside Novell from the OOo team to the SLED Desktop team to work on Gnome.

Friday 15 February 2008

Hack week

Long time no blog, mostly because I had nothing to say beside the usual rants.

This week at Novell it is hack week, and I decided to spend a good amount of time to put libopenraw into a better shape, mostly in the area of extracting and decompressing the CFA[1] data (the RAW data).

Recently I got my first major outside contribution for libopenraw as support for Minolta MRW files. Thanks Bradley, you rock!

So far this week I have done:

  • refactored and genericized the unpacking (12 bits to 16) as most RAW files have 12bits per channel and store it without padding in the file ("harder" to decode[2], but less space wasted). This code I wrote it for the Minolta MRW but end up being usefull to DNG and Nikon NEF
  • implemented an API to also obtain the CFA pattern. The CFA pattern describe the organisation of the CFA (Color Filter Array), mostly the order of the colors. Currently it only support RGB and 2 by 2 patterns. This data is required in order to perform the demosaic (ie convert the CFA to obtain a colorful RGB image)
  • enhanced the test suite to checksum the data (in order to check that we didn't break anything) and to check for the CFA pattern.
  • fixed various bugs needed to either go further or to that were actually bugs, like the unpacking that did fail because it was losing the last bytes of the buffer whose size was not multiple of 3.
  • started dealing with the Nikon mess. Nikon files are either uncompressed, packed with some weird padding (discard 8 bits if column % 10 == 9), or compressed in a lossy way. As of right now, only the uncompressed files are supported. Oh there is also a bug where NEF file from the D100 might be marked as compressed when they are not[3].

So far the file very well supported are:

  • Canon CR2 and CRW (not the CRW from the "hacked" firmware)
  • DNG (unless they are compressed, I need to support loading in tiles as I already have the lossless JPEG compression), and only with a number of bits per channel of 12 or 16. Strangely, the Leica M8 files seems to be 8 bits per channel.
  • Nikon NEF uncompressed (D1, D1X, D2X)
  • Minolta MRW (with the exception of the A200 for which I still miss a sample)


[1] Color Filter Array

[2] 12 bits is actually simplier than 14 or 10

[3] apparently some people did choose to compress, but it was very slow on the camera. I have to locate a sample.

Saturday 12 January 2008

Triple bill

Last night I did a triple release.

The openSUSE packages are being built as we speak.

Edit 01/13/08: I released Exempi 1.99.7 to correct the soversion problem mentioned below.

Wednesday 7 November 2007

Exempi 1.99.5

Just released Exempi 1.99.5. This will be that last release before 2.0, unless I'm missing something.

Here is the list of changes for 1.99.5:

  • ABI breakage: soversion is now 3
  • Change: API xmp_files_close(), xmp_files_put_xmp(), xmp_files_free(), xmp_free(), xmp_iterator_free(), xmp_iterator_skip() now return bool.
  • Change: API xmp_get_property_and_bits() renamed xmp_get_property().
  • Change: API xmp_set_property2() renamed xmp_set_property().
  • Bug: all API should check about input and return an error if passed NULL.
  • Bug: more exception handling and refactor set_error() use.
  • Bug: add AC_CONFIG_MACRO_DIR to configure.
  • Bug: Lower requirement for libboost to 1.33.0.
  • New: Doxygen API doc generation.

Get the source - GPG signature If you run openSUSE 10.3, get it from my repository

Friday 19 October 2007


Joe, congrats!

Best wishes to the bride and the groom.

Saturday 6 October 2007

gnome raw thumbnailer

In the steps of hadess, I created the gnome-raw-thumbnailer module in GNOME subversion. This will be in the end the official repository of this little project that I can't leave with.

It is a thumbnailer for camera RAW files using libopenraw.

Current limitations:

  • only handle the format that libopenraw knows about
  • do not (yet) rotate the thumbnails. Will do when I can get the information from libopenraw.

You can get the 0.99 release I did a while back. The SuSE packages are in the build service.

I'd love to this shipped by default.

Thursday 4 October 2007

Super Green!

Green is the dominant color for openSuSE 10.3 that got released today. Congrats to the whole team !

Get it now !

Monday 10 September 2007


Done recently:

  • Read Motoral RAZR with Linux to see what could be done with only USB connectivity. Works great with RAZR V3 and V220. Ended up making a couple of rind tones for my phone. I still hate the software on this phone.
  • Experimented with boost::thread. Looks nice although the documentation seems to be a bit vague. I'll talk more about it when I wrangle it better. I like Boost, even though sometime g++ does not help.
  • Installed openSUSE 10.3 beta3 on the brand new X60 for work. This laptop clearly blast my personal one.
  • Welcome IBM, seriously ! Delighted by Michael's post.
  • Saw my workstation being gutted to replace the whole system board due to a fried USB. The Xeon "dual core"[1] look very small... much smaller than the fan / cooling unit that sits on it.


[1] I forgot the name

Friday 17 August 2007

Exempi 1.99.4

Yet another release of Exempi 1.99.4. This time mostly with external contributions. Add a few new APIs, and GIF support.

I also now provide SuSE Linux package source using SuSE buildservice. I'll see about providing the other packages when my RPM skills gets better. I have heard that there might be packages officially for both Debian and Fedora as Tracker now has XMP support.

All the details on Exempi wiki page

On a side note, I'm looking for a place to host Exempi more permanently. My request at Freedesktop.org is still unanswered... and the only place I have found for hosting Free Software with git is Savannah. Suggestion welcome.