Blog Haypo

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

dimanche 13 juillet 2008

Mon poste de travail

Je suis devant mes ordinateurs de 8h jusqu'à plus de 16h certains jour. Mon poste de travail est donc critique. Je vous invite pour une petite visite, voir l'antre depuis lequel je télétravaille.

Bien sûr, j'ai tout rangé pour la photo :-) La chaise avec dossier en cuir est rigide et s'incline quand je me penche en arrière. Les pieds du bureau sont dans les coins, donc en pratique, j'ai énormément d'espace pour les jambes. L'imprimante dans un coin est une imprimante laser noir et blanc : HP LaserJet 2015. Elle est parfaitement compatible Linux, imprime la première page en 8,5 secondes et les suivantes suivent immédiatement. La machine à café, Magimix de Nespresso, n'est pas compatible Linux mais produit un excellent café :-)

J'utilise deux écrans en 1280x1024 pixels côte à côte, chacun branché sur un ordinateur différent : un portable (écran au fond en jaune) et un fixe (fond bleu). C'est des écrans LCD 17 pouces que je trouve agréables. Je n'ai pas réellement noté de différence avec un écran CRT... mis à part l'encombrement : les écrans prennent juste 5 cm en profondeur, ce qui laisse toute la place à mes bras.

Grâce à Synergy, je n'utilise qu'un seul couple clavier-souris pour les deux ordinateurs. Il suffit de passer le curseur de la souris sur le bord de l'écran pour changer de machine. Le copier-coller fonctionne dans les deux sens, même quand j'utilise Windows sur une des machines. Le clavier est un Logitech UltraX : sensisble, silencieux et assez lourd pour être stable. Je voulais essayer un clavier « plat » et j'en suis plutôt satisfait, c'est agréable.

Ma souris n'est pas une souris mais une trackball : Logitech Cordless Optical TrackMan. Ce périphérique épouse la forme de la main. C'est beaucoup plus reposant qu'une souris, les muscles sont moins contractés.

J'ai toujours une souris (secondaire) dans un coin pour Gimp ou quand la trackball m'énerve. Effectivement, une trackball est moins précise qu'une souris, en particulier pour cliquer sur une zone de 10x10 pixels ou moins. Exemples : fermer une fenêtre en cliquant sur la croix, case à cocher dans un formulaire web, sélectionner une ligne de texte dans une page web ou document PDF, etc. Je redécouvre l'ergonomie par la pratique :-)

Pour finir, la déco. En face, un poster de Gilles Tran (Main Street (West)), à côté une peinture de Dalí (Une femme à la fenêtre), et à gauche un poster de Gaston dessiné par Franquin ramené du musée de la bande dessinée de Bruxelles :

Fin de la visite, n'oubliez pas le guide (laissez un commentaire ;-)).

mardi 19 février 2008

Le fournisseur d'accès à Internet Free

Depuis Octobre 2006, je suis abonné au fournisseur d'accès Internet Free. Situé à 900 mètres du DSLAM, l'affaiblissement de ma ligne (ADSL 2+) est de 13 dB. Le téléphone (VoIP) fonctionne plutôt bien et la télévision également : je peux enregistrer une émission tout en regardant un film. L'appel à l'international est gratuit dans de nombreux pays et bon marché pour les autres. Note : l'appel aux États-Unis est gratuit... mais pas pour l'Alaska (qui un état des États-Unis) !? L'appel en Alaska coûte 22 centimes la minute (tiens, je vois dans la grille tarifaire que l'appel en Alaska est aussi noté comme gratuit !?).

Employé en télétravail, la stabilité de ma connexion Internet est primordiale. De mémoire, en 17 mois, j'ai du avoir à peu près 30 minutes d'interruptions de services (plus d'internet du tout). Ce qui donne une fiabilité de 99,996%. Début 2007, la télévision était parfois hors-service, mais ça n'arrive plus aujourd'hui. J'ai choisi le mode PATATE de l'option Fastpath : « synchronisation ADSL sans bridage (jusqu'à 24 Mbit/sec) et sans seuil minimum sur le bruit, mais peut entraîner des erreurs et des pertes de paquets ».

Fin novembre dernier, le code source du site grenouille.com est passé sous licence AGPLv3. J'en ai profité pour m'inscrire à ce service : consultez mes graphiques de vitesse de téléchargement. La vitesse de téléchargement varie entre 800 et 1200 Ko/sec, la vitesse d'envoi semble bridée à 100,0 Ko/sec et le ping est d'environ 35 ms.

C'est vraiment très agréable d'avoir une aussi grosse bande passante avec une si bonne fiabilité. Pour finir, je paie 29,99€ en tout pour Internet, la télévision et le téléphone.

Note : Le support Free est difficilement joignable et totalement incompétent. Si vous avez le moindre problème avec votre connexion, c'est la croix et la bannière... Free est plutôt binaire : soit ça marche (bien), soit ça marche pas (du tout).

samedi 26 janvier 2008

Jeu de caractères Unicode

Unicode est un hydre : lorsqu'on découvre Unicode, chaque point éclairci va faire surgir deux nouvelles questions ! Cet article tente de démystifier Unicode en présentant quelques particularités de ce jeu de caractères.

Unicode 5.0

Unicode est un jeu de caractères incluant tous les autres jeux de caractères existant : c'est un surensemble qui est donc forcément plus gros. La dernière version publiée date de juillet 2006 : la norme Unicode 5.0.

Nombre de caractères :

  • Caractères graphiques : 98.884 (lettres, marqueurs, chiffres, ponctuations, symboles et espaces)
  • Code de formatage : 140 (séparateurs de ligne et de paragraphe, sens du texte, ...)
  • Code de contrôle : 65 (héritage de l'ASCII)
    • U+00–U+1F
    • U+7F–U+9F
  • Caractères à usage privé : 137.468 (l'émetteur et le récepteur peuvent définir leurs propres codes)
    • U+E000–U+F8FF
    • U+F0000–U+FFFFD
    • U+100000–U+10FFFD
  • Codes surrogates : 2.048
    • U+D800–U+DBFF : Low surrogates
    • U+DC00–U+DFFF : High surrogates
    • Pour UTF-16, les codes U+10000 à U+10FFFF sont encodés sur deux mots de 16 bits :
      • On retire 0x10000 au code : 0x10000..0x10FFFF => 0x0000..0xFFFF
      • On découpe le résultat en deux valeurs de 10 bits chacune
      • Finalement, le premier mot est : 0xD800 + (code-0x10000) & 0x003FF (10 bits de poids faible)
      • Et le deuxième mot est : 0xDC00 + ((code-0x10000) >> 10) & 0x003FF (10 bits de poids fort)
    • Les surrogates sont donc des codes Unicode interdits pour éviter de confondre un code avec un mot d'UTF-16
  • Non caractères : 66
    • Codes terminés par 0xFFFE en hexadécial : U+FFFE, U+1FFFE, ... U+10FFFE (17 codes). Codes interdits pour que le code U+FEFF puisse servir comme marqueur d'endian pour les encodages UTF-16 et UTF-32.
    • Codes terminés par 0xFFFF en hexadécial : U+FFFF, U+1FFFF, ... U+10FFFF (17 codes). Peuvent être utilisé dans une implémentation d'Unicode comme « valeur maximale ».
    • U+FDD0–U+FDEF
  • Codes réservés : 875.441 (réservés pour des usages futurs)

Unicode 5.0 contient donc 1.114.112 codes caractères : codes 0x000000 à 0x10FFFF.

Les codes 0x0000 à 0xFFFF constituent ce qu'on appelle le « Plan multilingue de base » (abrégé BMP en anglais).

Sérialisation d'Unicode

Un octet ne pouvant contenir que 256 codes différents, Unicode a besoin d'un encodage sur plusieurs octets pour chaque code. Il existe de nombreux encodages :

  • UTF-7 : mots de 7 bits (le 8e bit peut être utilisé comme bit de parité)
  • UTF-8 : mots de 8 bits
  • UTF-EBCDIC : mots de 8 bits (compatible avec le jeu de caractère EBCDIC)
  • CESU-8 : mots de 8 bits (mélange entre UTF-8 et UTF-16)
  • UTF-16 : mots de 16 bits (UTF-16LE et UTF-16BE pour little endian et big endian)
  • UTF-32 : mots de 32 bits (UTF-32LE et UTF-32E)

Il existe également les algorithmes SCSU et BOCU qui servent à compresser un texte Unicode sérialisé.

Exemple avec Python 2.5 :

>>> u'é'.encode('utf8')
'\xc3\xa9'
>>> u'é'.encode('UTF-16LE')
'\xe9\x00'
>>> u'é'.encode('UTF-16BE')
'\x00\xe9'

Caractère U+AF05 :

>>> u'\uAF05'.encode('utf8')
'\xea\xbc\x85'
>>> u'\uAF05'.encode('UTF-16LE')
'\x05\xaf'
>>> u'\uAF05'.encode('UTF-16BE')
'\xaf\x05'

Encodage Punycode

L'algorithme Punycode, normalisé par la RFC 3492, sert à convertir un nom de domaine Unicode sous forme ASCII : lettres A à Z, chiffres 0 à 9 et le caractère « - ». L'algorithme est réversible : on peut convertir un punnycode en Unicode sans perte d'information. Cet encodage est surtout utilisé pour les noms de domaine Unicode (serveurs DNS) : les Internationalized Domain Names (IDN). Lire le billet de Stéphane Bortzmeyer sur les IDNA.

Exemple avec Python 2.5 :

>>> from encodings.idna import ToASCII, ToUnicode
>>> ToASCII(u'café')
'xn--caf-dma'
>>> print ToUnicode('xn--caf-dma')
café

Normalisation d'un caractère

On peut composer un caractère. Le caractère « ä » peut s'écrire « a » + umlaut (U+308). Il existe trois caractères correspondant dans la table Unicode :

  • U+61 : « a », lettre A
  • U+E4 : « ä », lettre A avec umlaut
  • U+308 : « ¨ », umlaut

Donc U+E4 et (U+61, U+308) sont équivalents. Il existe des outils pour normaliser selon les différentes formes :

  • NFD (Forme normale D) : décomposition canonique
  • NFC (Forme normale C) : décomposition canonique suivie d'une recomposition des caractères précomposés
  • NFKC (Forme normale KC) : décomposition de compatibilité, c'est-à-dire remplace les caractères de compatibilité par leurs équivalents
  • NFKD (Forme normale KD) : décomposition de compatibilité suivie d'une décomposition canonique

Exemple avec Python 2.5 (Décompose puis Compose) :

>>> from unicodedata import normalize
>>> list(normalize('NFD', u'ä'))
[u'a', u'\u0308']
>>> list(normalize('NFC', u'a\u0308'))
[u'\xe4']

Conclusion

Unicode est un sacré bordel ! Les gens habitués à manipuler ASCII et son jeu de caractère ridicule de 128 codes sont perdus. Même ceux habitués à ISO-8859-15 flambant neuf avec son euro bling-bling (€) sont perdus car ils connaissent presque les 256 codes par cœur. Unicode contient plus d'un million de codes qu'on peut écrire d'un millier de manières différentes !

Néanmoins, c'est un pari sur l'avenir car on peut enfin mélanger sans broncher des textes dans n'importe quel langue. D'ailleurs, on peut changer l'ordre d'affichage pour les écritures de droite à gauche et inversement. Les encodages UTF-8, UTF-16 et UTF-32 simplifient la détection de l'encodage et sont plus simples que leurs ancêtres (ex: Shift JIS et ses nombreux codes de contrôle). UTF-8 est le charset ultime pour l'interopérabilité car il n'a pas de problème d'endian, est simple à détecter et peu coûteux en place pour l'encodage d'ISO-8859-1.

vendredi 4 janvier 2008

Évolutions des interfaces utilisateurs

Les périphériques de pointage les plus connus sont le clavier et la souris, tous deux inventés dans les années 1960. Depuis Windows 95, le clavier a gagné 3 « touches Windows », passage de 102 à 105 touches. La souris est passé de 2 boutons à 3 boutons, puis a gagné une roulette verticale. Certaines souris ont également une roulette horizontale et plus de 4 boutons. Il existe également les souris inversées : les trackballs, plus reposant pour le poignet mais moins précises (je trouve). Malgré tous ces changements, il n'y a rien de révolutionnaire. Voyons les interfaces multitouch, la Wii et autres innovations bien plus rigolotes :-)

Lire la suite

mardi 18 décembre 2007

Nom de domaine et Apache en IPv6

J'héberge plusieurs sites Internet, la série hachoir.org, sur mon serveur personnel. Le serveur repose sur Ubuntu Feisty (il faudrait que je pense à migrer à Gutsty...) et exécute Apache, Trac, SSH, Courier (serveur IMAP), MySQL, etc. Histoire de permettre à mes visiteurs d'accéder aux sites Internet en IPv6, je suis allé voir dans le manager OVH si je peux créer un enregistrement DNS de type AAAA. Comme je le craignais, OVH ne supporte pas les champs AAAA.

J'ai alors décidé d'héberger le nom de domaine hachoir.org chez Xname.org qui offre une configuration complète, rien à voir avec OVH. On a accès aux paramètres TTL et à tous les types de champ existant. Voici ma configuration :

$ host -a hachoir.org
(...)
hachoir.org.            3395    IN      NS      ns0.xname.org.
hachoir.org.            3395    IN      AAAA    2a01:5d8:58a0:425b:216:76ff:feab:79ed
hachoir.org.            86198   IN      A       88.160.66.91
hachoir.org.            3395    IN      NS      ns1.xname.org.

Chaque sous-domaine est un alias vers le domaine principal (hachoir.org) :

$ host fusil.hachoir.org
fusil.hachoir.org is an alias for hachoir.org.
hachoir.org has address 88.160.66.91
hachoir.org has IPv6 address 2a01:5d8:58a0:425b:216:76ff:feab:79ed

Comme OVH utilise un TTL d'une journée par défaut, j'ai attendu deux jours pour tester ma nouvelle configuration DNS. J'ai installé l'extension ShowIP de Firefox pour vérifier ma configuration. Au passage, je déteste Firefox, il est lent et s'intègre mal à Gnome et KDE, pourquoi Ubuntu n'utilise pas Epiphany ? Capture d'écran de Firefox (notez l'excellent NoScript, le pare-feu Javascript !) montrant l'IPv6 dans la barre d'état (dans une horrible couleur verte) :

Pour les tests, on peut aussi utiliser « ping6 fusil.hachoir.org » et « host -t AAAA fusil.hachoir.org ».

Enfin, j'ai configuré le reverse DNS de mon IPv4 publique dans l'interface de configuration Free via « Fonctionnalités optionnelles > Personnaliser mon reverse DNS ». Même problème ici, Free n'offre pas (encore ?) de reverse DNS IPv6.

Ah oui, je parlais d'Apache dans le titre... Hé bien, il n'y a rien à faire ;-) Ça marche tout seul.

jeudi 13 décembre 2007

Découverte d'IPv6

Adresse IPv6

Maintenant que j'ai activé IPv6 chez Free, mes machines se voient attribuer une IPv6. Voyons comment elles sont construites en prenant « 2a01:5d8:58a0:425b:216:96ff:feab:79ea » comme exemple :

  • « 2a01:5d8 » (32 bits) : le préfixe IPv6 de Free
  • « 58a0:425b » (32 bits) : mon IPv4 publique (88.160.66.91)
  • « 0216:96ff:feab:79ea » (64 bits) : mon adresse MAC (00:16:96:AB:79:EA, 48 bits) étendue sur 64 bits. Les deux premiers chiffres de l'adresse MAC (00) changent (02), car le second bit est inversé pour indiquer que c'est une adresse globale (Internet) et non plus locale (Intranet). Les chiffres « ff:fe » sont fixes. Lire l'annexe A de la RFC 4291 pour les détails : Creating Modified EUI-64 Format Interface Identifiers.

On peut donc facilement retrouver l'IPv4 et l'adresse MAC à partir de l'IPv6. Ceci peut poser des problèmes de confidentialité car l'adresse MAC est parfois utilisée pour tracer l'activité d'un utilisateur. Microsoft Office écrit par exemple l'adresse MAC de la machine dans chaque document généré (jusqu'à Office version 2001 je crois bien). Par contre, l'IPv6 semble fixe pour une même machine étant donnée qu'elle est calculée selon l'adresse MAC.

Tests IPv6

Testons notre connectivité IPv6. Pour commencer, « ping6 ::1 » permet de pinger sa propre machine. Le test ultime est celui de la tortue KAME : en IPv4 elle est floue, alors qu'en IPv6 l'animation est nette :-)

Quelques serveurs publics à pinger en IPv6 :

  • ipv6.teleglobe.net
  • www.kame.net
  • www.enst.fr

Commande pour obtenir les enregistrements DNS en IPv6 :

$ host -t AAAA www.kame.net
www.kame.net has IPv6 address 2001:200:0:8002:203:47ff:fea5:3085

(au passage, www.free.fr n'est pas accessible en IPv6, c'est un comble)

Dans un navigateur web, on peut spécifier une IPv6 en l'écrivant entre crochets : « http://[2001:200:0:8002:203:47ff:fea5:3085]/ ». On peut toujours spécifier le port TCP sur lequel contacter le serveur si besoin est : « http://[2001:200:0:8002:203:47ff:fea5:3085]:80/ » (ici le port 80 pour l'exemple).

Utilisateur du serveur IRC Freenode, je m'empresse de me connecter à « ipv6.chat.eu.freenode.net ». Mais je perd régulièrement ma connexion, je suis alors repassé en IPv4 en attendant que ça se stabilise du côté de chez Free (rappel : IPv6 est en phase de test chez Free).

Outils pour IPv6

Outils réseaux à installer pour jouer avec IPv6 :

  • nc6 : netcat (client TCP générique) compatible IPv6
  • nmap : le scanneur de port par excellence, l'option -6 active le mode IPv6
  • traceroute6 : affiche les nœuds réseaux entre votre machine et un serveur

Pour les installer :

sudo apt-get install netcat6 nmap iputils-tracepath

En testant rapidement, la première chose qu'on réalise est que bien que la Freebox soit en mode routeur avec du NAT, les machines en IPv6 sont directement accessibles depuis Internet ! Je m'empresse de configurer le parefeu Netfilter pour éviter les mauvaises surprises. Règles pour accepter le ping (ICMPv6) et le port TCP 80 :

#!/bin/sh
ip6tables -F
ip6tables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A INPUT -p tcp --dport 80 -j ACCEPT
ip6tables -A INPUT -p icmpv6 -j ACCEPT
ip6tables -A INPUT -j DROP

Pour en savoir plus

IPv6 chez Free

Depuis hier, le fournisseur d'accès Internet français Free propose l'IPv6 en test aux clients ADSL dégroupés. Ça tombe bien, c'est mon fournisseur. Je me suis donc empressé de tester cette nouvelle option ! Il faut activer manuellement l'option dans « Fonctionnalités optionnelles de la Freebox > Autres fonctions > Support IPV6 [x] » puis redémarrer la Freebox. Dans mon cas, un nouveau firmware (version 1.3) a été installé.

Il était temps que Free réagisse à la pétition ipv6pourtous lancée en août 2005 ! Nerim proposait déjà IPv6 depuis mars 2003, et Orange avait réalisé des tests (mais le service a été coupé). Pour Free, ce n'est pas encore de l'IPv6 natif, mais un tunnel IPv6 dans IPv4 (4to6) non standard conçu par Rémi Després (concepteur de Transpac). Depuis 2004, ce dernier tentait d'imposer son 4to6 Unified IPv4-to-IPv6 Transition Model (brouillon de novembre 2004). En 2005, il monte une maquette avec la participation de l'ENST-B : IPv4&6 : Une Architecture Unifiée pour la Coexistence IPv4-IPv6, présenté en février 2005 durant la Journée Cohabitation IPv4 - IPv6.

Lire le billet IPv6 chez Free ! pour les détails techniques, et le journal linuxfr pour les trolls sur IPv6.

lundi 3 décembre 2007

Mes liens favoris (del.icio.us)

Pour noter mes liens favoris, j'avais trouvé une bonne méthode : ajouter des liens externes à l'article Wikipédia associé. En particulier, j'avais noté de chouettes liens sur le noyau Linux.

Malheureusement (pour moi), ce qui devait arriver arriva, j'ai été découvert : « 22 novembre 2007 à 18:50. Chtit draco. (Annulation des modifications 23234174 de Haypo : lien externe absolument pas de référence, anecdotique et sans utilité, cfr Wikipédia:Liens externes) » (commentaire du changement de l'article). Fort heureusement, j'avais choisi Wikipédia comme base de donnée car chaque modification est archivée et je peux donc retrouver les liens même après effacement ;-)

Mais bon, faut pas abuser alors j'ai décidé de migrer mes liens sur le site Delicious : voir mes favoris del.ico.us. Forcément, j'ai retrouvé d'autres amis geeks ce qui me permet de votre quels liens ils apprécient. Et puis, les outils pour trouver des liens proches des miens, grâce aux tags, ont l'air bien foutus. Je me suis déjà abonné aux liens concernant le fuzzing pour voir.

mercredi 24 octobre 2007

Dasher, Chaîne de Markov, N-gramme, Google et Pangramme

Comme j'ai la mémoire courte, j'oublie souvent le nom d'articles qui m'intéressent pourtant beaucoup. Ce billet reprend donc des idées (concepts, techniques, etc.) qui me passionnent mais que j'oublie à répétition.

Logiciel dasher

Aujourd'hui, je parlais de dasher à un ami. Ce logiciel sert à écrire du texte avec un dispositif de pointage ayant uniquement 2 axes (X et Y) tel qu'une souris, une manette de jeu ou les yeux (avec une caméra). L'animation ci-dessous en présente le fonctionnement :

Le point qui m'intriguait était de savoir comment dasher décide quelles lettres proposer à l'utilisateur pendant qu'il écrit son texte. Effectivement, dasher ne propose pas simplement l'alphabet, les chiffres et la ponctuation à chaque fois : ce serait trop pénible.

Chaînes de Markov

J'ai alors pensé aux chaînes de Markov : un modèle qui permet justement de répondre à ce besoin. Je maîtrise mal le sujet et je vais donc expliquer avec mes mots ce que j'en ai compris. Les chaînes de Markov servent à prédire quelles lettres sont les plus probables selon celles précédemment saisies. On utilise pour cela des « N-grammes » où N est le nombre de lettres, exemple de bigrammes : « de », « la », etc. En partant d'un corpus (grosse base de textes), on va construire nos chaînes de Markov donnant la probabilité d'apparition des N-grammes dans la langue du corpus. À partir de ces résultats, il y a une autre application rigolote : la génération de texte aléatoire. On peut effectivement crée un texte purement artificiel qui a l'air vrai mais est en fait le résultat d'un ordinateur ! Articles Wikipédia à lire pour en savoir plus : algorithme de Viterbi et modèle de Markov caché.

N-grammes de Google

La société Google a annoncé en août 2006 qu'elle allait distribuer ses N-grammes. Ce qui a été fait en septembre 2006 par l'intermédiaire de l'Institut des données linguistiques qui vend ces données sous forme de 6 DVD. L'ensemble est proposé au prix prix de US$150 plus US$50 pour les non-membres, ce qui fait un total de 146 €. Par contre, interdiction de rediffuser ces données ou de les utiliser à des fins commerciales ! Dommage car c'est, apparemment, la plus grosse base de données mondiale de N-grammes : 24 Go compressés par gzip en UTF-8 comprenant 1.024.908.267.229 lexèmes et 95.119.665.584 phrases. Il faut savoir que Google a utilisé Internet comme corpus. On peut donc se demander si c'est normal qu'il revende ses résultats, car très peu de sites Internet sont libres de droit !

Pangramme

Pour finir, un article qui n'a rien à voir mise à part la sonorité avec N-gramme : Pangramme. Cet article a résolu une énigme que je me posais depuis de nombreuses années : pourquoi Windows affiche « Portez ce vieux whisky au juge blond qui fume », une phrase qui sonne faux, pour la prévisualisation d'une police de caractères ? C'est simple, c'est une des phrases les plus courtes comportant les 26 lettres de l'alphabet français !

mardi 16 octobre 2007

Information, énergie et ordinateur réversible

En lisant le journal « Une équivalence entre l'énergie et l'information ? », je me suis mis à rechercher des articles sur les questions soulevées pour tenter d'y répondre. J'ai croisé les informations avec les articles que j'avais déjà collectés sur les ordinateurs réversibles. Le billet qui suit est un petit état de l'art en vrac sur le lien entre l'énergie et l'information et ses diverses applications actuelles et futures.

Lire la suite

samedi 15 septembre 2007

Liens septembre 2007 : imagerie et programmation

Par expérience, lorsque je collecte 10 liens Internet dans ma barre de favori, je n'en lis finalement qu'un seul voir aucun. J'essaye donc rapidement de vider mes favoris pour éviter d'avoir une liste kilométrique. Or des fois je cherche un lien que j'avais dans mes favoris mais que j'ai perdu en le supprimant rapidement... Voici donc une collection de liens que je ne voudrais pas perdre bien qu'ils ne m'intéressent que moyennement.

vendredi 31 août 2007

wikimapia, ohloh et web 2.0

J'aimerai vous présenter aujourd'hui deux sites internets qui me plaisent beaucoup. Les deux thèmes sont très différents mais ils ont un point commun : le « web 2.0 ».

Lire la suite

samedi 19 mai 2007

Raccourcis clavier

Les raccourcis clavier permettent d'exécuter des commandes sans toucher à la souris. On ne perd pas de temps avec des aller-retours entre le clavier et la souris. Par contre, ils sont souvent peu ou mal documentés et difficiles à mémoriser. En réalité, le plus souvent on n'en connait même pas leur existence ! En tout cas, je vous garantis que ça en vaut la chandelle !

Commençons avec le b.a.-ba, le copier-coller qui évite d'avoir à retaper le même texte :

  • Sélectionner le texte en maintenant la touche SHIFT puis en se déplaçant (avec les touches flêchées)
  • Copier le texte avec « CTRL+C » (notation courante pour dire : maintenez la touche CTRL puis appuyez sur C sans relacher la touche CTRL)
  • Se déplacer à l'endroit où l'on veut coller le texte (toujours avec les touches flêchées)
  • Coller le texte avec « CTRL+V »

Cette manipulation est devenue pratiquement universelle à travers tous les logiciels sur les divers systèmes d'exploitation. Sachez qu'il en existe des centaines d'autres ! Une voici une petite liste :

  • Se déplacer mot par mot : CTRL+droite ou CTRL+gauche
  • Aller au début/à la fin de la ligne ou du document : touche Début (habituellement au dessus de la touche Fin) / touche Fin
  • Se déplacer page par page : touche Page haut / Page bas
  • « Tout » sélectionner : CTRL+A
  • Zone de saisie suivante / précédente : TAB / SHIFT+TAB
  • Recherche un bout de texte : CTRL+F
  • Annuler la dernière action : CTRL+z
  • Ouvrir un fichier : CTRL+o

Certains raccourcis sont différents selon les applications ou bien ne sont pas disponibles. Il est plus sûr d'ouvrir le menu Fichier ou édition et consulter les raccourcis affichés à droite du texte.

Bash

  • Naviguer parmis l'historique des commandes : Haut / Bas
  • Début/fin de la ligne : CTRL+a / CTRL+e
  • Couper la fin de la ligne : CTRL+k
  • Couper le mot précédent : CTRL+w
  • Coller ce qui a été coupé : CTRL+y
  • Rechercher une commande tapée récemment : CTRL+s (ensuite CTRL+s / CTRL+r permet de naviguer parmis les résultats de la recherche)
  • Interrompre le programme courant : CTRL+z (la commande « fg » reprend l'exécution alors que la commande « bg » continue l'exécution en arrière plan)

Vim

Pour vim, reportez-vous à mon article Vi car la liste est longue :-)

Firefox et Konqueror

  • Site (page) précédent / suivant : ALT+gauche / ALT+droite
  • Ouvrir un nouvel onglet : CTRL+T
  • Passer à l'onglet suivant / précédent : CTRL+Page bas / CTRL+Page haut

KDE

  • Ouvrir le menu K : ALT+F1
  • Lancer une application : ALT+F2 (j'utilise uniquement ça au lieu du menu K)
  • Fermer une application : ALT+F4
  • Aller sur le N-ième bureau : CTRL+Fn (ex: CTRL+F2 pour le 2e bureau)
  • Lancer le programme listant les processus : CTRL+Echappe

Cet article est loin d'être exhaustif, mais j'espère qu'il vous a donné goût aux raccourcis et que vous en trouverez d'autres par vous même :-)

vendredi 20 avril 2007

Suivez l'actualité avec RSS

RSS permet de recevoir chez soi, sans se bouger les fesses (ni la souris), gratuitement, les nouveaux articles des sites Internet proposant ce service. Or ça tombe bien, aujourd'hui tous les sites le proposent. Je suis longtemps resté éloigné du buzz RSS car ça ne m'intéressait tout simplement pas. Et puis un jour j'ai remarqué que j'avais un logiciel (Akregator) préinstallé par la suite Kontact. J'ai alors ajouté mon premier flux (linuxfr de mémoire), puis un autre, etc. Aujourd'hui j'en ai une tripoté et j'avoue que je suis devenu fan.

Avantages du RSS :

  • Moindre effort (j'aime !) : se met à jour tout seul, pas besoin d'aller sur 20 sites différents quotidiennement : chaque heure les nouvelles fraiches viennent à vous (et non le contraire)
  • Suivre l'actualité : encore une fois, étant donné que c'est mis à jour tout seul : on peut suivre l'actualité de sites Internet à faible traffic (ex: une nouvelle par mois). Ceci me permet de suivre des blogs rarement mis à jour (ex: le mien).
  • Mise en forme épurée : pas de publicité, pas d'habillage bariollé ou encore une largeur de texte fixe. On reçoit le texte brut, quelques liens et parfois une image.

Désavantages du RSS :

  • Nouvelle drogue : comme pour le courriel, je me suis surpris à appuyer frénétiquement sur le bouton « rafraichir » pour recevoir toujours plus d'articles. À utiliser avec modération. Je me désinscris de temps en temps à des flux inintéressants ou qui me prennent trop de temps.
  • Pas de commentaire : il n'y a que le texte original, pas les commentaires. Il faut aller sur le site internet (un lien direct est donné) pour les obtenir. J'ai vu qu'il existe des flux dédiés aux commentaires mais je crains que ça soit une drogue dure :-/

Trève de blabla, voici ma liste de flux (en vrac). J'indique les thèmes principaux.

Blogs (faible traffic : 1 à 10 articles par mois) :

  • (fr) Biologeek : Python, Django, biologie.
  • (fr) devloop : Sécurité informatique, logiciel libre, Linux.
  • (fr) Thomas Petazonni : Logiciel libre, Debian, programmation.
  • (fr) yeKcim : Ubuntu, jeux libres, littérature, dessin, humour.
  • (fr) Tarek : Python et programmation.
  • (en) Glandium : Programmation, Debian, logiciel libre.
  • (en) Sam Hocevar : Programmation et Debian

Python :

  • (en) Daily Python-URL! : Python, Python, Python et Python (drogue dure ! jusqu'à 40 articles par jour)
  • (en) Python News : Sorties des nouvelles versions de Python (très faible traffic)

Logiciel libre :

  • (fr) Wormux : le jeu Wormux
  • (fr) Dépêches linuxfr.org : Logiciel libre au sens très large, Linux, *BSD (de 1 à 5 articles par jour)
  • (fr) Journaux linuxfr.org : Même thème que les dépêches + du n'importe quoi (drogue dure ! jusqu'à 10 articles par jour)
  • (en) Debian Package of the Day : Un nouveau logiciel Debian par jour (dumoins en théorie : en pratique c'est plutôt 10 par mois voir moins)

Photo du jour de Wikipédia (format 400x300 pixels), ce service vient d'être créé il y a à peine une semaine :

Pour finir, RSS de ce blog : RSS du blog Haypo.

lundi 26 mars 2007

Configurer gvim

Étant donné qu'un éditeur de texte est l'outil essentiel de mon travail, il se doit d'être adapté à mes besoins et configuré aux petits oignons. Je vais présenter gvim car c'est l'outil que j'utilise. Tous les jours je découvre de nouvelles commandes et fonctions de gvim, et je fignole ma configuration au jour le jour. Je vais vous présenter mon éditeur chéri dans son état actuel.

Personnaliser gvim

Pour commencer, voyons gvim sorti d'usine :

C'est moche ! Mais on n'a quand même déjà de quoi faire : copier/coller, barre de défilement, numéro de la ligne (974, dans la barre d'état), etc. Activons maintenant la coloration syntaxique (commande « :syn on ») et choisissios une police de caractère légèrement plus petite et plus grasse (set guifont=Deja\ Vu\ Sans\ Mono\ Bold\ 9) :

La police est plus lisible et prend moins de place. On peut donc afficher plus de lignes simultanément. Enfin, voici une capture d'écran un peu plus réaliste, avec ma configuration actuelle gvim :

Les détails qui font la différence :

  • Le motif actuellement recherchés (datas) est surligné en jaune
  • Les tabulations sont différenciées par léger gris (ici en début de ligne)
  • Les espaces inutiles en fin de ligne sont surlignés en rouge (pas trop) vif
  • Il y a 4 zones : 3 fichiers ouverts ainsi que le résultat d'une recherche (accessible avec la commande « cw »)
  • L'accolade correspondante est mise en évidance (en cyan)

Ma configuration gvim

Mon fichier ~/.vimrc simplifié :

syntax on             " Coloration syntaxique
set hlsearch          " Surligne les resultats de recherche
set nowrap            " Pas de retour a la ligne auto (affichage)
set showmatch         " Affiche parenthese correspondante
set autoindent        " Indentation automatique
set softtabstop=4     " Largeur d'une tabulation
set shiftwidth=4      " Largeur de l'indentation
set fdm=indent        " Repli selon l'indentation
set expandtab         " Utilise des espaces plutôt que le caractère tabulation

" Supprime les espaces en fin de ligne avant de sauver
autocmd BufWrite * silent! %s/[\r \t]\+$//

" Police de caractere pour gvim
set guifont=Deja\ Vu\ Sans\ Mono\ Bold\ 9

Pour en savoir plus, voyez mon article sur vi sur mon site web.