Skip to content

Blogs de Développeurs: Aggrégateur de Blogs d'Informatique sur .NET, Java, PHP, Ruby, Agile, Gestion de Projet

Forum Logiciel

Forum Logiciel : diffusion de connaissance et d’informations sur toutes les activitĂ©s liĂ©es au dĂ©veloppement d’applications informatiques en entreprise.

Agrégateur de flux

Afterwork Big Data à GenÚve le jeudi 29 septembre « La Blockchain : la prochaine technologie disruptive ? »

ptit_dej_Blockchain_site

Plongez au cƓur des enjeux technologiques, Ă©conomiques et sociĂ©taux du 21Ăšme siĂšcle !

En participant Ă  cet Afterwork, vous y verrez plus clair sur la technologie considĂ©rĂ©e comme «The Next Disruptive Technology», comme l’a Ă©tĂ© le web dans les annĂ©es 90.

Ce qui est appelé «technologie Blockchain» est une base de données distribuée, comme un «grand livre» qui récapitule un ensemble de transactions protégées contre la falsification. Les transactions reposent sur cette «chaine de blocs», cet historique, infalsifiable, auto-régulé et public.

C’est principalement grĂące Ă  cette technologie que le Bitcoin a eu un rĂŽle Ă  jouer au moment de la crise des Subprimes en 2008. L’objectif Ă©tait de prendre le relais de la confiance accordĂ©e aux autoritĂ©s centrales pour faire de la banque sans les banques.

UtilisĂ©e et testĂ©e depuis plus de sept ans, la Blockchain n’est plus rĂ©servĂ©e aux transferts financiers mais Ă  un nombre de secteurs bien plus important, aussi bien privĂ©s que publics.

Dans le cadre de cet Afterwork, nous aborderons 3 enjeux :

  • Comprendre la technologie Blockchain, son fonctionnement, ses contraintes et limites
  • OĂč en est-on ? Quelle est la maturitĂ© des technologies ?
  • Avez-vous besoin de la technologie Blockchain dans votre secteur d’activitĂ© ? Quels sont les «use cases» ?

Cet Afterwork s’adresse à :

  • Tous ceux qui veulent saisir au plus tĂŽt les enjeux d’une technologie qui pourrait avoir autant d’impact que le web
  • Aux directions Marketing / Digital / Innovation pour anticiper les enjeux de la Blockchain
  • Aux directions Digital & SystĂšmes d’Information pour soulever le capot et voir ce qu’il y a derriĂšre le «buzz word»
  • Aux directions des OpĂ©rations qui sont intĂ©ressĂ©es par une rĂ©duction de leurs coĂ»ts d’opĂ©ration et de leurs infrastructures de transaction
  • A tous les curieux qui s’intĂ©ressent aux grandes innovations technologiques

Articles suggested :

  1. Afterwork Ă  GenĂšve le mercredi 30 septembre : DĂ©mystifions l’API-culture !
  2. Afterwork Big Data Ă  GenĂšve le jeudi 9 juin « Plongez au cƓur de l’écosystĂšme Hadoop »

Catégories: Blog Société

Code fonctionnel en PHP

Taverne d'Arma - Programmation - il y a 7 heures 28 min

Ah le php... Une technologie que je n'apprécie guÚre pour des tas de bonnes et mauvaises raisons. Mais il faut bien lui reconnaßtre une qualité : il est trÚs facile de lui trouver un hébergement.

Mais lĂ  n'est pas le sujet du jour ! Un nouveau projet s'ouvre Ă  moi et, bien qu'il soit en php, je n'ai pas envie de mettre de cotĂ© mon centre d'interĂȘt du moment : la programmation fonctionnelle. Me voilĂ  donc Ă  chercher comment la mettre en oeuvre en php.

PHP et Closure.

La base de la programmation fonctionnelle, c'est de manipuler des fonctions. Et l'un des outils trĂšs utile autour des fonctions, ce sont les Closures : des fonctions qui "embarque" avec elle des variables en plus de leur paramĂštre entrant.

En php, la closure est un peu particuliÚre car il faut expliciter les variables qui sont utilisable à l'intérieur de la fonction. Elle se déclare ainsi :

function ($param) use ($varEmbarque1, $varEmbarque2) {
    // Mon corps de méthode
    // $varEmbarque1 et $varEmbarque2 sont accessible
}

Un exemple d'utilisation ?

public function raise($event) {
    Arrays::each($this->listeners, function($fn) use($event) {
        call_user_func($fn, $event);
    });
}

Je reviendrai plutard sur le Arrays::each. Ce qui est important ici c'est que each appelle la méthode pour chaque élement du table. La valeur de l'élement est alors donné en paramÚtre. Ici ma fonction a besoin de deux élements pour fonctionner : une callback contenue dans le tableau, et un évÚnement à transmettre. L'un est passé en paramÚtre, l'autre est passé via la closure.

Et si comme moi vous n'aimez pas spécialement les fonctions anonymes (question de lisibilité), vous pouvez appliquer le pattern builder :

public function raise($event) {
    Arrays:each($this->listeners, $this->emit(event));
}

// (DomainEvent) -> (Fn) -> ()
private function emit($event) {
    return function($fn) use($event) {
        call_user_func($fn, $event);
    };
}
Manipulations de collections et plus si affinité.

map, filter, ... Ces petites fonctions de manipulations de collections sont le premier outil issue du fonctionnel que j'ai utilisé. Je les trouve tellement confortable que je n'ai pas envie de m'en passer.

Malheureusement les fonctions fournies par php sont limitées (map, filter et reduce uniquement). En fouillant un peu sur internet, je suis tombé sur underscore.php, une librairie trÚs sympathique qui fournit le panel complet des fonctions de ce genre (all, any, find, ...).

Petit bonus, elle nous offre aussi des fonctions de manipulations de fonctions tels que compose, memoize, once et throttle qui peuvent s'avérer trÚs pratique.

Et enfin, les monades

Dernier outils du fonctionnel : les monades. Je ne les utilise pas encore tout à fait naturellement mais je reconnaßs ce qu'elles peuvent apporter. Cette fois-ci j'ai envie de les utiliser davantage et pour cela, j'ai trouvé la librairie php-functional.

Les monades, ce sont des outils trÚs utiles tels que Either qui présente deux "chemins" (réussite ou échec), avec deux types de retours différents, ou Maybe qui est une autre façon de gérer l'abscence de valeur.

Un exemple d'utilisation :

// (String, String) -> Either[FunctionalError, User]
protected function checkAuthentification($login, $password) {
    return $this->userRepository
        ->findByLogin($login)
        ->bind($this->checkPassword(Password::fromValue($password)));
}

$this->userRepository->findByLogin() est une fonction qui renvoi un Either. Bind permet d'appliquer à la valeur retourné une autre fonction qui renverra elle aussi un Either uniquement dans le cas Right (chemin de succÚs). La fonction donné à bind sera appellé avec la valeur en paramÚtre.

A l'intérieur de findByLogin, on va retrouvé deux retour possible :

\Monad\Either\Right::of($user);

ou

\Monad\Either\Left::of(new FunctionalError("Utilisateur inconnu"));

Dans un code classique, j'aurai utilisé un mécanisme d'exception qui aurait pas forcément été aussi lisible.

En sortie de checkAuthentification j'ai toujours une Either. L'appellant pourra donc faire quelque chose comme cela :

// (String, String) -> Either[FunctionalError, User]
public function exec($login, $password) {
    $user = $this->checkAuthentification($login, $password);
    $user->map($this->storeInSession())
         ->map($this->raiseUserConnected());
    return $user;
}

En cas de succĂšs de l'authentification, j'effectue deux fonctions :

  • Stockage en session
  • Lever d'un Ă©vĂšnement

Quand je veut extraire définitivement la valeur de la monade, je peut faire ceci :

$myEither->extract()

Je m'arrĂȘterais ici dans l'explication sur les monades : ils faudraient un article entier (voir plus) pour vraiment dĂ©montrer leurs valeurs.

Des commentaires Ă©tranges ?

Vous avez pu apercevoir au-dessus de mes fonctions des commentaires ayant cette forme :

// (String, String) -> Either[FunctionalError, User]

Ces commentaires sont uniquement présent à des fins de documentations. C'est une maniÚre de donner des indications sur les types utilisés sans passé par une phpDoc bien plus verbeuse : je trouve toujours les javadocs / phpdocs aussi useless...

Ces quelques indications me sont bien plus précieuses et sont suffisament légÚre pour que je garde la discipline de les rajouter à chaque fois.

Catégories: Blog Individuel

Crétin de cerveau et agilité

Science EtonnanteDerniĂšrement ma fille m’a suggĂ©rĂ© de regarder une vidĂ©o sur notre « crĂ©tin de cerveau » et les biais cognitifs qu’il gĂ©nĂšre.Il y a l’effet de Halo, l’effet d’ancrage et les coĂ»ts irrĂ©cupĂ©rables.

J’ai trouvĂ© cela gĂ©nial et je me suis demandĂ© si l’agilitĂ© permettait de rĂ©duire certains de ces biais.

Biais 1 : L’effet de Halo (VidĂ©o)

Pour ce qui est du premier biais et de l’influence du physique des personnes sur notre jugement, l’agilitĂ© n’offre pas vraiment de rĂ©ponse (il faudrait plutĂŽt aller chercher dans le coaching et la sociologie).

NĂ©anmoins en mettant l’accent sur les individus et leurs interactions, c’est Ă  dire la notion d’Ă©quipe, l’agilitĂ© nous propose de prendre du temps pour aider l’Ă©quipe Ă  se constituer et devenir performante.

Chaque fois que j’accompagne une nouvelle Ă©quipe, je passe du temps Ă  m’assurer que les Ă©quipiers se connaissent, partagent les mĂȘmes objectifs et que leurs attentes individuelles soient compatibles avec les attentes de l’organisation.

Pour ce faire j’utilise des jeux bien entendu, et je passe Ă©galement du temps en entretien individuel.

Biais 2 : L’effet d’ancrage (VidĂ©o)

Pour ce qui est de ce deuxiĂšme biais, je pense que l’approche « Intelligence collective » permet Ă  une Ă©quipe agile de mieux rĂ©agir face Ă  ce travers.

Par exemple une technique comme celle du Poker Planing oĂč tout le monde vote en mĂȘme temps permet d’Ă©viter qu’un premier chiffre influence le vote des autres participants, qui sera bien entendu influencĂ© au deuxiĂšme tour, mais cela ne me semble pas trop grave.

Le fait de calculer la vĂ©locitĂ© Ă  postĂ©riori, une fois les itĂ©rations terminĂ©es, permet Ă©galement de rĂ©duire ce biais en ne demandant pas d’engagement Ă  priori sur la base d’un chiffre qui sortirait du chapeau.

Biais 3 : Les coûts irrécupérables (Vidéo)

Pour ce troisiĂšme biais, j’espĂšre que le fait d’avoir un logiciel opĂ©rationnel Ă  chaque fin d’itĂ©ration permet de prendre plus facilement la dĂ©cision d’arrĂȘter le projet. Il me semble plus simple de dĂ©cider de l’arrĂȘt d’un projet en ayant un sous ensemble opĂ©rationnel qui donne confiance sur l’impossibilitĂ© pour l’Ă©quipe de terminer le projet dans le budget initialement prĂ©vu.

HonnĂȘtement, je ne suis pas certain que l’approche itĂ©rative permette rĂ©ellement d’arrĂȘter les projets plus facilement. Je rencontre encore beaucoup d’entreprise chez qui ce biais des coĂ»ts irrĂ©cupĂ©rables semble fortement ancrĂ©.

Conclusion

Il y a encore plein de vidĂ©os qui ont l’air sympa sur la chaĂźne ScienceEtonnante, si vous en trouvez une avec un lien Ă  l’agilitĂ©, n’hĂ©sitez pas Ă  me faire signe.

Catégories: Blog Individuel

Android : resConfig KĂ©sako ?

Ou comment réduire la taille de son apk en supprimant les traductions inutiles.

Android
Sur les diffĂ©rents projets sur lesquels j’ai travaillĂ©, je suis Ă©tonnĂ© de voir que personne ne connaissait ce petit mal aimĂ© appelĂ© : resConfig(s) !

Pour faire connaissance avec lui et mieux le comprendre il faut commencer par décompiler votre apk.

Une fois les sources dĂ©compilĂ©es, si vous farfouillez un peu, vous trouverez dans le dossier res des values : « -af », « -am », « ar », « tr » (turque ?!), etc.

Des strings bien exotiques non ?

Pourtant votre Application ne comporte que des labels qui l’intĂ©resse : anglais, français, et quelques autres. Alors pourquoi l’apk contient-il ces traductions qui ne seront jamais lues ?

Le coupable ? Les bibliothĂšques tierces, notamment Google Play Services ou AppCompat qui, bien faites, contiennent toutes les langues traduites, mais dont on n’a pas forcĂ©ment besoin pour notre application.

Pour se dĂ©lester de ces ressources qui ne nous intĂ©ressent pas, il suffit de garder seulement celles dont on a besoin (pas bĂȘte).

Par exemple, pour garder seulement l’anglais et le français, on ajoutera simplement au build.gradle resConfigs(« en », »fr ») :

android {
    defaultConfig {
        ...
        resConfigs ("en", "fr")
    }
}

Au final c’est un gain de presque 1MB sur la taille de son apk.

VoilĂ , ce n’Ă©tait pas trĂšs compliquĂ© (ouf). Je vous invite Ă©galement Ă  faire la connaissance de ses petits copains plus cĂ©lĂšbres : minifyEnable et shrinkResources.

Catégories: Blog Société

Lorsque le smartphone remplacera nos Ă©quipements Ă©lectroniques. Seconde Partie.

Blog d’Ippon Technologies - ven, 08/26/2016 - 11:04

Thomas Guillemin, Designer Graphique chez Ippon nous prĂ©sente son projet “Landscape”.

Il animera un Ippevent le 30 août dans nos locaux :

Landscape

Lorsque le smartphone remplacera nos Ă©quipements Ă©lectroniques.

DeuxiĂšme Partie – ⅔

La transposition des services web et logiciels PC

Comme nous l’avons vu prĂ©cĂ©demment, le smartphone a su remplacer de nombreux Ă©quipements Ă©lectroniques. GPS, appareil photo, baladeur MP3, moyen de paiement
 de nombreux appareils disparaĂźtront totalement d’ici quelques annĂ©es.

L’une des particularitĂ©s, qui fait aussi la grande force du smartphone est la transposition d’un service web, d’un logiciel desktop sur cet appareil. Le meilleur exemple de cette mutation reste la messagerie e-mail. Il est aujourd’hui possible de rĂ©aliser les mĂȘmes actions que l’on soit connectĂ© Ă  l’app Gmail sur mobile ou au service sur le PC.

Cela pose néanmoins deux problÚmes :

  • Moins de fonctionnalitĂ©s sont prĂ©sentes sur les apps.  
  • Ces services et logiciels “desktop” (plus prĂ©cisĂ©ment la partie UX/UI) doivent ĂȘtre retravaillĂ©s; car mĂȘme si l’objectif est identique que sur un PC son cheminement n’en n’est pas moins diffĂ©rent.

Les concepteurs ont su adapter la navigation, l’action et le rĂ©sultat sur un appareil qui tient dans le creux de notre main.

Cependant l’erreur que l’on peut constater est le manque d’outils fonctionnels sur smartphone. Ceux lĂ  mĂȘme qui nous permettent de vivre une expĂ©rience qui Ă©veille nos sens et la rend plus agrĂ©able :

  • Pourquoi ne branche t-on pas notre tĂ©lĂ©phone sur un Ă©cran plus grand en arrivant chez nous afin de regarder des vidĂ©os, la TV ou l’actualitĂ© ?
  • Pourquoi ne connectons nous pas un clavier bluetooth au smartphone afin d’écrire nos mails avec la mĂȘme facilitĂ© que sur un PC ?
  • Pourquoi ne pas connecter Ă  la fois un projecteur et une manette de jeux au smartphone afin de ne pas jouer au jeux vidĂ©os mais ĂȘtre dans la partie ?

Depuis maintenant cinq mois un groupe de personnes dont moi, nous sommes imposĂ©s d’utiliser le smartphone afin de rĂ©aliser tĂąches et loisirs quotidiens. GrĂące Ă  l’immensitĂ© des apps disponibles sur les Store mais aussi des appareils bluetooth de plus en plus nombreux, nous avons pu constater que cela ne tenait pas de l’impossible et pouvait parfois s’avĂ©rer plus facile d’utilisation que nos PC (parfois bien trop long a dĂ©marrĂ© pour une simple recherche d’itinĂ©raire). Ce concept a Ă©tĂ© prouvĂ© par l’absence totales d’incompatibilitĂ©s entre les Ă©quipements bluetooth, les apps et les OS.

Outre des enjeux Ă©conomiques, Ă©cologiques, fonctionnels, ergonomiques et ludiques, le smartphone s’est avĂ©rĂ© ĂȘtre l’équipement qui serait un jour essentiel voir unique.

Mon expĂ©rience intensive de deux semaines m’a poussĂ© Ă  mettre au placard ma box, ma tablette, mon PC, mon PC portable (que j’utilise dorĂ©navant pour Photoshop ou d’autres logiciels qui ne sont pas encore disponibles sur smartphone ).

C’est ainsi que le concept est nĂ© : Landscape

 

La matérialisation du concept 

Landscape s’est avant tout voir plus large, voir plus grand. InclinĂ© son smartphone Ă  l’horizontal afin de repenser la façon dont nous utilisons la plupart de nos Ă©quipements Ă©lectroniques.

 

image5

image3

 

Ce concept se matérialise par un dock qui offre au smartphone :

  • De l’énergie
  • Une connectivitĂ© filaire
  • Une enceinte bluetooth de 8W
  • Du stockage
  • Une mise en avant fonctionnelle du smartphone

Une fois le smartphone connectĂ© au Dock, les deux appareils ne forment plus qu’un. Ce sont les outils ( et les apps ) qui apportent ensuite toute la puissance Ă  l’appareil. Ces outils peuvent se dĂ©cliner sous diffĂ©rentes formes :

  • Outils pointeurs : tĂ©lĂ©commande, manette, souris, clavier, pad

  • Outils moniteurs : Ă©crans (filaire ou sans fils), vidĂ©oprojecteur

  • Outils de crĂ©ation : tablette graphique, stylo, appareils MIDI…
  • Outils de bureautique : imprimante, scanner

  • Outils professionnels : mĂštres, scanner tickets/ codes barres,

Contrairement aux Cast/Chromecast qui permet dĂ©jĂ  l’affichage de l’écran du smartphone sur un support plus grand, le dock permet plus de mobilitĂ© et aucun problĂšme de comptabilitĂ©.

LĂ  oĂč le Chromecast est utilisĂ© Ă  notre domicile, le dock permet de s’utiliser indĂ©pendamment d’un moniteur. Puis lors de nos dĂ©placement sur n’importe quel moniteur muni d’une entrĂ©e HDMI (soit la quasi totalitĂ© des Ă©crans actuels).

L’application : Blueprint

L’application est vĂ©ritablement le “cerveau” du concept. Comme nous l’avons vu au dĂ©but de cet article, les apps proposent des objectifs avec une navigation simple mais nĂ©anmoins complĂšte.

blueprint-médias

L’application Landscape, est ancrĂ©e dans ce but. Pour ce faire, l’idĂ©e est qu’à chaque fois que l’utilisateur s’apprĂȘte Ă  se servir de Landscape une question Ă©mane : Comment je souhaite utiliser mon smartphone ?

Cette question se concrĂ©tise par une suite d’actions qui permettent Ă  l’utilisateur de se concentrer sur son objectif et de balayer le superficiel.

Ce visuel prĂ©sente la page “mĂ©dias” de Blueprint, cette mĂȘme application qui pourrait aisĂ©ment remplacer votre box.

blueprint1

Plusieurs configurations sont alors possibles comme l’ordinateur, la console de jeux…mais l’utilisateur peut Ă©galement en personnaliser en fonction des apps qu’ils souhaitent mettre en avant et des outils qu’ils connectent.

 

 

Thomas Guillemin

Fondateur de Landscape

&

Designer Graphique chez Ippon Technologies

Catégories: Blog Société

[Article extĂ©rieur] DĂ©ployer Let’s Encrypt sur Heroku et nom de domaine custom chez [OVH]

Mathieu Robin - ven, 08/26/2016 - 09:49

Salut à tous ! ça faisait un bail !

J’ai publiĂ© sur Medium (j’ai voulu essayer), un article nommĂ© « DĂ©ployer Let’s Encrypt sur Heroku et nom de domaine custom chez [OVH]« .

Je vous laisse tout le plaisir de le lire en cliquant sur le lien ci-dessus. Bonne lecture !

Flattr this!

Catégories: Blog Individuel

10 ans Ă  OCTO

Disclaimer : AprĂšs avoir Ă©crit cet article, je me suis demandĂ© s’il avait sa place sur le blog OCTO. J’ai demandĂ© l’avis de notre service com et des Ressources Humaines qui ont accueilli l’initiative avec enthousiasme. C’est quelque chose qui n’a jamais Ă©tĂ© fait, mais c’est surtout suffisamment rare Ă  notre Ă©poque – et pour notre gĂ©nĂ©ration – pour souligner les raisons d’une telle fidĂ©litĂ©.

J’ai rejoint OCTO le 26 AoĂ»t 2006. À cette Ă©poque j’Ă©tais jeune, insouciant et dĂ©veloppeur Java. Je sortais d’une expĂ©rience d’un an chez un marchand de viande, pardon une SSII (ou ESN maintenant) oĂč je commençais Ă  dĂ©pĂ©rir. DĂ©sireux d’apprendre, je dĂ©couvrais les livres blancs OCTO et surtout l’ouvrage « Une politique pour le systĂšme d’information« . AprĂšs quelques entretiens, me voilĂ  lancĂ© dans l’aventure ! 10 ans et quelques 30 missions plus tard, rĂ©cit d’une aventure passionnante…

OĂč suis-je ?

À mon arrivĂ©e chez OCTO, ma premiĂšre impression Ă©tait « Mais oĂč suis-je ? Comment les gens peuvent-ils connaĂźtre autant de choses ? » Et la plus angoissante : « Comment trouver ma place et leur apporter de la valeur ? » Nous Ă©tions Ă  l’Ă©poque environ 70 et j’Ă©tais subjuguĂ© par tant de connaissance et de diversitĂ©. Je le suis encore aujourd’hui, avec un peu plus de 270 consultants, le panel de compĂ©tences est une vraie richesse pour OCTO et les Octos.

Lost

Partageons ce qui nous départage

Heureusement pour moi, il y a chez OCTO un sens de l’entraide et du partage sans commune mesure. Outre les nombreuses mailing lists, j’ai donc pu assister aux BOF, aux TOC, aux BAF (qui sont ensuite devenus des PG), aux BBL, … Vous ne comprenez rien ? Alors vous devez ressentir ce que je disais au paragraphe prĂ©cĂ©dent :) DerriĂšre ces acronymes barbares se cachent simplement diffĂ©rents types de meetings pour Ă©changer sur des sujets (trĂšs) variĂ©s.

Partageons ce qui nous départage

Votre mission… si toutefois vous l’acceptez

La diversitĂ© se manifeste Ă©galement au niveau des missions. J’ai commencĂ© par la mise en place de Maven (v1 Ă  l’Ă©poque) et d’intĂ©gration continue dans une banque, enchaĂźnĂ© par un audit d’application dans une autre banque, le dĂ©veloppement d’une solution de SSO dans une troisiĂšme, des missions de support Java dans des cellules transverses. J’ai suivi la naissance d’Android et enchaĂźnĂ© les missions de dĂ©veloppement, lead technique sur des projets mobiles d’envergure (Le Monde notamment). Sans oublier les missions de conseil, les cadrages d’architecture, l’animation de formations, etc… C’est Ă  mon avis ce qui rend notre mĂ©tier si intĂ©ressant et qui fait le succĂšs d’OCTO.

mission impossibleBien sĂ»r, tout n’est pas toujours rose et certaines missions peuvent perdre en intĂ©rĂȘt, ou devenir compliquĂ©es Ă  cause d’enjeux souvent politiques plutĂŽt que techniques. Cela m’est arrivĂ© 2 fois et Ă  chaque fois, OCTO a fait en sorte de me sortir de mission le plus rapidement (et proprement) possible. C’est la raison pour laquelle j’avais quittĂ© mon poste prĂ©cĂ©dent : il n’est pas concevable pour moi de rester sans apprendre. Et c’est Ă©galement une des valeurs d’OCTO: les consultants passent avant les clients (autant que possible).

Live & Learn

Un autre excellent moyen d’apprendre est de participer Ă  des confĂ©rences. Rares sont les boĂźtes qui permettent (et mĂȘme encouragent) leurs consultants Ă  participer Ă  ce genre d’Ă©vĂ©nements sur le temps professionnel.
Je ne compte plus le nombre de confĂ©rences auxquelles j’ai pu assister, soit en tant que spectateur soit en tant que speaker, tout au long de ces 10 ans: Devoxx, Droidcon Londres & Paris plusieurs annĂ©es de suite, Mdevcon Ă  Amsterdam et mĂȘme Google I/O ! Sans oublier USI Ă  laquelle j’assiste presque systĂ©matiquement depuis le dĂ©but (quelle idĂ©e de se marier en mĂȘme temps que l’USI ?!). Je n’oublierai jamais l’intervention de Neil Amstrong !

Il y a bien d’autres choses que je n’oublierai jamais : les voyages internes (Laponie, Senegal, Maroc), les weekends ski, les innombrables parties de babyfoot (je dois avoir cumulĂ© quelques jours/homme de jeu :)), les plĂ©niĂšres, les BBQ chez François (notre PDG), les soirĂ©es post co-LOB… Bref tous ces moments oĂč l’on a pu cĂ©lĂ©brer et qui font qu’OCTO n’est pas seulement un lieu oĂč l’on travaille, mais Ă©galement un lieu de vie.


live as if you were to die tomorrow learn as if you were to live forever

Croissance

Au cours de ces 10 ans, OCTO a grossi (effectifs x 5), des gens sont partis, des gens sont arrivĂ©s, certains sont mĂȘme revenus (voire repartis…) et OCTO s’est (rĂ©)organisĂ©, structurĂ© : les LOBs mĂ©tiers ont succĂ©dĂ© aux LOBs techniques, puis ont elles aussi subi des rĂ©organisation (ex : LOB Banque/Assurance => LOB Banque + LOB Assurance => LOB banque de dĂ©tail + LOB banque d’investissement + LOB Assurance => retour Ă  la LOB Banque/Assurance :) ), et finalement les tribus ont Ă©tĂ© crĂ©Ă©es. Au cours de ces diffĂ©rentes modifications, j’ai eu l’occasion de cĂŽtoyer un certains nombres de managers (8 pour ĂȘtre exact), chacun avec son style, mais chacun avec la mĂȘme volontĂ© de me faire progresser. Merci messieurs.

En 10 ans, OCTO s’est aussi rĂ©pandu : Maroc, Suisse, Belgique (RIP), BrĂ©sil, Australie et je remercie mes amis HĂ©lvĂštes de m’avoir accueilli l’an dernier.
Progression des effectifs

Merci

Puisque nous en sommes aux remerciements, et pour conclure ce billet, je remercie tous les Octos qui font qu’OCTO est une boĂźte hors du commun, et un merci tout particulier pour ceux avec qui j’ai eu l’occasion de travailler et ceux qui sont devenus des amis. J’en profite Ă©galement pour souhaiter un joyeux octoversaire Ă  Nelly et Arnaud qui sont arrivĂ©s Ă  la mĂȘme Ă©poque que moi.

Catégories: Blog Société

Advanced tips: creating a linked Confluence space

Le blog de Valiantys - mar, 08/23/2016 - 08:45

Atlassian has two flavours of JIRA and Confluence, cloud and server, and whilst these are mostly comparable, the Cloud version sometimes gets extra functionality which for whatever reason is not made available in the server version. One of these features is the ability to create a linked Confluence space during project creation in JIRA, and in ...

The post Advanced tips: creating a linked Confluence space appeared first on Valiantys Blog - Atlassian Expert.

Catégories: Blog Société

Choisissez ce que vous gardez

ekito people - lun, 08/22/2016 - 17:12

Dans mon quotidien avec les startups, trĂšs souvent je dois les aider Ă  simplifier.

Clarifier la roadmap, rendre le discours commercial plus efficace, adapter les prioritĂ©s, le moyen est souvent le mĂȘme : simplifier.
Moins de fonctionnalités, moins de messages, moins de rendez-vous, etc.

Et Ă  chaque fois, c’est la mĂȘme danse : on explore, on rĂ©-Ă©value, on organise, on essaye de rĂ©duire.
Et Ă  un moment, inĂ©vitablement, c’est parti pour la Comedia dell’arte :

non, mais c’est pas qu’on veut pas, mais tu te rends pas compte, on ne peut supprimer aucune de ces 10 fonctionnalitĂ©s. On ne peut pas ! Elles sont toutes indispensables.

Vous les entendez les sanglots dans la voix ? On a l’impression que chaque post-it est un lingot d’or massif.

Voici maintenant ce que je leur demande :

Choisissez ce que vous gardez.
Et on oublie le reste.

Au lieu de supprimer ce qu’on ne peut pas garder, on choisit ce qu’on garde.

C’est subtil mais ça transforme la discussion de nĂ©gative (“qu’est-ce qu’on abandonne ?”) en positive (“qu’est-ce qu’on garde pour le sublimer ?”).
Ça prends moins de temps que de passer en revue chaque idĂ©e et de faire l’effort de la supprimer.

Des exemples ?

Si vous n’avez chroniquement pas assez de temps, au lieu d’essayer de supprimer toutes les activitĂ©s secondaires de votre calendrier, choisissez celles que vous voulez garder.

Cette astuce est tellement efficace, que mĂȘme en la connaissant
 elle fonctionne en me l’auto-appliquant

Catégories: Blog Société

React et les tests unitaires

Lorsqu’on choisit une technologie orientĂ©e composant pour son dĂ©veloppement d’applications front end, on se donne la possibilitĂ© de construire son application Ă  l’aide de briques faiblement couplĂ©es les unes aux autres. Cela constitue un avantage pour la rĂ©utilisation du code ainsi que pour les tests. C’est cet aspect je vais aborder dans cet article. Il […]
Catégories: Blog Société

Revue de Presse Xebia

rdp220
La revue de presse hebdomadaire des technologies Big Data, DevOps et Web, architectures Java et mobilité dans des environnements agiles, proposée par Xebia.

Craftsmanship Scalatest 3.0 http://www.gravatar.com/avatar/dfa00d231c5c42e8d4d8f990a209bf0dhttp://blog.xebia.fr/author/fgutierrezhttp://twitter.com/FabGutierrhttp://github.com/fagossaPar Fabian Gutierrez

Depuis quelque jours, la version 3.0.0 de Scalatest est finalement disponible. Dans cette version, un gros refacto a Ă©tĂ© entamĂ© ; malheureusement, il est possible d’avoir de problĂšmes de compilation. L’amelioration la plus importante vient du support de scalajs. En effet, ScalaJS nĂ©cessite des tests beaucoup plus souvent asynchrones de par la nature de JavaScript.

Si vous souhaitez en savoir plus sur ce sujet, Bill Venners, l’auteur principal de la librairie, revient sur les transformations importantes dans une prĂ©sentation lors des Scaladays 2016 Ă  New-York.

De plus, nous avons accĂšs Ă  un certain nombre de nouvelles asserts et l’intĂ©gration de Validation dans plusieurs utilitaires pour les monades communĂ©ment utilisĂ©es (TrySugar, OptionSugar, etc).

Front Aurelia 1.0 est disponible ! http://www.gravatar.com/avatar/5e5c1678327320ceea9f4f4dff0d66edhttp://blog.xebia.fr/author/pgdejardinhttp://twitter.com/pgdejardinhttp://github.com/pgdejardinPar Paul-Guillaume DĂ©jardin

C’est Ă  la fin juillet que l’on a pu voir sortir la version 1.0 de la plateforme Aurelia.

Cette release intĂšgre une liste de librairies en version stable et quelques une en beta et alpha. La liste est disponible sur le blog de durandal.

La documentation a, elle aussi, subit une mise Ă  jour pour se mettre Ă  niveau du contenu de la plateforme.

Cette sortie apporte peu de nouveautĂ©s, mais permet surtout de stabiliser l’outil et d’avoir une base solide pour les futurs ajouts qui sont dĂ©jĂ  dans la roadmap, tels que l’amĂ©lioration du client `aurelia-cli`, l’intĂ©gration hot-module reloading avec ce dernier, une API de validation ainsi que le server-side rendering.

Pas mal de belles choses qui promettent un bel avenir Ă  cet outil.

Idb-keyval: une base IndexedDB clé-valeur simple http://www.gravatar.com/avatar/d2d7263cc510ef945bf738083be3c4f8http://blog.xebia.fr/author/pantoinehttp://twitter.com/PhilippeAntoinePar Philippe Antoine

Jake Archibald, developer advocate chez Google, vient de publier la librairie Idb-keyval pour les développeurs qui cherchent une base IndexedDB clé-valeur simple et légÚre avec une gestion des promesses :

idb-keyval

Pour les besoins plus complexes, on pourra alors utiliser la librairie idb.

Back Viral.js: une librairie pour distribuer votre webapp en peer to peer http://www.gravatar.com/avatar/d2d7263cc510ef945bf738083be3c4f8http://blog.xebia.fr/author/pantoinehttp://twitter.com/PhilippeAntoinePar Philippe Antoine

Viral.js est une librairie qui propose un mode de distribution dĂ©centralisĂ©. Au lieu de distribuer l’application et son contenu Ă  partir d’un serveur centralisĂ©, Viral.js ouvre des connexions avec WebRTC en peer to peer entre les clients.

On pourra alors optimiser la charge sur les serveurs et les performances réseau :

viral-1viral-2

Un schéma pour mieux comprendre la logique de distribution de la librairie :

viraljs-scheme

Data Structured Streaming : la nouvelle API de streaming dans Spark 2.0 Par Jonathan Norblin

Disponible depuis le 26 juillet 2016, la version 2.0.0 de Spark apporte de nouvelles mises Ă  jour majeures au niveau de l’architecture et des APIs, notamment sur la partie Streaming.

Venant remplacer l’ancienne API Spark Streaming, la nouvelle API (Structured Streaming), permet d’abstraire encore plus les concepts liĂ©s Ă  la partie traitement des live data. GrĂące Ă  celle-ci, il est dĂ©sormais possible de travailler sur ces donnĂ©es vivantes d’une maniĂšre proche du mode batch, en manipulant de simples Dataset/DataFrame (d’ailleurs unifiĂ©s depuis cette version). Cela prĂ©sente de multiples avantages :

  • facilitĂ© de dĂ©veloppement d’applications mĂȘlant streaming et batch (continuous applications,)
  • simplification des dĂ©veloppements, en rendant obsolĂšte l’utilisation moins Ă©vidente des DStream,
  • possibilitĂ© d’utiliser nativement des mĂ©thodes dĂ©jĂ  existantes opĂ©rant sur des Dataset (SparkSQL, MLLib),
  • facilitĂ© d’enrichissement des donnĂ©es vivantes avec d’autres datasets provenant de batchs (dĂ©jĂ  possible avec l’API Spark Streaming).

À noter que l’API Structured Streaming rajoute aussi la notion de transaction au niveau des sinks, permettant ainsi d’avoir en sortie des donnĂ©es consistantes, et des mises Ă  jour effectuĂ©es atomiquement, de maniĂšre unique..

Catégories: Blog Société

A guide to employee performance management in JIRA

Le blog de Valiantys - jeu, 08/18/2016 - 13:10

Amoeboids Technologies, an Indian-based start-up, is the developer of JIRA add-on UpRaise for Employee Success. UpRaise extends JIRA to help teams take collaboration to the next level with Agile performance management, offering powerful goal-setting framework, objectives and key results, continuous feedback and periodic performance appraisals. Agile performance management explained Teams using JIRA, especially software development ...

The post A guide to employee performance management in JIRA appeared first on Valiantys Blog - Atlassian Expert.

Catégories: Blog Société

Keeping control of your to do list in JIRA

Le blog de Valiantys - mer, 08/17/2016 - 17:33

RefinedWiki are makers of add-ons to improve the user interface and functionality of Atlassian products. RefinedWiki makes software simple for all users, with simple and smart solutions to drive productivity in the workplace. In this blog, we discover how RefinedWiki RefinedTodo 2.0 helps users to manage their tasks effectively in JIRA. At the heart of ...

The post Keeping control of your to do list in JIRA appeared first on Valiantys Blog - Atlassian Expert.

Catégories: Blog Société

PerfUG : GPGPU en .Net

Vous voulez faire du GPGPU, mais le C++ vous fait peur ? Venez voir comment on peut faire en .Net !

Au menu : le mĂȘme algorithme, comparĂ© entre du C++ et du C# ‘classique’, du C++ AMP et du C# avec Cudafy.Net

Spécialisé dans les technologies Microsoft, Mick Philippon a construit une expérience tant dans le domaine natif et embarqué que dans la galaxie .Net. Il est particuliÚrement sensibilisé aux problÚmes de performance et de qualité.

Depuis maintenant plus de 3 ans il accompagne ses clients sur des problématiques DevOps. A ce titre Mick est responsable du Cercle DevOps au sein de Cellenza.

La session aura lieu le 25 aoĂ»t dans les locaux d’OCTO Technology.

Inscriptions et informations sur Meetup. Cette session sera suivie d’un pot dans les locaux d’OCTO.

imgres

Pour en apprendre davantage sur la Performance, retrouvez notre formation OCTO Academy : Performance des applications et du SI Ă  l’Ăšre du digital

Articles suggested :

  1. PerfUG : Programmation Lock-Free, les techniques des pros
  2. PerfUG : Les secrets de la JVM pour les algos à haute fréquence
  3. PerfUG : [REX] Créer une API distribuée mondialement sans utiliser (ou presque) le Cloud

Catégories: Blog Société

Editing a closed issue in JIRA

Le blog de Valiantys - mar, 08/16/2016 - 09:53

Have you ever wondered if editing a closed issue in JIRA is possible? Obviously I don’t recommend granting editing permission on a closed issue to everyone, but you can give JIRA administrators the right to do this. Here I’ll highlight two options that could be used to facilitate editing a close issue in JIRA: Use the workflow properties feature to add ...

The post Editing a closed issue in JIRA appeared first on Valiantys Blog - Atlassian Expert.

Catégories: Blog Société

Trouble Shuffle : le jeu agile des idées sens dessus dessous

Le Trouble Shuffle est un exercice permettant de gĂ©nĂ©rer des idĂ©es. Il peut ĂȘtre utilisĂ© pour les Ă©tapes “Gather Data” et “Generate Insights” d’une rĂ©trospective ou encore lors d’un brainstorming. Les participants imaginent chacun une et une seule idĂ©e. On dĂ©structure ensuite chacune des idĂ©es de l’assemblĂ©e et on tente d’en crĂ©er de nouvelles Ă  […]
Catégories: Blog Société

Codons sous les Ă©toiles

Blog d’Ippon Technologies - lun, 08/15/2016 - 09:13

En terme d’expĂ©rience inĂ©dite, nous vous proposons de venir nous rejoindre Ă  19h sur la terrasse du Rooftop d’Ippon (http://rooftop-work.paris/) pour une sĂ©ance qui vous permettra d’affiner votre pratique de dĂ©veloppement et de conception. La sĂ©ance sera divisĂ©e en 3 sessions d’une heure, avec pour chacune un exercice de code en pair programming de 45mn et une rĂ©trospective de 15mn. Le tout se fera accompagnĂ© d’un buffet, d’un panorama inoubliable depuis un 8e Ă©tage dans Paris et bien sĂ»r des Ă©toiles (si le temps le permet).

Pour cette soirĂ©e, il n’y a aucune limitation en terme de langage, lib ou de framework utilisĂ©. Merci d’apporter votre matĂ©riel avec environnement de dĂ©veloppement prĂȘt Ă  l’emploi.

Développé par Eventbrite
Catégories: Blog Société

Hackathon JHipster le 21 Septembre chez Ippon

Blog d’Ippon Technologies - ven, 08/12/2016 - 16:28

Ippon Technologies organise dans ses le locaux parisiens, le 21 Septembre 2016, un hackathon sur le projet JHipster. Il sera animé par Julien Dubois, Chief Innovation Officer chez Ippon Technologies, et surtout créateur et principal développeur de JHipster.

Ce hackathon a pour but le développement de nouvelles fonctionnalités autour de JHipster, suite au sondage que nous avions lancé début Août.

C’est l’occasion pour tous de participer Ă  un projet Open Source, de voir son mode fonctionnement, et d’amĂ©liorer un projet utilisĂ© par des dizaines de milliers de dĂ©veloppeurs dans le monde.

Si votre entreprise utilise JHipster, c’est aussi le bon moyen de pousser une fonctionnalitĂ© qui vous intĂ©resse, ou tout simplement de rendre quelque-chose Ă  un projet qui (nous l’espĂ©rons) vous a fait gagner beaucoup de temps.

Si vous cherchez du travail ou un stage chez Ippon Technologies, cela peut Ă©galement ĂȘtre le moment de faire connaissance, et de montrer vos talents!

Bien entendu chacun peut venir avec ses propres idĂ©es, mais si vous en manquez nous avons dĂ©jĂ  prĂ©parĂ© une liste d’idĂ©es.

Ce hackathon est ouvert Ă  tous, mais la grande salle de formation d’Ippon n’Ă©tant pas extensible, nous nous rĂ©servons le droit de sĂ©lectionner les participants.

Pour vous inscrire, merci de renseigner le formulaire ci-joint!

Catégories: Blog Société

Retour d’expĂ©rience sur TypeScript

AprĂšs avoir lu il y a environ 4 ans le livre Javascript: The Good Parts de Douglas Crockford dont je vous recommande vivement la lecture, je suis devenu un amateur avisĂ© du langage JavaScript. Pour un dĂ©veloppeur C#, cela me semble pas si commun. Par contre, il n’est pas aisĂ© de faire de la POO […]
Catégories: Blog Société

4 tips to create the perfect Agile board

Le blog de Valiantys - jeu, 08/11/2016 - 09:00

1. Configure swimlanes Swimlanes can be configured as queries. Here are some useful queries to give different points of view on your board. 2. Create quick filters Use predefined functions such as “membersOf”, “savedfilter” or “releasedVersions” to gain quick access to important and categorised issues. 3. Configure issue detail view The detail view is a panel that ...

The post 4 tips to create the perfect Agile board appeared first on Valiantys Blog - Atlassian Expert.

Catégories: Blog Société

Partagez la connaissance

Partagez BlogsdeDeveloppeurs.com sur les réseaux sociaux