summaryrefslogtreecommitdiffstats
path: root/articles/merry-christmas-2019/index.html
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2019-12-23 10:32:12 +0100
committerLoïc Hoguin <[email protected]>2019-12-23 10:32:12 +0100
commit4723c9053094c688d4edf80f5b1d9f51e1739a29 (patch)
treea7a576ec40fc6de25aea50bf03383003974ab8b2 /articles/merry-christmas-2019/index.html
parent53a79df435a8e7c0e1c607ce93dc42d0e5eebdd3 (diff)
downloadninenines.eu-4723c9053094c688d4edf80f5b1d9f51e1739a29.tar.gz
ninenines.eu-4723c9053094c688d4edf80f5b1d9f51e1739a29.tar.bz2
ninenines.eu-4723c9053094c688d4edf80f5b1d9f51e1739a29.zip
Merry Christmas 2019 + FOSDEM 2020 talk
Diffstat (limited to 'articles/merry-christmas-2019/index.html')
-rw-r--r--articles/merry-christmas-2019/index.html317
1 files changed, 317 insertions, 0 deletions
diff --git a/articles/merry-christmas-2019/index.html b/articles/merry-christmas-2019/index.html
new file mode 100644
index 00000000..ce2834a3
--- /dev/null
+++ b/articles/merry-christmas-2019/index.html
@@ -0,0 +1,317 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="description" content="">
+ <meta name="author" content="Loïc Hoguin based on a design from (Soft10) Pol Cámara">
+
+ <title>Nine Nines: Merry Christmas 2019: New Beginnings</title>
+
+ <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic' rel='stylesheet' type='text/css'>
+ <link href="/css/99s.css?r=7" rel="stylesheet">
+
+ <link rel="shortcut icon" href="/img/ico/favicon.ico">
+ <link rel="apple-touch-icon-precomposed" sizes="114x114" href="/img/ico/apple-touch-icon-114.png">
+ <link rel="apple-touch-icon-precomposed" sizes="72x72" href="/img/ico/apple-touch-icon-72.png">
+ <link rel="apple-touch-icon-precomposed" href="/img/ico/apple-touch-icon-57.png">
+
+
+</head>
+
+
+<body class="">
+ <header id="page-head">
+ <div id="topbar" class="container">
+ <div class="row">
+ <div class="span2">
+ <h1 id="logo"><a href="/" title="99s">99s</a></h1>
+ </div>
+ <div class="span10">
+
+ <div id="side-header">
+ <nav>
+ <ul>
+ <li class="active"><a title="Hear my thoughts" href="/articles">Articles</a></li>
+ <li><a title="Watch my talks" href="/talks">Talks</a></li>
+ <li><a title="Read the docs" href="/docs">Documentation</a></li>
+ <li><a title="Request my services" href="/services">Consulting & Training</a></li>
+ </ul>
+ </nav>
+ <ul id="social">
+ <li>
+ <a href="https://github.com/ninenines" title="Check my Github repositories"><img src="/img/ico_github.png" data-hover="/img/ico_github_alt.png" alt="Github"></a>
+ </li>
+ <li>
+ <a title="Contact me" href="mailto:[email protected]"><img src="/img/ico_mail.png" data-hover="/img/ico_mail_alt.png"></a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+</header>
+
+<div id="contents">
+<div class="container">
+<div class="row">
+<div class="span9 maincol">
+
+<article class="blog_item">
+<header>
+ <h1 class="lined-header"><span>Merry Christmas 2019: New Beginnings</span></h1>
+ <p class="date">
+ <span class="year">2019</span>
+ <span class="day-month">23 Dec</span>
+ </p>
+</header>
+
+<p>Hope everyone had a great year. Let&apos;s take a look at what happened and what&apos;s coming.</p>
+<p>2019 has been the year of pre-releases with Ranch 2.0 and Gun 2.0 getting close to completion. I hope both of them will be out in the first half of 2020. They were supposed to be released in 2019, but I guess that was a bit optimistic. Ranch 2.0 is a big performance improvement if you need to quickly open a large amount of connections (but you probably don&apos;t), while Gun 2.0 is a few small breaking changes in the lower level interface to make things clearer, plus a ton of new features.</p>
+<p>Cowboy 2.7 has been released and 2.8 is just around the corner. 2.8 will improve the performance and include a section in the guide to get the most performance for HTTP/1.1 applications, since it is currently not obvious. There might be further experiments around asynchronous interfaces in order to squeeze the most performance out of Cowboy 2.</p>
+<p>At the start of 2019 I submitted a patch to Erlang/OTP that added support for <code>active,N</code> to the ssl application. This is available since OTP 21.3 and is the basis behind the biggest performance improvement in upcoming Cowboy 2.8.</p>
+<p>Last year I was hoping to keep the number of tickets open across all my projects to below 100. I did not quite accomplish this but have managed to keep them at around 120. Not too bad considering many of those are just ideas or personal reminders.</p>
+<p>I&apos;ve recently resumed work on my Farwest project. This is a complete reboot following the initial experiments and a few years of research. The goal is to provide a framework for building fully RESTful applications, including both server and client components. An <a href="https://github.com/ninenines/farwest_demo">early demo</a> is already available. The <a href="https://github.com/ninenines/farwest">project itself</a> is not available, but that will change as soon as I complete the first test suite in a few days. I will be giving a demo of the project at <a href="https://fosdem.org/2020/">FOSDEM 2020</a> in the <a href="https://beam-fosdem.org/">BEAM Fosdem Devroom</a> in just about one month. It&apos;s free, you should come!</p>
+<p>The demo will take around 20 minutes and I will do some live coding, creating an API for manipulating (d)ets tables. 20 minutes is a short time so we&apos;ll see how far I&apos;ll manage to get. I can promise that discovery will be working, at the very least.</p>
+<p>Related to Farwest, I&apos;ve recently submitted a patch to Erlang/OTP adding the functions <code>uri_string:resolve/2,3</code> to perform <a href="https://tools.ietf.org/html/rfc3986#section-5">reference resolution</a>. This was necessary in order to implement <a href="https://tools.ietf.org/html/rfc8288">the Link header</a> in Cowlib. I have also implemented <a href="https://tools.ietf.org/html/draft-ietf-httpbis-header-structure-14">Structured Headers</a>, <a href="https://tools.ietf.org/html/draft-ietf-httpbis-variants-06">Variants</a> and <a href="https://tools.ietf.org/html/rfc6570">URI Templates</a>. The combination of these enable efficient resource discovery in Farwest.</p>
+<p>In the context of my work with the team at RabbitMQ I have submitted patches to Erlang/OTP to add the functions <code>crypto:cipher_info/1</code> and <code>crypto:hash_info/1</code>. We have also submitted smaller patches to expose more metrics related to the Erlang distribution, helped fix a few issues around the interface for custom distribution drivers, and submitted a number of improvements to <a href="https://github.com/deadtrickster/prometheus.erl">prometheus.erl</a> including some new collectors and dashboards.</p>
+<p>You can forward Santa Claus to <a href="https://github.com/sponsors/essen">GitHub Sponsors</a> for sending presents. I use these funds mainly for improving the testing environments for my projects.</p>
+<p>Have great holidays, Merry Christmas, Happy New Year, and see you next year!</p>
+
+
+</article>
+</div>
+
+<div class="span3 sidecol">
+<h3>More articles</h3>
+<ul id="articles-nav" class="extra_margin">
+
+
+
+
+ <li><a href="https://ninenines.eu/articles/merry-christmas-2019/">Merry Christmas 2019: New Beginnings</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/github-sponsors/">GitHub Sponsors</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.7.0/">Cowboy 2.7</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/gun-2.0.0-pre.1/">Gun 2.0 pre-release 1</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/erlang-meetup-10-septembre-2019/">Erlang meetup: 10 septembre 2019</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/ranch-2.0.0-rc.1/">Ranch 2.0 release candidate 1</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/joe_the_rubber_duck/">Joe Armstrong the rubber duck</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/merry-christmas-2018/">Merry Christmas 2018: A Recap</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.6.0/">Cowboy 2.6</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/ranch-1.7.0/">Ranch 1.7</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.5.0/">Cowboy 2.5</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/gun-1.3.0/">Gun 1.3</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/gun-1.2.0/">Gun 1.2</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/ranch-1.6.0/">Ranch 1.6</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/gun-1.0.0/">Gun 1.0</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/asciideck/">Asciideck: Asciidoc for Erlang</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/gun-1.0.0-rc.1/">Gun 1.0 release candidate 1</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.4.0/">Cowboy 2.4</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.3.0/">Cowboy 2.3</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.2.0/">Cowboy 2.2</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.1.0/">Cowboy 2.1</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.0.0/">Cowboy 2.0</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.0.0-rc.2/">Cowboy 2.0 release candidate 2</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.0.0-rc.1/">Cowboy 2.0 release candidate 1</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/the-elephant-in-the-room/">The elephant in the room</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/dont-let-it-crash/">Don&#39;t let it crash</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.0.0-pre.4/">Cowboy 2.0 pre-release 4</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/ranch-1.3/">Ranch 1.3</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/ml-archives/">Mailing list archived</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/website-update/">Website update</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/erlanger-playbook-september-2015-update/">The Erlanger Playbook September 2015 Update</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/erlanger-playbook/">The Erlanger Playbook</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/erlang-validate-utf8/">Validating UTF-8 binaries with Erlang</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/on-open-source/">On open source</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/the-story-so-far/">The story so far</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy2-qs/">Cowboy 2.0 and query strings</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/january-2014-status/">January 2014 status</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/farwest-funded/">Farwest got funded!</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/erlang.mk-and-relx/">Build Erlang releases with Erlang.mk and Relx</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/xerl-0.5-intermediate-module/">Xerl: intermediate module</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/xerl-0.4-expression-separator/">Xerl: expression separator</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/erlang-scalability/">Erlang Scalability</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/xerl-0.3-atomic-expressions/">Xerl: atomic expressions</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/xerl-0.2-two-modules/">Xerl: two modules</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/xerl-0.1-empty-modules/">Xerl: empty modules</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/ranch-ftp/">Build an FTP Server with Ranch in 30 Minutes</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/tictactoe/">Erlang Tic Tac Toe</a></li>
+
+
+</ul>
+
+<h3>Feedback</h3>
+<p>Feel free to <a href="mailto:[email protected]">email us</a>
+if you found any mistake or need clarification on any of the
+articles.</p>
+
+</div>
+</div>
+</div>
+</div>
+
+ <footer>
+ <div class="container">
+ <div class="row">
+ <div class="span6">
+ <p id="scroll-top"><a href="#">↑ Scroll to top</a></p>
+ <nav>
+ <ul>
+ <li><a href="mailto:[email protected]" title="Contact us">Contact us</a></li><li><a href="https://github.com/ninenines/ninenines.github.io" title="Github repository">Contribute to this site</a></li>
+ </ul>
+ </nav>
+ </div>
+ <div class="span6 credits">
+ <p><img src="/img/footer_logo.png"></p>
+ <p>Copyright &copy; Loïc Hoguin 2012-2018</p>
+ </div>
+ </div>
+ </div>
+ </footer>
+
+
+ <script src="/js/custom.js"></script>
+ </body>
+</html>
+