WebLog Olivier Berger

Aller au contenu | Aller au menu | Aller à la recherche

dimanche, décembre 29 2013

Touchpad side scrolling enabling in gnome flashback

For whatever reason, the touchpad right edge would no longer allow me to do scrolling (like the usual middle wheel on the mouse) under the gnome flashback session in Debian testing.

Here's a way to make it work : http://askubuntu.com/questions/248290/enable-both-edge-scrolling-and-two-finger-scrolling-for-touchpad/373134#373134 .

This post provides a more elaborate script : http://who-t.blogspot.fr/2011/03/custom-input-device-configuration-in.html reusing an example script (in Debian, in /usr/share/doc/gnome-settings-daemon/examples/input-device-example.sh), but attention: it may be invoked twice, if like on my system, once for an "AlpsPS/2 ALPS GlidePoint" and then for a "PS/2 Mouse", but resetting the VertEdgeScroll to 0 in between.

So the script looks like that on my system, now :

...
 if [ "$device" = "AlpsPS/2 ALPS GlidePoint" -o "$device" = "PS/2 Mouse" ]; then
        synclient VertEdgeScroll=1
 fi

I guess there's some kind of a bug here... but the gnome session is a hell when needing to spot the culprit package to report to, so for once, I'll let reportbug quiet.

Hope this helps

Update: this unfortunately doesn't seem to work on initial session start :-/

lundi, octobre 28 2013

Closed my LinkedIn account

I've just closed my LinkedIn account, in reaction to the recent announcements on their ill behaviour re. their user's data (in particular emails).

Even if I didn't allow my mail to ever pass through their servers, I think I've been their product long enough.

If I ever am looking for a job in the future, I do hope that my track record in various code repositories will speak better than my resume in LinkedIn database.

From time to time I've had the need to check on someone's profile there... but I guess I'll have to do without it.

I shall update my WebID in the next days, to complement the move ;-)

lundi, août 26 2013

Synchroniser la musique entre ordinateur (Gnu/Linux) et NAS de la Freebox Revolution

J'utilise git-annex pour synchroniser le partage sur le NAS de la FreeBox Revolution, de mes fichiers de musique numérisée (MP3, Ogg), de façon à pouvoir gérer la musique sur mon ordinateur, tout en permettant de la jouer sur la télévision du salon, via l'interface de la freebox. La même procédure doit marcher pour d'autres NAS/set top boxes.

Données du problème :

  • mettre à jour les fichiers depuis le PC (ligne de commande, interfaces graphiques, numérisation de nouveaux CDs, etc.)
  • avoir un backup sur un disque de sauvegarde (sur une machine différente de cd PC, en cas de fausse manip, ou du NAS, au cas où la freebox plante).
  • avoir les fichiers en clair dans l'arborescence du NAS, sous son répertoire prédéfini par la freebox
  • automatiser la synchronisation et les backups, autant que faire se peut

La procédure est la suivante :

  1. monter sur mon ordi, via CIFS, le disque de la freebox, qu'elle exporte via samba : c'est donc un montage ne supportant pas les liens symboliques : git-annex supporte heuresement le mode "direct" pour les remotes. Ce n'est donc pas une remote réseau, mais une remote locale, dans un répertoire de l'ordi. Appelons-le /mnt/freebox-server dans ce qui suit.
  2. initialiser un dossier de bibliothèque musicale comme étant un repo git-annex :

$ cd ~/Musique
$ git init
$ git annex init "mon ordi"

# ajout des fichiers musicaux

$ git annex add . $ git commit -m "initial"

$ cd /mnt/freebox-server/Musiques # on clone dans un sous-répertoire pour permettre de gérer des fichiers en dehors ce schéma sur la freebox $ git clone ~/Musique all $ cd all $ git annex init "freebox server"

$ cd ~/Musique $ git remote add freebox-server /mnt/freebox-server/Musiques/all # copie des fichiers : long $ git annex copy --to freebox-server $ git annex sync
$ cd /mnt/freebox-server/Musiques/all #$ git remote add laptop $ git annex sync

Normalement, à l'issue de tout cela, le contenu sur la freebox est synchronisé.

Ensuite, il ne reste qu'à ajouter une remote spéciale rsync pour les backups vers une autre machine, mais ça je vous laisse jouer avec git-annex pour voir comment faire ;)

dimanche, avril 7 2013

Migrating picture tags from KPhotoAlbum to digiKam (or others) through IPTC

I've occasionally used KPhotoAlbum for a few years and eventually added many tags to the pictures.

But I've decided I wanted to try other tools, and digiKam seems to be the best option from the many reviews I've read.

Still, there's apparently no automatic feature to import into digiKam the tags set in KPhotoAlbum.

Fortunately, some smart people have implemented Perl tools allowing to overcome this issue.

The process involves modifying the pictures to save the tags inside the files, using the IPTC standard. Then, digiKam will be able to load the tags from the modified files.

Here's a copy of the (translated) kphotoalbum2iptc.pl script (the original as in french) I copied from this blog post (in french too).

I've been able to generate .deb packages for the required 2 perl libs dependencies using the method described in the referenced post , with : dh-make-perl  --build --cpan Image::Kimdaba and dh-make-perl  --build --cpan Image::IPTCInfo

Thanks to Pierre Doucet and Bruno Adele for sharing this. Hope this helps.

mercredi, janvier 16 2013

Scheduling appointments with capture template from org-agenda view

I've been frustrated by my inability to schedule appointments directly from the org-agenda view, for quite some time, but I think I've found a way.

If like me you're using org-mode to manage your appointments, you're probably using SCHEDULED TODO items that can be entered in your system using org-capture templates.

A typical scenario is I'm asked by a colleague (face to face or on the phone) when I'm available to schedule a meeting or some other activity. I'm then firing an agenda view, and browse through the dates available... then agreeing on an empty slot, I'm capturing the meeting... but then I have to C-c C-s to add the SCHEDULED marker and set the correct date, although I was previously on that exact date in the org-agenda view :-/

The solution seems to be with the 'k c' command, i.e. the capture org-agenda-action in the agenda view. From the docs :

k runs the command org-agenda-action, which is an interactive compiled
c     Call `org-capture' with cursor date as the default date

Exactly what I need : it will prompt me for a capture template, which I just have to set to a template containing "SCHEDULED: %t".

Excerpt from my .emacs :

(custom-set-variables
...
'(org-capture-templates (quote (("t" "Todo" entry (file+headline "~/org/newgtd.org" "TACHES") "* TODO %^{Brief description} %^g
 %?   
    Added: %U
%i
%a") ("n" "Notes" entry (file+datetree "~/org/journal.org") "* %^{topic} %T %^g
%i%?
%a") ("d" "Scheduled appointment" entry (file+headline "~/org/newgtd.org" "TACHES") "* TODO %^{Brief description} %^g
 %?   
    SCHEDULED: %t
%i
%a"))))

Tadaaa ! it works :-)

vendredi, novembre 9 2012

Using a DreamPlug with Debian as an IPv4/IPv6 router for a home LAN behind a FreeBox

The goal of this article is to describe the setup I've made for my home LAN behind a FreeBox (French ISP Free.fr).

Lire la suite...

jeudi, juin 16 2011

Debian business card made with GLabels

Unfortunately, GLabels is currently unmaintained. Still, it's a very convenient tool, IMHO to print DIY business cards.

Here's my glabels business card file, for those interested to borrow and reuse it.

lundi, mai 23 2011

I'm now a Debian Developer

As of today, I'm now obergix@debian.org.

I've been a Debian contributor (more recently as Debian Maintainer) for quite a while, and after a few months of procedures, I've now been accepted as a registered Debian Developer, i.e. a Debian project's member.

Thanks for all the good folks that have helped me doing so, by advocating, reviewing my application, or just inspiring me ;)

Now, that's not an achievement, just a start, and I hope I'll be able to help improve Debian a bit.

mercredi, mai 4 2011

Journée internationale contre les DRM

Le 4 mai était la journée contre les DRM.

Bannière journée internationale contre les DRM

samedi, avril 30 2011

200 commentaires

Eh oui, 200 commentaires sur mes billets (sans compter le spam).

Et les articles les plus commentés : la télécommande de la télé et l'article sur l'EPIDE de Montry... comme quoi, des fois, ce n'est pas les trucs les plus geeks dont je parle qui suscitent le plus de retours ;)

mardi, mars 29 2011

New GPG key

I have generated a new GPG key (4096R/7C5BB6A5) for the needs of my application as Debian Developer. Therefore, the old key (1024D/B4C5F37F) will soon be retired.

If you happen to meet me, I'd be glad to have my public key signed again by you.

Here's a copy of the new public key, and one signed with the old.

As usual, you may download it from keyservers with something like (for instance on keys.gnupg.net):

gpg --keyserver your-preferred-key-server --recv-key 7C5BB6A5

Update: I've added a transition document here.

dimanche, novembre 28 2010

Monitoring remote rsync.net storage quota with munin

I'm using rsync.net's networked storage for my duplicity backups (operated with backupninja). rsync.net uses quotas to limit each user's storage space. As I'm using munin to monitor my local machines, including their disks capacity, I wanted to include a similar graphing for the rsync.net quota too.

Here's a very basic munin plugin to be installed as /etc/munin/plugins/rsyncnetquota to be able to graph the output of the quota command :

#!/bin/bash

user=12345
host=whatever.rsync.net

quota=`ssh $user@$host quota | grep -e '^ */' | sed 's/^ *//g'`
current=`echo $quota | cut -d ' ' -f 2 | sed 's/\*$//'`
quota=`echo $quota | cut -d ' ' -f 3`
warning=$((quota*80/100*1024))
critical=$((quota*95/100*1024))

case $1 in
   config)
	echo "graph_title Rsync.net quota for $user (quota : $quota)"
	cat <<"EOM"
graph_vlabel quota
quota.label quota
EOM
echo "quota.warning $warning"
echo "quota.critical $critical"
#graph_args --base 1000

        exit 0;;
esac

echo -n "quota.value "
let current=$current*1024
echo $current

In my case, I want to have a warning alert at 80% and a critical message at 95%. Note that you may prefer adding constants here instead of issueing 2 ssh connections, one for the execution with parameter 'config' and one for the real value collection.

The script should be run as a user (here, root) which is allowed to execute password-less ssh onto the remote rsync.net account (ssh public keys, etc.), so a corresponding configuration should be added to /etc/munin/plugin-conf.d/munin-node in the form of :

[rsyncnetquota]
user root

dimanche, octobre 3 2010

Org-mode : un outil d'organisation qui respecte mon bordel ambiant

Je suis réfractaire aux méthodes très structurées pour l'organisation : j'ai souvent trop de choses à gérer en parallèle, et j'alterne des périodes de multi-tâche intenses avec des périodes de forte concentration pendant quelques heures sur des tâches uniques, et je suis parfois aussi en déplacement, ou pris par l'urgence, ce qui entraine une difficulté à me tenir à une routine très structurée, comme par exemple celle nécessaire pour utiliser des gestionnaires de tâches de type "base de données avec formulaires de saisie" (par exemple GTG).

Et puis, je procrastine aussi, et je sérendipitise allègrement (avec profit).

Bref, je suis "bordellique"... mais, suis-je pour autant réfractaire à tout outil d'organisation me permettant de gérer des tâches, des projets (ensembles de tâches thématiques), des deadlines, etc ?

Non, bien-sûr : Org-Mode répond à mon besoin : je saisis de façon plus ou moins structurée (selon le moment, le temps dont je dispose, le contexte dans lequel je suis) des notes dans des fichiers quelconques (nommés .org, et placés dans mon $HOME/org/), et il me suffit de les préfixer avec "TODO" pour qu'elles rentrent dans la "base", le référenciel d'Org-Mode, et qu'elles apparaissent alors dans mon "agenda".

Qu'une tâche soit tagguée TODO dans la nième sous-section d'un fichier toto.org lié au projet "toto" (saisie structurée) ou saisie à la volée (capturée avec l'extension de saisie de notes super rapide de Org-Mode : indispensable outil pour noter des choses sans perdre le fil de sa tâche en cours, quand quelque chose vous passe par la tête), et donc stockée dans le "fourre-tout" par défaut (un fichier texte "coin.org" par exemple, qui contient toutes les notes "capturées", en vrac), elles sont toutes retrouvées par Org-Mode (il regarde le contenu de tous les fichiers .org).

Le mode "agenda" est l'outil indispensable : il permet d'afficher toutes ces notes, non-plus en mode édition de texte / structuration du contenu d'un fichier en sections à en-têtes (headlines) et sous-sections, comme dans la vue d'édition par défaut d'Org-Mode, mais en mode recherche, filtre, tri, agenda (semainier, etc.), bref, de visualiser de façon structurée des notes éparses saisies un peu partout dans le "bordel" des fichiers .org.

Voilà, j'espère que vous comprenez un peu mieux pourquoi j'utilise Org-Mode, et en suis pleinement satisfait.

Pour en savoir plus, je vous invite à visionner les screencasts d'introduction.

Ca y est, je téléphone librement avec du logiciel et du matériel libre (ou quasi)

Après avoir longtemps retardé le moment où ke me lancerais dans l'utilisation du téléphone OpenMoko Freerunner que j'ai acheté depuis quelques temps déjà, je me suis enfin lancé.

Et dingue : j'arrive à appeler et à être appelé. Merci OpenMoko et merci à la distro SHR (testing de mai 2010). Seul couac : je ne peux composer des SMS, même si j'en reçois bien.

Autre problème : la durée de charge de la batterie, mais j'ai le bug hardware qui fait que le mode sommeil n'économise pas bien, donc pas étonnant :-( .... mais bon, ce n'est pas pire qu'avec mon ancien téléphone dont la batterie commençait à donner des signes de faiblesse.

Vive le libre.

samedi, août 14 2010

Ma vie a changé : j'utilise org-mode

Oui, oui... voilà un titre bien péremptoire. Laissez-moi vous expliquer.

L'histoire commence avec un pôte qui n'arrêtait pas de vanter org-mode à tout bout de champ depuis quelques mois.

org-mode est beau, org-mode et tu rajeunis, etc.

Vous pensez bien que ça donne envie ! ... euh, non, en fait, moi, ça me faisait plutôt l'effet inverse : je suis probablement doué d'un esprit de contradiction assez développé, ou un peu trop habitué à tester par moi même pour me faire une idée. Donc pas trop envie d'être bêtement suiviste, donc j'ai évité org-mode. Notez que ce n'est pas qu'Emacs me soit étranger, mais bon, j'avais des doutes, et j'attendais d'avoir vu un peu autre chose.

J'avais commencé à explorer la méthode GTD, et j'utilisais déjà Zim, l'excellent wiki de bureau (que j'ai vanté à pas mal de collègues, avec un certain succès), et je cherchais un gestionnaire de tâches. J'ai donc essayé GTG (Getting Things Gnome), qui semblait prometteur.

Mais, soit GTG ne me convient pas, soit l'inverse... pas vraiment un succès. J'ai l'impression que ce que j'aime bien dans Zim c'est la saisie un peu en mode "bazar", en mode wiki, où la structure émergera après, des liens qu'on y tissera ou du refactoring qu'on fera, Or dans un gestionnaire de tâches comme GTG, je me retrouvais avec un carcan un peu trop fort, et pas super customizable (sauf à me plonger dans le code). Donc pas vraiment réussi à me faire à GTG :-(

Zim permet de gérer des tâches / TODO avec un plugin... mais bon, pas super convaincu, car ça semble une feature pas super développée, je trouve.

Bon, j'ai donc continué à vivre sans vraiment gérer mes tâches pendant quelques temps (même si je continuais à prendre beaucoup de notes dans Zim), mais récemment, je me suis repenché sur le sujet, et j'ai décidé de jeter un coup d'oeil à nouveau à org-mode.

Voilà, ben, cette fois, fort de mes expérimentations passées et du succès mitigé, notamment avec GTG, j'ai décidé de visionner les vidéos d'introduction à org-mode ainsi qu'un tutoriel. Je n'ai pas regretté. C'est superbe, et ça me correspond bien, j'ai l'impression : je garde la structure pas trop contraignante de Zim, avec l'efficacité d'un réel gestionnaire de tâches.

Bon, c'est décidé, ma vie va changer : je vais être moi aussi un zélote d'org-mode, car je le vaux bien.

Essayer org-mode c'est l'adopter, Mais si vous êtes comme moi, n'écoutez pas ce conseil, et testez d'autres trucs par vous même jusqu'à parvenir à la même conclusion : ... c'est bien Fred qui avait raison ;-)

EDIT 2010/09/13: j'ai fait une présentation sur le sujet à quelques participants de lifehacking.fr, donc voici Présentation sur org-mode (PDF)les slides (en PDF), générés avec org-mode + beamer (C-c C-e d), depuis Présentation sur org-modele source org que voici.

mercredi, avril 7 2010

Le Geek qui murmurait à l'oreille des PC - Episode 3 (enfin !)

Des années après, je me souviens que j'avais effectivement participé au casting du "Geek qui murmurait à l'oreille des PC - Episode 3".

J'ai peut-être loupé ma vocation :-)

mercredi, mars 31 2010

Je vais aux Rencontres Mondiales du Logiciel Libre, à Bordeaux en juillet, et vous ?

Et j'y coordonnerai la session "Développement" du thème technique.

Venez nombreux : les interventions et les rencontres sont toujours d'un bon niveau aux RMLL

Plus de news en suivant #RMLL2010 sur votre logiciel de micro-blog préféré (apr exemple ici).

mercredi, mars 3 2010

Restoring duplicity backups with different debian distro : attention to incompatible versions

I've recently had to test my backupninja + duplicity backups (yes, I think I haven't blogged about backups since I described my previous setup which used amanda).

The zonbu PC that managed the backup disks target of duplicity, which was running Debian stable has died.

I tried and restore the contents of its system (to have a look on the config files I had setup there) on a Debian testing system, using the same duplicity commandline (more or less).

However, I couldn't do that, since apparently, duplicity in Debian stable (0.4.11) and testing (0.6.06) don't seem to be exactly compatible.

I managed to restore anyway by reinstalling duplicity 0.4.11 in a custom prefix setup, which worked fine. The command-line then goes something like this (excerpt from the tarball's README) :

python setup.py install --prefix=/usr/local
PYTHONPATH='/usr/local/lib/python2.x/site-packages/' /usr/local/bin/duplicity -V

I've traced this problem in Debian BTS (#572102), as I'm afraid of the consequences when people will try and restore on the next stable distro backups made with the previous stable...

You've been warned anyway ;)

Measuring OpenMoko FreeRunner battery life with SHR-T

I've tried and apply the technique shown in Measuring Freerunner battery life for my FreeRunner which runs SHR-T.

Unfortunately, I couldn't recompile the wkalrm program on the freerunner (problems of compilation chain, I think). So I decided to use atd to insert an at command which would wake up the FR... but that isn't exactly easy since no at command seems packaged for the atd-over-fso that comes with SHR-T (actually, there's an at script provided in the initial atd version it was based on).

Thanks to help provided on the SHR ML, I've written this short resume-at shell script that can be used to insert an at command/script that will wake up the FR after a certain amount of minutes :

#!/bin/bash

# Will program an at job that will just execute in some number of minutes (passed in args)
# This script will do nothing, but can be interesting to wakeup the machine

# It uses atd-over-fso for atd execution

now=`date +'%s'`

minutes=$1
let "seconds = minutes * 60"

# add some minutes to now
let "time = now + seconds"

# filename for the at script
filename="/var/spool/at/$time.resume-at"

# Install the script
cat >$filename << EOF
#!/bin/sh

this="/var/spool/at/\$0"

echo \$this >>/tmp/resume-at.log
date >>/tmp/resume-at.log

rm \$this
echo "update" > /var/spool/at/trigger

EOF

# Make the at script executable
chmod +x $filename

# initialize the logs file
touch /tmp/resume-at.log

# Notify atd-over-fso that a new script was installed
echo "update" > /var/spool/at/trigger

Now, all that is left to do is to change the battery monitoring script to :

#!/bin/bash

while :
do


echo ===========================================
date
cat /sys/class/power_supply/battery/capacity
cat /sys/class/i2c-adapter/i2c-0/0-0073/resume_reason
cat /sys/class/i2c-adapter/i2c-0/0-0073/neo1973-resume.0/resume_reason
#/root/wkalrm +30m
/home/root/resume-at 30
sleep 20
apm -s

done

The script has now been run, and here are the results : discharge in 66 hours and 10 minutes : Battery discharge curve

Hope this helps.

lundi, janvier 18 2010

Support GNU/Linux parfait pour l'imprimante Photosmart C4780 HP

Merci HP :-)

Notre précédente imprimante HP a fini par nous lâcher définitivement (après quelques prolongations hackesques).

Je savais déjà qu'HP offrait un certain support pour GNU/Linux pour ses imprimantes (projet HPLIP), donc je n'ai pas trop hésité sur la marque pour en racheter une nouvelle.

Et là, très bonne surprise : la Photosmart wireless alias C4780 est parfaitement supportée pour GNU/Linux avec hplip. En plus des packages à jour existent en Debian (testing).

Voilà, ça imprime et ça scanne en réseau, comme ça devrait toujours être.

Quand un constructeur offre un bon support pour GNU/Linux, ça mérite de se signaler... un jour peut-être, ce genre de billet devrindra obsolète ;) ?

- page 1 de 7