Archives de Catégorie: News

What is coming in AngularJS 1.4

I’m sharing with you what I think will be in the 1.4 version that should come in early March 2015.

You can read all about it on the Ninja Squad blog !

Publicités

Devenez un ninja avec AngularJS : l’ebook à prix libre !

Pour l’acheter et donner pour une bonne cause, c’est par ici !

Et si vous voulez plus d’informations sur sa genèse, c’est sur le blog de Ninja Squad.

angularjs-cover-dark-red

Je deviens un ninja!

Et oui, avec quelques amis, nous avons fondé la société Ninja Squad, et je serais donc officiellement un ninja dans quelques jours. Je suis très heureux de me lancer dans cette aventure et c’est avec impatience que se sont écoulés les derniers mois. Nous y voilà enfin et vous pouvez lire plus de détails sur notre blog avec l’annonce officielle.

Notre ambition est de réaliser des projets qui nous tiennent à coeur, open sourcer des outils et nous allons également faire profiter la région de nos services, aussi bien en prestation de développement (ce que nous adorons faire), qu’en conseil ou expertise plus ponctuelle et formations.

Si vous suivez ce blog ou que vous connaissez Mix-IT, vous savez que cette société sera Agile avec du Java, du Web et du Mobile!

Mes compagnons sont :

– Agnès Crépet, JDuchess active sur tous les fronts, du LyonJUG, à Mix-IT en passant par Cast-IT

Cyril Lacôte, ex-Googler (auteur en grande partie du site de Mix-IT)

Jean-Baptiste Nizet, top 0.01% de Stack Overflow

Alors si vous cherchez une petite équipe de dév qui va bien, vous savez à qui penser!

Un an de hype!

Après plus d’un an de blog, et 18 articles, voici le moment idéal de faire un petit résumé des thèmes abordés en 12 mois de hype!

Node
Pas mal de Node.js, peut être le sujet le plus hype de l’année, avec une série d’articles d’introduction :
Getting started with Node.js (part 1)
Getting started with Node.js (part 2)
Un complément à cette série avec la présentation du framework web Express (et mise en oeuvre avec un exemple dispo sur github) : Node, Express et Jade.
Si vous voulez coder, il faut également un IDE pratique : Cloud9 propose un outil en ligne, prévu pour faire du node.js.
Enfin deux billets autour de l’actualité de Node et de son écosystème :
Trello qui utilise Node (de façon assez étrange l’article le plus lu de l’année avec plusieurs milliers de lecture)
– La sortie d’un framework full stack : Meteor.js, assez intéressant pour son côté temps réél intégré.

Hadoop
La deuxième série d’article a été écrite pour le magazine Programmez et publiée en Septembre dernier. Hadoop est un incroyable outil, si vous voulez le découvrir :
Getting started with Hadoop (part 1)
Getting started with Hadoop (part 2)

Le site Mix-it
Une partie du succés de Mix-it de cette année est dû au site communautaire mis en place, que nous avons développé avec amour :
Le pourquoi
Le comment (avec plein d’outils sympas dedans).

Less
Ou comment le combo Less et Twitter Bootstrap va changer votre vie de développeur web : CSS sucks, do Less!

Play!
Sans avoir d’article vraiment consacré, Play! se retrouve un peu partout avec notamment un article assez lu sur l’annonce de la 2.0 beta à Devoxx :
Back from Devoxx : Play! 2, hopes and fears
Vous trouverez aussi des traces de Play! dans l’article consacré à Typesafe

Des retours de conf
De la What’s next de l’année dernière à fOSSa en passant par Mix-it (vu du côté orga, comment choisit-on les sessions)

Cast-it
Le podcast qui parle Java, mais pas que, continue! Si vous n’avez pas écouté depuis l’annonce, jetez-y une oreille, l’année fut bien remplie avec des invités locaux et internationaux (Romain Guy, Pamela Fox, Guillaume Laforge…)!

Thanks all for reading!


Back from Devoxx : Play! 2, hopes and fears

Le mois de Novembre est de loin le préféré des Javaistes et tous ceux qui le peuvent se rendent à Devoxx, la plus grande conférence européenne sur Java. Plutôt que de commenter chaque session vue, je vais essayer de synthétiser mes impressions sur ces 3 jours de conférences.

Devoxx c’est 5 jours, 2 d’universités et 3 de conférences, à Anvers avec 3300 développeurs. C’est beaucoup de rencontres, des gens que l’on apprécie mais que l’on ne croise qu’aux conférences, et d’autres que l’on voit pour la première fois (et que l’on tente de reconnaître des avatars twitter, avec plus ou moins de succès!). L’organisation est extrêmement bien rodée (10 ème édition) et l’équipe de Stephan fait un travail incroyable (vous imaginez servir 3300 geeks affamés pendant une semaine dans un cinéma où se déroulent 6 tracks en parallèle?).

Il y avait de nombreux sujets traités mais je vais me concentrer sur les sujets qui n’étaient pas ou peu présents l’année précédente, en commençant par Play! dans ce premier article.

Avec aucun talk l’année dernière et 3 cette année, on peut dire que Play! a fait du bruit! Nous avons notamment eu l’annonce de la beta release de la version 2.0 et du rapprochement avec la société Typesafe. Une version qui comme le laisse supposer l’intégration dans la stack de Typesafe s’oriente vers Scala, même si Java sera toujours supporté (l’animation en haut à droite de ce site vous donne une bonne idée de l’évolution).

Fears

Cette décision me gêne un peu personnellement et d’après les échos que j’en ai eu, n’est pas forcément très populaire. Vous pouvez installer cette bêta et vous faire une idée par vous même avec la documentation disponible, mais la simplicité que l’on aimait dans la version 1 disparaît un peu. J’ai attendu quelques jours avant de faire ce billet, car je voulais tester un peu par moi même et prendre la température autour de moi et sur le web. Que nous amène donc cette v2 ?

Même si il est possible de rester sur une version Java pour la partie serveur, le moteur de template est pour l’instant en Scala uniquement, alors que Groovy jusqu’à présent faisait un très bon travail en se faisant oublier. Scala amène un typage plus fort donc une détection plus en amont des erreurs éventuelles, ce qui est louable. Trois exemples d’application sont disponibles avec la bêta, et pour avoir joué un peu avec, ce changement ralentit pas mal la compilation des templates : là où on passait son temps à rafraîchir le navigateur pour avoir instantanément le résultat, on attend maintenant un peu que la compilation se fasse, malgré le fait que mon laptop (MacBook Pro) soit relativement puissant. Le système de template Groovy sera peut être sauvé par la communauté  et réintroduit.

Et Scala est certainement un très bon outil lorsqu’on le maîtrise mais il demande globalement plus d’investissement, et là ou la v1 permettait de se plonger rapidement dans le code, cette v2 inquiète un peu par sa complexification inutile. La documentation est encore un peu légère (normal pour une bêta) donc ces craintes sont peut être inutiles mais j’en doute…

La compatibilité est de plus brisée, vous ne pourrez pas upgrader votre application sans un peu de travail. Le système de build est maintenant confié à SBT, le maven-like de Scala : plus de fichier dependencies.yml donc, et l’ensemble de commande est devenu un wrapper de SBT. A voir à l’utilisation, un peu de lecture si vous voulez approfondir.

Hopes

Tout n’est heureusement pas à jeter dans cette nouvelle version! On peut noter l’utilisation d’IO non bloquant (à la nodejs entre autre), et le traitement asynchrone plus développé (concept Iteratee/Numerator issu de Haskell). L’introduction d’Akka permet de supporter une lourde charge tranquillement et le framework Play! a lui même été en partie réécrit pour en utilisant ces concepts. La démo montre que 10000 requêtes ne posent pas de problème au serveur qui monte au maximum à 15Mo de RAM, et redescend à 2Mo une fois la vague passée : impressionnant, même si les requêtes ne faisaient aucun traitement métier. Play! pourrait devenir un outil de choix pour les applications à très fortes volumétries.

L’abstraction de l’accès aux données est réduite au maximum pour laisser aux développeurs le choix du datastore approprié. On retrouve tout de même les entités avec annotations JPA, et Ebean a remplacé Hibernate et amène un finder pratique pour requêter la base, et plus stateless que son prédécesseur. Dans mes rapides tests, on n’est pas vraiment dérangé par cette nouveauté, à creuser plus en détails.

Côté client, l’objectif est de permettre d’intégrer les excellentes technologies que l’on voit apparaître comme Jade, Less (c’est mon prochain billet de la série Nodejs), Backbone.js, Coffeescript. Un répertoire ‘assets’ a été ajouté à la structure du projet et les fichiers contenus sont automatiquement compilés et disponibles comme si ils étaient des ressources (par exemple les .coffee sont compilés en js et disponibles comme si le js était dans le répertoire public).

Les routes sont également compilées et ça c’est très pratique ! Si le controller ou la méthode indiqué dans le fichier route est inexistant, vous le savez immédiatement.

Dans les petits bonus plaisants, on peut maintenant écrire (en Scala) « def index = TODO » qui permet de continuer à écrire son code sans se préoccuper de l’implémentation du controller. Si on appelle cette méthode, elle affiche dans votre navigateur une belle page avec TODO. Le genre de détail ‘nice to have’.

Si vous voulez approfondir et vous faire votre avis, voici quelques liens qui peuvent vous intéresser :  la page officiellele blog Ipponle blog du Touilleur.

So what ?

Play est définitivement devenu populaire, et apprécié par beaucoup. Je fais partie de ceux qui apprécient son côté simple, productif, efficace et fun et qui l’ont utilisé pour faire des sites actuellement en ligne. Cette v2 me laisse un peu sceptique, n’étant pas spécialement un fanatique de Scala. C’est un excellent langage et très puissant, mais aussi très exigeant à produire et maintenir (des personnes autrement plus qualifiées que moi se sont déchainées sur le sujet ces derniers temps). Là où Play! faisait merveille pour commencer une application en 10 minutes après la lecture de 3 pages de tutorial, la v2 s’oriente vers une stack haute performance plus élitiste. Peut être que dans un an Scala/Play nous aura conquis. Dans tous les cas la hype est toujours là, il va falloir tester ça!

Cloud9, Coding node.js in the cloud

Coder du javascript, ca n’est pas forcément simple, et on a toujours besoin d’un bon outil. C’est pourquoi je veux vous parler d’un IDE que j’ai utilisé récemment, et qui change un peu d’Eclipse et d’IntelliJ : Cloud9.

Cloud9 est un IDE un peu particulier : comme son nom le laisse supposer c’est un environnement de développement web-based, open source, écrit en javascript pour faire du javascript. Le back-end est d’ailleurs écrit en node.js, le front est html5 et le tout utilise massivement les websockets, que du hype! Votre code est donc accessible depuis n’importe quel poste de travail, pour peu que vous ayez une connection web, évidemment.

Pour tester rendez vous sur c9.io ou installez le directement dans votre navigateur si vous utilisez Chrome (si vraiment vous n’aimez pas votre navigateur, vous pouvez également récupérer les sources et lancer l’IDE en local). Une fois installé, il faut se connecter : pour cela vous pouvez utiliser votre compte Github ou Bitbucket, ou encore créer un compte cloud9. Le projet utilisé pour cette série d’article étant hébergé sur Github, j’utiliserais donc cette option.

Une fois connecté vous arrivez sur une page d’accueil qui liste les projets de votre compte Github. Pour commencer à travailler, il faut créer ou cloner un projet. La création permet d’héberger son projet directement sur Github, Bitbucket ou un ftp (bientôt sur Dropbox également). Cloud9 adopte un modèle de fonctionnement à la Github : si votre projet est public, l’utilisation est gratuite, si vous voulez faire un projet privé, il faut payer (15$ par mois).

L’IDE permet également de créer des contextes : en haut à gauche, cliquez sur ‘Active context’. Ces contextes permettent de changer rapidement entre vos projets et également de gérer l’aspect collaboratif : il est possible d’ajouter des membres aux différents projets et de travailler à plusieurs (avec modifications temps réel et chat intégré).

Pour faire simple, nous allons cloner le projet du précédent article, pour cela, cliquez sur le ‘+’ à côté de ‘My project’ puis choisissez ‘clone from url’. Entrez alors l’adresse du projet shares : git://github.com/cexbrayat/shares.git. Une fois que Cloud9 a terminé de cloner le projet, on peut commencer à coder en cliquant sur ‘Start editing’ !

La fenêtre qui apparaît ressemble à un IDE traditionnel avec barre de menu, explorateur de fichier et zone d’edition. En bas la zone de saisie sert de console. Si l’on ouvre le fichier app.js, on voit que la coloration syntaxique est présente et agréable. La complétion est elle aussi disponible (et très pratique, mais si elle n’est pas exempte de quelques errements). Le code est également analysé en fond, et des indications vous sont données pendant l’édition. On peut voir par exemple qu’un point virgule est manquant sur la ligne 42 avec un petit warning dans la marge. Beaucoup de raccourcis clavier traditionnels sont disponibles, le debug, l’inspection des variables, bref tout ce dont nous avons besoin. Il est même possible d’ajouter des extensions (et d’en créer) ou de modifier les thèmes (IdleFinger ou Monokai sont assez sympas).

La où Cloud9 se distingue c’est qu’il est réellement pensé pour créer du code et le tester depuis n’importe quelle machine, et particulièrement pour du code node.js. L’intégration de différents composants vont en faire l’un de vos nouveaux amis :

Github : la ligne de commande (zone de saisie tout en bas de l’écran) vous permet de saisir vos commandes git, avec une autocomplétion bien pratique. Vous pouvez donc directement commiter vos modifications, créer vos branches etc…

NPM : le gestionnaire de dépendances de node est déjà installé ! Le projet utilisant les modules express et jade, il faut donc les récupérer, pour cela entrez dans la ligne de commande ‘npm install’ et voilà le projet prêt à être lancé.

– Node : évidemment node.js est déjà installé, vous pouvez donc lancer votre projet directement depuis votre navigateur en cliquant sur ‘run’ et en indiquant le fichier principal ‘app.js’. Le projet démarre alors et une url s’affiche en console (pour moi http://shares.cexbrayat.cloud9ide.com/) et me permet d’accéder au projet (ainsi qu’à n’importe qui, voilà qui va simplifier les démos!). La seule modification qu’il soit nécessaire de faire pour lancer le projet est de modifier le port de lancement de l’application par la variable d’environnement process.env.C9_PORT

– Le déploiement : une fois votre application prête pour le monde, vous pouvez la déployer directement depuis cloud9 vers une instance joyent ou heroku.

Les seuls reproches que je lui ferais sont le manque d’outils pour le refactoring et quelques rares plantages (pas beaucoup plus qu’un Eclipse traditionnel cependant. Un troll, où ça ?).

Vous voilà à deux clics de commencer à coder votre première application node.js, sans avoir besoin d’installer moults outils : vous n’avez plus d’excuse pour ne pas essayer !

Trello, encore un peu de Node.js

Cette semaine (le 13 Septembre exactement), FogCreek a annoncé un nouvel outil. Peut être ne connaissez vous pas FogCreek : c’est la société de Joël Spolsky, aussi fondateur de StackOverflow et auteur de l’excellent blog, Joël on Software.

L’outil s’appelle Trello et sert à gérer les différentes tâches de vos projets, à la manière d’un whiteboard avec post-it que l’on deplace. Vous pouvez créer une nouvelle tache, représentée par une carte, l’assigner a un utilisateur, commenter cette tache, y ajouter une liste de choses a faire (avec une barre de progression qui se remplit au fur et a mesure que chaque item de la liste est effectué). On peut également déplacer ces taches entre les différentes colonnes, y ajouter des pieces jointes, des labels, tout ca avec des raccourcis claviers! Lisez le billet de Spolsky a l’occasion du lancement pour avoir plus de détails sur les usages qu’il est possible d’en faire : FogCreek utilise par exemple un ecran 42 pouces pour afficher Trello dans leurs locaux! Un autre article en français si vous êtes allergique à la langue de Shakespeare.

Mais surtout Trello est gratuit, donc foncez vous inscrire et essayer ! On l’utilise depuis quelques jours sur un petit projet, c’est très pratique et fun.

Si vous avez lu le titre de l’article, vous savez que je ne voulais pas seulement vous parler de l’outil Trello, mais aussi des technologies qu’il utilise. Essayez d’accéder à Trello depuis votre téléphone ou de réduire votre écran : la CSS est très bien faite et s’adapte parfaitement quelque soit la résolution d’écran. Un coup de Firebug plus tard, je me suis rendu compte que de plus ca sentait l’application Node.js à plein nez. Effectivement après quelques recherches plus poussées, j’en suis arrivé à une conclusion qui s’est trouvée confirmer par un employé de FogCreek sur son Twitter.

La stack compléte semble être :

Node.js.

– Module Express.

– Module Async qui permet de faire de l’asynchrone en Javascript (ajoute des focntions map, reduce, filter et du contrôle de workflow).

– Backbone.js et Underscore.js (je vous laisse lire les très bon articles de Philippe Charrière) pour le MVC côté client.

– La partie CSS utilise le module Less (c’est l’objet de mon prochain article).

– Utilisation massive des websockets grâce à Socket.io (vous pouvez le voir en ouvrant de multiples onglets et observer les modifications qui se répercutent – article à suivre également).

CoffeeScript pour simplifier l’écriture du Javascript et JQuery.

– MongoDb avec Mongoose pour les données persistantes.

Redis pour les données non persistantes du type session.

– Pour le debug, Node Inspector est évoqué.

A priori le mot d’ordre chez FogCreek c’est de ne pas utiliser une techno qui a plus de 2 ans : so hype ! Spolsky devrait écrire quelques articles dans les prochains jours sur le pourquoi de ces choix, je vous conseille de suivre le blog de Trello si cela vous intéresse. Dans tous les cas, voilà peut être la killer-app de Node.js.

Edit 19/01/2012 : l’article est enfin sorti et confirme la stack décrite ici, enjoy!

What’s next

Ce vendredi 27 Mai était l’occasion de découvrir l’avenir de notre métier à la conférence What’s Next organisée à Paris. De beaux locaux (le Grand Rex) et de bons speakers étaient au rendez vous !

Neal Gafter
Pour entamer la journée, un talk de Neal Gafter qui commence par rappeler l’histoire de Java, l’origine des disputes avec Google etc… Il nous parle ensuite des nouveautés de Java7 et des possibilités de Java8. Pas forcément la peine d’entrer dans le détail, rien de très nouveau ici. Sa conclusion : c’est mieux d’avoir quelqu’un comme Oracle qui dirige l’innovation et les progrès sur la plateforme Java, et que les efforts soient concentrés sur un seul projet open source (OpenJDK). Cela va dans la bonne direction et il pense que nous assistons a un renouveau de Java. Thomas Conté, architecte chez Microsoft, termine en nous parlant de Azure qui se veut ouvert non pas seulement a .Net mais aussi a Java, Ruby, Python, Php. L’intégration à l’IDE semble aussi bien penser. Pour plus détails si vous êtes intéressés, consultez le whitepaper Azure pour les javaistes.

Rob Harrop
On enchaine avec Rob Harrop qui nous présente RabbitMQ. Cette présentation est probablement l’une de mes préférées de la journée, on a vu des concepts et des démos, le tout dans 5 langages différents (Java, Python, Ruby, Erlang, Javascript !). RabbitMQ se base sur le protocole de messaging AMQP et supporte également STOMP, protocole de plus bas niveau. RabbitMQ est écrit en Erlang et fait partie du portfolio VMWare. Les démos s’enchaine avec des consumers/producers de messages dans des langages différents, avec des protocoles différent. La dernière démonstration montre un serveur node.js qui récupère des messages d’une queue et utilise le protocole websocket pour afficher en live les messages dans le browser.
Speaker très impressionnant et intéressant, si vous avez l’occasion de le voir, je le recommande chaudement !

Theo Schlossnagle
Si le nom du speaker m’était inconnu, son activité n’en est pas moins impressionnante : contributeur à une vingtaine de projets open source, dans différents langages, il est là pour nous parler architecture scalable. Son point de vue est intéressant car il a également travaillé dans les teams ‘ops’ et pas seulement ‘dev’. Il rappelle que le cloud et NoSQL ne sont pas des solutions miracles et que nos applications doivent avant tout être bien pensées pour scaler.
Il prône un modèle d’application ou chaque composant est entièrement découplé et communique avec les autres composants par messages déposés dans des queues. On retrouve là les propos du speaker précédent. Ce découplage permet ensuite de tester chaque partie en isolation, et ainsi grâce à la puissance du cloud, de vérifier des hypothèses sur le dataflow, le cheminement de vos données dans les traitements.
Il faut également vérifier la consistance du comportement en effectuant plusieurs fois la même action : si cela se passe mieux ou moins bien que prévu, il faut enquêter pour trouver la cause et on apprendra forcément quelque chose sur le fonctionnement de l’application. Il insiste également beaucoup sur les traitements asynchrones afin que l’expérience utilisateur soit fluide. Le monitoring (nombre de messages, de connections parallèles, etc…) est également important. Pour terminer il rappelle le ‘Fail often, fail early’ pour garder une expérience utilisateur la moins dégradée possible. Speaker intéressant également !

Michael Chaize
La présentation tourne autour de Flex 4.5, un peu la même que l’on avait pu voir dans nos JUGs. Il faut dire que Michael est français (le seul à nous faire une conférence dans la langue de Molière!) et que c’est un habitué des présentations Flex. Sa démo, un client Twitter, réalisé en live, nécessite très peu de code. Le déploiement peut se faire sur de nombreuses plateformes : navigateurs évidemment mais aussi tablettes android, playbook, ios…
La présentation se termine par le retour d’expérience d’un développeur Flex. Pas mal, un peu de UI ca change…

Jonas Boner
Créateur du framework Akka, travaille maintenant pour TypeSafe (pour ceux qui n’ont pas suivi voir article précédent). Scala est intéressant pour faire des applications… scalables! Et Akka permet de tirer profit de la puissance a notre disposition (Boner vient d’acheter une machine 48 coeurs pour tester pour 5000$, un prix relativement faible pour une telle machine). Petite déception pour ma part, la présentation est à peu près la même que celle de Viktor Klang à Devoxx. Celle ci étant disponible sur Parley’s, je vous conseille d’y jeter un oeil si vous êtes intéressés. La première partie nous présente le fonctionnement des acteurs, puis la seconde des ‘remote actors’ qui permettent de faire du distribué (basé sur NIO, Netty plus précisement et ProtoBuf). Akka 2.0 permettra de faire des ‘clustered actors’ et de gérer notamment la configuration de déploiement.

Shay Banon
La présentation portait sur Elastic Search un moteur d’indexation et de recherche très puissant. On pourrait dire que c’est un SolR sous stéroïdes. Pour tous ceux qui ont travaillé avec un outil de ce genre, la présentation est passionnante : aucun slide mais un enchainement de petits cas pour montrer la puissance de l’outil. Tout commence par le démarrage d’une instance d’Elastic Search en console, puis un enchaînement de commande ‘curl’ pour l’utiliser ! Elastic Search est en effet entièrement exposé par une API REST à laquelle on envoie du JSON, que ce soit pour ajouter des documents à indexer ou faire des requêtes. On passe ensuite en mode distribué en ajoutant plus de noeuds ce qui déclenche une répartition automatique de la charge ainsi que la réplication des données. Tout cela sans que cela dérange vos requêtes : impressionnant ! Si on coupe un noeud, la charge est bien évidement à nouveau répartie de manière uniforme entre les nœuds restants. Point marrant : les instances d’Elastic Search sont nommées aléatoirement à leur création pour simplifier leur suivi : nous avions donc Docteur Sun, Torso et Pasco lors de la démo. Un ajout de document ne nécessite pas de déclaration des différents champs : ES se charge pour vous d’interpréter de quel type est chaque champ. Mais il est également possible de faire cette configuration par l’API REST et de définir soi même les types. L’indexation peut faire appel à un ensemble d’analyzer : phonétique, ngram, etc (on retrouve les analyzer Lucene). Les requêtes offrent elles une véritable DSL qui permet de combiner filtre, analyzer etc… On retrouve également la gestion des facettes : par terme (nombre de fois ou chaque terme est utilisé), statistiques sur un champ (min, max, moyenne, etc…), valeur dans un intervalle donné, histogramme (voir blog ES). La dernière fonctionnalité présentée est le ‘percolator’ qui permet d’enregistrer les requêtes et voir si un document répond à l’une d’entre elles (le document n’est pas indexé mais renvoie les requêtes matchées). Une solution à surveiller si vos besoins d’indexation exige de la scalabilité (le speaker annonce des temps de requêtes de l’ordre la centaine de ms pour plusieurs millions de documents).

Kohsuke Kawaguchi
La journée se termine par une présentation de Koshuke Kawazaki sur Jenkins et son futur. On retrouve pas mal d’idées autour de la gestion des DVCS, les builds distribués exploitant la puissance des machines, les outils de revue de code comme Gerrit. Rien d’exceptionnel mais il est bon de voir que le papa de Jenkins est encore plein d’idées pour la suite !

Une belle journée donc, avec bien sûr l’occasion de rencontrer les fidèles des conférences autour d’un café à la pause. Merci à la société Zenika qui prenait en charge l’organisation de cette journée !

Cast-it : le podcast !

Oyez, oyez !

La team du Lyon JUG est heureuse de vous présenter son podcast Cast-it, où l’on parle actus Java mais pas que !

Dans l’esprit de la conférence Mix-it, nous tenons à ce que tous les passionnés puissent s’exprimer sur Java, l’agilité ou le l’IT en général : si vous avez envie de venir au micro faites nous signe !

L’équipe de ce pilote est constituée de :
Agnes Crepet
Cyril Lacote
Laurent Petit
Alexis Hassler
moi même
et de notre speaker JUG du mois, Fabien Bousquet.

Nous avons parlé de What’s Next et Google IO, du tweet de la semaine et de nos coups de coeur. Vous pouvez le télécharger sur le site et bientôt sur iTunes. Et surtout , dites nous ce que vous en pensez, par exemple sur twitter @cast_it !

TypeSafe : Scala vers l’entreprise et au delà

La semaine dernière a eu lieu l’annonce officielle de la création de l’entreprise TypeSafe et de la mise à disposition de leur stack en téléchargement. Cette stack est conçue pour développer en Scala en entreprise, avec notamment le framework Akka, l’outil de build SBT et des outils pour coder. Que des trucs trendy !

Logo Typesafe

TypeSafe a une équipe assez exceptionnelle, jugez plutôt :
Martin Odersky, créateur de Scala
Jonas Boner, créateur de Akka
– Mark Harrah, créateur de SBT
Victor Klang, développeur sur Akka, speaker a Devoxx .

Comme conseillers de l’entreprise, on compte James Gosling et Doug Lea. Comme investisseurs, des exécutifs de Facebook, Google, Linkedin, Foursquare et Redhat. Bref, du lourd, du très lourd.

TypeSafe veut fournir aux développeurs une stack complète, gratuite et open source pour faire des applications scalables avec Akka pour middleware, et vise notamment les applications “cloud”. Il y aura également une activité de support sur cette stack, ainsi que de la formation et du conseil. Un installeur izpack (excellent produit open source, par le non moins excellent Julien Ponge) vous amène le nécessaire sur votre machine pour vous lancer dans l’aventure !

Scala doit on le rappeler, a été créé il y a maintenant 8 ans, et est en version 2.9.0. Le but avoué de ce langage est de combler les failles de Java tout en s’appuyant sur ses forces. La dernière version amène notamment une amélioration globale des performances et le support des collections parallèles.

Akka est un framework basé sur le modèle de communication par acteur lesquels échangent des messages asynchrones. Viktor Klang était speaker à Devoxx et avait donné un talk très intéressant, qui donne un bon aperçu de la puissance de Akka. Ce talk est d‘ailleurs disponible gratuitement sur Parley’s

Les acteurs sont des processus légers, isolés et non bloquants, qui ne partagent aucun état avec les autres processus. Chaque acteur a une boite aux lettres qu’il utilise pour recevoir les messages des autres acteurs. Ce système permet d’éviter plus simplement les problèmes de deadlock, starvation… Il peut toujours y avoir des problèmes mais il est plus simple de les éviter.

Akka vous offre aussi le support des transactions, des services REST, des Websockets, de Apache Camel, de Spring, de AMQP et de OSGi… Si avec tout ça vous ne trouvez pas votre bonheur !

Une fois l’installation réalisée, un petit tutorial est fourni pour calculer les décimales de Pi, en utilisant Akka depuis Scala ou Java. Le tuto présente également comment installer Scala IDE 2.0, dernière version du plugin pour Eclipse. Le support de Scala s’est bien amélioré dans l’IDE, même si la complétion est encore parfois un peu perdue.

Un récent article sur Akka avec une belle métaphore sur la pièce ‘En attendant Godot’ permet de se plonger plus en douceur dans les concepts du produit.

Un dernier mot, le site de TypeSafe est réalisé avec Play! Framework (comme le site de Mix-it d’ailleurs). Puisqu’on vous dit que c’est trendy !