Mon premier mois de coaching intensif en ligne !

Il y a quelques mois, accompagnée d’une solide envie de me remettre en question par rapport à ma confiance en moi, j’ai décidé d’entreprendre des démarches régulières.

La première a été de recourir à la kinesiologie pour enlever les blocages énergétiques que mon corps aurait stockés.

La deuxième est de prendre rendez-vous régulièrement avec un coach pour faire un point régulier individuel.

La troisième, s’est faite un peu par hasard en tombant sur la page Facebook de Franck Nicolas. Ce qu’il disait dans ses capsules me parlait. Au fur et à mesure que je le suivais, j’ai décidé d’entreprendre un an de cursus à SPARK, pour révéler en moi l’étincelle du leader qui se cache.

Avant de commencer ce programme, j’ai entrepris de faire un premier point vidéo :

Le premier mois s’est donc écoulé, avec le module 1, qui porte sur la clarté : « Savoir se connaitre et garder le focus », avec des conseils de coaching, des conseils nutritionnels et énergétiques, ainsi que des cursus d’entrepreneurs.

Après ce mois, je fais un deuxième bilan, que je vous laisse découvrir.

A savoir a fait deux mois que j’ai intégré une nouvelle structure. J’ai envie de tout donner pour cette nouvelle opportunité, et montrer peu à peu aux gens quel est mon « moi authentique », inhibé ces dernières années. La confiance en soi s’acquiert, elle n’est pas innée !

A ce jour, j’attends une réponse également pour un projet qui me tient à cœur. Je croise les doigts car ce sera une première si la réponse est positive !

 

Retour sur le Symfony Live Paris 2016 – Day 2

Voici le résumé des conférences données le deuxième jour de ce séminaire Symfoniste, qui évangélise de plus en plus d’adeptes (moi en particulier 🙂 ) …

  • PSR-6 & Symfony Cache : de la perf en standard (Nicolas Grekas) : Cette conf intéressante nous explique l’intérêt de PHP-FIG, où sont soumis et approuvés des standards de code PHP, préfixés PSR (Quand je code moi par exemple, je respecte au maximum la norme PSR-3, validée par mes outils d’intégration continue.). Pour PSR-6 (Caching Interface),  le premier draft a été soumis en septembre 2013, le final en décembre 2015. Il définit deux objectifs : ouvrir des besoins de base nécessaires à la mise en cache, et permettre de faire mieux. Il « succède » un peu à Doctrine Cache. On retrouve cette PSR dans : psr/cache-implementation sur Packagist (Composer), Statsh PHP, PHP Cache et Symfony Cache. Symfony Cache n’est pas l’implémentation la plus puissante, elle est strict PSR-6, et suite les processus et standards de qualité Symfony. Il y a juste le minimum pour faire ce qu’il faut et aller vite.
  • Aller plus loin avec Doctrine2 (André Tapia) : Dans Doctrine, on a des fonctions assez méconnues (IfNull comme en SQL IF NULL), il existe également des DoctrineExtensions pour méthodes personnalisées, et des LifeCycleCallbacks (prePersist/postPersist, preUpdate/postUpdate, loadClassMetadata etc …). On peut faire également appel à des requêtes « partial », qui permettent d’obtenir un objet, pas un tableau (Query::HYDRATE_OBJECT, Query::HYDRATE_ARRAY, Query::HYDRATE_SCALAR, Query::SINGLE_SCALAR).
  • Refondre un moteur de règles avec l’expression langage de symfony2 (Abbas Hussein) : Pour la refonte, imposer un moteur de règle pour pouvoir : analyser des centaines de dates, déclencher un traitement statique, ou scorer une transaction (livraison : Go ou NoGO ?). Le but est de permettre de coder plus vite. A celà s’imposent des problématiques techniques : la fameuse datte technique, il faut construire à chaque fois le même projet, ou utiliser des petits projets OpenSource. Parmi eux, des problèmes métiers : les régles demandées par le métier sont de plus en plus complexes et les métiers écrivaient du JSON dans la BDD ! La meilleure des solutions doit donc : répondre aux besoins, être validée par les métiers, et extensible.
  • Sécurité et HTTP (Romain Neutron) : Voici quelques HTTP-Headers plutôt utiles en matière de protection :
    • X-XSS-Protection : protéger contre les attaques de type « Boutin ». Activé = 1. mode=block.
    • X-Content-Type-Options : prévient le comportement d’un navigateur. Supporté par ie et chrome. « nosniff » seule valeur supportée (désactiver).
    • X-Frame-Options : gestion du framing du site web.
    • Strict-Transport-Security : RFC-7697 Force le HTTPS. Supporté par Crome, IE11, Safari et Firefox. Bloque l’accès si certificat invalide fourni. Valide à la première connection, mais peut être préloadé.
    • Content-Security-Policy : vient du web 2.0. Prévient les XSS. Déclare des directives sur ce qui peut être exécuté sur le site web.Directives : default-src, script-src, style-src, object-src, img-src, media-src, frame-src, font-src, connect-src. Attention : certains scripts jQuery ne vont plus marcher si derective unsafe-eval et unsafe-inline !

Ma conclusion sur l’évènementiel le Symfony Live regroupe des thématiques plutôt variées (Sécurité, Cloud, Doctrine) … L’investissement est rentable, les stands attractifs. Mon seul regret est de ne pas avoir participé au Symfony Con qui se déroulait à Paris en décembre dernier, pour les dix ans de Symfony. Je pense bien renouveller l’expérience l’année prochaine, surtout si je gagne des concours qui me ramèneront plein de goodies (Casquette, Tshirt, ElePHPant Symfony, bonbons, macarons, et livre sur Blackfire.io dédicacé par Fabien Potencier).

Du coup j’ai gagné un badge, hop :

Retour sur le Symfony Live Paris 2016 – Day 1

Et voilà, je commence à devenir Symfoniste.

J’avais déjà un peu touché Symfony il y a quelques années puis je me suis tournée et je me suis expertisée en Zend Framework. Cependant il faut voir, Symfony déjà est un produit français, très sollicité en entreprise, et derrière regroupe une communauté vivante et très contributive (il suffit de voir l’espace « Connect » de Sensio pour s’en rendre compte), ce qui est beaucoup plus sympa que le cas de ZF. Donc je me suis tournée naturellement vers ce framework je que ne connais que peu en fin de compte.

Pour commencer, j’ai fait une virée de deux jours dans les locaux de Sensiolabs pour faire une formation sur la gestion des composants et Drupal. Puis le grand évènementiel a lieu : deux jours à la Cité Internationale Universitaire de Paris. Les stands y sont très sympas et remplis de goodies (j’ai eu l’occasion de gagner un Lego Star Wars et de participer au concours de la bonbonnière – que j’ai remporté !).

Le contenu des conférences est alléchant :

  • Monoltith repositories with Git (Fabien Potencier) : faire du pluri-repo, c’est bien. Le code isolé peut être réutilisé, on a des repositories de petite taille, les frontières sont claires, le contrôle d’accès facile, ça simplifie l’intégration continue. Mais on peut utiliser efficacement un repo monolitique et plusieurs petits repo. Du coup, le subtree ça change la vie ! http://www.git-attitude.fr/2015/01/30/git-subtrees/
  • Guard dans la vraie vie (jeremyFreeAgent) : Guard est un nouveau composant « security » de Symfony. Il facilite l’authentification dans un code qui peut être complexe. La librairie continent une interface, GuardAuthenticatorInterface, qui permet d’utiliser les composant d’une authentification (gestion du Token, succès de l’authentication, traitement de la « response », cookie pour le « remember_me » etc …). Ensuite, un cas pratique avec trois sites qui utilisent trois systèmes d’authentification différents (mot de passe, numéro de téléphone) nous est proposé. Au final l’outil se révèle très puissant, et demande moins de dépendances vers d’autres bundles.
  • R2D2 to BB8 (Vincent Chalamont) : Un titre plus parlant serait « Refonte du site lafourchette.com ». A savoir que le site est au départ une grosse machine qui implique : plus de 12 pays, 32000 restaurants, 350000 réservations par mois, et plus de 70 développeurs derrière. Le « Fork Manager V2 » doit pouvoir gérer : les réservations, le contenu, le marketing & CRM, les stats et les plans de salle, tout en sachant en ce qui concerne la V1, que la « dette technique » (quand le site de départ est une usine à gaz avec du ode spaghetti derrière, en gros) est conséquente, les mises à jours sont difficiles, les fonctionnalités obsolètes et non ergonomiques, et qu’il y a des projets interdépendants. Les solutions envisagées ont donc été : création d’une API, la mise en place d’une migration continue,  un LegacyBundle, des loaders et des transformers.
  • PHP Meminfo ou la chasse aux memory leak (Benoit Jacquemont) : Jeune programmeur, attention aux effets dévastateurs d’une fuite de mémoire ! Moins de mémoire pour les autres programmes, perfs qui chutent, et processus qui n’arriveront jamais à terme ! Le système basique de cache de PHP permet toutefois un ménage : au bout de 10000 objets, le garbage_collector s’éxécute, et son activité peut être mesurée par une appli, « Visual VM », mais attention aux processus du garbage_collector, qui baissent les performances. Il faut donc pour cela fixer les fuites de mémoire. Good practices : monitorer les processus, éviter les services « stateful », utiliser une mémoire limite raisonnable, et garder un nombre raisonnable d’objets en mémoire.
  • Retour d’expérience Reactive Architecture et Microservices : Comment découpler mes applications ? (Fabien Meurillon) : Retour sur des migrations de back-office, cette fois chez Auchan. L’utilité d’utiliser des micros-services : un composant applicatif (package Composer), un domaine métier (Domaine Driven Design), et probablement moins de 5 agrégats exposés sur l’API. Les applications doivent être responsives, les services résilients, scalables. Il faut gérer les grosses charges. Restent à mettre en place : le mono-repository, exploiter la bulle d’échange, gérer la propagation de l’information, automatiser les déploiement, et surtout évangéliser les gens 🙂 …
  • Performance au quotidien dans un environnement SF (Xavier Lejeune) : La performance à un cout … dans notre cas on chiffre à : 100 euros si le bug est détecté pendant le dev, 1500 si il l’est pendant la recette, 1500 si il l’est en prod. La pattern Data Mapper a donc été choisi, Active Record a été rejeté, pas d’abstraction en programmation. TING a été choisi à la place de doctrine, le cache privé et public a été obtenu. Attention, Composer install génère un cache !

Crédit photo de une : Sensio Labs. Une Amelaye s’y trouve dedans, vous pouvez l’y chercher.