Search
Calendar
March 2024
S M T W T F S
« Sep    
 12
3456789
10111213141516
17181920212223
24252627282930
31  
Your widget title
Archives

Posts Tagged ‘Devoxx’

PostHeaderIcon Retours sur Devoxx France 2016 (3): “Retours sur Java 8″ par JM Doudoux

L’amphi bleu -le plus grand et confortable- a ete reserve pour une conference ne paie pas de mine a priori: “Retours sur Java 8″. Pourquoi un tel engouement? La raison probable en est le speaker: Jean-Michel Doudoux, connu dans la planete Java francophone comme “jmdoudoux”.

JM Doudoux

Si un developpeur Java francophone a passe les 15 dernieres annees a l’isolement dans un goulag en Coree du Nord, voici un rappel: JM Doudoux est un GRAND monsieur, surtout connu pour ses tutoriels Java, qu’il publie continument depuis 1999. 17 ans, ca fait un bail… Jean-Michel est l’un des Java Champions francais.

Personnellement, je suis redevable a Jean-Michel d’avoir lu des dizaines et meme des centaines de pages de ses tutoriels, quand j’ai commence a utiliser Java en milieu professionnel et non seulement academique, et ce pendant des annees. Je ne compte pas les heures passees dessus, et je repense a la malheureuse imprimante de SGF au 5e etage qui avait la lourde tache d’imprimer chaque jour son lot de papier.

Pour revenir au personnage, premiere observation: Jean-Michel est populaire: l’amphi est plein, avec du monde dehors qui fait du forcing pour tenter de rentrer. Parmi l’assistance, un tiers de la salle n’utilise pas Java 8, et on reconnait des grosses pointures de la communaute…

Jean-Michel est modeste. Il s’etonne qu’on lui ait affecte le grand amphi, et plus encore que cet amphi soit plein.

Jean-Michel est accessible. Il ne refuse pas de parler et faire des selfies apres sa conference et dans les couloirs.

Enfin, Jean-Michel est quebecois ou, du moins, il parle parle comme les habitants de la Belle Province. Il mentionne “fabriques”, “didacticiels” et autres “bonnes pratiques” la ou d’autres cedent aux courants dominants des “factories”, “tutorials” et “best practices”.

(Note: pour ma part je reste sceptique sur certaines traductions, et prefere recourir aux termes originaux)

Retours sur Java 8

Jean-Michel revient d’abord sur les notions de best practice, definie comme une facon de resoudre un probleme meilleure que les autres. Les best practices sont mouvantes (dans les mots: “empiriques, contextuelles et mouvantes”) avec le temps car les methodologies, materiels et logiciels evoluent, et necessitent donc d’etre periodiquement remises en cause.

Ensuite Jean-Michel revient sur les differents apports de Java 8: comme l’Optionnal, les streams, les default methods et la nouvelle API Date, etc.

Si je resume grossierement l’intervention de Jean-Michel: utiliser les Optionnal en faisant attention, idem pour les streams.

With the master

Liens

 

PostHeaderIcon Retours sur Devoxx France 2016 (2): Codenvy

J’ai pu feliciter en direct l’equipe de Codenvy, qui tenait un stand promouvant Eclipse Che.

Histoire personnelle des IDE

Je ne suis pas plus un fan d’Eclipse. Mon opinion est que l’IDE a grandi de maniere anarchique et manque de nombreuses features d’IDEA, bien que le retard se comble avec le temps. La plethore de plugins fait que les incompatibilites sont nombreuses, et l’outil se revele lent au final. A vouloir etre le plus generaliste possible et contenter tout le monde, on finit par ne plus satisfaire meme con coeur de cible.

J’ai commence a coder en Java sous XEmacs ; mon premier IDE etait Sun Forte en 2002 aux Etats-Unis. J’ai continue avec Netbeans chez Philips en 2003 et bascule sous Eclipse en 2005 a mon entree chez Sungard-Finance (alias GP3). A l’epoque, la facilite de mise a jour et d’integration des plugins -en l’occurence Maven 1, Tomcat, Subversion, SOAP et Python- m’avaient conquis. Deja pourtant je devais regulierement passer du temps a gerer les conflits et nettoyer le workspace.

Mes premiers essais avec IDEA en 2007 ont ete laborieux, et sans l’insistance de mon equipe je dois avouer que j’y aurais renonce. J’ai encore du utiliser ponctuellement Eclipse en 2010, quand le support de GWT par IDEA n’etait pas convenable, puis en 2013 a l’occasion de l’ecriture de mon premier ouvrage.

Quant a Codenvy.com, j’ai fait sa connaissance en avril 2015. Je l’utilise regulierement pour de petites operations, lorsque ma machine principale de developpement n’est pas disponible.

Aussi c’est dire que je n’ai pas aborde le stand de la Fondation Eclipse avec un oeil favorable. Mais j’ai vite change d’avis quand je me suis fait aborder par un exposant et lui ai dit que, sans vouloir troller, a part Codenvy je ne comptais pas consacrer du temps a Eclipse pour les mois qui viennent.

Codenvy

La philosophie de Codenvy est que notre code source est heberge sous Github, notre base de donnee est sur le cloud et notre application est deployee chez Amazon WebServices. Alors pourquoi ne pas coder directement sur le cloud?

Codenvy met a disposition un IDE en ligne, ma foi bien pratique. Ne nous leurrons pas, en l’etat actuel Codenvy ne peut pas remplacer IntelliJ IDEA, a moins d’etre pret a sacrifier 50% de sa productivite, ce que peu de monde peut se permettre, surtout en milieu professionnel.

Techniquement, Codenvy se presente comme une application web incluse dans le navigateur. Sous le capot tourne le moteur d’Eclipse Che, le futur de l’IDE de la Fondation Eclipse.

Codenvy ne propose pas qu’un editeur de fichiers. Des clients Git et SVN permettent de recuperer ou modifier le code sur un gestionnaire de versions. Enfin, il offre aussi des espaces d’execution sous Docker. Il est ainsi possible de coder une application web, monter une base de donnees MongoDB dans un Docker et deployer le WAR dans un autre conteneur.

Flow

Use cases

Les use cases de Codenvy sont assez varies. J’en vois deux principaux:

Programmation classique

L’editeur de Codenvy permet de developper en environnement decentralise et distribue. L’IDE en ligne a le meme interet que l’editeur de documents sous Google Drive: il est accessible depuis partout, sans necessite d’installer quelque software que ce soit ; de plus, il est toujours mis a jour, sans intervention de l’utilisateur.

Un interet sous-jacent est que le developpement se fait sous un client leger, et la puissance de l’ordinateur hote n’est pas fortement sollicitee: en effet, les operations fortement consommatrices de resources (comme la compilation ou les divers appels IO) sont effectues sur le cloud. Aussi, il devient possible, comme cela m’arrive de temps en temps, de sortir un netbook de 10 ou 11″ de diagonale, avec un simple Atom et 2Go de RAM, pour corriger un bug, commiter et pusher sur Github puis redeployer une instance de prod. Oui oui, a partir un PC qui n’a rien d’un Core i7/SSD/16Go.

Partage d’espace de developpement

Le second cas d’utilisation est le partage de bug/cas via des plateformes sur le net. En cas de probleme, inutile d’uploader un zip, le recuperer, installer le projet, et les librairies, etc. sur le poste local. Non, la personne levant le bug cree juste un espace sur Codenvy, avec la bonne configuration et le cas de reproduction de bug, cree une issue dans Github et poste un lien sur Stackoverflow. Le reste de la planete developpeur peut acceder a l’espace, eventuellement le dupliquer, et resoudre le probleme. Cerise sur le gateau: le ticket sous Github se met a jour avec les commits.

Limitations

Bien evidemment, Codenvy en tant que client leger vient avec son lot de limitations. Tout d’abord, il n’est pas possible d’installer de plugins, par consequent il devient difficile de gerer les langages exotiques.

Les principaux reproches que je fais a Codenvy sont les suivants:

  • pas de completion automatique. Il faudra connaitre ses APIs! 😀
  • support assez limite de Git: les merges sont une galere.
  • raccourcis claviers non configurables. Une vraie torture quand on doit tout faire a la souris.
  • support limite des projets Maven multimodules. Il faut ruser pour pouvoir deployer un WAR.
  • pas de support des telephones mobiles et des tablettes. L’experience est vraiment penible.

Stevan Le Meur, qui travaille (EDIT: dirige?) dans l’equipe de developpement m’a fait une presentation de la version actuellement beta. Elle corrige de nombreux problemes. J’espere pouvoir acceder rapidement a la beta pour me faire une idee plus precise, mais ce que j’ai pu voir etait enthousiasmant.

L’interface de la version beta

Liens

PostHeaderIcon Retours sur Devoxx France 2016 (1): generalites

Je demarre une serie d’articles sur Devoxx France 2016.

Je n’ai pas pu assister a DevoxxFR en 2015, aussi c’est ma premiere fois experience au Palais des Congres a Porte Maillot. Connaissant cet endroit pour avoir participe a d’autres salons et conferences, je ne suis pas totalement perdu.

Quelques remarques a chaud, en vrac:

General

Les sacs ne sont pas distribues a l’entree, mais a l’interieur, dans un stand “goodies”, aux horaires d’ouverture aleatoires pendant les pauses… Resultat: n’ayant pu me procurer mon sac et le cahier que tard, et je n’ai pu prendre de note ce premier jour.

D’autre part, il faisait chaud dans chaque salle, surtout en amphi Maillot… Je compatis avec les speakers qui ont du parler sous les spots de lumiere :-D.

Choix des sujets

Bien sur, la plupart des conferences etait reellement interessante ; neanmoins, il faut le reconnaitre, somme toute assez limitee dans la diversite: les sujets tournent principalement autour des microservices, Android, devops, BigData, etc.

Je ne crains pas que quiconque se soit ennuye. Cependant, si ces sujets sont “tendance” (et concernent les “hipsters” selon les mots de Matt Raible), concretement ils ne parlent pas forcement a tous les developpeurs. En effet, en France la structure du marche du travail fait que, pour une large part d’entre eux, les developpeurs travaillent chez des “grands comptes”, de type banques, assurance, telecom, etc. Je doute que chez les “grands comptes”, beaucoup de monde travaille en 2016 en mode agile sur des micro-services deployes sur des conteneurs Docker heberges sur un cloud orchestre par Kubernetes, pour traiter du BigData en temps reel dont les resultats sont pushes vers une tablette Android via un API REST securisee en HTTPS 2…

De mon cote j’ai la chance de travailler chez une grande variete de clients (finance, assurance, mais aussi PME et startups), donc pas trop de frustration. Cependant, si j’approuve l’ouverture a d’autres technologies et sujets, je regrette que Devoxx s’eloigne peu a peu de ses fondamentaux: l’ecosysteme Java.
Je suis bien conscient qu’il est impossible de contenter tout le monde. Mais peut-etre faudrait-il prevoir plusieurs “niveaux”, pour permettre d’avoir a la fois des ouvertures sur le futur, des initiations pour debutants pour certaines technologies, ou bien des retours d’experience sur comment pousser dans ses retranchements un “vieux” framework utilise sur du code legacy (sachant que dans nos metiers, “vieux” signifie “age de plus de 2 ans”).

Stands et goodies

Ca allait du minimal (stand petit, pas d’interlocuteur technique) avec quelques stylos, au plus original, en passant par les classiques distributions de tee-shirts. Cette annee, la couleur dominante etait le noir.

Opinions personnelles:

  • les stands les plus grands ne sont pas forcement les meilleurs.
  • en general, les geeks preferent parler a des ITs, plutot qu’a des administratifs/recruteurs/commerciaux qui sont persuades qu’AJAX est un club de football des Pays-Bas.

Sponsors

On remarque l’absence de Google et Oracle pour les “gros”, et d’Octo et Xebia du cote des SSII francaises. Evidemment, les entreprises communiquent beaucoup quand elles sont sponsors, beaucoup moins lorsqu’elles ne le sont pas. Nous en sommes donc reduits a speculer sur le “desinteret” de ces entreprises pour Devoxx: reel retrait strategique, desaccords sur ce que doit etre Devoxx, ou simple question de business/marketing.

Parmi les presents, Zenika et TalanLabs ont reussi a s’imposer dans le carre de sponsors platinium, augmentant leur aura aupres de la communaute, aux cotes d’IBM et d’Amazon. J’ai apprecie l’idee du “Startup Village”: cela donne un apercu de nos jeunes pousses francaises.
En dehors de ca, les autres SSII qui se qualifient de “specialistes” de Java (a mon humble avis, il conviendrait plutot de les decrire comme “specialisees en Java”: aucune SSII n’emploie que des specialistes, et encore moins des cadors, du Java): Ippon, Mirakl, 42, Arolla, Aneo, etc.

Enfin, de nombreux editeurs et intervenant de la galaxie Java etaient presents: citons Jahia, IntelliJ, Sonar, Github, StackOverflow, etc. J’en ai profite pour remercier directement les equipes pour le travail et leurs apports a la communaute.

PS

Merci a TalanLabs de faire en sorte que ses consultants puissent assister a Devoxx 😉

PostHeaderIcon Conférence Devoxx: « 42 IntelliJ IDEA tips in 45 minutes »

intellij-13

JetBrains, le studio russe éditeur de notre IDE préféré IntelliJ IDEA, était présent en force cette année à Devoxx. Outre un stand où il était possible de discuter avec deux développeurs de l’IDE, JetBrains a animé deux conférences.

A vrai dire, j’étais un peu réticent à l’idée d’assister à la conférence de Hadi Hariri (@hhariri, blog): une conférence au titre similaire l’année dernière m’avait laissé sur ma faim, m’apprenant peu de chose. Le compère de Hadi m’a convaincu de faire l’effort. Eh bien je n’ai pas été déçu.

Hadi a présenté plusieurs dizaines de tips et raccourcis clavier. En voici quelques uns que j’ai appris durant la conférence:

  • tout le monde connait le classique CtrlN ouvrant une classe. L’astuce consiste, avec CtrlN (et de manière similaire avec CtrlShiftN) à rajouter “:<numéro de ligne>” en suffixe à la classe à ouvrir : celle-ci s’ouvrira au numéro de ligne indiqué, par exemple: CtrlN > CHM:12 ouvrira ConcurrentHashMap en ligne 12.
  • Désactiver la navigation bar (View > Navigation Bar). Cela permet, via un Ctrl-Home, d’afficher à tout instant la barre de navigation en restant dans la fenêtre d’édition.
  • Ctrl-Shift-E permet de restreindre l’application de Ctrl-E aux fichier récemment édités.
  • Ctrl-Shift-F7 permet, dans le cas général, de mettre en surbrillance les occurrences d’un champ, d’une variable ou d’une méthode. En appliquant Ctrl-Shift-F7 sur un return ou un throw, respectivement tous les points de sortie de la méthode ou de levée d’exception seront surlignés.
  • Shift-F4 permet d’externaliser une fenêtre, c’est-à-dire de la rendre flottante et indépendante du reste de l’IDE
  • Symétriquement à Ctrl-W qui étend la sélection, Ctrl-Shift-W la réduit
  • Ctrl-Alt-Shift-J passe l’éditeur en mode multi-caret: ce mode permet d’effectuer des opérations sur plusieurs lignes en même temps, mais pas forcément sur la même colonne. Le mode colonne (Alt-Shift-Insert) apparait ainsi comme une application restreinte du mode multi-caret.
  • Dans un fichier HTML, en tapant par exemple table>tr>td, IDEA complétera le code en <table><tr><td></td></tr></table> (toutefois il semblerait que cette fonctionnalité soit liée au plugin Zen-coding).
  • Shift, Shift: c’est le “raccourci ultime” vers la recherche sur tout ce qui existe dans IDEA

En conclusion, IntelliJ IDEA confirme son statut de Rolls des outils de développement Java, dont la maitrise complète s’acquière par des années de pratique et d’exploration.

PostHeaderIcon Conférence Devoxx: Introduction aux Google Glass

640px-Image_GoogleGlass

J’ai eu la chance d’assister à l’édition 2014 de Devoxx FR.
La première conférence que j’ai suivie était “Introduction aux Google Glass”, par Alain Régnier (@AltoLabs, +AlainRegnier), dont voici un résumé:

Alain fait partie d’un programme, les Google Glass Explorers, c’est-à-dire les heureux élus qui ont pu se procurer des paires de lunettes Google Glass. Théoriquement, seuls les résidents nord-américains peuvent souscrire au programme ; néanmoins, l’estimation du nombre de Google Glass circulant en France oscille entre 30 et 50 paires.

A mi-chemin entre des lunettes Star Trek et des scouters de Dragon Ball, les Google Glass ressemblent à des lunettes classiques dont l’une des branche est plus épaisse et dont un verre est surmonté d’un prisme et d’une mini-webcam. Le petit bijou de technologie embarque, sous le capot, de nombreux capteurs et connecteurs: visuel, sonore, bluetooth, wifi, et même infrarouge.

Les Google Glass affichent par défaut des informations de quatre types: texte, image, vidéo et une version limitée d’HTML. Elles sont contrôlables de plusieurs façons: à la voix (en lançant le mot magique “OK Glass!”), via un trackpad, une application “web” MyGlassWeb ou enfin une appli Android MyGlassMobile.
En tant qu’outil de développement, un Android Screen Monitor (un simple client ADB) permet d’afficher sur l’écran du PC ce qui est visible par la personne portant les Google Glass: en d’autres termes, le flux de la webcam sur lequel est superposé l’affichage du prisme.
Concernant le développement proprement dit, trois méthodes sont disponibles:

  • Mirror API: les Glass communiquent avec un serveur hébergé par Google, qui redirige vers un serveur concret
  • GDK: il s’agit d’un kit de développement similaire à celui d’Android
  • WearScript: c’est une librairie, non-officielle, permettant de programmer les Glass en JavaScript

Alain a réalisé une démonstration d’utilisation des Glass. Avouons-le: c’est bluffant… En tant que développeur, les perspectives ouvertes par un tel objet connecté sont très enthousiasmantes! Le plus dur va encore être d’attendre que les Glass soient officiellement disponibles dans nos contrées européennes…