<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Web, Technologies, IA, Vidéo... - Développement web</title><link href="https://www.alkannoide.com/" rel="alternate"/><link href="https://www.alkannoide.com/feeds/developpement-web.atom.xml" rel="self"/><id>https://www.alkannoide.com/</id><updated>2008-09-29T20:45:00+02:00</updated><entry><title>De l'utilité des frameworks...</title><link href="https://www.alkannoide.com/2008/09/29/de-lutilite-des-frameworks/" rel="alternate"/><published>2008-09-29T20:45:00+02:00</published><updated>2008-09-29T20:45:00+02:00</updated><author><name>admin</name></author><id>tag:www.alkannoide.com,2008-09-29:/2008/09/29/de-lutilite-des-frameworks/</id><summary type="html">&lt;p&gt;Avant tout, je pense qu'il faut séparer les frameworks PHP et ceux en Javascript.&lt;/p&gt;
&lt;p&gt;Les Frameworks Javascript sont une véritable révolution dans le "petit" monde du web. Il en existe plusieurs mais deux sont réellement utilisés à grande ampleur :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.prototypejs.org/" target="_blank" title="Prototype"&gt;prototype&lt;/a&gt; (actuellement en déclin)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://jquery.com/" target="_blank" title="Jquery"&gt;jquery&lt;/a&gt; (en pleine croissance avec une foison …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;Avant tout, je pense qu'il faut séparer les frameworks PHP et ceux en Javascript.&lt;/p&gt;
&lt;p&gt;Les Frameworks Javascript sont une véritable révolution dans le "petit" monde du web. Il en existe plusieurs mais deux sont réellement utilisés à grande ampleur :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.prototypejs.org/" target="_blank" title="Prototype"&gt;prototype&lt;/a&gt; (actuellement en déclin)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://jquery.com/" target="_blank" title="Jquery"&gt;jquery&lt;/a&gt; (en pleine croissance avec une foison de plug-ins)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;C'est en grande partie grâce à ces frameworks que les applications web2.0 sont apparus (mais pas uniquement, on remerciera également Adobe).&lt;/p&gt;
&lt;p&gt;J'en viens maintenant aux frameworks PHP. Actuellement, je dirais qu'il en existe 2 :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;le &lt;a href="http://framework.zend.com/" target="_blank" title="Zend Framework"&gt;Zend Framework&lt;/a&gt;, actuellement en version 1.6 qui est plus une bibliothèque de librairies. Elles sont utiles mais ne composent pas, pour moi, un framework.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.symfony-project.org/" target="_blank" title="Symfony"&gt;Symfony&lt;/a&gt;, actuellement dans sa version 1.1. Ce dernier étant pour moi un framework à part entière.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ces derniers sont pour moins un véritable problème. En effet, ils répondent, il est vrai, à tous les besoins possibles et imaginables. Cependant, ils chargent beaucoup d'élément qui demande du support et dont on ne sait pas toujours comment le déroulement s'effectue.&lt;/p&gt;
&lt;p&gt;Je préfère donc réutiliser les briques que j'ai développé moi-même (par exemple pour la gestion des templates ou encore pour la connexion à la base de donnée). Je garde ainsi le contrôle du code, tout en répondant trés précisément au besoin des applications que j'ai à développer.&lt;/p&gt;
&lt;p&gt;Je concluerais en disant que pour utiliser un Framework quel qu'il soit, il faut véritablement se poser la question de ce que l'on veut faire et comment on veut le réaliser. On utilisera ensuite l'outils le plus adapté.&lt;/p&gt;</content><category term="Développement web"/><category term="PHP"/></entry><entry><title>Testons nos variables (les expressions régulières)...</title><link href="https://www.alkannoide.com/2008/06/04/testons-nos-variables-les-expressions-regulieres/" rel="alternate"/><published>2008-06-04T15:42:00+02:00</published><updated>2008-06-04T15:42:00+02:00</updated><author><name>admin</name></author><id>tag:www.alkannoide.com,2008-06-04:/2008/06/04/testons-nos-variables-les-expressions-regulieres/</id><summary type="html">&lt;p&gt;J'ai abordé le sujet dans &lt;a href="http://alkann.free.fr/index.php/2008/05/20/les-bienfaits-des-tests-de-variable-en-php/" target="_blank" title="Les bienfaits des tests de variable en PHP"&gt;mon précédent billet&lt;/a&gt;. Les expressions régulières ou rationnelles sont puissantes et rapides, une fois qu'elles sont maitrisés. En PHP, il existe deux types d'expressions régulières :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;les &lt;a href="http://fr.php.net/manual/fr/book.regex.php" target="_blank" title="POSIX"&gt;POSIX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;les &lt;a href="http://fr.php.net/manual/fr/book.pcre.php" target="_blank" title="PCRE"&gt;PCRE&lt;/a&gt; (Perl Compatible Regular Expressions)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;C'est le second type qui est le plus performant mais plutôt que …&lt;/p&gt;</summary><content type="html">&lt;p&gt;J'ai abordé le sujet dans &lt;a href="http://alkann.free.fr/index.php/2008/05/20/les-bienfaits-des-tests-de-variable-en-php/" target="_blank" title="Les bienfaits des tests de variable en PHP"&gt;mon précédent billet&lt;/a&gt;. Les expressions régulières ou rationnelles sont puissantes et rapides, une fois qu'elles sont maitrisés. En PHP, il existe deux types d'expressions régulières :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;les &lt;a href="http://fr.php.net/manual/fr/book.regex.php" target="_blank" title="POSIX"&gt;POSIX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;les &lt;a href="http://fr.php.net/manual/fr/book.pcre.php" target="_blank" title="PCRE"&gt;PCRE&lt;/a&gt; (Perl Compatible Regular Expressions)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;C'est le second type qui est le plus performant mais plutôt que de faire un long laïus dessus, je propose de lire ce tutoriel qui les explique très clairement : &lt;a href="http://www.lumadis.be/regex/tuto_pcre.php" target="_blank" title="Expression régulière PCRE"&gt;Les expressions régulières PCRE (Perl Compatible Regular Expressions).&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Les expressions régulières me permettent de tester les variables qui proviennent de formulaires en POST ou en GET, tout particulièrement lorsque ces dernières vont "attaquer" ensuite une base de donnée. Cela évite tout problème d'injection SQL. J'ai, par ailleurs, mis en place une librairie avec différents types de données (nom, prénom, titre, email, ville, etc...) que je réutilise pour valider les informations récoltées.&lt;/p&gt;
&lt;p&gt;Je n'ai pas, pour le moment, trouvé de meilleure solution pour tester des variables que les expressions régulières. Pourquoi m'en priverais-je si elles sont en plus performantes ? ;-)&lt;/p&gt;</content><category term="Développement web"/><category term="PHP"/></entry><entry><title>Les bienfaits des tests de variable en PHP</title><link href="https://www.alkannoide.com/2008/05/20/les-bienfaits-des-tests-de-variable-en-php/" rel="alternate"/><published>2008-05-20T08:34:00+02:00</published><updated>2008-05-20T08:34:00+02:00</updated><author><name>admin</name></author><id>tag:www.alkannoide.com,2008-05-20:/2008/05/20/les-bienfaits-des-tests-de-variable-en-php/</id><summary type="html">&lt;p&gt;J'ai fait ce billet pour deux raisons principales :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;avoir un coup de gueule auprès des personnes qui ne sont pas capable de mettre en place leur test de variables&lt;/li&gt;
&lt;li&gt;montrer quelques exemples simples pour éviter des erreurs Notice ou Warning en PHP.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Avant tout, la première chose à faire est …&lt;/p&gt;</summary><content type="html">&lt;p&gt;J'ai fait ce billet pour deux raisons principales :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;avoir un coup de gueule auprès des personnes qui ne sont pas capable de mettre en place leur test de variables&lt;/li&gt;
&lt;li&gt;montrer quelques exemples simples pour éviter des erreurs Notice ou Warning en PHP.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Avant tout, la première chose à faire est d'effectuer ses développements avec le niveau le plus haut d'erreur E_ALL. Très souvent cela indique énormément d'erreur mais la contre partie est que l'on aura par la suite moins de problème d'erreur et de compréhension au niveau du code.&lt;/p&gt;
&lt;p&gt;Premier exemple que je rencontre très régulièrement : la non initialisation d'une clé d'un tableau. Ce type d'erreur se voit par un &lt;em&gt;Notice&lt;/em&gt; :&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Notice: Undefined index 'champ' in 'fichier.php' on line 10&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Ce type d'erreur est très simple à corriger. J'utilise pour ma part la fonction &lt;a href="http://fr2.php.net/manual/fr/function.isset.php" target="_blank" title="Fonction isset"&gt;isset()&lt;/a&gt;. Cela donne le bout de code suivant :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;isset&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;$&lt;span class="nv"&gt;tableau&lt;/span&gt;[&lt;span class="s1"&gt;&amp;#39;champ&amp;#39;&lt;/span&gt;]&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;traitement normal
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;}&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;{
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;on&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;assigne&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;une&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;valeur&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;par&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;défaut&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;On peut appliquer le même type de traitement pour les données des variables \$_GET, \$_POST, ...&lt;/p&gt;
&lt;p&gt;Le second exemple concerne plus la sécurisation des données venant provenant des formulaires et / ou URL pour valider en utilisant les expressions régulières. Mais ce second exemple fera l'objet d'un prochain billet.&lt;/p&gt;</content><category term="Développement web"/><category term="PHP"/></entry><entry><title>Fin de Netscape, démarrage de Internet Explorer 8</title><link href="https://www.alkannoide.com/2008/03/04/fin-de-netscape-demarrage-de-internet-explorer-8/" rel="alternate"/><published>2008-03-04T12:05:00+01:00</published><updated>2008-03-04T12:05:00+01:00</updated><author><name>admin</name></author><id>tag:www.alkannoide.com,2008-03-04:/2008/03/04/fin-de-netscape-demarrage-de-internet-explorer-8/</id><summary type="html">&lt;p&gt;Netscape a tiré sa révérence ce mois de Février dernier. On se rappelera de Netscape comme étant le premier navigateur à avoir vulgarisé le web (au niveau de son utilisation). Le projet a démarré en 1994. C'est également grâce à Netscape que le Javascript était né. On retiendra également sa …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Netscape a tiré sa révérence ce mois de Février dernier. On se rappelera de Netscape comme étant le premier navigateur à avoir vulgarisé le web (au niveau de son utilisation). Le projet a démarré en 1994. C'est également grâce à Netscape que le Javascript était né. On retiendra également sa mort progressive avec l'arrivée massive et écrasante (dû à son installation par défaut sur les ordinateurs) du navigateur Internet Explorer de Microsoft.&lt;/p&gt;
&lt;p&gt;Racheté plusieurs milliards de dollars par AOL, Netscape n'a alors jamais réussi à remonter la pente. Mais ces "fondateurs" ont migré vers la fondation Mozilla et plus précisément vers le développement de Firefox, l'outsider actuel d'Internet Explorer. La dernière version de Netscape est la 9.0.0.6.&lt;/p&gt;
&lt;p&gt;Mais à peine la fin de Netscape, que l'on parle chez l'éditeur de Richmond (Microsoft) de la prochaine mouture d'Internet Explorer : la version 8. Enfin, on parle, on devrais plutôt dire que les tests sont en train de démarrer, la beta 1 est disponible aux abonnées de la MSDN. Cette version contiendra 2 moteurs afin de gérer progressivement la bascule entre le HTML4/(x)HTML et le HTML5/CSS2.1/XHTML1.1 (&lt;a href="http://alkann.free.fr/index.php/2008/01/23/html5-premier-draft/" target="_blank" title="HTML5 Premier Draft"&gt;cf mon précédent billet&lt;/a&gt;). Lors de l'affichage des pages, l'application choisira le moteur adapté en fonction de la page.&lt;/p&gt;
&lt;p&gt;Mon avis personnel est l'attente d'un navigateur made in Microsoft réellement fidèle aux recommandations du W3C. Ceci afin de ne pas rencontrer à nouveau les problèmes que l'on a toujours avec IE6. En revanche, je salue Microsoft de permettre une migration progressive des sites vers les futurs standards.&lt;/p&gt;
&lt;p&gt;J'attends donc les retours de la fondation Mozilla (qui prépare dans l'année la sortie de Firefox 3) et d'Opera.&lt;/p&gt;</content><category term="Développement web"/><category term="Firefox"/><category term="html"/><category term="Internet Explorer"/><category term="Mozilla"/><category term="navigateur"/><category term="Netscape"/><category term="Opera"/></entry><entry><title>Le suivi de version...</title><link href="https://www.alkannoide.com/2008/01/31/le-suivi-de-version/" rel="alternate"/><published>2008-01-31T10:32:00+01:00</published><updated>2008-01-31T10:32:00+01:00</updated><author><name>admin</name></author><id>tag:www.alkannoide.com,2008-01-31:/2008/01/31/le-suivi-de-version/</id><summary type="html">&lt;p&gt;... ou dans le jargon technique le &lt;strong&gt;versionning&lt;/strong&gt; permet un suivi des évolutions dans le code. Gros avantage en cas de besoin, on peut revenir à une version antérieure et stable du code. Il permet également à plusieurs personnes de travailler sur un même code; ce code sera fusionné et évitera …&lt;/p&gt;</summary><content type="html">&lt;p&gt;... ou dans le jargon technique le &lt;strong&gt;versionning&lt;/strong&gt; permet un suivi des évolutions dans le code. Gros avantage en cas de besoin, on peut revenir à une version antérieure et stable du code. Il permet également à plusieurs personnes de travailler sur un même code; ce code sera fusionné et évitera tout écrasement de code. Plusieurs outils sont disponibles afin de permettre ce suivi de version : &lt;a href="http://fr.wikipedia.org/wiki/Concurrent_versions_system" target="_blank" title="CVS"&gt;CVS&lt;/a&gt; et &lt;a href="http://fr.wikipedia.org/wiki/Subversion_%28logiciel%29" target="_blank" title="SVN"&gt;SVN&lt;/a&gt;, d'autres outils existent...&lt;/p&gt;
&lt;p&gt;Personnellement, je suis plutôt adepte de SVN. Son intérêt est également d'avoir un ensemble d'application connexe pour le suivi des développements. En voici une liste exhaustive :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://trac.edgewall.org/" target="_blank" title="TRAC"&gt;Trac&lt;/a&gt; est un browser de visualisation du versionning. Il contient également un wiki.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.trac-hacks.org/wiki/TimingAndEstimationPlugin" target="_blank" title="Timing And Estimation Plugin"&gt;Timing And Estimation Plugin&lt;/a&gt; pour effectuer un suivi du temps pour différentes tâches (plugin pour trac)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.trac-hacks.org/wiki/WorkLogPlugin" target="_blank" title="WorkLogPlugin"&gt;Work Log Plugin&lt;/a&gt; permet le suivi des bugs (plugin pour trac)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.trac-hacks.org/wiki/DoxygenPlugin" target="_blank" title="DoxygenPlugin"&gt;Doxygen Plugin&lt;/a&gt; pour visualiser la documentation doxygen dans Trac.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour conclure, je considère le versionning comme indispensable dans le cadre de développement professionnel !&lt;/p&gt;</content><category term="Développement web"/></entry><entry><title>Ouverture des portes</title><link href="https://www.alkannoide.com/2008/01/08/ouverture-des-portes/" rel="alternate"/><published>2008-01-08T15:51:00+01:00</published><updated>2008-01-08T15:51:00+01:00</updated><author><name>admin</name></author><id>tag:www.alkannoide.com,2008-01-08:/2008/01/08/ouverture-des-portes/</id><content type="html">&lt;p&gt;Le blog ouvre ses portes... Je tenterais de l'alimenter au maximum mais surtout avec des informations de qualités. Je vais également modifier rapidement je pense le théme du blog.&lt;/p&gt;</content><category term="Développement web"/></entry></feed>