vendredi, 29 septembre 2006

Les algorithmes de recherche binaire et par fusion sont bogués

C'est la constatation alarmante qu'a fait Joshua Bloch, Software développeur chez Google, dans son article Nearly All Binary Searches and Mergesorts are Broken (Presque tous les algorithme de recherche binaire et par fusion sont bogués) et il en explique précisément la cause.

Il cite en exemple la méthode binarySearch de la librairie java.util.Arrays, qu'il a lui même écrit avant de quitter Sun.

La ligne contenant ce bug est la suivante :

int mid = (low + high) / 2;


Le bug en question est un "bête" integer overflow qui peut apparaître si on manipule un tableau de l'ordre de plus de 2^30 éléments.

Le plus dérangeant dans cette histoire banale est que ce genre de bug, pourtant trouvé dans une routine de peu de lignes, est passé inaperçu pendant près de 60 ans.

Cet exemple démontre très précisément qu'il est impossible d'écrire du code sans bugs, et que donc les prochaines améliorations seront plus d'en limiter les conséquences que de les éradiquer.

mardi, 26 septembre 2006

Gentoo avec Apache2 + PHP5 + Suexec + FastCGI (dynamic)

FastCGI est un concept tout à fait intéressant qui permet, dans le cadre de PHP, d'allier rapidité et sécurité. Il permet conjointement d'avoir la rapidité de mod_php avec la sécurité de PHP/CGI, notemment en terme de droits d'utilisateurs.
Je ne vais pas vous refaire une série de benchmark comme c'est le cas sur beaucoup d'autre site, mais je viens de réaliser un article explicant en détail l'installation, la configuration et surtout les problèmes qu'on peut rencontrer avec la mise en place PHP, FastCGI dynamique et Suexec :

Pourquoi les mots "Chers Concitoyens"

Je ne souhaite pas vraiment m'étendre sur des discours politiques car ceux-ci ne sont pas ma tasse de thé, et encore moins dans l'esprit que je compte tenir sur mon blog.

Mais au lendemain des votations fédérales sur le durcissement du droit d'asile, le préfix "con" du terme concitoyens retrouve tout son sens.

La question est donc lancée : « Mais qu’avez-vous donc fait ? ». Seul l’avenir nous le dira...

jeudi, 21 septembre 2006

Mes cours de Master : terminés

Alors que mon travail de diplôme est déjà bien entamé, je voulais juste m'arrêter un peu sur mes résultats du Master à l'EPFL.

Le détail des notes peut être trouvé sur mon site : Mes notes de Master, et il y a 2 choses importantes à relever : 5.57 de moyenne (sur 6) sur l'année, et aucune note en dessous de 5.

Ce que j'aimerais montrer par là, ce n'est pas combien je suis fort et tout, loin de moi cette idée narcissique, mais plutôt qu'avec de la motivation et de la persévérance, on arrive à nos fins (et en passant faire un clin d'oeil à certains détracteurs du redoublement dans les universités, mais une réponse plus complète viendra peut-être dans un autre billet, intitulé quelque chose comme "L'apprentissage par l'échec").

La motivation est une capacité merveilleuse dont nous a dotés mère Nature, grâce à laquelle on peut bouger des montagnes. La motivation donne des ailes, décuple les forces, mais ne serait qu'un feu de paille si la persévérance ne prenait pas la relève. La persévérance, elle, est plutôt une discipline de vie, une force mentale qui, si elle est utilisée à outrance, se transforme rapidement en obstination.

J'ai appris, après deux échecs, à dompter ma motivation, puis j'ai cultivé ma persévérance pour finalement arriver là ou j'en suis aujourd'hui, en train de faire mon travail de diplôme dans le groupe Kudelski. Et je suis convaincu que refaire la deuxième année était pour moi la meilleure chose, tant cette année est importante sur le plan théorique. Finir une branche avec juste la moyenne, c'est suffisant, mais à mes yeux actuels ça n'est pas assez pour prétendre avoir compris les finesses de la matière et pouvoir tisser des liens avec d'autres branches. J'ai réussi à le faire grâce au travail, et ça se ressent à beaucoup de niveaux.

Le travail n'est pas une source de frustration, bien au contraire. Et la recette en est bien simple :

  • Immergez-vous dans un projet,
  • Adoptez un état d'esprit positif et la motivation grandira d'elle-même,
  • Fixez-vous des objectifs à court et moyen terme pour favoriser la persévérance.

mercredi, 20 septembre 2006

Système de réécriture d'URL (URL Rewriting)

Les systèmes de réécriture d'URL posent rapidement des problèmes de scalabilité pour un site générant un trafic respectable (genre dès 1000 visiteurs uniques par jour). Je l'ai déjà exprimé dans un précédent article : Mambo 404 SEF, et souhaite maintenant apporter un design de solution.

Une technique relativement simple pour palier à ce problème de VARCHAR non- ou mal -indexable est d'introduire une variable aléatoire dans l'URL, variable à partir de laquelle la vrai URL sera chargée : www.domaine.com/14523623423/news/ma_premiere_news.html
L'important dans cet URL est donc la variable 14523623423, alors que ce qui se situe après n'a aucune importance et peut être modifié à souhait (on remarque aussi ici que cette technique permet rapidement de mettre un place de l'URL flooding, utilisants des URLs de toute sorte pour pointer sur la même page. Attention à ne pas en abuser, car on risque de voir son site se faire bannir des moteurs de recherche).

La requête SQL devient donc

SELECT realurl FROM redirections WHERE urlid = 14523623423

Mieux ça non ? Le problème évoqué ici est en fait global à tout design de base de données : les champs utilisés sans intervention d'un utilisateur dans une condition devraient toujours être de type entier ou un dérivé. Car même si les chaines de caractères sont relativement rapide lors des tests, la réaction à haute charge est très souvent mauvaise...

samedi, 16 septembre 2006

La vie d'un Troll

Un Troll, en informatique, est une polémique acharnée et sans fin (souvent sur un forum ou une mailing liste). La nature du Troll n'est jamais constructive , et, comme le disait Tristan Nitot, le Troll ne grossit que si on le nourrit. Si on l'ignore il se meurt de lui-même.

Le nom Troll vient d'analogies aux mondes fantatstiques, notamment Donjon et Dragon dans lequel les Trolls ont une grande capacité de régénération.

Si vous voyez un Troll, partez en courant. Au mieux il ne vous fera que perdre du temps...

Explication du Troll en DB.

vendredi, 15 septembre 2006

Les quinze jours décisifs des cours à option

Texte à paraître dans la brochure de valorisation du Collège des Humanités de l'EPFL

Le processus de décision qui conduit les étudiants à choisir tel ou tel cours à option, au terme des deux semaines qui précèdent l’inscription définitive, est loin d’être aussi anecdotique qu’il n’y paraît. En effet, de tels libres choix ont souvent une influence décisive sur l’orientation future d’une carrière.

Un sérieux instrument statistique à l’appui, les six auteurs de l’étude ont interpellé leurs camarades sur la perception de leurs propres compétences face au cours envisagé, l’intérêt suscité, l’utilité estimée, les qualités du professeur, la difficulté du cours, le degré d’autonomie et les liens sociaux entretenus entre étudiants. 62 personnes, soit 43 hommes et 19 femmes, ont répondu. Cette enquête devrait éclairer les processus de décision mais aussi offrir aux enseignants un outil de réflexion sur les moyens à leur disposition pour stimuler la motivation intrinsèque des étudiants, sans laquelle il n’y a pas d’apprentissage optimal.

La première bonne nouvelle qui se dégage des résultats obtenus repose sur le fait que les étudiants opèrent majoritairement des choix qui épousent au mieux leur plaisir et leur intérêt. Les chiffres sont éloquents : la volonté de maîtriser un nouveau domaine qui séduit, donc de relever un nouveau défi, passe nettement avant des objectifs de performance liés à des critères de type utilitaire.

Mais l’un des points les plus intéressants que l’étude met au jour concerne les étudiants dits « faiblement auto-efficaces », c’est-à-dire ceux qui doutent de leur capacité à maîtriser une branche. Face à ce « public réticent », les professeurs sont capables de renverser la vapeur et de convaincre durant ces deux semaines cruciales, mais à trois conditions : qu’ils clarifient les buts du cours, favorisent le comportement autonome de leurs étudiants et privilégient l’écoute de leurs besoins personnels. C’est effectivement autour de ces trois axes que s’articule l’auto-détermination des étudiants, caractérisée par le goût du risque, une ouverture plus grande à l’apprentissage, et donc une motivation plus élevée.

Tiré de : L’influence des deux premières semaines de cours, avant l’inscription définitive, sur la motivation autonome des étudiants à choisir un cours et le rôle de l’auto-efficacité dans ce choix

Auteurs : Loana Chatelain,Benoît Perroud, étudiant en informatique
Laura Derksen, Sarah Emery, François-Xavier Meuwly, étudiants en mathématiques
Guillaume Schmit, étudiant en microtechnique

Sous la direction de Fabrizio Butera et Régis Scheidegger, faculté des sciences sociales et politiques, Université de Lausanne

Comment gagner à l'Euromillion

Ou plutôt : Quels numéros jouer à la loterie ?

Si j'étais un joueur de loterie assidu, mon principal problème serait de trouver chaque semaine des numéros différents pour compléter mon année de naissance et celle de ma copine. Cette semaine, je serais tenté de jouer des numéros comme le 2, 4, 21 ou 37, car le Pape est mort le 2 du 4 à 21h37.

Mais l'idée d'utiliser random.org m'est apparue en écrivant un autre article (Un espace d'administration par email).

Quoi de mieux que de se faire générer ses numéros par un vrai générateur aléatoire ?

Pour l'Euromillion par exemple, essayez :

Bon jeu et bonne chance !

Réflexion sur le comportement des gens sur la route

Un accident sur l'autoroute provoque deux bouchons. C'est du moins l'expérience que j'ai vécu hier en rentrant du travail.

Oui j'ai bien dit deux bouchons, un naturellement du côté où la circulation est perturbée, mais c'est là que la problématique se pose, il provoque aussi un bouchon en sens inverse...

La raison en est aussi simple que malheureuse, c'est que les gens, dans leur immense indélicatesse, freinent pour regarder ce qu'il s'est passé (en l'occurrence une voiture carbonisée sur le toit, vu qu'on roulait au pas j'ai aussi tourné la tête), et pour se dire :

Oh il n'a pas de chance celui-là, mais il devait certainement mal conduire, ce qui n'est pas mon cas.


Mais ils ne se sont pas rendu compte que ceux de derrière ont dû planter sur les freins afin de ne pas les emboutir, et qu'en l'état de surcharge de trafic actuel, le moindre ralentissement peut devenir un danger redoutable.

Mais tout ce complique quand d'autres personnes, encore moins intéressés par le malheureux sort de conducteur de la voiture accidentée et ses éventuels passagers, commence à dépasser par la droit. Et je ne ferai aucun commentaire sur les voitures, de taille inversement proportionnelle à leur capacités sociales, dans lesquelles ces gens roulent.

En l'espace de quelques secondes, c'est donc un tableau tout à fait représentatif de notre société qui s'est peint de lui-même sur une autoroute...

jeudi, 14 septembre 2006

Envoyer un mail pour créer automatiquement un message

Voilà une petite fonction intégrée au sein du site qui va faire au moins un heureux. Car mes idées de billets surviennent forcément à des moments où je n'ai pas de connexion internet. Et comme il est impossible de rédiger un billet hors-ligne avec blogger (Quelqu'un me souffle que des plugins ont été fait pour palier à ce problème), l'envoie de mails est pour moi une facilité appréciée.

Pourquoi un blog sur blogger.com et pas sur noisette.ch ?

La question est simple : avec tous les moyens que j'ai à disposition pour héberger mon propre blog, pourquoi est-ce que je l'héberge sur blogger.com ?

La réponse ne l'est certes un peu moins, mais voici quelques points important de ma décision :

  • L'indexation du blog est plus rapide et meilleure sur blogger.com, et donc mon Wiki de 2 noisettes en bénéficiera des retombées
  • La manipulation des données, notamment des dates est impossible sur blogger.com, les articles ici postés témoignent d'une plus grande crédibilité
  • La curiosité de tester ce qui pousse autant de personne de se tourner vers blogger.com
J'espère simplement que ce choix nous (les lecteurs de mes tickets intéressants et moi-même) sera effectivement profitable, et dans le cas contraire un remaniement de mon blog est toujours possible.

Après le pull, le blog

Ca fait maintenant plus d'une année que j'ai acheté un pull blogger.com, alors je fête ça en me créant un vrai blog. Ca risque de déplaire à ma maman qui n'est pas pour ce genre de pratique, mais quand je lui aurai démontré le bienfondé des blogs, peut-être approuvera-t-elle au moins celui-ci...