{"id":431,"date":"2010-11-04T13:50:57","date_gmt":"2010-11-04T12:50:57","guid":{"rendered":"http:\/\/www.alpesjug.fr\/?p=431"},"modified":"2010-11-04T14:16:30","modified_gmt":"2010-11-04T13:16:30","slug":"compte-rendu-des-soirees-resthub-et-gridgain","status":"publish","type":"post","link":"https:\/\/www.alpesjug.fr\/?p=431","title":{"rendered":"Compte-rendu des soir\u00e9es RESthub et Gridgain"},"content":{"rendered":"<p>Pour terminer avec le Jugathlon du mois d&rsquo;octobre voici le compte-rendu des deux derni\u00e8res sessions.<\/p>\n<h2>Soir\u00e9e RESThub<\/h2>\n<p><div id=\"attachment_447\" style=\"width: 310px\" class=\"wp-caption alignright\"><a href=\"http:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/11\/LP0_7862.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-447\" src=\"http:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/11\/LP0_7862-300x199.jpg\" alt=\"L&#039;\u00e9quipe RESThub\" title=\"L&#039;\u00e9quipe RESThub\" width=\"300\" height=\"199\" class=\"size-medium wp-image-447\" srcset=\"https:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/11\/LP0_7862-300x199.jpg 300w, https:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/11\/LP0_7862-1024x681.jpg 1024w, https:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/11\/LP0_7862.jpg 1279w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-447\" class=\"wp-caption-text\">L'\u00e9quipe RESThub<\/p><\/div><br \/>\nRESThub est un framework d\u00e9velopp\u00e9 par S\u00e9bastien Deleuze et Baptiste Meurant afin d cr\u00e9er un outil de haut niveau permettant d&rsquo;int\u00e9grer les technologies Java et Web actuelles dans une pile compl\u00e8te de d\u00e9veloppement. On lutte ainsi contre le fameux syndrome du \u00ab\u00a0Not Invented Here\u00a0\u00bb en reprenant des standards de fait ou d\u00e9finis pour d\u00e9velopper en java presque aussi vite et avec autant de plaisir qu&rsquo;en Rails.<br \/>\nPour info, RESThub sera pr\u00e9sent\u00e9 \u00e0 Devoxx !!<\/p>\n<p>En cela RESThub est dans la philosophie de Play! Framework mais il reste sur les standards du monde Java (Maven \/ Jersey \/ JPA pour n&rsquo;en citer que quelques uns). Bref en citant Baptiste : \u00ab\u00a0RESThub est un framework pour les rassembler tous et dans la JVM les lier\u00a0\u00bb \ud83d\ude09<\/p>\n<p>RESThub est une application en couche o\u00f9 chacune des couches peut-\u00eatre reprise individuellement ou remplac\u00e9e . Ainsi la couche de persistance est un mixte entre <a title=\"Hades Framework\" href=\"http:\/\/redmine.synyx.org\/projects\/show\/hades\" target=\"_blank\">Hades<\/a> pour ses DAO g\u00e9n\u00e9riques et <a title=\"Hibernate\" href=\"http:\/\/www.hibernate.org\" target=\"_blank\">Hibernate<\/a>. La couche service est expos\u00e9e via <a title=\"Jersey\" href=\"https:\/\/jersey.dev.java.net\/\" target=\"_blank\">Jersey<\/a> et <a title=\"Jackson\" href=\"http:\/\/jackson.codehaus.org\/\" target=\"_blank\">Jackson<\/a> pour la s\u00e9rialisation json (on reste l\u00e0 dans les standards). Enfin pour la vue, on int\u00e8gre le standard de fait JQuery ainsi que toute une s\u00e9rie de frameworks Javascript (jQuery 1.4 + jQuery ui 1.8 + Yahoo Javascript compressor + EJS + Sammy (route &amp; session manager)).<\/p>\n<p>Voici les slides de la pr\u00e9sentation :<\/p>\n<div id=\"__ss_5529521\" style=\"width: 425px;\"><strong style=\"display: block; margin: 12px 0 4px;\"><a title=\"Resthub framework presentation\" href=\"http:\/\/www.slideshare.net\/sdeleuze\/resthub-framework-presentation\">Resthub framework presentation<\/a><\/strong><object id=\"__sse5529521\" classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" width=\"425\" height=\"355\" codebase=\"http:\/\/download.macromedia.com\/pub\/shockwave\/cabs\/flash\/swflash.cab#version=6,0,40,0\"><param name=\"allowFullScreen\" value=\"true\" \/><param name=\"allowScriptAccess\" value=\"always\" \/><param name=\"src\" value=\"http:\/\/static.slidesharecdn.com\/swf\/ssplayer2.swf?doc=resthub-presentation-101022080553-phpapp02&amp;stripped_title=resthub-framework-presentation&amp;userName=sdeleuze\" \/><param name=\"name\" value=\"__sse5529521\" \/><param name=\"allowfullscreen\" value=\"true\" \/><embed id=\"__sse5529521\" type=\"application\/x-shockwave-flash\" width=\"425\" height=\"355\" src=\"http:\/\/static.slidesharecdn.com\/swf\/ssplayer2.swf?doc=resthub-presentation-101022080553-phpapp02&amp;stripped_title=resthub-framework-presentation&amp;userName=sdeleuze\" name=\"__sse5529521\" allowscriptaccess=\"always\" allowfullscreen=\"true\"><\/embed><\/object><\/p>\n<div style=\"padding: 5px 0 12px;\">View more <a href=\"http:\/\/www.slideshare.net\/\">presentations<\/a> from <a href=\"http:\/\/www.slideshare.net\/sdeleuze\">sdeleuze<\/a>.<\/div>\n<\/div>\n<h2>Soir\u00e9e Gridgain<\/h2>\n<div id=\"attachment_440\" style=\"width: 435px\" class=\"wp-caption alignright\"><a href=\"http:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/11\/nikita.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-440\" class=\"size-medium wp-image-441\" title=\"Nikita coding\" src=\"http:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/11\/nikita-225x300.jpg\" alt=\"Nikita coding\" width=\"225\" height=\"300\" srcset=\"https:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/11\/nikita-225x300.jpg 225w, https:\/\/www.alpesjug.fr\/wp-content\/uploads\/2010\/11\/nikita.jpg 300w\" sizes=\"auto, (max-width: 225px) 100vw, 225px\" \/><\/a><p id=\"caption-attachment-440\" class=\"wp-caption-text\">Nikita coding<\/p><\/div>\n<p>Nikita Ivanov nous a fait l&rsquo;honneur de passer par Grenoble durant son transit entre Rome et Paris. <a href=\"http:\/\/www.gridgain.com\">Gridgain<\/a> est un middleware libre (sous license GPL) pour construire des applications distribu\u00e9es sur des grilles de calcul. Il devient ais\u00e9 de d\u00e9velopper une application de type Map-Reduce en quelques lignes. Comme par magie, les diff\u00e9rents n\u0153uds de calcul de Gridgain se d\u00e9couvrent sur le r\u00e9seau et, tel un r\u00e9seau pair-\u00e0-pair, communiquent entre eux sans que l&rsquo;un ait une place privil\u00e9gi\u00e9e. L\u00e0 encore, presque comme par magie un bout de code d\u00e9ploy\u00e9 sur l&rsquo;un des n\u0153uds est automatiquement r\u00e9pliqu\u00e9 et ex\u00e9cut\u00e9 sur les autres. Ainsi tout au long des d\u00e9monstrations on jongle sur les diff\u00e9rents n\u0153uds pour voir o\u00f9 est ex\u00e9cut\u00e9 quelle t\u00e2che.<br \/>\nA cette pr\u00e9sentation de ce magnifique moteur de grid computing, a suivi une introduction \u00e0 Scala. En effet Gridgain propose une API Java mais aussi <a title=\"scala\" href=\"http:\/\/scala-lang.org\" target=\"_blank\">Scala<\/a>, fournissant ainsi un v\u00e9ritable DSL pour construire des applications distribu\u00e9es. Ainsi la variable grid correspond \u00e0 l&rsquo;ensemble des noeuds (mais d&rsquo;autres topologies sont possibles) et l&rsquo;op\u00e9rateur !!! \u00e0 la fonction de broadcast, donc<br \/>\n<code>def greet(msg: String) = grid !!! (() =&gt; println(msg))<\/code><\/p>\n<p>permet de faire ex\u00e9cuter le fameux Hello World sur l&rsquo;ensemble des n\u0153uds du r\u00e9seau.<br \/>\nLa d\u00e9monstration se poursuit et en quelques minutes nous voici avec une application Map-Reduce.<br \/>\nNikita nous parle ensuite des clients qui utilisent Grigain en production : on y retrouve bien s\u00fbr les banques pour les calculs de cotation mais aussi les fournisseurs de jeux en ligne (notamment Sony) car aujourd&rsquo;hui c&rsquo;est cot\u00e9 serveur que se retrouvent les plus grosses \u00e9quipes de d\u00e9veloppement de jeux.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pour terminer avec le Jugathlon du mois d&rsquo;octobre voici le compte-rendu des deux derni\u00e8res sessions&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15,18],"tags":[13,4,28,20,366,11],"class_list":["post-431","post","type-post","status-publish","format-standard","hentry","category-compte-rendu","category-slides","tag-framework","tag-jug","tag-rest","tag-scala","tag-slides","tag-soiree"],"_links":{"self":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts\/431","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=431"}],"version-history":[{"count":15,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts\/431\/revisions"}],"predecessor-version":[{"id":450,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=\/wp\/v2\/posts\/431\/revisions\/450"}],"wp:attachment":[{"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=431"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=431"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.alpesjug.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=431"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}