Christophe Jacquet
This page is also available in English.
Flux RSS

2009-08-11 | Exiftool

Au retour de vacances, on a généralement envie de trier ses photos. J’ai pris l’habitude de créer un répertoire par vacances, puis un sous-répertoire par jour. Lorsque j’avais un seul appareil photo, je faisais ça à la main, c’était relativement facile, et puis dans chaque sous-répertoire j’avais un ensemble de photos dont le nom reflétait l’ordre chronologique.

Or, je dispose désormais de deux appareils (réflex plus compact), dont l’un nomme les photos en DSC_xxx.jpg, et l’autre en Pxxxxxxx.jpg. Si j’utilise les deux appareils le même jour, je n’ai plus de lien évident entre l’ordre alphabétique des fichiers et la chronologie des photos. La solution est donc de renommer toutes les photos selon un schéma unique, en fonction de l’heure.

Bien entendu, hors de question de faire ça à la main, on confiera la tâche à Exiftool qui dispose d’une puissante fonctionnalité de renommage. Au passage, Exiftool peut gérer lui-même le déplacement des photos dans des sous-répertoires en fonction du jour.

Ainsi, je me contente de mettre en vrac toutes les photos prises par mes deux appareils dans un répertoire unique, puis je lance :

exiftool -d %Y%m%d/%H%M%S%%-c.%%e "-filename<DateTimeOriginal" *.JPG

Cela déplace chaque photo dans un répertoire YYYYMMDD en fonction du jour, et renomme la photo en fonction de l’heure (format HHMMSS). Si plusieurs photos ont été prises exactement à la même seconde (rafale), un suffixe numérique (-1, -2, etc.) sera ajouté, c’est le rôle du %%-c. Bien entendu, il est possible d’adapter le format selon ses besoins, par exemple en rajoutant des tirets entre les éléments de la date et de l’heure.

Après cela, un passage dans GeoSetter permet de géolocaliser en un clin d’œil les photos à partir d’une trace GPS. Vive l’automatisation.

2009-08-10 | Utilisation du GPS différentiel sur un Garmin

Le principe du GPS différentiel (DGPS) est très simple : des stations au sol reçoivent les signaux GPS. Elles mesurent l’écart entre la position fournie par le système GPS et leur position vraie (connue très précisément). Elles transmettent alors le delta à destination de tous les utilisateurs. Le postulat ici est que l’erreur relative de positionnement soit à peu près la même sur une zone géographique donnée. Cette méthode permet d’améliorer grandement la précision du GPS. Lorsque les deltas DGPS sont transmis par satellite géostationnaire, on parle de SBAS (satellite-based augmentation system).

Comment en bénéficier ?

Les systèmes SBAS ont été conçus dans la deuxième moitié des années 1990, et sont entrés en service dans la première moitié des années 2000. L’implémentation américaine du SBAS s’appelle WAAS. L’Europe utilise une implémentation appelée EGNOS, qui a le bon ton d’être interopérable avec WAAS.

Les récepteurs récents sont compatibles WAAS/EGNOS. Il suffit donc d’activer la fonction sur le récepteur GPS. Par exemple, sur un Garmin Oregon, il faut aller dans Configuration > Système > GPS, et sélectionner WAAS (« Normal » met en mode GPS uniquement, « WAAS » met en mode GPS + WAAS/EGNOS).

Comment savoir si je reçois les signaux EGNOS ?

Chaque station émettrice dans le système GPS est identifié par un numéro appelé PRN[1]. Les satellites GPS possèdent donc un numéro PRN, mais également les stations au sol, et les satellites géostationnaires SBAS.

Les numéros PRN de 1 à 32 correspondent aux satellites GPS. Les satellites géostationnaires SBAS ont des numéros entre 120 et 158. La petite subtilité ici, est que les récepteurs Garmin n’affichent pas les vrais PRN des satellites SBAS : ils affichent un « pseudo-PRN » égal au « vrai PRN » moins 87. De cette façon, le premier satellite SBAS (numéro 120) apparaît comme numéro 33, juste après le dernier satellite GPS (numéro 32). Un peu tiré par les cheveux, mais ce qu’il suffit de retenir, c’est qu’un numéro supérieur ou égal à 33 signale un satellite SBAS.

Les satellites EGNOS sont les suivants[2] :

PRNPRN GarminNom du satelliteNom SBAS
12033INMARSAT-3-F2AOR-E
12437ARTEMISTests de l’ESA
12639INMARSAT-3-F5IOR-W ou IND-W

Pour plus d’informations :

Notes

[1] À proprement parler, PRN signifie « pseudorandom noise ». Le numéro PRN désigne le couple (code C/A, code P) utilisé par une station. Comme deux stations ne peuvent partager les mêmes codes, le numéro PRN désigne donc par extension une station de façon unique.

[2] Le satellite de PRN 131 (INMARSAT-3-F1, IOR-E) a cessé d’émettre en 2005.

2009-07-18 | Déplacer le disque dur principal d'une machine Debian, facile ?

C’est ce que je croyais…

On a dû changer de bus et/ou d’emplacement le disque root d’un serveur ? Qu’à cela ne tienne, on modifie le disque de boot dans le BIOS, on édite les options de grub au démarrage, puis une fois le système booté on va dans /boot/grub/menu.lst pour rendre les changements définitifs. Il y a alors deux lignes par noyau à changer, du type :

root            **(hd0,0)**
kernel          /boot/vmlinuz-2.6.18-6-486 root=**/dev/hda1** ro

À chaque fois, il convient de mettre la bonne partition : ici hd0,0 ou /dev/hda1, selon la convention choisie.

Bien, bien. On reboote la machine, pour valider la chose. Elle boote comme un charme, pas de problème. On va donc la remettre à son emplacement de « production », au hasard au fond d’un placard, sans clavier ni écran bien entendu. Encore un boot, tout se passe bien, on en profite pour appliquer les dernières mises à jour, puis la machine vit sa vie.

Un jour, la machine reboote pour une raison quelconque, et là, perte de contact réseau ! Bien qu’elle soit headless, on se rend vite compte que Debian n’a pas booté. On l’extrait de son placard, on la connecte à un écran et un clavier, et là stupeur, on constate que grub cherche à booter sur l’ancien emplacement de la partition racine… À se taper la tête contre les murs.

Explication

Parmi les mises à jour effectuées, il y avait eu une mise à jour du noyau. Or lors des mises à jour du noyau, les sections par défaut de menu.lst (celles qui sont repérées par les BEGIN/END AUTOMAGIC KERNELS LIST) sont écrasées par un script qui s’appelle update-grub. Les modifications faites à la main sont donc perdues. Il ne faut donc pas faire comme expliqué ci-dessus sous Debian, mais au contraire, modifier directement les paramètres qui sont utilisés par update-grub. Ces paramètres sont donnés directement dans le fichier menu.lst, sous forme de commentaires spéciaux. Il y en a deux qui nous intéressent :

# kopt=root=**/dev/hda1** ro 
# groot=**(hd0,0)**

Ce sont donc ces deux lignes qu’il faut modifier, puis pour appliquer les modifications aux lignes « réelles » du fichier de configuration, il suffit d’appeler update-grub.

2009-06-24 | Oregon 300

On vient de m’offrir un GPS de randonnée Garmin Oregon 300. C’est un très bel appareil que je recommande. Parmi ses points forts :

Par contre, la cartographie de base est extrêmement rudimentaire. Il faut absolument ajouter une cartographie complémentaire pour tirer parti de ce GPS. La carte de France vectorielle, en résolution à peu près équivalente aux cartes IGN au 1:25000, est disponible pour 279 euros (ou 99 euros le quart de France). Je me la procurerai peut-être un jour, mais il existe par ailleurs de nombreuses cartographies gratuites installables sur Garmin, ce qui permet de s’amuser… Une liste assez complète est donnée sur un forum.

Notamment, il existe un site communautaire de création de cartes qui constitue une source très riche de cartes pour GPS : OpenStreetMap. OpenStreetMap est à la cartographie ce que Wikipédia est à l’encyclopédie. Les cartes sont créées par les contributeurs volontaires, et disponibles sous licence Creative Commons. La procédure pour exporter des morceaux d’OpenStreetMap vers le format Garmin est assez complexe (je ne l’ai pas encore expérimentée), mais il existe un site web qui propose au téléchargement des cartes de la France entière, régulièrement actualisées : cartes libres et gratuites de France pour GPS Garmin ! Il suffit de télécharger un fichier d’un peu plus de 100 Mo, et de le copier sur son GPS. Je reviendrai sur OpenStreetMap et son formidable potentiel.

Quelques liens utiles :

2009-06-06 | Attribution des sièges aux Européennes

À quelques heures du scrutin des élections européennes, on peut avec raison se demander comment les sièges seront attribués. En effet, quand dans une circonscription à peine 10 sièges sont à pourvoir, dire que l’attribution se fait à la proportionnelle ne suffit pas : on se doute que les problèmes d’arrondis au siège sont prédominants. Curieusement, cette question n’est jamais abordée par les médias grand public, qui doivent trouver le sujet trop rébarbatif.

La méthode d’attribution varie selon les pays. En France, on a recours à la méthode D’Hondt du type plus forte moyenne. Cette méthode ne présente pas de biais, mais favorise légèrement les grands partis.

Soit n sièges à attribuer. Pour chaque liste, on va calculer des moyennes de votes exprimés, en fonction du nombre de sièges gagnés. En pratique, on fait figurer les listes en ligne, et une première colonne contient les suffrages de chaque liste (1ère moyenne), une deuxième colonne contient les suffrages de chaque liste, divisés par deux (2ème moyenne), puis une troisième colonne les suffrages divisés par trois (3ème moyenne), etc. Dans ce tableau de nombres, il suffit de prendre les n moyennes les plus hautes, qui déterminent les n sièges à attribuer. À noter que dans le cadre des Européennes, on ne tient compte dans la répartition que des listes qui dépassent les 5 %.

Le tableau ci-dessous permet d’effectuer le calcul pour dix listes au maximum, et une dizaine de sièges :

Sièges à attribuer :

VoixSièges

2009-05-13 | Forwarding X11 dans SSH

Normalement, avoir la ligne

X11Forwarding yes

dans son /etc/ssh/sshd_config suffit pour que le forwarding de X11 dans SSH fonctionne.

Si cela ne fonctionne pas (variable DISPLAY non définie après le login), vérifier que vous avez installé le package xbase-clients (sous Debian en tout cas) car il est nécessaire (notamment pour xauth).

2009-05-12 | Logger GPS

Afin de géolocaliser des photos, je me demande si l’utilisation d’un logger GPS n’est pas intéressante. Qu’est-ce qu’un logger GPS ? Un petit boîtier équipé d’un récepteur GPS, qui enregistre des traces exploitables ultérieurement. Contrairement à un GPS de randonnée ou de voiture, il ne dispose pas d’écran : son IHM est réduite à une simple indication de bon fonctionnement. Les traces sont ensuite exploitables pour tracer le parcours d’une randonnée ou géolocaliser des photos.

Je recherche un appareil aux caractéristiques suivantes :

Je suis tombé sur le i-gotU GT-120, qui a l’air pas mal du tout sur le papier (20 g, 30 h d’autonomie, vendu une cinquantaine d’euros), à ceci près qu’il semble nécessaire d’utiliser un logiciel propriétaire pour extraire les traces, ce qui est rédhibitoire en termes de facilité d’utilisation.

Des idées, des retours d’expérience ?

2009-02-04 | Flags et attributs étendus MacOS X

Outre les attributs classiques Unix, MacOS X possède des flags et attributs étendus qui peuvent faire perdre leur latin aux Unixiens… Exemple : il vous est impossible de supprimer un fichier. Pourtant, un ls -la vous confirme que le fichier et le répertoire vous appartiennent, et que vous avez dessus les droits en écriture. Vous ne comprenez pas. Vous essayez de passer root pour forcer les choses et… root ne peut pas non plus supprimer le fichier ! Que se passe-t-il ?

Flags

Des drapeaux peuvent être positionnés sur les fichiers. Notamment, il existe un drapeau uchg qui explique le problème ci-dessus. Le drapeau uchg verrouille complètement un fichier. Dans le GUI, il correspond à la case « Verrouiller » de la boîte d’infos du fichier. Pour pouvoir supprimer le fichier dans l’exemple ci-dessus, il faut d’abord retirer le flag uchg.

Pour afficher les flags des fichiers, les options de ls sont :

ls -lO

La modification de ces flags se fait avec la commande chflags, suivie du nom d’un drapeau pour l’ajout, ou du nom préfixé de no pour la suppression. Exemple (-R pour récursif) :

chflags -R nouchg *répertoire*

Attributs étendus HFS+

Les fichiers peuvent également posséder des attributs étendus. Par exemple, l’attribut com.apple.quarantine signale les fichiers récemment téléchargés. On peut afficher les attributs étendus par la commande :

ls -l@

La commande xattr permet de lister, ajouter et modifier les attributs. Par exemple, pour afficher les attributs et leurs valeurs, on peut utiliser :

xattr -l *fichier*

Article d’Ars Technica sur les attributs étendus.

ACL

Les ACL permettent de régler finement les permissions, au niveau de chaque utilisateur ou groupe. On peut afficher les permissions étendues avec :

ls -le

La modification se fait avec chmod +a.

Article d’Ars Technica sur les ACL.

2009-01-31 | Afficheurs LCD

20090131_lcd.jpg Il existe de nombreux modèles d’afficheurs alphanumériques LCD, qui varient par la taille (nombre de lignes et de colonnes), par la présence de rétroéclairage et son type, ainsi que par le jeu de caractères disponibles. Malgré une telle diversité, les fabricants ont en général la bonne idée de s’aligner sur la norme de fait Hitachi HD44780.

Ce billet constitue une introduction générale aux afficheurs. Deux articles ultérieurs détailleront leur utilisation avec un microcontrôleur PIC, via l’interface parallèle standard, et via la variante sur bus I2C.

Lire la suite…

2009-01-10 | À quand un culte du code ASCII ou du code Morse ?

Cette semaine, France 2 a diffusé une fiction en deux épisodes, intitulée Une lumière dans la nuit, qui a été primée et a fait l’objet d’une bonne critique, notamment de l’exigeant Télérama.

Ce film est plutôt bien ficelé, et l’on passerait un bon moment si l’intrigue n’était pas malheureusement dénuée d’intérêt. Pour résumer, tout commence par l’invention par Louis Braille d’un codage en relief des caractères pour les aveugles. Lors d’une démo du système, des militaires français et britanniques, convaincus de son utilité militaire (pour la transmission secrète de messages), décident de s’emparer de la « matrice », une sorte de pince servant à embosser les caractères. Tout le film tourne autour des tentatives d’obtention de la « matrice » par les militaires, de la fuite en avant de Braille pour la protéger, et de la quête actuelle de cet objet.

Tout cela est du grand n’importe-quoi. Une démo du système de Braille suffit pour en comprendre le principe, et de là, le code précis établi par Braille, et donc la « matrice » n’ont aucun intérêt. Il ne sert à rien de chercher à obtenir la « matrice » (et donc également de vouloir la protéger), puisque n’importe-qui peut établir son propre code, qui certes sera différent de celui de Braille, mais en aura toutes les caractéristiques. Un peu comme s’il avait fallu faire des drames autour du code ASCII alors qu’il suffisait d’inventer EBCDIC ou un quelconque autre code pour obtenir un fonctionnement strictement équivalent.

Le scénariste semble avoir oublié que la principale caractéristique d’un code, c’est d’être une convention, et donc d’être parfaitement interchangeable. Qu’un scénario si léger ait pu donner lieu à un film est surprenant, qu’il ait été sélectionné pour diffusion par France Télévisions l’est encore plus, mais ce n’est pas le plus dérangeant. Ce qui me met mal à l’aise, c’est le mystère qui est fait autour du code Braille, qui en réalité n’a vraiment rien d’exceptionnel ni encore moins de mystérieux. Et lorsque l’on essaie de me faire voir du mystère (accompagné au passage d’une vénération plus-que-quasi-religieuse) là où il n’y en a pas, je ne peux m’empêcher de sentir des relents d’obscurantisme…

HTML5 valide ? © . ✍ Contact. Mentions légales.