Dur Comme Faire

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

Grawifiti

Voici la liste des réseaux wifi disponibles à la gare de Nord de Paris.

L'avenir de la pollution urbaine est-il au grawifiti ?

jeudi 31 mai 2007 à 19h42 - Nimportenawak 2   0

Immobilier et religion

En ce moment, mon amie et moi visitons des maisons en vue d'un premier achat. Parmi les questions que nous posons systématiquement, se trouve la raison pour laquelle les vendeurs quittent la maison. Le but est de voir si leur explication est sincère ou s'il y a anguille sous roche, particulièrement par rapport au voisinage.

Nous avons entendu des tas de raisons plus ou moins classiques comme une mutation, l'arrivée d'un nouvel enfant ou encore la volonté de faire bâtir. Aujourd'hui nous avons visité une maison, bien située, refaite à neuve 4 ans auparavant. Bref, une belle maison parfaitement dans nos gouts. En revanche, la raison du départ des propriétaires actuels nous a laissé pantois. Ceux-ci sont visiblement des musulmans pratiquants (la femme portait un foulard sur ses cheveux, de multiples extraits du Coran parsemait les meubles) et l'Islam interdirait le crédit avec intérêts. Ils vendent donc une maison qu'ils adorent, de leur propre aveux, pour retourner en location en attendant de pouvoir acheter comptant une petite maison à rénover.

Je trouve ça assez triste de constater comme une religion peut s'immiscer dans la vie de ses gens au point de leur faire prendre des décisions qu'ils n'auraient visiblement jamais pris d'eux-même.

Note : Il n'y a aucun racisme dans mes propos, juste de la compassion et un peu d'incompréhension.

vendredi 25 mai 2007 à 16h59 - Pensées 7   0

Ordre naturel et tableau associatif

Un ordinateur et un homme ne voient pas toujours les choses de la même manière. Les tris notamment réservent des surprises. Prenons un exemple avec PHP.

Soit le tableau associatif suivant où la clé représente un numéro de version et la valeur, le nombre d'installation répertoriée pour celle-ci :

$tableau = array(
  '2.1.1' => 38,
  '1.0.8' => 14,
  '2.1.12' => 53,
  '2.1.6' => 38,
  '1.9.7' => 26,
);

On souhaite le trier selon la version. Pour cela, on peut utiliser la fonction ksort() qui trie un tableau selon la clé. On obtient alors :

array(5) {
  ["1.0.8"] => int(14)
  ["1.9.7"]=> int(26)
  ["2.1.1"] => int(38)
  ["2.1.12"]=> int(53)
  ["2.1.6"]=> int(38)
}

L'ordre semble bon à première vue mais si on regarde de plus près, les version 2.1.12 et 2.1.6 sont inversées. Tout du moins, notre cerveau les aurait triées différemment. La raison est toute simple. PHP constate que les clés sont des chaines de caractères et les trie donc comme telles. Notre cerveau quant à lui va un peu plus loin et comprend qu'on peut scinder cette chaine en 3 blocs et il va ordonner ces blocs et non la chaine elle-même Pour lui, le bon ordre est le suivant :

array(5) {
  ["1.0.8"] => int(14)
  ["1.9.7"]=> int(26)
  ["2.1.1"] => int(38)
  ["2.1.6"]=> int(38)
  ["2.1.12"]=> int(53)
}

On appelle cela l'ordre naturel.Malheureusement pour notre exemple, ce n'est pas la méthode de fonctionnement classique des ordinateurs. Il existe bien en PHP une fonction natsort() de tri par ordre naturel mais elle ne sait trier que par valeur et non par clé. Certains petits malins pourraient être tentés d'utiliser la fonction array_flip(), qui inverse les clés et les valeurs d'un tableau, avant et après le tri pour contourner ce problème mais voici le tableau qu'ils obtiendraient :

array(4) {
  ["1.0.8"]=> int(14)
  ["1.9.7"]=>  int(26)
  ["2.1.6"]=>  int(38)
  ["2.1.12"]=>  int(53)
}

La version 2.1.1 a disparu. La raison est toute simple, en inversant les clés et les valeurs, les versions 2.1.1 et 2.1.6 ont la même clé (38), la seconde version écrase donc la première.

Heureusement avec un peu d'astuce, il est possible de trier ce tableau dans l'ordre naturel sans risquer cet effet de bord en combinant les fonctions uksort() et strnatcmp() ainsi :

uksort($tableau, 'strnatcmp');

On obtient bien :

array(5) {
  ["1.0.8"] => int(14)
  ["1.9.7"]=> int(26)
  ["2.1.1"] => int(38)
  ["2.1.6"]=> int(38)
  ["2.1.12"]=> int(53)
}

La subtilité est que la fonction uksort() demande un callback vers une fonction qui va être chargée de trier les éléments du tableau 2 à 2. Cette fonction de comparaison doit retourner un entier supérieur, égal ou inférieur à zéro, pour, respectivement, indiquer que le premier argument est supérieur, égal ou inférieur au second.

Si généralement on utilise une fonction "maison" avec un callback, il est parfaitement possible d'utiliser une fonction native de PHP. C'est ce qui est fait ici afin de ne pas réinventer la roue et d'optimiser les performances.

mardi 22 mai 2007 à 17h52 - PHP 6   0

Interface d'administration

Les interfaces d'administration des applications web sont souvent tristes à pleurer. Dans le cadre de mon projet-top-secret-du-moment (TM), je cherche à éviter ce syndrome. J'ai déjà quelques idées de ce à quoi ressemblera l'interface mais si vous avez des exemples d'interfaces particulièrement bien ficelées je suis preneur.

lundi 21 mai 2007 à 18h55 - Développement Web 7   0

Ménage de printemps dans le blogroll

Après notre nouveau premier ministre, c'est à mon tour de nommer mes ministres les liens de mon blog roll.

Voici les entrants :

  • L'asinerie : le blog de l'Âne Gourmet, un sympathique compagnon aussi courageux que gourmand
  • Dieu : un blog extrêmement drôle, une sorte de présipauté de Groland version divine
  • Frédéric de Villamil .com : que dire à part que Frédéric écrit d'excellents billets ?
  • Margaritas Ante Porcos : le blog personnel de Patrice, créateur de La Fraise, devenu millionnaire expatrié au soleil
  • Nico Shark : toute ressemblance avec un Président de la République française récemment élu serait purement fortuite
  • William L. : le blog d'un ami qui est parti faire le tour de l'Amérique du sud

Et les sortants :

  • Blog Webatou : que Monique me pardonne mais je souhaite recentrer mon blog roll sur mon coeur d'activité. Tes nombreux admirateurs compenseront largement cette légère perte. ;)
  • Joel on Software : parce qu'il faut bien faire des choix et qu'au fond je trouve que le ratio signal/bruit est trop faible
  • Lafraise.com : ce que j'aimais sur le blog de La Fraise s'était plus la plume de Patrice que l'annonce des nouveaux t-shirts disponibles
  • Le Blog de Guillaume : pour le coup ce n'est pas un choix de ma part. Le blog de Guillaume est en rade depuis plusieurs mois et mes sources m'indique qu'il ne reviendra pas du paradis des blogs de si tôt.
  • MonsieurN : encore un dilemme. D'un côté Nicolas est très sympathique mais de l'autre il ne parle à présent quasiment que de Ruby On Rails que je n'utilise pas du tout. Voilà malheureusement une autre victime du recentrage de ce blog roll.

Enfin pour les curieux, ce blog roll ne reflète pas de manière exhaustive les sites présents dans mon agrégateur. Il s'agit plutôt des blogs que je considère comme la crème de ceux que je lis régulièrement.

dimanche 20 mai 2007 à 15h25 - Vie du blog 3   0

Un pas en avant

C'est non sans une certaine fierté que je peux annoncer officiellement que je vais enseigner le PHP en licence pro Web Développeur à partir de la rentrée 2008.

mardi 15 mai 2007 à 11h03 - PHP 4   0

De l'importance de lire la (bonne) documentation

Ma société, accueille en ce moment 2 stagiaires. L'un deux a de grosses lacunes en programmation. C'est un autre aspect de son profil qui m'intéressait quand je l'ai choisi mais l'accomplissement de sa tâche nécessite une bonne dose de programmation. Ce garçon, fort sympathique au demeurant, manque énormément d'autonomie et de méthode de travail. Je passe mon temps à lui dire de lire la documentation.

Il n'est malheureusement pas le premier que je vois préférer des tutoriaux plus ou moins mal ficelés mais rédigés dans la langue de Molière Lorie à la documentation officielle pourtant forcément plus complète et plus à jour mais en anglais. L'un de mes professeurs disait qu'un informaticien ne parlant pas anglais est handicapé. Je partage totalement ce point de vue. Quand on voit la différence tant en quantité qu'en qualité des informations disponibles en français et en anglais, cela est une évidence.

À force, mon stagiaire a tout de même fini par prendre l'habitude de regarder la documentation pour éviter de se prendre un RTFM bien senti suite à une question saugrenue. Cette après-midi, il devait réaliser une requête SQL un peu tordue. Je précise que nous utilisons exclusivement MySQL comme SGBD. Ne réussissant pas trouver de réponse à son problème dans la documentation, il sollicite mon aide. Surpris par ce qu'il me dit y avoir lu, je vérifie la page qu'il consulte. Il regardait la documentation de PostgreSQL ! Voyant ma surprise, il me balbutie que ce n'est pas exactement la bonne documentation mais que ça doit fonctionner pareil ... en gros.

lundi 14 mai 2007 à 17h19 - Développement Web 16   0

Une révision s'impose

Hier soir, j'ai suivi le débat télévisé entre Ségolène Royal et Nicolas Sarkozy. Je ne reviendrai pas sur leurs prestations mais sur un chiffre qui m'a choqué.

S'agissant de l'énergie nucléaire Ségolène Royal a demandé à Nicolas Sarkozy le pourcentage que celle-ci représentait dans la production française d'électricité. Visiblement peu sûr de lui, le candidat de l'UMP a annoncé sans conviction un chiffre de 50%. Madame Royal l'a alors taclé avec jubilation, affirmant que ce chiffre était de 17%.

Interloqué, j'ai vérifié car de mémoire il me semblait que cela tournait autour de 80%. Vérification faite, j'étais le plus proche de la réalité qui est de 78%. Je trouve cela assez incroyable de se planter à ce point sur un secteur clé pour l'indépendance de la France.

Pour être juste, je dois souligner que les 50% avancés par Nicolas Sarkozy semblaient vraiment être du pifomètre peu risqué. Par ailleurs, il a affirmé que l'EPR était un réacteur de 4e génération alors qu'il s'agit de la 3e génération comme l'a souligné Madame Royal.

jeudi 3 mai 2007 à 09h11 - Nimportenawak 7   0

XHTML - CSS - DotClear - Technorati

Les billets de ce blog sont sous licence Creative Commons