AlcionTech

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 3 octobre 2007

L'évolution des langages web

Aujourd'hui les développements web s'articulent principalement autour

Des travaux sont actuellement en cours au sein du W3C pour préparer les évolutions qui seront prises en charge par les prochaines générations de navigateurs.

longue-vue-telescopique.jpgHTML5 (auparavant Web Applications 1.0)
Apple, Opera et la fondation Mozilla se sont associés de manière informelle au sein du Web Hypertext Application Technology Working Group (WhatWG) pour donner naissance au successeur du HTML4.1 figé depuis 8ans. Le W3C a pris ensuite le résultat de ces travaux comme base.
Les specs du HTML5 et de son équivalent XML, appelé XHTML5, sont à l'état de draft.
Pour ceux intéréssés par les nouveautés, un article d'IBM mérite une lecture. La synthèse de la prise en charge par les navigateurs est disponible ici.

ECMA-262 edition 4
A la base du futur Javascript 2, la naissance de la 4eme édition des specs de l'ECMA-262 a été lente et laborieuse pour cause de vision divergente entre Mozilla et Microsoft. Toutes les infos sur l'état courant sont sur un wiki.
On annonce une machine virtuelle et un compilateur JIT (appelée Tamarin dans Mozilla2).

Les microformats
Supportés par Firefox3 et IE8, les microformats visent à faciliter l'extraction automatique de contenu web en attachant de la sémantique aux données. Une introduction se trouve sur le site de référence.

lundi 24 septembre 2007

OpenBar AlcionTech 4 octobre : Intégration Continue sous J2EE et .NET

rose.jpgVous êtes cordialement invités à l'Open Bar AlcionTech, Jeudi 4 octobre à 18h30 au siège. Une collation sera servie.


L'intégration continue est une pratique de développement logiciel où chaque membre d'une équipe intègre ses travaux fréquemment, au moins une fois par jour. Chaque intégration est contrôlée par un build automatique (incluant des tests) de manière a détecter le plus tôt possible les anomalies.

L’expérience a montré que cette démarche conduit à des gains substantiels en terme de coûts de développement. Malheureusement encore trop peu de projets la mette en place.

Après une approche théorique rapide, nous vous montrerons une mise en application de la CI autour d’un projet J2EE avec Maven&Continuum et d’un projet .NET avec Ant&Cruise Control.

Yayoo! Pipes ou les prémices du nouveau web

Tim O'Reilly le considère comme le service qui va changer l'internet parce qu'il met enfin le web en tant que BD à la portée des non-informaticiens.
YahooPipes-logo.gif Ce service, c'est Yahoo!Pipes et ca permet de faire des aggégations très intéressantes.
Prenons l'un de ses exemples phares: le GeoAnotated Reuters News. Ce pipe récupère les 10 titres à la une dans un rss Reuters et alimente un service de conversion rss vers georss pour fournir un georss. Si vous regardez le source, vous verrez la présence des balises xml <geo:lat> et <geo:long>.
Ce flux est ensuite traité pour afficher les résultats dans une carte.

Evidemment, il ne vous a pas échappé qu'il était déja tout à fait possible de coder cela soi-même avec des HttpRequest pour peu d'avoir les compétences en javascript adéquates. La grande force de Yahoo!Pipes est d'offir une IHM masquant la complexité du code et de permettre le clônage des pipes produits.
Yahoo! Pipes et Dapper (vu dans le précédent billet) sont très complémentaires puisque le 1er peut produire le rss si celui-ci n'existe pas dans un site et le 2ème le manipuler aisément. Par exemple, si l'on souhaite représenter sur une carte les évolutions journalières des bourses asiatiques, on créé le Dapp à partir de Bloomberg, puis le pipe pour géolocaliser les bourses.

Dapper ou le web scrapping pour les pros

Disons que nous concevons une application web de gestion de porte-feuille boursier et que nous avons besoin des cours de clôture à J-1 de l'indice CAC40 pour les retraiter ensuite suivant nos besoins. Comment allons-vous nous y prendre?
Le site d'Euronext présente quelque chose de bien intéressant: une table HTML avec les 40 valeurs de l'indice. Un service de téléchargement au format cvs ou excel est proposé mais ce n'est pas vraiment le flux de données le plus simple à traiter par notre application. Une autre solution peut consister à parser nous même le flux html pour extraire les informations pertinentes mais là encore le travail n'est pas simple. Alors?
dapper-logo.gifL'idée est de dapper le contenu du tableau grâce au service web proposé par Dapper. La simplicité de l'opération est tout simplement fantastique puisqu'il nous faut 10mn maximum pour créer un générateur de flux xml adapté à nos attentes et le rendre disponible en ligne ici. Dans le fichier de sortie, chaque action est présente sous la forme:

<action groupName="action" type="group">
    <libelle fieldName="libelle" href="http://www.euronext.com/trader/summarizedmarket/summarizedmarketRoot.jsp?lan=FR&amp;selectedMep=1&amp;idInstrument=18775&amp;isinCode=FR0000120073" originalElement="a" type="field">AIR LIQUIDE</libelle>
    <cloture fieldName="cloture" originalElement="td" type="field">94.57</cloture>
    <volume fieldName="volume" originalElement="td" type="field">138,637</volume>
    <varEnPourCentJsurJmoins1 fieldName="varEnPourCentJsurJmoins1" originalElement="td" type="field">-0.32</varEnPourCentJsurJmoins1>
</action>

nous pouvons également choisir le format de sortie json si nous préférons.

Tous les sites web deviennent ainsi potentiellement des web services grâce à ce web scraping.

jeudi 20 septembre 2007

Gérer les browsers à l'heure des RIA

valid-css2.pngLes Rich Internet Applications présentent bien des avantages mais il faut leur reconnaitre un inconvénient majeur du point de vue de l'ingéniérie logicielle: l'obligation de gérer différents navigateurs.
Le marché des navigateurs est dominé par 2 acteurs: Microsoft Internet Explorer (avec environ 80% de PDM en légère décroissance) et Mozilla Firefox (avec environ 15% de PDM en légère croissance). Si IE6 domine encore (45% de PDM), IE7 prend petit à petit sa succession (35%). Du côté de firefox, la version 2 est devenue ultra-majoritaire. Le bilan est donc qu'il convient de veiller en ce moment à la compatibilité de son application avec 3 navigateurs dans le cas d'un développement destiné au grand public.
Il existe des technologies permettant de faire abstraction du navigateur comme les applets Java ou Flash mais cela oblige l'utilisateur à posséder une JVM ou des plugins spécifiques (dans la bonne version) ... et l'ingénieur les compétences.
valid-xhtml10.pngUne des grosse tendance de ces dernières années est l'utilisation d'AJAX, ce qui revient à utiliser le javascript, le DOM et les feuilles de styles. Si les choses se passent bien en terme de portabilité avec la syntaxe du javascript, les ennuis apparaissent lorsqu'on accède au DOM, chaque browser ne gérant pas les mêmes entités. Les spécifications du W3C vont vers une standardisation mais celle-ci est lente. On retrouve exactement le même phénomène avec les feuilles de styles (les specs sont ici).

Pour y avoir passé plus d'heures que je n'aurais voulu sur différents projets, il est fondamental d'éviter le champ de mines du cross-browser compliance si l'on veut respecter les délais d'un projet de RIA. Pour cela on s'appuiera au maximum sur les librairies et frameworks disponibles en veillant à régulièrement tester le rendu dans les navigateurs cibles et surtout pas uniquement à la fin des développements.
Notez bien que les librairies ne font pas tout. La RIA Alcionbooks est par exemple non complètement fonctionnelle sous IE dans sa V1.0 malgré l'utilisation de scriptaculous et de nombreuses heures passées dessus par Eric.

lundi 17 septembre 2007

N°100 du magazine Programmez

Le magazine mensuel des développeurs Programmez fête sa 100ème édition avec le n° de ce mois (actuellement en kiosque). Souhaitons donc un bon anniversaire à ce magazine de qualité.
Parmi les sujets traités, un très intéressant dossier sur l'avenir du métier de développeur.

PS: Si vous passez au siège, je peux vous le prêter...

jeudi 13 septembre 2007

And the award goes to...

Dans un univers opensource très mouvant, il est bon d'avoir quelques repères.

Le site Infoworld vient de sortie son cru 2007 des Bossie awards qui vise à distinguer les meilleurs logiciels opensource destinés aux entreprises. Il y a différentes catégories dont le software development.
On extrait particulièrement 3 résultats:

N'hésitez pas à donner votre avis sur ces résultats...

mercredi 12 septembre 2007

AJAX et web scraping

Vous avez sûrement déja constaté que la plupart des pages web agrègent des données provenant de différents sites. Cela peut se faire de bien des manières, de la simple balise html iframe jusqu'aux web services. Par ailleurs, certains sites comme wikipedia fournissent régulièrement aux publics les dumps de leur BD qu'il convient d'importer dans son propre SI aux prix de coûteuses manipulations.
Sans aller jusqu'à cette extrémité, dans une optique de data mining, il est parfois très intéressant de construire sa propre page web en agrégant le contenu partiel (statique ou dynamique) de plusieurs autres pages sans qu'un protocole autre que http soit disponible et donc pratiquer le web scraping. C'est ce que nous faisons avec notre Dashboard. qui synthétise des informations arrivant en format mediaWiki, encapsulées entre 2 balises <text> dans plusieurs pages XML, dans une page locale unique au format html.
Ce type d'architecture logicielle est dite RESTful.

La faisabilité technique repose sur l'objet XMLHttpRequest et c'est lui qui se cache derière le A de AJAX en permettant de lancer des requêtes asynchrones à un serveur http.
L'exemple le plus connu reste google maps où le contenu de la zone carte/image satellite évolue avec les actions de la souris dans la page.

Dans le Dashboard, les appels au serveur wikipedia ne sont fait qu'une seule fois au chargement de la page et le DOM de la page est modifié une fois la page affichée (où le tableau est alors vide). A ce titre nous faisons probablement du AJAX lite ;)

L'étape la plus délicate n'est pas la récupération cachée d'un flux de donnée http mais le parsing de ce flux qui ne se prête pas forcément bien à l'extraction de données. Une fois les infos repérées avec la méthode de l'objet String indexOf, substring permet leur extraction et innerHTML leur réinjection dans la page courante.

Cette méthode autorise par exemple la construction de cette vue synthétique de variation de cours boursiers à partir des pages boursorama.
Screenshot.Ajax.CoursBourse.png
PS: Ce billet passe sous silence d'éventuels copyrights qui peuvent exister sur les contenus ainsi récupérés.

lundi 10 septembre 2007

Dashboard of software release versions

UPDATE 09/20/2007: V1.5 released with several code improvements to be cross-Browser compliant. This version uses the localhost web proxy by default (see why here) and the scriptaculous library.

When you manage a set of application software, more often than not it's time wasting to check if it's still up to date by browsing home site by home site. Here comes the freely available Dashboard of software release versions annexed to this article.
It's based on a xml file where you store data about your own configuration, application by application in a similar way to the sample below.

	<application>
		<!-- URLradical is taken from the wikipedia url-->
		<URLradical>Apache_Tomcat</URLradical>
		<currentVersion>6.0.13</currentVersion>
	</application>

The dashboard is a HTML page which retrieves data from both the xml file and wikipedia using Microsoft.XMLDOM and Msxml2.XMLHTTP objects. Everything is done client-side. In other words, no http server is required.

dashboard.screenshot.png

The screenshot of the dashboard related to our continuous integration platform tells us at a glance that new versions of Apache Tomcat, Apache HTTP server and Subversion have already been released since the release of the platform.

Known limitations:

  1. depends on the content of wikipedia pages (more precisely the infobox software tag. For example, Apache Continuum has no infobox yet, thus the error in the screenshot).

mardi 4 septembre 2007

Mesurer un temps de réponse web avec Pingdom tools

Votre page web met trop longtemps à s'afficher... Avant même de procéder à des tests de charge, une mesure unitaire permet d'identifier des causes importantes de sous-performance : latence, temps de construction de la page, débit réseau, complexité du webdesign - feuilles de styles, images...
Ce n'est que dans un deuxième temps qu'une intervention en profondeur - dans la configuration du serveur applicatif, voire dans le code contribuant à la génération des pages - devient justifiée.
L'outil mis à disposition gratuitement par Pingdom, en ligne, permet de procéder à cette première analyse.
http://tools.pingdom.com/fpt/

Les cordonniers étant proverbialement mal chaussés, on constate que notre instance de dotclear - qui motorise ce blog - n'est pas un foudre de guerre...
http://tools.pingdom.com/fpt/?url=www.alciongroup.com/alciontech
Enfin, il faut tenir compte de la localisation de l'outil - aux US - pour analyser les latences mesurées.

mercredi 29 août 2007

Alcionbooks v1.0 en service

AlcionGroup.DT.Alcionbooks.Image.01.jpgLa volonté d’ALCION GROUP de se doter d’une bibliothèque technique résolument moderne et professionnelle a conduit cet été la DT à mettre en place son catalogue sous forme électronique. Dorénavant un poste dédié en accès libre (dit PAL) situé juste à côté de la bibliothèque permet de rechercher des ouvrages, enregistrer ses emprunts et ses retours au moyen d’un lecteur de codes ISBN, et de consulter son compte usager.

Félicitations à Eric Metz pour le travail accompli pendant son stage.

161 ouvrages issus des bibliothèques de NSL, ARI, Datus, Alcion et ALCION GROUP sont d'ores et déjà disponibles en libre service à l’ensemble des collaborateurs de la société, alors n’hésitez pas à passer dans la salle de la DT.

Un petit peu de teasing pour la v2.0 : la DT travaille à la mise à disposition de certaines fonctionnalités d’Alcionbooks via l’intranet. Ainsi le catalogue pourra être consulté à distance et vous pourrez même faire des réservations d’ouvrage en ligne. C’est prévu pour Octobre et on en reparlera dans ces colonnes.

lundi 27 août 2007

Le Project Object Model de Maven en pratique

logo_built_by_maven.png Le POM est au coeur de la statégie de build proposée par Apache Maven. Il permet de gérer simplement à partir d'un fichier XML une grande partie de la problématique de récupération des sources, de la gestion des dépendances, de la compilation, du déploiement et de la génération de rapports (comme ici et ici sur le projet NAG).

Ce billet n'a pas vocation a expliquer le POM, puisque de très bons articles techniques le font déja ici et ici.Par ailleurs une étude directe du schéma n'est pas dénuée d'intérêt non plus.

Ce qui peut paraitre manquant c'est un document opérationnel synthétisant toutes ses connaissances dispersées. c'est à ce titre que la DT vous propose en annexe un template de POM qui vous facilitera la mise en application de Maven sur vos projets Java.

PS: Maven fait partie de la PFIC Java/J2EE d'AlcionGroup.
PS2: Apache Continuum exploite les infos contenues dans le POM pour intégrer en continu.

vendredi 24 août 2007

Un beau projet vient de s'achever...

AlcionGroup vient de réaliser pour le compte de la société Stein Heurtey une IHM pour son système d'optimisation de réchauffage pour procédés complexes.
L'IHM a été réalisée en C# .Net 2.0 et s'interface avec le reste du système via des fichiers binaires et sockets TCP. Elle comporte une vingtaine de fenêtres regroupée en MDI comporant des graphiques évolués et redimensionnables à la volée (position et température des produits dans les fours, puissance des bruleurs, temps de résidence...).
L'application permet également un masquage complet du système d'exploitation et une gestion avancée des langues.
Un petite démo vous présente cette application ci-dessous:

Félicitations à Réda B. et Clélio C. pour leur travail.

vendredi 17 août 2007

Une plate-forme d'intégration continue J2EE sous Win32

Pour célébrer la rentrée et vous aidez à mettre en pratique les bons principes du génie logiciel, la DT met à votre disposition une Plate-Forme d'Intégration Continue pour J2EE sous Windows. Elle est immédiatement opérationnelle, et de plus, portable, dans le sens où elle peut être mise sur une clef USB. PFIC.png Cette PFIC est exclusivement construite par l'intégration d'outils opensource: Eclipse pour l'IDE, Subversion pour le SCM, Maven pour le BUILD, Continuum comme CIM et Tomcat comme Serveur Web. De plus Une distribution Xampp (Apache-PHP-MySQL) est également fournie.
Toutes les infos sont disponibles dans le doc ci-joint.
Le Package est disponible sur le serveur de domaine (Telechargement/Serveur/PFIC).
Eh oui on est comme ça à la DT d'Alcion: généreux avec vous ;)

PS: prévoir au minimum 500Mo d'espace disque.

mercredi 8 août 2007

API Java et Windows Registries

Depuis la version 1.4 de Java, un package java.util.prefs.* est apparu. Il permet de gérer des préférences qui correspondent à des informations organisées d'une manière hierrarchique.

La manière dont les informations sont stoquées est masquée par l'interface java.util.prefs.PreferencesFactory

L'implémentation utilisée peut être configurée comme argument de la JVM: java -Djava.util.prefs.PreferencesFactory=com.MyPreferencesFactory

Sous Windows, et dans le cas où aucune implémentation n'est fournie, c'est java.util.prefs.WindowsPreferencesFactory qui est prise par défaut.

Cette dernière se base sur les registres Windows et stoque les informations sous HKEY_CURRENT_USER\Software\JavaSoft\Prefs.

Pour plus d'information: http://www.ociweb.com/jnb/jnbSep2001.html

lundi 6 août 2007

Intégrer en continu...

UPDATE: Précisons que l'intégration continue peut très bien se coupler à n'importe quelle méthodologie de développement logiciel: cycle en V, Unified process, Scrum, Extreme Programming, ....


Un sujet actuel: l'intégration continue (continuous integration) est une stratégie de génie logiciel visant à répérer le plus rapidement possible les éventuelles régressions d'une application par passage de jeux de tests dès la mise en version du code.
On trouve une très bonne introduction sur le site de Martin Fowler, père du terme.
Alcion Group possède une plate-forme d'intégration continue pour .NET autour de Nant et CruiseControl dans le cadre du projet MGV et des études sont faites pour un avoir une pour J2EE (Maven, Continuum, ...).

Si vous même avait une expérience du sujet, n'hésitez pas à en faire part dans les commentaires.

mardi 24 juillet 2007

L'agilité vue par CNN

CNN Money a publié une liste des personnes, produits, tendances et idées, qui selon eux, sont en train de transformer le monde des affaires.

Et parmi Steve Jobs, Google, Schwarzenegger.. on trouve le developpement agile de logiciel à la 18ème position..

jeudi 19 juillet 2007

Projet qui rit, projet qui pleure...

UPDATE: Un article qui prolonge le sujet: Top 10 Project Pitfalls You Can Avoid.

TriangleQualiteNotre vie d'ingénieur logiciel est ponctuée de projets qui se passent parfois très bien, parfois malheureusement très mal, et le plus souvent à peu près bien (ou à peu près mal).
Un de vos rôles (souvent implicites), et ce quelque soit votre fonction, est d'identifier au plus vite si vous êtes sur un projet qui dérape et de proposer les actions correctives nécessaires.

2 articles recommandés (en anglais) traitent du sujet: Comment identifier les projets en difficulté? et Comment sauver un projet?

Générateur de nombres aléatoires

Comme beaucoup le savent, la génération de nombres aléatoires n'a jamais été vraiment aléatoire en informatique.
En C++ par exemple, on utilise généralement les fonctions srand() et rand() fournies par la librairie standard.

Tout cela pourrait bien changer prochainement avec l'apparition d'un nouveau service online gratuit appelé Quantum Random Bit Generator qui permet d'obtenir de véritables nombres aléatoires en s'appuyant sur le phénomène physique quantique d'émission de photons dans les semiconducteurs.

A découvrir absolument...

lundi 16 juillet 2007

De l'importance de Spring

Les idées derrière Spring (tissage et découplage) pourraient bien être ce qui est arrivé de plus important à J2EE ces 5 dernières années, et servir de boussole pour la suite.
Qu'en pensez-vous ?

vendredi 13 juillet 2007

Bientôt la bibliothèque en ligne (teasing ;)...

Alcionbooks Vous rêviez de pouvoir consulter le catalogue de la bibliothèque de chez vous...

Vous rêviez de pouvoir suivre vos emprunts...

Vous rêviez de pouvoir réserver un ouvrage ou voir sa disponibilité...

Vous rêviez de pouvoir suggérer des achats d'ouvrages...

Et nous rêvions de vous donner satisfaction...

Depuis quelques semaines, Eric Metz est en stage chez nous et travaille d'arrache-pied à mettre en place le catalogue électronique de la bibliothèque d'AlcionGroup dans le cadre d'un projet de la DT. D'ici quelques semaines ce service sera mis à votre disposition.

On en reparle bientôt :)

De l'importance de la gestion des exigences

Une exigence en ingéniérie informatique est un besoin fonctionnel ou technique que le produit du projet doit satisfaire. Il doit être idéalement sans ambiguité et purement quantitatif.
Example:

Le système doit afficher l'écran mis à jour en moins de 2s une fois le bouton de validation cliqué.

ApplicationLifecycleOn ne le dira jamais assez: la gestion des exigences est une cause fondamentale de la réussite ou de l'échec d'un projet.
Dans un processus de développement, il est illusoire de croire que l'on n'aura jamais besoin de "revenir en arrière", c'est à dire de retoucher au jeu initial d'exigences. Le versionning d'exigences est une réalité au même titre que le versionning de code.
Dans encore trop de projets, les exigences sont gérées dans des documents Office qu'il est bien difficile de tenir à jour. Heureusement il existe des outils dédiés à la gestion des exigences facilitant la collecte, la collaboration et l'analyse d'impact tout au long du cycle de développement logiciel. On citera Telelogic doors et Borland Caliber mais il en existe d'autres sur le marché.
Ces outils sont en général des modules d'une suite de logiciels couvrant tout les aspects de l'Application Lifecycle Management (planifier, définir, concevoir, tester) à partir d'un repository unique de données.

jeudi 12 juillet 2007

Injection SQL / Moyens de s'en prémunir

L'injection SQL est une faille de sécurité présente dans de nombreux systèmes. Par exemple si vous saisissez comme login a' or 't'='t dans un système qui va valider le login par une requête SQL élaborée ainsi :

statement := "SELECT * FROM users WHERE name = '" + login + "';"

conduit à exécuter la requête SQL suivante :

SELECT * FROM users WHERE name = 'a' or 't'='t';

La clause where étant toujours vraie, la requête retourne tous les utilisateurs de la table... Encore plus dangereux, si le login saisi est a';DROP TABLE users; SELECT * FROM data WHERE name LIKE '%, ce qui exécute :

SELECT * FROM users WHERE name = 'a';DROP TABLE users; SELECT * FROM data WHERE name LIKE '%';

qui supprime la table des users ! Heureusement, ce fonctionnement ne serait possible que sous Microsoft SQL Server.

Outils de détection

Security Hacks a élaboré une liste des 15 meilleurs scanners pour ce type de vulnérabilité ; voici les 3 premiers :

SQLIer - SQLIer takes a vulnerable URL and attempts to determine all the necessary information to exploit the SQL Injection vulnerability by itself, requiring no user interaction at all. Get SQLIer.

SQLbftools - SQLbftools is a collection of tools to retrieve MySQL information available using a blind SQL Injection attack. Get SQLbftools.

SQL Injection Brute-forcer - SQLibf is a tool for automatizing the work of detecting and exploiting SQL Injection vulnerabilities. SQLibf can work in Visible and Blind SQL Injection. It works by doing simple logic SQL operations to determine the exposure level of the vulnerable application. Get SQLLibf.

Sortie d'Eclipse 3 "Europa", nouveaux plug-ins

http://www.eclipse.org/europa/ Quoi de neuf dans l'IDE utilisé par 60% des développeurs ?

  • Meilleur support pour C/C++ et pour les langages dynamiques (Ruby, Python) ;
  • Ouverture à des fonctionnalités colaboratives multimedia (intégration voix, chat...)
  • Fonctionne sous Vista.

Mais surtout, une mise à jour massive de 21 plug-ins pour toujours plus de productivité, en CSS, en JSF par exemple, sortis ensemble, packagés, testés, validés compatibles ! Ci dessous la liste de ces plug-ins par Benoit Courtine.

Lire la suite...

Ruby on Rails : slides, démo et liens

rails-small.pngMerci à Aurélien Drouet pour son intervention convaincante :

Lire la suite...

mardi 10 juillet 2007

Référence > une liste d'algorithmes

Quelques centaines d'algorithmes réunis en un endroit unique. C'est sur Wikipedia.

• 1 Combinatorial algorithms • 2 Compression algorithms • 3 Computational geometry • 4 Computer graphics • 5 Computer vision • 6 Cryptographic algorithms • 7 Digital signal processing • 8 Software engineering • 9 Medical algorithms • 10 Neural networks • 11 Genetic Algorithms • 12 Numerical algebra • 13 Number theoretic algorithms • 14 Numerical algorithms • 15 Optimization algorithms • 16 Parsing • 17 Quantum algorithms • 18 Theory of computation and automata

Microsoft rendra-t-il .NET portable "Everywhere" ?

300px-DotNet3.0.png.NET ne se déploie bien que sur Windows. Ceci n'est pas une insulte aux développeurs de Mono qui essayent de développer les moyens de faire tourner .NET sous linux, c'est un constat issu du terrain. Au moins pour la partie serveur.
Pour ce qui est de l'environnement client (celle qui permet d'exécuter une IHM, à l'instar d'une JVM sur poste utilisateur permettant d'exécuter une application swt ou Swing), il y a un intérêt évident à rendre la technologie présente sur tous les systèmes d'exploitation. Ce mouvement ne se fait pas sans ratés :

MySQL et les caractères spéciaux

Une entrée de blog très concrète sur les accents que l'on perd en migrant une base MySQL sur une plate-forme différente.
http://www.orthogonalthought.com/blog/index.php/2007/05/...

L'auteur est célèble pour son site "Cooking for Engineers", des recettes de cuisine qui ressemblent à du code !

mercredi 4 juillet 2007

Mémoire d'éléphant : au coeur de Myspace, Ebay...

7623.jpgLes grands de l'e-business rencontrent des problématiques logicielles sévères. Cependant, elles ne sont pas spécifiques aux mastodontes : elles se déclinent à toutes les échelles.
Une compilation de liens rares et précieux sur les secrets les mieux gardés de l'industrie.
Des jours et des jours de lecture captivante :-) !

MySpace : de 0 à 140 millions de comptes en peu de temps :
un article détaillé dans Baseline.

Une présentation technique détaillée d'Ebay, ses 2000To de données, pour (chaque jour) 1 milliards de pages vues (construites en XSL !) et 26 milliards de requêtes SQL. 100 000 lignes de code nouveau sont mises en production chaque semaine ! Et dans CIOInsight, la vision organisationnelle qui va avec.

Chez Amazon, une approche idéaliste de la SOA qui semble fonctionner : partitionner le gros problème en 50 petits, rendre une équipe responsable de chacun (par exemple : la page d'accueil, le profil utilisateur, le catalogue, le module de suggestions...) de bout en bout (ses propres serveurs, ses propres bases) avec une connexion SOA systématique entre modules afin de favoriser le découplage. Le détail dans une interview passionnante de Werner Vogels, leur directeur technique.

Et du côté de chez Google ? Après PageRank, l'algorithme qui nous a enfin permis de trouver quelque chose sur le web, GFS, innovation majeure dans le stockage (réunir plusieurs milliers de machines pour stocker un unique très gros fichier présenté comme tel aux applications), nous avons aimé :

  • cette interview d'Amit Singhal, en charge de l'algorithme de recherche et de la qualité des résultats, notamment sur les évolutions récentes ;
  • Le responsable des opérations parlant du fonctionnement des machines et de l'organisation des logiciels et des données ;
  • un article de fond offrant une vue détaillée de la technique et du business.

mardi 3 juillet 2007

OS Cache

OSCache est une solution de cache opensource Java qui se présente sous trois formes : filtre de servlet, taglib JSP et API.

Nous avons employé cette solution dans le cadre de la refonte d’un site Internet à grande fréquentation. Voici, en quelques points pratiques, ce qui distingue OSCache des autres solutions opensource.

Lire la suite...

vendredi 29 juin 2007

OpenBar AlcionTech le 11 juillet : Développement rapide avec RubyOnRails

rails-podcast.pngPour ce dernier rendez-vous avant l'été, nous mettons un coup de projecteur sur une nouvelle technologie dont beaucoup ont entendu parler mais que peu ont eu l'occasion d'utiliser.

Ruby On Rails est une plate-forme open-source dont la promesse est de permettre le développement rapide d'applications relativement simples, en interface web, sur une base de données.

Basée sur un langage de script objet apparu dans les années 90 - Ruby - RoR permet, grâce à la simplicité de sa configuration, le recours à de nombreux implicites, d'éviter les répétitions et de simplifier les développements. Les zélotes parlent développement 10 fois plus rapides (qu'en J2EE ou .NET), et de "framework hautement productif".

Aurélien Drouet, qui a pu développer plusieurs applications pour un leader de la distribution, nous fera bénéficier de son retour d'expérience par une présentation générale accompagnée d'une démo, et nous aidera à y voir clair dans l'énorme éco-système Ruby On Rails en cours de développement. Enfin, il nous dira pour quelles applications utiliser Ruby On Rails... et celles pour lesquels c'est inadapté.

Le 11 juillet à 18h30 au siège.

vendredi 1 juin 2007

Conférence technique animée par Jaxio

Le commencement de tout projet, nouvelles technologies ou autre, nécessite la mise en place d'un socle technique sur lequel va reposer l'ensemble de la logique métier de l'application future. L'expérience montre que bon nombre de développeurs, ont recours à une sorte de boite à outils qu'ils ont dû mettre en en place petit à petit au fil des projets et qui se compose de frameworks, classes utilitaires, bonnes pratiques etc.

Jaxio propsoe une solution élégante basée sur un générateur d'application reposant sur le modèle de la base de données pour générer le squelette de l'application. En quelques minutes, le temps du lancement du générateur, une application packagée est prête à être déployée sur, en théorie, n'importe quel serveur J2EE.

L'application résultatnte est plus qu'un socle technique: elle propose la majeur partie des widgets qu'on trouve dans une IHM classique: tri, pagination, changement de look and feel en quelques clicks

Lire la suite...

jeudi 31 mai 2007

Performances ressenties : Mac Plus (1986) contre Windows XP (2007)

testmacplus.jpgUn surprenant comparatif à 21 ans d'intervalle.
250 fois plus de mémoire, processeur 1000 fois plus rapide, système d'exploitation 1500 fois plus gros... et 60 fois plus long à installer. En utilisation courante (Word, Excel), le gagnant n'est pas celui que l'on croit !
Une parabole utile sur la complexification des systèmes d'exploitations, des logiciels, des composants techniques et des outils : de nombreuses couches à traverser ! La simplicité est parfois une vertu...

mercredi 23 mai 2007

Guide des logiciels open source

La société IdealX fait partager son expertise des logiciels open source ici. Environ 280 logiciels à usage principalement professionnel sont listés et évalués. A étudier de près même si la dernière mise à jour semble dater de janvier 06.

Par exemple, si vous cherchez à sécuriser votre PC sous Windows avec 100% d'open source, il est recommandé ici d'installer l'antivirus Antivir (nota: AVG Anti-Virus Free Edition est gratuit mais pas open source) et l'antispyware spybot (nota: Ad-Aware SE Personal Edition est gratuit mais pas open source).

jeudi 19 avril 2007

JMS en quelques mots

Un système de messaging entreprise permet de faire communiquer des applications à travers des messages. Les Système de messaging ou MOM (Middlewares orientés messages) les plus courants: Rendez vous (Tibco), MessageQ(Bea), MQ Series (IBM) ...

Lire la suite...

lundi 16 avril 2007

Boeing Agile?

Mike Griffiths illustre avec l'exemple de Boeing la transition en cours dans des entreprises donneurs d'ordre pour moins de contrôle et de spécification vers plus de communication et de collaboration..

Lire la suite...

mardi 27 mars 2007

Comment rater un projet...

Trop d'ambition, pas assez de gestion du risque, pas assez de définition des besoins... ... quelques films d'horreur :

OpenBar AlcionTech : meta-frameworks, Jaxio, le 26 avril

>> Jeudi 26 avril 2007 à 18h30 au siège

Qu'est-ce qu'un méta-framework ?

Les frameworks sont à présent un état de fait ; plus un projet ne démarre sans l'adoption de briques techniques telles que Struts, Spring, Log4J, Hibernate..., qui enrichissent, chacune dans sa spécialité, le paradigme J2EE. keel.gif Un méta-framework est une "suite" de frameworks techniques assemblés afin de couvrir l'ensemble des besoins de réalisation d'une application. Par exemple, certains réfléchissent, au sein d'AlcionGroup, à la possibilité de pré-assembler un socle applicatif basé sur Spring et Hibernate, prêt à partir sur nos projets. Différentes initiatives vont dans le même sens (JAD, Keel, Roma, Jaxio, MD4J, Seam, RIFE, AppFuse, Tapestry...) dans le double objectif d'améliorer la productivité du développement, et de réduire les dépendances entre composants afin de faciliter l'évolution du logiciel produit (rester agile !). Il y aura, à moyen terme, une norme defacto, sorte de "pile standard", incluant - ou non - les outils de développement rapide que l'intégration verticale suggère.

Quelques ressources : http://www.theserverside.com/tt/articles/article.tss?l=Keel http://romaframework.xwiki.com/xwiki/bin/view/Main/

La présentation du soir : Développement rapide d'applications J2EE avec Spring, Hibernate, et Jaxio

Jaxio est un outil de génération rapide d'applications J2EE à partir d'un modèle métier, développé par une jeune société française. Sur le constat d'une lassitude du développeur à réaliser certaines tâches répétitives liées aux patterns mis en oeuvre, Jaxio a automatisé la production de code pour les parties persistance, métier, et présentation, dans un cadre technologique tout à fait au niveau de l'état de l'art, et de plus totalement personnalisable. Les applications sont nombreuses : maquettage, RAD, développement itératif... Cette présentation sera assurée par Florent Ramière et Nicolas Romanetti, fondateurs de Jaxio. Et, pour tout vous dire... le retour des Alcionniens les intéresse.

mardi 20 mars 2007

Slides de l'open bar persistance

A télécharger sur le lien "3 annexes" ci dessous.

mercredi 7 mars 2007

Oracle libère TopLink!

Oracle a annoncé hier lors de la conférence EclipseCon que Toplink sera cédé à l’Open Source sous l’égide du Projet Eclipse.
Tout sauf des spécificités liées à Oracle AS est concerné (même les fonctionnalités encore en cours de developpement)

Lire la suite...

jeudi 1 mars 2007

Charte d'utilisation du SI

Dans le cadre de l'amélioration continu du fonctionnement d'ALCION, le processus de mise en place d'une charte d'utilisation du SI est actuellement en cours d'exécution. Celle-ci a été rédigée par la DT et devrait entrer en service prochainement après aval de la direction et des représentants du personnel.
Si vous êtes en mesure de nous faire parvenir celle de vos clients pour pouvoir consolider la notre, n'hésitez pas à m'écrire ogosselin@...

Soyons vulgaires...

La DT a mis au point une formation destinée à vulgariser notre métier d'ingénieur logiciel aux collaborateurs qui n'ont pas ou peu de connaissances sur le sujet, c'est à dire a priori les RH, les ingénieurs d'affaires et les ingénieurs juniors.
Cette formation va subir un rodage prochainement auprès des stagiaires RH.
Si vous avez des commentaires à faire sur le support (fourni en annexe à ce billet), n'hésitez pas a m'écrire à ogosselin@...

lundi 26 février 2007

OPEN BAR spécial PERSISTANCE

persistance.jpg15 mars 2007 18h30 au siège.

Le point sur les EJB3 La norme EJB3, en cours de finalisation, fait d'ores et déjà l'objet d'implémentations de référence qui permettent de se familiariser avec l'approche. Nous ferons une rapide synthèse des nouveautés, nous évaluerons la maturité de l'approche pour les projets de terrain, et nous chercherons à voir comment s'inscrivent les EJB3 dans l'écosystème de la persistance Java (notamment vis-à-vis d'HIbernate). Par Reda Hedhli.

Persistance en .NET avec NHibernate : une démarche open-source soutenue par AlcionGroup La persistance de données objet dans une base de données relationnelle reste un des problèmes mal résolus du génie logiciel, que chacun de nos projets doit pourtant traiter en tenant compte des performances, du planning, et de l'agilité du logiciel résultant. Alors que les architectures Java semblent trouver autour d'Hibernate l'outil adapté à la plupart des besoins, NHibernate transpose à présent ce modèle dans le monde .NET. Manquait cependant l'outil de développement capable de faciliter la réalisation du mapping et de la configuration de NHibernate, à l'instar d'HibernateTools .Olivier Coanet et son équipe ont réalisé une première version de nHibernateTools, sous forme de plug-in visual Studio, et offert en licence open-source (http://meanstreets.dyndns.org/nhibernatetools/). Après des rappels sur la persistance .NET, Olivier vous montrera comment réaliser un mapping O/R en .NET, et aussi comment réaliser un Plug-In sous Visual Studio. Pour conclure, il échangera avec les participants sur la roadmap et les moyens à consacrer à NHibernate.

L'Offshore

50ème billet sur ce blog :)

Une très bonne introduction au sujet se trouve ici.

Lu dans le Monde Informatique du 23 fev 07 p15, un commentaire de Jean-François Rambicur, président de la commission économie-marchés de la chambre patronale du secteur des logiciels et services:

avec un taux de croissance annuel moyen compris entre 30 et 50%, l'offshore devrait représenter environ 3,5% du marché français des services en 2007, peut-être 4.0%.

Ce chiffre s'établirait entre 10 et 15% aux USA.
Ces chiffres sont à prendre avec des pincettes pour les raisons données dans l'article du 1er lien du billet.

jeudi 22 février 2007

Les langages informatiques

Un site de référence pour tout ce qui concerne les langagages informatique, leur histoire et leurs relations: ici.
Si vous voulez impressionner vos ami(e)s, je vous recommande d'accrocher ça au mur de chez vous :)


Pour connaître l'état du marché des langages, jetez un oeil au blog de Tim O'Reilly. Il poste régulièrement les stats des ventes des livres de la collection ... O'Reilly. Par exemple, ci-dessous voici la carte des ventes par langage (en vert, ça se vend plus, et en rouge, ça se vend moins). La taille des carrés donne les parts de marché au Q4 2006 et la couleur, l'évolution des ventes sur 1an.

Carte Vente Livres 4Q2006
Remarquez que C/C++ et Java sont en perte de vitesse, PHP stagne, et que C#, Javascript (via Ajax), Ruby et Python sont en forme. Attention, cette carte n'est qu'un indicateur de tendance, rien de plus. Elle ne reflète pas la base de code informatique existante.

Et comment va l'Internet?

Il va très bien merci pour lui ;)

Quelques statistiques pris à droite à gauche.

Sur netcraft.com, on trouve la courbe d'évolution du nombre de sites. La tendance est clairement exponentielle, n'est ce pas?



Ce mouvement va t'il se poursuivre longtemps? 2 diagrammes trouvés sur internetworldstats.com nous en donnent une idée.




Vu la taille de la population asiatique (déja principal pôle de contribution) et le relatif faible taux de pénétration d'Internet sur ce continent, on peut raisonnablement prévoir encore plusieurs années de croissance du nombre d'utilisateurs (et de sites).
Pour info, le taux de pénétration est actuellement de 50% en France.

Si vous souhaitez les stats par langue, c'est ici.

Est-ce que tout est rose pour autant? Pas tout à fait car la où est l'information est la censure. Vous trouverez ici une carte instructive à ce propos.

L'avenir du client riche

Un lien vers un comparatif des dernières technologies pour client riche: Ajax, XUL, Flex, Apollo, WPF.Ce n'est pas très long à lire.
Je vous copie-paste la conclusion de l'auteur de l'étude:

"D'un point de vue plus personnel, je pense que le futur des application internet riche se situe avec Flex et Ajax qui restera. Quand aux applications de bureau, je mettrais une pièce sur un petit duel WPF / Apollo."

mardi 13 février 2007

prosélytisme du FLOSS

UPDATE DU 22/02/07 A lire le dossier de 01net: Solutions Linux, le libre au coeur de l'entreprise et particulièrement Les SS2L poussent Linux en entreprises

Qu'est ce que c'est que ce truc, vous dites vous? Cet acronyme signifie Free/Libre/Open-Source Software, sujet très à la mode dans notre milieu comme vous le savez. Je vous invite à lire une étude passionnante sur le sujet ici publiée par l'UE et qui est la base d'une présentation que la DT a dans les cartons et que vous découvrirez prochainement sur ce blog ou en conf du soir à Alcion.

N'hésitez pas au passage à installer sur vos machines ces formidables étendards du libre:

R pour oublier Office

R pour zapper IE

R pour squizzer Outlook

mercredi 7 février 2007

L'Intérêt des ERP en question..

Une étude chiffre les budgets et les gains de performance liés à l'installation d'un ERP.
Il semble cela ne soit pas très compétitif face au développement spécifique ou à l'externalisation..

Lire la suite...

vendredi 2 février 2007

XP Day France 2007

Paris, les 2 et 3 mai 2007
La conférence agile sur les méthodes agiles !

Lire la suite...

- page 2 de 3 -