Le blog de Guilou

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

vendredi 28 octobre 2011

Travailler efficacement sous Linux avec Compiz et le plugin Grid

Dorénavant, les écrans sont de bonnes tailles, avec une grande résolution et au format large. Il est possible sous Linux (Ubuntu par exemple) de se servir de cette largeur pour diviser l'écran en deux, à la manière de Snap pour Windows 7. L'idée est de pouvoir facilement disposer côte-à-côte deux fenêtres différentes afin de pouvoir les visualiser en même temps.

Le plugin Grid que je présente aujourd'hui est un plugin pour Compiz. Une fois activé via le gestionnaire de configuration, il permet d'utiliser une grille imaginaire pour y déplacer vos fenêtres au clavier.

Grid pour Compiz

Comme le montre la capture d'écran, le pilotage au clavier se fait via le pavé numérique. Ainsi, la fenêtre active sera déplacée vers la moitié droite de mon écran lorsque j'utiliserais la combinaison <ctrl> + <alt> + <6>. Le plugin est encore plus puissant que cela, car il permet également par des appuis successif de faire occuper à une fenêtre un tiers ou deux tiers de l'écran, comme le montre les captures d'écran suivantes :

Grid pour compiz

Grid pour Compiz

Il est également possible de faire les mêmes choses mais dans le sens horizontal.

Ceci fait partie d'une des astuces que j'utilise depuis peu, mais qui améliore grandement ma productivité en tant que développeur web. Ayant un écran full HD, je peux dorénavant avoir facilement mon éditeur de texte préféré à côté de mon navigateur web, et passer de l'un à l'autre sans souci. C'est extrêmement pratique également si l'on souhaite surveiller un chan IRC (on le dispose alors dans un tiers de l'écran) tout en travaillant sur l'autre partie de l'écran. Car au final, un demi-écran est souvent largement suffisant pour consulter les sites web (ou, au pire, les deux-tiers le sont).

Et vous, quelles sont vos astuces pour être productif ?

jeudi 25 août 2011

Changer le timeout d'un plugin Munin

Munin

Récemment, j'ai eu un souci avec le plugin bind9 de Munin, qui permet de savoir quelles quantités et quel type de requêtes notre serveur DNS a dû répondre. Le plugin marchait très bien lorsque je le lançais via un terminal, mais les graphiques produits restaient désespérement vide. Le fichier de log /var/log/munin/munin-node.log m'a mis sur la voie :

[6501] Service 'bind9' timed out.

La question est : comment changer le timeout de Munin ?

De manière globale, il suffit tout simplement de saisir "timeout 60" dans le fichier de configuration /etc/munin/munin-node.conf pour résoudre le problème en appliquant ce nouveau timeout à l'ensemble des plugins. Mais on peut être encore plus précis en éditant le fichier /etc/munin/plugin-conf.d/munin-node :

[monPlugin]
timeout 60

Il suffit de redémarrer Munin pour que ce soit pris en compte :)

/etc/init.d/munin-node restart

jeudi 11 août 2011

Regénérer le fichier "digest" de Dotclear

Ce billet est plus un mémento personnel qu'un guide. Il présente une technique qui n'est pas recommandable, à moins de savoir parfaitement ce que l'on fait. La manipulation décrite ici est à effectuer sous environnement Linux.

Lors des mises à jour automatique de Dotclear, il vérifie que les fichiers de l'application n'ont pas été modifiés. S'il y a des changements, nous avons alors droit à un message similaire à :

Mise à jour de Dotclear

Il est alors impossible de mettre à jour automatiquement l'application, il faut le faire manuellement. Si comme moi vous avez tendance à éditer vos fichiers de template directement via l'interface d'administration, c'est une erreur récurrente qui est plus embêtante qu'utile. Dotclear possède en fait la liste des empreinte md5 (hash) d'une partie des fichiers qui le compose. Lors de la mise à jour, il compare l'empreinte attendue avec l'empreinte trouvée. Si cela diffère, l'erreur affichée précédemment apparaît. Sinon, tout roule et la mise à jour automatique se fait sans problème.

L'idée ici est de regénerer cette liste d'empreinte à partir des fichiers qu'on a, qui ont justement été modifié depuis la dernière installation / mise à jour. Pour cela, il faut récupérer tous les fichiers via FTP, en précisant bien le mode "binaire" pour le type de transfert. Une fois les fichiers récupérés, on fait une copie de inc/digest que l'on met de côté. On efface le fichier, puis on lance un terminal dans le dossier racine. On lance alors la commande suivante :

md5sum `find . -type f -not -path "./inc/digest" -not -path "./cache/*" -not -path "./db/*" -not -path ./CHANGELOG -not -path "./themes/*" -not -path "./public/*" -not -path "./plugins/*"` > inc/digests

Cette commande va calculer les empreintes de tous les fichiers, sauf ceux cités dans le répertoire cache/, db/, themes/, public/ et plugins/. Notez que j'ai choisi d'exclure ces dossiers parce qu'ils ne me semblent pas pertinents dans la vérification de l'intégrité de l'application. A vous de choisir quels dossiers exclures selon vos propres besoins !

Dernière étape : on envoie notre nouveau fichier digest via FTP sur le serveur. Et là, la mise à jour sera fonctionnelle.

mercredi 13 juillet 2011

PHPMyAdmin 3.4.3.1 : le concepteur ne marche plus

Le concepteur de PHPMyAdmin est un outil qui permet de visualiser la structure d'une base de données et les relations entre les tables qui la compose. Cet outil est très utile bien qu'en phase béta. Or, depuis la dernière mise à jour sous Debian, les boutons permettant d'enregistrer le schéma ou de l'exporter en PDF ne marchent plus. En utilisant Firebug, on peut même lire l'erreur suivante :

 CSP: Directive "default-src http://localhost" violated by javascript:Save2();

Corriger cette erreur est finalement assez simple, lorsqu'on a trouvé le rapport de bug qui convient. La méthodologie :

  1. Ouvrir le fichier /usr/share/phpmyadmin/libraries/header_http.inc.php
  2. Localiser la ligne contenant X-Content-Security-Policy (ligne 25 chez moi)
  3. La commenter en la préfixant par un dièse #.
  4. Enregistrer le fichier.
C'est réparé !

mardi 12 juillet 2011

Mettre à jour le package geometry de Latex sous Debian

Logo LaTeX

Introduction

Un des problèmes de LaTeX sous Debian (et d'autres distributions comme Linux Mint ou Ubuntu), c'est que les packages ne sont pas à jour. Ainsi, lorsqu'on souhaite utiliser le package geometry pour manipuler les marges d'un document, nous sommes privés de commandes telles que \newgeometry{...} ou \restoregeometry{}. La compilation échoue sur un "Undefined control sequence"... Il faut donc mettre à jour ce package pour résoudre ce problème !

Télécharger la dernière version

La dernière version du package geometry est disponible sur le site du CTAN. Nous pouvons utiliser le lien en haut de la page pour récupérer un fichier zip qu'il suffira d'extraire.

Générer le .sty

L'archive contient seulement 5 fichiers :

  • README
  • changes.txt
  • geometry.dtx
  • geometry.ins
  • geometry.pdf

On obtient le fichier .sty en lançant la commande :

tex geometry.dtx

Notez que d'autres fichiers ont été créé par la même occasion. Seuls deux vont nous intéresser ici : geometry.sty et geometry.cfg

Installer la nouvelle version

Les deux fichiers cités ci-dessus doivent être placés dans le dossier ~/texmf/tex/latex/geometry/. S'il n'existe pas, vous pouvez le créer ainsi :

mkdir -p ~/texmf/tex/latex/geometry/

Ensuite, on copie les fichiers :

cp geometry.sty geometry.cfg ~/texmf/tex/latex/geometry/

Dorénavant, lors de la compilation de vos fichiers LaTeX, le nouveau package geometry sera utilisé à la place de l'ancien, fourni par votre distribution. On peut alors utiliser les dernières commandes bien pratiques, telles que \newgeometry qui permet de redéfinir les marges d'un document en plein milieu de celui-ci.

Aller plus loin

Pour rendre cette mise à jour commune à tous les utilisateurs de votre système, vous pouvez placer le fichier geometry.sty et geometry.cfg dans le répertoire /usr/share/texmf-texlive/tex/latex/geometry.

- page 1 de 8