pmoret::blog

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

samedi, septembre 20 2008

Hugin

Après imagemagick, un autre outil de traitement d'image libre: Hugin. Ce dernier permet de faire des panoramas, c'est en fait un frontend pour panotools ( www.panotools.org ) une suite d'outils qui gère l'assemblage de photos ainsi que les autres étapes nécessaires à la réalisation de panoramas. J'ai été assez surpris par l'efficacité d'hugin, je l'avais essayé il y a une année ou deux et il m'avait semblé encore brouillon et peu utilisable, cette fois-ci j'ai été "déçu en bien" comme on dit. Avec son complice autopano-sift-c (sous debian j'ai dû googler pour trouver ce package, il semble que des problèmes de license ne permettent plus son intégration à la distribution) il génère automatiquement un panorama à partir d'une série d'images, sans avoir besoin de rentrer des points de contrôles ni même de donner les positions des images les unes par rapport aux autres, ce qui est plus pratique que, par exemple, le PhotoStitch de Canon qui se trouve sur les CD accompagnant mon appareil photo. Je donne ici un exemple réalisé avec des photos prises à Lugano. Il faut bien entendu prendre des photos qui se chevauchent et faire attention à garder les mêmes réglages de distance focale et d'ouverture sur son appareil photo (le mode manuel est parfait pour ça), j'en ai pris 7:

Hugin dispose d'un assistant qui aligne automatiquement les images et prend en charge les réglages ce qui est pratique quand on ne veut pas se farcir tous les détails techniques (points de contrôles, exposition, . Il faut prendre garde à avoir les données EXIF dans ses photos, elles sont utiles au programme pour avoir des infos sur l'objectif utilisé (surtout la distance focale). Si autopano-sift-c est installé c'est à dire que les images peuvent être alignée automaiquement, après un clic on a droit à une prévisualisation de ce genre :

Une fois l'image exportée ( de ce que j'ai vu il ne l'exporte correctement qu'en TIFF) il suffira de découper un rectangle pour arriver au résultat final ( en grand ici ):

Et voilà le travail ! Si l'on voit encore clairement qu'on n'en est pas à une version stable, ce logiciel est tout à fait utilisable et offre un résultat de qualité en 2-3 clics. J'ai créé un catégorie pour les panoramas dans ma galerie: lien ici. Il me reste à donner quelques liens:

dimanche, septembre 7 2008

ImageMagick

Cet article est une courte une introdution à l'utilisation d'ImageMagick en ligne de commande. Cette série d'outils permet de traiter des images automatiquement (recadrage, ajout d'éléments, de texte, etc. ), depuis un terminal en ligne de commande. Si vous n'êtes pas familier jetez un oeil sur http://fr.wikipedia.org/wiki/Ligne_de_commande . Je recommande utilisation d'un Unix libre (Linux, *BSD, etc), imagemagick se trouve généralement dans les distributions et peut être installé facilement à l'aide du gestionnaire de paquetage.

Une des utilisations les plus courantes est la conversion d'un format à l'autre. La commande 'convert' convertit d'un format à l'autre en reconnaissant les extensions des fichiers, le premier argument étant le fichier source et le dernier le fichier destination. On peut placer diverses options entre deux pour régler par exemple la qualité ou appliquer un traitement. Quelques exemples illustrant les options que j'utilise le plus couramment:

Exemple 1: conversion de png en jpeg de qualité 95 (sur 100).

convert foo.png  -quality 95 bar.jpg

Exemple 2: redimensionner une image

convert foo.jpg -resize 800 bar.jpg

De manière générale un rédimensionnement entraîne un léger flou, qui peut être compenser par exemple avec un -unsharp.
Il est aussi possible d'ajouter des éléments à une image, tels un cadre ou du texte. Les options "-bordercolor" et "-border" permettent de définir respectivement la couleur et l'épaisseur du cadre.

Exemple 3: ajouter un cadre (noir de 20 pixels d'épaisseur)

convert foo.jpg -bordercolor black -border 20x20 bar.jpg

Il est également possible d'ajouter du texte, par exemple pour ajouter une signature, -color permet de définir la couleur, -fontsize la taille du texte. -gravity définit le placement center pour centré ou north, northeast, east, southeast, etc. pour un placement sur un bord. Il est possible de modifier la police aussi avec -font. Comme dernier exemple je donne la commande que j'utilise sur mes photos avant de les mettre en ligne:

Exemple 4: Redimensionnement, netteté, cadres noir et gris et signature.

convert foo.jpg -resize  750x750 -unsharp 0.2 \
-quality 95 -bordercolor gray -border 1x1 \
-bordercolor "#111111" -border 0x18 \
-gravity southeast -fill gray \
-annotate 0 'Nom Prénom' \
-border 24x6 bar.jpg

Ce qui est très pratique avec ce traitement en ligne de commande c'est la facilité de traiter des images dans une boucle shell, mais cela sort déjà du cadre de cet article. Pour en savoir plus, consulter le site d'ImageMagick: www.imagemagick.org.

dimanche, juillet 20 2008

Monter une partition SSH sous Mac OS X

Voilà un petit billet bien geek, je me suis demandé récemment si c'était possible de monter une partition ssh sous MacOS X. Comme sous Linux il faut recourir à fuse, qui a été porté sous OS X sous le nom de MacFuse. Ce petit module permet de monter des partitions en mode utilisateur, sshfs a lui aussi été porté et a même une petite interface graphique (pour quoi faire demanderont les puristes...), le tout peut se télécharger ici: code.google.com/p/macfuse/downloads/list .

vendredi, juin 27 2008

OpenStreetMap

Un petit article dédié à la cartographie libre, j'ai quelque peu pratiqué. Le principe est assez simple il s'agit de récolter des données géographiques avec un GPS puis de les mettre en ligne en les annotant, afin que tout le monde puisse en profiter. Pour voir ce que ça donne : www.openstreetmap.org . Et récemment un épisode de la Capsule de Pain de la RSR: mp3 à télécharger ici.

vendredi, avril 4 2008

Battle for Wesnoth

Pendant ces dures heures d'ennui à l'armée je me suis (re)mis à jouer à un jeu de stratégie nommé Battle for Wesnoth, c'est un logiciel libre, comme certains s'en seraient doutés. C'est un jeu en tour par tour sur une carte héxagonale qui se passe dans un univers médiéval-fantastiques avec des hommes, des elfes, des orcs, des trolls, des morts-vivants, des nains, etc. Chaque unité a ses caractéristiques propres d'attaques (au contact et à distance) et des bonus de défenses suivant les terrains et des bonus d'attaques suivant les heures du jour pour certaines races (par exemple les hommes se battent mieux de jour tandis que les orcs mieux la nuit) toutes ces petites choses rendent le jeu stratégiquement intéressant. Les unités peuvent acquérir de l'expérience et passer des niveaux, devenant ainsi plus forte ou acquérant de nouvelles capacités, elles peuvent être rappelées d'une mission de la campagne à l'autre.

Une capture d'écran

La version 1.4 est sortie en mars et apporte des améliorations des graphismes, de la musique ainsi que de nouvelles campagnes. Ce jeu peut aussi se jouer en multijoueurs sur internet ou un réseau local. À essayer sur www.wesnoth.org.

lundi, février 18 2008

Son 3D

À écouter avec des écouteurs uniquement, c'est assez impressionant:
http://www.sajithmr.com/downloads/Barbershop.mp3

Si j'ai bien compris l'algorithme décale le son entre l'oreille droite et gauche et notre cerveau fait le reste en s'imaginant la provenance du son. Des infos ici : http://www.audiologyonline.com/news/news_detail.asp?news_id=6

mardi, décembre 4 2007

Disque dur externe et formatage

Il y a quelques semaines j'acquérais un disque dur externe de 500 Go, dans le but de faire des sauvegardes de mon travail et de stocker plein de fichiers dont ma musique et mes photos. Etant plus ou moins contraint d'alterner l'utilisation MacOS X et Linux sur mon portable, il me fallait le formater en utilisant un système de fichier qui soit supporté en lecture et écriture par ces deux systèmes d'exploitation. Bien sûr il y aurait le FAT mais ce système, très utilisé, est aussi passablement limité par la taille des fichiers, le nombre de fichier par répertoire et l'absence de gestion de droits d'accès sans parler de sa tendance à la fragmentation. J'ai tout d'abord tenté ma chance avec le système EXT2/3 grand classique sous Linux pour lequel il existe une extension pour OS X (disponible ici: http://sourceforge.net/projects/ext2fsx/ ), manque de bol le support de l'écriture est boiteux sous Tiger (OS X 10.4) et inexistant pour les versions plus récente, donc impossible d'écrire sur le disque en utilisant MacOS. Je me suis donc rabattu sur l'option que je n'avais d'abord pas considéré, c'est simplement l'utilisation du système HFS+ (celui d'OS X) en mode non journalisé. Apparament le support est bon sous Linux j'arrive à lire et à écrire sous les deux OS, moyennant quelques petits réglages des ID groupes et utilisateurs. Voilà c'était la page geek du jour.

PS: quelques liens wikipédia pour ceux qui voudraient s'instruire:

lundi, octobre 29 2007

Petite vidéo

C'était dimanche après une petite envie de m'amuser avec mon nouveau trépied, mon appareil photo et mon MacBook est survenue; le résultat après quelques 700 images prises à raison d'une toutes les 10 secondes, puis compressées en mpeg (en utilisant ffmpeg comme il se doit...):

Lugano
vidéo mpeg env. 4.7 Mo (clic-droit puis sauver sous... si la lecture ne se passe pas correctement dans votre navigateur)

mardi, septembre 25 2007

Sujet de mon doctorat

Il y a plusieurs personnes qui m'ont déjà posé la question: "Et c'est quoi le sujet de ton doctorat ?". Question à ne pas poser, si l'on ne veut pas se confronter à quelques heures d'explications. En tentant de répondre à cette question ici je vous laisse la liberté de lire (ou pas) une tentative de réponse compréhensible.

Allons y franchement et en anglais le sujet qui me voit suer de si longues heure peut se résumer en trois mots: Java bytecode instrumentation. Trois mots que je vais tenter d'expliquer au mieux avec mes maigres compétences de vulgarisation.

Java

Java, c'est le nom d'un langage de programmation qui a connu une forte progression ces dix dernières années. Un langage de programmation a la particularité d'être compréhensible (enfin presque) par un être humain tout en étant structuré de manière suffisament logique et claire pour être ensuite compilé, c'est-à-dire traduit en code machine (qui peut être exécuté par la machine). Lors de la compilation, le code produit est spécifique au type de machine et au système d'exploitation ciblé pour l'éxécution, il existe divers type de processeurs (Pentium, PowerPC, Sparc, AMD 64) qui comprennent divers ensembles d'instructions (ils ne parlent pas tous la même langue). Pour exécuter le même programme sur des machines différentes il faudra le compiler plusieurs fois. Java est un peu différent, il a la particularité d'être compilé avec pour cible une machine virtuelle. Le but étant que le code généré soit éxécutable sur n'importe quel ordinateur pour autant qu'il possède cette machine virtuelle. Cette dernière est un programme qui se charge de faire le lien entre le code Java compilé et les différentes machines physiques. Pour plus d'infos: technologie Java (sur Wikipédia)

Bytecode

Le bytecode Java est l'ensemble des instructions qui sont éxécutées sur la machine virtuelle, c'est une sorte d'assembleur, donc des instructions simples (charger une valeur, additioner, mettre en mémoire, appeler une fonction, etc.). C'est en quelque sorte le code machine Java. Plus d'infos: bytecode Java (sur Wikipédia).

Instrumentation

C'est là que ça devient intéressant, c'est là que j'interviens. Il est possible d'insérer et de modifier ces instructions. Ce genre de manipulation est utile pour étudier l'éxécution d'un programme, c'est le profiling, qui donne des informations sur la mémoire utilisées, les parties du code souvent éxécutées, etc. Ces informations seront ensuite utilisées par le développeur pour optimiser son programme. Donc en résumé: mon but est d'insérer des instructions dans des programmes compilés pour obtenir des informations sur leur éxécution. Un des avantages de cette technique c'est qu'on n'a pas besoin du code source du programme à étudier. On peut utiliser des techniques similaires pour faire de l'allocation dynamique de ressources (mémoire, processeur, etc) en surveillant la consommation des programmes. Voilà c'est grosso modo ce que je fais de mon temps à l'université.

mardi, juillet 31 2007

MacBook Pro

J'ai reçu la semaine passée mon nouvel ordinateur portable offert par l'Université de Lugano, il s'agit d'un MacBook Pro avec:

  • Processeur Intel Core 2 Duo à 2.33 Ghz
  • 2 Go de RAM
  • Disque dur de 120 Go
  • 2x USB 2.0 + FireWire
  • Gigabit Ethernet, Wifi
  • ATI Radeon X1600 avec 256Mo de RAM

En bref c'est une belle machine à la fois bien puissante et bien finie, moi qui avait pris l'habitude de bidouiller des vieilles bécanes que plus personne n'utilisais...

Que les libristes ne s'en fasse pas trop, j'ai d'ores et déjà installé un dual boot Linux, Debian sid (unstable) et configuré l'essentiel dont la carte graphique et le wireless.

mercredi, juin 20 2007

Conférence de Richard Stallman - Logiciel libre

Le 18 juin avait lieu à l'Université de Lausanne une conférence de Richard Stallman sur le thème "Ethique et Pratique du Logiciel Libre...". Ce dernier étant le fondateur de la Free Software Foundation (Fondation pour le Logiciel Libre)et étant à l'origine de la philosophie du logiciel libre. Comme plusieurs le savent déjà je suis un utilisateur enthousiaste et convaincu de logiciels libres, je m'y suis donc rendu avec quelques autres amateurs. Le compte rendu de cette conférence me permettra d'aborder la définition de base du logiciel libre et d'en exposer les tenants et aboutissants.

Le cadre

La salle est bien remplie, le look général indique qu'on n'a pas affaire en majorités à des membre de la faculté HEC qui organisait l'évènement, mais bien plus à des étudiants de l'EPFL, de membres de divers services informatiques du campus et de divers passionnés. Après quelques informations techniques sur la conférence, la parole est donnée à Richard Stallman qui s'exprime dans un bon français (même un peu Suisse avec ces septante et nonante).

Les libertés fondamentales

Les 4 libertés fondamentales (reprises telles quelles sur de la page www.gnu.org/philosophy/free-sw.fr.html):
  • La liberté d'exécuter le programme, pour tous les usages (liberté 0).
  • La liberté d'étudier le fonctionnement du programme, et de l'adapter à vos besoins (liberté 1). Pour ceci l'accès au code source est une condition requise.
  • La liberté de redistribuer des copies, donc d'aider votre voisin, (liberté 2).
  • La liberté d'améliorer le programme et de publier vos améliorations, pour en faire profiter toute la communauté (liberté 3). Pour ceci l'accès au code source est une condition requise.

Une logiciel livré sous une licence qui respecte ces 4 points est un logiciel libre. Un logiciel qui ne les respecte pas, est généralement dit propriétaire. Durant la conférence Stallman utilise le terme de logiciel privateur, dans le sens que l'utilisateur est privé de ces libertés, que ça soit au niveau de l'utilisation, de la copie ou de l'étude/amélioration du programme.

Quelques explications

Après un rapide exposé de ces libertés, Stallman donne quelques explications avec aussi des exemples concrets: Imaginons l'absence de la deuxième liberté, si quelqu'un me demande une copie du logiciel, je me trouve devant un dilemme: dois-je l'aider en lui donnant une copie mais en violant la licence ou respecter la licence et refuser de lui venir en aide? Le logiciel privateur est une atteinte à la solidarité. Pour éviter le dilemme deux solutions: ne pas avoir d'amis ou ne pas avoir de logiciels privateurs. Les libertés 0 et 1 permettent le contrôle de son informatique: en pouvant utiliser les programmes pour une utilisation quelconque et sans restrictions (nombre de copies, d'utilisateurs, de machines installées, etc). De plus la liberté 1 permet en ayant accès au code source d'être au courant de ce que contient le programme et ce qu'il fait. Par exemple de nombreux logiciels privateurs commerciaux mettent dans leurs programmes des systèmes de surveillance fonctionnant à travers des backdoors, Windows en est l'exemple le plus connu, avec les informations envoyées entre autres par le système de mises-à-jour. Il y a aussi Windows Media Player et Real Player qui sont réputés enregistrer la liste du contenu joué.

Brevets informatiques

Aussi appelés brevets logiciels, ce sont en fait de brevets posés sur des idées qui sont par la suite utilisées par des développeurs pour écrire des programmes. Le problème est que ces idées sont très nombreuses et couramment utilisées par les programmeurs, et le fait de breveter ces idées rend difficile d'écrire un programme sans être menacés de poursuites. De plus ils donneraient l'avantage aux grosses entreprises qui peuvent acquérir ces brevets et ont moins de problème à couvrir leurs frais de justice.

L'école et le libre

Dans cette partie de son discours Stallman encourage l'utilisation de logiciels libres dans les écoles, pour les raisons suivantes:

  • la première est la moins importante est économique, pas de frais de licence.
  • des grosses boîtes de logiciels offrent des licences aux écoles, mais cette pratique tend à rendre les élèves dépendant d'un logiciel en particulier qui ne lui sera plus gratuitement mis à disposition une fois ces études terminées. Il me cette pratique avec celle des dealers de drogue qui offre généreusement la première dose.
  • cela peut aussi permettre aux élèves intéressé par l'informatique de comprendre comment marchent les logiciels qu'il utilise. L'accès au code source de programmes aboutis peut en outre s'avérer utile pour apprende à bien programmer.
  • le libre permet aussi d'enseigner un esprit de partage et de solidarité.

Le vote éléctroniqe

Brièvement Stallman a pris position contre le vote électronique qui n'offre pas actuellement des garanties suffisantes de sécurité. Il cite l'exemple d'un président américain qui a volé deux fois la présidence.

Instant de délire


Stallman a revêtu ses attributs de St-iGNUcius de l'église d'emacs. Et a lancé quelques délires à ce sujet. Voir son site:stallman.org/saint.html, en anglais et à prendre au moins au (quarante-)deuxième degré...

Liens

Quelques liens:

jeudi, juin 14 2007

Hello World!

Ayant acquis le titre d'ingénieur informaticien diplômé EPFL ce printemps, je vais forcément aborder un peu d'informatique sur ce blog, mais j'essayerais de rester accessible au plus grand nombre. Vous comprendrez vite que je suis assez fan de logiciel libre et de tout ce qui tourne autour, je donnerais plus d'explications par la suite. La liberté est laissée au lecteur d'essayer de suivre cette catégorie (ou pas!).