vimspell ou comment vérifier votre orthographe avec Vim

C’est dans des moments passionant ou il vous faut écrire de la doc à longueur de journée que vous cherchez un prétexte pour vous changer les idées.
Cette fois-ci je me suis plutôt penché sur quelque chose d’utile : la vérification orthographique avec Vim.

En cherchant un peu on se retrouve vite orienté vers le dictionnaire interactif ispell (dont le package français se nomme ifrench sous debian).
Ce logiciel vous permet de parcourir un fichier texte à la recherche des mots inconnus et vous propose pour chaque faute une ou plusieurs propositions.

Il est donc possible dans une session Vim de taper la commande suivante pour appeler ispell sur notre fichier :

:! ispell %

Cela n’est que moyennement intéressant finalement, car nous n’avons ainsi aucune intégration d’ispell à Vim.
Là où les choses deviennent vraiment pertinentes, c’est quand on se penche vers l’excellent travail de Mathieu Clabaut qui a abouti à un excellent plugin pour vim : vimspell.

L’intégration d’ispell à Vim est alors totale : plusieurs bindings sont disponibles pour changer de dictionnaire, aller à la prochaine erreur ou encore demander une correction pour une faute donnée.

La fonctionnalité la plus intéressante est sans conteste la vérification orthographique à la volée : chaque mot inconnu et qui est différent d’un mot clef du type de fichier édité est immédiatement surligné en rouge.

La cerise sur le gâteau c’est que ce plugin est livré avec une aide en ligne (accessible dans vim avec :help vimspell) très bien faite. Que du bonheur !

Un miroir Google

Heu… oui c’est juste pour vous dire qu’il y a un miroir Google ici, mais je vous préviens, c’est un miroir hein ! … :D

Vim comme traitement de texte en ligne de commande

Vous connaissez tous Vim, l’éditeur de texte favori d’une bonne partie des geeks sous Unix. La quantité de déformations que l’on peut appliquer à un texte avec vim est innombrable ici tellement les possibilités sont grandes. Je voudrai juste attirer l’attention de ceux qui utilisent régulièrement Vim sur le fait qu’il leur est possible d’utiliser Vim comme filtre en ligne de commande…

Le principe est simple :

vim +COM1 +COM2 ... +COM-N +"wq" +"q" FICHIER

Ce qui provoquera l’appel de Vim sur FICHIER en executant chacune des commande Vim de COM1 à COM-N en terminant par la sauvegarde du fichier.
Voila pour le principe de base.

Maintenant, quand on sait qu’il existe une commande vim qui traduit le buffer courant en HTML, on voit très vite venir la combo qui tue…
Voici la commande Vim qui prend un fichier et le traduit en HTML, toute colorisation et environement inclu :

vim +f +"syntax on" +"set nonumber" +"colorscheme shine" +"TOhtml" +"wq" +"q" FICHIER

Le résultat est disponible sur tous les scripts publiés sur ce site.

Comment redimentionner des images en un click avec Nautilus

Je reviens de vacances avec une miriade de photos toutes plus belles les unes que les autres. Résultat, je me retrouve à bombarder par mail tous mes amis connectés afin de les faire un peu saliver (je sais, c’est sadique). Mais je me vois mal envoyer des images en 1280 par 960 à des personnes surfant en RTC… du coup je me retrouve à redimentionner chaque image en 640×480 avant des les envoyer…

C’est faisable pour deux trois photos mais devient vite pénible lorsqu’on veut en envoyer une dizaine…

Du coup je me suis concocté un petit script Nautilus utilisant ImageMagick pour le faire à ma place. Bilan des courses :
Je browse (en mode spatial bien sûr !) mon dossier Vacances à la montagne et clique droit sur l’image qui m’intéresse, puis un simple Script > Resize me permet d’obtenir l’image désirée dans la bonne taille …

Il ne me reste plus qu’a faire le script qui mail l’image et le tour est joué :)

Mise à jour du 25/08/2004 à 16:33
Bon voici le fameux script qui envoie un fichier avec un simple click :)
Maintenant je n’ai plus d’excuse pour ne pas envoyer mes photos de vacances à mes amis !
Merci à Rached pour ses bonnes et rapides intuitions ;-)

Note : Pour que ce script fonctionne, il faut sendmail et mime-codecs d’installé. Il suffit de copier le fichier dans ~/.gnome2/nautilus-scripts/ et de lui appliquer un chmod 755 pour que Nautilus vous le propose sur un click droit dans la section “Scrips”.

Retour de vacances :(

C’est toujours triste un retour de vacances… surtout pour s’apercevoir que rien de marche plus !
Ceux qui sont venus mater sukria.net récemment auront découvert une page peu originale (la page par défaut d’apache sur les systèmes debian) en lieu et place de l’habituel blog. Désolé pour cette boulette mais je n’avais vraiement pas d’accès au net durant mon sevrage savoyard ! Derrière ce comportement étrange se cache un apache tout mouru et un bind tout pas bien non plus …

Les choses sont retournées dans l’ordre aujourd’hui – et moi j’aimerai bien retourner en Savoie demain … :-

PS melkor : promis, le prochain post sera geek ou ne sera pas !

Vacances !

Je suis officiellement en vacances ce soir pour une bonne dizaine de jours. Ca va me permettre de faire un petit break fort appréciable …

Je pars pour quelques horizons en hauteur et serai privé pendant tout ce temps de connexion au net… Non, ce n’est pas un sevrage d’une toxicomanie sans drogue ! :)

Bref, tout ça pour vous dire que d’ici la dernière semaine d’août il ne faut pas s’attendre à de nouveaux posts par ici ni à des réponses aux éventuels mails qui parviendraient jusqu’à ma boîte.

Bon courage à ceux qui travaillent par ce mois chaud et à très bientôt online ou onlife !

IPC::DirQueue ou comment gérer facilement une file d’attente

Justin Mason vient de publier sur le CPAN un module Perl pour gérer des files d’attente en mode FIFO.

IPC::DirQueue vous propose quelques méthodes simples pour ajouter des jobs et les traiter simplement en vous permettant quelques fonctionnalités intéressantes :

  • Persistance des jobs : pas besoin de relancer un démon pour prendre en comtpe des modifications survenues dans la file.
  • Définition de priorités entre les jobs.
  • Système de lock efficace qui permet une utilisation asynchrone et parallèle à la file d’attente.

Voici un petit exemple d’utilsiation de ce bijou :

use IPC::DirQueue;
my $queue = IPC::DirQueue->new({ dir => "/tmp/queue" });
$queue->enqueue_file("/var/monfichier");
my $job = $queue->pickup_queued_job();
if (not $job) {
    info "plus de jobs à traiter";
    exit 0;
}
else {
    print $job->path, "\n";
    $job->finish;
}

Les utilisations que l’on peut faire ce type d’API sont multiples, on pensera notamment à l’implémentation d’une file d’attente de fichiers mp3 par exemple, laquelle file serait modifiable via une interface web… Hmmm, y a de l’idée là non ? ;)

IE / Mozilla, la guerre est ouverte (une nouvelle bataille)

Un article sur Slashdot nous annonce que l’arrivée d’un nouveau Internet Explorer serait imminente :

InternetNews.com explique qu’une mise à jour majeure de Microsoft Internet Explorer serait imminente. visiblement en réponse à la récente migration massive des utilisateurs, les développeurs principaux de Microsoft ont été sollicités pour améliorer le vieux navigateur. [...]
InternetNews.com spécule sur le fait que les améliorations apportées concernent le support des onglets de navigation, une meilleure sécurité, plus de compatibilité PNG et un meilleur respect du CSS. En avant pour la compétition!”

Je pense qu’il est temps de prendre un bon gros paquet de pop-corn, de s’assoir confortablement dans son canapé et de regarder avec attention Mozillazine-fr.org et Standblog pour les détails croustillants ! :)

Le projet Y, pourquoi pas ?

C’est un peu par hazard que je suis tombé sur cette documentation technique d’un successeur du mastodonte dénomé X Window, le projet Y-Window.

Pour comprendre simplement les implications derrière Y (prononcez “why”), il suffit de lire l’introduction de son auteur sur la page du projet :

J’ai eu vraiment marre de l’état du Desktop GNU/Linux. La majorité des problèmes que l’on rencontre convergent vers le système de fenêtre sous-jacent, X. J’ai donc décidé d’écrire son successeur…

Ambitieux n’est-il pas ?

Un projet à suivre donc, dans l’éspoir que l’ambition de son auteur ne soit pas supérieure à ses compétences …

Se faciliter la vie avec screen

J’aurai mis le temps, c’est sûr, mais j’ai finalement adopté screen. Pas mal de personnes que j’ai croisé m’avaient recommandé ce logiciel , véritable gestionnaire de fenêtres en mode texte (gni ?). Je me suis donc mis à utiliser screen un peu partout où j’ai un accès ssh afin de mémoriser les états de mes différents terminaux. Par exemple que dîtes-vous d’une simple commande (screen -r dev par exemple) pour se retrouver avec un shell sur votre plateforme de dev, un tail -f sur le syslog qui va bien et une session mysql d’ouverte…

Je commence enfin à comprendre pourquoi des gens de mon entourage disent de screen qu’il s’agit d’un outil indispensable.

Le fait de me préparer plein de sessions screen un peu partout m’a amené à un problème assez fréquent : les déconexions des terminaux pour cause de non activité trop longue.
J’ai un peu creusé et ai trouvé quelques astuces qui permettent d’éviter de se faire foutre dehors par bash :

La déconnexion peut venir soit de bash lui même, soit du serveur ssh. Il faut donc commencer par déterminer quelle est la cause de la déconexion :

  • Pour éviter une déconnexion de bash lui même (autologout) il faut exporter la variable TMOUT avec une valeur nulle. Ainsi bash ne cherchera jamais à vous expulser.
  • Si c’est ssh en personne qui vous ferme la porte au nez, il faut définir une variable dans votre fichier ~/.ssh/config : “serveraliveinterval” qui définit la fréquence en secondes de l’activité automatique du client ssh

Avec ces petites astuces combinées entre elles, il est alors possible de se connecter une fois pour toute partout où vos besoins quotidiens vous amènent et ainsi faciliter grandement la vie difficile qu’est celle de l’informaticien !

Get Adobe Flash playerPlugin by wpburn.com wordpress themes