Category: Nature

compiz grid: je peux enfin utiliser gnome

Par mc, 29 décembre 2009 15 h 13 min

Grid est un module de compiz qui permet d’avoir le comportement d’un tilling window manager simple. quand je dis simple c’est:

- 2 clicks pour la config.
- c’est foutrement bien pensé : moins de 1 mn pour le prendre en main et pour trouver que finalement, ils etaient nuls mes mappings sous ion.
- me donne accès 90% des fonctionnalités qui faisaient que j’utilisais des tilling VM (tout en restant en mode flottant)
- ca n’est pas aussi souple qu’avec un tilling comme ion mais ce point est largement compensé a mes yeux par le fait de pouvoir enfin utiliser le meme VM que monsieur tout le monde, sans aucune autre manip a faire que les 2 clicks pour activer le bouzin!

en pratique:

aptitude install compizconfig-settings-manager compiz-fusion-plugins-extra
# sous ubuntu ca marche :) (Stereo, notre correspondant sur mars, a visiblement du mal sous debian)

sous gnome allez dans le menu:

system/preferences/advanced desktop effects settings

puis cherchez « grid » … y’a plus qu’a activer! Au passage: jetons un coup d’oeil sur les mappings pour comprendre le fonctionnement machin:

En gros: ca divise l’écran en 4. vous voulez utiliser le bord superieur gauche de l’écran avec la fenetre courante ? ctrl-alt-1. ctrl-alt-7 pour le bord inferieur gauche. Pour occuper toute la partie gauche de l’ecran ctrl-alt-4!

Dans les 3 cas, vous pouvez élargir la fenetre en répétant la combinaison jusqu’à 3 fois!

Exercice: faites les memes manips avec le bord droit :)

gerer $PERL5LIB avec zsh

Par mc, 23 août 2009 23 h 16 min

Je viens de lire ici ce code là:

BASE_PATH=~/code/work/rtgi
for perl_lib in $(ls $BASE_PATH); do
    if [ -f $BASE_PATH/$perl_lib/Makefile.PL ]; then
        PERL5LIB=${PERL5LIB:+$PERL5LIB:}$BASE_PATH/$perl_lib/lib
    fi
done
export PERL5LIB

c’est dommage de ne pas profiter de zsh quand on l’utilise. Transformons:

for perl_lib in $(ls $BASE_PATH); do
done

- utilise une commande externe
- interprete la stdout de ls pour créer un tableau (epic fail en cas de nom de répertoire pourri)

je remplace par:

for perl_lib ( $BASE_PATH/* ) {
}

(utilisant au passage la syntaxe alternative zsh tellement plus jolie)

ensuite …

    if [ -f $BASE_PATH/$perl_lib/Makefile.PL ]; then
        PERL5LIB=${PERL5LIB:+$PERL5LIB:}$BASE_PATH/$perl_lib/lib
    fi

verifie si y’a un Makefile.PL dans le repertoire. Du coup le mieux est de faire l’inverse: chercher tous les Makefile.PL dans les sous-repertoires (non-récursivement)

$BASE_PATH/*/Makefile.PL

puis ne conserver que le dirname ( :h comme head)

for perl_lib ( $BASE_PATH/*/Makefile.PL(:h) ) {
}

reste ca:

PERL5LIB=${PERL5LIB:+$PERL5LIB:}$BASE_PATH/$perl_lib/lib

c’est pas beau mais comment faire avec une chaine ? ca serait tellement plus joli de gérer PERL5LIB avec un tableau pour pouvoir utiliser l’operateur += … et bien zsh permet de faire un tie d’un tableau sur une chaine grace a typeset -T chaine tableau. j’ajoute un U pour laisser a zsh le soin de virer tout doublon.

typeset -UT PERL5LIB perl5lib

maintenant je peux manipuler le tableau perl5lib

# push $PWD:
perl5lib+=$PWD
# unshift $PWD:
perl5lib[1]=( $PWD $perl5lib[1] )

au final, l’expression ci-avant donne donc:

typeset -UT PERL5LIB perl5lib
for f ( $BASE_PATH/*/Makefile.PL(:h) ) { perl5lib+=$f/lib }

enjoy

liens rapides vers l’ifla

Par mc, 24 avril 2009 1 h 36 min

vous utilisez souvent le site de l’IFLA pour chercher des infos sur tel champ/sous-champ unimarc? c’est chiant de naviguer sur leur site et ca le serait tout autant de bookmarker chaque anchor? je suis d’accord!

J’ai pondu ce petit script qui m’ouvre mon firefox à la bonne page, au bon endroit.

usages

ifla b 110 # ouvre firefox sur la doc du champ 110 des notices biblio
ifla a 6   # ouvre firefox sur la doc des 6xx des authorités
ifla qa    # ouvre firefox sur le résumé des autorités
ifla ib    # ouvre firefox sur la page de garde des notices biblio

script

ifla () {
    setopt localoptions nounset warncreateglobal
    local short=$1 url
    local site=http://archive.ifla.org
    local base=$site/VI/3/p1996-1
    shift
    typeset -A link_for
    link_for=(
	ib   $base/sec-uni.htm
	qa   $base/ucaf.htm
    )
    if (( $+link_for[$short] )) { url=$link_for[$short]
    } else {
	case $short { 
	    (a)
		    url="$base/uniafull.htm"
		    (( $+argv[1] )) && url="$url#${argv[1][1]}--"
	    ;; 
	    (b) 
		(( $+argv[1] )) &&
		    url="$base/uni${argv[1][1]}.htm#${argv[1]}" ||
		    url="$base/sec-uni.htm"
	    ;;
	}
    }
    (( $+url )) || {
	print -u2 "shortcut $short does not exist"
	false; return
    }
    firefox $url
}

Sub(s) downloader en ligne de commande ?

Par virtual_eye, 24 janvier 2009 23 h 28 min

Vous avez un serveur multimédia chez vous ? ou pas ? Dans les deux cas vous pouvez être preneur.
Marre de chercher sur google les sous-titres de vos séries préférées (ou de vos films) ?

Subdownloader est un petit programme Python qui se charge pour vous d’aller chercher les sous-titres demandés chez opensubtitles.org et qui les renomme tout bien! Cependant ce programme est par défaut graphique.
Et là, merci les gars d’avoir pensé aux gens qui aiment Debian et ses variantes puisque sur le site officiel du projet, vous pouvez récupérer les .deb !
Et je dis bien les .deb car contrairement à ce qui est proposé pour les autres systèmes d’exploitation et/ou distributions linux, vous pouvez récupérer une version graphique certes mais également une version purement shell !
Une aubaine lorsque sur votre serveur multimédia vous n’avez pas d’interface graphique ou que vous voulez faire cette manip’ à distance.
Attention toutefois, il y a une dépendance au paquet qui est python-kaa-metadata

Le script se trouve au chemin /usr/share/subdownloader/run.py

Cependant quelques options sont nécessaires à son exécution :
[list]
[*] -c pour lancer le script en console (par défaut en mode graphique or vous ne l’avez pas installé. Si ?)
[*] -l (en anglais par défaut) ex: -l fr pour français
[*] -V liste des fichiers video ou répertoires en contenant
[*] –rename-subs parle de lui-même
[/list]

Plus d’options sont disponibles :

python /usr/share/subdownloader/run.py --help

Me suis créé un alias :

alias subdownloader='python /usr/share/subdownloader/run.py -c -l fr --rename-subs -V'

Dossier avant :

$ ls the_it_crowd/season_03/
The.IT.Crowd.S03E01.WS.PDTV.XviD-RiVER.[VTV].avi    The.IT.Crowd.S03E03.WS.PDTV.XviD-RiVER.[VTV].avi    The.IT.Crowd.S03E05.WS.PDTV.XviD-RiVER.[VTV].avi
The.IT.Crowd.S03E02.WS.PDTV.XviD-ORGANiC.[VTV].avi  The.IT.Crowd.S03E04.WS.PDTV.XviD-ORGANiC.[VTV].avi  The.IT.Crowd.S03E06.WS.PDTV.XviD-RiVER.[VTV].avi

Pendant

$ subdownloader the_it_crowd/season_03/
[23:22] INFO::subdownloader.cli.main # Scanning the_it_crowd/season_03/ ...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]100% Time: 00:00:00
[23:22] INFO::subdownloader.cli.main # Videos found: 6 Subtitles found: 0
[23:22] INFO::subdownloader.cli.main # Looks like some of your videos might need subtitles :)
[23:22] INFO::subdownloader.cli.main # Starting subtitle search, please wait...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]100% Time: 00:00:00

Après

$ ls the_it_crowd/season_03/
The.IT.Crowd.S03E01.WS.PDTV.XviD-RiVER.[VTV].avi    The.IT.Crowd.S03E03.WS.PDTV.XviD-RiVER.[VTV].avi    The.IT.Crowd.S03E05.WS.PDTV.XviD-RiVER.[VTV].avi
The.IT.Crowd.S03E01.WS.PDTV.XviD-RiVER.[VTV].srt    The.IT.Crowd.S03E03.WS.PDTV.XviD-RiVER.[VTV].srt    The.IT.Crowd.S03E05.WS.PDTV.XviD-RiVER.[VTV].srt
The.IT.Crowd.S03E02.WS.PDTV.XviD-ORGANiC.[VTV].avi  The.IT.Crowd.S03E04.WS.PDTV.XviD-ORGANiC.[VTV].avi  The.IT.Crowd.S03E06.WS.PDTV.XviD-RiVER.[VTV].avi
The.IT.Crowd.S03E02.WS.PDTV.XviD-ORGANiC.[VTV].srt  The.IT.Crowd.S03E04.WS.PDTV.XviD-ORGANiC.[VTV].srt  The.IT.Crowd.S03E06.WS.PDTV.XviD-RiVER.[VTV].srt

Nice, isn’t it ?

ptotd: perl as lazy as required!

Par mc, 19 janvier 2009 17 h 42 min

perl est lazy quand il construit des ranges. Ceci a pour résultat que:

print "$_\n" for (1..$n);

ne crée pas un tableau de $n elements en mémoire mais génère les éléments a mesure qu’apparaissent leur utilité.

copier/coller dans vim

Par mc, 19 janvier 2009 15 h 47 min

lorsque vous copiez le contenu du clipboard dans vim, ce contenu est interprété par vim comm si vous l’aviez saisi normalement … tres enervant pour de nombreuses raisons (vim autoindente, les macros sont executées, …).

Il existe un flag ‘paste’ qui permet d’eviter ce comportement et de copier en toute quiétude: paste!

:set paste    " active 
:set nopaste  " desactive
:set paste!   " toggle

(:h ‘paste’) (:h :set) pour + d’infos

my 2 cents:

:nnoremap ,p :set paste!<cr>
:nnoremap ,n :set nu!<cr>

maintenant je peux toogle le comportement de paste en mode normal avec un simple ,p

vous, Sie, lei, …

Par mc, 26 août 2008 10 h 36 min

c’est parti de Sie = vous != sie

et ca donne:

<@bwana147> c’est rigolo, en français, la forme de déférence est un pluriel (vous), en italien c’est la troisième personne du singulier au féminin (lei) comme en français quand on s’adresse à Sa Majesté par exemple, et en allemand c’est la troisième personne du pluriel. En anglais, le tutoiement est tombé en désuétude, alors qu’en Danois, c’est l’inverse, on tutoie tout le monde sauf peut-être la reine.

en anglais, il y avait un tutoiement (« thou shalt earn thy bread by the sweat of thy brow ») maintenant réservé a Dieu.

http://fr.wikipedia.org/wiki/Thou_(pronom_personnel) article intéressant ou l’on trouve:
« Thou vient de l’ancien anglais þú ou þū, que l’on ramène à sa racine proto-indo-européenne *tu. »

« ave Cesar qui morituri te salutant », le « te » ressemble à un tutoiement, alors qu’on s’adresse à l’empereur.

note: git diff et vlm

Par mc, 14 août 2008 15 h 21 min

pas encore regardé les plugins vim qui permettent de se balader dans l’historique et tout et tout … en attendant:

$ git diff 'HEAD^' > patch 
$ cp main.c /tmp/main.c 
$ patch -R main.c patch 
patching file main.c
$ vimdiff /tmp/main.c main.c 
2 fichiers à éditer

back to cygwin …

Par mc, 9 janvier 2008 23 h 29 min

Il y a quelques temps, j’etais heureux de me dire que tcsh et les gnuwin32 tools permettaient de s’abstraire du layer cygwin. Ca avait l’avantage de se débarasser du chiantissime cygpath en gérant correctement les chemins windows.

Apres avoir bossé un peu avec, je me rend malheureusement compte que les perfs sont déplorables par rapport a cygwin. et que décidément … une fois qu’on a touché à zsh, aucun autre shell ne peut trouver grace a mes yeux.

Du coup, j’ai cherché à savoir si qq1 avait réalisé mon rêve (détourner putty pour une utilisation locale) … et ben lui, il l’a fait!

vivre et laisser mou rire !

Par mc, 5 janvier 2008 14 h 10 min

Vous êtes plein de certitudes? Vous pensez que les autres sont des incultes? Surtout les américains? alors relativisez, lisez, cherchez l’info à sa source, comparez les approches faites le point avec vous-même et partagez-le … oui … allez vers vos semblables, partagez cette sagesse nouvelle, maitrisez la force et trouvez la la voie.

pompage de signature:

&gt;Ever heard of .cshrc?
That's a city in Bosnia.  Right?
-- Discussion in comp.os.linux.misc on the intuitiveness of commands

Panorama Theme by Themocracy