Les artisans codeurs chez OCTO

Chez OCTO, nous considérons que le partage du savoir et des bonnes pratiques est un élément essentiel à l’épanouissement professionnel de chacun. Autrement dit, c’est sympa d’être une « Great Place to Work », mais c’est encore mieux d’être « Best Place to Grow ». Dans la continuité de « Partageons ce qui nous départage », nous souhaitons diffuser régulièrement à l’extérieur d’OCTO les pratiques qui nous permettent de nous améliorer au quotidien.

Si les BOFs constituent l’événement principal pour partager nos retours d’expérience, on voit aussi régulièrement des OCTOs investir une salle de réunion durant la pause de midi pour aborder leur(s) sujet(s) de prédilection, dans le cadre d’un BBL, ou Brown Bag Lunch.

Je vous propose donc un retour sur notre BBL des Artisans Codeurs, qui nous réunit régulièrement sur le thème du mouvement Software Craftsmanship. Ce mouvement vise notamment à remettre en valeur le métier de développeur : nous pensons qu’être développeur est une carrière aussi prestigieuse que celle de chef de projet ou de consultant, et que le développement de logiciel est une activité complexe pour laquelle la qualité n’est pas négociable.

Afin de partager ces valeurs et de permettre  aux plus jeunes (et pas que les plus jeunes !) de progresser, il faut donner les moyens de faire cet apprentissage permanent.

Lire la suite

Bases de données graphes : un tour d’horizon

Dans un précédent article, nous avons introduit quelques concepts à propos des graphes, et les avons illustrés par deux exemples en utilisant la base de données graphe Neo4j.
Au cours de ces dernières années, de nombreuses compagnies ont développé leur solution de base de données graphe, en tant qu’éditeur comme Neo Technology avec Neo4j, Objectivity avec InfiniteGraph ou encore Sparsity avec dex*, ou en développant leur propre solution pour l’intégrer à leur application, comme LinkedIn ou Twitter.
Il est donc assez difficile de s’y retrouver dans ce paysage riche, qui continue à évoluer très vite.
Dans ce nouvel article qui se focalise sur les bases de données graphes, nous donnerons les éléments nécessaires à la compréhension de leur positionnement dans leur écosystème, par rapport aux autres types de base de données et aux autres types d’outils dédiés au traitement de graphes.
Plus précisément, nous essaierons de répondre à une question importante, à savoir quand utiliser une base de données graphes et quand ne pas en utiliser, ce qui n’est pas forcément évident.

Lire la suite

Introduction aux graphes avec Neo4j et Gephi

Les solutions permettant de modéliser, stocker et parcourir de façon efficiente des graphes ont profité de plusieurs éléments qui les ont rendues populaires ces dernières années.

Le premier élément aidant à leur démocratisation est l’explosion des réseaux sociaux. Un cas d’usage évident, facile à comprendre même  si, étrangement, les solutions mises en œuvre ne sont pas forcément de « type graphe » (par exemple avec FlockDB chez Twitter).

Le second est lié au mouvement NoSQL qui a aidé à diffuser l’idée que la base relationnelle n’est pas la seule solution de stockage et de requêtage.

Enfin, et même si la théorie des graphes n’est pas neuve, les algorithmes sous-jacents et certaines implémentations ont atteint un niveau de maturité permettant la « commoditisation » de ces technologies, les aidant du même coup à sortir de zones très spécifiques.

Alors qu’est-ce qu’un graphe? A quoi cela peut-il bien servir? Et finalement comment travaille-t-on avec  en termes d’API et  de solution ?

A travers deux exemples simples, voici une introduction aux graphes, leur stockage et leur analyse, en utilisant Neo4j, une base de données graphe, et Gephi, un outil open-source de visualisation et d’analyse de graphe.

Lire la suite

Les grandes tendances de Devoxx 2011

La plus grand conférence de la communauté Java avec JavaOne a eu lieu à Anvers en Belgique au mois de Novembre. Cette année, les thèmes principaux de Devoxx étaient (sans ordre particulier):

  • Le futur de Java
  • Les langages alternatifs sur la JVM
  • HTML5
  • JavaFX
  • Android
  • Un peu de Cloud, de NoSQL et d’architecture haute performance

Nous avons aussi eu droit à une grande annonce pour une nouvelle conférence qui démarre en 2012 : Devoxx France!

Bien sûr, OCTO était sur place. Dans cet article, nous ne couvrirons pas toute la conférence en détail, de nombreux blogs l’ont déjà très bien fait. Nous allons néanmoins vous résumer les grandes tendances de cette édition et vous donner nos impressions à froid.

La suite de cet article en anglais, international oblige! Lire la suite…

Vers des API haut niveau pour Java et NoSQL avec Spring Data

A l’heure où les nouvelles technologies de stockage de données regroupées sous les termes NoSQL et Distributed Data Grid deviennent populaires, il est intéressant de suivre l’évolution de cet écosystème et notamment des librairies d’intégration avec ces outils.
Des librairies apportant un certain niveau d’abstraction émergent, avec l’espoir de voir apparaître des solutions de haut niveau comparables aux ORM que nous utilisons pour les bases relationnelles. Nous allons nous intéresser aujourd’hui au projet Spring Data, qui propose une certaine unification pour les accès aux bases de données dites NoSQL. Lire la suite

Les perspectives des CDN en mode Pay as you go

Les services de réseau de diffusion de contenu, ou Content Delivery Network (CDN), adressent des problématiques liées à l’optimisation des performances du web, que ce soit en terme de scalabilité ou de haute disponibilité.

Une présentation des solutions de CDN vient d’avoir lieu chez Octo dans le cadre du WebPerf User Group France. En parallèle, voici un petit retour suite à une étude menée sur le sujet, abordée dans l’optique d’avoir une solution à moindre coût notamment pour ressources d’une application iPhone.

Avec la démocratisation des moyens de diffusion d’information instantanés, allant de Facebook à Twitter, on assiste régulièrement au phénomène de buzz. Le phénomène existe depuis des années déjà et rejoint les problématiques rencontrées par tout site web qui connait un gain soudain de popularité. Celui-ci est encore plus vrai avec les applications pour smartphones : en moyenne, un mois après l’installation, seulement 15% des applications iPhone téléchargées sont encore utilisées : il est difficile de prévoir à l’avance le nombre de téléchargements et d’utilisateurs simultanés.

D’un point de vue technique, ce phénomène soulève plusieurs questions:

  • Comment répondre à cette montée en charge imprévisible?
  • Et si l’application proposée a un succès franc et durable, comment garantir des performances correctes pour tous les utilisateurs, quelle que soit leur localisation?
  • Les entreprises ne sont pas forcément prêtes à investir dans des serveurs et/ou des hébergements dédiés supportant ces pics de fréquentation : comment pallier à ces problématiques rapidement et à moindre coût?

Depuis plusieurs années, les CDN offrent des réponses intéressantes en termes de performances pour la distribution de ressources statiques. Ces solutions sont largement utilisées par des acteurs tels que Youtube, Allociné, ou encore par des sites de presse tels que Le Parisien.

La nouveauté est que certaines de ces solutions deviennent aujourd’hui accessibles même pour des petites structures grâce à une facturation entièrement basée sur la consommation.

Lire la suite