Dual Blog : DeFr's Weblog

Mai 2004Juillet 2004Juin 2004

PHP : Un brin de magie ? | vendredi 18 juin 2004, 23h45

Bon, erm, juste parce qu'il faut que j'le souligne, parce que c'est un peu dans la continuité du post précédent : j'viens de découvrir une fonction en PHP dont l'existence me comble de ravissement : utf8_encode, qui permet de convertir une chaine de caractère iso-8859-1 en utf-8. Ca peut sembler totalement banal, mais ca l'est pas réellement : elle vient de me permettre de migrer mon blog en UTF-8 plutot qu'ISO-8859-1 en exactement 5 minutes, alors que ca va faire dans les 2 mois que je me bats avec MP pour que tout soit bien en UTF-8 aussi sans encore avoir réellement réussi à trouver de solution fonctionnant correctement...

En même temps, je dois reconnaitre que la complexité n'est pas réellement la même, pour ce qui est des sources initiales, je n'ai eu pour simplifier un peu qu'à demander à Bluefish de mettre en UTF-8 ma page index.php, alors que MP présente un nombre de page legerement plus conséquent... Et dans l'absolu, je desespere pas tout à fait de trouver un equivalent qui fonctionnerait en ASP ^^; Le vrai problème, ce n'est pas uniquement la conversion, mais l'absence de stabilité : j'ai déja trouvé une fonction de conversion me semble-t-il, mais le problème, c'est que si jamais on lui passe un texte déja en UTF-8, le résultat n'est autre qu'un truc sans nom, et j'ai pas encore trouvé d'équivalent au seems_utf8 que j'ai pu trouver dans les commentaires de php.net ^^;

De l'utilisation de l'ASP sur Mega-Poudlard | dimanche 06 juin 2004, 22h53

Plusieurs personnes m'ont récement demandés pourquoi Mega-Poudlard utilisait comme langage dynamique l'ASP plutot que le PHP, et je vais de plus bientôt changer le lieu d'hébergement de DeFr.org pour l'incorporer à mon compte sur DeadSerious.net, les pages devront donc subir une conversion ASP -> PHP je me suis donc dit qu'un petit post vous exposant le pourquoi du comment pourrait être le bienvenue, et présenté un certain interet pour quelques-uns d'entre vous ^^;

La raison première, et peut-être principale, de l'utilisation de l'ASP pour l'ensemble du code de MP est avant tout historique : le premier langage de programmation que j'ai appris a été Visual Basic ( durant un été loin d'un ordinateur, ou j'étais donc completement désoeuvré... ), et les premieres pages ou j'ai réellement remarqué qu'il devait se passer quelque chose d'autre pour que ca puisse fonctionner comme il faut se sont retrouvés être des forums de discussions codés en ASP. Les deux choses ont été découvertes de facon indépendante, mais la combinaison des deux a été détonnante : l'ASP peut utiliser une syntaxe infiniment proche du Visual Basic, et m'a donc semblé des plus instinctifs ( à la lecture des premières documentations sur le HTML, j'devais avoir dans les 3 ans de Visual Basic derrière moi ).

Cette découverte de l'ASP m'a donné envie de programmé un forum, et c'est ce qui a en réalité contribué à me faire amener dans le projet Mega-Poudlard : j'ai proposé de fournir un forum totalement customizable, puisque fait par mes soins, au site, l'idée a plu et je me suis retrouvé à occuper un poste de webmaster sur Mega-Poudlard... Et petit à petit, l'ensemble des fonctions de MP ont été codés en ASP, auquel Faramir s'était mis entre temps en plus. Les hébergements gratuits en ASP étaient certes moins faciles à trouver que ceux en PHP, mais...

Une fois qu'il est devenu évident qu'un hébergement gratuit ne suffisait plus, il a fallu passer par un hébergement professionel. La hausse de la qualité est indéniable, mais le prix n'est pas totalement négligeable. Toutefois, je n'avais alors pas pris connaissance des tarifs comparés des hébergements professionels comparés de l'ASP ou du PHP, nous nous sommes donc retrouvés avec un site ASP sur un hébergement professionel, fonctionnant plus ou moins bien.

Cependant, tout cela n'explique que la raison pour laquelle MP est encore actuellement en PHP, pas pourquoi, maintenant que réellement, je connais la différence de tarif, je ne fais rien pour effectuer une migration vers du PHP. En effet, je connais maintenant d'assez près les tarifs que l'on peut trouver en un hébergement ASP et un hébergement PHP, et je peux vous dire que réellement, au minimum, on paie 3 fois plus cher pour obtenir un hébergement ASP. Voir plus même, puisque pour vous donner une idée, l'hébergement de 75 Mo de MP coûte plus cher que l'hébergement de 300 Mo et 6 domaines que j'ai chez DeadSerious. Pour tout vous avouer, devant ses chiffres, si MP devait commencer à être écrit aujourd'hui, tout en conservant la connaissance de l'ASP et du PHP que j'ai en ce moment, je pense que je pencherais pour une écriture en PHP.

Toutefois, ce n'est réellement pas que l'absence de motivation de tout ré-écrire ( ce ne serait honnetement pas si compliqué que ca ) qui fait que MP est conserver en PHP : l'aspect financier est relativement allégé par la présence des pubs sur MP. D'autre part, je suis toujours intimement persuadé que pouvoir mettre en avant la maitrise de plusieurs langages est un atout majeur sur un CV, et dans une carrière éventuellement informatique en générale. En ce sens, j'ai assez envie de continuer à entretenir un site basé sur l'ASP puisque j'ai déja des tonnes d'autres opportunités de montrer que je me débrouille aussi en PHP. De plus, Hebergement.com fournit aussi la possibilité d'utiliser .Net, la nouvelle technologie de Microsoft, qui semble relativement interessante et que j'ai bien envie d'essayer. D'autant plus que Mono est disponible pour rendre l'utilisation de .Net possible en dehors des plates-formes Microsoft, fournissant ainsi par exemple la capacité d'interpreter l'ASP.Net sur un serveur Apache, ou d'executer des applications .Net dans un environnement Linux.

Un phénomène par contre interessant, que je ne nie pas mais dont j'avoue ne pas encore avoir pu cerné l'origine, c'est qu'un certain nombre de personne à qui j'ai parlé successivement d'ASP, puis de PHP, m'ont dit n'avoir jamais réellement rien compris à l'ASP, se contentant de photographier mentallement des codes fonctionnant, et de reproduire ainsi des structures qu'ils savent marcher, mais sans réellement comprendre ce qu'ils font, alors qu'à l'inverse le PHP leur semblait limpide. Pour moi, les deux sont strictement équivalent, l'ensemble des concepts de programmation les sous-tendant étant réellement quasi-exactement les mêmes. Une analogie simple, voir simpliste, pourrait être l'idée qu'ils peuvent être utiliser pour utiliser la même idée dans deux langues étrangères distinctes : une fois le vocabulaire et les principes de constructions de la phrase assimilé, la difficulté des deux est comparable... Par contre, si on pratique l'un intensement et qu'on laisse l'autre croupir au fin-fond de sa mémoire, l'un devient bien plus facile que l'autre.

Du monde des navigateurs ( Partie 2 ) | mardi 01 juin 2004, 22h45

Un autre facteur qui a peut-être augmenter ma receptivité au projet, c'est son caractère Open Source, qui m'interessait déja un peu. Et ce peu, à travers la découverte des outils permettant de suivre le developpement de Mozilla à la seconde, c'est réellement transformé en un interet fondamental. Non seulement découvre-t-on le dessous des coulisses, mais en plus l'idée de pouvoir eventuellement aider à créer un navigateur plus performant est assez excitante. Au delà de cette perspective, on découvre aussi des faits amusants lorsqu'on constate la guerre apparente que se livre les utilisateurs des navigateurs. En effet, deux exemples concrets mais à mon humble avis parlant : Dave Hyatt, à la tête du projet Phoenix / Firebird / Firefox est aussi un developpeur embauché par Apple pour travailler sur Safari, et Hixie joue à la fois le rôle de conseiller technique interpretant les specifications du CSS Workgroup auprès d'Opera et de Mozilla. Erm, de fait, c'est même plus précisement un membre du CSS Workgroup, m'enfin, on va pas chipoter pour des détails comme ca ^^;

( J'avoue avoir un handicap majeur pour ce paragraphe... On est maintenant Jeudi soir, alors que j'avais commencé à écrire ce post hier, et j'ai plus la moindre idée de comment j'voulais continuer, même si je sais que j'voulais pas m'arreter à ce que j'ai écrit.... ) Je suppose qu'une suite logique serait de présenter un peu les outils de ce developpement Open Source, du genre de Bugzilla et Bonsai, permettant respectivement de suivre les bugs et le code arrivant sur le serveur de Mozilla, mais j'vous avouerais que je sais pas trop quoi vous en dire, si ce n'est qu'une fois le principe de fonctionnement de Bugzilla assimilé, ce peut être une vraie mine d'or, surtout si on choisit de se compiler soit-même sa propre version : on peut alors profiter de patch avant qu'il n'est été officiellement approuvé, mais qui d'une facon générale fixent le bug auxquels ils ont été attachés, ce qu'est une assez bonne chose ^^;

Et, erm, comme de toute facon, AEdiX m'indique que ca fait déja 7 Ko ce que j'ai écrit, soit plus de 7000 caractères, je crois qu'il va vraiment être temps de conclure, je souhaiteais donc finir sur les choses qui fachent et parler un peu d'Internet Explorer, vu un an après que ca ait cessé d'être mon logiciel de navigation par défaut. Déja, c'est en un sens le logiciel en Freedom 0 telle qu'évoqué sur DiveIntoMark il y a pas longtemps, même si c'était à l'époque pour parler de MovableType : un logiciel gratuit à l'usage, que l'on peut en théorie developpé un peu avec des plug-ins quand on est developpeur ( j'crois qu'il y a un SDK de publié pour ca ), mais appartenant dans son intégralité à Microsoft. Pourquoi c'est pas réellement une bonne chose ? Très honnetement, je crois que Microsoft en a fourni lui-même la réponse, en annoncant officiellement que le developpement d'Internet Explorer s'arreterait avec la version distribuée avec Longhorn, et que de plus aucune update ne serait telechargeable pour les autres OS : alors que le logiciel n'est toujours pas pleinement compatible CSS 1, qu'il ne comprend toujours pas le XHTML ( il est édifiant de voir comment IE "comprend" une page, et c'est pourtant relativement simple de s'en rendre compte, il suffit d'utiliser la fonction Fichier->Enregistrer... Très honnetement, ca fait peur, et surtout qu'il ne gère toujours pas les PNG avec canal alpha, il faut se dire que Microsoft trouve ca très bien comme ca...

Du monde des navigateurs ( Partie 1 ) | mardi 01 juin 2004, 22h44

Bon, j'avais dis que j'préparerais des 'tits posts, et j'ai effectivement un peu de temps devant moi là tout de suite ( bien que 87e District d'Ed McBain me tende aussi les bras ), or le post de Kévin m'a inspiré pou posté un peu sur le monde merveilleux des navigateurs actuels présents sur le marché, et un peu du dessous que j'ai découvert en passant un temps non-négligeable à suivre ces derniers mois de près le developpement de Fx, et de Mozilla par la même occasion, car les deux sont intimement lié...

Toutefois, en reprenant chronologiquement, et bien que ce soit pas réellement quelque chose dont je sois fier, je dois vous avouer qu'il est peut-être préferable que je n'ai pas su ca au moment ou j'ai commencé à essayé Fx. Pour deux raisons principales : avant de m'y mettre, j'étais un webmaster paresseux qui ne voyait pas pourquoi il utiliserait autre chose qu'IE, le navigateur le plus utilisé au monde, et par conséquent, fondamentalement, qui devait être bien... Le fait que Mozilla ne fasse pas un rendu correct d'un code qui passait comme il était supposé sous IE me semblait totalement incohérent, incompréhensible, et peu digne d'interet. Et je dois avouer qu'en plus, pour moi qui suit attaché d'une facon générale à avoir une apparence cohérente dans mes applications, la skin par défaut de Mozilla était un obstacle majeur, qui a fait qu'avant de découvrir Fx ( jusqu'alors nommé Phoenix ), je n'avais jamais passé plus de temps sur un navigateur Gecko que pour constater le rendu lamentable mon code pour IE. Je préviens maintenant que je vais avoir fini ce paragraphe que le premier qui le cite sans le replacer dans son contexte, c'est à dire, la longue partie qui va suivre se verra instantanément foudroyé, étant donné qu'il renvoit à une époque désormais révolue ( réellement, ca fait plus d'un an ) et ou je n'avais pas encore vu la lumière....

Vint enfin le jour ou j'entendis parler d'un nouveau navigateur, Phoenix, et de ses capacités remarquables pour être skinné, notament pour qu'il prenne l'apparence de Safari. Le logiciel n'en était encore qu'à sa version 0.5, mais il semblait prometteur. Je l'ai essayé, sans être tout à fait pret à en faire mon navigateur par défaut, mais en me disant qu'il faudrait que je regarde de près la prochaine version. La 0.6 est sorti, accompagné d'un changement de nom : Phoenix était devenu Firebird, pour des raisons bassement matérielles de droit : le fabricant de BIOS Phoenix parlait alors d'intégrer directement un moyen de surfer sur le Net, et l'existence d'un navigateur du même nom aurait pu preter à confusion. Miracle, ou peut-être simplement un peu plus de temps devant moi, j'ai heureusement pris le temps d'étudier de plus près ce Firebird, et pas seulement pour essayer une skin trouvée sur un forum. Et c'est là que j'ai eu, réellement, la révellation : Firebird était un navigateur extremement flexible. Les fonctions de base, réellement necessaire sont présente, et le surf est assez rapide, mais cela seul n'aurait honnetement probablement pas pu me convaincre de changer de navigateur par défaut. La découverte de l'extension Web Developer a changé la donne : alors qu'avec IE, le seul moyen de debugger du code HTML était réellement de le relire ( oui, je l'écrivais déja à la main, ca, ca n'a pas changé ^^; ), je me retrouvais alors face à un monde de nouveauté impressionant me permettant de gagner un temps fou dans la compréhension de quels elements de ma page se trouvait ou, et de pourquoi ca ne marchait pas. Le gain de productivité, pour un codeur passant de IE à Fx doit être d'un facteur minimum de 5. Et je n'avais alors pas encore découvert les joies du DOM Inspector, permettant d'aller encore plus loin, et d'opérer encore plus vite.

Un autre fait qui a réussi à me retenir initiallement, pas forcement réluisant mais qui ait quand même relativement importante à signaler : la création d'un Quirk Mode dans Gecko, qui se déclenche lorsque la page n'a pas de DOCTYPE, et n'est donc evidement pas conforme aux spécifications du W3C. Le navigateur reproduit alors les erreurs d'IE les plus courantes qui ne sont pas fondamentalement génantes, ce qui permet de ne pas visiter des pages qui soient totalement illisible. C'est réellement une aide quand on sait que, même si la situation s'amelliore, les site sont encore en majorité déstinés à Internet Explorer, et que l'on a réellement besoin de surfer sur le web.

Mai 2004Juillet 2004Juin 2004
Sites visités