-->[]

Aller au contenu | Aller au menu | Aller à la recherche

Comment miner son après-midi

Ça c'est de la journée productive. Levé sur les coups des midi, vadrouillé un peu... et d'un coup je me suis dit "tiens j'aimerais bien jouer au démineur de façon rigolote". J'ai pensé aux différentes solutions possibles de fabriquer un démineur pas trop traditionnel: SVG + javascript, voire Jabber... puis je me suis dit que c'était sûrement faisable en CSS.

Quelques heures plus tard, un résultat rigolo, sans une seule ligne de javascript (en vrai il y a une ligne, mais rien à voir: c'est parce que j'ai insisté pour faire du HTML5, par pur caprice, donc il faut faire reconnaître les balises HTML5 à Internet Explorer). La génération de la grille elle-même est en PHP, mais le code HTML/CSS produit est autonome.

Quand on clique sur le bouton bien connu, ça commence une nouvelle partie, et si on rappelle l'URL d'une partie terminée ou laissée en cours de route, ça la reprend telle qu'on l'a laissée. On peut filer l'URL de sa partie en cours à d'autres personnes pour qu'elles l'essaient. Si on veut vraiment recommencer une partie déjà terminée, il suffit de l'enlever de l'historique du navigateur.

Il reste encore quelques problèmes non-résolus :

  • impossible d'enlever un drapeau déjà posé.
  • pas de comptage des mines restantes, ou de détection que la partie est gagnée.
  • pas d'ouverture automatique des cases qui n'ont pas de mines autour
  • bien sûr, on n'a pas la fonctionnalité bien pratique de milieu-cliquer sur un numéro pour gagner du temps quand on a trouvé toutes ses mines.
  • pas de compteur de temps.
  • on peut jouer avec les paramètres d'URL pour changer le nombre de cases, mais la CSS ne suit pas (largeur de l'élément "article"). J'ai hésité, parce que le coup de la fenêtre qui ressemble à Windows c'est vraiment pas crucial, mais je me suis dit que j'avais le droit de privilégier le ridicule sur le fonctionnel.

Mais si quelqu'un a des idées pour corriger tout ça, je prends. :)

Il reste aussi des babioles marrantes à faire comme la possibilité de séparer la CSS de présentation à la windows et la CSS de mécanisme des cases, bombes, drapeaux, pour proposer d'autres thèmes que ce cher Windows 95.

Ah, je préviens, j'ai testé sur à peu près aucun navigateur autre que le mien (Firefox 3.5.6).

Got Cleared

Je considérais mon vieux blog sous DotClear 1.2-rc3 comme une antiquité prête à jeter à la poubelle, gardée dans un coin juste pour l'archive... D'ailleurs même les liens ne fonctionnaient pas, en gros il y avait la première page lisible et c'est tout.

Du coup j'ai commencé à me dire que je le rapatrierais bien vers SPIP (j'espère toujours le faire un jour, si je trouve comment faire pour convertir les entrées en gardant une syntaxe wiki, donc sans importer du code HTML). Alors je me suis dit que quand même, une première étape c'était déjà de pouvoir y accéder. Ça c'est avéré facile: vu que les URLs marchaient pas à cause des règles de réécriture Apache et que j'avais la flemme de me pencher sur les règles de réécriture en question, j'ai juste désactivé les URL super-classe-moumouttes-sans-point-d'interrogation-au-milieu et suis repassé à un schéma classique de query string. Et là, première merveille : un blog qui fonctionne ! Toutes les pages, mêmes les premières ! Et les commentaires aussi ! Ouah ça fait bizarre, un peu comme un zombie ou Jésus ou les tortues-squelettes dans Super Mario World... enfin un de ces trucs qui ressuscitent.

N'empêche... 1.2-rc3, quoi. La version de 2004, stadire. Hum. Imaginant mal l'outil d'import avaler ça sans broncher, je me suis donc cogné les mises à jour successives vers 1.2.1 (histoire d'avoir un truc qui dise pas "rc"), 1.2.3, 1.2.5, 1.2.7.1 (oui, de 2 en 2, quand même... on peut être prudent mais faut pas déconner)... puis 1.2.8 (ça c'est parce que je savais pas qu'elle était sortie sinon j'aurais évité l'étape 1.2.7.1). Puis à côté, hop! install de dotclear 2, hop! clique sur import dotclear 1.2, hop! ça marche pas. Gros bug. Une histoire de table qui existe pas ou je sais pas quoi. Grmbl. Après une bonne nuit de sommeil, on cherche un peu mieux et hop nous voilà sous DotClear 2 !

Dommage que mon thème précédent marche pas direct, mais bon tant pis, ça sera l'occase d'en faire un autre. Ou pas. Après tout, l'idée de départ c'est pas de se remettre à bloguer mais d'importer les anciens posts dans SPIP. Et merde, je me suis fait arnaquer : j'aime bien DotClear 2.

Centre de Gravité

De plus en plus de sites web passent à Gravatar. Ce service permet d'afficher sur son site web l'avatar des utilisateurs en se basant sur leur adresse mail. De la part des utilisateurs, il suffit de s'inscrire sur le site gravatar.com et d'y définir leur gravatar.

A priori l'idée est bonne. Cependant, le gros problème que je vois (et qui fait que je n'utiliserai pas ce système que ce soit en tant qu'utilisateur ou en tant que webmaster), c'est que plus l'utilisation de Gravatar se généralise, plus l'architecture qui en résulte devient totalement centralisée, ce qui va complètement à l'envers des bases d'internet.

Premièrement, c'est une architecture fragile: si gravatar.com décide de fermer, de rendre le service payant, etc., pouf, plus personne n'a d'avatar...

Ensuite, il est très facile pour eux de compter l'apparition de tel ou tel utilisateur ici et là. Grâce aux referrers, la boîte qui gère (ou rachètera) Gravatar a accès à la liste des sites où apparaît chaque utilisateur, ainsi qu'aux statistiques de fréquentation des pages qui contiennent les gravatars. En liant les deux, c'est facile aussi de savoir les centres d'intérêt associés aux adresses mail concernées. Jolie source d'info en perspective pour le spam et les collectes de données en tout genre à qui voudra acheter ces informations. Je sais pas pourquoi, je ne serais pas surpris de lire d'ici quelques semaines/mois que Google a racheté Gravatar.com.

De manière générale, il est assez intéressant de voir le fleurissement de ce genre de "services" sur internet: youtube, twitter, etc. (je suis pas fort en services web 2.0 mais vous complèterez de vous-mêmes). Ils souffrent tous du même problème que Gravatar. Si on opère un petit retour mental dans le passé, je me demande à quoi ressemblerait internet si le système DNS s'était développé sous cette forme, si HTTP s'était développé sous cette forme (ça a été tenté par the Microsoft Network alias MSN, et aussi par AOL), si les mails s'étaient développés sous cette forme (tentative toujours en cours par Microsoft), etc.

Pendant que j'y suis, et puisque c'est en plein dans le sujet, Omega a développé un système nommé Omniprésence qui permet de rendre son avatar Jabber accessible à une application web. Le site presence.jabberfr.org fait tourner cette application (mais d'autres le peuvent aussi, c'est là le point important), il est donc possible d'implémenter Omniprésence sur votre site web au même titre que Gravatar (mais en se basant sur l'adresse Jabber des utilisateurs). Cependant, pour ne pas tomber dans les mêmes travers centralisés que Gravatar, il serait intéressant de voir comment on pourrait déduire le "serveur Omniprésence" de l'utilisateur à partir de son adresse Jabber. À défaut, il reste aussi possible d'ajouter un champ pour l'indiquer explicitement. C'est plus lourd (enfin un champ en plus, ça va), mais ça change tout en termes d'architecture.

apt-git

Quelques idées en vrac, y'a peut-être des grosses conneries, parce que ça vient de me traverser l'esprit. En jouant avec git ces derniers jours, je me suis dit qu'en fait, le processus de développement et la gestion des paquets Debian ont quelques points communs conceptuels avec git.

Par exemple, l'upgrade de paquet, finalement, ça ressemble à git pull, ou git fetch puis git merge. Vu qu'en général un paquet remplace l'ancien, le seul cas de conflit à gérer c'est les fichiers de conf, et c'est de la résolution de conflit typique de git. Si un fichier de conf n'a pas été modifié, il est mis à jour si une nouvelle version existe. Par contre, si le fichier a été modifié, on gère le conflit "à la main" (mais cadré par git). Déjà maintenant avec dpkg, on peut voir un diff, garder l'ancien fichier, écraser avec le nouveau, ou résoudre le conflit à la main. Très "git merge", quoi.

Du coup, dans la même idée, on peut imaginer l'évolution des paquets "côté Debian" comme des branches ("stable", "testing", etc.). Par ailleurs, sur un ordinateur donné, pour chaque paquet, la version installée localement serait une branche à part entière ? (ou bien l'ensemble des paquets serait une branche ?) Du coup :

  • juste downloader les paquets c'est une sorte de git fetch d'une branche officielle.
  • faire une mise à jour de paquets c'est merger cette branche officielle dans la branche locale.

Idem, lors des passages d'un paquet entre sid -> testing etc., et aussi pour la sortie d'une nouvelle version de Debian. On peut peut-être voir ça en termes de branches git ? de tags ?

Et l'upload de paquet par un DD ? git push ?

Plein de questions encore...

  • qu'en est-il de l'update ?
  • est-ce qu'on peut comparer un Changelog.Debian avec ce qui serait le ''git log' sur la "branche" du paquet officiel ?
  • comment mettre à profit l'historique de modifications ? (pour la branche locale; pour les branches de paquets côté Debian)
  • en quoi l'aspect décentralisé de git est intéressant ? comment ça peut se voir pour les mirrors ? finalement le /etc/apt/sources.list serait une liste de dépôts git...
  • est-ce que le concept de backport est comparable au concept de git rebase ? je maîtrise ni l'un ni l'autre alors c'est peut-être une connerie...
  • est-ce qu'on pourrait imaginer un frontend "git-like" à dpkg ? ou une réutilisation plus directe des algorithmes et concepts de git par dpkg ?
  • vu sous cet angle, comment se voient les outils tels que dpkg-divert ?

bref, des idées en vrac, mais si je les mettais pas ça serait resté dans ma tête, alors que quitte à penser à des trucs idiots, autant les dire aussi, hein.

Procès des scripts aux graphiques

Il y a environ 3 ans, j'ai fait un "petit" programme nommé battground. Au début, c'était un petit script shell qui changeait la couleur du fond d'écran suivant l'état de charge de la batterie de mon laptop, le genre de petit script à la con bricolé en 1h dans un moment d'ennui.

Petit à petit j'ai commencé à lui rajouter des petites fonctionnalités, comme par exemple pouvoir configurer la variation des couleurs au fil de la charge, décharge, etc.. J'ai fini par me prendre complètement au jeu et à passer des journées entières dessus, d'ailleurs Marie s'en souvient sûrement encore très bien :) Au final, ce petit script est devenu un truc assez complet, complexe, et compliqué :

  • Chaque état de charge a une couleur de base, comme ça on peut savoir d'après la couleur si la batterie est en train de se vider, remplir, si elle a fini de se charger, etc..
  • Le pourcentage de batterie (donc entre 0 et 100) est transformé en un autre nombre, comme on veut, par des petites fonctions mathématiques simples, appelées filtres. Par exemple, "reverse" transforme 0 en 100, 100 en 0, 60 en 40, etc.. Autre exemple, "step" arrondit à la dizaine (ou à ce qu'on veut) et produit donc un effet d'échelon. Encore autre exemple, "threshold" transforme tout ce qui passe en-dessous (ou au-dessus) d'une certaine seuil en une valeur fixe, par exemple 0. Il est possible de combiner (composer, pour les matheuses/matheux) plusieurs fonctions ensemble, les unes à la suite des autres. Le nombre final sert à faire varier la teinte de la couleur de base, et idem pour la saturation. Comme chaque filtre est un fichier indépendant très simple, on peut aussi créer soi-même ses propres filtres si on se sent d'humeur matheuse.
  • On peut faire des thèmes, qui sont donc la combinaison de couleurs de base et d'une série de filtres. Il y a des thèmes basiques prédéfinis, par exemple un qui met du vert pour la charge, rouge pour la décharge, bleu pour "chargé", et qui se fout du pourcentage de batterie. Un autre thème prêt à l'emploi passe progressivement de noir à blanc en passant par les verts pour la charge, et retourne de blanc à noir mais cette fois en passant par les rouges pour la décharge. C'est très facile de faire ses propres thèmes, du coup c'est un peu comme choisir des assortiments de couleurs de fond d'écran, sauf que ça "bouge".
  • Autre détail, on peut choisir le critère de mise à jour de l'information: une seule fois au lancement du programme, à chaque événement ACPI, toutes les 5 minutes, etc.. Les critères disponibles devraient suffire, mais on peut écrire ses propres critères de mise à jour. Je sais pas moi, à chaque réception de mail par exemple :)
  • On peut télécommander le programme en le forçant à mettre à jour les couleurs manuellement, en lui faisant relire ses fichiers de configuration, etc..
  • À la demande de Lunar qui avait à l'époque un Mac, ça marche aussi sur les Macs, qui n'utilisent pas ACPI pour la gestion de la batterie mais PMU.

Bref, en quelques semaines, le petit script était devenu un machin assez gros. Le seul truc qui n'a jamais changé, c'est que... c'est resté écrit en shell ! C'est bien séparé en plusieurs fichiers et tout, mais le tout combiné, c'est environ 1000 lignes de code.

Aujourd'hui, dans l'idée de faire un paquet Debian, j'ai remis le nez dedans, corrigé quelques trucs, ajouté une gestion du cas "batterie absente", etc.. Mais quand même... il faudrait vraiment refaire ce programme dans un autre langage, par exemple en C, en haskell, en python, ou n'importe quoi mais pas en shell par pitié, parce que là c'est vraiment devenu trop gros. N'empêche, c'était marrant à faire... Je vais peut-être me remettre à l'utiliser, tiens.

Boucle-la

Le "print debugging"[1] c'est bien.

Par contre, l'utiliser dans un hook[2] sur le signal "print text" de irssi[3], c'est une mauvaise idée.

Notes

[1] C'est le fait, quand on est en train d'écrire un programme, d'insérer temporairement des instructions qui affichent à l'écran des données "témoin", afin de suivre pas à pas le déroulement du programme et détecter les erreurs éventuelles. Si c'est la seconde fois que vous lisez cette note, arrêtez ici, sinon vous aussi vous allez crasher.

[2] Un hook c'est un bout de programme qui se déclenche lors d'un événement donné.

[3] L'événement que irssi déclenche au moment d'afficher quelque chose, typiquement un message sur IRC, ou... une instruction de "print debugging"[1].

weird wild web

Pendant une discussion avec Lucas sur l'utilisation systématique du préfixe "www." dans les noms de sites web (notamment en ce qui le concerne il est pour, et le site no-www est contre) :

< Lucas > "www.no-no-www.org" could not be found.
< Lucas > mmh, c'est tentant :)

Le code de la route

C'est deux personnes qui discutent au téléphone par VoIP. Soudain, l'une d'elle dit : Attention, je passe sous un tunnel SSH, ça va hasher...

(transmise par jadawin sur IRC. Et pourtant, c'est pas lui le geek de viamichelin.)

IP rien pour attendre

Bon. En ce moment le truc un peu tendance, c'est la messagerie instantanée (messages et présence), associée à la voix sur IP.

Dans ce domaine, le gros truc fashion, c'est l'intéropérabilité. Ça avance un peu vite, alors on va faire un petit récapitulatif. Attention, je parle uniquement des protocoles ouverts, pas des solutions individuelles propriétaires.

Boîte à outils. Niveau protocoles, tout est prêt :

  • Texte: Jabber, ou plutôt XMPP.
  • Voix: SIP, et plus récemment Jingle. Les experts vont dire qu'il y en a d'autres, mais je suis vraiment nul dans ce domaine.

Bon, très bien. D'accord. Et ?

Ah. Parlons plutôt des logiciels, alors. Les trucs à surveiller de près, c'est, dans le désordre (un peu) :

Ces logiciels forment actuellement une espèce de grosse soupe.

Lire la suite...

A powerful, efficient, and scalable Mail Transport Agent

Résumé de ma journée.

11:06am up 67 days, 7:59, 1 user, load average: 138.78, 53.48, 34.12

Comme ça laisse beaucoup trop de temps libre, une petite réunion au sommet, en plus juste après le repas, tu sais le truc où tu te dis « et merde et maintenant je fais comment pour éviter de m'endormir ? ».

Oh pis un peu de LDAP aussi, parce que Panach sera toujours Panach [1].

Et donc ça c'est le dessin qui va avec le load-average de 138, avec un happy-end quand même sinon je serais pas en train d'écrire dans un blog que personne ne lit (bon à part toi, oui toi là) :

Bousculade dans la mailqueue du serveur mail

Notes

[1] Par contre là, si quelqu'un a compris, je veux bien qu'on m'explique.

Tu feras gaffe t'as pas mis les deux mêmes charsets

Bon, j'ai enfin fait un truc que je voulais faire depuis un petit moment: basculer mon système en UTF-8 au lieu d'ISO-8859-1. Heureusement, sous Debian ça reste en partie assez simple:

$ sudo dpkg-reconfigure locales

Il suffit de générer les locales de son choix, par exemple fr_FR@euro.UTF-8, en_US.UTF-8, puis de sélectionner la locale par défaut du système, dans mon cas le second, mais peu importe.

Ça permet d'avoir toutes les applis dans cet encoding, notamment Konsole, que j'avais jamais réussi à basculer juste elle-même en UTF-8, contrairement à xterm qui permet de le faire même dans un environnement ISO.

Le truc plus rigolo est pour IRC: mon client IRC (irssi) tourne dans un screen sur poivron, auquel je me connecte en SSH à partir d'un shell qui tourne sur ma machine dans son propre screen... Simple n'est-ce pas ? Donc après avoir obtenu que Konsole utilise de l'UTF-8, il faut lancer chaque screen en rajoutant l'option -U, que ce soit lors de la création ou de chaque « rattachement ». Enfin, dans irssi, il suffit de bien définir l'option term_type (/set term_type utf8), et tout marche nickel.

Bien sûr, comme j'ai souvent été soûlé par les gens qui arrivent avec leurs gros sabots sur des channels IRC où tout le monde est en iso-8859-15, et qui balancent de l'UTF-8 comme si de rien n'était, je me suis dit que j'allais pas faire la même chose :) Par chance, des gens (dont en dernier lieu Johan "Ion" Kiviniemi) ont eu la délicatesse de faire un script irssi nommé « recode », qui permet d'utiliser des charsets différents suivant les chans, et de traduire de l'un à l'autre facilement. Du coup, étant plus souvent sur des chans en ISO qu'en UTF-8, ces options conviennent :

/set recode_terminal_charset utf-8 (encoding du terminal)
/set recode_default_charset iso-8859-15 (encodage par défaut sur les chans)

La dernière option est écrasable au coup par coup avec l'option /recode, ce qui est particulièrement intéressant pour respecter les pratiques de chaque chan.

Enfin, il est à noter que, bien que la plupart des programmes se comportent très bien avec cet encoding particulier qu'est UTF-8, dans lequel le prédicat « 1 caractère = 1 octet » n'est plus vrai, ce n'est pas le cas de tous. Notamment, zsh gère assez mal le retour arrière (backspace), car il faut presser 2 fois la touche pour effacer un caractère de 2 octets comme 'é'. Bien sûr, ça pourrit l'écran, donc il faut enchaîner avec un petit Ctrl-L. Trop bien. Je crois que le complètement se passe mal aussi dans certains cas bizarres.

Hormis ces quelques cas, « jusqu'ici tout va bien ».

C'est vert ment en retard

Nouvelle CSS inspirée de celle de ma homepage. À fignoler quand je serai pas à la bourre pour le cours de réseau.

Le chant du cygne

Décidément, KDE me surprend de jour en jour. La bonne surprise de la soirée, c'était ça : Boîte de dialogue de KDE pour écraser un fichier musical

Quand on essaie d'écraser un fichier, il y a toujours une boîte de dialogue. Bon. Sauf que là, avant l'effacement définitif, tu peux écouter la musique au cas où, genre « Avez-vous une dernière parole avant votre exécution ? ».

Je suis sûr qu'il y a des choses encore plus mignonnes pour les autres Mime-Types, enfin j'en sais rien, pis d'abord il est 5h48 du matin, alors dodo picétou.

Buntu be a-Live

Ça y est, j'ai enfin reçu mes 15 CD d'Ubuntu. Ça, c'est cool.

Évidemment, ça poutre. M'enfin je l'ai tellement lu ces derniers mois que ça me fait ni chaud ni... bon, ok, ça tue.

Pour le moment avec Marie on a testé seulement le CD Live, qui est juste parfait. « Mais comment ils ont fait pour mettre tout ça sur un CD ?? - En fait tout est compressé, et décompressé à la volée en RAM lors de l'exécution. - D'accord, mais n'empêche c'est trop fort. Par contre c'est con, c'est que en anglais. Enfin c'est normal, déjà pour un Live CD c'est cool. Reboot - Heu, Marie ? Tu disais ? Regarde ça. » Devant nos yeux, au boot, une liste longue comme ça de toutes les langues possibles pour démarrer, pour le Live CD hein. Je parle même pas du CD d'installation.

Pour le coup, il est possible qu'on remonte Indy de la cave, et qu'on lui trouve une petite place quelque part. Marie a de plus en plus envie d'avoir un ordi et être un peu autonome, surtout que j'ai toujours Smurf avec moi, que ce soit au boulot ou à l'INSIA. Il est donc probable qu'elle s'installera une Ubuntu from scratch sur le PC, histoire d'être un peu peinarde.

Sinon, c'est pas pour critiquer, mais la blonde sur la jaquette a une jolie poitrine. Et qu'on vienne pas me faire croire que les tétons qui pointent sont par hasard pile dans l'alignement de l'objectif, hein... Tss tss tss. Ça et le beau gosse musclé, c'est fourbement fait exprès, juste pour que les non-geeks commandent les CD. Pour les geeks il aurait fallu mettre une part de pizza ou une cafetière peut-être...

Enfin c'est cool. J'ai donc 14 CD à disposition (sposition), moins quelques-uns pour ma famille, moins quelques-uns déjà réservés par Marie pour la sienne, moins quelques-uns pour des gens à l'INSIA. Donc il en reste, si mes calculs sont bons, encore plein, du coup faut pas se gêner pour m'en taxer, c'est bon pour la santé.

Rappel. Chaque pochette contient 2 CD: - 1 CD Live, permettant de tester Ubuntu sans installation, qui démarre, détecte le matériel, etc. etc.. Ce disque contient aussi les versions MS-Windows de la plupart des logiciels présents, comme Firefox, Thunderbird, The Gimp, Audacity, et d'autres. - 1 CD d'installation, permettant d'installer Ubuntu de manière permanente sur le disque dur (skeudur), une fois qu'on est sous le charme. Attention c'est super fourbe.

S${HOME}F

echo 'You can remove me.' > '-rf ~'

Répète après moi: "je suis un script PHP"...

Alors toujours dans la série "je-veux-faire-des-trucs-comme-le-serveur-mais-je-suis-pas-l'admin-et-l'admin-c'est-ze"...

Ce soir je viens de me passer de mod_rewrite, un peu cradement j'en conviens, mais ça aurait pu être pire.

L'idée, c'est que normalement demain je déplace mon blog sur le poivron (merci Lunar). Mais comme j'aime pas partir sans laisser d'adresse, je me suis dit que je pourrais faire une redirection 301 (Moved permanently). Le problème c'est que je suis pénible, et que je veux que toutes les URL genre http://etudiants.insia.org/~dammouia/blog/blabla/coucou/toto soient transformées en http://davux.asocial.info/blog/blabla/coucou/toto. Donc là normalement, on se dit fastoche, un coup de mod_rewrite et c'est réglé. Juste faudrait avoir accès au serveur pour ça, donc pas de rewrite (c'est ballot hein). Alors je pourrais faire une page 404 puis un 301 par-dessus, mais moi je veux pas une 404, je veux un vrai 301. Na.

Lire la suite...

c'est réglé, dites ?

[ Je voudrais m'excuser d'avance pour ce post, pour la rédaction duquel je n'ai pas pris autant de temps que le sujet l'aurait mérité. ]

À part le nom, ceci est une excellente idée.

C'est en gros un "écosystème de configuration". Il est vrai que le répertoire /etc/ de Linux mérite très bien son nom car c'est un beau bordel, et un système de gestion de la conf un peu plus homogène ne ferait pas de mal.

De plus, le système proposé est basé sur des associations clé/valeur, ce qui finalement est ce que tous les systèmes de configurations proposent, sous des formes différentes (httpd.conf, /etc/hosts, /etc/passwd, /etc/shadow, /etc/screenrc, php.ini, /etc/fstab, gdm.conf, XF86Config-4, sshd_config... je continue ?). Les imbrications de paramètres sont gérées tout bêtement... de la même manière que les imbrications de répertoires, et on reste sur un modèle de fichiers texte (hein Lunar) dans la plus grande tradition Unix.

Quand on y réfléchit bien, c'est une généralisation propre de la bidouille du fichier /etc/passwd dont un des champs se fait déporter la gueule vers un autre fichier ayant des droits différents. Ici, chaque paramètre a ses propres droits.

De plus si on ne veut pas éditer ses fichiers à la main il existe une API clean.

Le seul truc qui me gêne c'est vraiment le nom: Linux Registry. C'est vrai que ça reprend les bonnes idées de la base de registres de Windows (le coup de la granularité plus fine basée sur un système clé/valeur et de l'homogénéité), mais ça n'en a pas les inconvénients: le format binaire complètement fermé notamment, pas de gestion des droits, le regroupement du tout dans un seul fichier.
C'est dommage d'avoir un nom pareil car ça dégoûte pas mal de gens, notamment ceux qui sans ça auraient été les plus à même d'apprécier l'intérêt de ce système. Mais d'après l'auteur (Avi Alkalay), il est question de changer de nom car énormément de monde fait la remarque (tu m'étonnes Yvonne).

J'étais très très très pessimiste avant d'aller sur la homepage du projet (à cause du nom justement qui me rappelait tous les reproches que je fais à la base de registres de Windows), mais j'en suis revenu enthousiaste.
M'enfin, connaissant la nature très conservatrice de l'être humain, et le syndrôme du « ça marche alors ça me suffit » (cf. MSN, IE, les tableaux dans les pages web, les balises <center>, et autres IPv4), fortement liée à la loi de Kiwi numéro 1 (« plus c'est pourri, plus c'est répandu »), je doute que ce projet devienne un jour un fait.

nmap el reçu

Ça fait bizarre de voir son téléphone afficher son adresse MAC, pouvoir configurer son adresse IP, son subnet mask, sa gateway et le serveur TFTP sur lequel il va récupérer sa conf.
Ça fait bizarre aussi de regarder derrière le téléphone et voir 2 prises ethernet, avec respectivement « To PC » et « To LAN ».

C'est rigolo d'être bêta-testeur de la nouvelle installation de VoIP chez Karavel.

un pingouin en sleep

Je viens d'installer software-suspend sur mon laptop, et ça marche plutôt pas mal :)
Software-Suspend permet de suspendre un ordinateur en sauvegardant le contenu de la RAM quelque part: partition d'échange (swap), fichier du disque dur local et prochainement en NFS. De cette manière l'ordinateur peut être éteint, et au prochain redémarrage l'état de la RAM est restauré comme si de rien n'était.

Je vais essayer d'expliquer la procédure que j'ai suivie.

Lire la suite...

Schéma sacré la norme

Quel rustre, quel monstre, quel ignoble et vil personnage...
Je viens de modifier dans le schéma LDAP la syntaxe de l'attributeType uniqueIdentifier de 1.3.6.1.4.1.1466.115.121.1.15{256} en 1.3.6.1.4.1.1466.115.121.1.27.
Oui, je sais, c'est pas bien : un uniqueIdentifier normalement ça peut être un nombre, un mot, un numéro d'immatriculation, etc. Mais bon pour nous c'est des nombres tout le temps, et j'ai besoin de pouvoir calculer le plus grand uniqueIdentifier disponible par exemple, alors pas de pitié et trucidage de la syntaxe pour pouvoir modifier les matchingRules de equality et ordering en integerMatch et integerOrderingMatch respectivement.
Pis m'en fous, dans la RFC1274, ils disent:

The domain within which the identifier is unique, and the exact semantics of the identifier, are for local definition. For a person, this might be an institution-wide payroll number.

Donc ça gratouille peut-être la RFC et son « WITH ATTRIBUTE-SYNTAX caseIgnoreStringSyntax », mais j'ai le droit. Na.