Kamelot Blog

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

jeudi 29 janvier 2009

jeu
29
jan '09

Sounds Of The Universe - Depeche Mode

Liste des titres de ‘Sounds Of The Universe’

Sortie le 20 avril prochain; un single (titre 3) le 6 avril.

  1. In Chains
  2. Hole To Feed
  3. Wrong
  4. Fragile Tension
  5. Little Soul
  6. In Sympathy
  7. Peace
  8. Come Back
  9. Spacewalker
  10. Perfect
  11. Miles Away / The Truth Is
  12. Jezebel
  13. Corrupt

mardi 27 janvier 2009

mar
27
jan '09

Où est Charlie ?

http://gigapan.org/viewGigapanFullscreen.php?auth=033ef14483ee899496648c2b4b06233c

Via David Bergman

lundi 26 janvier 2009

lun
26
jan '09

Histoire d'assurance Belge (suite et pas fin)

Touring n'a pas fini de m'en faire baver , je racontais le début ici, voici la suite.

Mardi

Assurance

Je faxe leur papier et je prie. On me promet une réponse Jeudi ou Vendredi

Jeudi

rien

Vendredi

rien

Lundi

toujours rien.

Un coup de fil, Touring prétend que je n'ai pas signé le document de demande d'immatriculation qu'ils ne peuvent donc rien faire.

Visiblement ils n'ont pas envie de bosser, puisque si vraiment il manquait un élément le 20... pourquoi apprend-t-on le 26 (et encore c'est parce qu'on a décidé d'appeler) pour le réclamer. En plus l'excuse est bien bidon puisque j'ai l'accusé d'expédition avec les originaux expédiés et j'ai pu vérifier mon envoi et constater que le dit document et bien signé.

Je refaxe tout (à l'identique) et je téléphone.

20 minutes de coups de fil !

4 interlocuteurs, à qui il faut TOUT répéter, même la référence client. (ca communique bien)

On me dit que ce que j'ai faxé est ok (On ne saura jamais pourquoi le même envoi n'était pas bon une semaine avant, ... )

Bilan actuel :

Economie sur le contrat : 50euro, 2 après midi de travail perdus, 100km parcouru pour des prunes, 10 jours de retard sur le véhicule.

jeudi 22 janvier 2009

jeu
22
jan '09

PEAR :: Authentication

Première étape de mon passage en revue des classes de PEAR. Les Package PEAR pour l'Authentification

Stables

  • Auth : Création d'un système d'authentification. PHP License
  • Auth_HTTP Authentification http PHP License nécessite Auth_HTTP
  • Auth_PrefManager Classe de gestion de "préférences" PHP License
  • Auth_RADIUS Classes Wrapper pour le packege PECL RADIUS BSD
  • Auth_SASL Abstraction d'une série de mécanisme de réponse SASL BSD

Beta

  • LiveUser Boite à outil de gestion de comptes utilisateur et permissions LGPL
  • LiveUser_Admin Boite à outil pour l'administration des comptes gérés par LiveUser LGPL

Alpha

  • Auth_PrefManager2 Nouvelle version en préparation de la classe de gestion de "préférences" PHP License

Un peu plus sur le sujet

Auth

LiveUser

mercredi 21 janvier 2009

mer
21
jan '09

50 outils bien pratiques pour PHP

Smashing Magazine publie une liste de 50 tools utiles pour le développement PHP.

On y trouve des grands classiques, mais avec 50 il y en a peut-être que vous ne connaissez pas encore.

C'est "50 Extremely Useful PHP Tools"

Dans le même style
Personnellement

J'utilise

  • SimpleTest
  • phpDocumentor
  • GeSHi - Generic Syntax Highlighter
  • phpLangEditor <- Yeeeeeeeeahhh c'est de Sébastien Piraux, développeur de claroline
  • Zend Framework
  • phpMyAdmin
  • Smarty
  • PHPEclipse
  • Zend Studio
  • Aptana PHP
  • PhpED
  • PDT

mardi 20 janvier 2009

mar
20
jan '09

Facebook | Pour le sous-titrage plutôt que le doublage à la RTBF et sur RTL-TVI

Afin que l'on sous-titre les interventions en néerlandais et en anglais, plutôt que de recourir au doublage systématique lors des émissions d'information de RTL-TVI et de la RTBF.

POUR L'ABANDON DE CETTE BEQUILLE INTELLECTUELLE QUE CONSTITUE LE DOUBLAGE.

Cela favorisera l'apprentissage des langues, et permettra d'entendre la véritable voix des intervenants.

lundi 19 janvier 2009

lun
19
jan '09

Histoire d'assurance Belge ?

Ma voiture est arrivée, youpie !!!!

3 points à régler : plaques, assurance, banque.

Vendredi :

Banque

Fermée à 18h, normal, j'attends lundi.

Plaques

je vais chercher la feuille de demande d'immatriculation chez le concessionnaire

"Allez à la DIV avec ca pour avoir votre plaque, pensez à faire un double de la plaque"

Assurance

Coup de fil à Touring où on me dit ne passez pas par nous, passez par internet pour avoir vos 50€ de réduction.

Je fais mon offre via internet, j'imprime je complète. Sur 3 formulaires on me demande mon n° de plaque et la date de mise en circulation...

Ok, je demande pour être absent du boulot lundi après midi pour aller à la DIV, je prépare mes papiers....

Lundi

Banque

- un coup de fil, 2 minutes, l'affaire est réglée.

Plaques

Lundi après midi je quitte le boulot je me rend à la DIV. ... On me demande la carte de demande d'immatriculation, ma carte d'identité et ... ma vignette d'assurance. Ca commence bien.

Assurance

Je veux re-téléphoner à Touring pour demander plus d'explication. Leur n° magique est en dérangement (visiblement impossible de téléphoner via Proximus, via fixe ca marche).

Je me rend à l'agence Touring à Mons. On regarde mes documents. Là on me dit que je peux faxer, que ca se fera peut-être!!! par internet., mais peut-être pas. Que si je le fait sur place je n'ai pas droit aux -50€.

Bref, j'ai perdu une demi-journée.

Je rentre chez moi je re téléphone à Touring, via poste fixe ca marche.

On me redit Si vous le faite par téléphone vous n'avez pas les -50€ de promotion,mais il rajoute passez dans une agence !!! B*rdel j'en viens.

Je dis non, j'en viens, on n'a pas la réduction par agence non plus, je vais le faire par fax comme expliqué dans le document, mais sans inscrire le numéro de plaque, le truc dans un cadre rouge pour bien dire "n'oubliez pas d'indiquer votre n° de plaque que vous n'avez pas encore tant que vous n'aurez pas cette assurance pour laquelle on vous demande ce n° de plaque".

Je demande ce que je dois faxer, en plus de leurs formulaires

Là on me dit de faxer

  • Les formulaires, ok
  • une copie de la carte de demande d'immatriculation, ok, mais d'envoyer aussi l'original en recommandé parce que la demande d'immatriculation par internet ca ne marche pas toujours,
  • copie la facture, ??? purée j'ai pas la facture, je dois aller chercher la voiture pour l'avoir. Pour avoir ma voiture je dois avoir une plaque pour avoir ma plaque je dois avoir une assurance.

Après avoir répété 3 fois qu'il y avait un problème dans son explication sur ce dernier point, il me dit que la facture, elle peut venir après (alors pourquoi il me dit de l'envoyer avec le reste . )

Au moins une bonne nouvelle dans le tas, je demande pour la domiciliation, et la on me dit qu'en payant par mois au lieu de payer à l'année, on a pas de surcout d'étalement.

Demain, Mardi

Assurance

Je faxe leur papier et je prie.

Plaque

Elle devrait arriver par la poste

Banque

Rien à faire avant le jour J.

La suite

samedi 17 janvier 2009

sam
17
jan '09

Delcampe.net: Comment gérer une communauté de 300.000 membres répartie dans onze pays. Un interview de Entreprise Globale

Jean-Yves Huwart, journaliste économique, blogueur, animateur de débats, orateur et auteur de livres est venu pour Entreprise Globale interviewer Sébastien Delcampe. Ce dernier est le créateur du site et patron de la Société pour laquelle je travaille.

Entreprise Globale.biz, qu’est ce que c’est ?

Entreprise Globale est un site d’information et de discussion sur les bouleversements profonds qui modifient aujourd’hui le paysage entrepreneurial et les relations entre les acteurs économiques. Sa philosophie est celle d’un média social, résolument tournée vers l’esprit participatif du web 2.0.

Entreprise Globale est basé à Bruxelles/Louvain-la-Neuve, Belgique, Europe.

L'article et l'interview

Delcampe.net: Comment gérer une communauté de 300.000 membres répartie dans onze pays : Entreprise Globale

Entreprise Globale aussi un think tank en cours de constiution, fédérant plusieurs expertises dans les domaines clés de l’économie de l’innovation et de la collaboration.

vendredi 16 janvier 2009

ven
16
jan '09

Refactoring : renommer des fonctions

Première astuce à propos des Refactoring en "transistion".

Le renommage des fonctions et variables est une tâche courante de refactoring.

Voici une technique douce quand on ne peut être sur de renommer partout d'un coup. (Il arrive qu'un search and replace puisse causer des "dégâts", qu'il faille vérifier au cas par cas.

Je l'ai fortement utilisée pour la transformation qui effectuaient un affichage et que je voulais transformer en return.

Typiquement

<?php 
 
/**
 *
 * affiche la chaine  à propos de foo
 *
 * @return true;
 */
 
function print_foo()
{
 
   echo 'foo';
   return true; //<- souvent manquant ceci dit
}
 
// devient 
 
/** 
 * construit la chaîne  à propos de foo
 * 
 * @return string chaîne  à propos de foo
 *
 */
function getHtml_foo()
{
   $html = 'foo';
   return $html; 
}
?>

Le problème rencontré c'est tout ces print_foo() qui trainent dans le code.

Généralement je laisse les deux fonctions, très proches dans le fichier.

La nouvelle fonction fait le boulot, l'ancienne demande à la nouvelle de sous-traiter et logue avec un trigger_error le fait qu'on l'utilise encore.

J'ai ai mis un peu trop dans le trigger, je vous conseille les 4 premiers morceaux

[php]
<?php 

/**
 *
 * Affiche la chaine construite à propos de foo
 *
 * Cette fonction n'est plus à utiliser.
 * utilisez un echo  print_foo();
 * L'utilisation de cette fonction est reprise dans les logs .
 *
 * @deprecated
 * @see  print_foo()
 *
 * @return true;
 */
function print_foo()
{

   $db = debug_backtrace();
   trigger_error(
     'print_foo()! is use '
    . ' funct : ' . $db[1]['function'] . '()'
    . ' file : ' . $db[1]['file'] 
    . ' line : ' . $db[1]['line'] 
 #  . 'PHP_SELF : '.$_SERVER['PHP_SELF']
 #  . date('Y-m-d H:i:s') . "\n"
 #  . $_SERVER['SERVER_ADDR'] . "\n"
 #  . $_SERVER['REQUEST_URI'] . "\n"
   , E_USER_WARNING);

   echo getHtml_foo();
   return true; 
}
?>

Ensuite tous les matins un petit grep sur le log

grep print_foo | cut pour retirer les dates | sort -u

retourne la liste du boulot pour la journée :) vous en attaquez 3 par jour et ça va avancer tout seul.

Si vous travaillez avec une communauté open source, il n'est pas bête de publier cette liste, et de récolter les patches.

Un autre cas d'utilisation : un fichier qui ne devrait plus être utilisé.

Vous pouvez le retirer simplement de votre serveur et subir les foudres s'il est encore appelé quelque part et que son absence provoque un fatal error ou alors lui mettre un espion.

[php]
<?php 

mail( 'christophe@gesche.org'
    , 'ce foutu fichier reste appelé ici !!!!!'
    , 'PHP_SELF : '.$_SERVER['PHP_SELF']
    . "\n"
    . date('Y-m-d H:i:s') . "\n"
    . $_SERVER['SERVER_ADDR'] . "\n"
    . $_SERVER['REQUEST_URI'] . "\n"
    . var_export(debug_backtrace(),1)
    . "\n"
    
    );
    
    trigger_error( 'ce foutu fichier reste appelé ici !!!!!'.$_SERVER['SERVER_ADDR'] .' ' .date('Y-m-d H:i:s'),E_USER_WARNING);
?>

jeudi 15 janvier 2009

jeu
15
jan '09

H-J's RanchHouse

En visite à Zaventem, j'ai été invité à manger au H-J's RanchHouse.

C'était particulièrement bon. Et pour le prix d'un menu de MacQuick, vous avez un vrai burgeur, avec de la vraie viande qui a le vrai goût de la vraie viande....

Franchement, j'espère y retourner.

mardi 13 janvier 2009

mar
13
jan '09

Refactoring tout en douceur avec de la transition ....

Comme je le disait ici, j'avais envie d'écrire à propos d'astuces sur des pratiques qui permettent la transition.

Il y a des transitions de longues durées et d'autre de courtes durées

Longue durée

Une transition de longue durée est une amélioration qui ne peut être faite en un coup. Partout où j'ai travaillé, que ce soit chez delcampe, sur claroline, sur arena51 sur kidcity, the World Scout Shop ... c'est toujours la même raison. Il y a des résidus d'erreurs du passé, pour lesquelles, un jour, il a été prouvé/trouvé une meilleurs façon de faire mais il est inconcevable de s'y atteler en exclusivité et d'arrêter tout le reste le temps d'appliquer cette nouvelle façon de faire.

Généralement ça concerne les performances, la sécurité, les normes d'écriture du code ... Bref au niveau fonctionnel. Des éléments qui changent peu de manière "visible", du coup on diffère. Ou pire, on s'en fait deuil en disant "On ne peut pas se permettre de consacrer tant de temps à cela, ça fonctionne sans".

Dans ce cas, la transition permet de créer les conditions pour faire selon la nouvelle méthode. On se fixe alors une règle du style : dès qu'on touche à un script, on applique la nouvelle façon de faire. Le vieux code lui reste comme il est, on ne va pas risquer de casser quelque chose qui fonctionne et auquel on a pas besoin de toucher.

Courte durée

J'utilise cela parfois pour pouvoir faire des mises à jour sans interruption de service. C'est à dire ordonnancer les remplacements de fichiers pour que à chaque instant le code soit cohérent.

Par exemple, je met à jour une classe et un code qui l'utilise.

  1. -> ajout de la classe dans un fichier ou un nom temporaire
  2. -> remplacement du fichier qui l'exploite pour qu'il utilise la classe temporaire
  3. -> modification de l'ancienne classe ou de l'ancien fichier
  4. -> remplacement du fichier qui exploite la nouvelle classe mais dans son nom officiel

Note pour des applications distribuées c'est moins évident. On doit plutôt voir ça en "upgrade" automatique. On a une transition de courte durée ... "qui reste longtemps" sur le serveur. On fait une mise à jour (release) préparatrice et puis une seconde finalisant la transition.

Durée moyenne ?

On va plutôt dire qu'il y a des inconvénients dans les transition à longue durée qu'il faut éviter et que ca implique donc que la durée ne soit pas trop longue:

  1. ° si ça touche à la sécurité... Même si le problème existe depuis le "début", on va quand même essayer d'y mettre un coup de fouet.
  2. ° si ça touche aux performance ou au règles de codage, il faut tenter de mesurer combien on gagne à le faire, combien on y perd à laisser ca comme ça.
  3. ° éviter le chevauchement des transitions. Si on lance une transition il faut être sûr de son coup et viser une fin de transition avant la probable suivante. Les transitions augmentent le taux de "mélange de pratique" pour un nouveau collaborateur ça crée d'autant plus de méthode de travail à découvrir. Donc on perd du temps et de l'efficacité.

Vous en pensez quoi ?

Mise en garde

Il y a surement aussi des erreurs ou de mauvais choix dans ma façon de faire. C'est aussi pour cela que j'en parle sur ce blog, pour en discuter et les améliorer.

Je parle pas des remarques d'éventuels intégristes ou de jeunes sortis de l'école qui pense que dans l'informatique on passe son temp à créer du neuf.

lundi 12 janvier 2009

lun
12
jan '09

Mysql au Fosdem 2008 le dimanche 8 février.

  • Vladimir Kolesnikov: Practicing DBA's Guide to the PBXT Storage Engine
  • Kris Buytaert: Monitoring MySQL
  • Geert Vanderkelen: MySQL Cluster
  • Roland Bouman: MySQL 5.1 Plugins
  • Kaj Arnö: MySQL, powering and using Social Networks
  • Ewen Fortune: Percona MySQL patches and the XtraDB storage engine
  • Giuseppe Maxia: Boost performance with MySQL 5.1 partitions
  • Jurriaan Persyn: Database Sharding

Le programme détaillé est ici.

Ca se passe donc dans la Room AW1.126!

Moi je vais tenter d'aller voir Kris et Geert du Belgian Mysql User Group. Ainsi que Kaj Arnö et Giuseppe Maxia.

dimanche 11 janvier 2009

dim
11
jan '09

Always On My Mind

J'écoutais un mp3 d'un de mes vieux CD (un CD à ma soeur en fait), nostaligie, un de ces morceaux qui m'avaient donné envie de jouer du synthé..... Petite soirée youTube en vue... voici 10 vidéos glanées.

Lire la suite...

dim
11
jan '09

Il est 16h30 et des patates ....

J'ai donc 36 ans.

dim
11
jan '09

Comment basculer un code PHP en UTF-8

Martine écrit en utf-8Beaucoup trop de tuto ou articles que je lis dans la presse (Programmez, PHPSolution, ...) ou sur le net, présentent le "comment bien faire" en partant de zéro.

Trop peux parlent de "comment transformer". Il y a énormément d'existant qui est là et qui ne peut être simplement mis à la poubelle parce que on a trouvé une meilleures méthode.

Je voulais commencer à écrire dans ce sens des réflexions sur ce qui porte à la pratique de la transition et voilà que Sébastien Piraux, partage un article sur son compte fb.

Passer son code en UTF 8

C'est sur kitpages et ca explique Comment basculer un code PHP en UTF-8

Voici son intro

Si vous souhaitez coder un outil ou un site qui fonctionne avec des caractères ésotériques (Chinois, Arabe, Indien,...), vous devez changer la façon de coder vos caractères et de les transmettre sur le réseau. Cette façon de coder les caractères s'appelle le Charset. Le plus courant par nos latitudes est le charset ISO-8859-1. Il contient les caractères européens.

Pour écrire des textes en chinois, arabe, hébreux, indien, japonais... vous devez utiliser un charset qui permettent de coder tous les caractères de ces langues. Le charset le plus standard pour coder tout ça est UTF-8.

En attendant que je commence à m'y mettre, si vous avez d'autre ressources du style n'hésitez pas à me les faire connaitre.

Ressources signalées :

vendredi 9 janvier 2009

ven
09
jan '09

Ticketoblog - c o n s u m o e r g o s u m

Le blog Ticketoblog - c o n s u m o e r g o s u m auquel je participe occasionnellement est nominé aux Skynet Blogs Awards 2008 dans la catégorie société

ven
09
jan '09

Moteur de stockage MySQL ... en PHP

Voici un probablement inutile mais génial Moteur de stockage MySQL ... en PHP par Johannes Schlüter

Je ne me casse pas la tête à le traduire. c'est très facile à comprendre.

Johannes Schlüter sur les Connecteurs MySQL et est étudiant à l'Université des Sciences Appliquées de Munich . Il est release manager de PHP 5.3.

Tags