Comme mon travail en tant qu’administrateur système dans une société Web me fait rencontrer de nouveaux problèmes chaques jours, je me suis dit qu'il fallait que le monde profite de mes solutions :).

 

“Gource” pour vos dépôts Git

Bonjour à tous!

Petit billet plein de légèreté et de beauté aujourd’hui. Vous, brillants administrateurs systèmes qui tombez par hasard sur ce blog en quête de réponses improbables, n’avez jamais rêvé d’un peu de couleur et de folie pour vos environnement de développement?

Donc aujourd’hui je vais vous parler d’un petit logiciel sympatoch nommé gource.

Gource est un logiciel de visualisation de projet git/svn qui permet de voir les dossiers, les branches, les commits et les membres à partir des logs sur le projet en question. Niveau professionnel, l’intérêt est plus que limité, mais d’un point de vue visuel, qu’est ce que ça en jette ;D.

Voici par exemple ce que des petits malins ont générés à partir des dépôts git de php. On y voit les contributions et les évolutions au fur et à mesure, comme la naissance de php 4 puis 5.

Pour vous amuser à visualiser vos projets, voici donc la marche à suivre :

Etape 1 : Installer les dépendances et les librairies.

Ce logiciel fonctionne avec les librairies SDL compilées en C++ (j’ai d’ailleurs été bien surpris de voir à quel point ces librairies commençaient à devenir intéressantes, ne se contentant plus de faire du 2D SNES, je devrais plus me tenir au courant).

Pour ce faire donc, sur une machine debian (Ubuntu 11.10 dans mon cas) envoyer la commande suivante :

sudo apt-get install build-essential libsdl1.2-dev libsdl-image1.2-dev libftgl-dev libpcre3-dev libpng12-dev libjpeg62-dev

Etape 2 : Installer “Gource”.

Les versions de “gource” sont disponibles à la page suivante : http://code.google.com/p/gource/downloads/list

Etant codé en C++, ces derniers nous gratifient joyeusement d’une versions Win32 ce qui satisfera nos chers utilisateurs de Microsoft :).

Une fois les sources décompressées, il s’agis maintenant de les compiler afin d’obtenir un exécutable. Les commandes classiques suffisent :

cd /Repertoire_de_Gource
./configure
make
sudo make install

Si vous n’avez pas fait de connerie, normalement, si vous envoyez dans votre terminal :

gource -h

Vous devriez voir apparaître la liste d’aide (assez complète) pour gource et donc que votre installation sera un succès.

Etape 3 : Utiliser “Gource”.

Maintenant que gource est installé, il ne vous reste plus qu’a vous rendre dans votre dossier ou siège votre clone local de git (le dossier qui contient le .git in fact).

cd Dossier_du_Projet

Et à lancer la commande suivante, qui est la commande standard pour avoir un rendu vif et dynamique :

gource —seconds-per-day 80 —auto-skip-seconds 0.1 —file-idle-time 500 —max-files 500 —multi-sampling -1280x720 —stop-at-end —elasticity 0.1 -b 000000  —hide filenames,dirnames  —disable-progress —user-friction .2 —disable-bloom

Les arguments de commande sont suffisament clair pour faire ce que vous voulez. Par défaut la visualisation est en fenetré, mais vous pouvez le faire facilement passer en plein écran (et épater vos colègues) avec l’argument supplémentaire

“-f” ou “—fullscreen”.

Voila, grâce à Gource, vous allez pouvoir faire tomber les filles en soirée en montrant “Voila ce que c’est qu’être développeur!”.

C’est comme jouer de la guitare mais en mieux.

Etape bonus : compresser votre résultat en vidéo.

Si vous voulez faire baver le monde devant vos réalisations et pouvoir les héberger sur YoupornTube, il faut donc envoyer tout ça en enregistrement vidéo.

Pour ça je vous conseil de consulter la page ici présente : http://code.google.com/p/gource/wiki/Videos

Elle contient toutes les indications pour encoder proprement vos vidéos en mp4.

Je ne fais pas de tuto détaillé là dessus pour la simple et bonne raison que je me suis complètement vautré dans l’installation de codecs ffmpeg et qu j’ai flingué une partie des lectures vidéos sur mon linux, ce sont des choses qui arrivent u_u’…

Donc je vous souhaite bon courage et une bonne journée à tous!

NSCD et Upstart

Bonjour à tous!

Petit tuto aujourd’hui, plus précisément un complément de plus à l’utilisation d’un système nfsrooté.

Pour ceux qui auraient suivi le tuto sur l’installation du Linux en NFSroot, vous aurez peut être remarqué l’incapacité du système à démarrer des logiciels tels que Thunderbird, Skype etc…. Et bien c’est que ces système ont besoin d’une couche de cache que le NFSroot ne peux pas leur donner en natif (pour ceux qui auraient d’ailleurs lancé des débugs consoles sur ces applications, ont pu constater que leurs logs les gratifiaient d’un magique “SegFault”).

Ici on va voir comment y remédier.

Tout d’abord, il faut installer notre couche de cache, et pour cela, on va faire appel au paquet “nscd” (ou “Name Service Cache Daemon”).

Comme d’hab quand on installe une application, ont passe par apt-get :

~# sudo apt-get install nscd

Une fois l’installation terminé, on reboot tranquille, on se dit “Tout vas bien, pas d’erreur”, on clic que notre application Thunderbird et là… rien. Rien ne se lance.

PAS DE PANIQUE

Avant de me jeter des cailloux pointus à la gueule, dites vous bien que je me suis cassé le cul à plusieurs reprises (et je remercie encore “Ô mon Maitre” Yann pour me secourir dans des moments difficiles) en cherchant la source de l’erreur.
Après avoir longuement suspecter le script de démarrage de faire de la merde, j’ai ensuite compris finalement (via des echo tassés dans des fichiers) que le script n’était même pas appelé au démarrage du système.

En fait, depuis la 11.04 (voir même la 10.10 - 10.04 je crois), on ne passe plus par les runlevel de Système V pour démarrer des démons sous Linux, mais on utilise un nouveau système nommé UpStart. Ce dernier en fait prend la mains sur pas mal d’élément du démarrage, ce qui peux laisser perplexe quand on ne le sait pas.

Seulement, NSCD n’est pas fait pour démarrer par upstart, ce qui fait que ce dernier lui roule dessus au démarrage sans que NSCD puisse moufter sa sauce. Par conséquent il faut créer des scripts custom dans le répertoire de gestion d’upstart (comme on aurai pu faire avant dans les runlevels) afin de lui dire “Hey connard! T’es gentils, tu laisses les autres jouer!”.

voici donc le script a placer dans /etc/init/nscd.conf (Oui, le fichier n’existe pas, il faut le créer).

description	"name service cache daemon"

start on local-filesystems
stop on runlevel [06]

#expect fork
pre-start script
    mkdir -p /var/run/nscd
end script

exec /usr/sbin/nscd -f /etc/nscd.conf

Merci d’ailleurs à spidernik84 du forum Linuxquestions.org pour avoir trouvé ce script plus ou moins miraculeux.

Une fois ce script posé et enregistré, vous pouvez redémarrer votre linux et là, tadaaaa, Thunderbird se lance! Magique!

Reste cependant un dernier problème à résoudre : Cette solution est plus ou moins bonne car elle est faite main. Le délire c’est qu’il est possible qu’une mise a jour fasse sauter tout ça (upstart, nscd, ubuntu lui même). Si le problème ce représente, vous saurez cependant quoi faire!

NB : J’ai utilisé cette solution avec le paquet “unscd” mais techniquement tout devrait fonctionner correctement quand même avec la version nscd originale. Notez que pour “unscd” d’ailleurs, le fichier de conf est le même (et s’appelle aussi “nscd.conf”), puisque les binaires et les fichiers .conf de unscd se nomment nscd tout court. Donc le script est interchangeable.