Publications Debian sur une ligne du temps
La distribution Debian est connue pour donner des codes de personnage de Toy Story aux différentes distributions publiées. Il y a aussi un numéro mais c’est tout de même moins amusant. L’idée a depuis été reprise par Ubuntu et Fedora, mais en utilisant d’autres thèmes. Android fait de même avec son API. Même Apple a réutilisé le concept. Il est cependant probable que l’idée avait déjà été utilisée avant Debian…
Vers l’infini et au-delà ! (mais quand ce sera prêt)
Voici le résultat si l’on met chaque version sur une frise chronologique. Le segment jaune de la ligne de temps correspond à une période où il n’y avait pas encore de noms de code. Les noms de code pouvaient difficilement apparaître avant la sortie de Toy Story… Ils ont été ajoutés à partir de la première version officielle : la 1.1, surnommée Buzz.
On voit bien le changement de rythme entre les premières années et la suite, la loooooooooooongue période de développement de Sarge et la régularité des publications suivantes.
La prochaine version aura pour nom de code Wheezy, un personnage qui apparaît dans le deuxième épisode de Toy Story. Après la période sans nom de code, puis celle des noms du premier film, peut-être est-ce le début d’une troisième période pour les noms de code de la distribution ?
Sources
L’image a été réalisée avec The Gimp.
Les personnages sont principalement tirés de fonds d’écran distribués par Pixar, retouchés pour l’occasion (trouvables, par exemple sur pixar.wikia.com).
La ligne de temps est un bricolage fait avec Calc (LibreOffice) et la touche Impr écran.
Correctifs
Merci à TomThePhysicist, la honte et l’opprobre sont sur moi : je me suis trompé dans la frise comme l’atteste les commentaires. La version dans l’article prend en compte ces remarques. Je ferai pénitence en écrivant plus de 65.000 de lignes de code en {insérez ici votre langage détesté}, sans indentation et sans parenthèse.
Merci aussi à Elessar, je ne retrouvais plus le terme exact en français.
Carte de répartition des développeurs Debian dans le monde
Tout comme la répartition des éléphants de mers ou des Edelweiss, celle des informaticiens n’est pas homogène à travers le monde. Concernant les Edelweiss et les informaticiens, il semble assez évident que les pays du Nord sont plus fournis que ceux du Sud. En se restreignant aux informaticiens, la propriété reste vraie, que l’on parle de logiciel propriétaire ou de logiciels libres. Pour illustrer ce dernier cas, on peut voir une mappemonde des développeurs Debian directement sur le site de la distribution.
Un développeur Debian (noté DD par la suite) est un membre du projet Debian, ayant un droit de vote au sein du projet et ayant la possibilité d’envoyer de nouvelles versions de n’importe quel paquet. Il existe un processus de validation pour pouvoir devenir DD. L’entrée et la sortie de Debian étant relativement lente, les variations de population sont assez faibles.
Un cartogramme est une carte géographique, déformée selon le critère que l’on souhaite mettre en évidence, de manière à sur-représenter (ou sous-représenter) une zone dans le but de mieux visualiser les différences. C’est une anamorphose appliquée à une carte. Voici deux cartogrammes sur la répartition des DD dans le monde en Juin 2011 :
Répartition en valeur absolue
Le critère utilisé est le nombre de DD actifs par pays.
Assez logiquement, les pays industrialisés avec une forte population s’en sortent mieux. Debian est surtout développée en Europe et aux États-Unis mais cette caractéristique était déjà visible sur la carte fournie par Debian. L’Afrique disparaît complètement à l’exception de l’Afrique du Sud et de Madagascar.
Répartition en valeur relative
Le critère utilisé est le ratio entre le nombre de DD actifs et le nombre d’habitants dans un pays.
Les pays peu peuplés sont mieux représentés : ceux qui était déjà visibles explosent (en particulier l’Irlande et la Nouvelle-Zélande). Les États-Unis font un assez mauvais score alors que l’Europe domine la carte. Les pays de l’Europe du Nord sont beaucoup plus visibles (Danemark, Norvège, Suède et surtout la Finlande). Cette dernière a le record en valeur relative avec 3,9 DD actifs par millions d’habitants. L’inde disparaît, écrasée par sa population.
Sources
Anamorphoses réalisées avec ScapeToad, un logiciel libre écrit en Java, puis légèrement retouchée.
La carte des pays vient de thematicmapping.org (l’archive TM_WORLD_BORDERS-0.3).
Le décompte des développeurs Debian a été réalisé par Christian Perrier, infatiguable DD, en Juin 2011. Il s’est basé sur les données fournies directement par Debian. Les cartes réalisées utilisent les statistiques de développeurs considérés comme actifs.
Ajouter la détection des bases de données zodb par file
ZODB est la base de données utilisée par Zope (LE serveur d’application Python). file est un outil en ligne de commande Unix, quasiment aussi vieux qu’Unix lui-même : il existe depuis novembre 1973. Depuis, il a été amélioré et de nombreux formats de fichier ont été ajoutés. Malheureusement, les bases de données Zodb ne sont pasn’étaient pas encore prises en charge :
$ file db.fs db.fs: data
On sait uniquement que l’on est en présence d’un fichier binaire, ce qui est un peu vague… C’est tout de même assez ballot parce que c’est ce que nous utilisons au travail. Comment avoir une détection correcte ?
Nouvelle définition d’un type de fichier
file se base sur le début du fichier (les nombres magiques) pour en déduire son type et non sur l’extension du fichier. Il faut donc ajouter la définition suivante dans un fichier :
0 string FS21 Zope Database FileStorage (data)
L’insertion de cette ligne dans le fichier /etc/magic, permet d’obtenir automagiquement le résultat suivant pour l’ensemble des utilisateurs du système :
$ file db.fs db.fs: Zope Database FileStorage (data)
Succinctement, le format attendu pour les définitions est :
- l’emplacement dans le fichier, en octets (ici 0 parce que c’est tout au début du fichier) ;
- le type de données attendu (ici
stringmais cela pourrait aussi êtrebyte,long, etc.) ; - la valeur attendue (ici
FS21) ; - et la description à afficher si la valeur correspond (ici
Zope Database FileStorage (data)).
Le format de Zodb est très simple, donc la définition ajoutée est à son image mais magic permet aussi de tester plusieurs valeurs, à plusieurs emplacements. Pour plus de détails, lisez la page de manuel de magic(5).
Le terme « data » est ajouté à la description pour signaler le type de fichier d’un point de vue assez général. Les deux autres possibilités étant soit « text », soit « exécutable ». Il est important que l’un de ces mots-clef soit présent dans la description, quelque soit l’endroit à l’intérieur de la description. La page de manuel de file(1) insiste sur le fait de respecter cette convention en cas d’ajout de définitions.
Déploiement vers le reste du monde
Plutôt que de garder cette définition, pourquoi ne pas la diffuser pour que d’autres puissent en profiter ? Le plus logique est de contacter les développeurs de ZODB pour savoir s’il y aurait des détails qui n’auraient pas été pris en compte par ignorance.
(Note : la liste de diffusion ZODB-dev nécessite une inscription pour pouvoir envoyer des messages. Si ce n’est pas le cas, le robot de la liste ignore silencieusement le message posté. Inscrivez-vous avant tout envoi.)
Après proposition sur la liste de diffusion de ZODB-dev, Jim Fulton a proposé une meilleure description et suggéré d’ajouter les fichiers de cache pour ZEO.
Grâce à lui, la version finale suivante est obtenue :
# Database file for Zope (done by FileStorage) 0 string FS21 Zope Object Database File Storage (data) # Cache file for the database of Zope (done by ClientStorage) 0 string ZEC3 Zope Object Database Client Cache File (data)
C’est cette version qui a été envoyé et accepté par Christos Zoulas, mainteneur de file. Si vous voulez bénéficier tout de suite de la détection de ces deux types de fichiers, il suffit de copier les lignes précédentes dans /etc/magic. Sinon, cela sera réalisé automatiquement lorsque la prochaine version de file sera publiée et intégrée sur votre système.
Joyeux anniversaire Linux !
Il est largement admis que la naissance officielle de Linux date d’un e-mail de Linus Torvalds du 26 août 1991 sur une liste de diffusion publique dédiée à Minix. On peut y lire « I’m doing a (free) operating system [...] This has been brewing since april, and is starting to get ready. » (cf. une archive de l’e-mail originel). Une page de célébration officielle a d’ailleurs été créée pour l’occasion.
Vingt ans
Tout ceux dont le niveau en mathématiques est assez élevé pour faire des additions avec des retenues auront remarqué que l’on arrive au 26 août 2011 si on ajoute vingt ans. Réciproquement, si l’on retranche 20 à la date actuelle, on retombe plus ou moins sur la date de naissance (selon votre maîtrise des soustractions avec retenues). Bref, c’était il y a quelques jours. Traditionnellement, lors d’un anniversaire, il est de bon aloi de faire un gâteau et de le partager avec des personnes en rapport. Linus n’étant pas disponible à cette date, il n’y avait pas vraiment besoin de souffler de bougies. Mais avec qui manger le gateau ? Assez logiquement, c’est chez Yaal qu’il y a eu du gâteau pour le midi :
On aurait pu le déguster dès le matin, mais faire la réunion quotidienne la bouche pleine n’aurait évidemment pas aidé à la compréhension des uns et des autres.
La recette
La base du gâteau est une recette de gâteau basque mais la crème a été astucieusement remplacée par une confiture de figues faite à la volée. Mais plutôt qu’une longue et ennuyeuse explication, un makefile devrait suffire :
manger: all
cat gateau |split --bytes=42 part
for part in `ls part*`; do cat ${part} >/dev/estomac; done
all: gateau
gateau: gateau.o brugnon.o credits.o
cat jaune_oeuf.c gateau.o > gateau.o #juste pour la couleur
sleep 15m
cat fondant.c brugnon.o sucre_glace.c gateau.o > gateau
gateau.o: confiture.o pate.o
paste 2/3(pate) confiture.o 1/3(pate) |four --cuisson=30 --ouput=gateau.o
sleep 30m
brugon.o:
cut brugnon.c >brugnon.o
confiture.o:
extract pulpefigue.c
cat pulplefigue.c sucre.c | sort --random-sort | gcc -c -Wall --casserole
pate.o:
touch grandsaladier
paste oeufs.c sucre.c sel.c >tmp.c
paste tmp.c beurre.c farine.c | sort --random-sort >grandsaladier
mv grandsaladier /dev/frigo/
sleep 3h
clean :
rm *.o
clear
mrproper: clean
rm gateau
credits.o:
merci Yaal Arthur Colin Bruno Arthur
merci --suggestions --appareilphoto Evi
Livre dont vous êtes le héros et graphe
Les livres dont vous êtes de héros est un type de livre qui a eu son heure de gloire dans les années 80 (1980, dans le cas improbable où quelqu’un lise cet article dans un siècle). Pour mes milliers de lecteurs les plus jeunes qui ne connaîtraient pas, ces livres sont une sorte de jeu de rôle en solitaire et limité à des actions possibles. (Mes milliers de lecteurs ne connaissant les jeux de rôle se renseigneront par eux-même, je ne vais pas tout faire : j’ai un article à écrire.)
Principe de fonctionnement
On commence au premier paragraphe, à la fin de celui-ci divers choix sont possibles, on en choisit un qui nous redirige vers un nouveau paragraphe jusqu’à la mort ou la réussite de l’aventure, symbolisée par le dernier paragraphe. Pour avoir pleins de détails plus ou moins intéressants, lisez l’article Wikipédia en rapport.
Exemple
1
Vous êtes en train de parcourir un blog passionnant depuis de longues heures quand vous entendez le parquet craquer derrière vous.
- Regarder derrière (aller en 3).
- Continuer à lire (aller en 2).
- Se dégourdir les jambes (aller en 4)
2
Discrètement une personne s’est glissé dans votre dos. Vous êtes assassiné par le Colonel Moutarde avec le chandelier.
3
Vous tournez la tête et avez le temps de vous une personne massive fuir la porte de derrière, laissant une forte odeur de pipe dans son sillage.
- Poursuivre cette personne (aller en 5).
- Vous remettre à lire comme si rien ne s’était passé (aller en 2).
- Se dégourdir les jambes (aller en 4)
4
Vous vous étirez et vous levez pour marcher un peu. La lumière de la lampe vous montre une personne avec un complet veston orangé d’un goût douteux. Il tient un chandelier d’argent à la main et commence à s’enfuir.
- Poursuivre cette personne (aller en 5).
- Vous remettre à lire comme si rien ne s’était passé (aller en 2).
5
La mystérieuse personne court moins vite que vous, probablement à cause de ses poumons qui contiennent plus de goudron qu’une bretelle d’autoroute. Vous la rattrappez dans le jardin et la plaquez dans un parterre de roses. Le colonel Moutarde meurt quelques instants plus tard en murmurant « Monde de merde ». Vous avez éliminé un dangereux tueur pédo-nazi que même Hadopi n’aurait pas fait mieux. Youpi, c’est gagné ! \o/
Avec un exemple aussi lumineux, même mes milliers de lecteurs les plus abrutis (qui ne sont pas forcément les plus jeunes) devraient avoir compris.
Qualification du graphe
On peut donc voir les paragraphes comme les noeuds d’un graphe orienté puisqu’on va d’un paragraphe à un autre. Accessoirement, il est évident que tous les noeuds sont connexes : dans le cas contraire, l’auteur aurait écrit des paragraphes que le lecteur ne peut jamais atteindre, ce qui ne serait pas très malin de sa part.
Il semble impossible de revenir au premier paragraphe et le dernier ne pointe vers rien (le 5 dans l’exemple), comme tous ceux dans lequel le joueur a subit un sort funeste (le 2 dans l’exemple). On ne devrait pas pouvoir revenir sur un noeud déjà passé car on pourrait boucler et refaire les mêmes actions, prendre à nouveau les objets qu’on a déjà pris, etc. On peut donc supposer que l’auteur a pris garde à la navigation entre les paragraphes afin qu’elle ne permette jamais de revenir sur un paragraphe déjà lu. On peut donc se demander si on est pas en présence un graphe acyclique orienté. Voici la représentation sous forme de graphe de l’exemple précédent :

J’ai testé avec un des deux livres datant mon enfance, en choisissant celui qui possède le moins de noeud : Le tombeau du vampire, 300 paragraphes (Le Tombeau du Vampire, de Dave Morris, ISBN : 2-07-033316-7)

Après quelques heures et trois feuilles A4 raturées, on obtient à peu près le résultat attendu. Rares sont les exceptions : on trouve par exemple le coup classique du réveil qui fait que l’on reprend tout du début (donc au paragraphe 1) après avoir bu une potion.
Dans le cas improbable où vous vous posiez ce genre de question, vous avez un début de réponse.



