Retour aux sources (ou comment mon cœur n’a jamais oublié la photographie argentique)

Quand j’étais petite (un temps que les moins de 20 ans ne peuvent pas connaitre 😉 ), la photo représentait une certaine magie. Voir ma mère arriver avec son Agfamatic (oui le format 110, vous savez, les photos au format timbre-poste), et savoir que par certains sortilèges, ça faisait au bout du compte … des images (pour un enfant on comprend que c’est beau comme concept).

A dix ans, mon cadeau d’anniversaire a été mon premier appareil photo. Il ne payait pas de mine, ce Konica EFP-J mais il a été pendant des années mon joujou préféré. Que dire de mon excitation profonde, quand la pellicule était achevée, lors de ma visite chez le photographe : « elles seront prêtes demain ! ». Et là, j’attendais, fébrile, le moment où j’ouvrirais la pochette.

Les années ont passé et je suis montée en gamme, passant du bridge au reflex. Et puis 2007 est arrivé. L’année où on se rend compte que les photographes se raréfient et que vos copains vous font sentir, que voilà, on est dans les années 2000 et il faut bien se mettre au goût du jour. Fini les investissement coûteux, les allers-retour au photographe. Et vive la photo instantanée, celle qui s’affiche de suite après la prise de vue.

Du coup j’avais mis de coté l’idée d’avoir un labo photo chez moi.

Mais c’était sans compter une bande de rebelles aguerris qui partageait cet avis. La photo en argentique, celle avec la pellicule qu’on doit faire développer, c’est autre chose. C’est la raison même de la photo, le procédé chimique originel à base de sels d’argent (d’où le qualificatif d’argentique) qu’on soumet à divers traitements chimiques, un grain, un rendu incomparable à cette image trop parfaite que rend nos capteurs numériques. Désolée pour les écolos-babas que cette phrase a choqué.

Car oui, il y a peu j’ai fait une session urbex avec mon vieux reflex argentique (un Minolta des années 90 qui est devenu trop automatisé à mon gout, au moins mon passage dans le numérique aura servi à cet apprentissage) …

Image volontairement mise en « positif » pour donner une idée des photos

Et oui j’ai pu ressentir cette vieille jubilation, cette émotion du passé en mieux : j’ai développé la pellicule moi-même, à la suite d’un stage qui vise à me préparer à tout faire dans mon labo à moi. Il ne me reste plus qu’à cette étape à tirer les images et je pense continuer dans cette lancée.

Abandonner le numérique ? je ne pense pas en venir à cette extrême mais je pense que les pellicules vont revenir dare-dare dans mon sac photo 🙂 .

2016. The end.

Jusqu’à peu, j’étais plutôt de ces gens qui se languissent de la nouvelle année, considérant celle qui va s’écouler comme un année si insignifiante avec son lot de frustrations. « Bon alors, elle a pas bientôt fini cette mauvaise année ? ».

Pourtant, cette année-là, elle était différente des autres.

Ou peut-être étais-je devenue différente ?

2016 a été une année spéciale, pleine de challenges que je m’étais décider à relever. Il y en a deux que je n’ai pas pu accomplir : le premier, la guitare. Je n’avais plus autant de temps le soir pour travailler mon instrument, compte tenu que j’étais inscrite à Spark et que ça remplissait bien mes journées. Je veillais donc à me fixer 3 grosses pierres, voire 4 mais pas plus qui comptaient le plus dans mes semaines : mon travail chez Digitick, ma nouvelle copine (on vient de fêter notre cinquième mois), mon projet AD Urbex et Spark. Le reste (l’allemand, les certifications …) étaient du bonus. J’ai aussi raté ma certification MySQL qui demandait une certaine expertise. Mais le voyage valait le coup. Si je ne m’étais pas donné ce challenge, je ne saurais rien des transactions, des vues, et autres optimisations de bases de données. Puis dans les quatre que j’ai passées cette année (PHP, ZF2, MySQL et TOEIC) c’est la seule que je n’ai pas pu obtenir.

2016, c’est ainsi l’année de la prise de confiance en moi. A travers la réussite de plusieurs certifications qui ont su me démonter ma vraie valeur, table rase d’un passé de doutes. Et il y a eu aussi Spark, où je suis partie à ma découverte, où j’ai appris des technique de gestion de peurs et d’émotions. Où j’ai appris à positiver sur ma vie. Où j’ai compris que les obstacles permettaient d’appendre. J’ai aussi compris que mon corps méritait le respect : une alimentation saine, faire du sport, boire beaucoup d’eau, éviter les sucres. Et croyez moi, je me sens bien plus jeune qu’il y a dix ans, quand on dit que 20 ans c’est le plus bel âge de la vie, pas toujours …

2016 a été également une année de renouveau. J’ai pu faire des rencontres professionnelles enrichissantes, et le destin m’a portée sur un entretien d’embauche réussi au sein de l’entreprise Digitick. Depuis des années que j’attendais d’avoir ce genre d’opportunités … elle a fini par se présenter. Et croyez-moi ça change des petites boites qui finissent par mettre la clé sous la porte !

2016, ça a été la fin et le deuil d’une relation pas top et le début d’une nouvelle, basée sur la découverte, le partage, le respect et l’enrichissement.
2016, pour terminer a été également la retrouvaille de la vraie passion de la photo, et la sortie de mon livre.

2017 sera la continuité de ce premier travail. La fin de Spark où se soldera la fin de ce long travail sur moi même. Je vais également bien peaufiner mes compétences en photographie, et revenir sur l’argentique. Il y aura d’autres certifications (mais deux ça suffit) : Symfony2 et également niveau A en Allemand. Puis je prendrai soin de mes amours, qui se construisent petit à petit. Puis plein d’autres choses 😉

Photo du jour : la super-lune cachée un soir de novembre.

Amelaye vous salue bien.

 

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.

 

Scotland, ho Scotland !

Avant j’avais des préjugés sur l’Écosse, j’imaginais la campagne marécageuse baignant dans son brouillard, avec un type en kilt jouant de la cornemuse au sommet d’une montagne. Puis quand certains amis y sont allés, la tête plein de bons souvenirs, et leur Facebook pleins de belles images, je me suis dit « pourquoi pas ».

Parce que l’Écosse ce n’est pas que ça.

IMG_7332
Whishing your wishes came true …

Ce que j’ai aimé en Écosse :

  • Leur esprit chauvin et leur attachement à leur terre, la nature
  • Les châteaux et légendes qui ne faillissent pas à leur réputation (à Édimbourg, les kiosques servent à servir des « Ghost Tours », des « Murderers Tours », des « Harry Potter Tours » et j’en passe)
  • Le haggis (estomacs sensibles s’abstenir). Parce que l’idée de manger de la panse de brebis farcie peut rebuter, mais ça doit se gouter au moins une fois dans sa vie
  • Le saumon fumé à haute doses et à prix réduit (le saumon est en Écosse ce que le vin de France représente chez eux)
  • Portree, petit port tellement mignon
  • Les costumes traditionnels
  • Les Highlands, des paysages qui vous coupent le souffle …
  • Le sentiment de sécurité dans la Vieille Ville d’Édimbourg, et ce à toute heure
  • Écouter les Edimbourgeois parler de l’expression française « gare à l’eau » qu’ils prononcent « gardalouuuuu »
  • Le château d’Eilean Donan <3
  • Le pipebag-rock : comment les Écossais allient le contemporain et le traditionnel

  • Les petits pubs dans les petites traverses, pas bondés, à l’ambiance tellement familiale

Le moment de solitude :

  • Même peu familiarisée à écouter de l’anglais (même si j’ai préparé il y a quelques mois le TOEIC), j’arrive à comprendre ce que l’on me dit si je me concentre. Toutefois on a ce sentiment proche du sudiste qui débarque chez les Ch’tis : « Oh pétard c’est ça l’accent écossais ???!!! ». Oui l’accent écossais est une œuvre de Satan : les syllabes sont avalées, les R roulés. Comme référence, écoutez la voix originale de Willie le jardinier, mais en VO. Voilà. L’accent écossais c’est ça.

La petite liste de mes envies

Une fois n’est pas coutume, je vais laisser le PHP de côté (je vais quand même en parler un tout petit peu).

Ceux qui me connaissent savent quel boost dans ma vie je suis en train de prendre en ce moment. La vie connait parfois ses petits ralentissements, et remises en questions, causées par les difficultés. Le premier pas est de s’en rendre compte, cesser de s’apitoyer sur son sort, et se donner les coups de pied au derrière qui vont.

Il y a quelques années de ça, sur une échelle de dix années on va dire, j’avais fait des projets. Tout plein, et des chouettes. Qui n’ont pas abouti parce que je me trouvais des excuses pour ne pas les concrétiser. Cela donnait lieu à des regrets, des émotions négatives … mais je ne faisais jamais rien pour changer cet état de fait. C’est tellement facile de jouer les Caliméro, n’est-ce pas ?

Puis un jour, les choses vont mieux. Ou disons plutôt, on a fait le cheminement intérieur tout zen et positif, pour aller mieux. Personnellement, je me dis que je suis en train de m’upgrader, amelaye 2.0 est en cours 😉 …

L’an dernier, je m’étais dit : « Tiens c’est dommage, j’ai toujours eu envie d’apprendre l’allemand, je ne l’ai jamais fait, et si je m’y mettais ?  » . J’ai cherché une solution sympa, fouillé sur le web, trouvé Babbel.com, et depuis, je progresse de jour en jour, à mon rythme ponctué par le travail ou les autres projets. Verdict : c’est super gratifiant.

En début d’année, j’ai pris la décision de faire une liste de choses que je n’avais jamais faites, et qu’il fallait que je fasse, par défi personnel. J’avais acheté un livre pour passer le TOEFL, en 2007, soit il y a plus de dix ans. Je ne suis plus dans le cursus universitaire depuis longtemps, mais j’ai eu envie du challenge « certification d’anglais ». Histoire de réviser certaines choses que j’aurais pu perdre depuis la fac, et évaluer mon niveau. C’est la première des choses que j’ai voulu mettre sur ma liste, avec la fameuse certification PHP.

Dans l’ordre, j’ai eu :

– Passer la certification ZCPE (réussi)
– Passer le TOEIC (réussi, niveau C1)
– Passer le ZFCA (Certification Zend Framework) (programmé)
– Passer la certification MySQL
– Peaufiner mes compétences en Symfony (en cours, mais une bonne partie est faite)
– Faire un livre avec mes plus jolies photos urbex
(en cours)
– Apprendre la guitare (la mienne me fait pitié à trainer dans son coin depuis 2009) (trouvé un chouette site de cours en ligne super ludique hguitare.com, je peux dire que cette tâche est en cours)
– Apprendre à nager (ça arrive, non je ne sais pas du tout nager, jamais eu l’occasion d’apprendre, dispensée de sport en pleine adolescence, je rêve en secret d’avoir la grâce de Laure Manaudou … hum …) (en cours)

Forcément, dresser une liste comme ça c’est facile, il faut corser le tout en se donnant une limite de temps. La totalité de ces souhaits se devra être exaucée avant la fin de l’année 2016.

Ce qui est jouable, c’est se donner des challenges pour lesquels on sait qu’on va avoir des résultats concrets. Par exemple, je me vois mal m’inscrire à une certification d’Allemand et viser le niveau C1 cette année, alors que je suis en train de terminer le niveau A2. Il faut être honnête avec soi, évaluer ce qu’on sait faire, ce qu’on ne sait pas encore faire, et continuer pendant une année entière de se donner des coups de pied bien placés pour se tenir à la concrétisation de ces idées, sans papillonner ni procrastiner. Il faut aussi, si vous voulez apprendre un concept, savoir COMMENT vous aimez apprendre. Préférez-vous apprendre par des livres ? par Internet ? Ou avez-vous l’opportunité de prendre des cours du soir, si vous préférez l’échange entre humains ? Je sais par exemple que je préfère être autodidacte, chercher l’info, et les sites avec plein de gadgets comme des rewards à chaque visite 🙂
Donc voilà j’espère que ce billet d’humeur vous permettra de faire vous aussi votre petite liste personnelle 🙂 Tout en réalisant la mienne, je prépare déjà mentalement celle de 2017 😉

 

Retour d’expérience sur la certification ZCPE …

A la base, j’ignorais que ce genre de certifications existait jusqu’à peu, lorsque je suis allée fouiner sur le site de Zend, pour regarder ce que l’entreprise offrait en termes de formation Zend Framework 2 (parce que même si ça se casse la figure par rapport à Symfony, ça reste quand même un système assez badass …). Entre autres Zend propose une certification Zend Certified PHP Engineer.

Et là, je me suis dit … pourquoi pas ? Parce que. Parce que déjà ça me conforterait dans mon moi profond sur mes compétences PHP. Parce que ça me ferait un plus sur mon CV.

Alors comment ça se passe de prime abord ?

Déjà, il faut acheter un voucher sur le site de Zend (170 euros à peu près). Une fois votre emplette terminée, vous allez ensuite repérer un centre « Pearson Vue » où passer l’examen et choisir un créneau horaire. J’ai passé ma session à Aix-les-Milles.

Et ensuite, il n’y a pas de secret (très bateau ce que je dis là, pas grave) : il faut réviser, bachoter, potasser la doc de PHP. Il faut savoir le programme spécifié sur le bout des doigts. Vous pouvez acheter le petit guide proposé sur le site de Zend, il ne coûte qu’une vingtaine d’euros et il fournit un bon syllabus. En un peu plus d’un mois – deux mois de préparation, en travaillant à côté, ça peut le faire.

C’est en soi la partie la plus intéressante, car j’ai appris des concepts que je n’avais jamais l’occasion d’appréhender en pratique. Par exemple, je n’avais pas trop manipulé SPL dans le passé, les traits, les générateurs. On a beau avoir plus de dix ans de pratique, on passe forcément à côté de certaines choses.

Et pendant ?

Le moment venu, il faut vous rendre au centre d’examen, au moins quinze minutes en avance pour vous préparer. Après présentation de deux pièces d’identité, vous devrez signer un formulaire qui prévoit une clause de confidentialité, ça veut dire qu’il vous est interdit de dévoiler les questions après l’examen. Dans une pièce isolée, vous devez déposer toutes vos affaires, sacs, manteaux, et même votre montre ! Eux vous donnent une ardoise et un stabilo en guise de brouillon.

A ce moment là, vous reviennent en mémoire de vieux souvenirs de lycée ou de fac au moment de passer les oraux. Le rythme cardiaque augmente, vous commencez à transpirer. C’est normal.

L’examen se passe dans une petite salle, avec plusieurs postes informatiques. Si vous avez de la chance, vous pouvez être tout seul. L’examinatrice lance le programme avec lequel tout va se jouer, et ferme la porte derrière vous. ça y est, vous y êtes. 90 minutes pour répondre à 70 questions (en anglais s’il vous plaît). TOP !

La seule chose que je dirai à propos des questions, c’est un ressenti personnel : elles m’ont semblé moins dures que je ne l’avais prévu.

Et après ?

Après avoir bien répondu à toutes les questions (on peut flager et revenir sur les éventuels doutes), il faut soumettre vos réponses. Et là …

Pour ma part, comme je l’ai eu, ça a juste affiché la phrase « Congratulations, you have passed the ZCPE exam ! ». Si vous êtes dans ce cas, et si vous êtes tout seul, vous pouvez : bondir de votre chaise, hurler de joie, vous rouler par terre, rêver à vos nouveaux plans de carrière, et vous re-rouler par terre. La dame de l’organisme de formation, de son côté, vous imprimera un récépissé qui atteste de votre réussite (ou votre échec).

Il parait que si on n’a pas réussi, le tableau des erreurs est affiché avec votre score. Ceux qui ont réussi ne connaissent pas leur score, et ne le sauront jamais.

Et encore après ?

Il suffit juste d’attendre votre facteur, qui au bout de quelques semaines vous amène une grande enveloppe venant de Cupertino (rien que ça), et qui contient votre diplôme, ainsi qu’un sticker à coller sur votre laptop. Entretemps, Zend aura mis à jour ses Yellow Pages avec votre nom, et vous fournira une licence pour le logiciel Zend Studio (qui est pas mal en soi, même si je trouve PHP-Storm très puissant).

Après, si vous trouvez que Zend Framework est badass en soi, vous pouvez passez la certification pour ce framework. Perso, j’ai acheté mon voucher … verdict dans quelques mois … 🙂

 

Ce post est dédicacé à : Patrick E, Thomas B, Cédric et surtout le petit Grégory du Japon. <3

Diaporama sur le déploiement dans l’IC

Dans le cadre de l’AFUP Marseille dont je fais partie, j’ai organisé un topo sur le déploiement dans les processus d’intégration continue, Deployer et Jenkins en particulier 🙂

Bref résumé :

Aujourd’hui, le terme « déploiement » est un incontournable dans le métier des devOps. Comment en sommes-nous arrivés à intégrer au mieux les mises en prod ? Faisons un bref historique pour ensuite terminer sur les nouvelles techniques de déploiement de nos applications PHP et leur mise en place dans l’intégration continue.

Retour sur le PHP Forum 2015 – Jour 2

Ce deuxième jour a suivi son lot de conférences, et s’est terminé symboliquement par une table ronde, regroupant l’essentiel de la Core Team de PHP : Pascal MARTIN, Julien PAULI, Remi COLLET, Zeev SURASKI, et bien entendu le créateur de PHP himself : Rasmus LERDORF, pour discuter de la sortie de PHP7, et répondre aux différentes questions.

Mon avis général sur cet évènement est identique à celui de l’an passé, toujours une excellente ambiance, des prises de contacts. J’ai juste déploré les thèmes des ateliers de cette session, que je n’avais pas trouvés en adéquation avec ce qui m’intéressait.

Voici donc mes comptes-rendus des conférences auxquelles j’ai assisté ce deuxième jour, entre plusieurs visites de stands, de morceaux de gâteau, de pop-corn, de tests PHP, et de selfies (si je me trompe, ou si vous avez des remarques, n’hésitez pas à commenter) :

ZF3 le futur de PHP – Sophie BEAUPUIS

ZF3 est défini comme un ZF2 « nouvelle génération ». Il est centré sur PSR7 et les « middlewares ». Il se fait remarquer par ses performances, sa facilités d’utilisation. Le framework peut en plus, se séparer en composants réductibles.

Depuis la version 2.5, chaque composant de zend possède son propre repository, chaque élément est versionné de façon indépendante. Un package de framework est en fait un méta-package faisant références à différentes versions des composants. Ont changé le gestionnaire de services, le gestionnaire d’évènements, et les composants MVC en conséquence. Le gestionnaire de services est quatre fois plus rapide, compatible avec ZF2 pour la plus grande partie, et les noms canoniques ont été supprimés. L’apport majeur est le Container Interop : on peut utiliser la même factory pour différents services car le nom du service est passé en paramètre (en tant qu’utilisatrice de ZF2, je ne peux que dire : « YALLAAAAAA »). Adieu les factories pour chaque service !

Mon avis : une conférence qui m’était incontournable en tant que Zend-Addict. J’ai été on ne peut plus soulagée à l’idée de réduire le nombre de mes factories redondantes. Comme pour Symfony, on apprend ici que la version 3 est quasi-compatible avec la version 2.

L’architecture événementielle chez Meetic Robin Matthieu – Meetic / Pineau Benjamin

Meetic est devenu un incontournable des sites de rencontres. Cette application web est accessible en tant que site web desktop, mobile web, et applications natives.

Il y a eu un projet de refonte sous Angular JS.

Aujourd’hui l’application est composée de différents éléments comme une API publique, une API Microservices en Symfony 2, et des bases de données.

Des flux asynchrones doivent être gérés pour envoyer des emails, faire des notifications « Push », des manipulations sur des images, et de la modération. Ceci pose des limites en matière de traitements et de possibilité de rejouer des évènements. Les interactions entre les membres doivent être pris en compte : consultation de profils, « flashs », messages, etc …

Agnostic framework for the win – Jonathan Reinink

La meilleure façon d’utiliser un framework est de faire une application dont les éléments sont réutilisables, car un code réutilisable devient un code qu’on n’a plus besoin d’écrire.

Entre 1994 et 2004, Vanilla PHP était en vogue. On avait également recours aux fichiers Zip, puis est venu PEAR. A partir de 2005, l’ère des frameworks est arrivée, leur avantage est de pouvoir travailler rapidement, cependant, les développeurs ont continué à téléchager des Zips. Depuis 2013, c’est composer et ses packages qui est le must. En effet, composer permet d’updater des packages déjà téléchargés, de résoudre les dépendances, et les classes autoloadées.

Jonathan Reinink nous parle également du projet The PHP Framework Interop Group, accessible sur php-fig.org qui définit les PSR.

Mon avis : un bon bilan sur ces dix dernières années de la gestion des packages PHP. Composer est en effet l’outil plébiscité du moment, tant par son efficacité que par sa polyvalence (utilisé pour Symfony, ZF, et indépendamment).

Un éléphant dans le monde des licornes – Moquet Matthieu

Chez Blablacar, la mise en production se déroule ainsi :

Master → branch → CR+CI → staging → merge → mise en prod

Les tests sont 70% unitaires, 30% d’intégration et fonctionnels.

Les ORM, pour une grosse appli, ce n’est pas une bonne idée. En programmation évènementielle, on va privilégier les Bundles et les Events.

Matthieu nous explique l’utilisation de Monolitic, de Gateway et de Cassandra (utilisation indirecte d’une brique JAVA), et nous renvoit sur le site de BlaBlaTech.

MySQL 5.7 & JSON: New Opportunities for Developers – Ulin Thomas

Cette nouvelle version du fameux SGBD se caractérise par sa performance, sa scalabilité et sa maintenabilité.

Thomas Ulin nous fait alors une série de démonstrations pour nous montrer les features JSON : en effet, on peut maintenant extraire des données sous ce format : JSON_EXTRACT(colum_name, #type) ;

On peut également aller chercher des données JQuery pour les infiltrer dans des requêtes. D’après une variable $(‘#type’), par exemple, on peut créer ce genre de requête : SELECT DISTINCT feature->  »$.type » as json_extract FROM features.

Les utilisateurs peuvent également créer leurs propres plugins.

Mon avis : une conférence ultra-fournie qui est passée très vite. Le sujet est néanmoins ultra-interessant pour tout développeur web, et mérite une découverte par soi-même du potentiel de cette version, en pratique, plus en profondeur.

 

Photo une : Tirée du blog de Rémi Collet http://blog.remirepo.net