En direct de Networld+Interop

Plus grand rendez-vous européen des NTIC, j'aime bien venir prendre la température ici (à Paris) tous les ans! :p D'ailleurs puisqu'on en parle, la température, au sens propre, elle est glaciale! Il doit faire 17 degrés à tout casser. :( Bien heureux sont les visiteurs qui sont venus avec leur menteaux d'hiver... et bien malheureuses sous les hôtesses à qui l'on a demandé d'exhiber leur t-shirt moulant aux couleurs de l'entreprise qu'elle représentent. Certaines ont craqué et sont en anorak sur leur stand. On a presque envie de trouver la situation comique... Mais d'un autre côté, on se demande si l'économie des TIC va si mal qu'ils en sont arrivés à louer un hangar du parc des expos sans prestation de chauffage... |-|


Bon, changeons de sujet, je ne voudrais quand même pas vous faire croire que je suis venu regarder les hôtesses! :>> Côté tendances, la chose semble entendue: le salon est entièrement consacré au wireless sous toutes ses formes! Ceci dit, on aurait été surprit du contraire! ;)


Wi-Fi est au centre des préoccupations de tout le monde, opérateurs de téléphonie mobile compris, dans la mesure où ces derniers, avec leur offres GPRS, ne peuvent pas rivaliser en termes de débit. Même s'ils ne sont donc pas encore tout à fait au point en matière de forfaits combinés GPRS+hot spots Wi-Fi, ils se positionnent en équipant des hot spots à leur marque, même si l'accès y est commercialisé avec de bêtes cartes prépayées. Il ne faudrait quand même pas que le marché du haut débit wireless leur file entre les doigts! (Sur l'UMTS, ils ne sont pas très bavards... car probablement pas très fiers de l'état d'avancement des travaux...)


L'autre application Wi-Fi qui fait bcp parler d'elle, c'est la désserte en haut-débit des zones rurales, celles où l'ADSL ne va pas... et aura du mal à aller. En effet, il faut savoir que le coût d'équipement d'une ligne en ADSL par l'opérateur de boucle locale varie de 300 en centre ville à 10000 en rase campagne. Même si FT peut encore étendre les zones de couvertue rurale qui seront déficitaires grâces aux abonnements urbains qui sont eux fortement bénéficiaires, il y a une limite qu'ils ne franchiront pas (comme celà se passe pour les réseaux GSM par ailleurs). Cette limite constituera une vraie fracture de l'accès au haut débit sur le territoire. Dans quelques années on verra ça de la même manière que si aujourd'hui 10 à 20% des foyers n'avaient pas l'électricité! (Rappelons que EDF a encore un monopole là ou FT doit être un minimum concurrentiel...)


Une solution à ce problème est de créer des zones Wi-Fi reliées au reste du monde par une liaison satellite bi-directionnelle, type VSAT. Note: il s'agit bien là d'une hypothèse d'infrastructure subventionnée par les collectivités territoriale dans la mesure où le coût d'équipement satellite initial reste élevé.


A ce sujet on peut noter également la mise au point par ASTRA et ses partenaires industriels d'une technologie dénomée "satmod" (modem satellite) qui ouvrira aux particuliers une voie de retour en passant par des antennes de petite taille telles que celles utilisées actuellement pour la télévision (unidirectionelles pour l'instant, faut il le rappeler?). Si le surcoût de cette voie de retour satellite ne devrait pas excéder 50 €, le débit associé, quant à lui, n'est guère prometteur. Il faut plus considérer celà comme l'équivalent des SMS... en fait, un moyen de faire de la TV interactive, pas vraiment plus.


Toujours à propos d'Astra, j'ai appris avec bonheur que la TVHD allait enfin avoir un visage concrêt en Europe avec le lancement en janvier 2004 de 2 chaines en clair. Euro 1080 ça s'appelle (1080 comme 1080 lignes d'image au lieu des 620 actuelles).


Bon je m'arrête là pour le moment. Plus d'infos dans la presse demain! ;D

Industrialisation du web: un exemple

Pour bien fixer les esprits, je vais prendre un exemple proche de nos préoccupations quotidiennes de bloggeurs ;D : la vérification des referers.

Si vous enregistrez le referrer de chaque requête dans le but de l'afficher dans vos stats publiques, vous vous êtes sans nul doute déjà confronté au besoin de vérifier que le référant pointe bien vers votre site avant de le valider, ceci afin d'éviter le "referer spam". Il en est de même pour le comment spam.

Pour ce faire, vous devez déclencher une "contre requête" HTTP afin de récupérer et analyser la page référente. Cette opération est longue et ralentit d'autant le traitement de la requête d'affichage de votre page.

Certes, vous placerez judicieusement cette requête à la fin de votre page et déclencherez l'envoi de la page vers le client avant de commencer l'opération de vérification. Mais la connexion HTTP reste ouverte et le browser client indique qu'il continue de charger. A la limite, un utilisateur lambda pourra ne pas s'en rendre compte. En revanche, un robot d'indexation aura vite fait de classer votre site dans la catégorie des mammouths lents à la détente et donc à ne pas indexer trop fréquemment.

La chose se complique encore dans le cas d'un traitement plus évolué tel que l'enregistrement d'un nouvel article. Non seulement vous allez le stocker dans la base de données locale mais vous allez déclencher toute une série d'opérations en "cascade". Exemples:

  • Génération de pages statiques
  • Trackbakcs
  • Pingbacks
  • Pings de mise à jour d'annuaires
  • Envoi de mails aux abonnés
  • Syndication en mode PUSH

(Liste non exhaustive... :>>)

Avec une plateforme web basique (type PHP, ASP, etc...) vous laissez mouliner et vous partez boire un café (si vous êtes moins feignant, vous ouvrez une autre fenêtre). Bien évidemment, vous pouvez bidouiller. Qui a dit "pop-under"? Mais ce genre de solutions où l'on compte sur les capacités de scripting du client pour assurer la cohérence des traitements sur le serveur est vraiment tout sauf recommandable. >:XX Tout celà reste acceptable dans le cadre d'un site web perso (et à budget limité), pas dans un contexte professionnel, ni avec un minimum d'ambition.

Une plateforme telle que J2EE (à ne pas confondre avec un simple script Java) ou .NET (à ne pas confondre avec un simple script ASP) permet de traiter ce type de problème de manière tout à fait élégante.

Pour faire simple et parce que ce post commence à être long, tous les traitements énoncés ci-dessus vont être passés à une (ou plusieurs) file de messages. Cette "message queue" fera exécuter les traitements annexes et non "urgents dans la seconde afin de répondre à la reuqête" par un composant dédié à cette tâche et travaillant de manière asynchrone.

Un autre exemple est le déclenchement sans intervention de l'utilisateur de tâches telles que l'envoi d'emails de résumés quotidiens, la réindexation périodique ou encore la génération de snapshots statiques à intervalles réguliers.

Alors évidemment, les message queues et les traitements asynchrones peuvent parfaitement cohabiter à côté de technologies que j'ai qualifiées de "basiques" telles que PHP. Mais on est déjà là en train de construire une plateforme plus évoluée qui n'a plus rien à voir avec ce que l'on trouve chez un hébergeur low-cost par exemple. C'est le début d'une grosse machinerie... et on aura vite fait de préférer une machinerie standardisée, documentée et maitrisée par un certain nombre de personnes (J2EE, .NET) plutôt qu'une machinerie propriétaire, issue d'un individu isolé, aussi géniale soit-elle.

Eclipse for PHP, eclipse for everyone!

I really like Eclipse as a Java IDE, I do! :D

However I'm getting really tired of having a different IDE for each language I am working with, no matter how cool those IDEs might be. Different display conventions, different keyboard shortcuts, different project browsing... :(

Microsoft sure has this right with their Visual Studio where you use an as-uniform-as-can-be IDE no matter what language you use: C++, C#, VB... Hum well, the problem is that it's a) quite expensive (unless you're completely commited to .NET and have an MSDN subscription anyway) and b) best suited to Microsoft supported languages. Java and PHP poorly qualify for this... :-/

The really nice thing that I found out today is that Eclipse is actually really beggining to become a common IDE even outside of the Java world! B)

As a matter of fact, I found no less than TWO very promising extensions for PHP:

Both of these are open source and have the minimal you could expect: PHP syntax coloring. TruStudio also supports Python and integrates a complete debugger interface. However I prefer PHPEclipse because it already has code completion where TruStudio only has contextual help.

Anyhow, it's very difficult to choose between both implementations so far since they both have pros and cons. You have to try them out both. Installation and removal are straightforward (just unzip or delete folders from the plugins directory). You'll also find out that you cannot use both at the same time (one PHP editor will disable the other one).

Those products will surely be very nice to use when they mature... but in the meantime they just add to the mess of finding the right IDE that does everything you need and does it right... 8|

Java: merci IBM!

Tout comme pour Linux, je suis persuadé que si la plateforme Java a pris l'importance qu'elle a aujourd'hui, c'est grâce à IBM et non pas Sun.


Sun a formalisé un language largement inspiré de C++ pour la syntaxe et de Basic (n'ayons pas peur des mots! :>>) pour le principe d'interpréteur avec garbage collector. Un truc rigolo qui, une fois dôtés d'interpréteurs multiples (des JVM pour tous les OS) permettait de toucher du doigt le doux rêve de "Write once, run anywhere". Je dis toucher du doigt, parce que la réalité ressemblait plus à "Write once, debug everywhere", dans la mesure où les JVM n'étaient que vaguement uniformisées, tant au niveau de l'implémentation que des versions des specs auxquelles elles essayaient de se conformer.


IBM a repris le language et ses classes de base (J2SE) et lui a ajouté tout ce qu'il fallait pour devenir une véritable plateforme d'exécution d'applications d'entreprises distribuées (J2EE), même si officiellement, le "père" du système est Sun.


On peut trouver d'autres exemples, par exemple l'interface graphique. Après des débuts cahotiques, Sun a dôté Java d'un système d'interface graphique (multi plateforme évidemment) dénommé Swing. C'est ~`grâce à Swing'~ que la plupart des applications Java affiche aujourd'hui ce look à la Fisher Price qui irrite l'oeil avant même d'agacer par sa lenteur. IBM, à l'occasion du développement d'Eclipse, a dôté Java d'une interface graphique digne de ce nom: SWT (même si le nom SWT en lui même n'est pas forcément très explicite). Il suffit de jetez un coup d'oeil à Eclipse (l'appli, pas le site!) et l'on comprend tout de suite la différence, c'est sobre, réactif, efficace. Bref, c'est signé IBM et non pas Sun. :>>

Conception logicielle

Dans la série "Chers développeurs, bienvenue dans l'ère industrielle", j'aimerais citer Philippe Kruchten (Rational Software):

"La programmation est une activité plaisante, mais la production de logiciels de qualité est un exercice difficile. Des bonnes idées et des spécifications ou de la "vision" à la réalisation d'un logiciel fonctionnel, le chemin est long et dépasse de loin les questions de programmation."