Décembre 2007

Ok… J’ai une idée de base… Elle tient donc en une phrase…

Je m’équipe alors de deux éléments indispensables : un papier et un crayon. Pas besoin de gomme, les ratures suffiront!!!
A ce stade, inutile de taper sur l’ordinateur sur un quelconque éditeur : la bonne vieille méthode archaïque et écolière a fait ses preuves!

Je me lance donc! Et – ô stupeur – l’idée de base se développe. Et même, donne lieu à des possibilités à laquelle je n’avais pas pensé à l’origine, et qu’il me paraît devoir creuser.
En moins d’une heure, j’ai deux pages de gribouillis que je décide de structurer et de mettre en forme sur mon ordi.

Me voilà donc rapidement avec une sorte de plan de possibilités offertes par l’idée première, et qui me semblent réalisables avec des technologies que j’étudie par ailleurs.

A ce moment, je me suis suffisamment documenté sur le net pour savoir ceci sur les technos en question:

WAMP (Windows / Apache / Mysql / Php – http://fr.wikipedia.org/wiki/Wamp) ou LAMP (Linux /Apache / Mysql / Php – http://fr.wikipedia.org/wiki/Lamp) est un excellent environnement web pour créer son serveur local sur sa machine et tester comme si vous étiez sur le net.
Il comporte donc un serveur Apache qui capte vos requêtes HTTP via la page web, un serveur Php qui les modifie en manipulant les données reçues au besoin – ce que ne sait pas faire le HTML – et/ou communique avec votre base de données en Mysql, avant de rendre la réponse traduite en HTML au serveur Apache, qui vous l’affiche sur le navigateur.
Je ne vais pas m’étendre sur le sujet, bon nombre de site vous indique tout ce processus.
Vous pouvez télécharger ce fantastique outil ici :
http://www.wampserver.com/

Le HTML (HyperTextMarkupLanguage – http://fr.wikipedia.org/wiki/Html) est le langage de base que les navigateurs reconnaissent et manipulent. C’est un langage de balise, très « primaire », mais ce qui fait de lui quelque chose de très simple à utiliser, même pour un non informaticien.

Le CSS (Cascading Style Sheet – http://fr.wikipedia.org/wiki/Feuilles_de_style_en_cascade) est un langage de présentation, qui, pluggué dans le HTML, permet d’agencer votre page plus finement, de créer un aspect plus harmonieux et ergonomique de votre site.
Il permet de désolidariser le contenu de l’aspect de la page. Ainsi, vous pouvez facilement changer la feuille de style et modifier la présentation de votre site, sans toucher au coding HTML, et donc, son contenu.

PHP (Hypertext Preprocessorhttp://fr.wikipedia.org/wiki/Php) est un langage serveur qui propose suffisamment de fonctionnalités pour faire une partie de ce dont j’ai besoin pour mon site : manipuler des images, par exemple pour les redimensionner. Il existe une bibliothèque gd2 à activer…
A activer??? Ca veut dire quoi???
Que lors de l’installation ou l’hébergement de votre environnement web, il faudra bien vérifier que votre serveur a bien la bibliothèque gd prise en compte. Si vous ne le faites pas, les objets que votre script PHP manipule ne fonctionneront pas, et ceux-ci tomberont en erreur, comme si vous utilisiez un vocabulaire inconnu de lui…
Par exemple, si on prend le cas de notre serveur PHP sur Wamp, il faut vérifier que php_gd2 est bien coché. Pour se faire, clic gauche sur l’icône de Wamp une fois actif dans la barre des tâches windows et aller sur: Php puis Php Extensions.
Langage serveur??? C’est à dire???
Cela signifie que le code que vous créerait tournera sur le serveur distant, chez l’hébergeur, et non pas sur le processeur de celui qui consulte à distance votre page web. Ainsi, si beaucoup de gens se connectent, votre serveur devra être à même de supporter l’ensemble des fonctionnalités que vous codez, à lui tout seul, sur plusieurs sessions simultanément.
Vous pouvez vous dire: et alors? Ce n’est pas son taff?? Si, en grande partie, mais la complexité de votre code induira automatiquement une demande accrue de puissance de la part de votre serveur, et vous risquez de l’étouffer si vous avez mal dimensionné votre architecture matérielle. On reviendra sur cet aspect plus tard…

Javascript (http://fr.wikipedia.org/wiki/Javascript) est un langage client. Donc, contrairement au précédent, il peut être exécuté sur la machine de l’internaute. Sauf que ces fonctionnalités globales sont bien moindres que Php.
Contrairement à Php, pas besoin de programme supplémentaire pour le faire tourner: le navigateur possède en natif un lecteur.
A noter que Firefox 3 et le futur Internet Explorer 8 optimisent la lecture et la gestion des scrips javascript, tant ils deviennent utiles avec l’avènement d’Ajax.

AJAX (Asynchronous JavaScript and XML – http://fr.wikipedia.org/wiki/Asynchronous_JavaScript_and_XML) n’est pas un langage! Mais un ensemble de méthode à mettre en oeuvre pour arriver à rendre votre site dynamique!
Il faut comprendre une chose: avant AJAX, un site devait être souvent « rechargé » sur toute sa page. Cela signifie que chaque bouton d’interaction sur la page induisait un appel général de recomposition de toute la page via le serveur. D’où grosses dépenses de transfert de données, de ralentissement, etc…
Or, lorsqu’on regarde un site/appli comme la messagerie Gmail de Google, on s’aperçoit que ce site est dynamique en temps réel, qu’il réagit comme un vrai logiciel en client lourd, installé sur votre poste: des messages apparaissent alors même qu’on n’a effectué aucune action!!! Et il ne met à jour qu’une partie du site – l’endroit où se trouve les messages – sans recharger toute la page!
Ce site est un pur produit des miracles d’AJAX, qui repose sur une commande javascript créé, par hasard, par Microsoft, et au doux nom de XMLHTTPREQUEST (http://fr.wikipedia.org/wiki/XMLHttpRequest).
Ca, c’est pour le côté javascript; AJAX comporte aussi un volet JSON et XML, qui permet l’échange de très petits volumes de données sous ces formats de fichiers entre le client et le serveur, sur une petite partie de la page, optimisant ainsi les temps de réponses; et en permettant de poursuivre des actions sur le client désynchronisé du serveur, qui vous rendra le résultat d’une tâche plus tard, sans bloquer la page sur laquelle vous travaillez.

Tout cela doit vous semblez bien technique et abstrait. Et j’ai mis moi-même bien du temps à comprendre. Mais il était « vital » pour mon projet que je comprenne ces notions.
Je ne dis pas que je les ai toutes bien comprises en novembre de l’an dernier. Mais du moins, je m’imprégnais de ces notions et, petit à petit, et avec ce qui va suivre, j’ai fini par piger ces apports et ce qu’ils allaient me permettre de réaliser.

Moins drôle à lire, ce blog, non?
Allez, pour vous détendre: un schtroumph marche dans la forêt. Il tombe et il se fait un bleu!!!!

Non? Je reprends mon blog plus technique? Ok, ça vaut mieux en effet…
Mais ce sera pour un autre jour, ce soir, je suis vanné!

A ce stade, j’ai une idée décrite. Et j’ai mis le doigt sur des technologies moins complexes que les RIA (http://fr.wikipedia.org/wiki/Rich_Internet_Application) dont font parties Flex (http://fr.wikipedia.org/wiki/Adobe_Flex) et RubyOnRails (http://fr.wikipedia.org/wiki/RubyOnRails)…

Ma graine sort ces racines :)