Sunday, April 29 2012

A Linux user's Cybook experience

EDIT Sun April 29 2012: It seems I failed at typing the article properly and the end was missing... Just fixed it.

A few days ago I received my new Cybook Odyssey, so I thought I'd share my impressions.

First of all, I've always been a bit worried about these devices, given the precedents set by other vendors: DRM, lock-in, remote access to your device,...

Reviews like Mairin's were making me anxious, and it took me a very long time to decide on buying an ebook reader.

What convinced me to go for the Cybook Odyssey was the following (in no particular order):

  • e-Ink: I wanted something with a long battery (the specs sa 25000 pages turned) and which would be comfortable to read.
  • the device is full UMS: plug it into your computer's USB port, and it appears as an external hard-drive. No stupid application I'm forced to use, I can just drag and drop ebooks with my file browser.
  • somewhat related to the previous point, I don't have to buy ebooks from a certain shop. I can just download ebooks from the Gutenberg Project or I can also buy them in any shop I want, from my computer, or directly from the Odyssey
  • unless I choose to lock myself in, there's no stupid DRM involved. The ebooks I legally obtained are stored on the ebook reader and I don't have to input my credit card number or call the hotline before I can read them.
  • when I asked the support whether I would have any trouble connecting it to my laptop running Linux, they actually knew what I was talking about (this has been very rare in my experience with helpdesks), and their answer was that the only thing I would lose was support for buying books with DRM since that requires some crasoftware from Adobe. I mean, I was so disappointed. :-P
  • updates are transparent: just connect the Odyssey to a Wifi network and if an update is available, you'll be automatically asked whether you want to upgrade. Again, no need to use iTunes or something like that. I know, you don't need iTunes anymore to update your iOS device, but it took time. The point is that Bookeen chose to do things right, right from the start.
  • as a bonus, it comes loaded with a bit more than 100 classical (public domain) books in French, English, German, Italian and Spanish, so you can start reading right away
  • They advertise their screens as having a « High Speed Ink System » that they developed themselves. They answered my request for a demo with this Youtube video, if you want to judge by yourselves.

    I can only compare with the Kindle I had in hands for about 15 minutes, 2 years ago, but the Odyssey does feel snappy enough, and the screen doesn't completely blink to black when changing pages, so reading on it is quite comfortable.

    All in all, I'm really satisfied. I wholeheartedly recommend this ebook reader to anyone.

    Now to read some more!

Tuesday, May 10 2011

[Guest article] Now ready to promote my second favorite project.

Note: This article is from Nounours, a good friend of mine. He doesn't have his own blog (yet?), so I'm letting him use mine.

For quite some time now, I had this beautiful Tshirt to promote my favorite FOSS project in the whole world, Fedora:

My beautiful Fedora Tshirt

Well, thanks to Mathieu's awesome girlfriend, I now have this gorgeous tshirt to promote my second favorite project:

My gorgeous GNOME Tshirt

Now I'm all set for the FOSS events in Hong-Kong!

Thanks for the post Nounours, feel free to use my blog again any time you want. :-)

Wednesday, February 16 2011

A smarter way of importing a new package in Fedora?

tl;dr: This post proposes a new way of importing a new package in the Fedora dist-git tree which allows to also import the whole back and forth changes made during the review request.

The recommended way to import a new package in Fedora is to do the following:

  1. build an SRPM and submit that along with the spec file as a review request
  2. wait for comments from a reviewer
  3. fix the spec/srpm as per the reviewers comments
  4. repeat steps 2 and 3 until the package gets approved
  5. ask for the dist-git module to be created
  6. clone the dist-git moodule once obtained:
    $ fedpkg clone $module
  7. import the approved srpm in the dist-git module:
    $ fedpkg import $module-x.x.x.src.rpm
    $ git commit -m "Initial import (#nnnnnn)."
  8. push, build, submit an update,...

However, all the comment/fix process as part of the review is only available in one place: Bugzilla. The package effectively starts its life in Fedora at the moment the srpm is imported.

Wouldn't it be nice to also keep all the history from the review process as part of the Git history of the module? Fortunately that's possible thanks to Git. :-)

First, create your module git tree:

$ mkdir $module
$ cd $module
$ git init

Here comes the trick. Once you will be working with the Fedora Git, there will be a master branch (for Rawhide). To avoid any future pain, let's rename the current branch as tmpmaster:

$ sed -i 's/master/tmpmaster/' .git/HEAD

Now is time for the second trick: to ease the rest of the process, the first commit must include the same changes as the first commit in the Fedora repository:

$ touch sources .gitignore
$ git add sources .gitignore
$ git commit -m "Initial setup of the local repo"

You can now start working on your new package as you would normally do:

  • write your spec file
  • add some patches
  • make the required changes as part of the review process
  • commit your changes all the way

Note that you must not commit the source archive, since it will be added to the lookaside cache later on.

Hopefully, at some point, the package will be approved and the Fedora Git module created. Instead of starting at step 6 above, let's do something a bit smarter.

First, make the Fedora remote tree available to your local tree:

$ git remote add origin ssh://$$module
$ git fetch origin

Then apply your work to the Fedora "master" branch:

$ git checkout tmpmaster
$ git branch master -t origin/master
$ git rebase master

Finally, switch to the master branch and fast-forward it to the state of the tmpmaster branch:

$ git checkout master
$ git merge tmpmaster

Check that everything is fine with your favorite Git visualization tool, and when you're ready, just remove the tmpmaster branch:

$ git branch -D tmpmaster

At this point, everything will look like you had been working inside the Fedora Git tree since the beginning, as if it had been creating before the review. You get to keep in one place the history of your package, including the history of its life before entering Fedora. :)

Finally just upload your sources with fedpkg, build your package on Koji, and more generally just go on working on your package as you would normally do after a fedpkg clone (that was step 7 above).

What would really be awesome is if fedpkg could grow the capability to add new remotes and do this trick by itself. Hmmm, I wonder...

Saturday, January 15 2011

To the conquest of the East

I talked about my moving earlier, and since a few hours, I'm finally in Hong-Kong.

If there are some Fedoristas over here, and if you want to meet around a table (with drinks on it, of course ;)), just leave a comment or drop me an email.

Thursday, December 16 2010

Build highly scalable applications with PyF

A few days ago, we released PyF 2.0.

- Yeah, that's nice and all, but what's PyF anyway?

Right, I should have probably started with that. PyF is a pure Python framework for writing highly scalable data processing applications. PyF is Free software, distributed under the terms of the MIT license.

- Scalable, you say? How scalable exactly?

Well, PyF is based on flow programming. That means that instead of processing « a certain quantity of data », we process a « flow » of data, so that at any point, we only ever have one object in memory, no matter how much data we will process in total. That's right, mining your huge customer database and generating reports with PyF will not take your servers down to their knees.

For the Python devs in here, we use Python generators everywhere. You can see it this way: each unit of the whole processing chain takes a generator as input and yields values as soon as they were processed. We could even handle a never ending flow of input data and keep processing them, yielding each one after the other!

- Wow, that seems cool! How do I use it?

It depends on what you want to do. PyF is composed of several layers. At the low level, you have only the basic subset of core functions that will help you write flow-based applications.

At the highest level though, you will find a full-blown web application that allows you to graphically design your processing chain (we call it a tube) by dragging and dropping processing units (we call them components) and chaining them, output to input. We have several default generic components that can be used to do all sorts of processing and reporting already, and it is pretty easy to write your own if necessary (we will gladly help in any case). We even have a built-in scheduler so you can specify when to automatically launch your processes!

We wrote a simple tutorial to get PyF, and a series of tutorials to actually make your first steps.

- OK, you got me hooked up. Where can I find more informations?

I'm glad you asked. :-)

The project home page is at

We already have some documentation which should be more than enough to get you started, although we are working on making it more comprehensive.

If you have any question, come hang out on our mailing-list or our IRC channel:

PyF is still a very young project, but we have been dogfooding it at work from day 1. We are very friendly and welcoming, so don't be afraid and join us, report bugs, submit patches, or simply use it.

On a more personal note, PyF has been the first big FOSS project I have worked on during $dayjob. I'm about to change job and life pretty soon, but don't worry, it's carried by some dedicated and much more talented people (two of them being core contributors to TurboGears). I will try to stay close to it since I grew quite attached to the project, and given how useful it can be I will no doubt be needing it for a future job anyway. :-)

Sunday, December 12 2010

Change I can't believe in

English version

A few days ago, I received a confirmation from the Hong Kong Department of Immigration: my request for a working visa has been accepted. \o/

This means that starting January 17th 2011, I will be working and living in Hong Kong.

I still don't realize what has happened to me. For those wondering, I do have an awesome and FOSS-related job waiting for me over there, but more on that later.

Consider this blog post my introduction to the Chinese community. I'm Mathieu (aka bochecha), Fedora ambassador, ambassador mentor and package maintainer from France (at least until next month :D). I have also been serving on the board of the Fedora-Fr NPO for the last 2 years.

I hope I can be of use to the Fedora Chinese community once I get there.

(And no, I won't dare posting a Chinese version since I can't speak, read or write it yet. :P)

Version française

Il y a quelques jours que j'ai enfin reçu une confirmation du département d'immigration de Hong Kong : ma demande de visa a été acceptée. \o/

Du coup, à partir du 17 janvier 2011, je travaillerai et vivrai à Hong Kong.

J'avoue, j'ai un peu de mal à réaliser ce qui m'arrive. Pour ceux qui se poseraient la question, j'ai effectivement un boulot génial et en rapport avec le logiciel libre qui m'attend là-bas. Je donnerai éventuellement plus de détails à ce sujet en temps voulu.

En guise d'introduction à la communauté Chinoise (sait-on jamais, certains d'entre vous savent peut-être lire le français), je m'appelle Mathieu (ou bochecha), je suis ambassadeur Fedora, mentor pour les nouveaux ambassadeurs et packager, en France jusqu'au mois prochain. J'ai aussi fait partie du bureau de l'association Fedora-Fr ces 2 dernières années.

J'attends avec impatience de me mettre au service de la communauté chinoise une fois sur place !

Ceci dit, cela signifie aussi qu'à la fin de mon mandat, je quitterai l'association francophone. Je préfère en effet (lâchement) abandonner mes responsabilités à quelqu'un qui sera sur place et pourra donc se consacrer corps et âme à celle-ci. J'essaierai néanmoins de continuer à trainer sur IRC, voire (si je suis pris par une soudaine motivation) de continuer à blogguer en français sur le Planet.

Mince, maintenant je finis l'article sur une note pas super joyeuse... Euh... Si vous êtes sur Paris, je vais essayer d'organiser au moins un Fedora | Paris avant de partir, histoire de pouvoir payer ma tournée. (ouf, c'est mieux :))

Thursday, September 16 2010


I should probably have blogged this earlier, but:

I'm going to FUDCon

I'm already in Zurich by the way, and I'll be meeting with Shaiton tonight. Drop me a line if you want to go have a drink.

Sunday, June 13 2010

Wrap-up des Rencontres Fedora 13 à Paris

Le 5 juin 2010 avaient lieu les Rencontres Fedora 13 à la Cité des Sciences pour fêter la sortie de Fedora 13. Cet événement s'est tenu dans le cadre du Premier Samedi du Libre. [Comment ça je suis à la bourre ?]

Nous avons ainsi pu accueillir 150 visiteurs venus pour installer Fedora, résoudre leurs problèmes, assister aux conférences et ateliers ou tout simplement discuter avec d'autres membres de la communauté.

Une conférence sur Zarafa a eu lieu, ainsi que deux ateliers sur l'administration Linux et sur LaTeX. Les slides sont disponibles sur la page de l'événement.

La bonne surprise est venue de Firas qui a filmé l'événement, la conférence sur Zarafa et a même réalisé une interview. [dans laquelle j'ai surement dit plein de conneries, flamewars welcome :-) ]

Merci à ceux d'entre vous qui étaient présents, et à bientôt pour les Rencontres Fedora 14 ! [ou le prochain premier samedi]

Tuesday, June 1 2010

De retour de l'Ubuntu-Party 10.04

Ce week-end, j'étais à l'Ubuntu-Party 10.04 à la Cité des Sciences.

J'y donnais une conférence intitulée « La diversité des OS libres : diviser pour mieux régner », et j'y ai passé le reste des deux jours à donner un coup de main aux amis marrons aubergines. En particulier, j'ai passé pas mal de temps à accueillir les visiteurs et tenir la boutique Ubuntu-Fr.

Mon bilan des deux jours ? Il tient en un mot : « wow ». Ubuntu-Fr fait vraiment un boulot énorme, jugez plutôt :

  • une centaine de bénévoles
  • un cuisinier (l'un des bénévoles) ayant préparé les repas du midi pour tout le staff
  • une demi douzaine d'autres groupes invités (l'April, In Libro Veritas, JeuxLinux, la Quadrature, Mozilla, OxyRadio, LProd, ...)
  • un studio de radio ad-hoc couvrant l'événement en direct
  • 17 conférences, 7 ateliers et 4 cours
  • une tombola [1]
  • 3000 visiteurs environs [2]
  • 2 Fedoristas :-)

Un grand bravo donc à Olive, YoBoY, Didrocks, Kinouchou, Zzzzzzz (j'espère avoir mis le bon nombre de « z »), VX, Annie, le « cuisto en kilt » (désolé, je suis nul pour les prénoms :-/) et plus généralement à toute la communauté francophone d'Ubuntu (si on a discuté pendant les deux jours et que je ne vous ai pas cité, envoyez-moi des flammes en commentaire :-)). De même, un grand merci à David, Malik et Thomas de la Cité des Sciences pour leur participation. La présence d'interlocuteurs de la Cité des Sciences a souvent été un manque cruel lors des événements du libre au Carrefour Numérique, et le succès de cette Ubuntu-Party leur est à mon avis en partie du.

C'était ma première Ubuntu-Party, mais certainement pas ma dernière.

En ce qui concerne Fedora, je ne peux que souhaiter que l'on rencontre un succès comparable. La communauté francophone autour de Fedora est particulièrement active sur d'autres aspects (forum, packaging, traduction, rédaction de documentation,...), quand est-ce qu'on s'y met sérieusement ? :-)

[1] J'ai gagné le deuxième lot : un Linutop2. Moi je dis, ça sent la magouille :-P

[2] Le chiffre est celui donné par la Cité des Sciences, dont le mode de comptage est... particulier. En effet, à certains intervalles de temps, une personne de la Cité des Sciences passe dans toutes les salles et ajoute le nombre de personnes au compte précédent. Le risque de compter plusieurs fois une même personne est donc important, mais il est aussi tout à fait possible de rater des visiteurs. De plus, ce mode de comptage est utilisé pour tous les événements ayant lieu là-bas. Si le compte en lui-même n'est donc pas très fiable, la comparaison entre différents événements se tient tout à fait.

Friday, May 14 2010

Packaging Unity (part 1)

Ubuntu recently announced Unity, an attempt at creating a new user experience for netbooks.

Some concepts made me think about Gnome-Shell. Being a huge fan of the latter, I wanted to give a try to Unity, and so I started to package it for Fedora 13.

Didier Roche, one of the Canonical desktop team developers, gave me some hints about this. Unity is composed of several packages, mainly:

  • wncksync: A library and dbus daemon that matches .desktop files to window xid's and the reverse.
  • liblauncher: A library to build launchers
  • dbusmodel: No idea what that is yet, as the description is rather terse
  • Unity: The netbook specialized user experience

However, I'll probably have to build most of the packages in the Unity PPA, as well as some needed libraries that might not be included in Fedora yet.

Figuring out in which order to build those took some trial and error, and the first bad news came when trying to build wncksync: it requires a patched GLib. Then came the happy time of DSO linking failures for both wncksync and liblauncher.

Because of the GLib patch, I'll probably not be able to push those packages to the Fedora repositories, so I'll be uploading them into a (hopefully temporary) Fedorapeople repository.

A lot is still missing, but I have the first 3 components: GLib, wncksync and liblauncher (only available as source and x86_64 RPMs, i386 will follow).

No repository configuration yet, as there's nothing ot test anyway. I'll post more updates as I get to build other packages.

Feedback is welcome on the quality of the packages though, so that any future review is made easier. ;-)

- page 3 of 6 -