Trouver les points de levier dans le code
jeudi 25 mai 2006 :: perrick :: Développement :: aucun commentaire :: aucun trackbackL'objectif du remaniement n'est pas uniquement d'avoir du code joli. Il est aussi d'avoir du code malléable : de trouver les points de levier. Ceux qui feront qu'il devient facile de faire évoluer son application.
Reste à trouver ces points : ils ne sont que très rarement évidents au début du développement. J'ai même l'impression qu'ils sont impossibles à anticiper. Le client, la mode, la couleur du ciel : tout participe à l'évolution des fonctionnalités. Pas la peine alors d'essayer de les anticiper.
Plutôt que de les chercher, j'ai parfois l'impression qu'ils émergent naturellement grâce à un remaniement continue. J'en ai encore eu l'exemple cette semaine : j'ai installé la dernière version d'Opera -- version 9 béta. Premier défaut, ils ont changé le raccourci pour ouvrir un nouvel onglet (le très mozillien Ctrl + t, au lieu de Ctrl + n). Deuxième défaut plus génant : une anomalie sur la priorité des champs <input>. Forcément la grille de saisie des temps dans mon logiciel maison contient 6 des ces boutons. Autant dire que je suis assez sensible à ce qu'il se passe quand on appuie sur Entrée
au lieu de cliquer sur tel ou tel bouton.
L'interface c'est moi
mercredi 24 mai 2006 :: perrick :: Ergonomie :: 4 commentaires :: aucun trackbackJe travaille acutellement sur la reprise d'un projet qui me tiens à coeur : les apéros PHP. L'interface est tout à fait différente d'une application comme openTIME. A commencer par le style de l'interface : faut-il écrire je m'inscris ou inscrivez-vous ?
Les exemples sont légions :
J'ai l'impression qu'avec cette ligne de démarcation on s'approche du concept de l'écran comme projection de sa propre identité : en affichant mon espace (au lieu de votre espace), l'interface devient une extension de son propre corps pour atteindre ses comptes ou ses données. Exactement comme on a besoin de sa main pour cueillir une pomme sur le pommier de la voisine.
Au fait voici un extrait de la maquette pour la futur version du site des Apéros PHP :
.
Autrement dit, j'ai choisi... avant de revenir en arrière ?
Créer son entreprise au prochain apéro PHP lillois
lundi 22 mai 2006 :: perrick :: Management :: un commentaire :: aucun trackbackSous l'impulsion de Jean-Marc, le prochain apéro PHP à Lille aura pour thème la création d'entreprise. Ce sera le jeudi 8 juin 2006 à partir de 20h. Bien sûr je serais présent pour évoquer les deux premières années de No Parking (déjà deux ans).
Si le sujet vous intéresse, les inscriptions sont par ici. En attendant, quelques liens à se mettre sous la dent :
- JEI, que du bonheur
- Comment gagner sa croûte dans l'OSS
- The Hardest Lessons for Startups to Learn
- What is a Small ISV?
- Strategy Letter I: Ben and Jerry's vs. Amazon
Offre de stage chez No Parking
vendredi 19 mai 2006 :: perrick :: No Parking :: aucun commentaire :: aucun trackbackAvec les beaux jours qui arrivent enfin, nous sommes à la recherche d'un stagiaire en développement pour l'été (3 mois minimum). Si vous lisez de temps en temps ce blog, le poste est probablement fait pour vous : PHP, MySQL et Extreme Programming figurent au programme. L'annonce est disponible sur le site de No Parking : stage_developpement_2006.
Quelques détails pratiques quand même :
- Le poste est basé à Lille (Nord) et il n'y a pas de télé-travail possible.
- Le stage est rémunéré à 30% du SMIC.
- L'embauche après le stage n'est pas exclue ;-)
PS : n'oubliez pas de mettre onpk dans votre mail à recrut AT noparking POINT net. Il remontra automatiquement dans ma pile.
Une bible pour le remaniement
lundi 15 mai 2006 :: perrick :: Développement :: aucun commentaire :: aucun trackbackCe n'est pas souvent qu'après quelques heures un bouquin devienne une référence : c'est exactement ce qui m'est arrivé avec Refactoring: Improving the Design of Existing Code. Martin Fowler a écrit avec Kent Beck et quelques autres une bible. De celles qu'on relit jour après jour.
En deux jours sur la table au bureau, ce livre est déjà passé par toutes les mains. Il permet tout simplement de créer un vocabulaire commun au sein de l'équipe de développement. Dans les phases d'apprentissage -- une fois que le code marche -- il devient une aide très précieuse par son côté systématique. Juste dommage que ce vocabulaire soit anglophone encore une fois.
Et puis il faut avouer que cette exploration est largement aidée par la batterie de tests que nous avons sur openTIME. En attendant d'acheter le livre, un détour par le site refactoring.com pourra peut-être s'avérer utile à quelqu'un. D'ailleurs ce quelqu'un pourrait très bien être moi-même : je viens d'y découvrir le Split Loop. Et j'adore découvir des remises en cause de mes pratiques.
Petit défaut qui me rend jaune
mardi 2 mai 2006 :: perrick :: Ergonomie :: un commentaire :: aucun trackbackIl y a parfois des petits défauts qui sont très pénibles. Celui-ci par exemple :
Pas grand chose en apparence : c'est juste que le fax et le numéro de téléphone sont inversés. Et bien sûr j'ai appelé le fax. Deux fois. Argh...
Des nouvelles et belles images pour des données
mercredi 26 avril 2006 :: perrick :: Ergonomie :: 2 commentaires :: aucun trackbackJe suis toujours assez fan des nouvelles manières de présenter des chiffres et des données dans de jolies graphiques. Cette semaine, j'ai été gâté.
Il y a tout d'abord eu les résultats de l'étude de Tim O'Reilly sur les ventes de livres informatiques aux USA : State of the Computer Book Market, Part 1, Part 2 et Part 3. Il s'agit là de Treemap.
Plus récemment, les arbres phylogénétiques de Jean Véronis : celui des thèmes de la campagne électrole 2007 et celui des prétendants à la présidentielle 2007. Il donne même une liste de logiciels pour réaliser de tels arbres : phylogeny software. Je rêve d'abord ces outils en PHP un jour !
Une ligne d'Apple pour ajouter un utilisateur dans un groupe
mercredi 19 avril 2006 :: perrick :: Mac OS X :: 4 commentaires :: aucun trackbackL'avantage de Mac OS X, c'est qu'on a sous le capot un véritable OS de la grande famille des *nix. Sauf que pas de bol, la commande adduser
n'existe pas. Rappel : je souhaite ajouter un utilisateur dans un groupe (pour le détail : man adduser).
L'équivalent est niutil -appendprop / /groups/mongroupe users monutilisateur
. C'est ce que dit la doc : Porting UNIX/Linux Applications to Mac OS X: NetInfo. Heureusement que je m'en sers moins souvent que du |
masqué parce que je sens que je vais avoir du mal à m'en souvenir.
Foutage de gueule à la SNCF
lundi 10 avril 2006 :: perrick :: Ergonomie :: 11 commentaires :: aucun trackbackAvec le traffic (et le chiffre d'affaires) qui passe tous les jours sur le site de la SNCF, on pourrait s'imaginer que le site soit très très bien. Ce n'est pas vraiment le cas : il est toujours beaucoup plus lent que ses concurrents suisses ou allemands par exemple. Et puis aujourd'hui, je tombe sur un truc hallucinant :
Vous avez bien lu : la modification de votre abonnement sera effective d'ici 15 jours.
On ne me fera pas croire que ma demande est imprimée, transportée en stop jusque Marseille puis en bateau jusqu'en Inde avant d'y être rescannée, puis resaisie et enfin mise sur le serveur de production. Quinze jours à encore être emmer*** par les annonces partenaires : je rêve.
A explorer après PHPQuébec (IV)
vendredi 31 mars 2006 :: perrick :: PHP :: 3 commentaires :: aucun trackbackMa petite liste de notes continue de s'allonger suite aux conférences de Rasmus et de Derick.
- mettre un cache sur les requêtes AJAX
- ajouter des options dans mes fichiers de configuration pour le fuseau horaire et pour la locale (en prévision de PHP5.2 et surtout PHP6)
- creuser la Geocoding API fourni par Yahoo!
- télécharger / installer / configurer Callgrind et effectuer du profiling à un autre niveau (celui qui compte vraiment)
Les "acétates" de ma présentation à PHPQuébec 2006
:: perrick :: Extreme Programming :: aucun commentaire :: aucun trackbackJuste quelques lignes pour indiquer que mes acétates sont disponibles en ligne : /talks/20060331_phpquebec/pratiques_xp_en_php.
A explorer après PHPQuébec (III)
jeudi 30 mars 2006 :: perrick :: PHP :: un commentaire :: aucun trackbackAprès quelques heures passées à me débattre sur la console, j'ai enfin réussi à afficher PHP Version 6.0.0-dev via un appel phpinfo()
. Je vais pouvoir commencer à explorer le travail titanesque entamé par Andrei Zmievski : voici un aperçu du chantier en cours.
Dans le cadre d'un projet avec internationalisation / traduction, les formats proposés par International Components for Unicode pourront être d'une grande utilité : c'est comme ça qu'on peut découvrir le motif monétaire pour le Groënland -- kr1.234,57 -- à comparer avec notre cas à nous -- 1 234,57 €. En attendant que des fonctions PHP fassent tout le travail pour nous à travers les API d'ICU !
Note : les itérateurs (et SPL) continuent leur apparition. Pour Unicode Andrei a évoqué le TextIterator
.
A explorer après PHPQuébec (II)
:: perrick :: PHP :: aucun commentaire :: aucun trackbackEn venat à Montréal, je n'avais pas anticipé que la plupart des mes tests unitaires allaient partir en vrille. La raison : le changement de fuseau horaire. La fonction date_default_timezone_set()
me permet de forcer PHP à Paris : à Lille, pas de problème. Ici à Montréal, ce n'est pas aussi simple : en changeant le fuseau horaire de mon Mac, j'ai changé celui de MySQL au passage. Et je me retrouve avec un décalage de 6h (ou 7h) entre les timestamps de la base de données et ceux de mon application. Autrement dit il y a encore du boulot au niveau de mes tests pour lisser tout cela !
A explorer après PHPQuébec (I)
:: perrick :: PHP :: un commentaire :: aucun trackbackPremier jour à PHPQuébec avec au programme deux "tutorials" : Marcus Boeger sur SPL puis Ilia Alshanetsky sur la sécurité. Et à chaque fois, 3 heures de contenu dense et intéressant et une liste de points à explorer...
- PHP
- SPL pour mettre du
foreach
à toutes les sauces - ctype pour vérifier si un caractère ou une chaîne de caractères font partie d'une certaine classe de caractères, en fonction de la configuration locale
- empty() pour remplacer
== ""
et compléterisset()
- basename() parce que tous mes fichiers inclus sont dans un répertoire unique
- session_regenerate_id() à lancer lors d'une connexion et d'une déconnexion
- is_link() parce que écrire dans un fichier est parfois pas si anodin
- SPL pour mettre du
- MySQL
- Apache
- SetEnv pour remplir automatiquement un
$_SERVER[]
(en lieu et place d'un fichier de configuration)
- SetEnv pour remplir automatiquement un
- Développement et Modélisation AGILE
- Agile PHP Testing
- Using Test::Harness To Test PHP Applications
- Les pratiques de l'Extreme Programming dans un univers PHP
Presque prêt pour PHPQuébec
mercredi 22 mars 2006 :: perrick :: PHP :: un commentaire :: aucun trackbackPlus qu'une semaine et je serais à Montréal pour PHPQuébec. J'en profite pour l'annoncer une nouvelle fois :
Un rapide coup d'oeil sur les conférences et je vois :
Cela fait bien 4 conférences qui parleront ou pourraient parler des tests (unitaires ou de recette). Autrement dit la mienne ne va faire qu'effleurer ce sujet-là. L'avantage, c'est que XP ne se limite pas à ses tests : il y a encore plein d'autres choses à dire ! On reparlera entre autres des cartes de bristol... Le pouvoir de la simplicité du "PHP way" s'y retrouve pas mal !
Et au passage un grand merci à toute l'équipe de PHPQuébec pour la mise au point de l'évènement...