{"id":4587,"date":"2018-05-21T22:46:35","date_gmt":"2018-05-21T21:46:35","guid":{"rendered":"https:\/\/blog.fabianpiau.com\/?p=4587"},"modified":"2022-01-05T15:08:11","modified_gmt":"2022-01-05T15:08:11","slug":"devoxx-uk-day-1","status":"publish","type":"post","link":"https:\/\/blog.fabianpiau.com\/fr\/2018\/05\/21\/devoxx-uk-day-1\/","title":{"rendered":"Devoxx UK 2018 &#8211; Jour 1"},"content":{"rendered":"<p><a class=\"lang\" href=\"https:\/\/blog.fabianpiau.com\/en\/2018\/05\/21\/devoxx-uk-day-1\/\" title=\"Read in english\"><strong class=\"labellang\"><span class=\"en\">&nbsp;<\/span>English version available<\/strong><\/a><\/p>\n<p>Cette ann\u00e9e, j&rsquo;ai assist\u00e9 aux 2 jours de la conf\u00e9rence <a href=\"https:\/\/www.devoxx.co.uk\/\" target=\"_blank\" title=\"Devoxx UK\" rel=\"noopener noreferrer\">Devoxx UK<\/a> \u00e0 Londres les 10 et 11 mai. Cet article est un r\u00e9sum\u00e9 des notes que j&rsquo;ai prises pendant le premier jour. Si vous souhaitez obtenir plus de d\u00e9tails sur un talk, vous pouvez regarder la vid\u00e9o associ\u00e9e.<\/p>\n<div style=\"max-width: 560px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00090\/devoxx-1.jpg?ssl=1\" rel=\"shadowbox[sbpost-4587];player=img;\" title=\"Devoxx UK a eu lieu au Business Design Centre \u00e0 Londres\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00090\/devoxx-1-thumbnail.jpg?resize=550%2C367&#038;ssl=1\" alt=\"Devoxx UK a eu lieu au Business Design Centre \u00e0 Londres\" title=\"Devoxx UK a eu lieu au Business Design Centre \u00e0 Londres\" width=\"550\" height=\"367\" class=\"size-medium wp-image-259\" \/><\/a><p class=\"wp-caption-text\">Devoxx UK a eu lieu au Business Design Centre \u00e0 Londres<\/p><\/div>\n<p><br clear=\"none\" \/><\/p>\n<h4>A Future without Servers, avec Danilo Poccia<\/h4>\n<p><strong>Comment construire le meilleur logiciel avec la meilleure exp\u00e9rience utilisateur?<\/strong><\/p>\n<p>Travailler \u00ab\u00a0en arri\u00e8re\u00a0\u00bb \u00e0 partir des besoins du client (work backwards). Avant de commencer toute impl\u00e9mentation:<\/p>\n<ol>\n<li>Ecrire le Communiqu\u00e9 de presse<\/li>\n<li>Ecrire la FAQ<\/li>\n<li>D\u00e9finir l&rsquo;Exp\u00e9rience client<\/li>\n<li>Ecrire le Manuel de l&rsquo;utilisateur<\/li>\n<\/ol>\n<p>L&rsquo;id\u00e9e est de rendre votre syst\u00e8me simple. Un syst\u00e8me complexe \u00e9tait simple au d\u00e9but, il est devenu complexe!<\/p>\n<p><strong>L&rsquo;architecture change:<\/strong><\/p>\n<ul>\n<li>Il y a 10 ans: nous splittons nos applications monolithes en utilisant XML et SOAP pour la communication<\/li>\n<li>Il y a 5 ans: nous cr\u00e9ons des architectures micro services en utilisant REST \/ JSON ou un protocole binaire pour la communication<\/li>\n<li>Maintenant: nous construisons des architectures \u00e9v\u00e9nementielles (event-driven) avec des fonctions \u00e9ph\u00e9m\u00e8res<\/li>\n<\/ul>\n<p><strong>Qu&rsquo;en est-il des donn\u00e9es?<\/strong><\/p>\n<p>Les r\u00e9f\u00e9rentiels de donn\u00e9es deviennent des sources d&rsquo;\u00e9v\u00e9nements. Chaque \u00e9v\u00e9nement est une information immuable du m\u00e9tier.<\/p>\n<p>Il y a une \u00e9volution de ACID (Atomic, Consistent, Isolated, Durable) vers ACID 2.0 (Associative, Commutative, Idempotent, Distributed).<\/p>\n<p>Avec la conception pilot\u00e9e par les \u00e9v\u00e9nements, nous pensons cause \/ effet plut\u00f4t que qui d\u00e9clenche quoi: \u00ab\u00a0Le service B est caus\u00e9 par A\u00a0\u00bb au lieu de \u00ab\u00a0Service A d\u00e9clenche B\u00a0\u00bb. Nous utilisons un m\u00e9canisme de notification et d&rsquo;accus\u00e9 de r\u00e9ception.<\/p>\n<p><strong>Alors, \u00e0 quoi ressemblera le futur?<\/strong><\/p>\n<p>Nous \u00e9crirons seulement le code de logique m\u00e9tier!<\/p>\n<span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"550\" height=\"310\" src=\"https:\/\/www.youtube.com\/embed\/Ztjdnqf-674?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=fr-FR&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span>\n<p><br clear=\"none\" \/><\/p>\n<h4>Let&rsquo;s Get Lazy: Exploring the Real Power of Streams, avec Venkat Subramaniam<\/h4>\n<p>Venkat Subramaniam est un tr\u00e8s bon speaker. C&rsquo;\u00e9tait la premi\u00e8re fois que je l&rsquo;\u00e9coutais et j&rsquo;ai \u00e9t\u00e9 impressionn\u00e9 par sa fa\u00e7on de pr\u00e9senter, je vous sugg\u00e8re de regarder une de ses vid\u00e9os.<\/p>\n<p>Haskell est un langage paresseux par d\u00e9faut, les op\u00e9rations qui peuvent \u00eatre diff\u00e9r\u00e9es le seront. Avec Scala, c&rsquo;est possible en utilisant le mot-cl\u00e9 \u00ab\u00a0lazy\u00a0\u00bb. Mais qu&rsquo;en est-il de Java? Le mot-cl\u00e9 \u00ab\u00a0lazy\u00a0\u00bb n&rsquo;existe pas, mais c&rsquo;est possible avec le code fonctionnel et les streams introduits avec Java 8.<\/p>\n<p>Le code imp\u00e9ratif a une c\u00e9r\u00e9monie haute et une complexit\u00e9 accidentelle. Vous dites quoi faire et comment le faire.<\/p>\n<p>Le code fonctionnel a moins de c\u00e9r\u00e9monie et moins de complexit\u00e9. Vous dites quoi faire et c&rsquo;est tout. Le code est tr\u00e8s facile \u00e0 lire de haut en bas.<\/p>\n<p>Cependant, si le code est \u00ab\u00a0joli\u00a0\u00bb, il peut ne pas \u00eatre durable. Alors qu&rsquo;en est-il de la performance? Par exemple, est-ce que nous traitons toute la collection pour ne prendre que le premier \u00e9l\u00e9ment? <code>FindFirst()<\/code> est l&rsquo;op\u00e9ration d&rsquo;ex\u00e9cution terminale. Jusqu&rsquo;\u00e0 ce que nous l&rsquo;appelions, rien (c&rsquo;est-\u00e0-dire toutes les op\u00e9rations interm\u00e9diaires) ne sera ex\u00e9cut\u00e9.<\/p>\n<p>Un stream n&rsquo;ex\u00e9cute pas de fonction pour chaque objet de la collection, mais il ex\u00e9cute une collection de fonctions pour chaque objet, mais seulement quand c&rsquo;est n\u00e9cessaire.<\/p>\n<p>Un stream n&rsquo;est pas une collection d&rsquo;objets, c&rsquo;est une collection de fonctions.<\/p>\n<p>Les lambdas sont stateless.<\/p>\n<pre class=\"brush: java; highlight: [3]; title: ; notranslate\" title=\"\">\r\nList&lt;Integer&gt; numbers = Arrays.asList(1, 2, 3);\r\nStream&lt;Integer&gt; stream = numbers.stream()\r\n                            .map (e -&gt; e * 2); \/\/ Ceci est une lambda\r\nstream.forEach(System.out::println);\r\n<\/pre>\n<p>Les closures portent les \u00e9tats immuables, soyez tr\u00e8s prudent en les utilisant.<\/p>\n<pre class=\"brush: java; highlight: [4]; title: ; notranslate\" title=\"\">\r\nList&lt;Integer&gt; numbers = Arrays.asList(1, 2, 3);\r\nfinal int factor = 2;\r\nStream&lt;Integer&gt; stream = numbers.stream()\r\n                            .map (e -&gt; e * factor); \/\/ Ceci est une closure\r\nstream.forEach(System.out::println);\r\n<\/pre>\n<p>La paresse rend possible l&rsquo;utilisation de stream infini, sinon le programme ci-dessous serait une boucle infinie.<\/p>\n<pre class=\"brush: java; highlight: [1]; title: ; notranslate\" title=\"\">\r\nStream&lt;Integer&gt; infiniteStream = Stream.iterate(0, e -&gt; e + 1);\r\nList&lt;Integer&gt; numbers = infiniteStream \r\n                          .limit(5)\r\n                          .collect(Collectors.toList());\r\n<\/pre>\n<span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"550\" height=\"310\" src=\"https:\/\/www.youtube.com\/embed\/ekFPGD2g-ps?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=fr-FR&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span>\n<p><br clear=\"none\" \/><\/p>\n<h4>Kotlin for Java Programmers, avec Venkat Subramaniam<\/h4>\n<p>Je suis rest\u00e9 dans la m\u00eame salle, car j&rsquo;ai beaucoup appr\u00e9ci\u00e9 le premier talk de Venkat. Avec la m\u00eame fa\u00e7on de pr\u00e9senter, cette deuxi\u00e8me pr\u00e9sentation \u00e9tait toute aussi bonne.<\/p>\n<p>Comme je n&rsquo;ai jamais exp\u00e9riment\u00e9 Kotlin, c&rsquo;\u00e9tait une bonne introduction pour moi. Ce langage bas\u00e9 sur la JVM devient vraiment populaire de nos jours, d&rsquo;autant plus que Jetbrain le pousse pour \u00eatre le langage principal pour la programmation Android. Venkat nous a donn\u00e9 beaucoup d&rsquo;astuces pour rendre le code concis et nous a sugg\u00e9r\u00e9 de jouer nous-m\u00eames avec en utilisant le REPL (kotlinc). Sans doute moins verbeux que Java et livr\u00e9 avec des fonctionnalit\u00e9s int\u00e9ressantes (notamment la gestion des null et le lazy&#8230;). Je vais probablement l&rsquo;essayer \u00e0 un moment donn\u00e9.<\/p>\n<span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"550\" height=\"310\" src=\"https:\/\/www.youtube.com\/embed\/KvmlP3ReZcA?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=fr-FR&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span>\n<p><br clear=\"none\" \/><\/p>\n<h4>How to use AI and Java to train your application to recognize people by name, avec Ruth Yakubu<\/h4>\n<p>Ruth nous a pr\u00e9sent\u00e9 <a href=\"https:\/\/azure.microsoft.com\/en-gb\/services\/cognitive-services\/face\/\" target=\"_blank\" title=\"Microsoft Face API\" rel=\"noopener noreferrer\">Microsoft Face API<\/a> qui s\u2019ex\u00e9cute sur la plate-forme de cloud computing Azure (bien \u00e9videment de Microsoft). Face API est l&rsquo;un des services \u00ab\u00a0cognitifs\u00a0\u00bb fournit par Microsoft, par ex. il existe un service pour reconna\u00eetre la parole et traiter le langage naturel.<\/p>\n<p>Elle nous a montr\u00e9 une application \u00e9crite avec Spring Boot qui interagit avec Face API. Tout d&rsquo;abord, elle a upload\u00e9 une s\u00e9rie de photos de l&rsquo;acteur Matthew McConaughey (si vous ne le connaissez pas, il \u00e9tait le personnage principal dans Interstellar) pour former le mod\u00e8le. Puis elle a upload\u00e9 une nouvelle photo de lui et de sa femme que le syst\u00e8me ne connaissait pas encore. L&rsquo;algorithme a reconnu l&rsquo;acteur avec une grande pr\u00e9cision alors qu&rsquo;il ne savait pas qui \u00e9tait la femme l&rsquo;accompagnant, mais il a \u00e9t\u00e9 capable de donner une description pr\u00e9cise d&rsquo;elle (une femme souriante dans la trentaine, etc.).<\/p>\n<p>Il est possible de cr\u00e9er votre propre algorithme d&rsquo;apprentissage automatique avec Java, par exemple en utilisant la biblioth\u00e8que <a href=\"https:\/\/deeplearning4j.konduit.ai\" target=\"_blank\" title=\"DeepLearning4J\" rel=\"noopener noreferrer\">DeepLearning4J<\/a>. Lors de la formation d&rsquo;un mod\u00e8le, il est important de s\u00e9parer les donn\u00e9es en 2 groupes, les donn\u00e9es d\u2019entra\u00eenement (80%) et les donn\u00e9es de test (20%) afin de pouvoir v\u00e9rifier que votre mod\u00e8le a une bonne pr\u00e9diction. Il est \u00e9galement important d&rsquo;utiliser les GPUs et pas seulement les CPUs pour am\u00e9liorer les performances, maintenant les biblioth\u00e8ques en profitent, y compris <a href=\"https:\/\/deeplearning4j.konduit.ai\/multi-project\/explanation\/configuration\/backends\" target=\"_blank\" title=\"DeepLearning4J using the GPU\" rel=\"noopener noreferrer\">DL4J<\/a>.<\/p>\n<span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"550\" height=\"310\" src=\"https:\/\/www.youtube.com\/embed\/bzSqrmefnV0?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=fr-FR&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span>\n<p><br clear=\"none\" \/><\/p>\n<h4>Building a self-driving RC car, avec Tim van Eijndhoven<\/h4>\n<p>Ce fut une pr\u00e9sentation int\u00e9ressante pour suivre l\u2019exp\u00e9rience de Tim et son \u00e9quipe qui se sont lanc\u00e9s dans la cr\u00e9ation d&rsquo;une voiture (jouet) autonome sans chauffeur bas\u00e9e sur un kit Radio Control (RC). Ils ont construit ce prototype dans le cadre d&rsquo;un challenge. L&rsquo;id\u00e9e est que la voiture conduise de mani\u00e8re autonome et suive un itin\u00e9raire (trac\u00e9 d\u00e9limit\u00e9 par 2 lignes blanches) avec des courbes et des obstacles potentiels.<\/p>\n<blockquote><p>Si Tesla peut le faire, alors pourquoi pas nous? \u00c0 notre \u00e9chelle, bien s\u00fbr&#8230;<\/p><\/blockquote>\n<p>En plus du kit RC, ils ont ajout\u00e9 un Raspberry Pi, un convertisseur de puissance\/alimentation, une cam\u00e9ra et un m\u00e9canisme d&rsquo;arr\u00eat d&rsquo;urgence (utile quand la voiture est hors de port\u00e9e du WiFi et peut se crasher n&rsquo;importe o\u00f9&#8230;). Le budget total est d&rsquo;environ 300 euros.<\/p>\n<p>En ce qui concerne les technologies, ils ont utilis\u00e9:<\/p>\n<ul>\n<li>Vert.x, application r\u00e9active sur la JVM, \u00e9v\u00e9nementielle et non bloquante<\/li>\n<li>La librairie OpenCV (Computer Vision) pour traiter le flux vid\u00e9o en temps r\u00e9el et s&rsquo;assurer que la voiture reste entre les lignes blanches<\/li>\n<\/ul>\n<p>Il y a beaucoup de choses \u00e0 penser, l&rsquo;environnement est probablement la variable la plus incertaine. L&rsquo;algorithme peut se tromper en fonction de:<\/p>\n<ul>\n<li>La surface (moquette \u00e0 motifs, carreaux, route sombre)<\/li>\n<li>Le temps (ensoleill\u00e9, pluvieux, le programme est tr\u00e8s sensible au changement de luminosit\u00e9)<\/li>\n<li>Et d&rsquo;autres facteurs (r\u00e9flexion sur une fen\u00eatre, effet miroir)<\/li>\n<\/ul>\n<p>Ils ont beaucoup d&rsquo;id\u00e9es d&rsquo;am\u00e9lioration pour le futur:<\/p>\n<ul>\n<li>Il n&rsquo;est pas n\u00e9cessaire d&rsquo;analyser toutes les images provenant du flux vid\u00e9o (en particulier sur une ligne droite). Actuellement, ils analysent une image toutes les 100ms (pourquoi 100ms?) Car c&rsquo;est le temps qu&rsquo;il faut pour en traiter une)<\/li>\n<li>Il n&rsquo;est pas n\u00e9cessaire d&rsquo;analyser toute l&rsquo;image (certaines parties peuvent \u00eatre ignor\u00e9es, ce qui est au-dessus de l&rsquo;horizon n&rsquo;est pas n\u00e9cessaire par exemple)<\/li>\n<li>D\u00e9porter la logique de calcul sur la voiture elle-m\u00eame au lieu d&rsquo;un ordinateur portable sur le WiFi, pour \u00e9viter la latence du r\u00e9seau (cependant la puissance de calcul de Raspberry Pi peut \u00eatre limit\u00e9e)<\/li>\n<li>Utiliser l&rsquo;IA et le Deep Learning pour que la voiture puisse apprendre \u00e0 naviguer en utilisant des vid\u00e9os d&rsquo;entra\u00eenement: des vid\u00e9os lorsque la voiture est contr\u00f4l\u00e9e \u00e0 distance par un humain (cependant, cela peut prendre beaucoup de temps et de nombreuses vid\u00e9os seront n\u00e9cessaires sur des circuits et avec des conditions diff\u00e9rentes)<\/li>\n<\/ul>\n<span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"550\" height=\"310\" src=\"https:\/\/www.youtube.com\/embed\/oR_YHca8Mt0?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=fr-FR&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span>\n<p><br clear=\"none\" \/><\/p>\n<h4>Cloud Native Java, part deux, avec Josh Long<\/h4>\n<p>Josh est Spring Developer Advocate chez Pivotal, c&rsquo;\u00e9tait la premi\u00e8re fois que j&rsquo;assistais \u00e0 une de ses conf\u00e9rences. J&rsquo;ai vraiment appr\u00e9ci\u00e9 et j&rsquo;ai \u00e9t\u00e9 tr\u00e8s impressionn\u00e9 par son d\u00e9bit de parole et de code simultan\u00e9 sans oublier de nombreuses blagues. Un brillant orateur.<\/p>\n<p>Josh a utilis\u00e9 <a href=\"https:\/\/start.spring.io\/\" title=\"https:\/\/start.spring.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/start.spring.io\/<\/a> pour g\u00e9n\u00e9rer un petit projet pour g\u00e9rer des r\u00e9servations en utilisant <a href=\"https:\/\/spring.io\/projects\/spring-cloud\" target=\"_blank\" title=\"Spring Cloud\" rel=\"noopener noreferrer\">Spring Cloud<\/a> (construit sur Spring Boot). Pourquoi devriez-vous utiliser cet outil en ligne pour initialiser votre projet? Regardez la vid\u00e9o pour obtenir la r\u00e9ponse de Josh, c&rsquo;est amusant!<\/p>\n<p>Il a choisi Kotlin pour le service (car pourquoi pas?) avec des endpoints pour obtenir les messages et les r\u00e9servations en utilisant un datastore r\u00e9actif MongoDB. Le service chargeait les donn\u00e9es de mani\u00e8re r\u00e9active pendant le d\u00e9marrage.<\/p>\n<p>Il a choisi Java pour le client en utilisant diverses technologies out-of-the-box gr\u00e2ce \u00e0 Spring (Eureka, Spring Security, Hystrix pour le load balancer interne et gestion du fallback). Le client a pu interroger le service pour r\u00e9cup\u00e9rer les donn\u00e9es.<\/p>\n<p>A la fin de la d\u00e9mo, il nous montre \u00e9galement une architecture sans serveur utilisant <a href=\"https:\/\/projectriff.io\/\" target=\"_blank\" title=\"RIFF\" rel=\"noopener noreferrer\">RIFF<\/a>, un FaaS pour Kubernetes. Il a \u00e9crit une fonction pour transformer une cha\u00eene de caract\u00e8re en majuscules, puis utilise le terminal pour invoquer la fonction d\u00e9ploy\u00e9e sur Kubernetes. Il n&rsquo;a pas eu le temps de nous montrer l&rsquo;appel \u00e0 partir d&rsquo;un service, mais nous avons compris le principe.<\/p>\n<span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"550\" height=\"310\" src=\"https:\/\/www.youtube.com\/embed\/GW656IAU5ZE?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=fr-FR&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span>\n<p><br clear=\"none\" \/><\/p>\n<p>Ma premi\u00e8re journ\u00e9e \u00e0 Devoxx \u00e9tait g\u00e9niale, cette ann\u00e9e j&rsquo;ai essay\u00e9 d&rsquo;assister \u00e0 des conf\u00e9rences plus innovantes sur le Serverless et le Machine Learning, un m\u00e9lange live-coding et de th\u00e9orie. Je posterai bient\u00f4t mon r\u00e9sum\u00e9 du jour 2, alors stay tuned!<\/p>\n<p><div style=\"max-width: 560px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00090\/devoxx-2.jpg?ssl=1\" rel=\"shadowbox[sbpost-4587];player=img;\" title=\"Les lettres #DevoxxUK dans le hall\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00090\/devoxx-2-thumbnail.jpg?resize=550%2C367&#038;ssl=1\" alt=\"Les lettres #DevoxxUK dans le hall\" title=\"Les lettres #DevoxxUK dans le hall\" width=\"550\" height=\"367\" class=\"size-medium wp-image-260\" \/><\/a><p class=\"wp-caption-text\">Les lettres #DevoxxUK dans le hall<\/p><\/div><br \/>\n<\/p>","protected":false},"excerpt":{"rendered":"<p>&nbsp;English version available Cette ann\u00e9e, j&rsquo;ai assist\u00e9 aux 2 jours de la conf\u00e9rence Devoxx UK \u00e0 Londres les 10 et 11 mai. Cet article est un r\u00e9sum\u00e9 des notes que j&rsquo;ai prises pendant le premier jour. Si vous souhaitez obtenir plus de d\u00e9tails sur un talk, vous pouvez regarder la vid\u00e9o associ\u00e9e. A Future without [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4643,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[6],"tags":[175,283,284],"class_list":["post-4587","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-event","tag-conference","tag-devoxx","tag-london"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Devoxx UK 2018 - Jour 1 | CarmaBlog<\/title>\n<meta name=\"description\" content=\"&nbsp;English version available Cette ann\u00e9e, j&#039;ai assist\u00e9 aux 2 jours de la conf\u00e9rence Devoxx UK \u00e0 Londres les 10 et 11 mai. Cet article est un r\u00e9sum\u00e9 des\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.fabianpiau.com\/fr\/2018\/05\/21\/devoxx-uk-day-1\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Devoxx UK 2018 - Jour 1 | CarmaBlog\" \/>\n<meta property=\"og:description\" content=\"&nbsp;English version available Cette ann\u00e9e, j&#039;ai assist\u00e9 aux 2 jours de la conf\u00e9rence Devoxx UK \u00e0 Londres les 10 et 11 mai. Cet article est un r\u00e9sum\u00e9 des\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.fabianpiau.com\/fr\/2018\/05\/21\/devoxx-uk-day-1\/\" \/>\n<meta property=\"og:site_name\" content=\"CarmaBlog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/fabian.piau\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/fabian.piau\" \/>\n<meta property=\"article:published_time\" content=\"2018-05-21T21:46:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-01-05T15:08:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.fabianpiau.com\/wp-content\/uploads\/2018\/05\/devoxx.png\" \/>\n\t<meta property=\"og:image:width\" content=\"500\" \/>\n\t<meta property=\"og:image:height\" content=\"500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Fabian Piau\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fabianpiau\" \/>\n<meta name=\"twitter:site\" content=\"@fabianpiau\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fabian Piau\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2018\\\/05\\\/21\\\/devoxx-uk-day-1\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2018\\\/05\\\/21\\\/devoxx-uk-day-1\\\/\"},\"author\":{\"name\":\"Fabian Piau\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"headline\":\"Devoxx UK 2018 &#8211; Jour 1\",\"datePublished\":\"2018-05-21T21:46:35+00:00\",\"dateModified\":\"2022-01-05T15:08:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2018\\\/05\\\/21\\\/devoxx-uk-day-1\\\/\"},\"wordCount\":3573,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2018\\\/05\\\/21\\\/devoxx-uk-day-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2018\\\/05\\\/devoxx.png?fit=500%2C500&ssl=1\",\"keywords\":[\"conf\u00e9rence\",\"devoxx\",\"londres\"],\"articleSection\":[\"Ev\u00e9nement\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blog.fabianpiau.com\\\/2018\\\/05\\\/21\\\/devoxx-uk-day-1\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2018\\\/05\\\/21\\\/devoxx-uk-day-1\\\/\",\"url\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2018\\\/05\\\/21\\\/devoxx-uk-day-1\\\/\",\"name\":\"Devoxx UK 2018 - Jour 1 | CarmaBlog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2018\\\/05\\\/21\\\/devoxx-uk-day-1\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2018\\\/05\\\/21\\\/devoxx-uk-day-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2018\\\/05\\\/devoxx.png?fit=500%2C500&ssl=1\",\"datePublished\":\"2018-05-21T21:46:35+00:00\",\"dateModified\":\"2022-01-05T15:08:11+00:00\",\"description\":\"&nbsp;English version available Cette ann\u00e9e, j'ai assist\u00e9 aux 2 jours de la conf\u00e9rence Devoxx UK \u00e0 Londres les 10 et 11 mai. Cet article est un r\u00e9sum\u00e9 des\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2018\\\/05\\\/21\\\/devoxx-uk-day-1\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[[\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2018\\\/05\\\/21\\\/devoxx-uk-day-1\\\/\"]]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2018\\\/05\\\/21\\\/devoxx-uk-day-1\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2018\\\/05\\\/devoxx.png?fit=500%2C500&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2018\\\/05\\\/devoxx.png?fit=500%2C500&ssl=1\",\"width\":500,\"height\":500,\"caption\":\"devoxx\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2018\\\/05\\\/21\\\/devoxx-uk-day-1\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Homepage\",\"item\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ev\u00e9nement\",\"item\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/category\\\/event\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Devoxx UK 2018 &#8211; Day 1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/\",\"name\":\"CarmaBlog\",\"description\":\"Agilit\u00e9, D\u00e9veloppement Java, Nouvelles technologies et plus...\",\"publisher\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\",\"name\":\"Fabian Piau\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"width\":567,\"height\":667,\"caption\":\"Fabian Piau\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\"},\"description\":\"D\u00e9veloppeur Java, Fabian s'int\u00e9resse aux nouvelles technologies et plus particuli\u00e8rement \u00e0 leur utilisation dans un contexte agile.\",\"sameAs\":[\"https:\\\/\\\/blog.fabianpiau.com\",\"https:\\\/\\\/www.facebook.com\\\/fabian.piau\",\"https:\\\/\\\/www.instagram.com\\\/fabianpiau\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/fabianpiau\\\/\",\"https:\\\/\\\/x.com\\\/fabianpiau\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Devoxx UK 2018 - Jour 1 | CarmaBlog","description":"&nbsp;English version available Cette ann\u00e9e, j'ai assist\u00e9 aux 2 jours de la conf\u00e9rence Devoxx UK \u00e0 Londres les 10 et 11 mai. Cet article est un r\u00e9sum\u00e9 des","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.fabianpiau.com\/fr\/2018\/05\/21\/devoxx-uk-day-1\/","og_locale":"fr_FR","og_type":"article","og_title":"Devoxx UK 2018 - Jour 1 | CarmaBlog","og_description":"&nbsp;English version available Cette ann\u00e9e, j'ai assist\u00e9 aux 2 jours de la conf\u00e9rence Devoxx UK \u00e0 Londres les 10 et 11 mai. Cet article est un r\u00e9sum\u00e9 des","og_url":"https:\/\/blog.fabianpiau.com\/fr\/2018\/05\/21\/devoxx-uk-day-1\/","og_site_name":"CarmaBlog","article_publisher":"https:\/\/www.facebook.com\/fabian.piau","article_author":"https:\/\/www.facebook.com\/fabian.piau","article_published_time":"2018-05-21T21:46:35+00:00","article_modified_time":"2022-01-05T15:08:11+00:00","og_image":[{"width":500,"height":500,"url":"https:\/\/blog.fabianpiau.com\/wp-content\/uploads\/2018\/05\/devoxx.png","type":"image\/png"}],"author":"Fabian Piau","twitter_card":"summary_large_image","twitter_creator":"@fabianpiau","twitter_site":"@fabianpiau","twitter_misc":{"\u00c9crit par":"Fabian Piau","Dur\u00e9e de lecture estim\u00e9e":"17 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.fabianpiau.com\/2018\/05\/21\/devoxx-uk-day-1\/#article","isPartOf":{"@id":"https:\/\/blog.fabianpiau.com\/2018\/05\/21\/devoxx-uk-day-1\/"},"author":{"name":"Fabian Piau","@id":"https:\/\/blog.fabianpiau.com\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"headline":"Devoxx UK 2018 &#8211; Jour 1","datePublished":"2018-05-21T21:46:35+00:00","dateModified":"2022-01-05T15:08:11+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.fabianpiau.com\/2018\/05\/21\/devoxx-uk-day-1\/"},"wordCount":3573,"commentCount":0,"publisher":{"@id":"https:\/\/blog.fabianpiau.com\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"image":{"@id":"https:\/\/blog.fabianpiau.com\/2018\/05\/21\/devoxx-uk-day-1\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2018\/05\/devoxx.png?fit=500%2C500&ssl=1","keywords":["conf\u00e9rence","devoxx","londres"],"articleSection":["Ev\u00e9nement"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.fabianpiau.com\/2018\/05\/21\/devoxx-uk-day-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.fabianpiau.com\/fr\/2018\/05\/21\/devoxx-uk-day-1\/","url":"https:\/\/blog.fabianpiau.com\/fr\/2018\/05\/21\/devoxx-uk-day-1\/","name":"Devoxx UK 2018 - Jour 1 | CarmaBlog","isPartOf":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2018\/05\/21\/devoxx-uk-day-1\/#primaryimage"},"image":{"@id":"https:\/\/blog.fabianpiau.com\/2018\/05\/21\/devoxx-uk-day-1\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2018\/05\/devoxx.png?fit=500%2C500&ssl=1","datePublished":"2018-05-21T21:46:35+00:00","dateModified":"2022-01-05T15:08:11+00:00","description":"&nbsp;English version available Cette ann\u00e9e, j'ai assist\u00e9 aux 2 jours de la conf\u00e9rence Devoxx UK \u00e0 Londres les 10 et 11 mai. Cet article est un r\u00e9sum\u00e9 des","breadcrumb":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2018\/05\/21\/devoxx-uk-day-1\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":[["https:\/\/blog.fabianpiau.com\/fr\/2018\/05\/21\/devoxx-uk-day-1\/"]]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/blog.fabianpiau.com\/fr\/2018\/05\/21\/devoxx-uk-day-1\/#primaryimage","url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2018\/05\/devoxx.png?fit=500%2C500&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2018\/05\/devoxx.png?fit=500%2C500&ssl=1","width":500,"height":500,"caption":"devoxx"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.fabianpiau.com\/fr\/2018\/05\/21\/devoxx-uk-day-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Homepage","item":"https:\/\/blog.fabianpiau.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Ev\u00e9nement","item":"https:\/\/blog.fabianpiau.com\/fr\/category\/event\/"},{"@type":"ListItem","position":3,"name":"Devoxx UK 2018 &#8211; Day 1"}]},{"@type":"WebSite","@id":"https:\/\/blog.fabianpiau.com\/fr\/#website","url":"https:\/\/blog.fabianpiau.com\/fr\/","name":"CarmaBlog","description":"Agilit\u00e9, D\u00e9veloppement Java, Nouvelles technologies et plus...","publisher":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.fabianpiau.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/blog.fabianpiau.com\/fr\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14","name":"Fabian Piau","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","width":567,"height":667,"caption":"Fabian Piau"},"logo":{"@id":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1"},"description":"D\u00e9veloppeur Java, Fabian s'int\u00e9resse aux nouvelles technologies et plus particuli\u00e8rement \u00e0 leur utilisation dans un contexte agile.","sameAs":["https:\/\/blog.fabianpiau.com","https:\/\/www.facebook.com\/fabian.piau","https:\/\/www.instagram.com\/fabianpiau\/","https:\/\/www.linkedin.com\/in\/fabianpiau\/","https:\/\/x.com\/fabianpiau"]}]}},"views":1091,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2018\/05\/devoxx.png?fit=500%2C500&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pbSHyl-1bZ","_links":{"self":[{"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/posts\/4587","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/comments?post=4587"}],"version-history":[{"count":0,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/posts\/4587\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/media\/4643"}],"wp:attachment":[{"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/media?parent=4587"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/categories?post=4587"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/tags?post=4587"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}