20 août 2008

PHP ou le retour aux sources

Il y a quelques années de cela, alors étudiant en licence d'info, j'avais créé mon premier vrai site Web dynamique "from scratch" en apprenant PHP. Le vrai challenge étant de créer un CMS avec un éditeur Javascript Wysiwyg. Aujourd'hui, je pense que je prendrais peur à la simple lecture de ce code de débutant écrit à grand renfort de copier coller.

Après cette expérience j'ai plus ou moins tourné le dos à la création de site (à ça et ça près) pour faire beaucoup de développement en Java, d'abord du pur J2SE puis plus récemment J2EE avec les JSP et Struts. Je suis donc revenu au Web au travers des serveurs d'applications, ces solutions magiques qui sont supposées tout faire toutes seules, au final avec pas mal de sueur tout de même !

Et voilà qu'il y a deux semaines de cela, j'ai débuté un nouveau projet en PHP. Fort de mes expériences passées et d'un langage qui a bien évolué, j'arrive à écrire du code dont je suis facilement satisfait, chose plutôt rare.

Le fait d'avoir pas mal d'expérience en Java permet de décider facilement quand est ce que j'ai besoin d'objets et où s'en passer. Les quelques évolutions de PHP "à la Python" ne sont pas pour me déplaire non plus (fonctions à nombre d'arguments variable, valeurs par défaut pour les arguments, closures, etc...).

Après quelques jours de travail, j'avais construit ma propre librairie me permettant une gestion des formulaires digne de Struts (sans les bugs...) et de faire évoluer mon site rapidement sans avoir recours à l'arsenal d'un serveur d'application. Je structure également plus facilement mon application selon le modèle MVC grâce à l'expérience de J2EE et des actions Struts.

Au final, je me suis complètement retrouvé dans cet article en Anglais où l'auteur exprime des sentiments très semblables aux miens. Passer par la case "serveur d'application" est plus enrichissant que ce que l'on pense, probablement parce que ces architectures nous poussent à entrer dans un moule de pratiques pleines de bon sens.

Le vrai bonheur étant celui de revenir aux sources, au sens propre comme au sens figuré : écrire du PHP, du SQL, du Javascript ou du HTML avec CSS2, ça donne vraiment l'impression d'entrer dans l'aire du Web 2.0 par la grande porte !

11 août 2008

Culture vidéoludique

Les jeux vidéos sont souvent décriés parce que violents, bla bla bla, pas bien, tout ça tout ça. Aujourd'hui, la réalité a rattrapé la fiction. En effet, en 2001, un jeu auquel je jouais, appelé Ghost Recon déroulait le scénario suivant :

"Durant les premières missions du jeu, les Ghosts doivent combattre les forces rebelles d'Ossétie-du-Sud du Nord de la Géorgie, qui sont en train de harceler le gouvernement légitime et ses alliés. (...) La Russie envoie alors l'armée pour aider les rebelles d'Ossétie-du-Sud (...) et l'armée américaine est incapable d'empêcher les Russes d'envahir la Géorgie"


Le plus étonnant est que l'action était supposée prendre place... en Août 2008 ! Vous voulez savoir la suite ?

"...ce qui déclenche une guerre à grande échelle entre les Russes et les Américains."

Espérons que ce scénario là ne sorte pas du jeu. Un point que le jeu n'avait pas prévu, c'est que les Russes attaqueraient les sites du gouvernement Géorgien, qui s'est réfugié... sur ce blog Blogger afin de pouvoir communiquer sur le conflit sans risque d'attaque des hackers Russes.

Google est partout !

29 juin 2008

QWERTY... et les accents

Vivre aux USA, c'est aussi avoir un clavier QWERTY, et ça c'est pas top pour écrire en Français. A moins d'apprendre par coeur le code ASCII de tous les caractères accentués, ou bien de mémoriser la position de tous ces caractères sur un AZERTY et de switcher le clavier en "AZERTY" au niveau de l'OS, je n'avais jusqu'alors pas vraiment de solution satisfaisante.

Heureusement, il existe de petits logiciels utilitaires qui sauvent la vie... Ainsi, QWERTY ACCENT ajoute des raccourcis claviers bien utiles pour les utilisateurs de claviers QWERTY.

Par exemple, pour faire un"é", il suffit de faire ctrl + ' puis e. Pour faire un "à" : ctrl + ` puis a. Pour faire un "ç" : ctrl + , puis c. Etc, etc... Le diagramme ci dessous résume toutes les possibilités :

18 juin 2008

Going green

J'ai découvert une initiative intéressante (voir le badge en bas à gauche du site) qui consiste à placer un badge sur son blog pour permettre de recycler 350 livres de carbone, soit l'équivalent de deux semaines sans utiliser la voiture.

Bien entendu, on ne peut pas vérifier que cela réellement fait, mais l'initiative valait le coup de pub !

08 juin 2008

WebDriver : Quelques reserves

Apres avoir approfondi WebDriver et sa simplissime API, j'ai trouve a ce jour deux restrictions (de taille) qui m'empechent de poursuivre son utilisation...

La premiere restriction s'appliquait deja a Selenium : Les deux fameworks ne sont pas tres bons lorsqu'il s'agit de detecter si une page est completement chargee ou pas, en particulier lorsque l'on joue avec des frames ou des composants AJAX. La consequence directe est que certains tests echouent parce que le framework ne trouve pas un composant qui n'a pas encore ete charge... Frustrant.

La deuxieme restriction n'existe pas dans Selenium mais est vraiment bloquante dans WebDriver. En effet, les fenetres modales Javascript (alert, confirm...) ne sont tout simplement pas prises en charge, ce qui fait que les tests restent pendus indefiniment, tant que quelqu'un ne clique pas sur le bouton approprie "a la main".

Il semblerait que le premier probleme ait ete resolu par l'equipe de WebDriver et que la resolution du deuxieme soit planifiee. Au vu de la productivite de l'equipe projet (au moins une nouvelle revision du projet par jour) on peut conserver bon espoir de voir ce framework tenir toutes ses promesses prochainement.