{"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\/en\/2018\/05\/21\/devoxx-uk-day-1\/","title":{"rendered":"Devoxx UK 2018 &#8211; Day 1"},"content":{"rendered":"<p><a class=\"lang\" href=\"https:\/\/blog.fabianpiau.com\/fr\/2018\/05\/21\/devoxx-uk-day-1\/\" title=\"Lire en fran\u00e7ais\"><strong class=\"labellang\"><span class=\"fr\">&nbsp;<\/span>Version fran\u00e7aise disponible<\/strong><\/a><\/p>\n<p>This year I attended the 2 days of conference at <a href=\"https:\/\/www.devoxx.co.uk\/\" target=\"_blank\" title=\"Devoxx UK\" rel=\"noopener noreferrer\">Devoxx UK<\/a> taking place in London on 10-11th May. This article is a summary of the notes I took during the first day. If you&#8217;re interested in more details in a talk, you can watch the associated video.<\/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 took place in the Business Design Centre in London\"><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 took place in the Business Design Centre in London\" title=\"Devoxx UK took place in the Business Design Centre in London\" width=\"550\" height=\"367\" class=\"size-medium wp-image-259\" \/><\/a><p class=\"wp-caption-text\">Devoxx UK took place in the Business Design Centre in London<\/p><\/div>\n<p><br clear=\"none\" \/><\/p>\n<h4>A Future without Servers, with Danilo Poccia<\/h4>\n<p><strong>How to build the best software with the best user experience?<\/strong><\/p>\n<p>Work backwards from the customer and before starting any implementation:<\/p>\n<ol>\n<li>Write a Press Release<\/li>\n<li>Write the FAQ<\/li>\n<li>Define the Customer experience<\/li>\n<li>Write the User manual<\/li>\n<\/ol>\n<p>The idea is to get your system simple. A complex system was simple at the beginning, it became complex!<\/p>\n<p><strong>Architecture is changing:<\/strong><\/p>\n<ul>\n<li>10 years ago: we are splitting our monolith applications using XML and SOAP for the communication<\/li>\n<li>5 years ago: we are creating micro services architecture using REST\/JSON or binary protocol for the communication<\/li>\n<li>Now: we are building event-driven architecture with ephemeral functions<\/li>\n<\/ul>\n<p><strong>What about the data?<\/strong><\/p>\n<p>Data repositories are becoming a source of events. Each event is an immutable information about business.<\/p>\n<p>There is a shift from ACID (Atomic, Consistent, Isolated, Durable) to ACID 2.0 (Associative, Commutative, Idempotent, Distributed).<\/p>\n<p>With event-driven design, we think cause \/ effect instead of triggers: &#8220;Service B is caused by A&#8221; instead of &#8220;Service A triggers B&#8221;. We use notification and acknowledgement mechanism.<\/p>\n<p><strong>So what does the future will look like?<\/strong><\/p>\n<p>We will write only business logic code!<\/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=en-US&#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&#8217;s Get Lazy: Exploring the Real Power of Streams, with Venkat Subramaniam<\/h4>\n<p>Venkat Subramaniam is a very good speaker. It was the first time I was hearing him and I was impressed by his way of presenting, I suggest you to watch one of his videos.<\/p>\n<p>Haskell is a lazy language by default. With Scala, it&#8217;s possible by using the keyword &#8220;lazy&#8221;. But what about Java? The keyword &#8220;lazy&#8221; doesn&#8217;t exist but it&#8217;s possible with functional code and streams introduced with Java 8.<\/p>\n<p>Imperative code has high ceremony and has accidental complexity. You tell what to do and how to do it.<\/p>\n<p>Functional code has less ceremony and less complexity. You tell what to do. It is very easy to read from top to bottom.<\/p>\n<p>However, if the code is &#8220;cute&#8221;, it may not be sustainable. So what about performance? E.g. Do we compute all the collection to take only the first one? <code>FindFirst()<\/code> is the terminal operation of execution. Until we call it, nothing (i.e. all the intermediate operations) will be executed.<\/p>\n<p>Stream does not execute a function for every object in the collection, instead it executes a collection of functions for every object, but only as needed.<\/p>\n<p>Stream is not a collection of objects, it&#8217;s a collection of functions.<\/p>\n<p>Lambda are 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); \/\/ This is a lambda\r\nstream.forEach(System.out::println);\r\n<\/pre>\n<p>Closure carry immutable state, be very careful when using them.<\/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); \/\/ This is a closure\r\nstream.forEach(System.out::println);\r\n<\/pre>\n<p>Laziness makes the use of infinite streams possible, otherwise the program below would be an infinite loop.<\/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=en-US&#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, with Venkat Subramaniam<\/h4>\n<p>I stayed in the same room as I really like Venkat&#8217;s first talk. With the same way of presenting, this second talk was very good as well.<\/p>\n<p>As I never experiment Kotlin, it was a nice introduction for me. This JVM-based language is really getting popular these days, especially since Jetbrain is pushing it to be the main language for Android programming. Venkat gave us a lot of different tricks to make the code concise and suggest us to play with it ourselves using the REPL (kotlinc). No doubt it is less verbose than Java and comes with very nice features (including null safety and the lazy keyword&#8230;). I will probably give it a try at some point.<\/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=en-US&#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, with Ruth Yakubu<\/h4>\n<p>Ruth introduced us <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> running on its cloud computing platform Azure. Face API is one of the &#8220;cognitive&#8221; services Microsoft provides, e.g. there is a service to recognize speech and process natural language.<\/p>\n<p>She showed us an application written with Spring Boot that is interacting with Face API. First, she uploaded a set of pictures of the actor Matthew McConaughey (if you don&#8217;t know him, he was the main character in Interstellar) to train the model. Then she uploaded a new picture of him and his wife that the system did not know yet. The algorithm recognizes that it was the actor with a high precision while it did not know who the woman was but it was able to give an accurate description of her (smiley woman in her thirties, etc.).<\/p>\n<p>It is possible to build your own Machine Learning algorithm with Java, for example using the library <a href=\"https:\/\/deeplearning4j.konduit.ai\" target=\"_blank\" title=\"DeepLearning4J\" rel=\"noopener noreferrer\">DeepLearning4J<\/a>. When creating a model, it is important to separate the data into 2 groups, training data (80%) and test data (20%) so you can verify your model has a good prediction. It is also important to use GPUs not only CPUs to improve the performances, now the libraries are taking advantage of this, including <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=en-US&#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, with Tim van Eijndhoven<\/h4>\n<p>It was an interesting talk to create a self-driving (toy) car based on a Radio Control (RC) kit. They build this prototype as part of a challenge. The idea is to get the car to drive autonomously and follow an itinerary (a path delimited by 2 white lines) with potential curves and obstacles.<\/p>\n<blockquote><p>If Tesla can do it, why not us? At our scale, of course&#8230;<\/p><\/blockquote>\n<p>On top of the RC kit, they added a Raspberry Pi, a power convertor\/supply, a camera and a safe shutdown (useful when the car gets out of range of the WiFi so it doesn&#8217;t crash somewhere&#8230;). The total budget is around 300 euros.<\/p>\n<p>Regarding the technologies they use:<\/p>\n<ul>\n<li>Vert.x, reactive application on the JVM, event driven and non-blocking<\/li>\n<li>OpenCV library (Computer Vision) to process the video stream in real-time and make sure the car is following the white lines<\/li>\n<\/ul>\n<p>There are a lot of things to think about, the environment is probably the most challenging. The algorithm can get lost depending on:<\/p>\n<ul>\n<li>The surface (patterned carpet, tiles, dark road)<\/li>\n<li>The weather (sunny, rainy, the program is very sensitive to brightness change)<\/li>\n<li>And other random things (window reflection, mirror effect)<\/li>\n<\/ul>\n<p>They have many ideas of improvement for the future:<\/p>\n<ul>\n<li>It is not needed to analyze all images coming from the video stream (especially on a straight line). Currently, they analyze one image every 100ms (why 100ms? because it takes this amount of time to process one)<\/li>\n<li>It is not needed to analyze the whole image (some part can be discarded, what is above the horizon is not needed)<\/li>\n<li>Having the computation done on the car itself instead of a laptop over the WiFi, to avoid network latency (however the computational power of Raspberry Pi can be limited)<\/li>\n<li>Use AI and deep leaning algorithm so the car gets better at navigating using a training set: videos when the car is remotely controlled by a human (however it can take ages to build many tracks and take many videos)<\/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=en-US&#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, with Josh Long<\/h4>\n<p>Josh is Spring Developer Advocate at Pivotal, it was the first time I was attending one of his talk. I really enjoyed it and I was very impressed by the speed of speech and coding simultaneously without forgetting multiple jokes. Such a brilliant speaker.<\/p>\n<p>Josh used <a href=\"https:\/\/start.spring.io\/\" title=\"https:\/\/start.spring.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/start.spring.io\/<\/a> to generate a little project to manage reservations using <a href=\"https:\/\/spring.io\/projects\/spring-cloud\" target=\"_blank\" title=\"Spring Cloud\" rel=\"noopener noreferrer\">Spring Cloud<\/a> (built on Spring Boot). Why you should use this online tool to initialize your project? Watch the video to get the answer from Josh, it was hilarious!<\/p>\n<p>He chose Kotlin for the service (because why not?) with some endpoints to get messages and reservations using a MongoDB reactive datastore. The service was loading some data in a react way during the start up.<\/p>\n<p>He chose Java for the client using various technology coming out of the box with Spring (Eureka, Spring security, Hystrix for internal load balancer and fallbacks). The client was able to query the service to retrieve the data.<\/p>\n<p>At the end of the demo, he also shows us some serverless architecture using <a href=\"https:\/\/projectriff.io\/\" target=\"_blank\" title=\"RIFF\" rel=\"noopener noreferrer\">RIFF<\/a>, a FaaS for Kubernetes. He wrote a function to make a string uppercase, then using the command line to invoke the function deployed in Kubernetes. He did not have the time to show us the call from a service, but we got the idea.<\/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=en-US&#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>My first day at Devoxx was great, this year I tried to attend more innovative talks about Serverless and Machine Learning, a mix of live coding and theory. I will post my summary of day 2 soon, so 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=\"#DevoxxUK letters in the 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=\"#DevoxxUK letters in the hall\" title=\"#DevoxxUK letters in the hall\" width=\"550\" height=\"367\" class=\"size-medium wp-image-260\" \/><\/a><p class=\"wp-caption-text\">#DevoxxUK letters in the hall<\/p><\/div><\/p>","protected":false},"excerpt":{"rendered":"<p>&nbsp;Version fran\u00e7aise disponible This year I attended the 2 days of conference at Devoxx UK taking place in London on 10-11th May. This article is a summary of the notes I took during the first day. If you&#8217;re interested in more details in a talk, you can watch the associated video. A Future without Servers, [&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 - Day 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\/en\/2018\/05\/21\/devoxx-uk-day-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Devoxx UK 2018 - Day 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\/en\/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=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fabian Piau\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\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; Day 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\":[\"conference\",\"devoxx\",\"london\"],\"articleSection\":[\"Event\"],\"inLanguage\":\"en-US\",\"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\\\/en\\\/2018\\\/05\\\/21\\\/devoxx-uk-day-1\\\/\",\"url\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2018\\\/05\\\/21\\\/devoxx-uk-day-1\\\/\",\"name\":\"Devoxx UK 2018 - Day 1 | CarmaBlog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/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\\\/en\\\/2018\\\/05\\\/21\\\/devoxx-uk-day-1\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[[\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2018\\\/05\\\/21\\\/devoxx-uk-day-1\\\/\"]]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/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\\\/en\\\/2018\\\/05\\\/21\\\/devoxx-uk-day-1\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Homepage\",\"item\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ev\u00e9nement\",\"item\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/category\\\/event\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Devoxx UK 2018 &#8211; Day 1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/\",\"name\":\"CarmaBlog\",\"description\":\"Agility, Java programming, New technologies and more...\",\"publisher\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\",\"name\":\"Fabian Piau\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@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\":\"Java developer, Fabian is interested in new technologies and their use within an Agile environment.\",\"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 - Day 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\/en\/2018\/05\/21\/devoxx-uk-day-1\/","og_locale":"en_US","og_type":"article","og_title":"Devoxx UK 2018 - Day 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\/en\/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":{"Written by":"Fabian Piau","Est. reading time":"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; Day 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":["conference","devoxx","london"],"articleSection":["Event"],"inLanguage":"en-US","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\/en\/2018\/05\/21\/devoxx-uk-day-1\/","url":"https:\/\/blog.fabianpiau.com\/en\/2018\/05\/21\/devoxx-uk-day-1\/","name":"Devoxx UK 2018 - Day 1 | CarmaBlog","isPartOf":{"@id":"https:\/\/blog.fabianpiau.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.fabianpiau.com\/en\/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\/en\/2018\/05\/21\/devoxx-uk-day-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":[["https:\/\/blog.fabianpiau.com\/en\/2018\/05\/21\/devoxx-uk-day-1\/"]]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.fabianpiau.com\/en\/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\/en\/2018\/05\/21\/devoxx-uk-day-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Homepage","item":"https:\/\/blog.fabianpiau.com\/en\/"},{"@type":"ListItem","position":2,"name":"Ev\u00e9nement","item":"https:\/\/blog.fabianpiau.com\/en\/category\/event\/"},{"@type":"ListItem","position":3,"name":"Devoxx UK 2018 &#8211; Day 1"}]},{"@type":"WebSite","@id":"https:\/\/blog.fabianpiau.com\/en\/#website","url":"https:\/\/blog.fabianpiau.com\/en\/","name":"CarmaBlog","description":"Agility, Java programming, New technologies and more...","publisher":{"@id":"https:\/\/blog.fabianpiau.com\/en\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.fabianpiau.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/blog.fabianpiau.com\/en\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14","name":"Fabian Piau","image":{"@type":"ImageObject","inLanguage":"en-US","@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":"Java developer, Fabian is interested in new technologies and their use within an Agile environment.","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\/en\/wp-json\/wp\/v2\/posts\/4587","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/comments?post=4587"}],"version-history":[{"count":0,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/posts\/4587\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/media\/4643"}],"wp:attachment":[{"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/media?parent=4587"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/categories?post=4587"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/tags?post=4587"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}