Afin d'accompagner nos jeunes développeurs dans leurs premières missions au sein de notre Pépinière, nous avons mis en place une équipe de mentors, composée d'omniloguiens aguerris, qui mettent à disposition leur savoir-faire.

Clément, Guillaume et Emmanuel nous livrent leur retour d'expérience.

 

Quels sont les sujets techniques prioritaires que vous abordez avec les jeunes développeurs ?

Il y a un an, nous mettions en place notre Pépinière pour accueillir de jeunes développeurs, fraichement diplomés ou en cours de formation.

Le bilan positif de cette première année est l'occasion de présenter notre projet ! 

 

C’est quoi la pépinière ?

La pépinière est un dispositif mis en place chez Omnilog pour accompagner les jeunes développeurs, qu’ils soient alternants, stagiaires ou jeunes diplômés, dans leur début de parcours.

Formulaires modaux avec Vue.JS et Vuetify

NPM PRIVATE REGISTRY : VERDACCIO

1. C'est quoi un private registry npm ?

Dans le monde du développement informatique, on ne recrée pas la roue à chaque projet. On fait appel souvent à des librairies ou des groupe de librairies, que l'on appelle des packages.

En nodeJS, l'installation des packages sont gérés par des outils dont les plus populaires sont yarn et surtout NPM pour Node Package Manager.

Quels outils pour les rétrospectives ?

La rétrospective est un point de passage obligé et essentiel pour clôturer les sprints. Elle permet de prendre le temps d’analyser la dernière itération pour en faire ressortir les points positifs ainsi que ce qui a moins bien fonctionné et les idées permettant à l’équipe de progresser.

HTTP/3, pour vous servir (plus vite)

DOCTRINE

L’ORM Doctrine offre beaucoup plus de flexibilité qu’il n’y paraît.
Cet article vous présente plusieurs trucs et astuces très utiles de Doctrine: évènements et listeners, filtres, tracking policy, mais aussi des astuces sur des architectures possibles pour son code.

Deux nouveaux composants pour la version 4.3 de Symfony : MIME et Mailer

Pour la 10ème année de Symfony Live Fabien Potencier (@fabpot) | Twitter nous a présenté deux composants Mime & Mailer. Deux nouveaux composants pour la version 4.3 de Symfony ! Pull Request #30741 - Add the Mailer component

HttpClient, Mais pourquoi ?

En première instance, en voyant le titre, on se dit que ça ne sert à rien. Il existe déjà Guzzle, au pire on fait du curl.

Et c'est bien ça le problème. Dès que nous voulons appeler une API externe nous allons utiliser un bundle comme Guzzle. Notre code devient donc dépendant de Guzzle directement ainsi que de ses dépendances.

.NET Core

Alors que .NET Core 3.0 va sortir dans les prochaines semaines, (à l’heure où je vous parle il est encore en preview), faisons un retour rapide sur ce qu’il va nous apporter

Le cache par invalidation Késako ?

Le cache par invalidation est une technique qui permet de contrôler la mise à jour du cache en fonction des changements de contenus.

On utilise le terme “cache par invalidation” par opposition au “cache par expiration” qui consiste à mettre une durée de vie (Time To Live) sur les réponses.

NGINX / OpenResty, mise en place de la géolocalisation et exploitation avec des scripts LUA

Chez un de nos clients, nous avons un reverse proxy NGINX qui nous sert actuellement pour plusieurs usages :

Curator : un outil simple et gratuit pour la maintenance ElasticSearch

Curator est un outil développé en Python qui permet d’effectuer de la maintenance sur ElasticSearch. Si vous devez effectuer une tâche de façon périodique, telle que supprimer des index, ou lancer une réindexation, cet outil permet de sélectionner une liste d’indexes selon des filtres, puis d’appliquer l’action que vous avez configurée.

 

Migration d'une infrastructure complète dans le cloud AWS

Nous partageons dans cet article notre expérience sur le cloud AWS au sein du centre de service Omnilog à la FFF.

Nous y présenterons le projet et l'infrastructure cloud mise en place dans sa globalité.

 

 

 

Google Assistant au Google Developer Days 2017

Google Assistant aux Google Developer Days 2017.

 

Google Assistant a été présenté 2 fois pendant ces Developer Days, lors de la keynote et lors d’une session dédiée. Ce qu’ils attendent de l’intelligence artificielle : comprendre le contexte et les émotions.

On a eu le droit à une belle démo, presque bluffante.

Depuis novembre 2016 les sites Web sont d’avantage consultés depuis un smartphone ou une tablette que depuis un PC.

Google a participé à cette demande en forte progression en favorisant l’indexation des sites Web Responsives mais la firme de Mountain View n’en est pas restée là puisqu’elle a ensuite présenté les Progressive Web Apps (PWA), une solution technique à mi-chemin entre le site Web mobile et l’application native permettant d’améliorer les performances des sites Web ainsi que l’expérience utilisateur.

AWS Summit Paris 2017

"You built it, you run it !"

iPhone X

Retour sur la keynote d’Apple et son iPhone X

Ces dernières semaines il était impossible de passer à coté des nombreuses fuites concernant les nouveautés qu’Apple allait annoncer aujourd’hui, mardi 12 septembre, lors de sa conférence. Cette présentation était d’autant plus attendue que la firme de Cupertino fête ses 10 ans. Pour l’occasion nous attendions notamment l’annonce d’un smartphone un peu spécial. C’est désormais chose faite puisqu’Apple a présenté l’iPhone X (iPhone dix).

 

Quelles nouveautés avec Symfony 4 ? 

 

Introduction

Il y a deux ans, Fabien Potencier nous expliquait le nouveau fonctionnement de la roadmap symfony avec l'arrivée d'une version majeure de Symfony tous les 2 ans et 4 versions intermédiaires.

Symfony 4 est ainsi prévu pour Novembre 2017.

JSON Web Token - Sécurisez vos API

 

JWT JSON Web Token, qu'est-ce que c'est ?

JSON Web Token est un standard ouvert (RFC 7519) qui définit un moyen de transmettre de manière sécurisée des données entre serveurs & clients sous la forme d’un objet JSON. Le JWT peut être signé en utilisant un secret avec l'algorithme HMAC ou une partie de clés public / privé avec RSA.

SymfonyLive Paris 2017

Optimisations de performances avec PHP 7 par Julien Pauli

Julien Pauli, contributeur majeur de PHP et responsable releases, a fait la fermeture de la SymfonyLive avec un talk sur les optimisations de performances de PHP 7. Cette nouvelle version est le fruit d’une réécriture totale du code, comprenant la gestion des variables et du garbage collector, qui a permis le gain de performance de ~50% par rapport à PHP 5.6.

Choisir un langage pour un projet de publication vidéo

 

Introduction à la cryptographie 

Aujourd'hui, les sites web évoluent de plus en plus vers des applications web. Cela se traduit par une utilisation de plus en plus intensive de JavaScript et souvent l'utilisation d'une ou plusieurs librairies. Bien souvent, le code source des applications ne suffit pas pour pouvoir être exécuté. Il est nécessaire de passer par une étape de construction, "build", pour assembler les librairies et le code source en un seul bundle.

Il existe de nombreux "builder" pour accomplir cette tâche : Maven, Gradle, Grunt, ...

Aujourd'hui nous parlerons de : WebPack.

ECMAScript 2015, ES6 pour les intimes, est le dernier standard d'implémentation du langage javascript. Au menu, un paquet de nouvelles fonctionnalités qui veulent assurer au langage une pole position dans la course aux technos web.

Pourquoi l'utiliser ?

Le principal apport de l'ES6 n'est pas, en soi, une amélioration des performances du langage. Ce travail est laissé aux interpréteurs de javascript tels que V8 et SpikerMonkey.

 

695 682. C'est le nombre de bacheliers pour cette année. Autant de personnes pouvant consulter simultanément leurs résultats sur une application. Chez Studyrama, dans le cadre du développement de l'application permettant aux bacheliers de consulter les résultats, nous avons effectué des tests de montée en charge.

Tests de montée en charge, késako ?

Il s'agit de bombarder le site web de requêtes de façon à voir sa performance sur un très grand nombre d'utilisateurs simultanés et d'identifier les points critiques.

 

 

PHP – La chasse aux memory leaks

Dans le cadre du dernier Symfony Live qui s’est tenu à Paris, un talk était dédié à la gestion de la mémoire en PHP. Les objectifs du talk était d’expliquer les origines des surconsommations mémoires, de savoir les identifier et d’éviter d’en produire.

Avant de parler du sujet de cet article, je vous conseille la keynote de Fabien POTENCIER sur les dépôts monolithiques (que vous pouvez retrouver ici).

Jeremy Romey (alias jeremyFreeAgent) nous a ensuite parlé du composant Guard.

Rappel sur le fonctionnement de l’authentification sur Symfony (extrait de la présentation) :

Tout d’abord un retour d’Alain Tiemblo, Web Security Lead Developer chez BlaBlaCar.

Après une présentation des fondamentaux tels que le hachage de mot de passe, les attaques par force brute et la protection contre les injections de code (Cross-Site Scripting), Alain nous a présenté des problèmes de sécurité plus avancés :

 

Introduction

Peut-être en avez-vous entendu parler, Microsoft a récemment annoncé que bash, le fameux shell Unix, serait bientôt supporté par son système d’exploitation. Mais en attendant, Windows a déjà son propre shell – et non, je ne parle pas de MS-DOS !

Icescrum ?

Ne courez pas dans le Fast-Food le plus proche mais échauffez-vous en vue d’une petite séance d’agilité pour vous et votre équipe.

Si comme moi, l’agilité vous attire, mais que vous n’avez jamais sauté le pas,

Si votre conscience écologique (même petite) trouve tous ces post-it un peu de trop,

Si un ou plusieurs membres de votre équipe n’a pas du tout entendu parler d’agilité (ou pas voulu),

Cet outil de gestion de projet est parfait pour éviter les petits bobos des débuts du travail en souplesse.

OMNILOG s'invite à votre table

Lancé par Google en 2014, le Material Design a d’abord été utilisé sur Android, puis desktop par les applications principales de la firme.

Qu’est-ce que le Material Design ? C’est un ensemble de règles de design proposées par Google et qui s'appliquent à l'interface graphique des logiciels et applications. C’est une manière de penser son application.

Dans le cadre de notre projet Eurosport, nous effectuons actuellement une transformation de la base applicative de l'objective-c vers le Swift (2.1). Cela nous permet d'avoir un point de vue particulier sur l'apport du Swift à une application iOS.

Commençons par le commencement, GRADLE, c’est quoi ? C’est tout simplement l’outil officiel pour compiler vos applications. Il permet également de :

JAVA est mort, vive KOTLIN ! ;) 

Pourquoi ce titre ?

C’est un peu pour provoquer la communauté JAVA d’OMNILOG ! J’aime bien ça ;)

 

Qu’est-ce que SONATA ?

Sonata est un ensemble de bundles développés sous Symfony2 qui ont été créés dans le but d’aider au développement de sites e-commerce.

SONATA ADMIN :

C’est le premier bundle développé dans le cadre du projet Sonata. Il permet d’administrer facilement un site web dans son ensemble, de la gestion des utilisateurs, au contenu des pages.

Page d’accueil de l’admin :

 

Dans le cadre du développement de la version mobile de l’application de gestion des visiteurs de TF1, il a été nécessaire de créer une communication entre une application web hébergée sur le Cloud Azure et le système d’information hébergé sur l’infrastructure propriétaire de TF1. Le fait que l’infrastructure de TF1 soit protégée par des pare feu et repose sur un adressage réseau interne non visible de l’extérieur rend la mise en place de cette communication délicate.

Dans un contexte d’application REST, il est indispensable d’avoir une documentation de nos API claire et évolutive.
Notre première approche a été le bon vieux document Word, mais il s’est avéré que cette solution posait quelques problèmes de maintenabilité, de lisibilité et de mise à disposition de l’information. Nous sommes donc partis à la recherche de solutions alternatives.

 

Le choix

Il existe différentes solutions pour documenter les APIs :

La SymfonyLive a permis à Jérémy DERUSSE d'introduire Docker. Retour rapide sur cette solution Opensource.

 

Qu'est-ce que Docker ?

Docker est une solution Opensource sous licence Apache, proposée par la société américaine portant le même nom, lancée par le Français Solomon Hykes.

Docker permet d'embarquer une application dans un container virtuel qui peut être exécuté sur n'importe quel serveur. Il s'agit là de son premier but : migrer un container facilement dans le monde du cloud.

La version actuelle est la 1.6.

 

Logo

ReactJS, le framework Javascript de création de composants visuels de Facebook, est souvent présenté comme rapide, mais moins complet que d'autres frameworks existants. Il ne serait que le V du pattern Model-Vue-Contrôleur. Cette présentation ne permet toutefois pas de rendre compte de l'intérêt grandissant (?) pour ce framework.

Dans le cadre du projet Deal@Elle chez Lagardère (outil de suivi de ventes des espaces publicitaires), nous avons utilisé SignalR, une bibliothèque .NET destinée à la création de fonctionnalités temps-réel sur des applications. 

Le scénario typique d’utilisation de SignalR est de notifier tous les utilisateurs connectés en temps-réel. Dans le cas de Deal@Elle, il s’agit de signaler la mise à jour des espaces publicitaires.

 

Dans le cadre du projet EUROSPORT de refonte des applications iOS et Android nous avons effectué de nombreux tests fonctionnels sur ces deux environnements.

Notre objectif initial était d’automatiser les 700 tests du cahier de recette afin d’accélérer la phase de qualification des applications. Le second objectif était de pouvoir exécuter ces tests en environnement d’intégration continue afin d’éviter les régressions lors de la maintenance des applications.

Retour sur une présentation de  Jérôme Vieilledent / @jvieilledent et David Buchmann / @dbu du bundle FOSHttpCacheBundle présenté lors de la Symfony Live Paris 2015

Introduction

Vagrant est un outil qui permet de construire rapidement et simplement des environnements de développement. Il permet de déployer et de configurer des machines virtuelles en s'appuyant sur les logiciels de virtualisation existants (Virtualbox, Vmware, AWS, ….).

Vagrant permet aussi de personnaliser chaque instance de machine virtuelle à l'aide d'un système de provisionning (exécution de commandes shell, chef, puppet, …) exécuté lors du premier démarrage de la machine virtuelle.

Vagrant peut s'exécuter sur tous les systèmes d'exploitation existants.

 

RabbitMQ est une solution de middleware orienté messages. Un middleware est un logiciel permettant de créer un réseau d'échange d'informations entre applications.

RabbitMQ implémente le protocole AMQP (http://fr.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol) pour gérer la transmission des messages.

La vitesse de chargement des pages est un élément essentiel pour le ressenti utilisateur mais également pour favoriser le référencement naturel par Google (1) (2). Cette vitesse de chargement dépend bien entendu de la performance du site web mais elle dépend également de la structuration des pages.

L’import de données est un élément souvent central et complexe dans le cadre des projets informatiques. Par exemple chez Téléshopping, un ERP contient les quelques milliers de produits qui seront vendus via le catalogue, le téléphone ou le site internet. Pour le site internet fonctionnant avec Magento, il est donc nécessaire de communiquer quotidiennement avec cet ERP pour importer ces produits.

Ce travail n’est pas trivial car il faut composer avec beaucoup de contraintes techniques :

Selenium est un outil qui permet de tester l’interface utilisateur des sites web.

Selenium est disponible sous la forme d’une extension Firefox appelée « Selenium IDE ».

Cette extension permet de manière interactive :

Node.js et AngularJS : embarquez sur le grand 8 du MONDE

Dans le cadre du projet WeTrak, boitiers antivol automobiles ou motos commercialisés par Identicar, nous recevons et traitons les informations issues des boitiers embarqués afin de localiser les véhicules en cas de vol.

Pour la nouvelle version de l’appli mobile FFF « Le foot amateur », une fonctionnalité de notification a été demandée pour vous prévenir  24h avant le début du match que votre équipe favorite jouera.

OMNILOG a développé la partie Backend.

 

Pour gérer ces notifications mobiles, le choix s’est porté sur une solution MS Azure.

Les avantages de cette solution sont multiples :

L’analyse des logs de production peut parfois être un véritable défi en raison du très fort volume généré par les architectures à fort trafic. Ainsi l’architecture mise en œuvre pour www.lemonde.fr génère des millions de lignes de logs quotidiens répartis sur une dizaine de serveurs.

Voici un retour d’expérience à propos d’une optimisation SQL réalisée sur le projet SIMBA où en modifiant la syntaxe de déclaration d'une fonction, nous avons divisé le temps d’exécution par 6…

Voici la syntaxe initiale de la fonction : Multi-Statement Table-Valued Functions (MTVF)

Et voici la syntaxe optimisée : la version Inline Table-Valued Functions (ITVF)

CRITEO, la pépite française qui monte, fait confiance à OMNILOG

AngularJS est un Framework JavaScript développé par les équipes Google. Il est particulièrement adapté à la réalisation d’application mono-pages (Single Page Application en anglais) car permet de mieux structurer le code JavaScript et surtout de gérer de manière automatique le binding entre la vue HTML et les variables JavaScript. Plus besoin de manipuler le DOM comme avec les Framework traditionnels.

Un exemple très simple :

Les programmes et services de Canal + tout le temps, partout !
OMNILOG accompagne TF1 sur son application critique
Canal + : Une demande vidéos en pleine croissance
COFACE : L'information au cœur des enjeux
OMNILOG accompagne CRITEO, la start-up française qui monte
Eurosport Player sur Android : Toujours plus de live
Canal + : Des programmes sur mesure
Groupe Lagardère : Des contrats publicitaires en un clic
iPhone / Android : L’Espace Client Bouygues Telecom à portée de main.
L'application antenne de TF1 à l'ère du Responsive Design
Android : L'application ARTE permet de voir et revoir les programmes TV de la chaîne franco-allemande