un homme à la mer!

Posted by kAworu Wed, 11 Mar 2009 13:41:00 GMT

L’indien, le retour

Victime de la mode, j’ai mis à jour ruby vers 1.8.7. Très convi jusqu’à ce qu’un de mes site rails http://huongviet.ch et le présent blog me plantent tout net à la figure.

<h1>Application error (Apache)</h1>
<p>Change this error message for exceptions thrown outside of an action
(like in Dispatcher setups or broken Ruby code) in public/500.html</p>

Oui mais non. Il n’y a pas d’apache installé sur cette machine, donc tu ment @#|$!@(#)!$!!!

Tout le monde reste calme, tout va bien se passer

Un tour dans les logs et puis dans google m’amène et règle mon problème rapidement.

mais pourquoi t’as cassé mon ruby, pourquoi?

J’étais déjà tombé sur une flamewar sur la ml ruby, comme quoi les mainteneur de la branche 1.8 allaient casser la compat pour faciliter la migration à 2.0. Supayr, mais sans moi. 1.8.6 est dans les bac !

Posted in | 1 comment |

more^Wless convitude

Posted by kAworu Sun, 15 Jun 2008 12:14:00 GMT

utilisateurs de less bonjour !

Un truc très sympa avec less c’est qu’on peut lui donner n’importe quel type de fichiers si on le configure un tout petit peu. Il faut utiliser un script (souvent appelé lesspipe.sh) et la variable d’environnement LESSOPEN.

un petit exemple simple dans man less nous fait mirroiter la convitude de la chose:

       For example, on many Unix systems, this script will work like the previous example scripts:

       lesspipe.sh:
            #! /bin/sh
            case "$1" in
            *.Z) uncompress -c $1  2>/dev/null
                 ;;
            esac

       To use this script, put it where it can be executed and set LESSOPEN="|lesspipe.sh %s". 
When an input pipe is used, a LESSCLOSE  post‐processor can  be used, 
but it is usually not necessary since there is no replacement file to clean up. 
In this case, the replacement file name passed to the LESSCLOSE postprocessor is "-".

voilà tout est dit. Et biensûr, des gens chouette ont déjà codé de sympathique lesspipe.sh pour nous.

le lesspipe.sh de FreeBSD laisse un peu à désirer à mon goût (y’a même une directive ex, ça donne une indication sur le siècle de création):

#! /bin/sh
# ex:ts=8

# $FreeBSD: src/usr.bin/less/lesspipe.sh,v 1.4 2007/05/24 18:28:08 le Exp $

case "$1" in
        *.Z)
                exec uncompress -c "$1" 2>/dev/null
                ;;
        *.gz)
                exec gzip -d -c "$1"    2>/dev/null
                ;;
        *.bz2)
                exec bzip2 -d -c "$1"   2>/dev/null
                ;;
esac

Gentoo a un lesspipe.sh très complet, mais malheureusement écris en bash (beurk). Mais votre serviteur (à l’aide d’une tasse de café) l’a traduit avec ses gros doigts en _sh_ pour vous.

Pour l’installation c’est facile, il suffit de le télécharger ici, de le mettre dans votre PATH, puis de mettre votre variable d’environnement LESSOPEN correctement (i.e. comme indiqué dans le man):

set LESSOPEN="|lesspipe.sh %s"

Pouf ! et voilà on peu less des dossiers, des tar, des tar.bz2, des pdf, des .doc (sisi, faut juste avoir les bons outils installés) etc.

WARNING

  • J’ai peut-être (et même certainement) merdé quelque part dans la traduction. donc utilisez pas ça en tant que root.
  • Vous être invité à le relire (200 lignes à peine et certainement seulement une dizaine de modifiées)
  • Aucune idée de la licence, parce que c’était déjà pas clair dans le lesspipe.sh de gentoo. en même temps, y’a très peu de chance de faire fortune avec un truc pareil.

Posted in | aucun comments |

screen, l'outil du BIEN (TM)

Posted by kAworu Sat, 12 Jan 2008 21:45:00 GMT

screen, c’est bon, mangez-en.

késako ?

screen (GNU screen pour les puristes) est un outils très pratique (indispensable une fois habitué) pour l’utilisation de la console. il permet entre autre :

  • de copier/coller facilement (sans souris, ça marche avec un tty)
  • de détacher une session shell (avec éventuellement un programme qui tourne dedans).
  • de simuler des tab avec un simple xterm
  • de diviser sa console en plusieurs zone (split)

Il y a déjà bien assez de doc sur comment faire toussa. oui. Mais un truc qui manque (cruellement) dans screen c’est le split vertical.

Screen CVS

screen peut faire des split horizontaux, mais pas verticaux. Sur des écrans wide (de plus en plus à la mode), c’est souvent plus agréable/pratique de pouvoir splitter verticalement que honrizontalement. Heureusement, les dev screen sont d’accord avec ça, mais pas très très rapide. Il faut la version CVS de screen pour pouvoir s’amuser avec le screen vertical, mais heureusement, c’est facile de l’installer :)

Installation

On va installer screen directement depuis le CVS donc il vous faut installer cvs si il n’est pas déjà installé. Pour les utilisateur de gentoo, voir Installation (Gentoo) :)

Pour les autres, le trio infernal :

$ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/screen co screen
$ cd screen/src
$ ./configure
$ make
# make install

A noter que make install doit être fait avec les droits root. Vous n’êtes pas obligés de faire le make install, vous pouvez faire un symlink sur l’exécutable dans et le mettre dans votre PATH.

Installation Gentoo

Bande de chanceux, tonton kAworu vous a fait un ebuild pour screen CVS.

Plantez le dans votre jardin perso

# on matte si je jardin perso est bien connu
$ grep OVERLAY /etc/make.conf
PORTDIR_OVERLAY="/usr/local/portage"

# on y va
$ cd /usr/local/portage

# hop un peu d'engrais
$ mkir -p app-misc/screen
$ cp -r /usr/portage/app-misc/screen/files /usr/local/portage/app-misc/screen/files

# on plante
$ wget http://www.kaworu.ch/files/screen-9999.ebuild

# on arrose
$ ebuild screen-9999.ebuild digest

# et on observe la magie
$ emerge -av screen

Mais comment qu’on fait alors ?

voilà ! reste plus qu’à apprendre à splitter verticalement : C-a | (oui, avec le pipe). Pour les curieux, voilà un petit screenshot de screen en action.

J’ai parfois des petits soucis de performance avec le split vertical (quand il y a beaucoup de texte qui défile, lors d’une compilation par exemple), mais autrement c’est que du bon !

Enjoy !

Posted in | 1 comment |

Older posts: 1 2