Looking for a job in UK

Hello Community!

Sorry to invade planets with a classified…

After numerous random events, I moved to UK. I am now looking for a job. If you think you can help with my search, please have a look at my CV. Please contact me if anything comes to your mind!

By the way, I love UK websites. They’re cleaner, lighter & more intuitive than most of the French ones.

Quick update: Thanks everyone! Opportunities you helped me find were all very interesting. Decision was harsh. I finally went with Red Hat and will start there on Monday as a Technical Support Engineer.

Cleanup your Google Chrome/Chromium history

Just wanted to share this with you.

#!/bin/zsh
if [ a$(uname) = aDarwin ]
  then dbfile="$HOME/Library/Application Support/Google/Chrome/Default/History"
  else dbfile="$HOME/.chromium/???"; fi
blacklistfile=$HOME/.config/history-blacklist

if [ ! -f $dbfile ]
  then echo "oops! history db '$dbfile' not found!";
  exit -1; fi
if [ ! -f $blacklistfile ]
  then echo "oops! blacklist not found! please create '$blacklistfile' (see doc).";
  exit -2; fi
filter=""
while read i; do filter="\n  url like '$i' or ${filter}"; done < $blacklistfile
request="delete from urls where ${filter% or };"

echo -n "Do you want to execute:\n'${request}'\nin your chrome history db? [y/N] "
read answer; case $answer in
  y|Y) echo $request | sqlite3 $dbfile; return $?;;
  *) echo "mission abort, pu\$\$y!";; esac

And in $HOME/.config/history-blacklist, use something like:

%4chan.org%
%4chanarchive.org%
%piratebay.org%
%youtube.com%

You need to close Chromium/Chrome before running this script (else you’ll hit a permanent db lock).

Distributing packages

Distributing data can be an issue in FLOSS projects. One day, some IPv6-P2P-multicast-awesome-featured technology will solve all our problems. Internet will be made of undistinguished nodes, and the concept of client and server will disappear. Oops, that’s not my point (for French readers)!

ftp.archlinux.org, the default mirror for Arch, uses too much bandwidth. Even if the installer proposes to change this, it seems that a awful lot of persons don’t use it. That’s why devs chose to limit each connection to 50kbytes/s on it.

I wrote two small PHP scripts to allow geographic, cached distribution of clients to other mirrors.

On the first connection of an IP, it uses GeoIP to choose its “nearest” mirror (random choice in the country mirrors list), and stores it in a memcached (for up to 1 month). Caching is necessary to avoid switching too often from a mirror to another, which might be serving different versions.

It gets the per-country mirrors lists through an annotated /etc/pacman.d/mirrorlist. For now we have to maintain, if I understood correctly, rsync, website and pacman databases, but are moving to a centralized database (maintained through django), so this should change later.

I didn’t get many opinions for now; feel free to react in comments! I’d also love to hear about other distros policy, and/or get contributions.

P.S.: That’s my first post since I got promoted as a dev in Arch Linux. Thanks to the whole team for letting me in. I don’t have much time these weeks, but should get a lot done next week.

Internet mobile « illimité » en 3G, pas cher, sans engagement !

OrangeVous aussi, bénéficiez d’un accès à Internet partout en France pour pas cher ! Bien sûr, l’« illimité » de mon titre est à prendre au sens opérateur : pas d’interruption stricte du service en cas de dépassement d’un quota. Par contre, Orange vous interdit la voix sur IP, le partage de documents de pair à pair, se réserve le droit de brider (encore plus) la connexion si vous l’utilisez trop, y tutti quanti. Il faudra que je vérifie personnellement pour ce contrat précis, mais le contraire m’étonnerait.

Vous êtes prêts à braver le géant de la télécommunication en utilisant la connexion sur un écran autre que celui d’un téléphone ? Bravo. Après tout, que l’écran fasse 2,5 ou 10 pouces ne les regarde absolument pas.

Rendez-vous donc en agence, achetez une clef USB 3G (maintenant gérée facilement sous Arch Linux, j’y reviendrai très prochainement), une Mobicarte, puis souscrivez à l’option internet max à 9 euros par mois et ça glisse (hors CGV) !

Le coût initial est alors de 69 euros pour la clef, sur lesquels 30 euros sont remboursés jusqu’au 12 novembre, auxquels s’ajoutent 30 euros pour la mobicarte (ou 35 euros avec un mobile des moins chers). Les frais mensuels s’élèvent dès lors à 10 euros par mois (prix des recharges valables 15 jours à acheter peu avant chaque échéance). La reconduction est tacite, mais aucun engagement.

Apparemment, le débit est actuellement bridé à 50 ko/s (observé chez yam). Décevant pour une 3G au débit maximal théorique de 3,6mbit/s (avec ce dongle), beaucoup moins en EDGE ou pire, GPRS… Je vous en dirais plus quand j’aurais moi-même investi.

Pour un étudiant à fort besoin de mobilité (programme d’échange international, stage, etc.), ce peut être une solution intéressante pour relever son courrier, se documenter, etc.

Je ne vais pas vous énumérer davantage les utilisations possibles d’Internet, d’autant qu’il serait préférable de s’en tenir à ce genre de « classiques » peu consommateurs de bande passante et proches de ce qui se fait sur un quelconque mobile. Reste à déterminer la tolérance d’Orange vis-à-vis de ce détournement, pour éventuellement pouvoir se faire plus plaisir…

Je ne suis bien entendu pas responsable des conséquences que pourrait avoir la lecture de ce billet, désobéissance civique, vandalisme et mensonges relatif au gateau compris.

100 packages!

Image representing Boštjan Špetič as depicted ...

As I don’t write a lot on this blog, I thought a good excuse for a new post could be this new step: by counting both unsupported and [community] packages, I have now 100 packages in Arch Linux! It’s not simply a symbolic number: I won’t be able to see more packages in one page on AUR! It is a real pleasure to contribute to this great distribution, even if I started working on Fedora for some of my extravagant expectations. Something else: I started using Zemanta. I’m pretty proud to know one of the founders of Zemanta Ltd., Boštjan Špetič: I worked with the kiberpipa crew on the OpenOffice.org conferences video streaming and he seemed a very competent and available person. I might write on Zemanta another time, but for now, I can see both huge benefits and a few disapointments.

Soirée BDE Arsh

_IGP3928Après quelques tentatives avec les diaporamas Flash de flickr, je reviens à quelque chose de plus propre.

Voici donc les photos d’une soirée ma foi fort sympathique.

Premier article…

Et voici une nouvelle section, « Politique universitaire », qui devrait rassembler des articles liés à mes activités d’élu CEVU et VPE à l’UJF. Cet outil devrait, au moins temporairement, me permettre d’aller vers plus de transparence dans mes fonctions. Il s’agit d’un espace officieux, en attendant une refonte du site web de l’UJF telle que discutée ce soir.

Tout d’abord, j’ai obtenu l’accord du Conseil des Élus Étudiants pour mettre en place un groupe spécifique aux élus étudiants de conseils centraux et conseils de composantes sur le Bureau Virtuel. Il nous permettra d’échanger et de nous organiser à travers une liste de discussion, et de partager les documents nécessaires à la réalisation de nos nombreuses ambitions. Malheureusement, le Bureau Virtuel est indisponible cette nuit, ce qui met en évidence le problème de stabilité évoqué lors de notre réunion et retarde la mise à disposition du parfait distribué par la CEVPU. Cependant, aucune autre plateforme n’est mise à notre disposition actuellement et il me paraitrait inapproprié de dépendre d’un fournisseur de service externe, entre autres pour des questions de gouvernance.

J’en profite pour rappeler aux élus sur liste Interasso qu’ils ne sont pas « les élus Interasso » mais des élus UJF, particulièrement dans une véritable démarche de travail commun. De plus, ils ont brillé par leur absence dans un Conseil mis en place par Jérôme Guyony, alors VPE élu sur leurs listes et membre de leur organisation. J’espère que leur apparente politique d’absentéisme, si elle existe réellement, disparaîtra dès la rentrée…

Il est également possible que je profite de cet espace pour mettre en avant les projets auxquels je suis amené à participer en tant que bénévole à EVE. J’ai récemment démissionné de mes fonctions de responsable de commission en raison des conflits d’intérêts avec mes nouvelles attributions, puisque je siège notamment au CA de cette association. Cependant, je souhaite prolonger mon investissement dans cette structure unique en France, et qui semble faire des émules ces derniers temps…

Au plaisir d’un prochain article.

LXNM is not Debian-specific anymore

LXNM, the LXDE network manager, had Debian-specific scripts. That’s why I did not package it in Archlinux. As I said on my previous post, I worked on generic scripts, which use dhcpcd instead of dhclient (smaller, easier to control, DNS updates by default under Archlinux) and stop using ifup/ifdown. They are now in LXNM’s trunk. I’ll wait for a release to include lxnm in Archlinux, but the PKGBUILD with a rc.d script is ready.

Another thing: Did I mention LXDE’s lead developer is using Archlinux? Well, the wiki page about Archlinux was updated to mention the new lxde group even before I finished adding it to the packages :)

One last thing: git-svn rocks. I won’t use svn any longer. Using SVN branches still suck, or I missed something, which is highly possible.

Well, I lied, one last thing: I need to mention that I just started a fork of lxnm which doesn’t work as a daemon anymore. There are little chance that I ever finish. Default policy might be to use SUID with user root, group network, but I’d like to make it easy to use sudoers with NOPASSWD for “extra security” (that would need to adapt lxpanel a little more; anyway, I would have to). That makes installation harder so it won’t become the default behaviour. This sucks as I need to reset ENV.

I’m not ready to replace Steve Jobs…

LXDE in Archlinux

LXDE (screenshots) is a great desktop environment. I felt in love for it in a few days, exactly when I discovered it.

It is based on Openbox, which is my favourite WM except for tiling ones. It includes PCManFM, which is by far the best file manager I’ve ever seen on a Linux environment, after KDE4’s Dolphin/Konqueror: I’ve been waiting for the multicolumn mode from OpenStep under Linux for years. I’ll talk with LXDE’s developers about it. LXAppearance provides an easy way to choose the GTK theme, icon theme and font. It is, AFAIK, the only graphical alternative to Gnome’s tool for those features. LXPanel works great, it provides exactly what I’m looking for and is light, still easy to configure. To name a few, icon-only window list, keyboard LEDs indicators (did you remember I use a EEEPC?), launchers you can manage just by selecting .desktop files (sooo better than Xfce). The session manager permits me to shutdown/reboot/suspend/etc., without using any display manager (I use x:5:respawn:/bin/su - gcarrier /usr/bin/startx). And it doesn’t depend on many libs: GTK2, DBus, HAL, FAM. There’s a simple NetworkManager alternative which is work-in-progress. For now, it only works with Debian-based systems (as it uses ifup/down scripts), but I got SVN commit access and will improve this very soon. Anyway, it will never follow the NetworkManager way and any advanced stuff should be done through a shell. But it manages ASCII/hexadecimal WEP keys, parts of WPA and is very easy to extend by customizing shell scripts. What really astonished me was LXLauncher, an enhanced replica of EEEPC’s default tabbed desktop launcher. Considering it, I could really provide LXDE to my grandma.

I wrote PKGBUILDs for everything today. For now, various TU maintain parts of it; I’d like to entirely maintain it as I’ll follow the developers very closely. And provide a lxde group to make it easier to install. You might want to use lxsession-lite instead of lxsession which is buggy. Last but not least, the Subversion repository contains nice apps to come.

Packages signing in pacman, Archlinux getting secured?

Introduction

This post title is such a troll… Archlinux is my favorite Linux-based distribution, it’s already secured, blah blah blah, you got the point. Here’s the story. Questions come next.

Signing? How awesome is that!?

Security is one of my big concerns. So I started to work on packages signing, which might be the biggest lack in Archlinux for now. Thanks to toofishes, who is totally mentoring me on this, we went to a point where a nearly complete design is available. The implementation is far from finished, but it’s now possible to see where we’re going, if we keep this way. And I think it perfectly suits the Arch philosophy.

The place to start with

We started working on makepkg. Basically, we added an option in the BUILDENV array (defined in /etc/makepkg.conf) named sign, which causes makepkg to sign the package it builds using gpg, creating a binary 72 bytes detached signature file.

That’s one small step for add-repo

Then, we need the signature to be available on the repos. Using a 72 bytes file for each package would be overkill considering the number of mirrors. So we wanted to include the signature in the repo database (this .db.tar.gz file you might have opened if you understand a few words in this post). A whole file path in the tarball for every signature would be overkill too, plus it is uncompressed in /var/lib/pacman/sync/ and each signature could take something like 8kb (depending on your fs and its options, btw) as a separate file! But for each package, there’s a desc file with fields in it. Our idea is to put the signature in it. As it is plain text, we can’t put the binary signature directly. base64 is here! With a tool to (de)code it in coreutils, it definitely was the way to go. Now we have a new field which looks like:

%GPGSIG%
iEYEABECAAYFAkhDcqcACgkQj8OreK3cj9eStwCeIjf9AWQcPE9hH+t7iQ2pVCychxwAoKBcIiYph4RzVISP6bklppdOwmkF

It’s a long line, but it is still plain ASCII and won’t interfere with the file format as there can’t be any % in it. So we tweaked repo-add. That was a one line patch in the code. Did I tell you it’s a true story?

What’s the point?

Now that everything is here to generate repos with signed packages, maybe pacman could use this brand new information…

It could embed muuuch code from GnuPG. OK, what else? It could use gpgme, which would rely on gnupg itself, but is supposed to make things easier. Here, we just have to check a signature. We can work like git! Basically, we just need to popen something like gpg --keyring $keyringfile --no-default-keyring --verify - $pkgfilename and write the binary key to it. Then check for return code 0.

That’s where the biggest design choice come. How pacman should know whether a package can be trusted or not? Let’s use (a) keyring(s)!

I’ll let the gnupg users who learnt their lesson tell you that to trust Archlinux’s packages, you need to meet Aaron Griffin himself (omg omg! RMS would be so jealous!), or someone who met him, or someone who met someone who met him, etc. as long as it seems at least a lot more than reasonable to you. And please do the same for [archlinuxfr], [eee], etc. Web of trust is a good concept.

Irrelevant throughts: Now let’s suppose you install Archlinux via FTP: you launch your installer from the USB key you’ll give to Grand’ma at her birthday next week, and you have configure gpg before installing packages. Well, I don’t know for you, but when I install a system, I want this done fast. Meaning at least a prompt to start tweaking within minutes. Dealing with a keyring like you would do for e-mails or chat sessions with your buddies at the NSA is not really adapted. Anyway, you will be able to work that way with our system!

We could have a keyring per repository in pacman.conf. I think it doesn’t make much sense: if I trust a developer to provide me binaries it seems I want to use, I don’t really care whether it’s init or vim (but I care whether it’s not emacs or still not). And I care even less if it’s in [core] or [community], because I love TUs. Did I tell you TUs are beautiful and smart young men and women who need care and love?

Now that you’re convinced pacman’s keyring should be system-wide, it would be convenient to deal with the various packagers of the repos you use. Here’s a hypothetical story:

I wake up at 10AM. I take my breakfast, a shower, and go to school. My girlfriend (yes, hypothetical) kisses my math teacher… Let’s be realistic. A year later, I install Archlinux on my brand new laptop. In [core], I keep archlinux-keyring. I add the [archlinuxfr] repository to /etc/pacman.conf, pacman -S archlinuxfr-keyring. I confirm the installation even if this package is not signed. I change Keyring /etc/pacman.d/archlinux.gpg to Keyring /etc/pacman.d/belovedlaptop.gpg, and run gpg-merge-keyrings archlinux.gpg archlinuxfr.gpg belovedlaptop.gpg. Then I add the [kdemod] repository, install its keyring and run gpg-add-keyring kdemod.gpg belovedlaptop.gpg.

Questions as promised

Why don’t the thousands of people who visit this blog put at least a dozen of comments on it? Do you think I should stop replying to my replies to my patches on pacman[dash]dev[at]archlinux[dot]org? Is packages signatures something you actually want? Do we do it completely wrong or just wrong?