jeudi 10 avril 2008

Threads perl avec Gentoo - Beware !

Je viens de perdre deux bonnes heures avec un problème bien tordu.

A PolyLAN X, il semblerait que la cause du gros foirage de l'authentification soit dû non pas au dimensionnement du nombre de transactions autorisé, comme je l'ai d'abord pensé, mais au fait que l'interpréteur Perl n'était pas threadé, et que par conséquent un seul login simultané pouvait avoir lieu pour le serveur radius.

Après un "echo dev-lang/perl ithreads >>/etc/portage/package.use ; emerge perl", radiusd s'est retrouvé incapable de démarrer, se plaignant d'un symbole manquant dans le module rlm_perl.

Ré-emerger freeradius n'a bien entendu rien donné.

Le problème était qu'a la compilation, freeradius à utilisé les headers de perl pour compiler son module, mais au lancement, il se liait dynamiquement à la libperl. Sous Gentoo, l'interpréteur perl et la libperl sont deux packages séparés, et je n'avais pas réinstallé la libperl.


De manière générale, plein de problèmes de linking sont apparus. Ces problèmes auraient du être résolus par perl-cleaner; malheureusement, si perl threadé et non threadé sont considérées comme des versions différentes, avec des répertoires séparés pour les libs, perl-cleaner les considère comme une seule et même version, et ne déclenche pas la reconstruction par défaut. Il fallait donc utiliser "perl-cleaner allmodules" plutot que "perl-cleaner modules".

dimanche 30 mars 2008

PolyLAN XI, Topologie Réseau

Voici le plan pour la topologie du réseau PolyLAN XI (en admettant que nous recevions bien le 6248 à temps)

Places: 216

Couche Physique :

Au centre, le 6242 en haut du rack. Fifi, Riri, Loulou sur ports 1,2,3.
ports 27-48 trunkés par paires, donc 11 trunks (9 zones joueurs, 2 zones admin)
ports 4-26 pour serveurs de jeu.

Couche Ethernet :

Vlan 1: réseau de production. Vlan par défaut, untagged partout sauf ports 2 et 3
Vlan 10: réseau administratif. Tagged sur tous les trunks et sur port 1 (fifi)
Vlan 20: réseau passerelle vers internet. Untagged sur ports 2 et 3.

Couche IP:

Réseau administratif: 10.0.4.0/24 sur Vlan 10.
Fifi: 10.0.4.10

Réseau passerelle: 10.0.8.0/24 sur Vlan 20.
Core: 10.0.8.1
Adresse de routage flottante: 10.0.8.2
Loulou (primaire): 10.0.8.3
Riri (secours): 10.0.8.2

Réseau production: 10.0.0.0/22 sur Vlan 1
10.0.0.0/24 : Services réseau
10.0.0.1: Core
10.0.0.2: Fifi
10.0.1.0/24 : Serveurs & Admins
10.0.2.0/23 : Joueurs


Pfew.... un vrai jeu d'enfant, comparé à PolyLAN X :D

C'est pas demain que j'aurai ma license...

... Vu que la personne qui s'occupe de ça a l'OFCOM a pris des vacances. Du coup, va falloir attendre encore un peu... frustration frustration

mardi 11 mars 2008

Diplôme, HAM-Radio, LACAL, Polylan

Ca y est, je suis "Officiellement autorisé à porté le titre d'ingénieur en systèmes de communication", avec le petit papier qui va bien. Je ne suis donc plus un bon a rien d'étudiant, yesss !

Petite geulante contre l'administration de l'EPFL: c'est bien d'avoir une gestion automatique des droits, avec un bel annuaire LDAP et tout. Mais quand le lendemain de la réception de la jolie enveloppe, on se retrouve avec tous les accès physiques et une bonne partie des accès éléctroniques coupés, ça fait un peu l'effet d'un bon coup de pied au cul... et c'est pas franchement pratique pour finaliser les projets encore en cours.

Mercredi, j'ai passé l'examen de radio-amateur CEPT. J'attends de recevoir la concession. En attendant, j'ai fait l'acquisition d'un IC-271E en excellent état pour le 145MHz, et une antenne GP qui va avec. J'ai posé l'antenne sur le balcon du toit d'INJ en attendant de pouvoir faire mon premier QSO légal. J'ai aussi une superbe antenne magnétique pour la HF, qui venait avec un tuner automatique et SWR-mètre intégré. Malheureusement je n'ai pas (encore) de transceiver HF.

Je suis sur le point d'être engagé par le LACAL avec pour mission officielle de mettre en place le cluster de playstations. Nous avons gardé le front-end que j'avais configuré il y a trois mois, mis au point un schéma d'allocation d'adresses et de noms. Dans un premier temps, il n'y aura pas de scheduler, les noeuds seront directement accessibles en SSH depuis le front-end. Nous allons probablement acheter une meilleure machine pour le front-end, et reconvertir l'ancien en station de gestion réseau. Aujourd'hui, Dag Arne a enfin obtenu les droits administratifs de resp. technique du labo, ce qui nous à permis d'obtenir une adresse fixe pour ce foutu front-end. L'objectif est de pouvoir lancer les premiers calculs à la fin de la semaine prochaine.

PolyLAN XI aura lieu le w-end du 12-13 Avril, au hall du SG à l'EPFL. Ceci risque d'être ma dernière ou avant-dernière édition :( Grâce au soutien technique de Dell, nous allons pouvoir acquérir à prix préférentiel un superbe PC6248 tout neuf, ce qui couvrira nos besoins pour cette édition en terme d'interconnexions Gigabit. La performance niveau ARP devrait rester bonne puisque nous gardons un routeur matériel, et il n'y aura plus de trunk limitant au milieu qui coupe la salle en deux.

vendredi 1 février 2008

Yatta !

Ca y est, j'ai rendu mon mémoire de master !

La défense aura lieu le 18 février. D'ici la, un peu de temps pour me reposer !

Accessoirement, comme une bonne nouvelle ne vient jamais seule: le papier dont je suis co-auteur (Parity-regular Steinhaus graphs) a été accepté par l'AMS et sera publié dans leur prochaine édition ! (détails ici)

mercredi 16 janvier 2008

EPFL::Restaurant

Voici mon dernier gadget Perl, le module EPFL::Restaurant. Il permet d'accéder directement aux menus hebdomadaires sur http://restauration.epfl.ch. La doc POD explique sommairement son utilisation.

Dépendances: LWP, HTML::TableExtract

vendredi 11 janvier 2008

Sus aux "programmeurs d'entreprise" !

Suivant une discussion plus ou moins aléatoire sur #scala/Freenode, j'ai suivi par hasard ce rant, qui m'a conduit à cet autre rant, sans compter celui-là. Amusant, suivant de près ce dernier lancé il y a peu de temps sur Slashdot.

Je n'ai absolument aucune compétence en Scala, n'ayant jamais rien programmé d'utile avec. Je n'en ai pas encore eu l'opportunité. Je n'ai donc pas d'intérêts particuliers à défendre Scala.

En revanche, je trouve absolument effarant et dramatique l'avis de ces prétendus programmeurs
, et reste béat devant l'absurdité et l'incohérence de leur discours. Par ou commencer ?

Le plus incroyable reste certainement celui qui prétend que les évolutions sophistiquées du langage Java le condamnent, que les génériques étaient une erreur monumentale, les casts étant un mécanisme bien plus naturel, et qu'il est hors de question d'y ajouter des fermetures, encore moins des horreurs fonctionnelles; que ces solutions sont bonnes uniquement pour des chercheurs isolés dans leur tour d'ivoire, mais que les "vrais programmeurs" qui travaillent sur des applications "business" n'en ont pas besoin.

Mais quelle sorte de programmeur prendrait donc une telle position ?? Ces gens seraient nés quelques dizaines d'années plus tôt, ils auraient été du lot qui défendait fermement le COBOL contre tous ces langages modernes bizarres et sans intérêts comme le C ou le Pascal... la récursion ? la programmation structurée ? baaah, ca sert a rien, c'est inutile, et le Lisp on en parle même pas..

Mon premier langage de programmation fut le Basic. Avec mes premiers pas d'autodidacte, j'ai produit quantité de code bancal et inélégant. Et au fur et a mesure que ce code expérimental boiteux s'accumulait, je commençais à identifier des problèmes récurrents.

J'ai découvert le Pascal, et la programmation structurée. Me suis-je dit "beeeeh, c'est compliqué, les gosub ca suffit, et la récursion ca s'émule avec des boucles quoi qu'on dise" ? certes non! Enfin, l'assurance d'un scope restreint, la fin de l'erreur de typo a la ligne 1642 qui plante le programme à la ligne 492...

J'ai découvert les pointeurs en C. Me suis-je dit: "beeeeh, c'est compliqué, c'est dur a comprendre, de toutes façons je peux tout faire avec des tableaux et des indices" ? certes non! enfin des noms cohérents pour des alternatives hétérogènes !

J'ai découvert Perl, premier contact avec les fermetures. Je ne savais même pas ce qu'était une fermeture. Pourtant, c'est grâce aux fermetures qu'une bonne partie du code perl faisant appel à des subs anonymes fonctionne correctement après un premier jet...

J'ai découvert Java. Après avoir travaillé sur plusieurs programmes relativement sophistiqués, j'ai mordu la poussière sur des erreurs de typage dynamique, je haïssais le système de types de Java et en particulier la technique hideuse du cast systèmatique pour utiliser une collection. Avec Java 5, j'ai découvert les génériques. Me suis-je dit: "beeeeh, les casts sont bien plus faciles, de toutes facons ces types sont juste un encombrement inutile ?" certes non ! les génériques me donnaient la garantie de l'absence d'erreurs de type dans mon programme, au prix de quelques modifications très intuitives.

J'ai découvert Haskell, le premier langage fonctionnel que j'ai utilisé sérieusement. Me suis-je dit: "baaah, les fonctions d'ordre supérieur, c'est inutile, c'est un passe-temps d'académique inutile dans la vraie vie ?" certes non ! j'abusais déja des map, grep et sort en Perl, et quel plaisir de pouvoir utiliser des callbacks sans définir une centaine de classes internes de 3 lignes, comme il est nécessaire de faire en java !

Que dire maintenant, des deux dirigeants d'AdaCore, qui se plaignent que l'enseignement de Java comme langage primaire dans les universités a été une terrible décision. Java "encouragerait les programmeurs a chercher des solutions toutes faites dans des librairies pré-existantes, plutôt que de développer ses propres routines plus performantes."

HELLOOO ? il me semble que l'immense majorité de la communauté s'accorde à dire que la performance était le problème de la dernière décennie; la loi de Moore n'a de loin pas l'air de s'essoufler, et les évolutions récentes des langages de programmation se font toutes dans la même direction: améliorer la ré-usabilité du code. Quel idiot choisirait de pénaliser un programmeur qui préfère chercher une solution standard, éprouvée, répandue, et optimisée par sélection naturelle, plutôt que de réinventer une roue octogonale chaque fois que l'occasion le permet ?

Ces gens m'énervent. ça m'énerve. Rhaaaah