https://github.com/LuisGC/blog
Revision fda4841007dfc38f92d6fc1cee85d6f9fe773940 authored by CircleCI on 10 April 2019, 20:32:14 UTC, committed by CircleCI on 10 April 2019, 20:32:14 UTC
1 parent c7a8e31
Raw File
Tip revision: fda4841007dfc38f92d6fc1cee85d6f9fe773940 authored by CircleCI on 10 April 2019, 20:32:14 UTC
Generated site on Wed Apr 10 20:32:14 UTC 2019 [ci skip]
Tip revision: fda4841
index.html
<!DOCTYPE HTML>

<html>
    <head>
        
            
                <title>Luiyología</title>
            
        

        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <meta name="generator" content="Hugo 0.55.0" />
        
  
    
  

  

  <link rel="apple-touch-icon-precomposed" href='/favicon/apple-touch-icon-precomposed.png'>
  <link rel="icon" href='/favicon/favicon.png'>
  
  <meta name="msapplication-TileColor" content="#da532c">
  <meta name="msapplication-TileImage" content='/favicon/mstile.png'>
  <meta name="application-name" content="Luiyología">
  <meta name="msapplication-tooltip" content="The Science that studies my interests and concerns">
  <meta name="msapplication-config" content='/favicon/ieconfig.xml'>



        
        
            
                <meta name="description" content="The Science that studies my interests and concerns">
            
        

        <meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Luiyología"/>
<meta name="twitter:description" content="The Science that studies my interests and concerns"/>
<meta name="twitter:site" content="@luiyo"/>

        <meta property="og:title" content="Luiyología" />
<meta property="og:description" content="The Science that studies my interests and concerns" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/" />

<meta property="og:updated_time" content="2019-03-30T00:00:00&#43;00:00"/>

        <meta property="og:image" content="//images/logo.png">
        <meta property="og:image:type" content="image/png">
        <meta property="og:image:width" content="512">
        <meta property="og:image:height" content="512">
        
<meta itemprop="name" content="Luiyología">
<meta itemprop="description" content="The Science that studies my interests and concerns">


        

        
            
        

        
        
            <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-light.min.css">
            <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Raleway:400,800,900|Source+Sans+Pro:400,700">
            <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
            <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.1.25/jquery.fancybox.min.css">
            <link rel="stylesheet" href="/css/main.css">
            <link rel="stylesheet" href="/css/add-on.css">
            <link rel="stylesheet" href="/css/academicons.min.css">
        

        
            
                
            
                
                    <link rel="stylesheet" href="/css/luiyologia.css">
                
            
        


  
    
    <link href='//cdn.bootcss.com/highlight.js/9.11.0/styles/github.min.css' rel='stylesheet' type='text/css' />
  


      
<script type="application/javascript">
var doNotTrack = false;
if (!doNotTrack) {
	(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
	(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
	m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
	})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
	ga('create', 'UA-555064-1', 'auto');
	
	ga('send', 'pageview');
}
</script>

    </head>
    <body>

      
      <div id="wrapper">

    
    
<header id="header">
    
      <h1><a href="/">Luiyología</a></h1>
    

    <nav class="links">
        <ul>
            
                <li>
                    <a href="https://luiyo.net/">
                            <i class="fa fa-home">&nbsp;</i>Home
                    </a>
                </li>
            
                <li>
                    <a href="/about/">
                            <i class="fa fa-id-card-o">&nbsp;</i>About
                    </a>
                </li>
            
                <li>
                    <a href="/blog/">
                            <i class="fa fa-newspaper-o">&nbsp;</i>Blog
                    </a>
                </li>
            
                <li>
                    <a href="/categories/">
                            <i class="fa fa-sitemap">&nbsp;</i>Categories
                    </a>
                </li>
            
                <li>
                    <a href="/travel-cv/">
                            <i class="fa fa-globe">&nbsp;</i>Travel CV
                    </a>
                </li>
            
                <li>
                    <a href="/blog/feed.xml">
                            <i class="fa fa-rss">&nbsp;</i>RSS
                    </a>
                </li>
            
        </ul>
    </nav>
    <nav class="main">
        <ul>
            
            <li id="share-nav" class="share-menu" style="display:none;">
                <a class="fa-share-alt" href="#share-menu">Share</a>
            </li>
            
            <li class="search">
                <a class="fa-search" href="#search">Search</a>
                <form id="search" method="get" action="//google.com/search">
                    <input type="text" name="q" placeholder="Search" />
                    <input type="hidden" name="as_sitesearch" value="/">
                </form>
            </li>
            <li class="menu">
                <a class="fa-bars" href="#menu">Menu</a>
            </li>
        </ul>
    </nav>
</header>


<section id="menu">

    
        <section>
            <form class="search" method="get" action="//google.com/search">
                <input type="text" name="q" placeholder="Search" />
                <input type="hidden" name="as_sitesearch" value="/">
            </form>
        </section>

    
        <section>
            <ul class="links">
                
                    <li>
                        <a href="https://luiyo.net/">
                            <h3>
                                <i class="fa fa-home">&nbsp;</i>Home
                            </h3>
                        </a>
                    </li>
                
                    <li>
                        <a href="/about/">
                            <h3>
                                <i class="fa fa-id-card-o">&nbsp;</i>About
                            </h3>
                        </a>
                    </li>
                
                    <li>
                        <a href="/blog/">
                            <h3>
                                <i class="fa fa-newspaper-o">&nbsp;</i>Blog
                            </h3>
                        </a>
                    </li>
                
                    <li>
                        <a href="/categories/">
                            <h3>
                                <i class="fa fa-sitemap">&nbsp;</i>Categories
                            </h3>
                        </a>
                    </li>
                
                    <li>
                        <a href="/travel-cv/">
                            <h3>
                                <i class="fa fa-globe">&nbsp;</i>Travel CV
                            </h3>
                        </a>
                    </li>
                
                    <li>
                        <a href="/blog/feed.xml">
                            <h3>
                                <i class="fa fa-rss">&nbsp;</i>RSS
                            </h3>
                        </a>
                    </li>
                
            </ul>
        </section>

    
        <section class="recent-posts">
            <div class="mini-posts">
                <header>
                    <h3>Recent Posts</h3>
                </header>
                

                
                    
                

                
                        <article class="mini-post">
                            <header>
                                <h3><a href="/blog/2019/03/greach-2019/">Greach 2019</a></h3>
                                
                                <time class="published" datetime=
                                    '2019-03-30'>
                                    March 30, 2019</time>
                            </header>
                            
    

    
        
        







  


        
        
        

        <a href="/blog/2019/03/greach-2019/" class="image featured">
            <img src="https://farm8.staticflickr.com/7814/33631536158_ccbbe9ea24_k.jpg" alt="Greach Conference 2019">
            <div class="caption">Greach Conference 2019</div>
        </a>
    


                        </article>
                
                        <article class="mini-post">
                            <header>
                                <h3><a href="/blog/2019/02/fosdem-2019-sunday/">FOSDEM 2019: Sunday</a></h3>
                                
                                <time class="published" datetime=
                                    '2019-02-24'>
                                    February 24, 2019</time>
                            </header>
                            
    

    
        
        







  


        
        
        

        <a href="/blog/2019/02/fosdem-2019-sunday/" class="image featured">
            <img src="https://farm8.staticflickr.com/7860/47207681772_102c9156fb_k.jpg" alt="Edward Betts in FOSDEM 2019 presenting his tool to link OpenStreetMap and Wikidata">
            <div class="caption">Edward Betts in FOSDEM 2019 presenting his tool to link OpenStreetMap and Wikidata</div>
        </a>
    


                        </article>
                
                        <article class="mini-post">
                            <header>
                                <h3><a href="/blog/2019/02/fosdem-2019-saturday/">FOSDEM 2019: Saturday</a></h3>
                                
                                <time class="published" datetime=
                                    '2019-02-10'>
                                    February 10, 2019</time>
                            </header>
                            
    

    
        
        







  


        
        
        

        <a href="/blog/2019/02/fosdem-2019-saturday/" class="image featured">
            <img src="https://farm8.staticflickr.com/7869/32111005427_44b0627a4f_k.jpg" alt="Bradley M. Kuhn and Karen Sandler from Software Freedom Conservancy">
            <div class="caption">Bradley M. Kuhn and Karen Sandler from Software Freedom Conservancy</div>
        </a>
    


                        </article>
                
                        <article class="mini-post">
                            <header>
                                <h3><a href="/blog/2019/01/my-year-2018-in-games/">My Year 2018 in Games</a></h3>
                                
                                <time class="published" datetime=
                                    '2019-01-13'>
                                    January 13, 2019</time>
                            </header>
                            
    

    
        
        







  


        
        
        

        <a href="/blog/2019/01/my-year-2018-in-games/" class="image featured">
            <img src="https://farm8.staticflickr.com/7840/39765897143_cb630f9045_b.jpg" alt="A tag cloud with all the games that I have played in 2018">
            <div class="caption">A tag cloud with all the games that I have played in 2018</div>
        </a>
    


                        </article>
                
                        <article class="mini-post">
                            <header>
                                <h3><a href="/blog/2019/01/my-year-2018-in-books/">My Year 2018 in Books</a></h3>
                                
                                <time class="published" datetime=
                                    '2019-01-01'>
                                    January 1, 2019</time>
                            </header>
                            
    

    
        
        







  


        
        
        

        <a href="/blog/2019/01/my-year-2018-in-books/" class="image featured">
            <img src="https://farm8.staticflickr.com/7825/46560537701_875ce8d48b_b.jpg" alt="Juan Gómez Jurado during the presentation of Reina Roja in Málaga">
            <div class="caption">Juan Gómez Jurado during the presentation of Reina Roja in Málaga</div>
        </a>
    


                        </article>
                

                
                    <a href=
                        
                            /blog/
                        
                        class="button">View more posts</a>
                
            </div>
        </section>

    
        
</section>

    
    <div id="main">
        
            <article class="post">
  <header>
    <div class="title">
        
            <h2><a href="/blog/2019/03/greach-2019/">Greach 2019</a></h2>
        
        
    </div>
    <div class="meta">
        

        <time class="published"
            datetime='2019-03-30'>
            March 30, 2019</time>
        <span class="author">LuisGC</span>
        
            <p>7 minute read</p>
        
        
    </div>
</header>


  
    

    
        
        







  


        
        
        

        <a href="/blog/2019/03/greach-2019/" class="image featured">
            <img src="https://farm8.staticflickr.com/7814/33631536158_ccbbe9ea24_k.jpg" alt="Greach Conference 2019">
            <div class="caption">Greach Conference 2019</div>
        </a>
    


  <div id="content">
    

<div class="image lateral">
  <img src="https://farm8.staticflickr.com/7886/47508138651_ab994ce172_o.png" alt="Greach 2019">
  <div class="caption">Greach 2019</div>
</div>


<p>This week I could attend another fantastic <a href="http://greachconf.com/"><strong>Greach Conference</strong></a>, an international conference that in previous years was focused on the <a href="http://www.groovy-lang.org/">Apache Groovy</a> language and ecosystem (<a href="https://grails.org/">Grails</a>, <a href="https://gradle.org/">Gradle</a>, etc.) but this year has expanded the scope to other technologies related to the <a href="https://en.wikipedia.org/wiki/Java_virtual_machine">JVM</a> like <a href="https://micronaut.io/">Micronaut</a>, <a href="https://www.graalvm.org/">GraalVM</a>, <a href="https://spring.io/projects/spring-boot">Spring Boot</a>, <a href="https://kotlinlang.org/">Kotlin</a>, <a href="https://developer.android.com/">Android</a>, &hellip;</p>

<p>Greach is a <strong>non-profitable</strong> event held in Madrid since 2011 (I think I&rsquo;ve missed only one edition). This year for the first time the organizers were <a href="http://sergiodelamo.es/"><strong>Sergio del Amo</strong></a> y <a href="https://jmiguel.eu/"><strong>José Miguel Rodríguez</strong></a>, with some help from colleagues and <a href="https://www.greachconf.com/sponsors">a lot of sponsors</a>.</p>

<p><strong>TLDR;</strong> The conference was, as expected, great both in content and speakers. It&rsquo;s a must for me, specially being held here in Madrid. This is still a Groovy lovers conference, but this year <a href="http://micronaut.io/"><strong>Micronaut</strong></a> was omnipresent. Some speakers also put the focus on <a href="https://www.graalvm.org/">GraalVM</a> and <a href="https://kotlinlang.org/">Kotlin</a> as technologies to follow closely. I will.</p>

<p>Let me summarize some of the talks I attended:</p>

<h1 id="talks">Talks</h1>

<p><a href="https://agenda.greachconf.com/talk/keynote-jvm-frameworks"><strong>JVM Frameworks Keynote</strong></a>, by <a href="https://agenda.greachconf.com/speaker/andres-almiray">Andrés Almiray</a> (<a href="https://twitter.com/aalmiray">@aalmiray</a>)</p>

<p>Andrés gave an interesting overview of the JVM Frameworks ecosystem, starting with some history. He reminded us all when <a href="https://struts.apache.org/">Struts</a> was the king of the hill, and how it surrendered to <a href="https://rubyonrails.org/">Rails</a>, Grails, etc. The microservices appeared and the frameworks evolved as well. Spring Boot has been the dominant player for a while but everything changed last year with the appearance of Micronaut. Others are following the same approach, like <a href="https://www.redhat.com">RedHat</a> with <a href="https://quarkus.io/">Quarkus</a>.</p>

<p>A perfect kick-off for a conference centered on frameworks.</p>

<div class="image">
  <img src="https://farm8.staticflickr.com/7818/33631536518_81c0e6812c_k.jpg" alt="Andrés Almiray with a microservices frameworks taxonomy">
  <div class="caption">Andrés Almiray with a microservices frameworks taxonomy</div>
</div>


<p><a href="https://agenda.greachconf.com/talk/micronaut-state-of-the-union"><strong>Micronaut State of the Union</strong></a>, by <a href="https://agenda.greachconf.com/speaker/graeme-rocher">Graeme Rocher</a> (<a href="https://twitter.com/graemerocher">@graemerocher</a>)</p>

<p>Graeme gave an overview of the features and roadmap for Micronaut. He highlighted several times that it is perfect for Microservices and serverless functions, but not only for them as it&rsquo;s also suitable for bigger applications. The goal of Graeme and his team is to break the correlation between lines of code and startup time and resources consumption. He also emphasized their fight against reflection and the consequent reflective data caches, essential in other frameworks like Spring Boot, that have several inconveniences in performance and start up time.</p>

<p>He also explained why Micronaut behaves amazingly good with GraalVM, but clarified that they are mainly focused on the performance with the standard JVM that most people still use. He ended with an interesting live demo about the Bean Introspection API, released with the last 1.1 version.</p>

<div class="image">
  <img src="https://farm8.staticflickr.com/7893/47508138841_bcdde8d3ef_k.jpg" alt="Graeme Rocher explaining Java&#39;s problems for Frameworks">
  <div class="caption">Graeme Rocher explaining Java&#39;s problems for Frameworks</div>
</div>


<p><a href="https://agenda.greachconf.com/talk/boosting-your-applications-with-distributed-caches-datagrids"><strong>Boosting your applications with distributed caches/datagrids</strong></a>, by <a href="https://agenda.greachconf.com/speaker/katia-aresti">Katia Aresti</a> (<a href="https://twitter.com/karesti">@karesti</a>)</p>

<p>Katia explained how <a href="https://infinispan.org/">Infinispan</a> works as a cache or data grid, both as a library or as a external service, and how to configure it in distributed systems. With examples using Harry Potter (sometimes confusing) analogies she also explained concepts like redundant replication or consistent hashing. She finished with a demo using Infinispan, <a href="https://vertx.io/">Eclipse Vert.X</a> and Quarkus.</p>

<p><a href="https://agenda.greachconf.com/talk/reactive-for-the-impatient-a-gentle-intro-to-reactive-programming-and-systems"><strong>Reactive for the Impatient</strong></a>, by <a href="https://agenda.greachconf.com/speaker/mary-grygleski">Mary Grygleski</a> (<a href="https://twitter.com/mgrygles">@mgrygles</a>)</p>

<p>Mary explained what reactive programming is and gave an overview of the the current Java options for this. She spent most of the time with the theoretical basics and terminology to finish with a quick overview of the main alternatives. I&rsquo;d have preferred more details or examples in the last part, as I am already familiar with the basic concepts, but the talk was overall useful and interesting.</p>

<p><a href="https://agenda.greachconf.com/talk/graalvm-with-groovy-kotlin"><strong>GraalVM with Groovy &amp; Kotlin</strong></a>, by <a href="https://agenda.greachconf.com/speaker/alberto-de-avila">Alberto de Ávila</a> (<a href="https://twitter.com/alberto_deavila">@alberto_deavila</a>)</p>

<p>Alberto explained how to use GraalVM, the architecture basics (the GraalVM compiler, the <a href="https://www.graalvm.org/truffle/javadoc/">Truffle API</a>, etc.), and how to use Groovy and Kotlin with it. It was an interesting and well documented analysis, focusing on the current limitations and the potential benefits. It&rsquo;s quite promising despite GraalVM is still far from being production ready.</p>

<div class="image">
  <img src="https://farm8.staticflickr.com/7839/33631536618_b29d65958c_k.jpg" alt="Alberto de Ávila explains the GraalVM Architecture">
  <div class="caption">Alberto de Ávila explains the GraalVM Architecture</div>
</div>


<p><a href="https://agenda.greachconf.com/talk/accelerating-ci"><strong>Accelerating CI</strong></a>, by <a href="https://agenda.greachconf.com/speaker/felipe-fernandez">Felipe Fernández</a> (<a href="https://twitter.com/felipefzdz">@felipefzdz</a>)</p>

<p>Felipe&rsquo;s talk was quite interesting. As a Gradle Enterprise developer he explained basic and advanced recommendations in order to achieve a faster and more reliable CI. He explained how to parallelize workers, how to design an effective pipeline structure and how to avoid maintenance waste in general. He ended with a couple of very good recommendations: measure everything and treat your CI as code, always.</p>

<p><a href="https://agenda.greachconf.com/talk/grails-state-of-theunion"><strong>Grails State of the Union</strong></a>, by <a href="https://agenda.greachconf.com/speaker/graeme-rocher">Graeme Rocher</a> (<a href="https://twitter.com/graemerocher">@graemerocher</a>)</p>

<p>Another interesting status review of Grails by Graeme. This time it was focused on how Grails is already benefiting from Micronaut, and how to take advantage of those benefits using Grails. He encouraged all the Grails plugin developers to migrate them to Micronaut so they can be used not only from Grails but also in other use cases.</p>

<div class="image">
  <img src="https://farm8.staticflickr.com/7853/33631536078_da0ee54abf_k.jpg" alt="Graeme Rocher explains the differences between Micronaut and Grails">
  <div class="caption">Graeme Rocher explains the differences between Micronaut and Grails</div>
</div>


<p><a href="https://agenda.greachconf.com/talk/whats-new-in-asciidoctor"><strong>What&rsquo;s new in Asciidoctor</strong></a>, by <a href="https://agenda.greachconf.com/speaker/schalk-cronje">Schalk Cronjé</a> (<a href="https://twitter.com/ysb33r">@ysb33r</a>)</p>

<p>My first choice on Saturday morning was to learn all the new things that <a href="https://asciidoctor.org/">Asciidoctor</a> is introducing. Schalk explained clearly lots of new features, making everything much more simple and intuitive. Curiously, Schalk released during the conference <a href="https://github.com/asciidoctor/asciidoctor-gradle-plugin/releases/tag/release_2_0_0">version 2.0.0</a> of the <a href="https://github.com/asciidoctor/asciidoctor-gradle-plugin">Asciidoctor Gradle plugin</a>, written entirely in Groovy.</p>

<p>I&rsquo;m not using Asciidoctor enough lately and I regret it, as it&rsquo;s fantastic.</p>

<p><a href="https://agenda.greachconf.com/talk/whats-new-in-gradle-5"><strong>What&rsquo;s new in Gradle 5?</strong></a>, by <a href="https://agenda.greachconf.com/speaker/andres-almiray">Andrés Almiray</a> (<a href="https://twitter.com/aalmiray">@aalmiray</a>)</p>

<p>Andrés summarized all the new things that are coming with Gradle 5.0, highlighting Kotlin DSL 1.0 integration for those who are ready to use it. Gradle 5.0 will have better dependency management and several build performance improvements related to composite builds, build cache management and build scans. He even demoed some of the features, I specially liked how the Gradle build scans functionality looks like.</p>

<p><a href="https://agenda.greachconf.com/talk/creating-micronaut-configurations"><strong>Creating Micronaut Configurations</strong></a>, by <a href="https://agenda.greachconf.com/speaker/ivan-lopez">Iván López</a> (<a href="https://twitter.com/ilopmar">@ilopmar</a>)</p>

<p>This year Iván was not organizing the conference, he even had time to attend lots of talks, but he delivered as usual one of the most useful talks. He reviewed how Micronaut configurations work and explained in detail how to create a new one. There are several different options to extend the framework via configurations and looks quite easy.</p>

<p><a href="https://agenda.greachconf.com/talk/automated-security-testing-in-a-devops-world"><strong>(Automated) Security Testing in a DevOps world</strong></a>, by <a href="https://agenda.greachconf.com/speaker/kevin-wittek">Kevin Wittek</a> (<a href="https://twitter.com/kiview">@kiview</a>)</p>

<p>This was one of the most interesting talks of the conference, at least for me. Kevin explained very clearly how to evolve from the traditional development pipeline to a more DevOps oriented one. Apart from some general recommendations he described all the possible security checks and validations that can be done, when and how to do them. He also created awareness about the lack of an open source reliable catalog of known vulnerabilities.</p>

<div class="image">
  <img src="https://farm8.staticflickr.com/7815/33631536338_2bf84a58c7_k.jpg" alt="Kevin Wittek with a Linus Torvalds quote">
  <div class="caption">Kevin Wittek with a Linus Torvalds quote</div>
</div>


<p><a href="https://agenda.greachconf.com/talk/micronaut-performance"><strong>Micronaut performance</strong></a>, by <a href="https://agenda.greachconf.com/speaker/miguel-angel-garcia-gomez">Miguel Ángel García Gómez</a> (<a href="https://twitter.com/MiguelAngelGG82">@MiguelAngelGG82</a>)</p>

<p>Miguel Ángel showed a comparison he made in terms of performance between the main microservice-oriented frameworks that we have now in the market: Micronaut, Spring Boot and Vert.x. He added a fourth option (Micronaut running on GraalVM) although he confessed that he could not measure everything properly with it due to the lack of compatibility between GraalVM and <a href="https://prometheus.io/">Prometheus</a>.</p>

<p>He showed the audience the results of his benchmark. The overall winner is apparently Micronaut+GraalVM despite the uncertainty related to the lack of good measurements. Among the other three options, some of them are better in some tests, but none of them is clearly better. Perhaps with larger and/or more challenging benchmarks the degradation in any option(s) could make the difference.</p>

<p><a href="https://agenda.greachconf.com/talk/its-a-bird-its-a-plane-no-its-sdkman"><strong>It&rsquo;s a bird, it&rsquo;s a plane, no it&rsquo;s SDKMAN!</strong></a>, by <a href="https://agenda.greachconf.com/speaker/marco-vermeulen">Marco Vermeulen</a> (<a href="https://twitter.com/marc0der">@marc0der</a>)</p>

<p>Marco, creator of this awesome SDK manager tool, explained the current status of SDKMAN and the next features. He also explained the architecture behind the project, and the main challenges it faces. He also made some very interesting comments about the initial decision to write it in bash to have only <a href="http://curl.haxx.se/">curl</a> and <a href="http://www.info-zip.org/">zip</a> as dependencies, and how he is now considering a rewrite in a different language.</p>

<p><a href="https://agenda.greachconf.com/talk/how-i-automated-my-barn-with-arduino-raspberry-pi-kafka-docker-kubernetes-mongo-and-the-cloud"><strong>How I Automated My Barn with Arduino, Raspberry Pi, Kafka, Docker, Kubernetes, Mongo and the Cloud</strong></a>, by <a href="https://agenda.greachconf.com/speaker/todd-sharp">Todd Sharp</a> (<a href="https://twitter.com/recursivecodes">@recursivecodes</a>)</p>

<p>My Greach conference ended with an interesting talk by Todd Sharp. He explained how he managed to create a complex combination of technologies to learn about them and also about some features of the Oracle Cloud offering. He lives in a small town and has a barn with a pig and some chickens, so he wanted to automatize as much as possible the repetitive tasks related to the barn. He started with some sensors and now he is in the way to not only read but also perform some actions like fill a water bowl, open/close the doors or detect predators in the surroundings.</p>

<p>He was very funny and, although the demo didn&rsquo;t perfectly work and made him lose some time, he could explain the complexness of what he built and the technologies he learned in the process.</p>

<div class="image">
  <img src="https://farm8.staticflickr.com/7910/33631535908_106acacad6_k.jpg" alt="Todd Sharp explains the architecture of his barn automation project">
  <div class="caption">Todd Sharp explains the architecture of his barn automation project</div>
</div>


<p>And that&rsquo;s all. <strong>See you in Greach 2020 !!</strong></p>

  </div>

  <footer>
    <ul class="stats">
  <li class="categories">
    <ul>
        
            
            
                <i class="fa fa-folder"></i>
                
                
                <li><a class="article-category-link" href="/categories/event">event</a></li>
                
                
                <li><a class="article-category-link" href="/categories/open-source">open-source</a></li>
                
                
                <li><a class="article-category-link" href="/categories/technology">technology</a></li>
                
                
                <li><a class="article-category-link" href="/categories/programming">programming</a></li>
                
                
                <li><a class="article-category-link" href="/categories/internet">internet</a></li>
                
                
                <li><a class="article-category-link" href="/categories/computer-science">computer-science</a></li>
                
            
        
    </ul>
  </li>
  <li class="tags">
    <ul>
        
    </ul>
  </li>
</ul>

  </footer>

  
    <section id="social-share">
      <ul class="icons">
        



<li>
  <a href="//twitter.com/share?url=%2fblog%2f2019%2f03%2fgreach-2019%2f&amp;text=Greach%202019&amp;via=luiyo" target="_blank" class="share-btn twitter">
    <i class="fa fa-twitter"></i>
    <p>Twitter</p>
    </a>
</li>




<li>
  <a href="//plus.google.com/share?url=%2fblog%2f2019%2f03%2fgreach-2019%2f" target="_blank" class="share-btn google-plus">
    <i class="fa fa-google-plus"></i>
    <p>Google+</p>
  </a>
</li>





<li>
  <a href="//www.facebook.com/sharer/sharer.php?u=%2fblog%2f2019%2f03%2fgreach-2019%2f" target="_blank" class="share-btn facebook">
    <i class="fa fa-facebook"></i>
    <p>Facebook</p>
    </a>
</li>




<li>
  <a href="//reddit.com/submit?url=%2fblog%2f2019%2f03%2fgreach-2019%2f&amp;title=Greach%202019" target="_blank" class="share-btn reddit">
    <i class="fa fa-reddit-alien"></i>
    <p>Reddit</p>
  </a>
</li>




<li>
  <a href="//www.linkedin.com/shareArticle?url=%2fblog%2f2019%2f03%2fgreach-2019%2f&amp;title=Greach%202019" target="_blank" class="share-btn linkedin">
      <i class="fa fa-linkedin"></i>
      <p>LinkedIn</p>
    </a>
</li>










<li>
  <a href="mailto:?subject=Check out this post by LuisGC&amp;body=%2fblog%2f2019%2f03%2fgreach-2019%2f" target="_blank" class="share-btn email">
    <i class="fa fa-envelope"></i>
    <p>Email</p>
  </a>
</li>


      </ul>
    </section>
  

</article>

    <article class="post">
        <div id="disqus_thread"></div>
<script type="application/javascript">
    var disqus_config = function () {
    
    
    
    };
    (function() {
        if (["localhost", "127.0.0.1"].indexOf(window.location.hostname) != -1) {
            document.getElementById('disqus_thread').innerHTML = 'Disqus comments not available by default when the website is previewed locally.';
            return;
        }
        var d = document, s = d.createElement('script'); s.async = true;
        s.src = '//' + "luiyologia" + '.disqus.com/embed.js';
        s.setAttribute('data-timestamp', +new Date());
        (d.head || d.body).appendChild(s);
    })();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="https://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
    </article>


<ul class="actions pagination">
    
        <li><a href="/blog/2019/02/fosdem-2019-sunday/"
                class="button big previous">FOSDEM 2019: Sunday</a></li>
    

    
</ul>



            <section id="share-menu">
    <section id="social-share-nav">
        <ul class="links">
            <header>
                <h3>Share this post <i class="fa fa-smile-o"></i></h3>
            </header>
            



<li>
  <a href="//twitter.com/share?url=%2fblog%2f2019%2f03%2fgreach-2019%2f&amp;text=Greach%202019&amp;via=luiyo" target="_blank" class="share-btn twitter">
    <i class="fa fa-twitter"></i>
    <p>Twitter</p>
    </a>
</li>




<li>
  <a href="//plus.google.com/share?url=%2fblog%2f2019%2f03%2fgreach-2019%2f" target="_blank" class="share-btn google-plus">
    <i class="fa fa-google-plus"></i>
    <p>Google+</p>
  </a>
</li>





<li>
  <a href="//www.facebook.com/sharer/sharer.php?u=%2fblog%2f2019%2f03%2fgreach-2019%2f" target="_blank" class="share-btn facebook">
    <i class="fa fa-facebook"></i>
    <p>Facebook</p>
    </a>
</li>




<li>
  <a href="//reddit.com/submit?url=%2fblog%2f2019%2f03%2fgreach-2019%2f&amp;title=Greach%202019" target="_blank" class="share-btn reddit">
    <i class="fa fa-reddit-alien"></i>
    <p>Reddit</p>
  </a>
</li>




<li>
  <a href="//www.linkedin.com/shareArticle?url=%2fblog%2f2019%2f03%2fgreach-2019%2f&amp;title=Greach%202019" target="_blank" class="share-btn linkedin">
      <i class="fa fa-linkedin"></i>
      <p>LinkedIn</p>
    </a>
</li>










<li>
  <a href="mailto:?subject=Check out this post by LuisGC&amp;body=%2fblog%2f2019%2f03%2fgreach-2019%2f" target="_blank" class="share-btn email">
    <i class="fa fa-envelope"></i>
    <p>Email</p>
  </a>
</li>


        </ul>
    </section>
</section>

        
    </div>
    
<section id="sidebar">

  
  <section id="intro">
    
    
      
        <a href='/'><img src="/img/main/Luiyologia-twitterlogo.png" width="300" alt="Luiyología" /></a>
      
    
    
      <header>
        <h2></h2>
        <p>The Science that studies my interests and concerns</p>
      </header>
    
    
      <ul class="icons">
        
        
  <li><a href="//github.com/luisgc" target="_blank" title="GitHub" class="fa fa-github"></a></li>















  <li><a href="//flickr.com/photos/luiyo" target="_blank" title="Flickr" class="fa fa-flickr"></a></li>











  <li><a href="//linkedin.com/in/luisgc" target="_blank" title="LinkedIn" class="fa fa-linkedin"></a></li>









  <li><a href="//slideshare.com/LuisGarcaCastro" target="_blank" title="SlideShare" class="fa fa-slideshare"></a></li>





  <li><a href="//plus.google.com/+LuisGarc&amp;iacute;aCastro" target="_blank" title="Google+" class="fa fa-google-plus"></a></li>



  <li><a href="//reddit.com/user/Luiyo" target="_blank" title="Reddit" class="fa fa-reddit"></a></li>





















  <li><a href="//twitter.com/luiyo" target="_blank" title="Twitter" class="fa fa-twitter"></a></li>



















  <li><a href="mailto:luiyologia@gmail.com" title="Email" class="fa fa-envelope"></a></li>


      </ul>
    
  </section>

  
  <section class="recent-posts">
    <div class="mini-posts">
      <header>
        <h3>Recent Posts</h3>
      </header>
      <div class="posts-container">
        

        
          
        

        
          <article class="mini-post">
            <header>
              <h3>
                <a href="/blog/2019/03/greach-2019/">Greach 2019</a>
              </h3>
              
              <time class="published" datetime='2019-03-30'>
                March 30, 2019
              </time>
            </header>
            
    

    
        
        







  


        
        
        

        <a href="/blog/2019/03/greach-2019/" class="image featured">
            <img src="https://farm8.staticflickr.com/7814/33631536158_ccbbe9ea24_k.jpg" alt="Greach Conference 2019">
        </a>
    


          </article>
        
          <article class="mini-post">
            <header>
              <h3>
                <a href="/blog/2019/02/fosdem-2019-sunday/">FOSDEM 2019: Sunday</a>
              </h3>
              
              <time class="published" datetime='2019-02-24'>
                February 24, 2019
              </time>
            </header>
            
    

    
        
        







  


        
        
        

        <a href="/blog/2019/02/fosdem-2019-sunday/" class="image featured">
            <img src="https://farm8.staticflickr.com/7860/47207681772_102c9156fb_k.jpg" alt="Edward Betts in FOSDEM 2019 presenting his tool to link OpenStreetMap and Wikidata">
        </a>
    


          </article>
        
          <article class="mini-post">
            <header>
              <h3>
                <a href="/blog/2019/02/fosdem-2019-saturday/">FOSDEM 2019: Saturday</a>
              </h3>
              
              <time class="published" datetime='2019-02-10'>
                February 10, 2019
              </time>
            </header>
            
    

    
        
        







  


        
        
        

        <a href="/blog/2019/02/fosdem-2019-saturday/" class="image featured">
            <img src="https://farm8.staticflickr.com/7869/32111005427_44b0627a4f_k.jpg" alt="Bradley M. Kuhn and Karen Sandler from Software Freedom Conservancy">
        </a>
    


          </article>
        
          <article class="mini-post">
            <header>
              <h3>
                <a href="/blog/2019/01/my-year-2018-in-games/">My Year 2018 in Games</a>
              </h3>
              
              <time class="published" datetime='2019-01-13'>
                January 13, 2019
              </time>
            </header>
            
    

    
        
        







  


        
        
        

        <a href="/blog/2019/01/my-year-2018-in-games/" class="image featured">
            <img src="https://farm8.staticflickr.com/7840/39765897143_cb630f9045_b.jpg" alt="A tag cloud with all the games that I have played in 2018">
        </a>
    


          </article>
        
          <article class="mini-post">
            <header>
              <h3>
                <a href="/blog/2019/01/my-year-2018-in-books/">My Year 2018 in Books</a>
              </h3>
              
              <time class="published" datetime='2019-01-01'>
                January 1, 2019
              </time>
            </header>
            
    

    
        
        







  


        
        
        

        <a href="/blog/2019/01/my-year-2018-in-books/" class="image featured">
            <img src="https://farm8.staticflickr.com/7825/46560537701_875ce8d48b_b.jpg" alt="Juan Gómez Jurado during the presentation of Reina Roja in Málaga">
        </a>
    


          </article>
        
      </div>

      
        <a href=
          
            /blog/
          
        class="button">View more posts</a>
      
    </div>
  </section>

  
  
  

  
  
    <section id="mini-bio">
      <h3>About</h3>
      <p>Ludopath, technopath, cinephile, skeptic and, by every definition, early adopter</p>
      <a href="/about/" class="button">Learn More</a>
    </section>
  

  
  <section id="footer">
    
      <ul class="icons">
        
        
  <li><a href="//github.com/luisgc" target="_blank" title="GitHub" class="fa fa-github"></a></li>















  <li><a href="//flickr.com/photos/luiyo" target="_blank" title="Flickr" class="fa fa-flickr"></a></li>











  <li><a href="//linkedin.com/in/luisgc" target="_blank" title="LinkedIn" class="fa fa-linkedin"></a></li>









  <li><a href="//slideshare.com/LuisGarcaCastro" target="_blank" title="SlideShare" class="fa fa-slideshare"></a></li>





  <li><a href="//plus.google.com/+LuisGarc&amp;iacute;aCastro" target="_blank" title="Google+" class="fa fa-google-plus"></a></li>



  <li><a href="//reddit.com/user/Luiyo" target="_blank" title="Reddit" class="fa fa-reddit"></a></li>





















  <li><a href="//twitter.com/luiyo" target="_blank" title="Twitter" class="fa fa-twitter"></a></li>



















  <li><a href="mailto:luiyologia@gmail.com" title="Email" class="fa fa-envelope"></a></li>


      </ul>
    
    <p class="copyright">
      
        &copy; 2019
        
          Luiyología
        
      .
      Powered by <a href="//gohugo.io" target="_blank">Hugo</a>
    </p>
  </section>
</section>

    </div>
    <a id="back-to-top" href="#" class="fa fa-arrow-up fa-border fa-2x"></a>
    

    
      
    

    
      
      
      
        <script src="//cdn.bootcss.com/highlight.js/9.11.0/highlight.min.js"></script>
        
        
        
        <script src="//cdn.bootcss.com/highlight.js/9.11.0/languages/r.min.js"></script>
        <script src="//cdn.bootcss.com/highlight.js/9.11.0/languages/yaml.min.js"></script>
        <script src="//cdn.bootcss.com/highlight.js/9.11.0/languages/css.min.js"></script>
        <script>hljs.configure({languages: []}); hljs.initHighlightingOnLoad();</script>
      
    
    
    
      <script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/skel/3.0.1/skel.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.1.25/jquery.fancybox.min.js"></script>
      <script src="/js/util.js"></script>
      <script src="/js/main.js"></script>
      <script src="/js/backToTop.js"></script>
    

    
      
        
      
    

    
    <script>hljs.initHighlightingOnLoad();</script>
  </body>
</html>

back to top