Sur la route d'Oxiane digressions diverses

LeBlog OXiane

31 août
2012

ESUG jour 4

Bon, c’est sûr que ce soir ça va être difficile, la bière a coulé à flot. Je vais quand même essayer de vous raconter la journée.
Tout d’abord nous avons eu un « Advanced seaside » nous présentant les aspects techniques du framework et surtout les motivations techniques pour ces changements entre les versions 2.x et 3.x.
Le framework s’est considérablement enrichi avec la version 3 pour répondre à des problématiques simples et une image seaside sous Pharo sait désormais répondre à un taux de 10000 requêtes par secondes avec un micro-framework web.

L’update Gemstone nous présente les avancées de la dernière version. C’est assez technique et beaucoup de choses tournent autours du multi-threading et du 64 bits. Là on est dans le monde de l’exploitation et des bases de données et c’est du sérieux.

« Advanced Visualization to Tame Wild Program Execution » nous présente 3 petit bijoux avec Kai, Hapao et Roassal.
Le premier est une représentation du profiling sous forme d’un arbre de rectangles. La largeur d’un rectangle représente le nombre d’exécutions et la hauteur le temps cumulé de cette méthode. C’est très intéressant car ça permet de visualiser plus efficacement les points à optimiser.
Hapao reprend le même principe avec le taux de couverture de test et la complexité des méthodes.
Roassal est le framework utilisé pour faire la représentation graphique des informations et est bluffant. En quelques lignes, une représentation graphique est construite.

« Saving and Retrieving objects in a changing environment » s’attaque au problème extrêmement complexe de la sauvegarde d’une grappe d’objets (sérialisation et désérialisation), plus particulièrement d’une instance d’un modèle en tenant compte des changements dans ce modèle. Cela signifie prendre en compte l’initialisation de nouveaux attributs, le renommage d’attributs, le transfert d’attributs dans une autre classe, …
Il s’agit d’un problème difficile mais gérable avec la technique présentée.

« Object centric réflexion » nous expose une manière différente de voir le debugging en proposant des extensions du débugger permettant d’étendre la vision strictement orientée « pile d’exécution » traditionnelle. Il devient ainsi possible d’avancer directement au prochain appel sur un objet ou sa prochaine modification pendant une session de debug.

« Building real world seaside apps » nous montre quelques astuces et précautions nécessaires pour la réalisation d’applications Seaside réalistes.

La session « Show us your project » est très intéressante car elle permet à chacun de présenter son projet dans un temps très limité de 10mn. C’est finalement un format intéressant comme le souligne Stéphane Ducasse, car il oblige les présentateurs à se surpasser. Nous voyons défiler différents projets, aussi bien des projets de recherches que les refontes actuelles de l’interface graphique de Object studio. La présentation de Roassal, vu précédemment, dans Amber, le Smalltalk compilé en JavaScript ouvre des perspectives énormes.

Une session tutoriel de présentation du PetitParser clôture la journée. Une session malheureusement pas assez préparée mais très intéressante tout de même pour découvrir ce framework d’écriture de parser. Cette session m’aura aussi permis de découvrir le site http://pastebin.com/ permettant de partager immédiatement un bout de texte avec l’assistance.

Je ne m’étendrai pas sur la soirée, commencée par un chouette resto conseillé par Johan. Quel beau pays que cette Belgique ! 250 variétés de bières dans un seul pub, vous vous rendez compte ?

Jean-Francois Lefevre

jflefevre

30 août
2012

ESUG jour 3


25 ans ! je l’ai déjà mentionné il y a 3 jours, c’est le nombre d’années d’existence de la « Firma Georg Heeg », la société de Georg où j’ai fais mon stage de DESS il y a maintenant 22 ans. Pour l’occasion, un « special awards » lui a été décerné ce soir pendant le « social event ». Il faut reconnaître qu’une telle longévité pour une société basée uniquement sur Smalltalk est le meilleur argument qui soit pour promouvoir le langage. Les « Innovation Technology Awards » ont aussi été décernés et la médaille d’or revient au projet « OO centric debugging » (une extension du debugger permettant par exemple d’avancer dans le debugging jusqu’à la prochaine utilisation d’un objet). Les deux évènements ont été fêté comme il se doit, bien entendu :-) mais revenons au déroulement de la journée.

Aujourd’hui nous avons commencé par « How to do almost Smalltalking with Objective C to develop iOs Apps ».
Une présentation du langage Objective-C dans laquelle il est rappelé que le langage a été créé par Brad Cox et Tom Love pour ajouter les fonctionnalités objets de Smalltalk au langage C. Et de fait, il s’agit bien de coder en C et d’y inclure de la syntaxe Smalltalk entre crochets pour envoyer des messages.
La présentation nous montre ensuite tout l’écosystème du développement d’application pour iOS. Bon, pour moi, c’était un peu trop propagande et, sans une démo, je ne peux que rester sur ma conclusion primaire : « c’est un langage de schizophrène », on ne peut pas rester mentalement indemne en passant d’un monde à l’autre à chaque ligne de code !

Ensuite, le « Cincom Update » nous fait le point sur les derniers avancements de ses produits (VisualWorks et ObjectStudio).
Comme d’habitude, pas de grand chamboulement mais une série d’améliorations, esthétiques ou de performance.
Une information tout de même, sur le système qualifié de « polycephalie », qui serait finalement pas mal utilisé par les clients et qui serait victime de son efficacité : personne n’en parle (normal, ça ne pose pas de problème). Pour rappel (ou info), il s’agit de contourner l’absence de thread natif de Smalltalk, en facilitant la délégation de calculs à des images esclaves. L’argument du « 80% des avantages du multi-threading avec 20% de ses problèmes » est donc parfaitement légitime.

La présentation « Fuel all the way down » nous présente « Fuel », le nouveau framework de sérialisation d’objets et « Tanker », qui s’appuie dessus et qui permet d’importer/exporter des packages de code. Le système se révèle extrêmement efficace et permet même de sérialiser/dé-sérialiser un débugger et sa pile d’exécution. Avec ce genre de facilité, il devient possible d’enregistrer tout le contexte d’une erreur dans un build Jenkins et de le recharger pour étudier l’erreur dans le contexte où elle s’est produite.

La présentation suivante (stx:libjava – running Java in Smalltalk) est tout simplement hallucinante. Tous le monde savait que c’était impossible mais personne ne leur avait dit, et ils l’ont fait. Bon, en fait si, on savait que c’était possible puisque VisualAge pour Java faisait déjà de la compilation et de l’exécution de code Java mais là c’est différent. Ils ont tout simplement fusionné une machine virtuelle Smalltalk et une machine virtuelle Java. La démo est incroyable : du code Java dans l’image, qui appelle du code Smalltalk. Du code Smalltalk qui appelle du code Java et au final un tomcat lancé et qui annonce fièrement qu’il s’exécute sur une machine virtuelle Smalltalk/X. Les conséquences potentielles sont énormes. Il devient possible d’utiliser des choses comme des drivers JDBC, des outils comme maven, des éléments non graphiques d’Eclipse, … Le présentateur nous prévient quand même qu’il s’agit de travaux d’expérimentation et que ce n’est pas « production ready » mais quand même, une machine virtuelle mixte Smalltalk/Java !!!

La présentation « Building a Business with Cincom Smalltalk » n’est pas du tout ce que je croyais. Je m’attendais à une présentation du licensing ou quelque chose comme ça mais c’est finalement la génération d’une application simple from scratch avec le modeleur d’ObjectStudio. J’ai l’impression de voir une démo de L’ObjectLens telle que je la faisais en 1995, en moins bien puisque là il faut aller coder l’écran du formulaire. Si au moins ça allait jusqu’au packaging complet de l’appli mais là on sait bien que ce genre de génération de code nécessite ensuite de nombreuses retouches avant d’aller mettre quelque chose en production.

La dernière présentation concerne le « Presenty UI Framework », un framework MVP modifié permettant de séparer clairement la logique métier de l’affichage. J’aime beaucoup l’introduction qui consiste à voir les choses autrement. Lorsqu’on voit un écran constitué de listes, de boutons, de menus, … lui, il voit des Task et des UserRequest qui s’enchaînent. Cliquer sur un bouton, choisir dans un menu ou activer un raccourci clavier sont autant de manières différentes de faire la même chose : déclencher une action. Le framework propose donc de séparer la spécification des tâches à enchaîner et de configurer indépendamment le rendu graphique. Il devient possible de reconfigurer tout un écran, voir de le transformer en un enchaînement d’écrans modaux, sans toucher une ligne de code spécifiant l’enchaînement des tâches. Ça semble puissant mais assez difficile à prendre en main tant la logique est éloignée des habitudes.

Ce soir c’était le « social event ». La sortie en bateau pour visiter la ville par ses canaux et le dîner était très sympathique et constituait un bon moment festif. Nous avons quitté la troisième mi-temps après le premier verre (juste à temps je crois, il y aura surement des absents demain aux premières conférences)

Jean-Francois Lefevre

jflefevre

29 août
2012

ESUG jour 2

Smalltalk est bien sur la ville de Gand cette semaine, comme le prouve cette photo prise dans la soirée. Chapeau pour les organisateurs de l’ESUG ! :-)

Cette deuxième journée des conférences ESUG 2012 s’avère tout aussi riche que la précédente.

La première conférence de la matinée nous parle de sauvegarde de code Smalltalk avec Git. Le point de départ de la présentation rappelle que la sauvegarde du source ne suffit pas, il faut aussi sauvegarder la structure des packages. L’approche présentée consiste en une structure nommée FiltreTree où chaque méthode et définition est sauvegardée dans son propre fichier. L’approche choque au premier abord mais s’avère redoutablement efficace pour profiter des avantages indéniables de Git et de GitHub. Le problème de l’archivage et du versionning du code Smalltalk n’est donc toujours pas définitivement réglé. Après avoir connu les échanges de fichiers à manipuler avec le Changes Browser, puis le formidable outils que constituait Envy/Developer, le PVCS dans Visual Smalltalk Enterprise (si je me rappelle bien), les parcelles de VisualWorks puis StORE et Monticello (je dois en oublier, je ne connais pas bien la lignée des Squeak), le prochain moyen de versionner le code sera peut-être Git. L’approche est motivée par la formidable puissance de gestion des branches de Git, disponible sans avoir à le réécrire. Encore une fois l’intégration continue est cité (c’est décidément un sujet d’actualité dans le monde Smalltalk aussi).

La deuxième conférence présente les dernières évolutions de VA Smalltalk. La liste des nouveautés me fait un peu peur par certains points qui n’étaient donc pas supportés dans les versions précédentes mais le produit est bien vivant et table sur 2 releases par an avec la sortie imminente de la 8.5.2.

La présentation suivante nous parle de Sealess, un framework de programmation distribuée. L’idée proposée est de ne plus utiliser directement les classes Socket mais de bénéficier d’un framework de haut niveau permettant d’accéder facilement à des objets distants. Le premier exemple montre l’accès et l’écriture dans un Transcript d’une autre image. Comme dit Georg, j’ai déjà vu ça il y a 20 ans et pas mal de framework sur le sujet on déjà été réalisés ou sont directement livrés dans le système avec le support de CORBA. Un débat houleux s’engage. Bon, même si on a déjà vu des choses similaires, un des intérêts c’est que le système s’appuie sur le nouveau framework de sérialisation FUEL, ce qui lui permet d’échanger des choses assez sophistiquées comme des méthodes ou des processus et donc de faire du load balancing ou de concevoir ce qu’il appelle des BigObjects (des objets potentiellement énormes partagés entre plusieurs images. Tout ça me rappelle des choses comme Terracota.

La présentation suivante nous parle de Glorp en pratique. Chouette ! je vais pouvoir avoir un aperçu de GLORP, que je n’ai toujours pas pris le temps de regarder. Quelle déception ! C’est verbeux, avec des messages peu lisibles, qui justifient de se lancer dans l’écriture d’un outillage pour générer le mapping, ce qui est justement le sujet de la présentation. Et les gars ! pour une fois il y a un truc pas mal dans Java, ça s’appelle JPA, c’est entièrement spécifié et c’est plutôt bien fichu, on pourrait peut-être s’en inspirer un peu (ça ne serait qu’un juste retour des choses pour tout ce que Java a piqué à Smalltalk).

La session de l’après midi présente OOSCM, une bonne idée consistant à concevoir une gestion de versionning objet et non plus basée sur les sources (ah, oui ça sera peut-être pas Git finalement mais plutôt un système de versionning basé sur des objets pour représenter les changements). Bon, on a eut la présentation la veille du coup, on va plutôt allez voir les Internationnal Workshop  on Smalltalk Technologie. Il s’agit de présentation de sujet de recherches :

Le premier parle des problèmes rencontrés lorsqu’on tente d’intégrer Smalltalk et Java. Intéressant techniquement mais la démo du produit aura lieue en fin de matinée demain.

Le deuxième parle de Refactoring en utilisant de l’inférence de type. Tiens, ça à l’air d’être aussi un autre sujet à la mode ça, le typage de Smalltalk. Bon, c’est sûr que le refactoring pourrait être amélioré si on arrivait à inférer plus de choses automatiquement mais c’est clair qu’on atteindra jamais le niveau d’un Refactoring Java (c’est pas grave, ça oblige à réfléchir un peu plus à ce qu’on fait).

Et le 3ème parle de Etoilé (arrrrg !!! je vais encore rien comprendre). Bon finalement, je comprend un tout petit peu mieux mais ça à l’air à la fois très ambitieux et très usine à gaz (non merci pour les usines à gaz, c’est bon, il y a Java pour ça)

La conférence suivante n’est rien de moins qu’une rétrospective de 31 ans depuis la sortie de l’article du byte magazine qui a fait connaître Smalltalk au monde entier. En fait, ça va même plus loin puis qu’on se fait un flashback vers 1968 et l’informatique de cette époque. Beaucoup d’émotion dans ce retour dans le passé et les citations tirées des revues de l’époques.

La fin de l’après-midi est dédiée aux participants qui souhaitent présenter en 10 minutes leur projet. Pas mal de projets sont présentés, aussi variés qu’intéressant comme de la génération de tests automatiques pour sécuriser une migration de système d’assurance ou la simulation de plantes.

La dernière conf parlant de migration du CMS Pier, nous nous éclipsons Gaëtan et moi pour toucher un peu à Amber, mais ça ce sera pour un autre billet.

Jean-Francois Lefevre

jflefevre

28 août
2012

ESUG jour 1

Comme promis, un petit compte rendu de cette première journée aux conférences Smalltalk ESUG 2012.

Tout d’abord, c’est avec plaisir que j’ai pu retrouver quelques connaissances dont Philippe Valenza (représentant de Cincom pour la zone francophone) et Georg Heeg chez qui j’ai pu faire mon stage de DESS il y a maintenant plus de 20 ans (ça nous rajeunit pas, c’est sûr). Le premier m’a confirmé que le chiffre d’affaire Smalltalk chez cincom était toujours en progression, certes pas une progression fulgurante mais en progression quand même et en partie par de nouveaux clients. Quand à Georg, l’info intéressante c’est le secret qu’il m’a confié sur les arguments qu’il utilise pour convaincre de nouveaux clients de l’intérêt de Smalltalk :

1. les coûts
2. le mapping direct entre les concepts métiers et leur implémentation

Evidemment, les deux points demandent une argumentation un peu plus détaillée (le calcul des coûts commence avec un à priori négatif à cause des runtime) et le second s’explique difficilement aux gens qui ne connaissent pas Smalltalk. Toutefois, ce mapping direct évite toute la complexité technique qui gangrène nos projets dans des technos plus « modernes ». Au final, le coût global du projet est moindre. En fait, il m’a quand même avoué que le dernier argument c’est les 25 années d’existence de sa société. Si le prospect n’est pas convaincu, il peut aller faire développer ses trucs ailleurs, tant pis pour lui.

Le premier talk, l’accueil présentée par Stéphane Ducasse, a principalement rappelé la vocation première de l’ESUG : promouvoir Smalltalk. C’est avec fierté que je vois le logo OXiane affiché parmi les sponsors (si si, là, en haut à droite, regarde, comme sur mon tee shirt) et je bombe encore un peu le torse en écoutant Stéphane expliquer que, grâce aux sponsors, il a, entre autre, été possible de faire venir 15 étudiants volontaires. Il y a aussi les publications, l’hébergement Seaside, etc.
Lire la suite du bllet »

Jean-Francois Lefevre

jflefevre

27 août
2012

6 heures de Silverstone 2012 : Bonne course pour Olivier Lombard, malchance pour l’équipage

Cette fois, c’est le début du troisième tiers de la course britannique qui a été fatal à l’Oreca-Nissan 03 #23, à laquelle la réussite se refuse une nouvelle fois.

« Nos essais libres se sont bien passés. Je me suis concentré sur le travail à faire pour régler la voiture. Il y avait beaucoup à gagner et c’est ce qui a été fait », assure Olivier. « Car en course, la voiture était assez rapide. Franck Mailleux a logiquement été chargé de signer le temps en qualification. Nous utilisions les pneus durs, et son 6e chrono des LMP2 était le maximum que nous pouvions faire, les autres semblant tous être en pneus “soft“. Au warm-up, nous avons roulé tous les trois à tour de rôle. Le début de course s’est bien passé, Franck remontant un moment jusqu’à la 3e place. Un peu plus tard, malheureusement, une GT l’a touché à l’arrière et l’a mis en tête-à-queue. Ce qui l’a obligé à anticiper son deuxième relais et nous a fait perdre quelques places. Quand je suis reparti après 1h20 de course, nous étions à un tour de la tête. J’ai fait deux bons relais, même si je suis resté un peu trop longtemps derrière la Lola Status. Cela m’a pris la première moitié de mon premier relais pour réussir à le dépasser. Nous étions 8e ou 9e de la catégorie lorsque j’ai passé le volant à Jordan Tresson. Hélas, à la fin de son deuxième relais, une crevaison a provoqué sa sortie de piste définitive… »

Pour l’Oreca-Nissan #23, c’était l’abandon, le deuxième après Sebring, avec le triste privilège d’être le second des très rares retraits de la course. Une issue bien décevante, dès le 136e des 194 tours couverts, quand on voit que les autre pilotes de Signatech-Nissan, avec la #26, ont brillamment réussi à terminer sur la troisième marche du podium, à moins de 20“ des vainqueurs. Souhaitons maintenant à la #23 de revoir un drapeau à damier, et si possible en bonne place, aux prochaines 6 Heures de Sao Paulo le 15 septembre.

Vous pouvez retrouver Olivier Lombard :

-      Sur son compte Twitter – @OLombardPilote

-      Sur sa page Facebook – Olivier Lombard / Pilote

-      Sur son site internet – Olivier Lombard site officiel

©Vision Sport Agency

 

Jean-Louis Rousselin

jlrousselin