Olivier Mengué – Code & rando

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

samedi 3 novembre 2007

Une icône pour les liens vers Wikipédia

J'ai juste ajouté une petite touche à la feuille de style de ce blog (dont j'ai déjà longuement parlé en anglais) : une petite icône pour signaler les liens vers Wikipédia.

J'ai récupéré l'icône du site en ligne de commande avec Wget :

$ wget -O wikipedia.ico http://fr.wikipedia.org/favicon.ico
--19:23:35--  http://fr.wikipedia.org/favicon.ico
           => `wikipedia.ico'
Résolution de fr.wikipedia.org... 145.97.39.155
Connexion vers fr.wikipedia.org|145.97.39.155|:80... connecté.
requête HTTP transmise, en attente de la réponse... 200 OK
Longueur: 318 [image/x-icon]

100%[====================================>] 318           --.--K/s             

19:23:35 (30.79 MB/s) - « wikipedia.ico » sauvegardé [318/318]

Je l'ai ensuite convertie à la taille 14x14 au format GIF avec l'outil convert d'ImageMagick :

$ convert wikipedia.ico -resize 14x14 wikipedia.gif

L'image résultante faisait 595 octets. L'utilisation de l'application en ligne Image Optimizer m'a permis de réduire le nombre de couleurs de l'image à 16 et de réduire la taille à 167 octets.

En suivant Megan McDermott, j'ai modifié ma feuille de style pour ajouter la ligne suivante :

Il peut être utile parfois de désactiver ce style localement ou pour les blocs de code :

pre.code a:link, pre.terminal a:link,
.no-link-icon a:link,
a:link.no-icon
{ background: inherit; padding-right: inherit }

Mise à jour 2007-11-05 à 22:25 : mes règles pour les exceptions ne fonctionnent pas ! Je me suis fait avoir par les règles de précédence des règles CSS ! Il va falloir que je corrige cela...

Mise à jour 2007-11-05 à 22:46 : voici, j'espère, la correction. Il faut que j'augmente le poids des règles d'exception en augmentant le nombre d'attributs ou de pseudo-classes dans le sélecteur.

pre.code a:link[href], pre.terminal a:link[href],
.no-link-icon a:link[href],
a:link.no-icon[href]
{ background: inherit; padding-right: inherit }

Rotation JPEG sans perte, suite

Suite à mon précédent post, j'ai profité qu'exiftool est un module Perl pour re-développer en Perl mon outil de rotation des images JPEG vraiment sans perte. Voici ci-dessous le code et les astuces pour l'intégration dans Nautilus.

Lire la suite...

dimanche 21 octobre 2007

Rotation JPEG vraiment sans perte

Avez-vous déjà examiné en détail les méta-données EXIF d'une photo numérique après une rotation soit-disant « sans perte » ? Si vous l'avez fait avec un outil tel que exiftool, vous avez sûrement du constaté la catastrophe. Certains outils de rotation perdent toutes les données EXIF, d'autres une partie des paramètres de prise de vue ou le champ Software... Et aucun ne fait la rotation des imagettes de prévisualisation, ni ne préserve la date de création originelle du fichier. J'ai essayé sous Ubuntu 7.10, F-Spot, jpegtran (paquet libjpeg-progs) et exiftran. Chacun a ses défauts.

Je vous propose donc ici la solution personnalisée que j'ai développée ce week-end en utilisant jpegtran et exiftool. Ce n'est pas forcément une solution universelle, mais elle est satisfaisante pour les photos issues de mon APN (sous réserve que mon outil d'observation

Lire la suite...

dimanche 2 septembre 2007

Le clavier français sous le DOS de Vista

Mise à jour 2008-08-30 : Cette astuce a été sélectionnée par le magazine L'Ordinateur Individuel et publiée dans le numéro 208 (septembre 2008) page 136 comme astuce du mois.

Nostalgie, nostalgie... le DOS c'est toute ma jeunesse. Le manuel du MS-DOS 5.0 est d'ailleurs le premier livre d'informatique que j'ai lu. Même sous Windows, j'ai toujours systématiquement une fenêtre d'« invite de commandes » toujours ouverte. Et la première chose que je fais sur un nouveau PC Windows, c'est d'assigner le raccourci Ctrl+Alt+C à l'invite de commandes MS-DOS. La deuxième, c'est Ctrl+Alt+N pour le Bloc-Notes (N comme NotePad). Et la troisième, c'est d'installer mon fichier .INF qui ajoute une entrée Ouvrir un shell dans le menu contextuel de l'Explorateur Windows.

Alors de temps en temps je vais voir comment évoluent les articles de Wikipédia dédiés au MS-DOS pour vérifier qu'ils ne racontent pas trop de bêtises, les corriger à l'occasion, et éventuellement encore apprendre quelque chose. C'est donc dans la section Windows NT que j'ai vu quelques commandes que j'ai vu quelques commandes que j'ai voulu vérifier par l'expérience sur Windows Vista.

Microsoft Windows [version 6.0.6000]
Copyright (c) 2006 Microsoft Corporation. Tous droits réservés.

C:\Users\Dolmen>ver

Microsoft Windows [version 6.0.6000]

C:\Users\Dolmen>command /k ver

MS-DOS Version 5.00.500


C:\USERS\DOLMEN>

Rien de spécial jusque là.

C:\USERS\DOLMEN>cd 

Mais là, oh stupeur ! Pas moyen de taper un '\'. La combinaison de touches AltGr+8 ne fonctionne pas ! En fait, le clavier est en QWERTY dans COMMAND.COM !

En investiguant un peu plus, j'ai pu vérifier que ce sont tous les programmes pur MS-DOS qui ne tiennent plus compte de la configuration du clavier français mais utilisent au lieu de cela une configuration américaine du clavier. Par exemple debug.exe ou edit.com. Vous pouvez tester avec tous les .COM (ceux-là, contrairement aux .EXE, vous êtes sûrs que ce sont des programmes DOS) :

C:\Users\Dolmen>dir %windir%\System32\*.com
 Le volume dans le lecteur C s'appelle XXX
 Le numéro de série du volume est YYYY-ZZZZ

 Répertoire de C:\Windows\System32

02/11/2006  10:31            11 776 chcp.com
02/11/2006  09:09            50 648 COMMAND.COM
02/11/2006  10:32            13 824 diskcomp.com
02/11/2006  10:32            11 264 diskcopy.com
18/09/2006  23:43            69 886 edit.com
02/11/2006  10:32            35 328 format.com
02/11/2006  10:35            56 320 graftabl.com
02/11/2006  09:09            19 694 GRAPHICS.COM
02/11/2006  09:09            14 710 KB16.COM
02/11/2006  09:09             1 131 LOADFIX.COM
02/11/2006  10:32            25 088 mode.com
02/11/2006  10:32            20 992 more.com
02/11/2006  10:32            16 384 tree.com
02/11/2006  10:35             6 656 win.com
              14 fichier(s)          353 701 octets
               0 Rép(s)  VV VVV VVV VVV octets libres

Vous aurez peut-être noté la présence de KB16.COM qui semble une piste à explorer :

C:\USERS\DOLMEN>kb16 /?
Configures a keyboard for a specific language.

KEYB [xx[,[yyy][,[drive:][path]filename]]] [/E] [/ID:nnn]

  xx                      Specifies a two-letter keyboard code.
  yyy                     Specifies the code page for the character set.
  [drive:][path]filename  Specifies the keyboard definition file.
  /E                      Specifies that an enhanced keyboard is installed.
  /ID:nnn                 Specifies the keyboard in use.

C:\USERS\DOLMEN>chcp
Page de codes active : 850

C:\USERS\DOLMEN>kb16 fr,850 /E

C:\USERS\DOLMEN>

Voilà, c'est réparé... pour cette session ! Mais au prix de la perte de 6 Ko de mémoire conventionnelle (comparer avant et après avec mem /C). Et vous aurez noté que KB16.COM n'est pas traduit : Microsoft ne semble plus attacher autant d'importance à la traduction de ses produits.

Mise à jour 2008-10-20 : La solution ci-dessous est obsolète. J'ai trouvé la vraie solution au problème, bien plus simple. Sautez au commentaire 26.

Pour charger automatiquement KB16.COM dans les prochaines sessions, il faut ajouter l'appel dans %windir%\System32\autoexec.nt. Mais comme avec Vista, rien n'est simple en raison de la protection paranoïaque des commandes d'administration, voici la marche à suivre :

  1. Dans le menu Démarrer, Tous les programmes, Accessoires, cliquez avec le bouton droit sur Invite de commandes puis Exécuter en tant qu'administrateur.
  2. Chargez le clavier français et lancez edit.com :
    Microsoft Windows [version 6.0.6000]
    Copyright (c) 2006 Microsoft Corporation. Tous droits réservés.
    
    C:\Windows\system32>KB16 fr,850 /E
    
    C:\WINDOWS\SYSTEM32>edit autoexec.nt
    
    Pourquoi edit.com ? On aurait pu aussi utiliser le Bloc-Notes (notepad.exe). Sauf que l'on souhaite ici entrer des accents qui seront affichés dans la page de code du terminal, c'est à dire 850. Or le Bloc-Notes ne connaît que les encodages ANSI (cp1252), Unicode (ucs-2le), Unicode Big Endian (ucs2-be) et UTF-8.
  3. Tapez Ctrl+Fin et collez les lignes suivantes (pas avec Copy du menu Edit d'edit.com, mais avec Modifier, Coller dans le menu système de la fenêtre) :
    lh %SystemRoot%\system32\KB16 fr,850 /E
    if not errorlevel 1 echo Clavier français activé.
    
  4. Quittez en enregistrant : Alt+F, x, Entrée.

mardi 28 août 2007

TiddlyWiki and favicon

TiddlyWiki is a standalone wiki that is fully interactive and fully contained in a single HTML file. Here is a tip to add a favicon to your wiki.

To enable saving you have to give to the browser some special permissions allowing the JavaScript code to write to your disk. When using it with Microsoft Internet Explorer, the easy way to enable saving is to just rename your wiki as .hta to transform it into an "HTML Application", as Microsoft calls it.

But you can do better with HTML Applications than just decreasing the security level. I was particularly interested in a better integration with Windows. I wanted in particular to change the icon of the window that appears in the taskbar (I commonly have about 30-40 windows opened on my desktop). This is quite easy: you just have to add an <HTA:APPLICATION ICON="myfile.ico"> tag the <head> section of the HTML file.

Here is how to do it the TiddlyWiki way:

  1. Get an icon and save it as tiddlywiki.ico in the same directory as your wiki.hta file. For example: http://www.tiddlywiki.org/favicon.ico. You can also create you own icon here or here.
  2. Edit the built-in tiddler MarkupPreHead
  3. Insert the following text just after <!--{{{-->:
    <!--[if IE]>
    <HTA:APPLICATION ID="oHTA" APPLICATIONNAME="My wiki" ICON='tiddlywiki.ico'/>
    <![endif]-->
    <link rel='shortcut icon' href='tiddlywiki.ico' type='image/vnd.microsoft.icon '/>
    
  4. Reload your wiki.hta. That's it!

I now have to explore how to convert this to a plugin...

dimanche 12 août 2007

Stations Vélib’ : v2.0

Voici une nouvelle version de mon script de conversion des stations Vélib’ en base POI pour Maemo Mapper sur Nokia N800 (voir mon post précédent).

Parmi les améliorations :

  • un script pour automatiser le processus de transformation 
  • le renseignement du champ poi_id, ce qui corrige le problème d'édition des POI 
  • un index sur la table POI sur les champs latitude, longitude en espérant que cela améliore les temps d'accès. En pratique, je n'ai constaté aucune amélioration ;
  • 4 catégories de POI au lieu d'une seule, pour créer votre propre base des stations : Station Vélib’, Station Vélib’ corrigée, Station Vélib’ validée, Station Vélib’ erronée ;
  • des modifications d'implémentaiton XSLT : l'utilisation de xsl:foreach et un traitement exhaustif des caractères de l'adresse de la station.

Lisez la suite pour le nouveau code...

Lire la suite...

jeudi 2 août 2007

Une carte des stations Vélib’ sur Nokia N800

Vélib’, c'est génial ! Abonné depuis deux jours et déjà accro ! Vive le vélo Plug'n Play ! Vive le vélo jetable !

Néanmoins, un outils devient vite indispensable : la carte des stations.

Je suis l'heureux propriétaire d'un Nokia N800 : c'est une « tablette Internet », avec connexions wifi, Bluetooth et un écran 800x480. Le tout fonctionne avec un système ouvert : Linux. Et ça tient dans la poche.

Le logiciel Maemo Mapper pour le N800 permet de télécharger des fonds de carte (Google Maps notamment) et de les afficher. Ces cartes peuvent aussi être récupérées dans un cache pour consultation hors-ligne. Ainsi on peut avoir tous les plans de Paris de Google Maps dans la poche, sans connexion Internet. Maemo Mapper peut aussi afficher les informations d'un GPS Bluetooth.

J'ai donc créé une base de points d'intérêt (POI) pour afficher les stations Vélib’ dans Maemo Mapper.

Mais ma source des données pour les emplacements des stations n'est pas libre : il s'agit du fichier XML publié sur le site officiel (http://www.velib.paris.fr/service/carto, voir ce forum). Je préfère donc éviter de distribuer le fichier terminé. Je vais par contre vous expliquer comment recréer vous-même ce fichier.

Photo de mon N800 avec Maemo Mapper affichant un plan de Paris avec les stations Vélib'

Lisez la suite de ce post pour voir le code...

Lire la suite...

samedi 25 novembre 2006

Django aux Journées Perl 2006

Hé oui, Django c'est du Python, et pourtant on j'en parlerais aux Journées Perl 2006 ce week-end à la Cité des Sciences et de l'Industrie.

J'ai deux présentations au programme :

  • 14h00 Introduction aux ORM : un introduction générale sur les ORM et une présentation du modèle de données utilisé en commun dans plusieurs des présentations : un mini modèle représentant une association de randonneurs.
  • 14h10 Les modèles de Django : une petite introduction générale sur Django puis l'accent sera mis sur la définition des modèles Django, l'API de requêtes et comment les spécificités de Python sont utilisées. L'objectif est de montrer un modèle de conception d'ORM et comment le sucre syntaxique du langage peut être mis à profit.

Je vous invite à aller voir les autres présentations sur les ORMs qui ont lieu le samedi après-midi.