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

[SOAT Agile Day 2016] Une premiĂšre Ă©dition haute en couleurs !

En cette annĂ©e 2016, SOAT a dĂ©cidĂ© de relever le dĂ©fi ambitieux d’organiser son propre Ă©vĂ©nement Agile, et entiĂšrement gratuit qui plus est. Ainsi le mardi 15 mars, Ă  l’Etoile Business Center, s’est dĂ©roulĂ©e la premiĂšre Ă©dition du SOAT Agile Day, sur le thĂšme de la Transformation Agile des entreprises. Avec un programme diversifiĂ© et […]
Catégories: Blog Société

Elasticsearch le mardi 5 Avril

Alpes JUG - mar, 03/22/2016 - 19:49

Vous utilisez encore des requĂȘtes SQL pour faire des recherches ? Vos utilisateurs vous reprochent de ne pas pouvoir chercher sur toutes les rubriques ? Votre temps de rĂ©ponse moyen est supĂ©rieur Ă  la demi-seconde avec seulement quelques millions de documents ? Il vous faut 3 jours pour produire des statistiques sur vos donnĂ©es ? Vous rĂȘvez d’offrir une recherche « Ă  la google » sur les donnĂ©es de votre SI ?
Ne cherchez plus ! Cette conférence est faite pour vous.

David présentera au cours de la soirée pourquoi et comment il est passé de la recherche SQL à elasticsearch en détaillant les apports de ce moteur par rapport à une solution pure Lucene :

  • Pourquoi elasticsearch ?
  • L’indexation
  • La recherche
  • Les agrĂ©gations et le principe de navigation par facettes
  • La scalabilitĂ© horizontale
  • L’analyse et le mapping
  • La percolation
  • La communautĂ©
Le conférencier David PilatoDavid Pilato

Depuis 2013, David Pilato est développeur et évangéliste chez Elastic.co, aprÚs avoir passé les deux années précédentes à promouvoir le projet open-source elasticsearch. Il en anime la communauté française. @dadoonet et @ElasticFR sur Twitter, dadoonet sur GitHub.

Inscription:

http://www.meetup.com/AlpesJUG/events/229784576/

Cette soirée se déroulera sur le campus à la Maison Jean Kuntzman le Mardi 5 Avril à partir de 19h00.

Diffuser l’Ă©vĂšnement avec les Flyers a imprimer.

Deux licenses JetBrains Ă  gagner !

Catégories: Association

Google Launchpad Toulouse 2015

ekito people - mar, 03/22/2016 - 17:59

Fin d’annĂ©e derniĂšre nous vous annoncions le Google Launchpad Ă  Toulouse, une semaine de coaching pour 12 startups, sur 4 sujets (Product strategy, Marketing, UX et Tech).

Nous y étions présents en nombre, pour accompagner, challenger et secouer les startups présentes. Pour leur bien !

 

Les startups sélectionnées pour le millésime 2015 étaient :

Encore un immense merci Ă  Martin Gorner et Olivier Leplus pour leur organisation impeccable. Bravo !

Voici le film réalisé par Google au cours de cette semaine qui fut trÚs intense pour tout le monde, et plus particuliÚrement pour les startups ;-).

 

 

À l’annĂ©e prochaine ?

The post Google Launchpad Toulouse 2015 appeared first on ekito people.

Catégories: Blog Société

Petit-dĂ©jeuner : Culture Hacking – mardi 12 avril

Ou comment changer le changement ?

« Rien n’est permanent sauf le changement » – HĂ©raclite d’EphĂšse

Notre intention est de vous proposer, au cours de ce petit-déjeuner, une expérience de réflexion collective sur des sujets passionnants et de repartir avec des pistes nouvelles pour vos initiatives.

ptit_dej_Chack_blog

Alors que les programmes de transformation s’enchaĂźnent et se ressemblent (digital, lean, agile, bonheur au travail etc
), une Ă©tude publiĂ©e par McKinsey & Co semble indiquer que ces mĂ©thodes se rĂ©vĂšlent, pour la plupart, inefficaces. En effet, en 1995 une Ă©tude du Harvard Business Review affirmait que seul 30% des changements organisationnels rĂ©ussissaient. On peut donc penser que les programmes de transformations allaient amĂ©liorer ce triste score. Mais en 2006, l’étude de McKinsey & Co montrait Ă  nouveau que seul 30% des dirigeants Ă©taient satisfaits des transformations organisationnelles.

Comment croire en ces programmes ? Et comment penser en 2016 qu’il en sera autrement ?

En participant Ă  ce petit-dĂ©jeuner, nous explorerons avec vous les causes possibles de cette triste permanence, mais surtout, nous montrerons que cette rĂ©alitĂ© est loin d’ĂȘtre une fatalitĂ©. Nous croyons qu’il faut au contraire rĂ©inventer nos maniĂšres d’accompagner le changement dans les organisations, rĂ©Ă©duquer nos regards, repenser nos modĂšles et nos outils pour apporter des rĂ©ponses plus Ă©cologiques et durables qui fassent la diffĂ©rence.

Nous aborderons les questions et thĂšmes suivants :

  • Pourquoi le changement doit-il changer ?
  • Qu’est-ce que la dimension culturelle ?
  • Qu’est-ce que le culture hacking ?
  • Un manifeste pour un changement diffĂ©rent

Ce petit-dĂ©jeuner s’adresse Ă  tous, aussi bien aux curieux et aux indignĂ©s qu’aux directions Digitale, MĂ©thode, RH, Innovations et OpĂ©rations qui sont déçues des derniers programmes de transformation et qui ont l’intuition que les outils et les processus sont soumis Ă  la dictature de la culture. Il est en particulier adressĂ© Ă  ceux qui s’intĂ©ressent au changement et qui jugent qu’il est nĂ©cessaire de le changer.

 

Cliquez ici pour vous inscrire au petit-dĂ©jeuner « Culture Hacking »Â 

Catégories: Blog Société

Un peu de code, un peu de web, beaucoup de cadeaux – 2/3

Blog d’Ippon Technologies - mar, 03/22/2016 - 11:08

Cet article est le second dans la sĂ©rie des articles sur mon bot Twitter qui joue et qui gagne. Dans cet article, sont abordĂ©es les technologies retenues pour le projet et les raisons de leur choix. Pourquoi et comment j’ai choisi ces bibliothĂšques…

 

La série complÚte :

 

Architecture de l’application Architecture

L’architecture du programme

Scala

Vous connaissez peut-ĂȘtre Scala. Ce langage fonctionnel basĂ© sur la JVM qui fait un peu parler de lui.

Scala est un langage qui supporte nativement les extensions fonctionnelles qui viennent Ă  peine d’arriver dans Java 8. Le langage est rĂ©putĂ© difficile, car il met l’accent sur la possibilitĂ© d’une programmation fonctionnelle assez poussĂ©e en encourageant les patterns d’immutabilitĂ©, de pattern-matching, etc. Dans par mon expĂ©rience, il est facile de rentrer un peu dans le langage sans trop se perdre. Mais certaines bibliothĂšques utilisent des conceptions parfois perturbantes pour les dĂ©veloppeurs (redĂ©finition d’opĂ©rateurs, objets et cast implicites). Cependant, une fois qu’on a goĂ»tĂ© Ă  la simplicitĂ© d’écriture du code, il est difficile de revenir vers du Java classique, et ce, d’autant plus qu’il est possible de coder en Scala sans IDE, et rien que pour ça


Pour installer Scala, je vous suggĂšre de passer par l’Activator. C’est un programme qui va vous permettre d’interagir avec le compilateur Scala de maniĂšre harmonieuse (un peu l’équivalent de Maven, mais avec une interface au premier abord qui est plus simple). Il contient entre autres sbt, l’outil de build et de gestion des dĂ©pendances de Scala, ainsi qu’une UI pour manipuler vos projets. sbt est un outil extrĂȘmement puissant, mais aussi extrĂȘmement compliquĂ©. Sa configuration se fait avec du code Scala, ce qui laisse la porte ouverte Ă  plein de curiositĂ©s de configuration. Mais pour un usage standard (gestion des dĂ©pendances, par exemple), il est trĂšs simple d’approche.

Une fois votre projet crĂ©Ă©, il est possible de rajouter n’importe quelle dĂ©pendance compatible avec la JVM dans votre projet Scala.

Par exemple là, pour ce projet, mes dépendances sont :

libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.4" % "test"
libraryDependencies += "com.typesafe.akka" %% "akka-actor" % "2.3.12"
libraryDependencies += "org.twitter4j" % "twitter4j-core" % "4.0.4"
libraryDependencies += "org.mongodb" % "casbah-core2.11" % "2.8.2"
libraryDependencies += "com.typesafe.scala-logging" %% "scala-logging" % "3.1.0"
libraryDependencies += "org.slf4j" % "slf4j-simple" % "1.6.4"

(pour savoir quelle syntaxe utiliser pour les dĂ©pendances, j’utilise mvn repository qui me fournit directement le snippet Ă  coller dans mon build.sbt)

Dans ce projet, j’utilise Scala pour tout le code du projet. Il n’a aucune interface et je n’ai donc pas eu Ă  faire de front-end Web (mĂȘme si j’aurais pu y mettre Play2).

J’ai choisi Scala essentiellement parce qu’il est compatible avec l’écosystĂšme Java. Il permet de coder rapidement grĂące Ă  sa syntaxe simple et puissante tout en bĂ©nĂ©ficiant des bibliothĂšques dont j’ai besoin (Twitter4J en particulier).

Mongo

Mongo, c’est le NoSQL simple par essence. Un systĂšme de stockage orientĂ© document, une mise en Ɠuvre rapide pour le dĂ©veloppement et des performances en production qui sont tout Ă  fait honorables. Nul n’est parfait et certaines limitations de Mongo peuvent ĂȘtre gĂȘnantes pour vous[en]. Mais pour un pet project, voir mĂȘme quelque chose de plus sĂ©rieux, pensez-y.

Ici, je m’en sers pour stocker tout l’état du systĂšme, soit en gros :

  • mes followers et la date Ă  laquelle je me suis mis Ă  les suivre,
  • les statuts que j’ai dĂ©jĂ  retweetĂ©s.

Les documents sont des documents JSON, qui sont ensuite stockĂ©s dans Mongo sous format binaire. C’est assez facile Ă  manipuler et il existe des clients plutĂŽt sympathiques pour aller voir dans le Mongo (oui, je suis sous OSX).

J’ai choisi Mongo parce qu’il me faut une seule ligne de commande pour dĂ©marrer un dĂ©mon sur ma machine avec une base vide oĂč que je sois.

Akka

Akka est le framework pour construire des applications concurrentes et hautement disponibles en Scala (et en Java !). C’est une bibliothĂšque qui permet d’avoir des acteurs dans son code. En plus de cette « simple » fonctionnalitĂ©, Akka supporte le routage sur un cluster d’acteurs, la rĂ©cupĂ©ration en cas d’échec et quantitĂ©s d’autres petits bonus


Un acteur est ainsi une primitive qui va rĂ©pondre Ă  des messages pour faire des traitements et ensuite envoyer d’autres messages.

L’objectif est donc de dĂ©couper le pipeline de traitement en une suite plus ou moins longue de messages qui seront ensuite Ă©changĂ©s entre les acteurs.

L’avantage de ce systĂšme, notamment lors des phases de mise au point, est qu’il est facile de tester individuellement la rĂ©ponse de chaque acteur pour chaque message, ou bien mĂȘme de n’utiliser certains messages que pour le dĂ©veloppement. C’est trĂšs puissant et Akka nous facilite considĂ©rablement la vie.

J’ai choisi Akka car je savais que mes besoins pour le projet Ă©taient de pouvoir rĂ©pondre de maniĂšre efficace Ă  des recherches Twitter et prendre des dĂ©cisions en fonction de l’état de ma base. Étant donnĂ© que ces traitements sont enchaĂźnĂ©s dans un pipeline, l’utilisation d’acteur m’est apparue comme naturelle. Chaque traitement pouvant ĂȘtre dĂ©coupĂ© en petites tĂąches Ă©lĂ©mentaires.

Twitter4j

Si vous ne connaissez pas Twitter, sortez de votre grotte. Si vous ne connaissez pas bien son fonctionnement, allez lire le manuel manquant de Twitter [en]. Toute cette expĂ©rience est partie de l’article de blog que j’avais lu et qui Ă©voquait ce robot joueur sur Twitter, donc il me fallait un moyen de lui parler.

Twitter permet de facilement interagir avec son API pour accĂ©der Ă  toutes les fonctionnalitĂ©s disponibles dans les clients Twitter classiques. L’authentification passe par de l’OAuth2. Et si vous ne savez pas comment ça marche, tant mieux !

Du coup, un de mes besoins Ă©tait de trouver une bibliothĂšque qui me permettrait d’abstraire complĂštement toutes les communications avec Twitter. TrĂšs rapidement, mon choix s’est portĂ© sur Twitter4j. Et de ce fait, mon choix de langage a aussi Ă©tĂ© validĂ© (je t’avoue qu’au dĂ©part, je voulais faire ça en Rust, mais la seule bibliothĂšque Twitter que j’ai trouvĂ©e est pour le moins sibylline).

Envie de voir comment ce se passe en pratique ? Ça sera pour le prochain article


Catégories: Blog Société

Rendez-vous au Developer Day le 24 mars !

SOAT participe cette annĂ©e Ă  l’édition du « Developer Day » organisĂ© par l’ESGI ! Rendez-vous le jeudi 24 mars 2016 pour une journĂ©e de rencontres et d’échanges entre Ă©tudiants et entreprises. Cet Ă©vĂ©nement a pour objectif de parler des bonnes pratiques Ă  connaitre pour mener Ă  un bien un projet informatique. Les Ă©tudiants pourront […]
Catégories: Blog Société

Conférences dotScale et dotSecurity 2016

A Duchess Community Blog for France - mar, 03/22/2016 - 09:00

La série des dotConférences continue avec cette fois-ci plusieurs gros thÚmes : la Sécurité, la Scalabilité, le DevOps et les SystÚmes Distribués.

dotSecurity

dotSecurity

dotSecurity aura lieu au le 22 avril au Théùtre des Variétés dans le 2Úme arrondissement à Paris.

Lors de cette conférence le thÚme de la sécurité sera abordé sous toutes ses coutures.

Si vous n’ĂȘtes pas dĂ©jĂ  Ă  Devoxx ou Mix-IT ce jour lĂ , vous pourrez notamment Ă©couter et rencontrer un des membres de Let’s Encrypt et dĂ©couvrir comment sĂ©curiser vos serveurs en installant des certificats SSL gratuitement et simplement. Des experts venus des 4 coins du …

Cet article Conférences dotScale et dotSecurity 2016 est apparu en premier sur Duchess France.

Catégories: Association

JIRA Agile (Software): scrum or kanban – revisited

Le blog de Valiantys - lun, 03/21/2016 - 16:16

After the popularity of my previous blog a couple of years ago, I thought it was only fair that I revisit this topic and update you on what has changed with both scrum and kanban in the meantime. The comparison of both scrum and kanban remains pretty much the same, but in this blog I’d ...

The post JIRA Agile (Software): scrum or kanban – revisited appeared first on Valiantys Blog - Atlassian Expert.

Catégories: Blog Société

Atelier – Plateforme 0 – Quelques rùgles de base.

AprĂšs avoir construit notre objet connectĂ©, il est maintenant temps d’en exploiter les donnĂ©es. Et pour cela, nous allons Ă©valuer les diffĂ©rentes plateformes Cloud IoT. Mais devant l’offre plĂ©thorique qui nous est proposĂ©e (nous avons recensĂ© pas loin d’une quarantaine de fournisseurs potentiels), il nous faut poser quelques rĂšgles. Cet article a pour but de les dĂ©finir.

Un cloud self-service

MĂȘme si nous avons eu le privilĂšge -sic- de pouvoir accĂ©der Ă  quelques offres privĂ©es via des VPNs ou des instances de dĂ©mo dĂ©diĂ©es, le but de cette sĂ©rie d’articles est que vous puissiez vous faire vos propres opinions et, donc, tester vous mĂȘmes les clouds. Pour cette raison, nous avons dĂ©cidĂ© d’Ă©liminer d’office les fournisseurs ne proposant pas de self-service. Ce qui, nous sommes tristes de le reconnaitre, Ă©limine d’emblĂ©e un certain nombre d’offres prometteuses, mais qui ne sont visiblement pas tournĂ©es vers le grand public.

Un objet agnostique de l’implĂ©mentation Cloud

Pour ĂȘtre le plus indĂ©pendant possible, nous posons aussi comme rĂšgle que nous n’installerons pas, dans un premier temps, de SDK propriĂ©taire directement sur notre objet. Le cloud cible devra donc ĂȘtre en mesure d’accepter les callbacks en provenance de Sigfox (et par la suite de LoRa), mĂȘme si cela doit nous contraindre Ă  rĂ©aliser quelques dĂ©veloppements.

Un use-case basique, mais complet

Pour tester les clouds, nous allons les mettre sur un pied d’Ă©galitĂ© en adoptant un scĂ©nario simple :

  • Depuis Sigfox, les donnĂ©es environnementales devront ĂȘtre prises en compte, stockĂ©es de maniĂšre durable, dĂ©clencher la mise Ă  jour d’un dashboard live, et lever une alerte sur une rĂšgle mĂ©tier basique (tempĂ©rature supĂ©rieur Ă  27°C)
  • Un utilisateur devra ĂȘtre en mesure de modifier l’Ă©tat des DELs d’un objet via une interface simple
  • Le cloud devra pousser l’Ă©tat des DELs d’un objet dans le downlink de Sigfox

Nous porterons bien sĂ»r un regard aiguisĂ© sur la valeur ajoutĂ©e du fournisseur de Cloud concernant la gestion d’une flotte d’objets connectĂ©s.

Voici l’illustration de notre architecture "fonctionnelle" :

Iot-principe

La suite, dĂšs la semaine prochaine, avec le test de l’offre IoT de Amazon Web Services.

Catégories: Blog Société

Comment stocker ses données dans Hadoop ?

ekito people - lun, 03/21/2016 - 06:00

Ce billet a pour objectif de traiter les questions suivantes :

  • Quels sont les diffĂ©rents modes de stockage des donnĂ©es dans Hadoop ?
  • Quels sont les particularitĂ©s des formats de fichiers « spĂ©cifiques » Hadoop ?
  • Quels sont les mĂ©thodes de compression disponible ?

A la fin de cet article, vous serez capable de choisir le format de fichier et/ou la méthode de compression à appliquer à vos données, en fonction de vos besoins et de votre environnement.

Le stockage dans Hadoop

Hadoop est un framework open-source permettant de stocker et traiter de grands ensembles de données de façon distribuée et échelonnable (scalable) sur du matériel standard.

HDFS (Hadoop Distributed File System) est le systÚme de fichiers distribué donnant un accÚs haute performance aux données réparties dans un cluster Hadoop.

Le systÚme est tolérant aux pannes (les données sont répliquées par défaut 3 fois au sein du cluster).

HDFS profite de la scalabilitĂ© du cluster. Ce qui signifie que thĂ©oriquement, l’espace de stockage peut s’agrandir en fonction des besoins en ajoutant simplement des machines Ă  faible coĂ»t, dites de « commoditĂ©s », dans le cluster.

La donnĂ©e est dĂ©coupĂ©e en bloc de 128MB (taille par dĂ©faut d’un bloc HDFS) et elle est rĂ©partie sur plusieurs nƓuds (machines) du cluster. L’un des principes fondamentaux d’Hadoop est de traiter la donnĂ©e lĂ  oĂč elle est stockĂ©e.

Dans Hadoop, on peut stocker des fichiers « standard » comme des fichiers textes, CSV, XML, JSON, 
 ou des fichiers binaires comme des images.

Plusieurs formats de fichier (containers) ont Ă©tĂ© spĂ©cifiquement crĂ©Ă©s pour Hadoop et fonctionnent trĂšs bien avec MapReduce. Ces formats, que nous dĂ©taillerons plus bas dans cet article, peuvent ĂȘtre regroupĂ©s en 3 groupes :

  • Les formats de donnĂ©es structurĂ©es comme SequenceFile
  • Les formats sĂ©rialisĂ©s comme Avro
  • Les formats « colonne » comme Parquet

Ces formats ont chacun leur force et leur faiblesse mais ils partagent tous la mĂȘme caractĂ©ristique trĂšs importante dans les applications Hadoop, Ă  savoir, la compression par bloc.

Hadoop stocke et traite les donnĂ©es par blocs donc pour profiter pleinement de ses capacitĂ©s de traitement distribuĂ©s, le choix d’un format de fichier et/ou de compression « splittable » est souvent indispensable.

  • Si un fichier ne peut ĂȘtre divisĂ© en bloc, l’intĂ©gralitĂ© du fichier sera passĂ©e Ă  une tache MapReduce, aucun traitement distribuĂ© n’aura lieu.
  • En revanche, prenons l’exemple d’un fichier CSV. Il peut ĂȘtre divisĂ© en bloc (« splittable ») car on peut commencer Ă  lire un fichier CSV Ă  partir de n’importe quelle ligne du fichier. Dans ce cas, le traitement du fichier pourra ĂȘtre effectuĂ© de maniĂšre parallĂšle sur les nƓuds du cluster, oĂč sera stockĂ©e la donnĂ©e.

Les formats « standard » ou spĂ©cifiques « Hadoop » peuvent ĂȘtre compressĂ©s, ce qui permet de :

  • Diminuer l’espace de stockage des donnĂ©es sur disque
  • Augmenter les performances de lecture et d’écriture sur disque (I/O)
  • AmĂ©liorer la vitesse de transfert des fichiers sur le rĂ©seau

Cependant, pendant les phases de compression et de décompression, le processeur (CPU) est plus utilisé et le temps des traitements est moins rapide.

Afin de savoir quel container et/ou mĂ©thode de compression s’appliquent Ă  vos donnĂ©es, commençons par lister les formats spĂ©cifiques « Hadoop » qui supportent tous la compression par bloc dite « splittable ».

Format de données structurées

Le format SequenceFile est l’un des formats les plus utilisĂ©s dans Hadoop. Les donnĂ©es sont stockĂ©es sous forme de paires “clef-valeur” qu’on appelle “enregistrement”.

Trois modes de compression sont disponibles pour stocker les enregistrements :

  • DĂ©compressé : Les enregistrements sont stockĂ©s tel quel sans leur appliquer d’algorithme de compression. Cette mĂ©thode est la moins efficace en termes de performance d’entrĂ©es/sorties (I/O) et est la plus volumineuse en termes de stockage disque.
  • Enregistrement-compressĂ© (Record-compressed). Chaque enregistrement est compressĂ© dĂšs lors qu’il est ajoutĂ© au fichier.
  • Bloc-compressĂ© (Block-compressed). Les enregistrements sont stockĂ©s dans des blocs. DĂšs que la taille du bloc est atteinte, le bloc est compressĂ©. Un ou plusieurs blocs sont compressĂ©s dans un mĂȘme bloc HDFS. Ce mode de compression est le plus utilisĂ© car il possĂšde le meilleur ratio de compression.

Un SequenceFile est composĂ© d’un header (en-tĂȘte) contenant les informations des mĂ©tadonnĂ©es basiques du fichier comme le codec de compression utilisĂ©, les class names clef/valeur, les mĂ©tadonnĂ©es de l’utilisateur et un marker « sync » gĂ©nĂ©rĂ© alĂ©atoirement. Ce marker est Ă©galement Ă©crit dans le corps du fichier et permet l’accĂšs alĂ©atoire Ă  des points du fichier et est un Ă©lĂ©ment clef facilitant la splitabilitĂ©.

Les SequenceFiles sont trĂšs bien supportĂ©s par l’écosystĂšme Hadoop, cependant trĂšs peu en dehors, et uniquement par Java.

Cas d’utilisation le plus commun : container pour fichier de petite taille (Taille plus petite que la taille d’un bloc HDFS)

  • Stocker des fichiers de petite taille dans Hadoop entraĂźne une utilisation excessive de la mĂ©moire pour le NameNode car les mĂ©tadonnĂ©es de chaque fichier enregistrĂ© dans HDFS sont stockĂ©es en mĂ©moire.
  • Le traitement de ces fichiers va gĂ©nĂ©rer beaucoup de taches de traitements. Hadoop est conçu pour traiter des gros fichiers donc l’une des solutions possible est de packager tous ces petits fichiers dans un SequenceFile.
Format Sérialisé

La sĂ©rialisation est un processus de conversion d’un fichier dans un flux d’octets. Les 3 frameworks ci dessous, dĂ©crivent les donnĂ©es dans un schĂ©ma permettant une interopĂ©rabilitĂ© entre les langages.

  • Thrift (dĂ©veloppĂ© par Facebook) et Protocol Buffers (dĂ©veloppĂ© par Google) ne supportent pas la compression des records et sont non « splittables ». Les formats de stockage Thrift & Protocol Buffers ne sont pas supportĂ©s nativement par Map Reduce mais la librairie Elephant Bird adresse certaines de ces faiblesses.
  • Avro est devenu un format d’échange de rĂ©fĂ©rence dans l’écosystĂšme Hadoop. Il permet d’adresser les manques de Hadoop Writables, Ă  savoir le manque de portabilitĂ© entre les langages. De plus, les fichiers Avro sont « splittables » et compressibles. Avro stocke le schĂ©ma (en JSON) dans le header de chaque fichier et il supporte l’évolution du schĂ©ma. Entre 2 schĂ©mas, on peut ajouter, renommer (avec un alias) ou supprimer un champ.
Format Colonne

Les avantages d’un stockage en colonne sont les suivants :

  • Eviter les I/O et potentiellement la dĂ©compression des colonnes ne faisant pas partie de la requĂȘte.
  • Bonne performance des requĂȘtes qui n’accĂšdent qu’à certaines colonnes.
  • TrĂšs efficace dans la compression d’une colonne car en gĂ©nĂ©ral les donnĂ©es se ressemblent.
  • Ajout facile d’une nouvelle colonne, les lignes n’ayant pas besoin d’ĂȘtre redimensionnĂ©es.

Les formats “colonne” dĂ©crits ci-dessous, sont supportĂ©s par Hadoop :

  • RCFile :  Record Columnar File est le premier format « colonne » adoptĂ© par Hadoop et utilisĂ© initialement dans Hive. Il a pour objectif un chargement rapide des donnĂ©es, une exĂ©cution rapide des requĂȘtes et une utilisation trĂšs efficace de l’espace de stockage. Le format RCFile est un format tabulaire constituĂ© de lignes et de colonnes. Les tables sont stockĂ©es dans HDFS : des groupes de lignes sont stockĂ©s dans des blocs HDFS. RCFile applique une compression par colonne sur ces groupes de lignes donc RCFile hĂ©rite de beaucoup d’avantages du stockage « colonne », exceptĂ© de l’évolution du modĂšle de donnĂ©es.
  • ORC (conçu aprĂšs PARQUET) : Optimized RC Files. ORC a Ă©tĂ© inventĂ© pour optimiser les performances de Hive et bĂ©nĂ©ficie des mĂȘmes avantages et limitations de RCFile. La diffĂ©rence se fait sur la qualitĂ© de la compression ce qui permet des requĂȘtes plus rapides.
  • Parquet a les mĂȘmes caractĂ©ristiques que ORC (stratĂ©gie de groupes de lignes avec un stockage et compression par colonne) mais compatible avec toutes les interfaces MapReduce comme Java, Hive, Pig et d’autres moteurs d’exĂ©cution comme Impala ou Spark. Parquet supporte des structures de donnĂ©es complexes ainsi que la lecture et l’écriture par les APIs d’Avro et Thrift, sans oublier les Ă©volutions de schĂ©ma. 
Format de Compression

Les codecs de compression ont chacun leurs caractéristiques.

Certains privilĂ©gient la vitesse de compression/dĂ©compression au dĂ©triment du ratio de compression (taille du fichier compressĂ©) alors que d’autres privilĂ©gient l’inverse.

A cela, se rajoute la capacitĂ© du codec Ă  diviser (“split”) les fichiers compressĂ©s.

Ci-dessous, vous trouverez un tableau récapitulatif de quelques codecs utilisés dans le monde Hadoop : Snappy, LZO, Gzip, bzip2

format_compression

Conclusion

Comme on vient de le voir, chaque format de fichier et de compression répond à des besoins particuliers.

Vos choix seront donc guidĂ©s par vos cas d’utilisation et votre environnement :

  • La distribution Hadoop que vous choisirez
  • Les traitements que vous effectuerez
  • Les frameworks que vous utiliserez
  • Les exigences de stockage (taille de stockage, archivage des donnĂ©es, compression, 
)
  • L’évolution du modĂšle de donnĂ©es
  • L’extraction des donnĂ©es d’Hadoop vers un systĂšme extĂ©rieur
  • 
.

The post Comment stocker ses données dans Hadoop ? appeared first on ekito people.

Catégories: Blog Société

[PO Dojo] DESSINEZ VOTRE ACTIVITÉ AVEC LE LEAN STARTUP (suite) !

Agile Nantes - sam, 03/19/2016 - 15:41
 Venez dĂ©couvrir la mĂ©thode Lean Startup ! (suite) Lors de notre session du mois de fĂ©vrier, nous avons dĂ©couvert  le « Value Proposition Canvas »Â et nous nous sommes exercĂ©s Ă  sa mise en application sur la thĂ©matique de la refonte du site Agile Nantes. HĂ©las, faute de temps, nous n’avions pas pu aller au bout de notre [...]
Catégories: Association

LCC 143 - Let auto be Val

Cette semaine, la fine Ă©quipe discute de l’actualitĂ© lourde en nouvelles sur le langage Java - yeah. On parle aussi des framework nouveaux et anciens autour des microservices, il faut bien faire le buzz.

Enregistré le 14 mars 2016

TĂ©lĂ©chargement de l’épisode LesCastCodeurs-Episode–143.mp3

News Devoxx

Discussion sur Devoxx

Langages

Java : proposition de factory pour les collections
Proposition var/val dans Java 9?
Soudage sur la proposition var/val
Point sur Jigsaw

Mettre Java dans son docker c’est comme cracher dans son Yop
 pour Oracle
Reza fait une sortie flamboyante

Comparaison Rust Java
Attaque de sécurité sur JavaScript grùce à ses rÚgles laxistes
Présentation WAT JavaScript
Xamarin joining Microsoft

Middleware

Lightbend Lagom : un framework pour les microservices
Reactor 2.5
Amélioration au coeur de Spring dans 4.3
Play 2.5
Hibernate Search et Elasticsearch
Ratpack 1.2

Infrastructure

SQLServeur sur Linux
Retour d’expĂ©rience de Google sur le dĂ©ploiement de containers

Outillage

RedPen, le checkstyle de la doc

Big Data

Kafka Streams
Debezium

Design

One API, many facades

Sécurité

L’attaque du DROWN
Bugs de sécurité sur Apache Tomcat

MĂ©thodologie

Chat de groupe : la plaie ?
Mon monolithe majestueux

Communauté

Le coup de baton de la communauté à GitHub
RĂ©ponse de Github sous forme de Pull Request
Issue templates
SourceForge et Slashdot rachetés

Divers

19 lois du développement logiciel
Startup as a Service

DĂ©bat

MĂȘme les jeux de sociĂ©tĂ©, en Open Source
La GED et la GEX, c’est quoi, on utilise quoi ?
PlantUML
DITA

Rubrique débutant

Google Summer of Code
Passage par valeur vs passage par référence.

Outil de l’épisode

Git submodules
Noizio

Conférences

Breizhcamp 23–26 mars
Devoxx France 20/22 avril
Mix-IT 21 et 22 avril
EclipseCon entre le 7 et le 9 juin Ă  Toulouse, le cfp est ouvert
Riviera DEV se tiendra le 16 et 17 juin Ă  Sophia Antipolis. Le CfP est ouvert
Tech2days 15–17 juin à Nantes. CfP jusqu’à fin mars.

Nous contacter

Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/
Flattr-ez nous (dons) sur https://lescastcodeurs.com/
En savoir plus sur le sponsoring? sponsors@lescastcodeurs.com

Catégories: Blog Individuel

ASP.NET Core sur un environnement Linux

Dans ce billet, je souhaite aborder l’usage d’ASP.NET Core sur Linux, Ă  la fois pour le dĂ©veloppement d’un projet (configuration de l’environnement) que pour l’hĂ©bergement d’une application. Ce billet est basĂ© sur la version RC1 des outils d’ASP.NET Core. Il est probable que les APIs, notamment les utilitaires en lignes de commande, Ă©voluent lĂ©gĂšrement d’ici […]
Catégories: Blog Société

Webpack : choisir SASS ou LESS ?

logo-webpack-sass

Le rĂŽle de Webpack

Comme expliquĂ© dans ce prĂ©cĂ©dent article (Webpack + ES6 + Babel + Angular1.x), Webpack nous permet de modulariser le code Javascript. Ce n’est toutefois pas lĂ  son seul argument puisqu’il permet aussi de disposer de toutes les ressources statiques de notre projet (CSS, images, polices de caractĂšres) en tant que module.

Plus besoin de task-runner comme Gulp ou Grunt, il suffit d’inclure la ressource dans un des fichiers Javascript pour que la ressource soit ajoutĂ©e au « pack » (aussi appelĂ© bundle) gĂ©nĂ©rĂ© par Webpack.

Exemple en EcmaScript 5

require('../path/to/my/style.css');

Exemple en EcmaScript 6

import './myImage.png';

Nous allons nous intĂ©resser Ă  l’une de ces ressources statiques, la feuille CSS, Ă  travers un exemple. Voyons tout d’abord une configuration simple de Webpack faite en ES6 permettant de charger les feuilles de style.

Configuration Webpack

import webpack from 'webpack';
const DIRNAME = __dirname;

export default {
  context: DIRNAME,
  entry: [
    DIRNAME + '/app.js'
  ],
  output: {
    path: DIRNAME + 'dist',
    filename: 'bundle.js'
  },
  module: {
    loaders: [
      { test: /\.css$/, loaders: ['style', 'css']) }
    ]
  }
};
./style.css
.my-class{
  text-align: center;
}
./app.js
/* ... */
import './style.css';
/* ... */

Le css-loader va ajouter au fichier bundle.js le contenu du ./style.css importĂ© et le style-loader ajoutera la balise <link rel="stylesheet"> rĂ©fĂ©rençant l’ensemble des CSS du pack.

Dossier output

dist
|_ bundle.js

bundle.js

Webpack generated code...
 
/*!********************************!*\
  !*** ./~/css-loader!./style.css ***!
  \**********************************/
/***/ function(module, exports, __webpack_require__) {
 exports = module.exports = __webpack_require__(/*! ./../~/css-loader/lib/css-base.js */ 12)();
 // imports
 
 // module
 exports.push([module.id, ".my-class{text-align: center;}"]);

 // exports

/***/ },
 
Webpack generated code...
Pré-processeurs

Si l’on souhaite utiliser un prĂ©-processeur comme SASS ou LESS les Ă©tapes seront les mĂȘmes que pour n’importe quelle ressource, Ă  savoir:

  1. Installer le loader adéquat
    npm install sass-loader
    // ou
    npm install less-loader
  2. Ajouter le loader Ă  la configuration de Webpack
    { test: /\.scss$/, loaders: ['style', 'css', 'sass']}
    // ou 
    { test: /\.less$/, loaders: ['style', 'css', 'less']}
  3. Importer les feuilles de style dans le code Javascript
    import '../path/to/styles.scss';
    // ou
    import './styles.less';
  4. Lancer Webpack afin qu’il puisse packager ces ressources

En dehors des diffĂ©rences inhĂ©rentes aux prĂ©-processeurs il faut savoir qu’utiliser l’un ou l’autre avec Webpack n’est pas sans consĂ©quence. Nous allons donc dĂ©finir quelles sont ces contraintes afin de faciliter le choix entre SASS ou LESS.

Webpack et SASS Avantage : la rĂ©-Ă©criture d’URL

L’intĂ©gration de SASS avec Webpack profite de la popularitĂ© du prĂ©-processeur: le projet sur Github (https://github.com/jtangelder/sass-loader) est plus avancĂ© que son concurrent. NĂ©anmoins comme SASS ne fournit pas de rĂ©-Ă©criture d’url, un loader supplĂ©mentaire devra ĂȘtre installĂ© (resolve-url-loader).

Prenons par exemple le cas suivant: nous souhaitons utiliser une image enregistrĂ©e localement comme background d’une classe CSS. Il est mĂȘme possible de passer par une variable.

RĂ©pertoire du projet

projet
|_ app.js
|_ index.html
|_ assets
|   |_ fonts
|   |_ images
|       |_ image1.png
|       |_ image2.png
|_ style.scss
|_ dist

./style.scss

@path-to-images: './assets/images/';
.my-class{
  background: url(@path-to-images + 'image1.png') no-repeat;
  /* le loader resolve-url va transformer le chemin
  * './assets/images/image1.png' en '/img/image1.png'
  */
}

Voici maintenant la configuration permettant au loader file-loader de copier les images png dans le répertoire du bundle Webpack (dist).

Loaders de Webpack

...
  module: {
    loaders: [
      { test: /\.scss$/, loaders: ['style', 'css', 'resolve-url', 'sass']) },
      { test: /\.png$/, loader: "file-loader?name=img/[name].png"}
        /* Tous les fichiers png seront copiés vers l'url 
        * ./dist/img/<nom-fichier>.png 
        */
    ]
  }
...

Dossier output

dist
|_ bundle.js
|_ img
|   |_ image1.png
|   |_ image2.png

Les images sont dĂ©sormais accessibles par le bundle au chemin /img, nĂ©anmoins sass-loader ne peut pas remplacer les URL automatiquement. C’est donc le loader resolve-url-loader qui s’en chargera.

Inconvénient : les multiples imports

Le plus gros désavantage de SASS concerne les multiples imports : un fichier commonStyle.scss sera par exemple importé dans plusieurs autres feuilles de style.

./commonStyles.scss

.commonClass{
  ...
}
./style1.scss
@import './commonStyles.scss';
.firstClass{
  .commonClass;
  ...
}

./style2.scss

@import './commonStyles.scss';
.anotherClass{
  .commonClass;
  ...
}

Chaque import supplémentaire entrainera une duplication du code dans le bundle généré. Dans ce cas Webpack aura généré deux fois le code de variables.scss.

Il n’y a pas, Ă  l’heure actuelle, de façon propre de rĂ©gler ce problĂšme :

  • La premiĂšre solution consiste Ă  importer une seule fois tous les fichiers de style dans un fichier main.scss importĂ© dans l’application. On perd nĂ©anmoins l’aspect isolĂ© et indĂ©pendant des modules ES6.
./commonStyles.scss
.commonClass{
  ...
}

./style1.scss

//Plus d'import
.firstClass{
  .commonClass;
  ...
}

./style2.scss

//Plus d'import
.anotherClass{
  .commonClass;
  ...
}
./main.scss
// Import all stylesheets here
@import './variables.scss';
@import '.commonStyles.scss/';
@import './style1.scss';
@import './style2.scss';
app.js
/* ... */
 
import './main.scss';
 
/* ... */
  • Il est enfin possible de contourner le problĂšme avec node-sass-import-once mais dans ce cas on n’utilise plus Webpack pour gĂ©rer les feuilles de style.
Webpack et LESS Avantage: les multiples imports

LESS est moins utilisé que son homologue, sa communauté est de ce fait moins importante. Néanmoins ce pré-processeur corrige les inconvénients de SASS concernant la gestion des multiples imports.

Si l’on reprend l’exemple Ă©crit en LESS, les classes de commonStyles.less ne seront Ă©crites qu’une seule fois dans le bundle de Webpack si l’on spĂ©cifie le mot clĂ© « reference » lors de l’import d’une ressource externe.

./commonStyles.less
.commonClass{
  ...
}
.anotherCommonClass{
  ...
}
./style1.less
@import (reference) './commonStyles.less';
.firstClass{
  .commonClass;
  ...
}

./style2.less

@import (reference) './commonStyles.less';
.anotherClass{
  .commonClass;
  ...
}
InconvĂ©nient: la rĂ©-Ă©criture d’url

LESS gĂšre la rĂ©-Ă©criture d’URL sans avoir besoin d’un autre loader (resolve-url de SASS). NĂ©anmoins il subsiste Ă  l’heure actuelle un bug qui empĂȘche de passer une variable comme paramĂštre d’url.

Reprenons le précédent projet:

Configuration Webpack gérant les ressources LESS et PNG
...
  module: {
    loaders: [
      { test: /\.scss$/, loaders: ['style', 'css', 'less']) },
      { test: /\.png$/, loader: "file-loader?name=img/[name].png"} 
      /* images disponible dans le bundle Ă  l'url /img/[nom-image].png */
    ]
  }
...
RĂ©pertoire du projet
projet
|_ app.js
|_ index.html
|_ assets
|   |_ fonts
|   |_ images
|       |_ image1.png
|       |_ image2.png
|_ style.scss
|_ dist
Url en dur

./style.scss

.my-class{
  background: url('./assets/images/image1.png') no-repeat;
}
Classe dans le bundle de Webpack
.my-class{background: url('/img/image1.png') no-repeat;}
/* L'url a bien été remplacée par less-loader */
Url par une variable ./style.scss
@path-to-image1: './assets/images/image1.png';
.my-class{
  background: url(@path-to-image1) no-repeat;
}
Classe dans le bundle de Webpack
.my-class{background: url('./assets/images/image1.png') no-repeat;}
/* L'url n'a pas été remplacée et n'est donc pas disponible */
Conclusion

Aucun des deux choix ne sera mauvais cependant LESS permet de rester dans la philosophie de Webpack sans aucun ajout tiers. SASS possĂšde une communautĂ© plus importante, plus active, mais sa complĂ©mentaritĂ© avec Webpack n’est pas encore parfaite.

Et vous, quel sera votre choix ?

Catégories: Blog Société

Les apports de DateAndTime dans Rails

L'actualité de Synbioz - ven, 03/18/2016 - 00:00

Pour cet article consacrĂ© Ă  la magie de Rails j’ai cherchĂ© un sujet d’actualitĂ© et pour cela quoi de mieux qu’un petit tour dans les changelogs de Rails ?

Si vous faites un tour du cĂŽtĂ© du CHANGELOG.mdd’active support vous remarquerez plusieurs ajouts concernant Date et Time.

Lire la suite...

Catégories: Blog Société

Un peu de code, un peu de web, beaucoup de cadeaux – 1/3

Blog d’Ippon Technologies - jeu, 03/17/2016 - 15:13

Cet article est le premier dans la sĂ©rie des articles sur mon Bot Twitter qui joue et qui gagne. Il prĂ©sente le projet du Bot, la façon dont j’ai abordĂ© le projet et les rĂ©sultats auxquels je suis arrivĂ©. On y abordera Internet, la programmation, les robots, les singles dĂ©dicacĂ©s et les Community Managers.

La série complÚte :

 

Inspiration

C’est l’étĂ©, il fait chaud et la moiteur ne me donne envie que d’une seule chose : rester au frais et coder toute la journĂ©e, sans trop utiliser mon CPU. Mi-juillet, un matin, je me lĂšve, je te bouscule, tu ne te rĂ©veilles pas, je jette un coup d’Ɠil aux nouvelles neuves sur Internet et je tombe sur cet article :  « J’ai construit un robot twitter et j’ai gagnĂ© des concours avec » [en]. Je le lis et je trouve ça plutĂŽt marrant comme idĂ©e :

Le Bot s’amuse Ă  faire des recherches sur Twitter, s’abonne, RT des messages qui parlent de gagner des lots en Ă©change de ce suivi. Il s’appuie sur des mot clefs et sur un algo pour dĂ©cider si le tweet vaut la peine d’ĂȘtre RT ou pas
 Mais il est anglophone et je me demande s’il ne serait pas possible de faire pareil en français. Pas de code source pour le Bot. Mais aprĂšs tout, je pourrais probablement construire un robot qui ferait la mĂȘme chose Ă  moindre coĂ»t, et ce dans la langue de MoliĂšre !

Choix des technologies

CĂŽtĂ© technologies, en aoĂ»t 2015, je fais du Rust, du Node.js, du Ruby, mais j’ai envie de changer un peu. L’écosystĂšme Rust est encore un peu jeune cĂŽtĂ© client de l’API Twitter (je sais que ça sera la principale piĂšce de mon systĂšme, le reste pouvant ĂȘtre adaptĂ©). Et donc, je me tourne presque logiquement vers Scala :

  • il tourne sur JVM, donc c’est facile,
  • il n’a pas besoin d’IDE pour coder, vu la tempĂ©rature extĂ©rieure, pas obligĂ© de rĂ©chauffer la planĂšte encore plus,
  • c’est un langage fonctionnel, rempli de petites pĂ©pites,
  • il est interopĂ©rable avec Java, donc je peux utiliser twitter4j dans mon code… Et ça, c’est cool !
  • ça fait longtemps que j’en ai pas fait (enfin, j’en fait Ă  cĂŽtĂ©, mais dans du Play2)

Comme je sais que je vais devoir faire un tuyau de traitement de donnĂ©es, j’ai l’inspiration incroyable et soudaine : je vais utiliser le framework Akka et ses acteurs pour rendre ce traitement facile et lĂ©ger (Play utilise les acteurs en interne pour distribuer les requĂȘtes HTTP au code et l’inspiration n’est pas si incroyable, donc).

Je sais aussi que je pourrais ne rien stocker en local. Mais Twitter impose des quotas d’usage de son API assez bas et je dois donc cacher certaines choses en local pour Ă©conomiser ces appels. J’utiliserai donc MongoDB, que je connais assez bien pour savoir que c’est trivial Ă  utiliser en dĂ©veloppement, voir mĂȘme en production pour du code Ă  base de bouts de ficelles.

C’est un robot, donc il doit tourner en ligne de commande et je n’aurai pas besoin d’interface graphique. Donc, hop ! Pas de framework web, et pas de souci !

Implémentation et Résultats

Le 5 aoĂ»t, un nouvel utilisateur arrive sur Twitter. Il s’appelle Octave Contra-T, et je crois que je tweete une premiĂšre fois Ă  la main. Ensuite, je laisserai le Bot twitter tout seul comme un grand, et donc ce compte ne fera que faire des RTs.

Octave

Le profil de mon Bot.

Au dĂ©part, une des mes approches avait Ă©tĂ© de faire croire que le robot Ă©tait un ĂȘtre humain. Mais finalement, je n’en ai pas eu besoin pour gagner des concours. Si j’avais un peu de temps, je travaillerai bien sur quelques extensions du robot pour qu’il puisse passer pour un ĂȘtre humain plus facilement : en crawlant des sites de news et en twittant des infos trouvĂ©es sur l’internet, il pourrait facilement passer pour quelqu’un de relativement humain.

Le Bot tourne sur ma machine personnelle, et donc il ne tourne pas si souvent que cela. Et pourtant, dĂšs le 14 aoĂ»t, je gagne une clef pour un jeu vidĂ©o et ensuite, les choses s’enchaĂźnent doucement. J’ai mis Ă  jour le Bot petit Ă  petit pour corriger quelques bugs, bannir des comptes et ĂȘtre plus malin dans la sĂ©lection des tweets Ă  RT.

Huit mois plus tard, j’ai gagnĂ© quelques cadeaux, mais surtout des followers en pagaille. Sans jamais twitter de vrai statut, il a aujourd’hui 425 438 abonnĂ©s (et suit 1104 1223 comptes), soit plus que mon compte personnel ! L’expĂ©rience continue a ĂȘtre intĂ©ressante, mĂȘme sociologiquement parlant.

La liste des cadeaux gagnés :

  • 14/08, clef pour la beta de Black Ops 3,
  • 16/08, crĂ©dit ByPass,
  • 17/08, Film dĂ©matĂ©rialisĂ© Divergente 2,
  • 17/08, re-clef pour la beta de Black Ops 3,
  • 18/08, re-re-clef (patch du Bot pour ignorer BO3 et Steam),
  • 24/08, un single dĂ©dicacĂ© de Megan,
  • 31/08, deux places pour « We are your Friend »,
  • 09/09, deux places pour une soirĂ©e Ă  Paris avec Mika et The Avener,
  • 20/09, consultation de voyance gratuite.

(entre temps, je me remet Ă  bosser et donc le Bot ne tourne plus trop)

  • 29/2/2016, 50(!) centimes sur un site de paiement en ligne

Vous voulez savoir comment j’ai fait ? Suivez moi dans le prochain article

 

Catégories: Blog Société

DeuxiĂšme composante de la Communication NonViolente (CNV) : IDENTIFIER ET EXPRIMER SES SENTIMENTS

Cette deuxiĂšme Ă©tape consiste Ă  exprimer ce que nous ressentons au plus profond de nous-mĂȘmes suite Ă  notre observation. Une des grandes difficultĂ©s sur cette Ă©tape est que nous disposons d’un champs lexical bien plus riche pour qualifier autrui (jugement, insulte, etc.) que pour dĂ©crire clairement nos propres Ă©motions.

Nous avons Ă©tĂ© formatĂ©s depuis notre plus jeune Ăąge (dans le cursus scolaire, etc.) Ă  ajuster et diriger nos dĂ©cisions par rapport aux autres plutĂŽt que de rester connectĂ© Ă  l’intĂ©rieur avec nous-mĂȘmes. Nous avons Ă©tĂ© conditionnĂ©s Ă  analyser mentalement en restant dans nos tĂȘtes, nous demandant :

  • “Qu’est-ce que les autres pensent de moi ?”
  • “Qu’est-ce que les autres pensent que je devrais faire ?”
  • “Comment devrais-je me comporter ?”
  • “Qu’est-ce que je devrais dire pour gagner leur approbation?”
  • etc.

Lorsqu’on nous demande ce que nous ressentons, nous avons Ă©tĂ© habituĂ©s trĂšs tĂŽt Ă  exprimer une opinion plutĂŽt que de rĂ©vĂ©ler sincĂšrement nos Ă©motions et ce que nous ressentons. Or l’expression de notre opinion, analyse ou diagnostic ne rĂ©vĂšle en rien nos Ă©motions liĂ©es aux besoins insatisfaits en nous. Tout au plus notre interlocuteur entendra une critique ou un jugement et se renfermera probablement sur lui-mĂȘme (rĂ©action dĂ©fensive), rendant ainsi plus difficile Ă  l’autre de comprendre nos besoins insatisfaits ni d’accĂ©der Ă  notre demande pour y remĂ©dier.

Par exemple des dĂ©clarations dans un couple comme “Je ressens que je vis avec un mur” n’attirera pas l’attention du conjoint sur les Ă©motions et les besoins de sa femme. En fait, une telle dĂ©claration va ĂȘtre entendue comme un critique plutĂŽt qu’une invitation Ă  se connecter avec ce que nous ressentons. De plus, de telles dĂ©clarations agissent souvent comme des prophĂ©ties auto-rĂ©alisatrices. Un mari qui entend sa femme le critiquer (“je ressens que je vis avec un mur”) va se sentir blessĂ©, dĂ©couragĂ© et se protĂ©ger encore plus derriĂšre son mutisme, confirmant ainsi l’image mentale que sa femme a de lui.

Il devient donc important d’enrichir et renforcer notre vocabulaire affectif pour arriver Ă  mieux exprimer nos Ă©motions. Ce processus peut nous faire peur car exprimer sa vulnĂ©rabilitĂ© et/ou ses craintes (surtout en milieu professionnel) peut ĂȘtre interprĂ©tĂ© en fonction de notre culture comme un signe de faiblesse, de sensibilitĂ© prononcĂ©e, etc. En effet, il nous est sĂ»rement arrivĂ© d’entendre “Si nous admettons que nous avons peur, ils vont profiter de la situation et nous mettre en piĂšces. C’est comme si nous nous donnions en pĂąture aux lions !”.

Cependant, rĂ©vĂ©ler sa vulnĂ©rabilitĂ© peut vous aider Ă  rĂ©soudre des conflits car quand nous cachons ou refoulons notre inconfort, nous contribuons Ă  renforcer des analyses “subjectives” des autres (et de ce fait engendrer de la mĂ©fiance). En exprimant notre vulnĂ©rabilitĂ©, nous crĂ©ons une connexion intime avec notre interlocuteur l’amenant ainsi Ă  rĂ©vĂ©ler ses vĂ©ritables sentiments et besoins profonds.

Tout comme il est important de distinguer une observation d’une Ă©valuation, il est lĂ  aussi nĂ©cessaire de distinguer les sentiments des pensĂ©es et/ou opinions qui ne sont que des interprĂ©tations mentales. Par exemple :

  • “Je me sens incompris” montre comment j’évalue le niveau de comprĂ©hension de l’autre personne plutĂŽt que d’exprimer mes Ă©motions. Cela pourrait ĂȘtre : “Je ressens de l’anxiĂ©tĂ©â€ ou “Je me sens contrariĂ©â€ ou d’autres Ă©motions.
  • “Je sens que je n’ai pas d’importance aux yeux des gens avec qui je travaille “. Ici, je dĂ©cris comment je PENSE que les autres se comportent envers moi et comment je PENSE qu’ils m’évaluent plutĂŽt que d’exprimer ce que je ressens. Cela pourrait ĂȘtre : “Je me sens triste”, “Je me sens dĂ©couragĂ©â€, etc.
  • “Je me sens ignorĂ©â€. Cette dĂ©claration correspond plus Ă  mon interprĂ©tation des actions des autres plutĂŽt qu’une expression de mes Ă©motions.
  • “J’ai le sentiment qu’il ne sert Ă  rien” ou “J’ai le sentiment d’avoir Ă©pousĂ© un mur” n’expriment pas non plus un sentiment mais un jugement sur autrui.
  • etc.

Nous retrouvons la mĂȘme approche dĂšs lors que nous construisons notre expression sous la forme “Je ressens QUE (je/tu/il/elle) 
” qui sera dans bien des cas suivis d’un jugement, une opinion, une Ă©valuation, etc. Il serait plus juste de remplacer le verbe “sentir” par “penser”.

De ce fait, comment savoir si j’exprime rĂ©ellement et clairement un sentiment ? Les questions suivantes peuvent vous mettre sur la bonne voie :

  • “Qu’est-ce que j’éprouve ?”
  • “Qu’est-ce qu’il ressent/Ă©prouve dans cette situation ?”

Revenons sur la phrase “Je me sens incompris”. Ici je porte sans m’en rendre compte un jugement sur comment les autres me perçoivent plutĂŽt que ce que je ressens au plus profond de moi qui est liĂ© Ă  un besoin insatisfait. Nous aurions pu reformuler cette phrase par “Je me sens contrariĂ© parce que j’ai besoin d’ĂȘtre respectĂ©â€.

Or notre langage recĂšle d’adjectifs qui sont en fin de compte des interprĂ©tations des comportements et actes des autres Ă  notre Ă©gard. Voici quelques exemples de ces adjectifs : coincĂ©, nĂ©gligĂ©, rejetĂ©, piĂ©gĂ©, manipulĂ©, bridĂ©, rabaissĂ©, surchargĂ©, dĂ©valorisĂ©, etc.

Vous trouverez sur ce lien (http://www.epoche.ca/files/ListeSentiments.pdf) d’autres exemples de :

  • sentiments que nous Ă©prouvons quand nos besoins sont satisfaits ou insatisfaits ;
  • sentiments qui sont des interprĂ©tations et/ou des jugements ;
  • besoins que nous avons en tant qu’ĂȘtre humain ;

Articles suggested :

  1. Les formes de communication bloquant la compassion et l’empathie
  2. Introduction à la “Communication NonViolente”
  3. Premiùre composante de la Communication NonViolente (CNV) : OBSERVER SANS ÉVALUER

Catégories: Blog Société

Compte-rendu du petit-déjeuner Blockchain du 9 Mars 2016

La Blockchain est une promesse : LA promesse. Depuis que le monde a compris que le Bitcoin Ă©tait simplement une application qui tourne sur la Blockchain, tout le monde s’y intĂ©resse et la trouve « disruptive », mais sans (forcĂ©ment) tout comprendre. DĂ©cryptons-la et intĂ©ressons-nous Ă  ses enjeux idĂ©ologiques, mais aussi Ă  sa maturitĂ© technologique. Le petit-dĂ©jeuner Blockchain OCTO Technology Ă©tait lĂ  pour cela.

Retrouvez la présentation complÚte de nos speakers, et la vidéo du petit-déjeuner Blockchain.

ptit_dej_Blockchain_site

Des intervenants philosophes, techniques et métier pour rendre accessible la Blockchain

Beaucoup de monde Ă©tait prĂ©sent pour cette matinĂ©e Blockchain : plus de 500 inscrits en ce dĂ©but du mois de mars. Cette belle affluence confirme l’intĂ©rĂȘt provoquĂ© par la promesse de disruption apportĂ©e par la Blockchain.

La survie de Bitcoin (premiÚre instanciation de la Blockchain) depuis déjà 7 ans, avec une valorisation de plus de 6 milliards de dollars, valide cette technologie et tend à confirmer cette promesse.

« A la fin de cette matinée, vous aurez plus de questions mais elles seront plus affutées »

Pour cette matinée, Christian Fauré, Benoit Lafontaine, Adrien Pigeot et Yann Rouillard se sont succédés pour partager nos convictions philosophiques et idéologiques, notre R&D technologique, et notre savoir-faire métier.

Intervenants-blockchain

Les 3 métiers challengés par la Blockchain

La Blockchain disrupte tout ce qui concerne le transfert. Autrement dit, si vous faites du transfert alors sentez-vous concernés !

“Transfert” est un terme est d’origine juridique & financiĂšre, on transfĂšre des biens, des propriĂ©tĂ©s, des actions, des droits.  Luca Bartolomeo de Pacioli, fondateur de la comptabilitĂ©, est le pĂšre du principe connu sous le nom de « ComptabilitĂ© en partie double », autrement dit une forme de « jeu d’écriture ». Les transferts sont des jeux d’écriture, mais jusqu’à maintenant il fallait toujours un tiers pour faire les Ă©critures (comptable et juridiques) et les certifier. La Blockchain change la donne en ce qu’elle permet de gĂ©rer ces jeux d’écriture de maniĂšre automatique et sĂ©curisĂ©e, sans tiers ni institution centralisĂ©e pour gĂ©rer et maintenir le registre des transactions.

christian_faure_blockchain

Fondamentalement, la Blockchain est une technologie qui permet d’effectuer des transactions avec des organisations ou des personnes que l’on ne connaĂźt pas et Ă  qui l’on ne fait pas nĂ©cessairement confiance. La Blockchain est pertinente pour sĂ©curiser ces Ă©changes dans un environnement oĂč la confiance est absente.

Pour OCTO, au moins 3 métiers sont dÚs lors concernés par la Blockchain :

  • les mĂ©tiers de la certification (dont les nombreuses activitĂ©s de la puissance publique : cadastre, registre, identitĂ©, dĂ©cisions juridiques…),
  • les mĂ©tiers des tiers et acteurs de confiance,
  • les acteurs et plateformes de mise en relation.

blockchain-confiance

Ces derniĂšres annĂ©es, nous avons vu de nombreux acteurs se positionner sur la dĂ©sintermĂ©diation complĂšte de secteurs mĂ©tiers en se positionnant comme le nouvel intermĂ©diaire (lire Ă  ce sujet notre article sur la p2p-economy). La Blockchain est sur le point de « disrupter ces disrupteurs », quand ce n’est pas dĂ©jĂ  fait.

Pour exemple symbolique, prenons le cas de La Zooz, une startup israĂ©lienne. Elle a Ă©tĂ© fondĂ©e sur le modĂšle d’une coopĂ©rative de transport Ă  la croisĂ©e d’un Blablacar et d’un Uber. DĂšs lors que vous mettez Ă  disposition une place dans votre vĂ©hicule, vous allez gĂ©nĂ©rer un zooz dans l’économie de cette blockchain (en rĂ©fĂ©rence Ă  la monnaie antique du zouzim), que vous pourrez Ă  votre tout utiliser pour voyager dans un autre vĂ©hicule comme passager.

Une technologie au service d’une idĂ©ologie : le monde est plat, oui oui ! Une technologie

La Blockchain est un registre distribué public de transactions :

  • public, car il n’est pas nĂ©cessaire de demander la permission pour aller sur la Blockchain du Bitcoin par exemple,
  • distribuĂ©, puisque tout le monde a accĂšs au livre de comptes global avec l’ensemble des transactions. D’ailleurs, la premiĂšre chose que l’on fait en rejoignant la Blockchain du Bitcoin, c’est tĂ©lĂ©charger l’intĂ©gralitĂ© du livre de compte, depuis la toute premiĂšre transaction de Janvier 2009.

blockchain-registre

La Blockchain offre principalement du consensus-as-a-service via une loterie décentralisée utilisant la preuve de travail (proof of work) :

  • la preuve de travail : c’est essayer de dĂ©chiffrer un code sous forme de challenge cryptographique en utilisant sa puissance de calcul (c’est le rĂŽle des “miners”),
  • gagner cette loterie en traitant un block est rĂ©munĂ©rateur (dans la Blockchain du Bitcoin, le miner est payĂ© en Bitcoins).

L’innovation de rupture de cette technologie est de faire la synthĂšse entre les enjeux Ă©conomiques et technologiques. La clef de voĂ»te de la Blockchain combine des « machines » (les miners) qui effectuent des calculs cryptographiques gĂ©nĂ©rant de « l’argent ».

technonomie-blockhain

La « techno-nomie » est ici le systĂšme de rĂ©tribution qui fait tenir la technologie. Le plus stupĂ©fiant est probablement que le dĂ©veloppeur lui-mĂȘme est impliquĂ© dans la dĂ©finition du « modĂšle d’affaire » de sa Blockchain pour qu’elle soit pĂ©renne et que des “miners” acceptent de la dĂ©velopper.

Avec ces considĂ©rations technologiques, il est important de prĂ©ciser que les crĂ©ateurs et concepteurs de la Blockchain du Bitcoin n’ont pas mis en place par hasard cette technologie pour se rendre compte aprĂšs coup qu’il n’y avait plus besoin d’organisme centralisateur : non, leur ambition premiĂšre  était clairement de se passer des institution centralisĂ©es pour opĂ©rer les transferts de maniĂšre distribuĂ©e et publique.

 

Le mystĂšre Satoshi : qui est-il ?

Satoshi Nakamoto (èĄäž­æœŹ oĂč äž­æœŹ ) est le pseudonyme de la personne ou du groupe de personnes qui, de 2008 Ă  2010, a conçu et crĂ©Ă© Bitcoin, et le logiciel Bitcoin-Qt. Sur les forum crypto-anarchiques, les dĂ©veloppeurs et la communautĂ© Bitcoin perdent progressivement contact avec Satoshi Nakamoto jusqu’au 12 dĂ©cembre 2010, oĂč un dernier message est postĂ© par Nakamoto. Peu de temps avant son Ă©vanescence, Nakamoto installe Gavin Andresen comme son successeur en lui donnant accĂšs au projet SourceForge Bitcoin et une copie de la clef d’alerte. Cette derniĂšre est une clef cryptographique privĂ©e unique permettant d’attĂ©nuer les effets d’une attaque potentielle sur le systĂšme Bitcoin. Des attaques comme la dĂ©couverte d’une faille cryptographique permettant de modifier a posteriori les transactions, ou la prise de contrĂŽle de plus de 51 % des nƓuds du rĂ©seau.

Une idéologie

Il y a une dimension idĂ©ologique forte qui est vĂ©hiculĂ©e par la rupture technologique qui permet de se passer d’une organisation centrale.

libertariens-anonymous-blockchain

L’idĂ©ologie sous-jacente est celle des techno-libertariens. La libertĂ© est conçue par le libertarianisme comme une valeur fondamentale des rapports sociaux, des Ă©changes Ă©conomiques et du systĂšme politique. De fait, ses partisans, les libertariens, sont favorables Ă  une rĂ©duction voire Ă  la disparition de l’État (anti-Ă©tatisme) en tant que systĂšme fondĂ© sur la coercition, au profit d’une coopĂ©ration libre et volontaire entre les individus, avec un État limitĂ© Ă  des fonctions rĂ©galiennes.

Les 4 challenges (au moins) de la Blockchain

Au-delà de cette promesse, les Blockchains (et en particulier celle du Bitcoin) connaissent des challenges structurants :  

  • La vitesse : la Blockchain du Bitcoin est lente. On ne traite un block que toutes les 10 minutes.
  • Les types de preuve et en particulier celle de la proof of work qui entraĂźne une course Ă  l’armement (puisque indexĂ©e sur la puissance de calcul).
  • La scalabilitĂ© : le rĂ©seau semble arriver Ă  saturation (7 transactions par seconde en thĂ©orie alors que le rĂ©seau Visa produit 2000 transactions seconde en moyenne et plusieurs dizaines de milliers en cas de pic). La promesse de transactions instantanĂ©es s’efface de plus en plus et le coĂ»t d’une transaction augmente car il faut payer plus pour voir son block traitĂ©.
  • La gouvernance : la communautĂ© a du mal Ă  adopter des Ă©volutions du systĂšme et c’est le dĂ©faut d’une organisation (trop) dĂ©centralisĂ©e. Pour qu’une nouveautĂ© soit dĂ©ployĂ©e, les “miners” doivent accepter de  mettre Ă  jour le soft… et ça, c’est compliquĂ©. Si le sujet vous intĂ©resse, lisez cet article sur la gouvernance de la Blockchain.

benoit_lafontaine_blockchain

Momentum d’une technologie pour dĂ©velopper de nouvelles opportunitĂ©s

La crise des subprimes et les nombreux scandales financiers qui en ont dĂ©coulĂ© expliquent en partie la rapide adoption de Bitcoin par un public de plus en plus large. Ce phĂ©nomĂšne montre bien Ă  quel point la Blockchain peut se positionner comme une technologie permettant de soutenir le besoin de confiance dans un systĂšme. Et mĂȘme si l’époque se prĂȘte encore un peu plus Ă  l’investigation et Ă  la dĂ©couverte, les opportunitĂ©s de s’approprier ces nouveaux concepts sont nombreuses.

adrien_pigeot_blockchain

Dans le contexte Ă©conomique actuel d’une explosion de l’emploi indĂ©pendant, avec une augmentation de 85 % entre 2000 et 2013, certains imagent qu’il pourrait y avoir des places de marchĂ©s autonomes et sĂ©curisĂ©es oĂč le travail et les contrats seraient hĂ©bergĂ©s et opĂ©rĂ©s par une blockchain.

blockchain-coop

Les frontiĂšres des organisation classiques sont ainsi remises en cause avec la blockchain avec l’émergence d’organisations coopĂ©ratives dĂ©centralisĂ©es d’un nouveau genre.

Comment faire ? Quelles prochaines Ă©tapes ?

La disruption d’un modĂšle existant est le fruit d’une ou plusieurs inventions technologiques qui permettent Ă  un groupe humain d’accĂ©der Ă  des choses qui lui Ă©taient jusque-lĂ  impossibles, et permet de rĂ©inventer leur processus en modifiant les chemins critiques.

Chez OCTO, nous croyons que l’innovation construit notre sociĂ©tĂ© et que les organisations sont en mesure de prĂ©sider Ă  leur destinĂ©e en menant elles-mĂȘmes ces transformations. Nous pensons que ces transformations sont la somme de projets innovants rĂ©alisĂ©s dans des conditions particuliĂšres pour prĂ©figurer du changement profond Ă  venir.

innovation-start-me-up-octo

Nous prĂ©conisons une approche « Emerging business organisation » adaptĂ©e de Garvin & Levesque, qui permet Ă  l’entreprise d’organiser ses activitĂ©s en trois catĂ©gories appelĂ©es « Horizons » :

  • Horizon 1 : celui des activitĂ©s actuelles, matures. C’est l’horizon le plus immĂ©diat qui reprĂ©sente la majeure partie du chiffre d’affaires de l’entreprise.
  • Horizon 2 : celui des nouvelles activitĂ©s en forte croissance. C’est l’horizon du moyen terme et l’enjeu est ici de gĂ©rer la croissance correctement.
  • Horizon 3 : celui des activitĂ©s Ă©mergentes, horizon entrepreneurial par excellence. L’horizon de temps n’est pas dĂ©fini et on ne sait pas quand l’investissement portera ses fruits.
yann_rouillard_blockchain Pour aller plus loin, l’Octogone de la Blockchain…octogone-blockchain

 

 

Articles suggested :

  1. Petit-dĂ©jeuner OCTO – L’agilitĂ© Ă  grande Ă©chelle : Retour d’experience avec Strator
  2. Petit-dĂ©jeuner : ITaaS ou l’infrastructure au service de ses projets – le mardi 8 dĂ©cembre
  3. Inside USI 2015 – compte-rendu des sessions

Catégories: Blog Société

Kodo Kojo : un projet open source pour gérer vos usines logicielles

logo-kodokojo-baseline-black

Le dĂ©but d’un projet – aka sprint 0 – nĂ©cessite inĂ©vitablement de passer par les mĂȘmes opĂ©rations, rĂ©pĂ©tĂ©es encore et toujours pour la mise en place de l’usine logicielle : paramĂ©trer le dĂ©pĂŽt de sources, l’intĂ©gration continue, le ou les registres, la qualimĂ©trie. Il faut alors encore ajouter les membres de l’équipe, gĂ©rer les droits, etc. Chaque brique demande une expertise particuliĂšre et parfois d’avoir recours Ă  la carte bleue de la sociĂ©tĂ© lorsque l’on utilise des services SaaS.
Les premiers essais ne sont pas optimaux et chaque mise en place est l’occasion d’amĂ©liorer le processus. Cependant, mĂȘme optimisĂ©, il n’existe pour le moment aucun moyen simple d’en faire un modĂšle qu’il serait en suite facile de rejouer Ă  chaque dĂ©but de projet
 Jusqu’à aujourd’hui !

Forts de nos expériences projet, et de notre connaissance de ces outils, nous avons développé une solution open source, Kodo Kojo, un concentré de bonnes pratiques, pour avoir une usine logicielle scalable et maintenable en trois clics.

Kodo Kojo to the rescue!

La version bĂȘta de Kodo Kojo (un mikado Ă  celui qui trouvera la signification) proposera une interface SaaS pour crĂ©er et manager ses projets et ses utilisateurs et offrira un accĂšs centralisĂ© Ă  un Gitlab, un Jenkins, un Nexus et un Docker Registry, instanciĂ©s et paramĂ©trĂ©s par projet. Ces briques de dĂ©part, nous les avons choisies pour leur soliditĂ© et leur maturitĂ©. Bien Ă©videmment, Kodo Kojo a Ă©tĂ© architecturĂ© dĂšs le dĂ©but pour ĂȘtre scalable, ouvert et extensible. Nous avons hĂąte de voir jusqu’oĂč nous pourrons dĂ©velopper ce projet avec vous et y intĂ©grer d’autres outils et faire grandir l’écosystĂšme.

La solution est en cours de crĂ©ation et les sources seront ouvertes trĂšs prochainement. Cependant nous aimerions dĂšs aujourd’hui Ă©tablir le contact et vous donner l’opportunitĂ© d’ĂȘtre les premiers utilisateurs, voire contributeurs !

Visitez la page de lancement du projet Kodo Kojo pour participer dĂšs Ă  prĂ©sent Ă  l’aventure.

Catégories: Blog Société

Retour d’expĂ©rience LesFurets.com le 22 mars

Blog d’Ippon Technologies - mer, 03/16/2016 - 15:58

BanniĂšre REX Les Furets

Ippon vous invite le mardi 22 mars, Ă  partir de 8h30,  pour la suite du temps fort Big Data autour d’un petit-dĂ©jeuner.

Développé par Eventbrite

LesFurets.com est un comparateur d’assurance (auto, moto, habitation, crĂ©dit, mutuelle santĂ©) et de crĂ©dit Ă  la consommation crĂ©e en 2009.

Ippon a le plaisir de recevoir LesFurets.com pour un retour d’expĂ©rience sur l’Ă©volution de leur site web vers une architecture lambda. En utilisant Cassandra pour la base runtime et Cassandra/Spark pour la BI, la nouvelle plate-forme offre des performances Ă©levĂ©es et un fonctionnement ininterrompu apte Ă  rĂ©pondre aux objectifs de croissance de LesFurets.com. Ippon a accompagnĂ© LesFurets.com sur la validation des choix d’architecture.

Speakers : Denis Rampnoux et Gilles Di Guglielmo

Informations pratiques :

22 mars 2016 Ă  partir de 8h30

47 avenue de la grande armĂ©e – 75116 Paris

MĂ©tro : Argentine

logo_temprs_fort_finalA

Catégories: Blog Société

Partagez la connaissance

Partagez BlogsdeDeveloppeurs.com sur les réseaux sociaux