Archive

Articles taggués ‘Git’

On aime, on partage #45

Bienvenue dans la série « On aime, on partage » de Viseo Technologies ! Chaque semaine retrouvez les meilleurs articles du web issus de notre veille technologique.

Evènements

Getting Git Right à Paris

Apprenez comment Git décuple les possibilités pour les développeurs, rationalise le flux de développement et favorise le travail d’équipe. Ca se passe le 4 décembre après-midi et c’est Atlassian qui régale.

Agilité

Un site dédié à LeSS

Bas Vodde a annoncé la mise en ligne d’un site dédié à Large Scale Scrum (LeSS).

DotNET

Microsoft verse .NET en Open Source

Lire la suite…

On aime, on partage #44

Bienvenue dans la série « On aime, on partage » de Viseo Technologies ! Chaque semaine retrouvez les meilleurs articles du web issus de notre veille technologique.

E-learning

MOOC Effectuation

La 3ème édition du MOOC Effectuation par l’EMLyon Business School démarre la semaine prochaine, avis aux intrapreneurs.

Guide for Technical Development par Google Education

Ce guide vise les étudiants, mais je pense que tout professionnel de l’IT devrait s’y attarder (encore plus celui qui voudrait rejoindre l’un des GAFA).

Agilité

Partage de représentations et ritualisation au sein d’une équipe de développement logiciel agile

Matti Schneider (connu en principe de ceux qui ont participé à l’une des deux dernières éditions d’Agile France) a récemment publié sa thèse.

iObeya : Digital Visual Management

iObeya® est un logiciel unique édité depuis 2 ans par KAP IT qui révolutionne “la réunion de post-it” à travers le monde. Il permet aux équipes distantes de pratiquer leur management visuel et est le plus souvent adopté dans le contexte du Lean Management.

Big Data

L’Equipe explore la Data Révolution

Lire la suite…

On aime, on partage #41

Bienvenue dans la série « On aime, on partage » de VISEO ! Chaque semaine retrouvez les meilleurs articles du web issus de notre veille technologique.

Node.JS

12 Fabulous Node.js Frameworks for Developers

Une sélection de frameworks Node.js pour vous faciliter la vie. http://thecreativeproject.co/2014/06/08/12-fabulous-node-js-frameworks-for-developers/

User Experience

Agile UX vs Lean UX, which should you choose?

Quelques explications sur ces deux buzzwords afin de mieux comprendre ce qui se cache derrière et de choisir la méthode qui convient le mieux a chaque projet.

http://www.webdesignerdepot.com/2014/05/agile-ux-vs-lean-ux-which-should-you-choose/

Outillage

Git tips from the trenches

Parce que GIT c’est que du bonheur, voici quelques tips pour mieux l’utiliser et améliorer son workflow quotidien.

https://ochronus.com/git-tips-from-the-trenches/

Java

Better Java

Une compilation riche de libs, de bonnes pratiques et d’outils pour le développement en Java.

https://github.com/cxxr/better-java

Le repo de la semaine

Une nouvelle entrée dans notre série hebdomadaire, “le repo de la semaine”. Chaque semaine retrouvez le lien vers un projet GitHub qui nous a aidé dans notre travail ou que nous avons aimé pour son originalité.

Promise Chains with AngularJS $q – Demos, source, & tutorial :

https://github.com/ThomasBurleson/angularjs-FlightDashboard

Nos contributeurs :

Un grand Merci aux contributeurs de cette semaine : Jean-François FOURMOND et Nicolas ROCHE

Brèves d’experts : quelle solution choisir pour héberger des dépôts Git au sein d’une entreprise ?

En ce moment, Git, c’est tendance. La preuve, nos experts en parlent régulièrement ! Dans la dernière brève, ils nous expliquaient comment utiliser Git pour faciliter le merge dans SVN. Intéressant. Aujourd’hui, ils débattent des différentes solutions pour héberger des dépôts Git au sein d’une entreprise. Payant, gratuit,  chacun vante les qualités de sa solution favorite.

Je les ai espionnés… Lire la suite…

Brèves d’experts : et si on utilisait Git pour faciliter le merge dans SVN ?

Dans le monde de la gestion de conf’, il y a ceux qui fonctionnent en mode client / serveur (SVN) et les petits nouveaux qui fonctionnent en mode décentralisé (Git, Mercurial, …). Concrètement, qu’est-ce que ça change ? Avec Git, vous pouvez travailler chez vous le week-end, en mode déconnecté. Super, non ? Mais, ça n’est pas tout ! Il semblerait que Git facilite très largement la gestion des merge. Génial, mais si mon client utilise un serveur SVN et ne veut pas en changer, je suis condamné à continuer de m’arracher les cheveux ? Apparemment, non !

J’ai espionné quelques ODésiens qui en discutaient…

Lire la suite…

Categories: Outillage Tags: , ,

Objet Direct sur Github

Depuis quelques semaines déjà, Objet Direct est présent sur Github, dans le but de publier des plugins / frameworks OpenSource.

Au cours de développements en interne, lors de réalisations de prototypes, ou plus simplement lors de besoins sur nos projets, nous réaliserons des frameworks ou des plugins qui nous seront utiles par la suite, et que nous réutilisons.

Au sein d’Objet Direct, nous promouvons les solutions et les projets OpenSource. De part ce constat, nous avons décidé de publier ces frameworks / plugins afin de les rendre accessibles au plus grand nombre.

Si vous vous rendez sur notre repository Github (https://github.com/ObjetDirect), vous aurez à l’heure actuelle trois plugins:

Nous vous tiendrons informé des futures évolutions et ajouts.

Bien cordialement.

Categories: Divers, Mobile Tags: , , , ,

QCon London 2012 : « How GitHub Works »

How gitHub works



Parmi les présentations de QCon London 2012 celle sur l’organisation de GitHub était particulièrement intéressante. Retour sur les secrets de fabrication de la petite startup de San Francisco devenue le réseaux sociaux des développeurs open source.

GitHub a été lancé en avril 2008 et fonctionne depuis le début de façon distribué. En effet, les 4 fondateurs étaient chacun aux quatres coins du monde quand ils ont créés GitHub. Même si leur siège est à San Francisco, GitHub continue de recruter des développeurs partout dans le monde pour s’assurer d’avoir les meilleurs talents. GitHub prend bien soin de garder ses employés “happy”, et apparemment cela fonctionne plutôt bien puisque en 4 ans ils sont désormais 60 et toujours 0 démission.




Travailler de façons asynchrone
facilite aussi le travail distribué. Pour cela, toutes les communications passent par le chat ou les commentaires de pull request. L’idée est de limiter au maximum les réunions et les interruptions pour que les gens restent le plus longtemps possible dans “la zone”. La “zone”, c’est le moment où vous êtes hyper concentré sur une tâche et donc hyper productif. Dans notre métier il est parfois nécessaire d’absorber une importante charge cognitive (lecture et analyse) avant de produire quelques nouvelles lignes de code. Donc inutile d’ajouter des distractions et des interruptions alors qu’il est tellement difficile d’arriver à cet état de concentration.
Zach nous explique ensuite qu’il n’y a aucun horaire et que chacun est libre de venir travailler quand il se sent le plus productif. En effet, l’activité de développement requiert de la créativité et vous ne pouvez pas forcer les gens à être créatif pile entre 9h et 17h.



Du point vu de l’organisation, il n’y a pas de managers ou de chef de projets. Les équipes sont seules responsables de leur produit. Seule une ligne directrice est donnée par les 4 fondateurs. Après, libre à chaque membre de l’équipe de proposer et de travailler sur une nouvelle fonctionnalité si elle est reconnue comme intéressante par les autres membres de l’équipe.


Cette organisation peu habituel n’est rendu possible que par quelques facteurs important :

  • GitHub est une startup auto-financé et profitable depuis le début.
  • GitHub utilise GitHub. “eat your own dog food !”
  • GitHub est une société qui vend un produit.

Côté technique, là aussi c’est très intéressant. Du Ruby on Rails dans le cloud avec RackSpace. Ici encore, le mot d’ordre est de livrer la fonctionnalité le plus rapidement pour avoir le feedback le plus tôt possible. GitHub est redéployé entre 5 et 30 fois par jours !

Plusieurs techniques pour faire du continuous deployement sont utilisées.

  • feature branching.
  • Évidemment, comme on pouvait s’y attendre avec une entreprise reposant sur Git, les branches sont à l’honneur. Chaque nouvelle fonctionnalité fait l’objet d’une nouvelle branche. Mais attention, ne confondez pas avec les branches svn classiques que vous connaissez. L’idée ici est d’avoir une branche dont la durée de vie est très courte uniquement pour une feature qui doit rester simple. Les push (commits) sur la branche permettent d’avoir des codes reviews rapidement via l’interface GitHub.

  • super fast tests !
  • L’allié incontournable du continuous deployement, ce sont bien sûr les tests automatisés. Avec 8000 tests en 4 minutes, GitHub réduit très fortement les risques de régression à chaque redéploiement. Pour garantir dans le temps ce niveau de qualité et de réactivité un test lent est lui-même considéré comme une régression.

    Avec des déploiements aussi fréquent, il est nécessaire d’avoir du monitoring de qualité pour remonter au plus tôt les alertes. Les métriques donnent une perspective différente aux performances et permettent de cibler les points de contentions. Zach en profite pour nous montrer les métriques sur les clés ssh rejetées suite à la récente découverte d’une faille de sécurité majeure impactant tous les utilisateurs du site.

    Derrière le site Github, nouveau bastion des projets open source, se cache donc aussi une startup atypique. Elle rappelle fortement une autre société qui propose une organisation similaire : 37Signals, les créateurs du framework ruby on rails. Rien d’étonnant donc à trouver un post du CTO de Github expliquant comment ils ont suivi les judicieux conseils du livre de 37 signals, getting real, pour démarrer leur business.


    Ressources :

    GitHub
    How GitHub Works

    – Zach a écrit après la conférence sur sa façon d’écrire les slides. Je vous le recommande, car la forme était aussi bonne que le fond : Slides for developers

Categories: Divers Tags: , ,

QCon London 2012

Du 7 au 9 mars dernier, Objet Direct était présent à l’édition Londonienne de QCON, la conférence sur le développement logiciel propulsée par le site d’information InfoQ.

Avec 700 participants,  6 sessions en parallèles et 100 présentations programmées, l’événement a réunit de nombreux speakers de renommée internationale tels que: Martin Fowler, Greg Young (Domain Driven Design et CQRS), Dan North (Behavior Driven Development), Rich Hickey (Inventeur du langage Clojure).

Les sujets phares de cette année étaient le NoSql, porté par la keynote de M.Fowler, les architectures mobiles, le web et HTML5, les architectures scalables et sans oublier devops.
Mais surtout un élément commun qui ressortait de nombreuses talks était la recherche de la simplicité dans les architectures dans le but de livrer toujours plus de valeurs à nos clients.
Les keynotes de Rich Hickey et de Greg Young y étaient d’ailleurs dédiées.

L’occasion durant ces 3 jours de prendre du recul sur notre métier et de faire le point sur les dernières innovations et les bonnes pratiques d’architecture. Avec autant de contenu, impossible de revenir sur tout. Je vous propose donc un petit tour des sujets et conférences qui m’ont le plus marqué.

Lire la suite…

La Devoxx 2011 c’est fini ! (Part 1/2)

Devoxx 2011

Du moins pour mon collègue Mehdi Ben Haj Abbes et moi-même, l’aventure de la plus grosse conférence Java de nos contrées européennes s’est terminée mardi dernier, après deux longues journées remplies (à ras bord, mais qui se plaindra?) de conférences en tous genres. Précisément, lors de ces deux premiers jours à la Devoxx 2011, nous avions accès à deux formats de meeting :
– des « University« : ce sont de grosses sessions de 3h, dont le but avoué est d’entrer le plus en profondeur possible dans un sujet nouveau (du moins un sujet à la mode),
– des « Tools in Action » de 30 minutes chacun où, comme le nom l’indique, les speakers vont parler de leurs outils préférés développés autour de l’écosystème Java (du genre Sonar, Mylyn, jclouds, Jenkins, et d’autres noms farfelus dont certains m’étaient inconnus)

Chaque créneau horaire s’articulant autour de 4 salles de cinéma géantes et tout confort (j’entends par là, des salles de cinémas de province), le choix avant chaque session fut souvent cornélien… avec parfois quelques regrets, comme lorsque je me suis lancé naïvement dans une session de 3h, barbante au bout de 20 minutes. Heureusement dans ce cas là, à la Devoxx il est toujours possible de se lever et changer de salle! Car oui, à la Devoxx 2011, les show n’étaient pas tous du même niveau !

Je vais vous faire pour ma part un debriefing « à chaud » (du moins écrit à chaud…) des sessions que j’ai pu couvrir durant ces 48h intenses d’informations Javaesques. De quoi avoir un aperçu du quart des sujets sur ces deux jours.

Je publierai cet article sur deux billets blog distincts, pour des raisons de place et de format.

Une des salles de conférence

Lire la suite…

Paris JUG mai 2010 : Soirée Share, Build & Deploy

Tout d’abord, les différentes annonces qui ont eu lieu durant la soirée hier :

  • Alexandre Bertails nous présente rapidement son nouveau job au W3C ainsi que le fonctionnement de l’organisme avec un rapide retour sur ce qu’est le web et l’importance du consortium.
  • Developpez.com est un JUG … qui n’envoie pas de représentant, ils font donc profiter de leur place à Jazoon’10 à un volontaire qui a été tiré au sort.
  • Une boutade dans la semaine, deux offres d’emplois supplémentaires sur son site d’ « Offres d’emplois pour passionnés », et Nicolas Martignole se voit en « obligation » d’offrir le buffet. Merci à lui !
  • L’ISEP prête la salle de 200 personnes gratuitement, Antonio les remercie et demande des volontaires afin de pouvoir leur rendre service en retour en proposant des cours à leurs étudiants.

Entrons dans le vif du sujet ! La première partie de soirée est orientée « Share » avec un retour d’expérience sur le passage d’un CVCS (Gestionnaire de sources centralisé) à un DVCS (Gestionnaire de sources distribué) suivi d’une présentation du DVCS qui monte : Git. La seconde partie de soirée nous fourni une présentation de Maven 3 et de Deploy It.

DVCS

La présentation du sujet a été faite par Sébastien Douche qui nous fait donc ici un retour d’expérience sur un ton décalé et des slides épurées … très agréable.

Arrivé il y a 2 ans dans son entreprise actuelle, il fait le constat de la (classique) sous utilisation de SVN et après analyse du problème, migre vers un DVCS. Son crédo : les tests automatisés et l’outil de versionning sont les 2 filets de sécurité indispensables à un développement logiciel.

Le problème :

Après avoir tenté une évangélisation des bonnes pratiques SVN, il constate tout de même une dégradation régulière de la qualité, impliquant une démotivation (il parle de souffrance) des développeurs allant se poser la question ultime : a-t-on fait le boulot qui nous a été demandé ?

Le problème ne se situe pas au niveau du travail effectué… mais vient plutôt du fait qu’il n’est pas bien partagé ! Notamment avec un phénomène de « micro-merge » : pour exagérer, les développeurs font des commit de chaque ligne de code modifiée pour éviter d’avoir un trop gros merge à faire par la suite ! Ce qui implique une version constamment instable sur le serveur d’intégration et des difficultés à savoir où l’on en est dans le projet.

Une première solution pointe le bout de son nez : si on faisait des branches SVN ? Hum … Attendez, je crois qu’on tente de nous expliquer comment éviter ça 🙂

L’impact du DVCS :

En règle générale, les outils de versionning centralisés sont utilisés principalement pour faire du suivi d’historique … et non leur boulot. On souhaite donc : un environnement constamment stable afin de connaitre l’état du projet tout le temps !

Pour cela, on va isoler le travail des développeurs en repensant notre façon de travailler, via une analyse des besoins réels, 3 workflows sont identifiés :

  • La méthode de l’organisation (donc la gestion du repository central), avec une façon de faire par organisation. En général, le workflow le plus connu puisque c’est celui qui est visé par SVN et consorts. L’idée ici, c’est que la méthode de l’organisation ne soit pas impactée par les deux workflows suivants. Le but à atteindre serait, par exemple, d’avoir un seul commit par fonctionnalité.
  • Puis le workflow inter-personnel, nouveau donc, qui doit être mis en place justement pour éviter d’impacter le repository central : nouveau dépôt de développement, dépôt temporaire, échange de patchs (très utilisé dans le monde de l’open source), branche spécifique, … Il permet aux développeurs de travailler entre eux.
  • Et finalement le workflow personnel, ici aussi à bien séparer des deux autres et chacun pourra travailler à sa façon.

L’important, donc, est que ces workflows soient déconnectés les uns des autres.

Une fois la mise en place effectuée, le constat est le suivant : le développeur est concentré sur SON travail et non sur celui du voisin par peur des impacts qu’il pourrait-y avoir sur le sien. Avec cette fois un commit par fonctionnalité sur le repository central, plus de souplesse avec notamment la possibilité de faire de la revue de code et/ou une démonstration pour une et une seule fonctionnalité !

Il est à noter que ces nouveaux outils sont orientés contenu et non changement. Je pense que tout le monde s’accorde pour dire que SVN ne sais pas gérer le renommage de fichiers par exemple ! On voit donc disparaitre les dossiers ‘.svn’ et l’on gagne énormément en place et en vitesse.

En bonus, des repository sont accessibles en ligne. Un outil de binding permet une transition douce en intercalant le DVCS entre le développeur et son SVN.

Conclusion

Je crois que sa conclusion était plutôt claire :

Libérez-vous : utilisez un DVCS

Git, la gestion de configuration qui vous veut du bien

Présentée par David Gageot, très proche et complémentaire de la session précédente. On part sur le même ton puisque qu’il commence par reprendre la conclusion de Sébastien 🙂 Il insiste notamment sur le fait qu’un outil est fait pour ouvrir des possibilités … et non en fermer !

Git est donc un DVCS, le plus connu avec Mercurial. Pour faire court :

  • Pas besoin de serveur !
  • Chaque utilisateur a tout l’historique en détail
  • Fonctionne en déconnecté

Mais pour l’utiliser à pleine puissance, il faut oublier comment SVN fonctionne !!!

En général, on ne fait pas de merge avec ce type d’outils.

Démo

Il nous fait ensuite une démo rapide d’une fonctionnalité majeure : bisect.

L’idée est de retrouver quel commit a cassé le build. Avez-vous déjà tenté le coup avec SVN ?

L’idée ici est de donner à cette commande un commit qui ne cassait pas le build ou les tests, celui qui ne fonctionne plus et le test à effectuer (manuel ou automatique). Et par dichotomie, elle va retrouver la version qui a cassé le build.

On peut pousser plus loin :de ce fait, il est possible de jouer un nouveau cas de test (qui devrait passer mais ne passe finalement pas), sur des anciens commit !

Et si on jetait les serveurs d’intégration continue ?

En effet, il est tout a fait envisageable (d’autant plus que c’est ce que David a mis en place dans son entreprise) d’écrire un script qui fait un « private build » avant de faire le commit réel seulement si ce build réussi. Cela est rendu possible par les performances de Git et il est tout à fait possible de travailler en même temps que ce script fonctionne.

Conclusion

Il y a énormément de nouveauté dans Git qu’il n’est pas possible de présenter dans le cadre du Paris JUG. Il nous conseille donc le livre Pro Git.

Il répète Sébastien en confirmant qu’il est possible de passer à Git en une commande : Git va importer le contenu du SVN et agir comme passerelle bidirectionnelle.

Maven 3

2 commiters Maven, Nicolas De Loof et Arnaud Héritier nous présentent Maven 3. La présentation est dynamique mais je reste sur ma faim quand aux nouveautés du produit : elles sont quasiment inexistantes … pour l’instant.

Le contenu :

En effet, le gros sujet, de cette version était une remise à plat des bases avec une refonte du produit (Passage à Java 5) et l’écriture d’une batterie de tests à priori impressionnante. L’écriture de plugins en revanche devrait être simplifiée grâce aux nouvelles API.

Un build plan est mis en place : les plugins pourront savoir ce qu’il s’est passé auparavant dans le buid et donc travailler en conséquence. Notamment le plugin Eclipse pourra laisser Eclipse faire sont boulot (compilation incrémentale) et en tirer bénéfice.

Les pom pourront être écrits dans d’autres langages (groovy, python, …) et les profils ont été revus.

Le résultat :

Une version 100% compatible avec les pom existants via un simple changement de MAVEN_HOME. Les impacts possibles se situent au niveau du plugin site qui n’est pas ou pas bien supporté et éventuellement dans les descripteurs de projet qui sont plus contrôlés.

Le gain que l’on peut avoir aujourd’hui en migrant se situe principalement sur les performances et de meilleurs logs.

Le futur :

  • Ajout de la possibilité d’injecter de la configuration dans le pom (mix-in) afin de dépasser les limitations de l’héritage simple.
  • Exclusions globales rendues possibles.
  • Build parallèle sur multi-coeur
  • Ajout d’une console (Maven Shell)

Conclusion :

Il y a peu de risques de régressions, et le passage de Maven 2 à Maven 3 devrait faire gagner du temps. Pour les développeurs Maven et/ou de plugins, le coût d’entrée est maintenant beaucoup plus bas étant donné la refonte. De ce fait la communauté revit et le produit se professionnalise.

Deploy It

La soirée se finit avec la présentation d’un outil d’automatisation des déploiements Java, réalisé par la société XebiaLabs. La présentation de l’outil est faite par Guillaume Bodet et Benoit Maussaud.

Le produit ne se contente pas d’une simple copie de WAR/EAR mais gère aussi :

  • Binaire
  • Ressources (datasource, securité, …)
  • Fichiers de conf
  • Base de données
  • Réécriture apache
  • Fichiers statiques (HTML, images, …)
  • Batchs

Je dois avouer que je me suis arrêté là dans la présentation, l’outil n’étant pas open source et ayant l’air plutôt complexe pour une problématique ne me concernant pas …

http://mercurial.selenic.com/
Categories: Actualités, Divers, Java EE, Outillage Tags: , , ,