Demande d'information
Alignement des images
Les balises audio et video foirent
Planète Libre et Micro-blogging
Mis à jour du flux RSS
Partages ?
®om
4LW
Admin-Linux
agatzebluz
Aldevar
Another Pinky Punky
AnTav
Antistress
Antoine Millet
Antonin Moulart
archi02
arNuméral
Artisan Numérique
Asher256
Aternatik
Aurélien Bompard
Bastnic
Benkemoun
Bilbo Planet
Biscotte
Blogmotion
bochecha
botchchikii
bouleetbil
Boutor
Breizh ardente
Cairo-Dock
Cameleon
Capof's Space
Captaine74
Carl Chenet
Cedynamix
champtoussel dominique
ChEza
Chicha
Chimrod
Christophe-Marie
Clapico
Corbier
Costalfy
Creasy
CSM 'illovae' Seldon
CyberSDF
Cyrille BORNE
dada
dahu_fou
Damien Cougar
Damocles
Daria
David Dup
David Larlet
Davromaniak
Ddmdllt
Des nouvelles de Wikilivres
Desidia
Devil505
Dhoko
DigitalSpirit
djibux
Dorian Dd
Duchatelet
E-PhasE
Eddy33
Edouard
Effraie
eMerzh
Emilien Macchi
Emilpoe
Emmanuel Gontcho
Emmanuel Kasper
Equinoxefr
Eric
Exceed
FACIL
Facilinux
Feilong
fgallaire
Finss
florentg
floruby
Fonctionerd
Framablog
François
Franck Archange
FredBezies
Full Circle Magazine
Fuse
Génération Linux
G3L
Gaëtan Tenshu
Gilir
Grégory Gutierez
Gregory Colpart
Guillaume Kulakowski
Hugues
Hyla project
Il Palazzo-sama
inalgnu
Jérémy Verda
Jeff
jeremy2491
jeromeg
jesuislibre
JJL
Johan Cwiklinski
Jonathan Ernst
Jonathan Le Lous
Jopa
Jp Fox
Juky
Julien
Julius
ka.da
Kagou
kamagatos
Kate
Kiddo
KissCoolMan
Labo-Linux
LeDucDuBleuet
Lemarinel
Lenezir
Liberez le tux
Libre Astux
Linalis
Littlewing
Louis Roché
lowje
Luc
Macsim
Manu Absolacom
Marco
Matao
Mathieu Comandon
Maxime Carron
McKey
meepix
Michael Zwyssig
Michauko
Mickaël
Minimumserious
Monitoring-FR
Morot
Motarion
mozillaZine-fr
Mr.Yann
MrTom
Nÿco
Naparuba
Nicofo
Nicolargo
Nicosmos
Nicoz
NiKo
nizarus
Noplay
Olivier Faurax
Olivier Prieur
Omega
Oncle Tom
Op'Aisne Source
openSyd
opossum1er
Osku
OxyRadio
Paquet Fedora du Jour
Pascal Chevrel
pc-kc
Peck
Phil
Pianopenguin
Pingax
PlayOnLinux
Ploum
Pokemon_JOJO
Poupoul2
Rémi Samier
Raphaël Hertzog
Ravomavain
Renaud Littolff
Renault
Respawner
Retouche Libre
Ricard
Robin Millette
Roland Mas
RollsRox
Rydgel
Saïmon
Samuel Martin
Sauthier
SckyzO
Scoffoni
Scurz
Shnoulle
Silvyn
Skhaen
Slobberbone
Splitsch
StandarT
StephZ
Sylvain
System Linux
Taltan
Tbellemb
Tchouvince
theClimber
TheGlu
TheLinuxFr
Thibaut
Thierry Andriamirado
Thom1
Thomas Bassetto
Tigrou Damien
TitaX
toitoinebzh
Toorop
TrouveTonGull.info
Tuxargon
Tuxicoman
U-Classroom
Uggy
Ulrich Diplodocus
Une goutte de blog
Uselink
Vanaryon
VELCS
Vetsel
Warren Dumortier
Wattazoum
Wavemaker
Weedfast
Yannig
yeKcim
Yellowiscool
Yoho
Yves Gesnel
Zanko
Zic
Zippy
ZitrouilleComme vous le savez peut-être framabook a sorti son dernier bébé, le numéro 6, qui n'a d'autre sujet que RMS himself et portant le titre Richard Stallman et la révolution du logiciel libre - Une biographie autorisée. Un ouvrage initialement écrit par Sam Williams, revue et augmenté par Richard himself avec la collaboration de Christophe Masutti de chez Framasoft (notamment pour la traduction en français). Enfin bref, vous connaissez peut-être l'histoire de ce livre et si ce n'est pas le cas, je vous laisse cliquer sur le lien ci-dessus histoire d'en savoir plus...
Comme beaucoup d'entre vous j'aime bien lire mes livres sous formes numériques. Certains préfèrent le format HTML, d'autres le PDF. D'ailleurs framabook propose ces deux formats. Personnellement ni l'un ni l'autre ne me convient. En tant que maniaque du retrocomputing moi je veux du bon vieux TXT. Pourquoi ? Avant tout parce que c'est léger et que c'est lisible sur tout type de machine et de système, mais aussi parce que les documents en .txt sont plus facilement diffusable sur votre gopher ou votre bboard favorite, voir même par mail (pour les plus modernes d'entre vous). Et je regrette vraiment de ne pas trouver d'ebooks libre au format texte...
Bref, tout ça pour dire que je me suis donc permis de récupérer les sources latex de l'ouvrage que j'ai donc compilé en html grâce à latex2html. Ensuite j'ai converti le tout en plain text avec lynx. (Oui je n'ai pas utilisé la version HTML donné par framabook car cette version est scindée en plusieurs fichier.html en fonction des chapitres, chose que je ne voulais pas (plus simple pour le passage du bouquin en un seul fichier .txt)). Enfin, j'ai retouché légèrement l'apparence de la version texte (titre, encart, etc) histoire que ça soit d'une part agréable à lire mais aussi histoire de mieux se repérer (titre de chapitre écrit en majuscule avec ajout de caractères clés pour pouvoir naviguer directement vers un chapitre sans avoir à scroller les 10895 lignes)...
Voici maintenant les liens vers ce framabook en .txt pour ceux que ça
intéresse (oui vous allez pas être nombreux je me doute :p) :
Richard
Stallman et la révolution du logiciel libre (protocole gopher)
Richard
Stallman et la révolution du logiciel libre (protocole http)
Notez que chaque chapitre a donc des caractères clés histoire de pouvoir sauter vers le chapitre voulu en faisant une simple recherche ("[C07]" pour le chapitre septième par exemple. Le système de recherche peut-être utilisé aussi pour voir les notes de bas de pages (qui sont en fin de document) en recherchant simplement le mot suivi du numéro de la note (par exemple : "et autres systèmes ordonné^23" il suffit de chercher ordonné^23 pour tomber tout de suite sur la note (dans les faits il suffit simplement de faire une recherche sur ^23 pour tomber sur la note, puis de refaire la même recherche pour revenir à la position originale).
NB : Ah et bien sûr, je ne l'ai pas dit explicitement, mais je n'ai en rien changé le contenu de l'ouvrage évidemment...
NB2 : Avant qu'on ne me fasse la remarque "Mais pourquoi ne pas simplement convertir le pdf en texte directement avec genre pdftotext ?" Simplement parce que, je ne sais pas si vous l'avez déjà fait, mais le résultat est limite inbuvable la plupart du temps ni vraiment très propre (caractères illisibles, formatage des plus aléatoires, etc)...
Un peu plus d'un an après la première édition (http), je me décide enfin à continuer cette série (le fait d'avoir retrouvé mes vieilles notes à ce sujet ne doivent pas y être pour rien...). Je me propose ici de diffuser les diverses infos et tips que j'ai pu glaner au fur et à mesure des années et que j'ai noté. Ça pourra peut-être servir à quelqu'un (même si certaines sont vraiment useless), on ne sait jamais... Je les restitue comme je les avait notée à l'époque.
Si vous avez une commande ou une astuce de la mort qui tue qu'elle est trop bien que vous pouvez plus vous en passez, n'hésitez pas à me l'envoyer, je me ferais une joie de la mettre dans la prochaine édition de la Foire aux Achtuss :)
$ cut -c 6- prout.txt >
prout2.txt
#
update-alternatives --config x-www-browser
# apt-get remove --purge lenomdupaquet
C'est un truc assez connu. Cependant, que faire si on a déjà
désinstaller les programmes sans avoir utiliser cette option ? Que faire
pour virer ces fameux fichiers de configuration inutiles ? Simplement en
utilisant cette commande : # dpkg --purge $(dpkg --get-selections |
grep deinstall$ | cut -f 1) (Merci Valouille pour le truc ;)).
$ dpkg -c *.deb # pour voir son contenu
$ dpkg -f *deb # pour voir les dépendances
$ dpkg -I *deb {pre,post}{inst,rm} # pour voir le fichier de configuration
$ mencoder video_source.avi -sub
fichier_soustitres.srt -fontconfig -font Arial -subfont-text-scale 4 -oac
copy -ovc lavc -o video_finale.avi
$ cat fichier | awk
'/BRAVO/,EOF'. Merci à gapz pour celle-ci ;)
# emerge -vNDup world. On peut rajouter l'option
-a histoire qu'il nous demande si on est sûr de vouloir effectuer
l'opération (ce qui est pratique pour vérifier les USES flags...). À noter
qu'on peut utiliser genlop histoire de savoir combien de temps ça va
prendre (pour ça il faut avoir déjà installer les ebuilds afin qu'il
puisse faire les estimations ; il faut aussi avoir emerger genlop, cela va
sans dire) : # emerge -puDN world | genlop -p
# iptables -A INPUT -s $ATTACKER_IP -j DROP
# cd /usr/portage && for i in
app-text/texlive*; do echo $i >> /etc/portage/package.keywords;
done. Ainsi, tous les ebuilds commencant par texlive se
retrouveront dans votre fichier package.keywords... Très pratique,
n'est-ce pas ? Merci à Ycarus pour cette dernière.
xset dpms 0 0 0 xset s off
$ libtoolize
--force --copy
J'ai installé dans leur ensemble les sets A AP D L N X, ce
qui prend environ 2.1Go d'espace disque (plus d'informations sur les sets
dans le
Slackware-HOWTO). L'installation s'est déroulée sans entraves. Ne
connaissant pas encore assez bien slackware, j'ai installé tous ces sets
en entier, cependant, il est possible de partir d'un système plus
minimal et d'installer les packages à sa convenance. Vous pouvez
le faire depuis le(s) cd(s)/dvd d'installation, mais cette méthode de
sélection paquet par paquet peut être fastidieuse.
Une autre technique consiste à installer les sets A
AP D L N dans leur totalité puis d'utiliser le script
Make Me Slim écrit par Martti
Kuparinen et que vous pouvez trouver ici. Son
utilisation est très simple, après l'avoir récupéré :
$ chmod +x mms $ ./mms -h $ ./mms -y
À l'origine ce script sert donc a avoir le système le plus épuré possible afin d'utiliser pkgsrc. Attention, ce script va désinstaller une grande partie des packages sous slackware, il restera juste assez pour booter, mais rien de plus...
Note : j'ai utilisé pkgsrc sur une slackware épurée,
mais sachez que vous pouvez très bien l'utiliser sur n'importe quel
système GNU/Linux ; c'est l'intérêt de pkgsrc...
Je ne vais pas détailler ce qu'est pkgsrc ici, mais sachez simplement que cela sert simplement à avoir les programmes de l'userland NetBSD sous GNU/Linux (entre autres). Le tout par la compilation.
L'idée ici est d'avoir un système minimal basé sur slackware et
d'utiliser exclusivement pkgsrc pour compiler les programmes
tiers dont vous pourriez avoir besoin (depuis ncurses jusqu'à
Xorg et des X applications). Oui, cette optique d'avoir un noyau Linux,
une base minimale GNU et d'utiliser l'userland NetBSD va faire frémir
d'horreur les BSDistes. Généralement, on fait l'inverse : on a un noyau
BSD, son userland (plus pratique) et on rajoute les outils GNU...
Mais on peut très bien utilisé pkgsrc simplement pour avoir des
applications non disponibles dans les dépôts officiels slackware. C'est à vous
de voir. (Note: pkgsrc rêgle lui-même les dépendances).
Avant tout nous allons récupérer pkgsrc à cette adresse et
le placer dans /usr/.
Pour avoir un système minimal slackware, je vous renvoie à la partie
précédente et l'utilisation du script Make Me Slim.
Attention: veuillez récupérer le tar.gz de pkgsrc
avant de lancer mms. En effet mms
supprime le package wget, vous ne pourrez donc plus le
télécharger simplement. Ou alors éditez le script pour rajouter
wget à la liste des packages à ne pas enlever.
Nous allons donc détarer pkgsrc puis lancer le bootstrap :
# cd /usr # tar xzf pkgsrc-200XQX.tar.gz # cd /usr/pkgsrc/bootstrap/ # ./bootstrap
Tout cela va prendre un peu de temps et de place (un peu moins de 700Mo).
Une fois fini, il va vous falloir éditer un peu votre
shell en modifiant votre PATH :
PATH=$PATH:/usr/pkg/sbin:/usr/pkg/bin. Il faut aussi penser
aux man en rajoutant MANPATH=$MANPATH:/usr/pkg/man (tout cela
dans votre ~/.profile ou votre ~/.bashrc ou
autre...). Occupons nous aussi du PATH des librairies :
# echo /usr/pkg/lib >> /etc/ld.so.conf # cat /etc/ld.so.conf /usr/local/lib /usr/X11R6/lib /usr/i486-slackware-linux/lib /usr/pkg/lib
Nous allons maintenant customiser un peu
mk.conf. Avant tout on le copie là où il faut :
# cp /usr/pkgsrc/bootstrap/work/mk.conf /usr/pkg/etc/mk.conf
Par défaut, la configuration n'est pas à modifier sauf selon votre convéniance.
Cependant, vous pouvez d'ores et déjà rajouté ces deux lignes dans ce fichier
avant .endif:
ACCEPTABLE_LICENSES+=vim-license ALLOW_VULNERABLE_PACKAGES=vim
Enfin on va installer l'audit et digest (bmake est le
make de NetBSD pour information) (c'est une bonne idée de mettre
download-vulnerability-list dans un crontab histoire de garder
cette liste à jour) :
# /usr/pkg/sbin/download-vulnerability-list # cd /usr/pkgsrc/pkgtools/digest # bmake
Voilà nous avons donc maintenant un pkgsrc totalement
fonctionnel. Vous pouvez déjà compiler openssh (si vous n'avez
pas d'installation minimale, pensez à removepkg openssh
avant) :
# cd /usr/pkgsrc/security/openssh # bmake install # bmake clean clean-depends
Il exist un programme assez intéressant qui va vous permettre de maintenir à
jour les programmes installés par pkgsrc et qui se nomme
lintpkgsrc :
# cd /usr/pkgsrc/pkgtools/lintpkgsrc # bmake
edit : si vous comptez utiliser pkgsrc
avec un installation "normale" de slackware, vous devriez penser à
désactiver la binaire ftp. En effet, pkgsrc
utilise sa propre version de ftp et cela pourrait provoquer
un disfonctionnement dans la récupération des sources par
pkgsrc. Pour cela un simple # chmod 0 /bin/ftp
suffit.
Nous allons maintenant passé en revenu quelques façons de gérer les packages sous slackware. Notons (comme vous le savez peut-être) que slackware ne gère pas les dépendances, vous devez le faire vous-même à la main.
slackpkg est une méthode pratique
pour gérer les packages officiels. Sa configuration se
fait au travers du fichier /etc/slackpkg/slackpkg.conf et de
/etc/slackpkg/mirrors notamment. Il est normalement livré
dans les dépôts officiels de slackware ; si vous avez fait une
installation normale, vous devriez l'avoir sur votre machine.
sbopkg est un
outil en ligne de commande qui permet d'avoir accès au dépôt de SlackBuilds.org qui
contient une liste non négligeable de packages. sbopkg
s'occupera donc pour vous de récupérer les sources, de compiler et
d'installer les packages résultant sur votre système.
Certains de ces programmes nécessitent d'avoir des librairies installées
pour la compilation. Vous pouvez obtenir toutes les informations
nécessaires via la commande # sbopkg -s [packages] pour les
dépendances directes du paquet (par exemple, le README
de feh nous indique que giblib et imlib2 sont requis et disponibles sur
slackbuild.org). Il faudra donc les compiler avant bien sûr. En
pratique et si les dépendances se trouvent sur SlackBuild, avec
sbopkg, cela se traduit simplement de cette façon :
$ sudo sbopkg -i "giblib imlib2 feh"
slackyd est un outil qui nous vient de la communauté slackware italienne Slacky.eu
qui a son propre dépôt de packages ;
à nouveau un outil en ligne de commande, qui vous
permettra d'installer les packages directement ou de les
compiler. slackyd lors de l'installation d'un
package vous indique quelles sont les dépendances directes
requises et vous propose de les installer automatiquement (soit
depuis le dépôt officiel, soit depuis le dépôt slacky.eu, selon le
package). Notez que c'est à titre indicatif, pour
respecter la philosophie slackware, le script ne vous impose pas du tout
d'installer ces dépendances, et fort heureusement.
Vous pouvez récupérer le package de slackyd directement sur
le dépôt officiel et l'installer (attention prenez la version qui
correspond à votre version de slackware). Pensez à regarder la
configuration se trouvant dans /etc/slackyd/slackyd.conf. Je
vous conseille d'utiliser un des miroirs pour récupérer les packages,
étant donné que le dépôt officiel est plutôt lent... (cf. le fichier de
configuration).
Les packages installés via sbopkg et slackyd
sont enregistrés sur votre système. Pour les désinstaller, il
suffit simplement d'utiliser les outils slackware appropriés, dans notre
cas removepkg.
Il existe d'autres façons de gérer les packages sous slackware, et notamment
swiret et slapt-get. Je n'ai testé ni l'un ni
l'autre. swiret ne paraît plus vraiment utilisé selon ce qu'on m'a
dit. Quant à slapt-get sa gestion des dépendances est trop
debian-like et ne respecte pas assez la philosophie de slackware pour que je
m'y sois penché...
On peut tout à fait utiliser en même temps ces quatres
méthodes pour installer les paquets / compiler les sources des programmes
dont nous avons besoin. sbopkg et
slackyd ont plusieurs packages en commun mais chacun a des
outils en plus dans lesquels chacun pourra trouver son bonheur.
L'intérêt de pkgsrc est, bien sûr, de bénéficier de
l'userland de NetBSD et de ces audits. Personnellement, j'aurai
tendance à n'utiliser que pkgsrc avec une base
minimale mais il faut pour cela une partition assez conséquente et du
temps (car oui on compile tout de A à Z et ça prend de la place ; un peu
comme une gentoo quoi). Mais avec cette dernière méthode on s'éloigne de
la philosophie slackware, mais on bénéficie malgré tout de son
installation de base très robuste et standard.
Dans les faits, n'ayant pas une place folle pour mon root, j'ai laissé de côté
pkgsrc pour le moment pour me concentrer sur sbopkg
et slackyd.
http://www.slacky.eu/wikislack/index.php?title=Pkgsrc_su_slackware
http://kuparinen.org/martti/comp/slackware/slackware.html
http://pbraun.nethence.com/doc/sysutils_linux/slackware.html
http://pbraun.nethence.com/doc/sysutils_linux/slackware-pkgsrc.html
... parce que la gestion des fenêtres est le boulot du gestionnaire de fenêtre. C'est sous cette formule que Lars Bernhardsson présente le gestionnaire de fenêtre qu'il a écrit : larswm.
Je compte ici vous présenter un gestionnaire de fenêtre que j'utilise maintenant depuis quelques petites années et dont je n'arrive plus à me passer (c'est pas faute d'avoir essayé). Le contenu de cette page ne se veut pas le plus complet qui soit, il y a tellement de façons différentes d'utiliser larswm que ça en serait impossible. Cependant, je vais essayer de décrire tous les aspects que j'en connais, depuis le téléchargement des sources, jusqu'à l'utilisation de programmes supplémentaires histoire d'y ajouter du potentiel (programmes en relation directe avec larswm bien sûr), en passant par la façon dont je l'utilise. Ceci donc est mis à disposition en guise d'inspiration. Si vous avez des questions particulières sur ce tutorial, n'hésitez pas à me contacter.
Larswm fait partie de ces gestionnaires de fenêtre que l'on nomme tiled windows managers. Cela signifie que les fenêtres s'organisent d'elle-même en mosaique selon un schéma prédéfini dans le code source du gestionnaire et potentiellement customisable par l'utilisateur selon les possibilités du gestinonnaire. Ceci dans l'unique but de vous permettre de vous concentrer sur votre travail ou sur votre activité, sans jamais vous soucier de la façon dont vous devrez ranger les fenêtres pour rendre votre travail efficace : non ça le gestionnaire s'en charge. Après tout, c'est son boulot non ?
Par un beau samedi de ce début du mois de juin de l'an 2000, Lars, de son petit nom, s'est mis en tête d'ajouter une fonction qui lui manquait à son gestionnaire du moment, 9wm : la gestion automatique des fenêtres. Et voilà le projet lancé sur un excès de feignantise de devoir toucher à sa souris pour déplacer les fenêtres. Le bougre ne s'arrêtera pas là et continuera de faire évoluer son gestionnaire de fenêtre jusqu'à la version stable 7.5.3 qui sortira un peu plus de quatre ans plus tard. Cela peut en surprendre plus d'un et on peut penser que le developpement a été stoppé en cours de route, puisqu'aucun commit, ni aucune release n'a été officiellement mis à disposition des utilisateurs depuis lors par Lars. Mais que nenni mes chers amis, il est plus probable que Lars ayant considéré son gestionnaire totalement achevé, il n'ait pas ressenti le besoin d'ajouter d'autres fonctions ou de réécrire du code pour larswm. Bien sûr ceci n'est qu'une supposition, vous pouvez aussi très bien considéré qu'il a décidé de passer sous KDE et qu'il s'amuse depuis peu comme un petit fou à foutre le feu à ses fenêtres à l'aide de compiz ; possibilité peu envisageable selon moi, mais qui peut cependant intégrer l'univers des possibles.
Larswm est un gestionnaire de fenêtre héritié de grands principes gravés dans le marbre il y a déjà des années par le gestionnaire 8 1/2 du Ô combien vénérable système Plan 9 ; 9wm étant en effet basé sur 8 1/2. Pas de froufrou inutile, une interface sobre et fixe ainsi que la possibilité d'utiliser une souris à trois boutons.
Larswm est donc fait par défaut pour que vous ne vous souciez pas des fenêtres. Dès qu'une fenêtre est crée, elle est arrangée par rapport aux autres comme une mosaique. Malgré cela, il est tout à fait possible d'avoir une influence plus fine sur les fenêtres, de la même façon qu'avec un autre gestionnaire de fenêtre plus conventionnel. De surcroît, larswm est entièrement pilotable au clavier. Vous pouvez effectuer toutes les manipulations de fenêtre en mode mosaique ou non qui peuvent vous passer par la tête depuis celui-ci : agrandissement, réduction, élargissement, maximisation, etc, etc. Cela dit, il permet aussi de faire ces opérations à la souris, mais cela n'est pas vraiment dans l'esprit et la souris devient très vite inutile. Pour cette raison, je n'aborderai pas du tout ici, la façon de piloter larswm à la souris. Nous allons nous concentrer uniquement sur le clavier.
Ceci dit, ne nous leurrons pas. Sans vouloir paraître élitiste, larswm ne conviendra pas à tout le monde. Simplement déjà parce qu'il est différent. Ensuite et surtout parce qu'il mérite un certain apprentissage. Vous qui venez de gestionnaire très conventionnel, vous trouvez votre interface graphique très intuitive, presque naturel. Cependant ce n'est pas le cas. Vous avez dû apprendre à l'utiliser. Où cliquez pour agrandir, combien de fois faut-il cliquer, comment faire pour avoir tel ou tel comportement, où aller et quoi faire pour avoir tel comportement. Ce sont des gestes que vous répétez probablement plusieurs fois par jour, à tel point qu'après des semaines, des mois, voir des années, c'est devenu pour vous quelque chose de naturel. Prenez une personne qui n'a jamais touché à un ordinteur ou presque et demandez lui d'effectuer des opérations même simples avec les fenêtres. Vous remarquerez alors ses hésitations et le besoin de réflexion, voir même ses erreurs. Si vous comptez utiliser un tiled window manager et que vous ne l'avez jamais fait, attendez-vous à vous retrouver dans ces situations, à devoir prendre quelques secondes pour vous remémorer comment on fait pour minimiser une fenêtre. Mais ne désespérez pas, c'est un moment certes pénible, mais qui passe au bout de quelques minutes, voir heures pour certaines opérations que vous n'effecturez pas souvent. Je vous promet cependant que vous tirerez une grande satisfaction de cette nouvelle façon de procéder et d'appréhender votre gestionnaire de fenêtre (non je rembourse rien du tout si c'est pas le cas pour vous :P). Après quelques temps, tout cela vous semblera le plus naturel du monde, et quand vous vous retrouverez à nouveau devant un gestionnaire de fenêtre fainéant, où vous serez obliger de bouger vos mains du clavier ne serait-ce que pour déplacer cette fenêtre qui vous gène, vous regretterez votre bon vieux larswm.
Généralement vous trouverez larswm dans les dépôts officiels de votre distribution. Si cette méthode vous convient, référez-vous au manuel de votre distribution afin de procéder de la sorte (sous debian/ubuntu, le larswm est une version patchée qui par là donc obtient un peu plus de features, cf. la section plus bas). De plus le site officiel propose des binaires pré-compilées pour Enterprise Linux 4 (binaire | source) mais aussi pour Fedora Core 4 (binaire | source). Mais vous pouvez aussi compiler larswm, ce que nous allons faire de suite.
Question dépendance, il va vous falloir certaines librairies de développement
de X11 : libx11-dev, libxext-dev, libxmu-dev, x-dev
(x11proto-core-dev) (ce sont les noms des librairies sous debian).
La configuration des sources de larswm se fait au travers de la
commande xmkmf que vous trouverez dans le paquet
imake ou xutils-dev selon les distributions.
Ceci fait, nous allons ensuite récupérer les sources de larswm-7.5.3. Après décompression rentrez dans le dossier des sources et lancez la configuration (pensez aussi à jeter un coup d'oeil au README, ce n'est jamais du temps perdu (il y a des infos pour Solaris notamment)) :
$ tar xvf larswm-7.5.3.tar.gz && cd larswm-7.5.3/ (...) $ xmkmf -a mv -f Makefile Makefile.bak imake -DUseInstalled -I/usr/lib/X11/config make Makefiles make: Nothing to be done for `Makefiles'. make includes make: Nothing to be done for `includes'. make depend gccmakedep -- -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DFUNCPROTO=15 -DNARROWPROTO -- main.c event.c manage.c buttons.c client.c error.c tiling.c prefs.c keys.c mouse.c bar.c larsremote.c larsclock.c larsmenu.c
Puis nous allons passer à l'installation proprement dite qui
se fera dans /usr/local avec les droits de root :
# make install install.man
La compilation va suivre son cours et en l'absence de tout message erreur, vous pouvez vous satisfaire d'avoir correctement installer larswm. Dans d'autres cas, pensez à vérifier que vous avez les bonnes dépendances et que les liens vers les librairies sont bien présent et correct.
NB: la partie 'utilisation par défaut' de cette section est très largement inspiré de la page de manuel de larswm. Si vous lisez l'anglais, je ne peux que vous recommandez d'aller lire cette page très bien écrite si vous ne voulez pas vous abîmez les yeux sur mon malheureux plagia que certains appelleront 'traduction libre' pour me faire plaisir...
Si vous disposez d'un lanceur de session comme GDM ou KDM et
que vous avez installé larswm depuis les dépôts, vous devriez le voir
disponible dans le menu proposé. Si vous avez installé larswm depuis les
sources ou d'une autre façon, vous devrez surement rajouter l'entrée du menu
vous même. Je n'utilise pas ce genre d'application et ce n'est pas ici le but
de mon propos, je vous laisse donc vous débrouillez, il y a multitudes de
documentation sur le sujet par ailleurs. Ceci dit, ces gestionnaires de
sessions ont généralement une option par défaut qui va utiliser le
fichier ~/.xsessionrc. Ce fichier peut être rempli exactement de
la même façon que le fichier dont nous allons parler plus bas. Je vous
invite à passer par cette méthode du fichier xsessionrc, qui vous
laisse une plus grande flexibilité en ce qui concerne le
lancement de votre session larswm (et de vos autres sessions aussi d'ailleurs).
Pour ceux qui utilise directement startx,
rajoutez simplement une ligne exec larswm dans votre fichier
~/.xinitrc. Nous reviendrons un peu plus tard sur ce dernier
auquel on ajoutera quelques petites choses histoire de pimenter un peu notre
larswm.
Un startx plus tard et vous y voilà : bienvenue dans
larswm. Oui c'est encore un peu austère, je vous l'accorde, mais nous
allons configurer tout cela ne vous en faites pas.
Cependant avant cela, il va falloir y mettre un peu de votre personne et
appréhender les touches par défaut de larswm. Commençons par
la base : ouvrez un terminal en tapant en même temps
Shift-Control-Enter. Il va se positionner seul à la
gauche de votre écran et occuper 60% de l'espace disponible. Entrez n'importe
quel commande dans ce terminal histoire de vous repérer, par exemple echo
"je suis ici". À présent, faîtes à nouveau un
Shift-Control-Enter et observer comment se positionne le nouveau
terminal. La fenêtre qui était à gauche se retrouve à droite et est plus petit,
et le nouveau terminal a pris sa place à droite. Encore un
Shift-Control-Enter et vous voilà avec trois terminaux. Pour
passer d'une fenêtre à l'autre, il vous suffira de faire de simple
Shift-Control-Haut et Shift-Control-Bas.
Jouez avec ces combinaisons pour voir le comportement qu'elles ont (notamment
ce qui concerne la fenêtre précédente, c'est vraiment la fenêtre
précédente à celle où vous vous trouviez).
L'espace de gauche est votre espace de travail principal. Il n'y aura jamais qu'une seule fenêtre dans cet espace. La droite sert aux espaces de travail secondaire et peut disposer d'autant de fenetre que vous voulez. Ceci est le comportement par défaut, avec une disposition automatique des fenêtres en mosaique (mode tiled), comme expliqué précédemment. Cependant, il est aussi possible d'avoir des fenêtres dans un mode plus conventionnel, où c'est vous qui gérer totalement les fenêtres, on parlera alors de mode untiled.
Pour travailler en mode untiled, nous allons utiliser le
programme Xlogo. Lancer xlogo depuis n'importe quel terminal. Vous
voyez alors ce dernier apparaître au milieu de votre écran. Vous pouvez
passer de l'espace non-mosaique à l'espace mosaique simplement en
pressant la combinaison de touche
Shift-Control-BackSpace. Remarquez en bas dans la barre
de status le T qui vous indique que vous êtes en mode Tiled et le
U pour vous indiquer que vous êtes en mode Untiled
([UCRSB-]). Remarquez aussi que quand vous mettez l'espace
mosaique au premier plan, Xlogo se retrouve derrière.
En mode non-mosaique, vous pouvez déplacer la fenêtre dans 9 régions
prédéfinis. Mettez en avant plan l'espace non-mosaique histoire de pouvoir
travailler sur Xlogo. Quand vous êtes certains que Xlogo est sélectionné,
mettez xlogo sur le côté droit de l'écran en faisant simplement
Shift-Control-KP_6 où KP_6 est le 6 de votre clavier
numérique. Amusez vous avec tous les chiffres histoire de voir ce que cela
donne. Si vous êtes sur un portable, évidemment, ça va être difficile à faire,
mais vous pourrez tout à fait changer les touches par défaut pour cette
fonction dans le fichier de configuration.
Toujours dans le mode untiled, avec Xlogo de sélectionner et au premier plan,
vous pouvez zoomer sur ce dernier grâce à
Shift-Control-space. Et faites le une seconde fois pour
la voir retrouver sa taille et son emplacement d'origine. Maintenant
pressez Control-Alt-space pour mettre Xlogo de
côté et voir ce qu'il se passe dessous. Deux solutions pour la faire
revenir de sa cachette : soit vous cliquez sur la partie visible de Xlogo soit
vous faites à nouveau la combinaison Control-Alt-space. Notez que
cette seconde solution ne fonctionnera pas si vous avez une autre fenêtre dans
le mode untiled. En effet, presser à nouveau ces touches cachera cette seconde
fenêtre au lieu de ramener Xlogo. Nous verrons un peu plus tard comment avoir
une utilisation plus fine de tout cela.
Enfin, une petite dernière pour les deux modes cette fois-ci : pressez
Control-Alt-z pour cacher/minimiser la fenêtre qui a le
focus (remarquez le H qui apparaît dans la barre de
status). Pour le revoir, pressez Control-Alt-x.
Voilà, c'est un bon début, mais ce n'est qu'une petite partie des possibilités
de larswm. Cependant vous devez déjà pouvoir vous en sortir un minimum avec la
gestion des fenêtres. Mais attendez ce n'est pas terminé. Larswm, comme tout
gestionnaire de fenêtre qui se respecte a plusieurs bureaus
virtuels. Vous pouvez vous déplacez de l'un à l'autre en y
allant à coup de Shift-Control-Gauche et
Shift-Control-Droit (observer la barre de status qui vous
indique où vous êtes).
Larswm se configure au travers d'un fichier qui se trouve à la racine de votre $HOME. Nous allons générer ce fichier dans lequel vous finirrez par passer un peu de temps à un moment ou à un autre. Le gestionnaire de fichier dispose d'un générateur, si l'on peut dire, de ce fichier avec les configurations par défaut.
$ larswm -defaults > ~/.larswmrc
Je ne vais pas beaucoup m'étendre sur chaque partie de ce fichier. Il est assez bien commenté, et vous devriez pouvoir vous en sortir seul. Si vous voulez un exemple, voici mon fichier larswmrc (http) qui pourra vous servir d'exemple. Vous pourrez d'ailleurs en profiter pour voir quels options sont disponibles en ce qui concerne le déplacement des fenêtres et arranger les combinaisons de touches comme bon vous semblera.
Larswm dispose de plusieurs classes afin de gérer les fenêtres. Nous en avons déjà vu deux : Tiled et Untiled, qui gèrent les fenêtres globalement. Mais le gestionnaire de fenêtre dispose d'autres classes pour des besoins spécifiques.
Tout d'abord la floatclass. Si une fenêtre est taggué par cette classe alors elle restera au-dessus des autres fenêtres (id est des fenêtres qui ne sont pas en floatclass). Ensuite le mode toolclass pratique si on utilise des widgets par exemple : la fenêtre restera dans son coin et ne sera pas prise en compte quand vous vous déplacerez de fenêtre en fenêtre (pour avoir le focus dessus, pas d'autres solutions que de cliquer). Enfin le mode stickclass qui stipule qu'une fenêtre sera présente sur tous les bureaux virtuels en même temps.
Vous pouvez voir la classe de vos fenêtres en bas dans la barre de
status. Par exemple, si vous avez une fenêtre qui a le focus et qui a
les trois classes présentées ici dans le mode untiled, vous pourrez voir en bas
[nfts-].
Il reste encore une classe qui est dtclass et qui permet de fixer une application sur un bureau virtuel en particuliers (mettre xlinks2 sur le bureau WEB à chaque fois qu'on le lance par exemple).
Les classes peuvent se configurer à la volée pendant l'utilisation de
larswm, mais généralement, elles sont définis pour chaque application
voulue au sein du fichier de configuration (par exemple
larswm.toolclass., je vous laisse vous référer à votre propre
fichier).
Cela me permet d'amener une autre particularité de larswm. Pour
sélectionner une application dans son fichier de configuration, on peut
simplement utiliser le nom de l'application, mais aussi son
instance. Par exemple, pour Xload, l'instance sera
XLoad~xload ; pour mplayer ça sera MPlayer~xv ; pour
conky ça sera conky~conky ; etc. La manière la plus simple de
connaître l'instance d'une application reste de la lancée dans larswm (mais pas
trop fort) et de regarder dans la barre de status, vous la verrez entre
parenthèse.
larsremote. Comme son nom l'indique, c'est
une télécommande qui permet d'interagir avec larswm selon deux
façons : pour quitter larswm et pour le relancer
(principalement ça sert à reprendre en compte le fichier de configuration
et appliquer les changements effectués sans quitter larswm). Elle
s'utilise depuis n'importe quel terminal ou lanceur d'application en
faisant un larsremote exit ou larsremote
restart. Comme beaucoup, j'ai attribué des combinaisons de touches
à cette application histoire de me faciliter la vie. Remarquez qu'elle
prend aussi l'option message qui n'a d'autres fonctions que
de décorer votre barre de status du message de votre choix :
larsremote message "larswm rulez".
larsclock
-format "[Larswm Ru13Z] [%a %m/%d %I:%M%p %Y]" &.
xmkmf et
make), je vous laisse regarder le README.
Dans cette partie, je vais présenter quelques applications que j'ai utilisé ou que j'utilise avec larswm afin de lui donner un peu plus de fonctions. Et bien là, c'est vraiment selon votre bon vouloir évidemment. Mais je me dis que ça pourrait vous donner des exemples. Toutes ces applications sont assez bateau, et très connues dans leur grande majorité.
On peut bien sûr commencer par citer conky qui vous permettra d'avoir divers informations sur votre système présenté en transparence (ou pas) sur votre bureau. Toujours dans le même esprit on peut aussi penser à GKrellM. Sachez aussi que les dockapp issu du monde WindowMaker s'intégre très bien dans larswm.
Je ne saurai aussi que très fortement vous conseiller de tester dzen qui a de grandes qualitées.
Personnellement, je suis revenu un peu vers les sources en utilisant des
widgets de base, comme xclock, xload ou
encore xbiff.
En ce qui concerne le fond d'écran, vous pouvez utiliser
des choses très simple comme xsetroot pour mettre une couleur
unie ou dégradée, mais aussi qui sert à mettre en fond des images du type
.xpm. Si vous préférez ou avez plus l'habitude d'image sous
des formats plus diffusés (comme .jpg|.png), vous
pouvez utiliser le très simple xsetbg fourni
par le paquet xloadimage. J'utilise aussi
unclutter afin de faire disparaître
le curseur de la souris (lorsqu'il est inactif) (http) qui
m'agace plus qu'autre chose.
Afin de lancer tout cela facilement, vous pouvez rajouter ces
applications au lancement de la session dans votre fichier
~/.xinitrc (ou xsessionrc si vous l'utilisez
(vous pouvez aussi prendre exemple sur le fichier sample.xsession
disponible dans les sources de larswm)) :
# I don't want the 'blank screen after 30 minutes' thing xset -dpms xset s 0 0 xset s off # Hide my mouse unclutter -root -idle 2 -jitter 10 & # Background #xsetroot -solid black xsetbg ~/w/gotmilk.jpg # Widgets xbiff & xload -label unisys -geometry 80x48+664+534 & xload -label britney -remote britney -geometry 80x48+580+534 & xclock & # larswm app larsbiff -string "[DEAD LIKE ME]" & #larsclock -format "[DEAD LIKE ME] [%a %m/%d %I:%M%p %Y]" & # Now we can launch larswm exec larswm
Malgré que Lars ai arrêté le développement (pour le moment) de larswm, certains avaient des idées et/ou ont trouvés des petits défauts qu'ils ont crus bon de nous faire partager au travers de patch. Si vous avez installés larswm sous debian/ubuntu depuis les dépôts, les patches ont déjà été appliqués, car en effet, les devels ont intégrés ces patches à leur paquet (vous pouvez donc d'ores et déjà utiliser les options qui suivent).
Pour les autres, et si cela vous intéresse, il va falloir y aller à la main. Au délà des corrections de bugs, ces patches rajoutent des fonctions intéressantes à larswm que je vais décrire plus bas.
Avant tout récupérez le tarball des patches ici. Attention, ces
patches sont pour la version 7.5.3 de larswm. Décompressez la nouvelle archive,
et mettez le dossier qui en résulte dans le dossier des sources de
larswm, puis rentrez dans le dossier de patch et lancez le script livré avec :
$ tar xvf larswm-patches_7.5.3-5.tar.gz (...) $ mv larswm-patches_7.5.3-5 /path/to/larswm-7.5.3 $ cd /path/to/larswm-7.5.3/larswm-patches_7.5.3-5 $ ./patch.sh
Relancez la compilation et l'installation de larswm. Les patches ajoutent donc des modifications dont voici le résumé :
-update de larsclock (aa_larsclock-update.patch).
Je ne reviens pas sur les deux premiers qui sont assez explicites.
~/.larswmrc :
larswm.switchclass.0: Emacs larswm.switchclass_app.0: emacs larswm.switchclass_key.0: e larswm.switchclass_mod.0: Shift+Control
Ainsi en faisant un Shift-Control-e vous tomberez directement sur
la première fenêtre d'emacs que larswm trouvera en changeant de bureau virtuel
si nécessaire. Refaire la combinaison de touche vous fera aller à la fenêtre
suivante, etc. On peut spécifier le nom de l'application (Emacs) ou sa classe
(Emacs~gnu).
larswm.two_on_left_key: Left larswm.two_on_left_mod: Shift+Control+Alt larswm.two_on_left_shrink_key: Down larswm.two_on_left_shrink_mod: Shift+Control+Alt larswm.two_on_left_grow_key: Up larswm.two_on_left_grow_mod: Shift+Control+Alt
En pressant Shift-Control-Alt-Gauche vous aurez deux fenêtre à
gauche. En pressant Shift-Control-Alt-Bas ou
Shift-Control-Alt-Haut et vous redimensionner verticalement les
fenêtres. Enfin en pressant à nouveau Shift-Control-Alt-Gauche
vous redonnera un comportement à une fenêtre normal.
larswm.move_next_desktop_key: Right larswm.move_next_desktop_mod: Shift+Alt larswm.move_prev_desktop_key: Left larswm.move_prev_desktop_mod: Shift+Alt ! Move window to desktop shortcuts: Defaults are for the first 12 desktops, ! F1-F12. ! If you have more than 12 desktops, you will have to add key bindings for them ! or just use move prev/next desktop to move window to where you want. larswm.move_desktop_key.0: F1 larswm.move_desktop_mod.0: Shift+Alt
larswm.toggle_skip_focus_key: f larswm.toggle_skip_focus_mod: Control+Alt
Comme dit en introduction, je n'ai pas du tout parlé de l'utilisation de la souris sous larswm (sinon comment la cachée). Ceci implique notamment que je n'ai pas du tout parlé du menu dont dispose larswm et basé bien sûr sur le 9menu de 9wm. J'imagine que certains pourront y trouver une utilitée, je vous renvoie donc pour cela vers la page de manuel de larswm.
Je n'ai pas non plus parlé de l'intégration de Xinerama pour larswm n'utilisant pas du tout cette fonction servant au multi-desktop. Je vous renvoie vers le lien en bas de cet article si vous voulez plus d'informations.
Voilà donc pour cette présentation de mon utilisation de larswm. Comme vous avez pu le remarquer, on peut moduler larswm comme bon nous semble. Vous pouvez voir des exemples de résultat un peu partout sur le net. Voici notamment le mien à l'heure où j'écris ces lignes ; j'aime beaucoup aussi la page de screenshot de Vico où l'on peut retrouver plusieurs de ses bureaux ; il y en a aussi ici (avec la page d'ormaxx).
N'attendez pas plus que ce qu'il peut vous proposer. Larswm est un gestionnaire de fenêtre, et c'est ce qu'il fait, ni plus ni moins. Et pour cela on peut dire que Lars a réussi son ambition : pouvoir se centrer sur son travail, et laisser larswm faire son boulot.
Je nanobloggue, tu nanobloggues, il nanobloggue, nous nanoblogguons, vous nanoblogguez ?
Depuis le boom du blog de particuliers d'il y a quelques années, nous avons vu apparaître plusieurs moteurs (ou propulseurs selon les termes) de blog libre. Nous connaissons tous wordpress ou dotclear qui sont à base de PHP. Mais il en existe dans d'autres languages comme byteflow blog engine écrit en python et utilisant Django. Ces moteurs génèrent des pages dynamiques, id est que le serveur génère des pages en live en fonction des demandes des clients. Il en existe bien d'autres comme wadomblog toujours en python ; mais aussi et cette fois-ci en ruby, mephisto ou encore rog ; ces trois derniers générant des pages statiques, id est que le moteur génère une ou des pages HTML uniques que le serveur délivre à tout le monde (pour plus d'information sur le statique/dynamique vous pouvez vous référer à cette page). Comme le sous-entend le titre de l'article, je ne vais pas ici faire le détail des moteurs de blogs suscités et vous en donner mon avis, mais l'idée est plutôt de vous présenter un autre propulseur écrit en bash par Kevin 'n1xt3r' Wood et qui porte le nom de nanoblogger.
Comme le précise la page officiel du projet, nanoblogger est un petit moteur de
blog écrit en bash et disponible depuis la ligne de commande
(la CLI cay bon mangez-en). Il utilise les outils UNIX très répandus que sont
cat, sed et grep et est diffusé sous GNU Public General License. Il
est donc de ce fait tout à fait utilisable sous GNU/Linux bien sûr, mais, et
cela bien qu'écrit avec les outils GNU, aussi sous *BSD. Il est dit qu'il
fonctionne très bien sous Solaris et sous Mac, mais je n'ai jamais testé.
n1xt3r a réussi à réunir autour de son projet une petite communauté très active
et fidèle, et notamment une communauté francophone menée par Denis 'deber' Bernard qui héberge chez lui le site non-officiel de nanoblogger en
langue française et qui s'occupe aussi de la traduction en français du
moteur. Vous pourrez retrouver sur ce dernier des news ainsi que les blogs de
la communauté francophone sous nanoblogger, sans oublier le wiki (hébergé par Olivier 'Blanko' Dossmann). À noter qu'il existe
aussi un canal IRC #nanoblogger-fr@irc.oftc.net:6667, certes peu
fréquenté mais où vous trouverez toujours une personne ou deux à votre écoute.
La communauté s'occupe aussi du maintien de la page sur wikipedia francophone et
qui explique notamment que :
L'interface utilisateur est minimale et se fait en ligne de commande depuis une console en local, telnet ou SSH. Nanoblogger permet d'avoir, sans modifier ou ajouter une seule ligne de code, un blog prêt à l'emploi. Le moteur génère uniquement des pages statiques. Ça a l'avantage de pouvoir créer ses pages depuis un ordinateur quelconque et de les transférer (via ftp par exemple, ndla) sur un serveur Web, comme l'espace offert pour les pages personnelles de son fournisseur d'accès Internet. Mais on peut tout aussi bien agir directement sur le serveur Web si l'on en dispose un.
L'intérêt de nanoblogger est donc pluriel : son accessibilité au travers de la ligne de commande, sa légèreté et sa simplicité mais aussi le fait de pouvoir l'utiliser au travers de différentes voies. Il n'est pas nécessaire de connaître la programmation bash ou de savoir éditer de l'HTML pour l'utiliser. Il est fonctionnel et prêt à l'emploi dès l'installation et est livré avec plusieurs thèmes graphiques (CSS) ainsi que plusieurs plugins.
Nanoblogger a aussi l'avantage d'être très configurable et extensible. En effet, le fichier de configuration laisse énormément de liberté et de plus, si une fonction vous manque, nanoblogger contient un système de plugin très simple (beaucoup sont livrés avec le moteur en lui-même, de plus si vous codez en bash, l'ajout de plugin est un jeu d'enfant ; pour les apprentis, c'est aussi une bonne façon de bidouiller du code, et d'avoir des résultats concrets rapidement). Son utilisation en CLI est très intuitive, l'édition/l'ajout/le retrait d'articles et de billets se font très facilement. Il a un système d'archive très poussé, l'édition des templates se fait aussi aisément, ce qui vous permet d'avoir rapidement le résultat qui vous convient (avec l'aide de CSS si vous le souhaitez comme dit). Il génère aussi bien sûr des flux Atom 1.0, RSS 1.0 et 2.0. Sachez que nanoblogger est aussi conçu pour pouvoir gérer plusieurs blogs en même temps. Si vous avez un serveur qui gère plusieurs utilisateurs, il est très aisé pour eux d'avoir leur propre blog chacun. Enfin notez que nanoblogger permet d'écrire des billets et des articles. La distinction se fait en ce sens que les billets s'affichent sur la page principale, sont datés, se retrouve dans les archives, etc (comme n'importe quel blog) alors que les articles sont figés hors du temps, et ont leur place particulière avec un sous-menu à eux. La liste des possibilités de nanoblogger est encore longue, mais je pense qu'on a le principal ici.
Mais, il ne faut pas l'élaguer, nanoblogger a aussi quelques défauts. Je ne lui en reconnaît que deux (un et demi en fait) personnellement :
Il faut cependant relativisé un peu. Question lenteur, avec la dernière version
3.4RC2, les choses se sont grandement améliorés même quand on a un blog
comportant énormément d'entrée. Sans aller dans des détails techniques, l'ajout
d'un billet prend environ 10 secondes. En effet, il faut générer la page du
billet en elle-même, le flux RSS ainsi que l'index.html de la page principale
notamment. De plus si vous utilisez tidy, il faut prendre en
compte le check w3c des pages. Mais bon, 10 secondes personnellement je trouve
ça tout à fait raisonnable.
En ce qui concerne les commentaires, en effet comme tout est statique, il faut utiliser des outils extérieurs. Vous pouvez parfaitement utiliser un code cgi ou php pourquoi pas, ou comme beaucoup de nanobloggueur le font, passer par des sites dédiés, tel que haloscan qui en ajoutant simplement deux lignes là où il faut vous permet d'avoir non seulement des commentaires dynamiques mais aussi un système de notation des billets pour vos lecteurs si vous voulez (pour avoir un exemple concrêt du résultat, référez vous au site du projet qui utilise cette méthode ; et attention haloscan ça bosse avec du javascript, plutôt sale donc). Enfin d'autres ont fait le choix de rester totalement en statique et de gérer eux-même les commentaires via mail, voir même pour certains pas de commentaires du tout.
Comme évoqué précédemment, la version disponible en ce moment est la 3.4RC2 que vous pouvez donc récupérer à cet endroit. Certaines distributions offrent aussi dans leur dépôt un paquet pour installer nanoblogger. Cependant, je vous déconseille cette méthode. Tout d'abord, parce qu'il est plus intéressant d'avoir la dernière version de nanoblogger qui apporte tout de même de bonne mise à jour, ainsi qu'une nouvelle méthode de gestion des billets au sein de son code. En sus lors d'une mise à jour vers une version supérieure, il est toujours conseillé de le faire à la main dans ce cas présent histoire de maîtriser les tenants et les aboutissants.
Décompressez où vous voulez l'archive. Pensez à rajouter le path de votre
dossier nanoblogger à la variable PATH de votre shell si vous
voulez pouvoir utilisé la commande du blog depuis n'importe où (regardez les
premières lignes de votre fichier ~/.bashrc ~/.zshrc ou autre si vous ne voyez
pas trop comment faire ça). Ceci fait, vous pouvez dès à présent créer votre
blog :
$ nb -b /path/de/votre/choix add weblog creating weblog directory '/path/de/votre/choix' ... copying default weblog files ... would you like to configure the new weblog now? [Y/n] > Y
Le fait de répondre 'Y' va ouvrir le fichier
/path/de/votre/choix/blog.conf avec votre $EDITOR par défaut et
vous pourrez commencer à rêgler le blog selon votre bon vouloir. Le fichier est
plutôt bien commenté, je ne vais donc pas rentrer dans les détails ici. Une
fois fait, vous n'avez plus qu'à enregistrer et quitter. N'ayez pas peur de
faire des erreurs, même après création du blog, ce fichier peut être modifié et
on peut régénérer totalement le blog sans perdre ni articles ni billets bien
sûr.
generating weblog files ... selected tag id(s): 1 ... adding new entry ... updating main database ... updating all weblog files! this may take a while ... initializing main database ... generating weblog calendar for May 2009 ... generating recent entries links ... generating rss 2.0 feed ... /path/de/votre/choix/rss.xml generating weblog links ... generating weblog status ... generating articles: /path/de/votre/choix/articles ... /path/de/votre/choix/articles/example/index.html generating archive index page ... /path/de/votre/choix/archives/index.html generating archives ... /path/de/votre/choix/archives/nanoblogger-help/index.html generating year archives ... /path/de/votre/choix/archives/2009/index.html generating weblog calendar for May 2009 ... /path/de/votre/choix/archives/2009/05/index.html /path/de/votre/choix/archives/2009/05/14/welcome_to_nanoblogger_3_4/index.html generating main index page(s) ... /path/de/votre/choix/index.html expiring cache data ...
Et vous voilà déjà avec votre blog prêt à l'emploi et qui vous a publié un petit message d'accueil dans la catérgorie 'nanoblogger-help'. Les commandes de nanoblogger sont simples, en voici un aperçu (que vous pouvez retrouver dans le billet de bienvenue de votre nouveau blog) :
Rien de très compliqué donc comme vous pouvez le voir. Remarquez que l'option
-b vous permet de définir où se trouve votre blog. Il est
impératif de mettre cette option à chaque fois, sans quoi
nanoblogger ne saura pas où est votre blog. Ceci dit, on peut s'en
passer si on édite le fichier
../nanoblogger-3.4-rc2/nb.conf à la variable BLOG_DIR
; et là plus besoin d'option -b. Notez aussi que créer un billet
ou un article l'ajoutera à votre blog dès que vous quitterez votre editeur de
texte. Si vous voulez prendre le temps d'écrire un billet ou un article et y
revenir plus tard, il vous suffit de créez un squelette que vous éditez, et
enregistrerez où bon vous semble (c'est un simple fichier .txt). Vous pourrez
ainsi le garder dans un coin, le rééditer, le modifier, etc. Quand l'heure de
la publication aura sonnée, il vous suffira simplement d'importer ce fichier
.txt pour l'ajouter à votre blog.
En ce qui concerne l'édition des billets en eux-même. Par défaut le
format est raw ce qui signifie que vous devez écrire le
billet avec une mise en forme HTML. Cependant il existe deux autres
formats disponibles. Le premier est autobr : dans ce mode
vous écrivez simplement votre billet et nanoblogger se chargera d'ajouter du
code HTML dans les lignes vides histoire de faire un peu de mise en forme
rudimentaire. L'avantage est que vous ne vous prennez pas du tout la tête, par
contre l'inconvénient est clairement que vous ne mettez pas du tout en forme
votre billet (pas de gras, d'italique, de balise code, etc), sans compter que
cela peut vous causer des soucis si vous mettez un point d'honneur à passer la
validation w3c... La seconde
méthode est baucoup plus sexy et utilise le format très connu
markdown.
C'est un outil perl qui permet de convertir du text vers de l'HTML comme cela
se fait avec l'édition des pages type wiki (vous savez à grand
coup de ==== Titre h2 ==== par exemple pour faire des titres,
etc). Le format que nanoblogger doit avoir par défaut se configure dans le
fichier blog.conf de votre blog.
Je ne vais pas m'étendre plus que cela sur l'utilisation de nanoblogger, il existe un Manuel de l'utilisateur bien écrit et conséquent qui devrai répondre à vos principales questions. Pensez aussi au wiki évidemment, et à sa section astuces. Vous pouvez enfin aussi, comme présenté en introduction, rejoindre le canal IRC bien sûr si vous n'arrivez pas à vous en sortir ;)
Voilà donc pour la présentation de ce moteur de blog très apprécié par ses utilisateurs. Sa prise en main est très simple et rapide, mais nanoblogger vous permet de faire vraiment beaucoup de chose, et se plis à vos envies. Sans compter qu'il est très léger et ne nécessite pas d'avoir un mastodonte de serveur. Le moindre petit httpd fait l'affaire. J'apprécie personnellement le côté modelage de ce moteur de blog, on peut dire qu'avec lui, on gère vraiment notre blog à notre façon tant dans la forme (templates, CSS) que dans le fond (script bash). Il a souvent été appelé moteur de blog pour geek et c'est peut-être un peu vrai. Mais j'aurai plutôt tendance à dire qu'il s'adresse tout à fait à l'utilisateur lambda qui ne veut pas se prendre la tête avec un serveur PHP+module ou autre et qui veut simplement "publier des billets" ; idéal pour répondre à la dictature du Ça en somme. Nanoblogger out of the box est parfaitement utilisable tel quel, sans rien modifié du tout, d'ailleurs beaucoup d'utilisateurs ne prennent même pas la peine d'éditer le CSS par défaut, et s'en retrouve très bien. Mais il sera aussi très apprécié du hacker (au sens premier du terme et non au sens hadopien) car il permet aisément d'arriver à ses fins tout en laissant une vaste marge de bidouillage.
Sous ce titre au jeu de mot totalement foireux dû à la fatigue (mieux vaut
croire que c'est cela) je voudrai simplement vous parler d'un outil assez
simple et fort pratique si vous avez un parc informatique :
rwhod. C'est un petit serveur issu du monde BSD qui, lancé en
daemon, maintient une base de donnée contenant des informations sur les
machines sur lesquels il est installé. Ces informations sont en fait l'uptime
ainsi que la charge système (load average). Rien d'extraordinaire là dedans,
mais les différents serveurs rwhod de votre réseau local se mettant en lien les
uns avec les autres, vous aurez à partir de n'importe quel poste du parc réseau
ces informations pour chaque machine connectée ; chaque serveur rwhod ayant à
la fois un rôle de production de données et de réception de données. Ces
informations sont disponibles au travers de plusieurs commandes (les
principales étant ruptime et rwho). C'est un outil
bien connu notamment sur les réseaux mettant à disposition des machines pour
des utilisateurs se connectant via telnet ou SSH.
Histoire de donner un peu de corps à cette description peut-être pas très claire, voici un exemple de ce que l'on peut avoir :
$ ruptime britney up 62+19:53, 12 users, load 0.45, 0.51, 0.56 unisys up 7+16:14, 2 users, load 0.07, 0.02, 0.00 pticon up 8+20:40, 4 users, load 0.00, 0.01, 0.08
Rien d'extraordinaire comme vous pouvez le voir, mais ce sont des informations qui sont toujours pratique non seulement pour l'administrateur, histoire d'avoir une vue d'ensemble, mais aussi pour les users, afin de savoir où se connecter s'ils recherchent une machine avec plus ou moins d'users, ou avec une charge système moins importante.
Vous trouverez très certainement rwhod dans les dépôts officiels de votre
distribution. Vous devez l'installer sur toutes les machines que vous
voulez voir apparaître dans la base de donnée. Les infos sont empaquetées et
transmises via le port 513/UDP d'un serveur rwhod à l'autre. Il n'y a
normalement pas de configuration particulière à faire (sauf au niveau des
firewalls bien sûr si vous avez des politiques particulières). Il y a quelques
options qui permettent de gérer tel ou tel types d'interface réseau, je vous
laisse jetter un regard sur la man si cela vous intéresse. En sus pour
bénéficier de ruptime et rwho vous devrez aussi
installer le paquet rwho.
Il existe aussi d'autres outils qui peuvent utiliser les informations fournies
par les différents serveurs. Pour en citer un, xload par
exemple dispose d'une option allant dans ce sens : -remote. Pensez
à spécifier un nom avec l'option -label car sinon xload indique le
nom de la machine locale et non celui de la machine distante (peut-être un bug,
en tout cas, c'est le comportement que j'ai trouvé chez moi). On pourra donc
avoir quelque chose de ce genre :
$ xload -label britney -remote britney -geometry 80x48+580+534 &
Ah ça faisait longtemps que je n'avais pas parlé de jeux. Et cette fois-ci nous allons aborder pas n'importe quel jeu, un bon vieux et bien oldschool : Wolfenstein 3D ! Revu et corrigé par Hongli Lai de chez Phusion le tout en language ruby pour faire plaisir à skateinmars. Le jeu s'appelle rubystein et la nouvelle a fait son petit bruit dans le monde des fan de ruby. Le but est simple : vous vous balladez dans les méandres des couloirs sauce Wolfenstein 3D et vous poutrez des méchants armé d'un ruby magique. Les graphismes sont d'époques ainsi que l'ambiance, de quoi retrouver de vieilles sensations perdues.
Pour installer tout ça, il vous faut remplir quelques conditions. Il vous faut avant tout avoir ruby d'installé ainsi que rubygems (pour ceux qui ne connaissent pas, rubygems est un framework qui permet de gérer des librairies et des applications ruby). Nous allons aussi avoir besoin de quelques dépendances qui permettront d'installer à bien une librairie primordiale pour le jeu : gosu, on va y venir juste après. Pour ce qui est de rubygems, il est préfèrable d'utiliser une version assez récente. Si vous avez une distribution plutôt uptodate vous n'avez pas besoin d'y penser. Cependant, si vous êtes sous etch, la version disponible est un peu deprecated, préfèrez une installation manuel histoire d'éviter les soucis ;)
# apt-get install ruby ruby1.8 ruby1.8-dev rdoc rubygems g++
libgl1-mesa-dev libpango1.0-dev libboost-dev libsdl-mixer1.2-dev
Et oui ça fait du monde mine de rien. Bien que le jeu ne demande pas de
ressources graphiques immenses, il a besoin de /usr/lib/libGL.so
pour compiler. Assurez-vous donc d'avoir des drivers graphiques installés comme
il faut.
Ceci fait, nous allons nous occuper de gosu à l'aide de rubygems. Rien de plus silmple :
# gem1.8 install gosu
Tout devrait normalement se passer à merveille, c'est à dire qu'après quelques
instants, le système vous répond qu'un nouveau gem vient d'être fraîchement
installé. Cependant, il se peut que vous vous retrouviez avec un problème de
configure avec la librairie GL (surtout si vous êtes avec une nvidia). Rien de
grave là dedans, c'est juste l'init script d'nvidia qui merde un peu. Le
configure ne trouve pas /usr/lib/libGL.so simplement parce que
l'init script l'a peut-être enlevé (quand on sait que selon le changelog des
paquets nvidia, les devels s'arrachent les cheveux depuis 2004 avec ce lien, on
ne s'étonne pas, nvidia est proprio, il faut s'attendre à tout). Pour réparer
ça, il suffit de faire un simple symlink :
# ln -s /usr/lib/libGL.so.1 /usr/lib/libGL.so
Une fois cela fait, vous pouvez relancer l'installation de gosu. Enfin nous arrivons au principal, nous allons récupérer les sources de rubystein grâce à git (installez le avant si vous ne l'avez pas bien sûr). Mettez-vous dans n'importe quel dossier de votre choix puis :
$ git clone git://github.com/FooBarWidget/rubystein.git
Ça va prendre quelques minutes, il y a de gros fichiers sons dedans. Il ne vous
reste plus qu'à rentrer dans le dossier rubystein et de faire un simple
ruby wolf3d.rb !
Allez voilà ce que donne le jeu. Have phun!!
NB: Notez que comme l'indique le site rubyinside.com le jeu peut ramer un peu avec ruby1.8, n'hésitez pas à le tester sous REE ou encore sous ruby1.9. Le jeu "s'envolerait" paraît-il avec ce dernier ;)
edit: Comme prévu le code a été mis à jour dans la nuit. Ce qui suit n'est donc plus valable si vous avez une version à jour de rubystein.
"Chez moi ça marche pô !" - Oui en effet, si vous êtes sur des distributions qui ne release pas de paquets contenant du code proprio dans leur dépôt officiel, vous risquez d'avoir une erreur de ce genre :
$ ./wolf3d.rb
./sound.rb:36:in `initialize': Unrecognized sound file type (RuntimeError)
from ./sound.rb:36:in `new'
from ./sound.rb:36:in `get'
from ./ai_player.rb:357:in `load_sounds'
from ./ai_player.rb:356:in `map'
from ./ai_player.rb:356:in `load_sounds'
from ./ai_player.rb:207:in `initialize'
from ./ai_player.rb:413:in `initialize'
from ./map.rb:46:in `new'
from ./map.rb:46:in `player'
from ./level.rb:207:in `create'
from ./map.rb:99:in `add'
from ./level.rb:205:in `create'
from ./map.rb:342:in `get'
from ./wolf3d.rb:57:in `initialize'
from ./wolf3d.rb:668:in `new'
from ./wolf3d.rb:668
Cela vient simplement du fait que les librairies pour sdlmixer ne sont pas compilés avec le support du mp3, et comme le jeu contient des sons à ce format... C'est un problème connu des développeurs comme on peut le voir sur cette page. Le problème n'est pour le moment pas résolu au niveau des sources mais ça ne devrait pas tarder. En attendant, il y a deux solutions :
Personnellement j'ai préféré la seconde solution. J'ai donc converti tous les
fichiers sons posant problèmes en plus des .wav parce que les .wav cay sale et
j'ai fait un patch. Vous pouvez retrouver tout cela ici le temps que
les devels corrigent le soucis directement dans les sources sur github. La
démarche est très simple : il vous suffit de copier les fichiers .ogg dans le
dossier des sources et depuis le dossier rubystein/ faire un simple :
$ patch -p1 -Z < /path/to/the/rubystein_ogg_sound_patch_01.diff patching file ai_player.rb patching file door.rb patching file level.rb patching file map.rb patching file player.rb patching file sound.rb patching file sprite.rb patching file wolf3d.rb
Ah ça faisait longtemps que je n'avais pas parlé de jeux. Et cette fois-ci nous allons aborder pas n'importe quel jeu, un bon vieux et bien oldschool : Wolfenstein 3D ! Revu et corrigé par Hongli Lai de chez Phusion le tout en language ruby pour faire plaisir à skateinmars. Le jeu s'appelle rubystein et la nouvelle a fait son petit bruit dans le monde des fan de ruby. Le but est simple : vous vous balladez dans les méandres des couloirs sauce Wolfenstein 3D et vous poutrez des méchants armé d'un ruby magique. Les graphismes sont d'époques ainsi que l'ambiance, de quoi retrouver de vieilles sensations perdues.
Pour installer tout ça, il vous faut remplir quelques conditions. Il vous faut avant tout avoir ruby d'installé ainsi que rubygems (pour ceux qui ne connaissent pas rubygems est un framework qui permet de gérer des librairies et des applications ruby). Nous allons aussi avoir besoin de quelques dépendances qui permettront d'installer à bien une librairie primordiale pour le jeu : gosu, on va y venir juste après. Pour ce qui est de rubygems, il est préfèrable d'utiliser une version assez récente. Si vous avez une distribution plutôt uptodate vous n'avez pas besoin d'y penser. Cependant, si vous êtes sous etch, la version disponible est un peu deprecated, préfèrez une installation manuel histoire d'éviter les soucis ;)
# apt-get install ruby ruby1.8 ruby1.8-dev rdoc rubygems g++
libgl1-mesa-dev libpango1.0-dev libboost-dev libsdl-mixer1.2-dev
Et oui ça fait du monde mine de rien. Bien que le jeu ne demande pas de
ressources graphiques immenses, il a besoin de /usr/lib/libGL.so
pour compiler. Assurez-vous donc d'avoir des drivers graphiques installés comme
il faut.
Ceci fait, nous allons nous occuper de gosu à l'aide de rubygems. Rien de plus silmple :
# gem1.8 install gosu
Tout devrait normalement se passer à merveille, c'est à dire qu'après quelques
instants, le système vous répond qu'un nouveau gem vient d'être fraîchement
installé. Cependant, il se peut que vous vous retrouviez avec un problème de
configure avec la librairie GL (surtout si vous êtes avec une nvidia). Rien de
grave là dedans, c'est juste l'init script d'nvidia qui merde un peu. Le
configure ne trouve pas /usr/lib/libGL.so simplement parce que
l'init script l'a peut-être enlevé (quand on sait que selon le changelog des
paquets nvidia, les devels s'arrachent les cheveux avec ce lien, on ne s'étonne
pas, nvidia est proprio, il faut s'attendre à tout). Pour réparer ça, il suffit
de faire un simple symlink :
# ln -s /usr/lib/libGL.so.1 /usr/lib/libGL.so
Une fois cela fait, vous pouvez relancer l'installation de gosu. Enfin nous arrivons au principal, nous allons récupérer les sources de rubystein grâce à git (installez le avant si vous ne l'avez pas bien sûr). Mettez-vous dans n'importe quel dossier de votre choix puis :
$ git clone git://github.com/FooBarWidget/rubystein.git
Ça va prendre quelques minutes, il y a de gros fichiers sons dedans. Il ne vous
reste plus qu'à rentrer dans le dossier rubystein et de faire un simple
ruby wolf3d.rb !
"Chez moi ça marche pô !" - Oui en effet, si vous êtes sur des distributions qui ne release pas de paquets contenant du code proprio dans leur dépôt officiel, vous risquez d'avoir une erreur de ce genre :
$ ./wolf3d.rb
./sound.rb:36:in `initialize': Unrecognized sound file type (RuntimeError)
from ./sound.rb:36:in `new'
from ./sound.rb:36:in `get'
from ./ai_player.rb:357:in `load_sounds'
from ./ai_player.rb:356:in `map'
from ./ai_player.rb:356:in `load_sounds'
from ./ai_player.rb:207:in `initialize'
from ./ai_player.rb:413:in `initialize'
from ./map.rb:46:in `new'
from ./map.rb:46:in `player'
from ./level.rb:207:in `create'
from ./map.rb:99:in `add'
from ./level.rb:205:in `create'
from ./map.rb:342:in `get'
from ./wolf3d.rb:57:in `initialize'
from ./wolf3d.rb:668:in `new'
from ./wolf3d.rb:668
Cela vient simplement du fait que les librairies pour sdlmixer ne sont pas compilés avec le support du mp3, et comme le jeu contient des sons à ce format... C'est un problème connu des développeurs comme on peut le voir sur cette page. Le problème n'est pour le moment pas résolu au niveau des sources mais ça ne devrait pas tarder. En attendant, il y a deux solutions :
Personnellement j'ai préféré la seconde solution. J'ai donc converti tous les fichiers sons posant problèmes en plus des .wav parce que les .wav cay sale et j'ai fait un patch. Vous pouvez retrouver tout cela ici le temps que les devels corrigent le soucis directement dans les sources sur github. La démarche est très simple : il vous suffit de copier les fichiers .ogg dans le dossier des sources et depuis le dossier rubystein/ faire un simple :
$ TZ=UTC patch -p1 -Z < /path/to/the/rubystein_ogg_sound_patch_01.diff patching file ai_player.rb patching file door.rb patching file level.rb patching file map.rb patching file player.rb patching file sound.rb patching file sprite.rb patching file wolf3d.rb
Allez pour finir, voilà ce que donne le jeu. Have phun!!
Pour le cours de cette semaine, nous continuons avec la série Survivre dans son TTY. Une session qui abordera un outil fort pratique pour tous CLI user qui se respecte : GNU screen. C'est un cours qui sera un peu plus long que les précédents mais qui se destine toujours à toutes personnes, débutant compris bien sûr. Si vous ne connaissez pas, GNU screen est un "Multiplexeur d'écran avec une émulation de terminal VT100/ANSI" (merci apt-cache show pour la définition) : en d'autres termes, il permet d'avoir plusieurs terminaux dans un seul et de jouer avec eux. Je présenterai aussi brièvement en début (ou en fin ?) de cours deux autres outils du même genre à savoir dtach et dvtm.
Nous vous attendons donc le Jeudi 07 mai à 19H30 Heure de Paris (@770 07.05.2009 SIT) sur le canal #u-classroom du réseau Freenode (#u-classroom@irc.freenode.net) (et bien sûr n'oubliez pas que si vous n'êtes pas très copain avec IRC ,vous pouvez retrouver une petite introducion à IRC afin de nous rejoindre facilement).
Pour tous commentaires, vous pouvez retrouver l'article orginal ici. À jeudi :)
Bonjour à tous et à toutes. Je me permet de me faire le relai de skateinmars qui nous fait le plaisir d'avoir préparé un cours pour cette semaine sur #u-classroom@irc.freenode.net (comment nous rejoindre pour le cours.) et dont voici l'annonce :
Au menu de la prochaine session, un cours sur la programmation avec une initiation au langage Ruby !
Cette session aura pour objectif de faire découvrir les bases de la programmation, et cible donc en priorité ceux n'ayant pas d'expérience à ce sujet au préalable. Toutefois les déjà initiés à la programmation pourront découvrir quelques aspects du langage qui lui donnent tout son attrait et son intérêt.
Au programme vous pourrez donc découvrir :
- L'interpréteur ruby irb ;
- Les variables ;
- Les types de données ;
- Les fonctions ;
- Les tests.
De nombreux concepts et parties du langage ont été mis de côté pour garder le cours simple, et reviendrons je l'espère dans une série de sessions inspirées de celles menées par gpocentek :)
Les impatients pourront d'ores et déjà installer le paquet logiciel ruby-full de leur distribution favorite, ou au minimum ruby et irb. Une expérience de la ligne de commande (telle que la session Survivre dans son TTY #1 vous l'avait proposé) pourra être utile mais n'est pas du tout requise. Vous devez seulement savoir vous servir d'un clavier !
Rendez-vous le jeudi 30 avril à 20H30 Heure de Paris sur notre canal habituel canal #u-classroom sur le réseau Freenode (#u-classroom@irc.freenode.net).
Lien vers le billet original sur le site d'u-classroom.net.