Affichage des articles dont le libellé est computing. Afficher tous les articles
Affichage des articles dont le libellé est computing. Afficher tous les articles

samedi 22 novembre 2008

Le Soleil (fait la manche) aux Fenêtres...


Lors d'une conférence organisée par Microsoft à San Francisco (Strategic Architect Forum), j'ai récupéré deux goodies.
Le premier est une classique clé USB (2Go quand même).

Le deuxième est plus original. Il l'est à double titre en fait. Tout d'abord, il s'agit d'un flacon de nettoyage pour les lunettes (cf photo ci-contre) avec son petit chiffon.
Mais l'originalité la plus grande vient de l'inscription tatouée sur le flacon et le chiffon : "Sun DOES Windows ...".

Groß humour!
Mais est-ce vraiment de l'humour? Si je traduit littéralement (comme l'invite le verbe en majuscule) : "Sun fait du Windows avec Avanade" (Avanade étant la Joint Venture entre Microsoft et Accenture). Brèfle, le Soleil s'est couché (je ne sais pas si Jonathan est au courant de cela, mais Scott lui doit vomir ses tripes...)


Autre signe des temps, c'est Sun qui fournissait le WiFi de la conférence!

mardi 21 octobre 2008

Valtech Days : back to my roots ;-)


Aujourd'hui, j'ai eu le plaisir d'être invité à rejoindre mes ex-collègues et amis de Valtech pour une journée de séminaire (la première des 2 Valtech Days 2008 ).
Ce fût l'occasion d'écouter :
  • François, le digne fils de son père, nous faire un exposé sur AJAX. Un beau panorama et une très bonne analyse avec beaucoup de recul
  • Nicolas, toujours aussi intéressant, nous exposer ses bonnes idées sur le Cloud; et en plus il les met en pratique avec brio (une Google Speadsheet collaborative servant de BD à des IHM Web2.0 - le tier du milieu a disparu!)
  • Willy, mon mentor, nous parler avec clarté des ESB et en particulier de leur déclinaison OpenSource. Toujours un régal à savourer intégralement.
Et puis il y avait quelques guest stars. J'ai donc eu le plaisir d'écouter et discuter brièvement avec Didier Girard (ex d'Improve, créateur de a19s et onGWT , actuellement CTO de SFEIR) sur REST. Mais surtout, j'ai été ravi de constater qu'au-delà des sujets techniques, nous partageons un profond besoin d'éviter les "deaths by PowerPoint" en recourant à de nouvelles manières de faire des présentations (PresentationZen de Garr et Slide:ology de Nancy - une petite recherche s'impose, non?...).

Un grand merci à Henri et à toute son équipe pour avoir rendu cela possible. Bravo et bonne continuation.

jeudi 3 mars 2005

XML on client-side: the Return (or the Birth, at last!)

Je me souviens qu'il y a qq années, dans les slides des cours sur XML que je donnais, j'avais beaucoup de mal à présenter une solution dans laquelle le processing d'un XML venant du serveur se faisait sur le client (pas de Xeulteu sur le client, temps de transformation prohibitif dans la plupart des cas, ...). Et je préférais donc la solution où le serveur bossait et le client affichait (je vous rappelle que cela remonte à l'époque frénétique de l'ultra-léger sur le poste client et DHTML était pire que de l'assembleur!). Ouf, j'avais donc des excuses! 

Mais maintenant les chose changent (en particulier avec le retour en force des clients "moins" légers; quand on est snob, on dit "smart" en jouant sur les 2 sens de ce terme anglais [joli et intelligent]; quand on est plein de thunes, on va même jusqu'à dire "rich client"). 
Et ben voilà t'y pas que notre bon vieux XML issu du serveur pourrait parfaitement être acceptable dans nos navigateurs (de là à penser mettre Struts et consors à la poubelle?). Vu le nombre de retour (et articles associés) sur XMLHttpRequest (et en particulier XMLHttpRequest et un article de présentation de Sarissa), il est certainement indispensable de conserver cette technique dans un coin de mon cerveau encombré (heureusement que mon //WebLog[@author="ChAP"] est là pour me servir de meta-bookmark!)

mardi 8 février 2005

Java, DB mapping and XML: a new comer

This is an old problem.
A new player is coming in: iBatis (OSS, of course!). It is really a light framework for accessing a DB allowing you to have total control over the SQL statements your gonna use.
An interesting article on OnJava is presenting the component.
It should be kept in mind that such a framework has its own limitation (one of the most important being not to be used in complex O/R mapping cases).
Obviously, such a solution should be compared to other existing ones (Hibernate, ...)

mardi 23 novembre 2004

AsynCoffee

Pour se détendre à l'heure du déjeuner en pouvant honnêtement prétendre travailler, je vous propose la méditation du jour du père Goriot (oups pardon du père Gregor; celui-là même qui maintient le site Enterprise Integration Patterns et qui a rédigé le très bon livre éponyme)
Et non, vous ne rêvez pas, c'est bien des Starbucks Coffee Shops dont il s'agit (ces célèbres cafés américains où l'on s'arrête avant d'aller au boulot le matin pour acheter son "walking mug" of coffee à siroter sur le chemin).
Le sujet? Simple, il s'agit d'expliciter pourquoi ce type de boutique ne peut pas utiliser du 2-phases commit!

D'ailleurs, si vous voulez tenter l'expérience décrite dans l'article, vous pouvez vous rendre dans l'un d'entre eux (à La Défense, Montmartre, Montparnasse, Odéon, ... et bientôt à Vélizy II): mais attention, rien à voir avec un expresso italien ;-))

P.S.: pour les amateurs de la traçabilité, la niouse vient de TSS

vendredi 12 novembre 2004

Tester Linux plus facilement encore!

Bon on connaît tous les distrib de Linux qui s'installent facilement sur nos chers PC (et hop, voilou que j'écrase ma MBR avec Lilo ou Grub; pour la restaurer éventuellement, il faudra serrer les fesses en lançant sous DOS l'incantation "fdisk /MBR").
Ensuite, sont apparues les distros (chébran, le gars, non?) de type Live CD; parmi elles, la plus célèbre est bien sûr la Knoppix. Un CD dans le lecteur, un boot et hop un autre OS: sans intrusion ni scories sur votre précieux (et fragile!) système Windows. Avec bien sûr, détection du réseau, des périphériques (comme les disques USB) et read/write sur les partitions NTFS et FAT. Utiliser une telle distro est donc sympa pour faire ses premiers pas sous Linux sans risque mais aussi pour récupérer des data d'un plantage de Windows (si si, il parait que ce n'est pas une légende!).
Et bien, l'imagination fertile des développeurs va encore plus loin dans la convivialité: lancer linux depuis Windows lui-même. Avec la "DSL - Damn Small Linux" (rien à voir avec l'ADSL et autres xDSL of course! si ce n'est que l'ADSL est bien apprécié pour téléchargé la DSL ;-))), on télécharge 50Mo, on clique sur un .bat (et il faut bien reconnaître qu'il faut nécessairement être sous Windows pour subir cela!) et là, la magie d'un chargement de Linux apparaît dans une fenêtre Windows. Et les connaisseurs constateront tout de suite qu'il s'agit d'une adaptation de la Knoppix. Plus besoin de télécharger une image ISO, de la graver et de booter sur un CD pour toucher du doigt un véritable OS. Cool, non?
So, go ahead to DSL and give it a try.
P.S.: par soucis de complétude, il me faut signaler que Mandrake avait déjà montré la voie il y a quelque temps avec Drake4Win (enfin je crois que c'était le nom à l'époque): l'install de Mandrake étant présente sous forme de 2 fichiers sous Windows (un pour le swap et un autre comme image de l'install). Et donc pour virer Linux (avant de l'installer proprement en natif bien sûr!), hop un petit tour par la corbeille et le (mauvais) tour est joué. Finalement, tout cela ressemble un peu à une install sous VMWare, mais sans licence!

mardi 2 novembre 2004

Unicode explained (a link)

Using Unicode is good! (that's what we've all learned from different plateforms vendors, should they be Java-oriented or Microsoft-minded).
But what the mess with Unicode/UCS-2/UTF-8/ISO/UTF-16/... is!?
If you ever wandered around trying to catch the rationale of these without getting anything consistent, rush to this link.
It could save you time, especially when dealing with XML data coming from/going to different OSes, programming languages, software frameworks.

vendredi 23 juillet 2004

Oh, XML.

I remember when I posted a project on SourceForge, I had to categorize it (aka Trove Software Map). Among the different attributes I filled in, there was the language (used for development). Because my code was heavily based on XML (for describing a MMI, a little bit 'à la' XUL), I intended to declare XML.
But when browsing through the available languages, I noticed that XML was not promoted as "first class" language (neither second class, BTW!). Which scared me (I avoided a heart-attack, at last ;-)
I e-mailed something like "I know that XML is not a 'real' programming language, but due to the increase of its usages in programming technics, why not adding it". No answers (apart from two other 'sourceforgers': one who agreed and another who talked me about the non-LALR(1) aspect of XML, sic).

Things are perhaps changing with the arrival of o:XML. I let you go through an interesting overview on XML.com (don't be put off by the classical 'HelloWorld' code snippet: the power of that language is not there!). Let me quote something really important about the strength of o:XML:
o:XML is a practical language, designed to solve practical problems. For many types of applications it already provides faster, easier, better solutions than any other technology. If you are writing code that processes or produces XML, chances are you will benefit from using o:XML.
In fact you really can avoid the pain of XSLT (sometimes), and use o:XML to script your output XML (like JSP in fact). But that's not the only use case: it is far more productive to write o:XML than Java (or C#) to produce simple XML.

So, when you have to produce XML as an output, you have the choice of XSLT, XQuery AND o:XML. The later shares with XQuery the advantage of being output format-oriented (try to picture what the output will look like by reading an XSLT stylesheet ;-)

jeudi 17 juillet 2003

XSL:for-each-group: a starter

Have you ever encoutered a flat XML file? 
I know it sounds a little bit weird, but they exist; even more, they are very commons. 
In fact, they could be seen as an XML-isation of a trivial flat file (think csv file) or a single RDMS table (I do not mean it is a best practice in the later cases) 
But where I find them very useful is for resources/properties/configuration files (or whatever you call them!): they are files generally edited by hand which contain every single parameter your application mandates for running. 
The flatness comes from the absence of hierarchy: in french, we would say it is a "rateau" (a rake). Here is an exemple of such a rake-file ;-)

<Resources>
<user name="Gosling" firstname="James" company="Sun" group="guru"/>
<user name="Kay" firstname="Michael" company="SoftwareAG" group="guru"/>
<user name="Poirier" firstname="Charles-Antoine" company="WorldCompany" group="beginner"/>
</Resources>

From such a file, very often comes the need to get a hierarchical view; by instance, one focused on 'company' or 'group'.

That hierarchical view could be needed for producing another XML file, sending a stream over the wire or get an in-memory tree-view of those resources.

An example of such an hierarchical perspective could be as follow (I apologize for being too much 'hierarchical' in that example ;-)):
 
<Groups>
<Group type="guru">
<Member fromCompany="Sun">
<FirstName>James</FirstName>
<LastName>Gosling</LastName>
<Member>
<Member fromCompany="SofwareAG">
<FirstName>Michael</FirstName>
<LastName>Kay</LastName>
<Member>
</Group>
<Group type="beginner">
<Member fromCompany="WorldCompany">
<FirstName>Charles-Antoine</FirstName>
<LastName>Poirier</LastName>
<Member>
</Group>
</Groups>


Obviously to go from <Resources>-XML to <Groups>-XML, you are already thinking to ... XSLT.

To be more precise, you certainly envision XSLT 2.0 which contains a very rich new feature: xsl:for-each-group. It enables you to get something similar to SQL-'Group-By'.

As an example, here the XSLT which allow the aforementioned transformation:
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output indent='yes' method='xml' encoding="ISO-8859-1" />

<xsl:template match="/">
<Groups>
<!-- "sort" 'user' by 'group' -->
<xsl:for-each-group select="//user" group-by="@group"> <!-- group-by group is not a joke!!! -->
<xsl:element name="Group"> <!-- Creates a new 'Group' element as needed -->
<xsl:attribute name="type"><xsl:value-of select="@group"/></xsl:attribute>

<xsl:for-each select="current-group()"><!-- Iterate over the XSL-group to create 'Member's -->
<xsl:element name="Member">
<xsl:attribute name="fromCompany"><xsl:value-of select="@company"/></xsl:attribute>
<FirstName><xsl:value-of select="@firstname"/></FirstName>
<LastName><xsl:value-of select="@name"/></LastName>
</xsl:element>
</xsl:for-each>

</xsl:element>
</xsl:for-each-group>
</Groups>
</xsl:template>
</xsl:transform>


This is a very simple case where you can take advantage of this wonderful new feature (using Saxon makes it rock!). It leads to very elegant (and readable) XSLT code (and that's not the least)

lundi 14 juillet 2003

Robin, c'est un gars 'bat'

Toujours sans polémique sur les navigateurs, il faut quand même reconnaître que Mozilla (ou son prochain successeur: Firebird) permet de faire de bien belles choses.

Vous pointez donc le meilleur navigateur du monde (arrggh çà y est, j'ai craqué! J'suis tombé dans la Paule-Emique! Mais j'me soigne: je rédige ce blog sous IE ;-) Donc vous allez sur Robin chef sf.net (sans tricher: IE ne vous conduira nulle part [du moins ce coup-ci!])
Et là, vous tombez sur une page qui représente ... un desktop; si si, un desktop avec son petit bouton "Démarrer" (enfin "Launch" dans le texte) accompagné de son petit menu déroulant et de l'heure à droite, son fond d'écran psychédélique et le menu associé.
Bon, alors on peut commencer à faire joujou avec les menus. Et là, c'est le festival de l'inutile (donc de l'indispensable): un démineur, un tétris, un pac-man, un astéroïd, un snake, un invaders, ... Chacun dans sa petite fenêtre dans la page Web; et elles bougent, s'iconifient, se maximisent et meurent! Vraiment balaise le gars...

Et c'est quoi qui permet donc ce petit miracle (à part le meilleur navigateur du ...)?
XML bien sûr. En l'occurrence: XUL (prononcer "zul") pour XML User interface Language. Avec un chouia d'aide de JavaScript, of course.

Ah oui, j'oubliais de mentionner la seule appli utile: un navigateur Web... (dur le coup dans l'estomac en fin de blog, hein?) Et "oui", la réponse est "oui" (sachant que la question normale que vous devriez vous poser est: "est-ce que ce navigateur permet de recharger Robin?"). Bien sûr que je me suis amusé à récurrencer: je n'ai pas eu la patience de trouver à partir de quand çà plante (je me suis arrêté à 3 niveaux!)

mardi 1 juillet 2003

OpenSource databases

There is an interesting paper on OS databases dealing with MySQL, SapDB and PostgreSQL. 

But (and there's always a "but" in good news!), it is written in .. French. 
But (you see, theres's always a "but" ;-) you could find it very convenient to access the compared features table which should be straightforwardly readable. 
Enjoy it!

dimanche 29 juin 2003

OpenSource Software Plea (in French ;-)

I've written a long time ago a plea on OSS. 
I do not include it verbatim here, but prefer to point it: it has been written in 2001 (and I kept it jealously [shyly?] for a while) and it has been first published by the excelent DNG (DotNetGuru: an open-minded and highly "architechnical" site on .Net and its relationship with Java world, webmastered avec maestria). 
Then, if you feel like reading french writting, give it a try!

mardi 24 juin 2003

EAI products in OSS

I've been roaming over EAI/B2B products delivered on an OSS basis. Here is a simple list I can share now (I did not test all!!!): 
 - BabelDoc (@sf.net): based on a pipeline of transformations/actions 
 - BIE (@sf.net): more elaborated than BabelDoc (needs a DB!) and provide a visual Web-based tool to design exchange steps 
 - OpenAdaptor: another pipelining environnement which helps connecting an application to a (set of) middleware/apps (amongst them: MQ, JMS, JDBC,...) 
 - others which I've heard of: Submarine (cocorico!), OpenEAI, Joram (cocorico bis!), ... 

Modify an XML file with ANT

Recently, while using the wonderful Glue for building WebServices (WS), I came up with the following problem: how to modify an XML file with Ant? 
(The rationale of this is: when creating a new WS, you have to use a special deployment tool [a shell script] and manually patch one of the many generated XML files; and of course, I want to automate the "manually" part of the cycle! But I guess such a problem is more general and when using EJB, one could encounter same wondering). 
First, I rejected the idea of using an Ant task that deals with TEXTUAL modifications of regular text files: I simply could not see an XML file as a regular file! Let me tell you that I didn't even think about creating a dedicated task in Java for solving that particular problem: that would have been crazy! 

Then, I ended up with 2 ideas: 
 - using an XML Ant task (such as the xmltaskone) 
 - using a templating engine (Velocity or FreeMarker

I preferred the first option which fits nicely to my needs (design-to-cost approach ;-) and allow me to write XPaths expression to patch the original XML file. Great! 
Templating engine was ... tempting, but too far from both my real need and time-frame to achieve it! 

So as to conclude, one of my best friends and colleagues (best applies to both nouns!) would probably have envisioned the possibility to write an XSLT file to perform that stuff with variables passing and modification of the XML file: let's forgive him!

mercredi 18 juin 2003

One I like most these days

This is a very pleasant software that tries to reach perfection: near bug-free! 
Try it for free (even if it is not [yet] OpenSource!]: