Informatique
Html2Latex et ses options miracles
Ca fait plusieurs fois que je me dis que tous mes documents qui sont créés à partir de fichier LaTeX devrait être exportés en PDF et en HTML. Mais je n'avais jamais trouvé de « bonne » sortie de mes fichiers LaTeX en HTML. J'avais testé html2latex et Hevea. Mais mes premiers tests m'avait fait adopter Hevea à cause de sa sortie en une seule page et son support de l'utf8. Mais voilà qu'aujourd'hui Hevea ne veux pas me lire mes fichiers en UTF-8 et bloque avec. J'ai donc pris le temps de me repencher sur html2latex et je suis revenu sur mes premières impressions, c'est génial. Voici en fait les options qu'il me manquait :
- -html_version 4.0,unicode : qui permet d'avoir un document en UTF-8 si nous l'avons créer ainsi
- -no_navigation : qui permet de ne pas avoir le petit système de navigation en haut de la page
- -split 0 : qui permet de n'avoir qu'un seul fichier HTML et non un par partie
- -info 'blabla' : qui permet de mettre son propre « A propos » et non pas celui défini de base par html2latex
Je crois que ces options peuvent aussi être défini directement à partir d'un fichier de configuration, mais je n'ai pour l'instant pas rechercher comment faire
Plugin sound.pl de weechat
Avec un ami, nous utilisons tous les deux le logiciel weechat. J'ai adopté ce logiciel pour quatre points :
- Son environnement ncurse, environnement que j'utilisais déjà avec IRSSI.
- Sa rapidité de développement. En effet ce projet a de fréquente release. On me dira que c'est normal vu que irssi a déjà tout et donc il n'a plus rien à ajouter. Mais cela serait un énorme troll et ce n'est pas mon but ici.
- La possibilité de voir le nom des personnes connectés sur le salon
- sa facilité de configuration à partir d'un simple fichier de configuration.
Comme je fais tourner ce logiciel dans un screen, j'ai voulu que pour chaque Highlight et message en privé, un son me soit envoyé pour ainsi pouvoir répondre si le temps me le permet.
Après quelque recherche sur le site de weechat, j'ai découvert un plugin déjà existant qui permettait de faire cela. Il s'agit du script sound.pl. Il est réalisé en perl. Après m'être battu sur sa configuration et avoir constaté que mon ami ce battait aussi sur le même problème, j'ai pris le taureau par les cornes et j'ai décidé de voir où était le problème et le patcher le cas échéant.
Voici donc le symptôme que j'ai constaté :
Si le script est lancé une fois sans avoir été modifié au préalable, nous avons beau modifier le fichier sound.pl pour indiquer les nouvelles valeurs de commande, celle-ci ne sont pas prise en compte. J'ai donc découvert que dans le fichier ~/.weechat/plugin.rc, les valeurs pour les commandes à effectuer en cas de highlight sont celle d'origine et non celle indiqué dans mon fichier. Si je modifie ces valeurs directement dans le fichier ~/.weechat/plugin.rc, les commandes sont effectuées lors du highlight suivant.
Mes connaissances en perl sont limité, mais je pensais bien que le problème constaté devait avoir une raison assez simple. En éditant le code, j'ai donc trouvé les lignes incriminés. Il s'agit des lignes 41, 42 et 43.
Sur ces lignes, le programme va chercher si les valeurs cmd_highlight, cmd_pv et cmd_ctcp existent et si elles n'existent pas, le programme va les créer et les initialiser avec les valeurs définis plus haut dans le programme. Par contre, il n'y a aucune vérification d'un changement de valeur. En effet si cette fois-ci nous rajoutons un test de vérification de changement de valeur, les valeurs sont changé. Ainsi l'utilisateur une fois avoir redéfini ses valeurs dans le fichier sound.pl devra juste relancer le script et les nouvelles valeurs seront remplacées dans le ~/.weechat/plugin.rc
Voici donc le patch que je préconise :
--- sound.pl 2006-10-06 23:46:22.000000000 +0200
+++ sound-0.4.pl 2006-10-06 23:46:06.000000000 +0200
@@ -39,8 +39,11 @@
weechat::register("Sound", $version, "", "Sound for highlights/privates & CTCP sound events");
weechat::set_plugin_config("cmd_highlight", $default_cmd_highlight) if (weechat::get_plugin_config("cmd_highlight") eq "");
+weechat::set_plugin_config("cmd_highlight", $default_cmd_highlight) if (weechat::get_plugin_config("cmd_highlight") ne $default_cmd_highlight);
weechat::set_plugin_config("cmd_pv", $default_cmd_pv) if (weechat::get_plugin_config("cmd_pv") eq "");
+weechat::set_plugin_config("cmd_pv", $default_cmd_pv) if (weechat::get_plugin_config("cmd_pv") ne $default_cmd_pv );
weechat::set_plugin_config("cmd_ctcp", $default_cmd_ctcp) if (weechat::get_plugin_config("cmd_ctcp") eq "");
+weechat::set_plugin_config("cmd_ctcp", $default_cmd_ctcp) if (weechat::get_plugin_config("cmd_ctcp") ne $default_cmd_ctcp);
weechat::add_message_handler("PRIVMSG", "sound");
weechat::add_message_handler("weechat_highlight", "highlight");
Je vais soumettre ce patch à l'auteur du script. En tout cas, j'espère que cette petite explication permettra au prochain utilisateur de weechat avec son plugin sound.pl de moins bloquer sur la configuration du plugin.
Subversion et le svn:ignore
Depuis quelque temps, je cherchais désespérement comment faire un svn:ignore efficace en ligne de commande. Je savais les commandes à utiliser, mais pas trop comment les utiliser. Je vais donc expliquer ce que j'ai finalement fini par comprendre.
- Ne pas committer le fichier que l'on veux ignorer. Si il est commité, ce n'est pas la peine de tenter de l'ignorer. Il faut le supprimer du versionning et ensuite l'ignorer.
- Ce mettre dans le dossier où le ou les fichiers à ignorer se trouve, pour une question de simplicité plus qu'autre chose.
- Ajouter une propriété de svn:ignore dans le dossier courant avec la commande :
$ svn propset svn:ignore file .Il ne faut pas oublier le point à la fin, c'est le dossier pour lequel la propriété est défini. Le mot file est à remplacer par le nom de votre fichier à ignorer
Si vous n'avez qu'un seul fichier à ignorer, cette procédure suffit. Mais si vous désirez rajouter des fichiers à ignorer, voici ce qu'il faut faire :
- Utiliser la commande propedit comme ceci :
$ svn propedit svn:ignore .. Encore une fois, n'oubliez pas le point qui défini le dossier dans lequel la propriété s'exerce. - Une fois cette commande effectué, si vous avez déjà mis un fichier dans votre propriété, un éditeur de texte s'ouvre avec dedans écrit le fichier précédement indiqué. Il vous suffit donc d'ajouter sur chaque ligne, le fichier que vous voulez ignorer. Une fois fini, fermez votre éditeur et votre propriété sera mis à jour.
Dans votre svn:ignore, vous pouvez mettre comme nom, tout type de nom comme lors d'une recherche dans un shell avec le charactère * comme charactère joker. Après chaque mis à jour de votre propriété svn, n'oubliez pas de committer pour prendre tout ça en compte.
Nouvel Ordinateur
Ca y est, j'ai fait l'aquisition d'un nouvel ordinateur. Pour ceux qui me connaissent, ils sauront que mon précédent PC avait maintenant 4 ans et que ca devait faire au moins 2 ans que je parlais de changer d'ordinateur. Ainsi mon ancien ordinateur est cédé à ma copine.
Ma nouvelle configuration est composé :
- Processeur AMD64 3500+
- Carte mère ASUS M2N-E
- Carte graphique ASUS EN6200LE
- disque dur de 320Go Maxtor
Par contre, grosse déception avec l'installation de debian. En effet, j'ai voulu faire «moderne» et installer debian en version AMD64, mais voilà, j'ai dans le même temps découvert que tous les paquets de debian ne sont pas compilé en AMD64, ainsi, Grisbi et OpenOffice ne fonctionne pas sous ce processeur. Je vais donc devoir retourner sous un version x86 classique et ne pas utiliser pleinement les avantages de mon 64 bits.
Astuce Mplayer : Comment chercher et définir une langue en lisant un DVD avec mplayer
Aujourd'hui, je voulais voir le très bon film "Taxi Driver". Ma copine l'a en DVD. Mais pour voir au mieux ce film, je voulais le voir en anglais avec sous-titrage en français. Alors, comme je regarde mes DVD avec Mplayer, j'ai fait :
$mplayer dvd://
Mon ordinateur étant par défaut en français, le film a commencé en français. Ce n'est hélas pas ce que je voulais.
Mplayer n'a pas de menus de DVD dans son implémentation. Alors, j'ai cherché comme faire et j'ai trouvé. Avec le mode verbeux de Mplayer, quand on commence un DVD, nous pouvons voir toutes les langues et sous-titrage de notre DVD, comme montré ci-après :
shingara@shalamarette ~ $ mplayer dvd:// -v [...] [open] audio stream: 0 audio format: ac3 (stereo) language: en aid: 128 [open] audio stream: 1 audio format: ac3 (stereo) language: fr aid: 129 [open] audio stream: 2 audio format: ac3 (stereo) language: de aid: 130 [open] number of audio channels on disk: 3. [open] subtitle ( sid ): 0 language: en [open] subtitle ( sid ): 1 language: fr [open] subtitle ( sid ): 2 language: de [open] subtitle ( sid ): 3 language: nl [open] subtitle ( sid ): 4 language: cs [open] subtitle ( sid ): 5 language: da [open] subtitle ( sid ): 6 language: fi [open] subtitle ( sid ): 7 language: el [open] subtitle ( sid ): 8 language: iw [open] subtitle ( sid ): 9 language: hi [open] subtitle ( sid ): 10 language: hu [open] subtitle ( sid ): 11 language: is [open] subtitle ( sid ): 12 language: no [open] subtitle ( sid ): 13 language: pl [open] subtitle ( sid ): 14 language: sv [open] subtitle ( sid ): 15 language: tr [open] number of subtitles on disk: 16 [...]
Maintenant avec ces informations, nous pouvons choisir notre langue audio et sous-titre. Avec l'option -aid, nous définissons le nombre de la langue et avec l'option -sid, le nombre du sous-titrage.
Exemple :
- Audio en anglais et sous-titre en français.
$mplayer dvd:// -aid 128 -sid 1
- Audio en français
$mplayer dvd:// -aid=129
If you see this article in english, go here
Ecriture d'un article
Dernièrement j'ai eu l'idée d'écrire un petit article sur un problème informatique que j'ai tenté de résoudre. Je met donc à disposition de tout le monde cet article et je tenterais d'en écrire de temps en temps quand je trouve un bon sujet. Vous pouvez trouver cet article ici
Template Python pour Vim
Aujourd'hui j'ai passé un peu de temps à comprendre le système de templating de Vim. Faisant actuellement du Python, j'ai donc décidé d'en faire un. Pour l'exemple voici donc ce que j'ai fait dans mon .vimrc :
au BufNewFile *.py call PyFile_New()
au BufWritePre *.py call PyFile_update()
function PyFile_New()
0r /home/shingara/vim/py.tpl
execute "% s,@FILE-NAME@," . expand('%:t') . ",ge"
execute "% s/@DATE-STAMP@/" . strftime("%a %d %b %Y %X") . "/ge"
execute "% s,@USER-LOGIN@,Cyril Mougel,ge"
execute "% s,@VERSION@,1,ge"
execute "% s,@USER-NAME@," . g:mename . ",ge"
let headerfilename = expand('%:t')
let l:dbli = substitute(l:headerfilename, '\.', '_', 'g')
let l:dbli = '_' . toupper(l:dbli)
execute "% s,@DBL_INCL@," . l:dbli . ",ge"
normal G
endfun
function PyFile_update()
if getline(1) =~ '^#!'
normal mx
execute "1,9 s,\\(Last update \\).*,\\1" . strftime("%a %d %b %Y %X") . " " . g:mename . ",e"
normal `x
endif
endfun
Ensuite j'ai créer mon template dans le fichier py.tpl :
#! /usr/bin/python # -*- coding: UTF-8 -*- # vim : fileencoding=UTF-8 """ @FILE-NAME@ for Concerto Started on @DATE-STAMP@ @USER-NAME@ Last update @DATE-STAMP@ @USER-NAME@ @Author Cyril Mougel @version @VERSION@ """
Telecharger les informations de France 2
Aujourd'hui, j'ai vu un reportage qui pouvait m'interresser au journal de 13h de France 2. Mais voila, il se trouve qu'il est en plusieurs parties et a 13h, je ne suis que rarement present pour regarder les informations a cette heure.
En cherchant un peu, j'ai ainsi decouvert que France 2 mettait a dispositions des internautes un systeme de streaming videp pour consulter les informations diffusees. Mais voila le systeme etant tres simple pour un windowsiens, un linuxien a vite beaucoup de problemes pour consulter la video. J'ai donc chercher a trouver comment telecharger cette video. J'ai vite trouve qu'il s'agissait d'un streaming en mms:// (Microsfot Media Streaming). Mais apres une recherche appronfondie, j'ai fini par trouver l'application qu'il me fallait (Comme souvent sous linux). Il s'agit de MiMMS. Ainsi une fois le logiciel installer, il suffit de taper la commande suivante :
$mimms -o nomFichier mms://
Nous avons ainsi une copie locale du l'emission :)
Installation plugin Java 1.5 sur firefox
Suite à mon précédent billet expliquant comment installer java à partir des sources sur sa debian, je vais expliquer maintenant comment mettre le plugin java sur firefox. C'est toujours pratique.
Je vais supposer que le dossier où est java est le dossier /opt/jdk1.5_0_6/. Pour mettre en place le plug-in, il suffit juste de faire un lien symbolique dessus comme ceci :
#ln -s /opt/jdk1.5.0_06/jre/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/firefox/plugins/
Installation java SDK 1.5 sous debian en manuelle
J'ai suivi les explications d'un tuto trouve sur le site doc.ubuntu-fr.org pour faire la modification suivante principalement des suppressions de sudo et aussi de changement de version.
- telecharger le binaire (pas le rpm) de sun JDK 1.5 update 6 sur le site de sun
- Une fois telecharge, il faut rendre ce binaire executable
- #chmod +x jdk-1_5_0_06-linux-i586.bin
- lancer l'execution du binaire
- #./jdk-1_5_0_06-linux-i586.bin
- Accepter la licence et laisser l'installation se faire. Un dossier sera creer sous le nom de jdk-1_5_0_06
- Deplacer ce dossier dans /opt/
- #mv jdk-1_5_0_06 /opt/
- faire un lien symbolique sur /usr/local/bin
- #ln -s /opt/jdk1.5.0_06/bin/java /usr/local/bin/java
- #ln -s /opt/jdk1.5.0_06/bin/policytool /usr/local/bin/policytool
- Renseigner dans votre environement le JAVA HOME : Editer /etc/environment et rajouter la ligne suivante :
- JAVA_HOME=/opt/jdk1.5.0_06