summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--_build/content/articles/merry-christmas-2019.asciidoc89
-rw-r--r--_build/data/talks.toml7
-rw-r--r--_build/themes/ninenines/layouts/docs/single.html4
-rw-r--r--articles/asciideck/index.html4
-rw-r--r--articles/cowboy-2.0.0-pre.4/index.html4
-rw-r--r--articles/cowboy-2.0.0-rc.1/index.html4
-rw-r--r--articles/cowboy-2.0.0-rc.2/index.html4
-rw-r--r--articles/cowboy-2.0.0/index.html4
-rw-r--r--articles/cowboy-2.1.0/index.html4
-rw-r--r--articles/cowboy-2.2.0/index.html4
-rw-r--r--articles/cowboy-2.3.0/index.html4
-rw-r--r--articles/cowboy-2.4.0/index.html4
-rw-r--r--articles/cowboy-2.5.0/index.html4
-rw-r--r--articles/cowboy-2.6.0/index.html4
-rw-r--r--articles/cowboy-2.7.0/index.html4
-rw-r--r--articles/cowboy2-qs/index.html4
-rw-r--r--articles/dont-let-it-crash/index.html4
-rw-r--r--articles/erlang-meetup-10-septembre-2019/index.html4
-rw-r--r--articles/erlang-scalability/index.html4
-rw-r--r--articles/erlang-validate-utf8/index.html4
-rw-r--r--articles/erlang.mk-and-relx/index.html4
-rw-r--r--articles/erlanger-playbook-september-2015-update/index.html4
-rw-r--r--articles/erlanger-playbook/index.html4
-rw-r--r--articles/farwest-funded/index.html4
-rw-r--r--articles/github-sponsors/index.html4
-rw-r--r--articles/gun-1.0.0-rc.1/index.html4
-rw-r--r--articles/gun-1.0.0/index.html4
-rw-r--r--articles/gun-1.2.0/index.html4
-rw-r--r--articles/gun-1.3.0/index.html4
-rw-r--r--articles/gun-2.0.0-pre.1/index.html4
-rw-r--r--articles/index.html35
-rw-r--r--articles/index.xml14
-rw-r--r--articles/january-2014-status/index.html4
-rw-r--r--articles/joe_the_rubber_duck/index.html4
-rw-r--r--articles/merry-christmas-2018/index.html4
-rw-r--r--articles/merry-christmas-2019/index.html317
-rw-r--r--articles/ml-archives/index.html4
-rw-r--r--articles/on-open-source/index.html4
-rw-r--r--articles/page/2/index.html37
-rw-r--r--articles/page/3/index.html19
-rw-r--r--articles/ranch-1.3/index.html4
-rw-r--r--articles/ranch-1.6.0/index.html4
-rw-r--r--articles/ranch-1.7.0/index.html4
-rw-r--r--articles/ranch-2.0.0-rc.1/index.html4
-rw-r--r--articles/ranch-ftp/index.html4
-rw-r--r--articles/the-elephant-in-the-room/index.html4
-rw-r--r--articles/the-story-so-far/index.html4
-rw-r--r--articles/tictactoe/index.html4
-rw-r--r--articles/website-update/index.html4
-rw-r--r--articles/xerl-0.1-empty-modules/index.html4
-rw-r--r--articles/xerl-0.2-two-modules/index.html4
-rw-r--r--articles/xerl-0.3-atomic-expressions/index.html4
-rw-r--r--articles/xerl-0.4-expression-separator/index.html4
-rw-r--r--articles/xerl-0.5-intermediate-module/index.html4
-rw-r--r--categories/index.xml2
-rw-r--r--docs/index.xml2
-rw-r--r--donate/index.html2
-rw-r--r--index.html4
-rw-r--r--index.xml14
-rw-r--r--services/index.html2
-rw-r--r--sitemap.xml13
-rw-r--r--tags/index.xml2
-rw-r--r--talks/index.html17
63 files changed, 713 insertions, 51 deletions
diff --git a/_build/content/articles/merry-christmas-2019.asciidoc b/_build/content/articles/merry-christmas-2019.asciidoc
new file mode 100644
index 00000000..629130a4
--- /dev/null
+++ b/_build/content/articles/merry-christmas-2019.asciidoc
@@ -0,0 +1,89 @@
++++
+date = "2019-12-23T07:00:00+01:00"
+title = "Merry Christmas 2019: New Beginnings"
+
++++
+
+Hope everyone had a great year. Let's take a look at
+what happened and what's coming.
+
+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'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.
+
+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.
+
+At the start of 2019 I submitted a patch to
+Erlang/OTP that added support for `active,N` 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.
+
+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.
+
+I'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 https://github.com/ninenines/farwest_demo[early demo]
+is already available. The https://github.com/ninenines/farwest[project itself]
+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
+https://fosdem.org/2020/[FOSDEM 2020]
+in the https://beam-fosdem.org/[BEAM Fosdem Devroom]
+in just about one month. It's free, you should come!
+
+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'll
+see how far I'll manage to get. I can promise that
+discovery will be working, at the very least.
+
+Related to Farwest, I've recently submitted a patch
+to Erlang/OTP adding the functions `uri_string:resolve/2,3`
+to perform https://tools.ietf.org/html/rfc3986#section-5[reference resolution].
+This was necessary in order to implement
+https://tools.ietf.org/html/rfc8288[the Link header]
+in Cowlib. I have also implemented
+https://tools.ietf.org/html/draft-ietf-httpbis-header-structure-14[Structured Headers],
+https://tools.ietf.org/html/draft-ietf-httpbis-variants-06[Variants]
+and https://tools.ietf.org/html/rfc6570[URI Templates].
+The combination of these enable efficient resource discovery
+in Farwest.
+
+In the context of my work with the team at RabbitMQ
+I have submitted patches to Erlang/OTP to add the
+functions `crypto:cipher_info/1` and `crypto:hash_info/1`.
+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 https://github.com/deadtrickster/prometheus.erl[prometheus.erl]
+including some new collectors and dashboards.
+
+You can forward Santa Claus to
+https://github.com/sponsors/essen[GitHub Sponsors]
+for sending presents. I use these funds mainly for
+improving the testing environments for my projects.
+
+Have great holidays, Merry Christmas, Happy New Year,
+and see you next year!
diff --git a/_build/data/talks.toml b/_build/data/talks.toml
index bec91e5b..47befb30 100644
--- a/_build/data/talks.toml
+++ b/_build/data/talks.toml
@@ -5,6 +5,13 @@
# date = 2016-01-01
# location = ""
+[[future]]
+name = "BEAM FOSDEM 2020"
+title = "Farwest Demo"
+link = "https://beam-fosdem.org/"
+date = 2020-02-01
+location = "Brussels, Belgium"
+
[[past]]
name = "Erlang Paris 10 septembre 2019"
title = "Gun 2.0"
diff --git a/_build/themes/ninenines/layouts/docs/single.html b/_build/themes/ninenines/layouts/docs/single.html
index 80c01e81..e2a0e988 100644
--- a/_build/themes/ninenines/layouts/docs/single.html
+++ b/_build/themes/ninenines/layouts/docs/single.html
@@ -15,8 +15,8 @@
{{ $pages := where $.Site.Pages ".Params.project" .Params.project }}
{{ $pages := $pages | intersect (where $.Site.Pages ".Params.doctype" .Params.doctype) }}
{{ $pages := $pages | intersect (where $.Site.Pages ".Params.version" .Params.version) }}
- {{ $.Scratch.Set "prev" ($pages.Prev .Page) }}
- {{ $.Scratch.Set "next" ($pages.Next .Page) }}
+ {{ $.Scratch.Set "prev" ($pages.Next .Page) }}
+ {{ $.Scratch.Set "next" ($pages.Prev .Page) }}
<nav style="margin:1em 0">
{{ if ($.Scratch.Get "prev").Weight }}
diff --git a/articles/asciideck/index.html b/articles/asciideck/index.html
index 24588c44..a5e302f9 100644
--- a/articles/asciideck/index.html
+++ b/articles/asciideck/index.html
@@ -110,6 +110,10 @@ http://www.gnu.org/software/src-highlite -->
+ <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>
diff --git a/articles/cowboy-2.0.0-pre.4/index.html b/articles/cowboy-2.0.0-pre.4/index.html
index 6cc8ae54..d8a2abdc 100644
--- a/articles/cowboy-2.0.0-pre.4/index.html
+++ b/articles/cowboy-2.0.0-pre.4/index.html
@@ -129,6 +129,10 @@
+ <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>
diff --git a/articles/cowboy-2.0.0-rc.1/index.html b/articles/cowboy-2.0.0-rc.1/index.html
index b0d1dfb2..06d3efce 100644
--- a/articles/cowboy-2.0.0-rc.1/index.html
+++ b/articles/cowboy-2.0.0-rc.1/index.html
@@ -100,6 +100,10 @@
+ <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>
diff --git a/articles/cowboy-2.0.0-rc.2/index.html b/articles/cowboy-2.0.0-rc.2/index.html
index 41b3ad80..1c71e9c8 100644
--- a/articles/cowboy-2.0.0-rc.2/index.html
+++ b/articles/cowboy-2.0.0-rc.2/index.html
@@ -93,6 +93,10 @@
+ <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>
diff --git a/articles/cowboy-2.0.0/index.html b/articles/cowboy-2.0.0/index.html
index af19b0fd..65b10838 100644
--- a/articles/cowboy-2.0.0/index.html
+++ b/articles/cowboy-2.0.0/index.html
@@ -99,6 +99,10 @@
+ <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>
diff --git a/articles/cowboy-2.1.0/index.html b/articles/cowboy-2.1.0/index.html
index a9202074..77491e3d 100644
--- a/articles/cowboy-2.1.0/index.html
+++ b/articles/cowboy-2.1.0/index.html
@@ -96,6 +96,10 @@
+ <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>
diff --git a/articles/cowboy-2.2.0/index.html b/articles/cowboy-2.2.0/index.html
index 993b5a4e..ce56659f 100644
--- a/articles/cowboy-2.2.0/index.html
+++ b/articles/cowboy-2.2.0/index.html
@@ -94,6 +94,10 @@
+ <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>
diff --git a/articles/cowboy-2.3.0/index.html b/articles/cowboy-2.3.0/index.html
index a03e1d6e..d4e81b53 100644
--- a/articles/cowboy-2.3.0/index.html
+++ b/articles/cowboy-2.3.0/index.html
@@ -86,6 +86,10 @@
+ <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>
diff --git a/articles/cowboy-2.4.0/index.html b/articles/cowboy-2.4.0/index.html
index bb63e2e7..a3f0e770 100644
--- a/articles/cowboy-2.4.0/index.html
+++ b/articles/cowboy-2.4.0/index.html
@@ -88,6 +88,10 @@
+ <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>
diff --git a/articles/cowboy-2.5.0/index.html b/articles/cowboy-2.5.0/index.html
index e17b2e7f..27e1c52d 100644
--- a/articles/cowboy-2.5.0/index.html
+++ b/articles/cowboy-2.5.0/index.html
@@ -92,6 +92,10 @@
+ <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>
diff --git a/articles/cowboy-2.6.0/index.html b/articles/cowboy-2.6.0/index.html
index 70275bc7..034de9ae 100644
--- a/articles/cowboy-2.6.0/index.html
+++ b/articles/cowboy-2.6.0/index.html
@@ -89,6 +89,10 @@
+ <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>
diff --git a/articles/cowboy-2.7.0/index.html b/articles/cowboy-2.7.0/index.html
index 4f8d7eba..a83a037a 100644
--- a/articles/cowboy-2.7.0/index.html
+++ b/articles/cowboy-2.7.0/index.html
@@ -90,6 +90,10 @@
+ <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>
diff --git a/articles/cowboy2-qs/index.html b/articles/cowboy2-qs/index.html
index 37033e09..838d30ad 100644
--- a/articles/cowboy2-qs/index.html
+++ b/articles/cowboy2-qs/index.html
@@ -130,6 +130,10 @@ http://www.gnu.org/software/src-highlite -->
+ <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>
diff --git a/articles/dont-let-it-crash/index.html b/articles/dont-let-it-crash/index.html
index fa70a327..b4648a27 100644
--- a/articles/dont-let-it-crash/index.html
+++ b/articles/dont-let-it-crash/index.html
@@ -105,6 +105,10 @@
+ <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>
diff --git a/articles/erlang-meetup-10-septembre-2019/index.html b/articles/erlang-meetup-10-septembre-2019/index.html
index b5b3e0e8..79b4b51c 100644
--- a/articles/erlang-meetup-10-septembre-2019/index.html
+++ b/articles/erlang-meetup-10-septembre-2019/index.html
@@ -85,6 +85,10 @@
+ <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>
diff --git a/articles/erlang-scalability/index.html b/articles/erlang-scalability/index.html
index 3413c42f..f983e8d8 100644
--- a/articles/erlang-scalability/index.html
+++ b/articles/erlang-scalability/index.html
@@ -117,6 +117,10 @@
+ <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>
diff --git a/articles/erlang-validate-utf8/index.html b/articles/erlang-validate-utf8/index.html
index 08626aca..4ba95d01 100644
--- a/articles/erlang-validate-utf8/index.html
+++ b/articles/erlang-validate-utf8/index.html
@@ -233,6 +233,10 @@ http://www.gnu.org/software/src-highlite -->
+ <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>
diff --git a/articles/erlang.mk-and-relx/index.html b/articles/erlang.mk-and-relx/index.html
index e65db0ad..97c1d182 100644
--- a/articles/erlang.mk-and-relx/index.html
+++ b/articles/erlang.mk-and-relx/index.html
@@ -119,6 +119,10 @@ cowboy-0.8.5 erlydtl-0.7.0 ninenines-0.2.0 stdlib-1.19.1</pre></div></div>
+ <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>
diff --git a/articles/erlanger-playbook-september-2015-update/index.html b/articles/erlanger-playbook-september-2015-update/index.html
index 7775cf21..7c87ec25 100644
--- a/articles/erlanger-playbook-september-2015-update/index.html
+++ b/articles/erlanger-playbook-september-2015-update/index.html
@@ -88,6 +88,10 @@
+ <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>
diff --git a/articles/erlanger-playbook/index.html b/articles/erlanger-playbook/index.html
index 9b1ff4d3..b7ccb935 100644
--- a/articles/erlanger-playbook/index.html
+++ b/articles/erlanger-playbook/index.html
@@ -129,6 +129,10 @@
+ <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>
diff --git a/articles/farwest-funded/index.html b/articles/farwest-funded/index.html
index 352868b1..cdb45a2a 100644
--- a/articles/farwest-funded/index.html
+++ b/articles/farwest-funded/index.html
@@ -89,6 +89,10 @@
+ <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>
diff --git a/articles/github-sponsors/index.html b/articles/github-sponsors/index.html
index 40447de5..36405117 100644
--- a/articles/github-sponsors/index.html
+++ b/articles/github-sponsors/index.html
@@ -86,6 +86,10 @@
+ <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>
diff --git a/articles/gun-1.0.0-rc.1/index.html b/articles/gun-1.0.0-rc.1/index.html
index 6f6c07ad..b44fc307 100644
--- a/articles/gun-1.0.0-rc.1/index.html
+++ b/articles/gun-1.0.0-rc.1/index.html
@@ -90,6 +90,10 @@
+ <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>
diff --git a/articles/gun-1.0.0/index.html b/articles/gun-1.0.0/index.html
index 5f226550..6667201b 100644
--- a/articles/gun-1.0.0/index.html
+++ b/articles/gun-1.0.0/index.html
@@ -89,6 +89,10 @@
+ <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>
diff --git a/articles/gun-1.2.0/index.html b/articles/gun-1.2.0/index.html
index f53b7f12..4afaf9e0 100644
--- a/articles/gun-1.2.0/index.html
+++ b/articles/gun-1.2.0/index.html
@@ -89,6 +89,10 @@
+ <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>
diff --git a/articles/gun-1.3.0/index.html b/articles/gun-1.3.0/index.html
index 9bdd7ac4..7a85e2f0 100644
--- a/articles/gun-1.3.0/index.html
+++ b/articles/gun-1.3.0/index.html
@@ -87,6 +87,10 @@
+ <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>
diff --git a/articles/gun-2.0.0-pre.1/index.html b/articles/gun-2.0.0-pre.1/index.html
index fd4fc317..bb61eeae 100644
--- a/articles/gun-2.0.0-pre.1/index.html
+++ b/articles/gun-2.0.0-pre.1/index.html
@@ -94,6 +94,10 @@
+ <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>
diff --git a/articles/index.html b/articles/index.html
index 78530840..6d41883f 100644
--- a/articles/index.html
+++ b/articles/index.html
@@ -67,6 +67,23 @@
<article class="blog_item">
<header>
+ <h2><a href="https://ninenines.eu/articles/merry-christmas-2019/">Merry Christmas 2019: New Beginnings</a></h2>
+ <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.
+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.</p>
+
+ <p style="text-align:right">
+ <a class="read_more" href="https://ninenines.eu/articles/merry-christmas-2019/">Read More</a>
+ </p>
+ </article>
+
+ <article class="blog_item">
+ <header>
<h2><a href="https://ninenines.eu/articles/github-sponsors/">GitHub Sponsors</a></h2>
<p class="date">
<span class="year">2019</span>
@@ -417,24 +434,6 @@ The cowboy_req:stream_trailers/2 function has been added. It terminates the stre
</p>
</article>
- <article class="blog_item">
- <header>
- <h2><a href="https://ninenines.eu/articles/cowboy-2.1.0/">Cowboy 2.1</a></h2>
- <p class="date">
- <span class="year">2017</span>
- <span class="day-month">09 Nov</span>
- </p>
- </header>
-
- <p>Cowboy 2.1.0 has been released!
-This release focused on adding features that were temporarily removed during the 2.0 release process:
-The client TLS certificate can now be obtained. The 100 Continue response is now sent automatically again when necessary. NEW: It is now possible to send informational responses (1XX) directly from user code via the cowboy_req:inform/2,3 functions. NEW: cowboy_rest handlers can now switch to any other type of handler from almost any callback.</p>
-
- <p style="text-align:right">
- <a class="read_more" href="https://ninenines.eu/articles/cowboy-2.1.0/">Read More</a>
- </p>
- </article>
-
<nav class="pagination" role="pagination">
diff --git a/articles/index.xml b/articles/index.xml
index bdd11cf4..ca212dc5 100644
--- a/articles/index.xml
+++ b/articles/index.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Articles on Nine Nines</title>
@@ -6,12 +6,22 @@
<description>Recent content in Articles on Nine Nines</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
- <lastBuildDate>Mon, 28 Oct 2019 07:00:00 +0100</lastBuildDate>
+ <lastBuildDate>Mon, 23 Dec 2019 07:00:00 +0100</lastBuildDate>
<atom:link href="https://ninenines.eu/articles/index.xml" rel="self" type="application/rss+xml" />
<item>
+ <title>Merry Christmas 2019: New Beginnings</title>
+ <link>https://ninenines.eu/articles/merry-christmas-2019/</link>
+ <pubDate>Mon, 23 Dec 2019 07:00:00 +0100</pubDate>
+
+ <guid>https://ninenines.eu/articles/merry-christmas-2019/</guid>
+ <description>Hope everyone had a great year. Let&amp;apos;s take a look at what happened and what&amp;apos;s coming.
+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&amp;apos;t), while Gun 2.</description>
+ </item>
+
+ <item>
<title>GitHub Sponsors</title>
<link>https://ninenines.eu/articles/github-sponsors/</link>
<pubDate>Mon, 28 Oct 2019 07:00:00 +0100</pubDate>
diff --git a/articles/january-2014-status/index.html b/articles/january-2014-status/index.html
index 8548300f..11f0ee89 100644
--- a/articles/january-2014-status/index.html
+++ b/articles/january-2014-status/index.html
@@ -115,6 +115,10 @@
+ <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>
diff --git a/articles/joe_the_rubber_duck/index.html b/articles/joe_the_rubber_duck/index.html
index 4bc1fbda..e5e73c6e 100644
--- a/articles/joe_the_rubber_duck/index.html
+++ b/articles/joe_the_rubber_duck/index.html
@@ -89,6 +89,10 @@
+ <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>
diff --git a/articles/merry-christmas-2018/index.html b/articles/merry-christmas-2018/index.html
index 53101c6b..e5828080 100644
--- a/articles/merry-christmas-2018/index.html
+++ b/articles/merry-christmas-2018/index.html
@@ -96,6 +96,10 @@
+ <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>
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>
+
diff --git a/articles/ml-archives/index.html b/articles/ml-archives/index.html
index ba801df6..98eab7b0 100644
--- a/articles/ml-archives/index.html
+++ b/articles/ml-archives/index.html
@@ -86,6 +86,10 @@
+ <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>
diff --git a/articles/on-open-source/index.html b/articles/on-open-source/index.html
index 2743cbaa..5892d05a 100644
--- a/articles/on-open-source/index.html
+++ b/articles/on-open-source/index.html
@@ -98,6 +98,10 @@ much left to look at today</a>. This was followed by a <a href="https://github.c
+ <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>
diff --git a/articles/page/2/index.html b/articles/page/2/index.html
index fd1ef138..cc841b06 100644
--- a/articles/page/2/index.html
+++ b/articles/page/2/index.html
@@ -67,6 +67,24 @@
<article class="blog_item">
<header>
+ <h2><a href="https://ninenines.eu/articles/cowboy-2.1.0/">Cowboy 2.1</a></h2>
+ <p class="date">
+ <span class="year">2017</span>
+ <span class="day-month">09 Nov</span>
+ </p>
+ </header>
+
+ <p>Cowboy 2.1.0 has been released!
+This release focused on adding features that were temporarily removed during the 2.0 release process:
+The client TLS certificate can now be obtained. The 100 Continue response is now sent automatically again when necessary. NEW: It is now possible to send informational responses (1XX) directly from user code via the cowboy_req:inform/2,3 functions. NEW: cowboy_rest handlers can now switch to any other type of handler from almost any callback.</p>
+
+ <p style="text-align:right">
+ <a class="read_more" href="https://ninenines.eu/articles/cowboy-2.1.0/">Read More</a>
+ </p>
+ </article>
+
+ <article class="blog_item">
+ <header>
<h2><a href="https://ninenines.eu/articles/cowboy-2.0.0/">Cowboy 2.0</a></h2>
<p class="date">
<span class="year">2017</span>
@@ -408,25 +426,6 @@ xerl -&gt; tokens -&gt; AST -&gt; intermediate -&gt; cerl Today we will perform
</p>
</article>
- <article class="blog_item">
- <header>
- <h2><a href="https://ninenines.eu/articles/xerl-0.4-expression-separator/">Xerl: expression separator</a></h2>
- <p class="date">
- <span class="year">2013</span>
- <span class="day-month">01 Mar</span>
- </p>
- </header>
-
- <p>As promised we are adding an expression separator this time. This will be short and easy.
-In the tokenizer we only need to add a line recognizing the comma as a valid token.
-, : {token, {',', TokenLine}}. Then we need to change the following lines in the parser:
-exprs -&gt; expr : ['$1']. exprs -&gt; expr exprs : ['$1' | '$2']. And add a comma between the expressions on the second line:</p>
-
- <p style="text-align:right">
- <a class="read_more" href="https://ninenines.eu/articles/xerl-0.4-expression-separator/">Read More</a>
- </p>
- </article>
-
<nav class="pagination" role="pagination">
diff --git a/articles/page/3/index.html b/articles/page/3/index.html
index 8c6c149c..e0a1751b 100644
--- a/articles/page/3/index.html
+++ b/articles/page/3/index.html
@@ -67,6 +67,25 @@
<article class="blog_item">
<header>
+ <h2><a href="https://ninenines.eu/articles/xerl-0.4-expression-separator/">Xerl: expression separator</a></h2>
+ <p class="date">
+ <span class="year">2013</span>
+ <span class="day-month">01 Mar</span>
+ </p>
+ </header>
+
+ <p>As promised we are adding an expression separator this time. This will be short and easy.
+In the tokenizer we only need to add a line recognizing the comma as a valid token.
+, : {token, {',', TokenLine}}. Then we need to change the following lines in the parser:
+exprs -&gt; expr : ['$1']. exprs -&gt; expr exprs : ['$1' | '$2']. And add a comma between the expressions on the second line:</p>
+
+ <p style="text-align:right">
+ <a class="read_more" href="https://ninenines.eu/articles/xerl-0.4-expression-separator/">Read More</a>
+ </p>
+ </article>
+
+ <article class="blog_item">
+ <header>
<h2><a href="https://ninenines.eu/articles/erlang-scalability/">Erlang Scalability</a></h2>
<p class="date">
<span class="year">2013</span>
diff --git a/articles/ranch-1.3/index.html b/articles/ranch-1.3/index.html
index 048edc25..abf57d4c 100644
--- a/articles/ranch-1.3/index.html
+++ b/articles/ranch-1.3/index.html
@@ -127,6 +127,10 @@ Primary key fingerprint<font color="#990000">:</font> F19F 189C ECC7 <font color
+ <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>
diff --git a/articles/ranch-1.6.0/index.html b/articles/ranch-1.6.0/index.html
index fa60f1c5..575e71d0 100644
--- a/articles/ranch-1.6.0/index.html
+++ b/articles/ranch-1.6.0/index.html
@@ -89,6 +89,10 @@
+ <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>
diff --git a/articles/ranch-1.7.0/index.html b/articles/ranch-1.7.0/index.html
index 9125793f..0f019950 100644
--- a/articles/ranch-1.7.0/index.html
+++ b/articles/ranch-1.7.0/index.html
@@ -88,6 +88,10 @@
+ <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>
diff --git a/articles/ranch-2.0.0-rc.1/index.html b/articles/ranch-2.0.0-rc.1/index.html
index 4839033d..cca446ca 100644
--- a/articles/ranch-2.0.0-rc.1/index.html
+++ b/articles/ranch-2.0.0-rc.1/index.html
@@ -97,6 +97,10 @@
+ <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>
diff --git a/articles/ranch-ftp/index.html b/articles/ranch-ftp/index.html
index e769a05f..4ed3f275 100644
--- a/articles/ranch-ftp/index.html
+++ b/articles/ranch-ftp/index.html
@@ -229,6 +229,10 @@ http://www.gnu.org/software/src-highlite -->
+ <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>
diff --git a/articles/the-elephant-in-the-room/index.html b/articles/the-elephant-in-the-room/index.html
index cda48d45..c80c938e 100644
--- a/articles/the-elephant-in-the-room/index.html
+++ b/articles/the-elephant-in-the-room/index.html
@@ -111,6 +111,10 @@
+ <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>
diff --git a/articles/the-story-so-far/index.html b/articles/the-story-so-far/index.html
index efb38b58..b5f0ab48 100644
--- a/articles/the-story-so-far/index.html
+++ b/articles/the-story-so-far/index.html
@@ -102,6 +102,10 @@
+ <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>
diff --git a/articles/tictactoe/index.html b/articles/tictactoe/index.html
index f569c06f..d89b3410 100644
--- a/articles/tictactoe/index.html
+++ b/articles/tictactoe/index.html
@@ -134,6 +134,10 @@ http://www.gnu.org/software/src-highlite -->
+ <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>
diff --git a/articles/website-update/index.html b/articles/website-update/index.html
index a99ff029..ff5acbf7 100644
--- a/articles/website-update/index.html
+++ b/articles/website-update/index.html
@@ -91,6 +91,10 @@
+ <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>
diff --git a/articles/xerl-0.1-empty-modules/index.html b/articles/xerl-0.1-empty-modules/index.html
index a3f02097..f6de0a9a 100644
--- a/articles/xerl-0.1-empty-modules/index.html
+++ b/articles/xerl-0.1-empty-modules/index.html
@@ -169,6 +169,10 @@ http://www.gnu.org/software/src-highlite -->
+ <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>
diff --git a/articles/xerl-0.2-two-modules/index.html b/articles/xerl-0.2-two-modules/index.html
index 49264892..6911bb8b 100644
--- a/articles/xerl-0.2-two-modules/index.html
+++ b/articles/xerl-0.2-two-modules/index.html
@@ -197,6 +197,10 @@ http://www.gnu.org/software/src-highlite -->
+ <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>
diff --git a/articles/xerl-0.3-atomic-expressions/index.html b/articles/xerl-0.3-atomic-expressions/index.html
index cc3d8281..ca567e38 100644
--- a/articles/xerl-0.3-atomic-expressions/index.html
+++ b/articles/xerl-0.3-atomic-expressions/index.html
@@ -166,6 +166,10 @@ http://www.gnu.org/software/src-highlite -->
+ <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>
diff --git a/articles/xerl-0.4-expression-separator/index.html b/articles/xerl-0.4-expression-separator/index.html
index 2de37806..85116189 100644
--- a/articles/xerl-0.4-expression-separator/index.html
+++ b/articles/xerl-0.4-expression-separator/index.html
@@ -118,6 +118,10 @@ http://www.gnu.org/software/src-highlite -->
+ <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>
diff --git a/articles/xerl-0.5-intermediate-module/index.html b/articles/xerl-0.5-intermediate-module/index.html
index 72ef4da3..3c724986 100644
--- a/articles/xerl-0.5-intermediate-module/index.html
+++ b/articles/xerl-0.5-intermediate-module/index.html
@@ -162,6 +162,10 @@ http://www.gnu.org/software/src-highlite -->
+ <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>
diff --git a/categories/index.xml b/categories/index.xml
index 28dfb867..7adc6735 100644
--- a/categories/index.xml
+++ b/categories/index.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Categories on Nine Nines</title>
diff --git a/docs/index.xml b/docs/index.xml
index b777760b..622149bf 100644
--- a/docs/index.xml
+++ b/docs/index.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Docs on Nine Nines</title>
diff --git a/donate/index.html b/donate/index.html
index bc35113d..9cd7de6c 100644
--- a/donate/index.html
+++ b/donate/index.html
@@ -710,6 +710,8 @@
+
+
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
<p>Donate to Loïc Hoguin because his work on Cowboy, Ranch, Gun and Erlang.mk is fantastic:</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" style="display:inline">
diff --git a/index.html b/index.html
index 84efedb9..815f21c0 100644
--- a/index.html
+++ b/index.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
- <meta name="generator" content="Hugo 0.58.3" />
+ <meta name="generator" content="Hugo 0.59.1" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
@@ -851,6 +851,8 @@
+
+
<p>Reward my work via <a href="https://github.com/sponsors/essen">GitHub Sponsors</a> and<br/>GitHub will double the funds I receive!</p>
diff --git a/index.xml b/index.xml
index 47733361..0adf185a 100644
--- a/index.xml
+++ b/index.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Nine Nines</title>
@@ -6,7 +6,7 @@
<description>Recent content on Nine Nines</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
- <lastBuildDate>Mon, 28 Oct 2019 07:00:00 +0100</lastBuildDate>
+ <lastBuildDate>Mon, 23 Dec 2019 07:00:00 +0100</lastBuildDate>
<atom:link href="https://ninenines.eu/index.xml" rel="self" type="application/rss+xml" />
@@ -3087,6 +3087,16 @@ HTTP IANA Registries HTTP Method Registry HTTP Status Code Registry Message He
</item>
<item>
+ <title>Merry Christmas 2019: New Beginnings</title>
+ <link>https://ninenines.eu/articles/merry-christmas-2019/</link>
+ <pubDate>Mon, 23 Dec 2019 07:00:00 +0100</pubDate>
+
+ <guid>https://ninenines.eu/articles/merry-christmas-2019/</guid>
+ <description>Hope everyone had a great year. Let&amp;apos;s take a look at what happened and what&amp;apos;s coming.
+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&amp;apos;t), while Gun 2.</description>
+ </item>
+
+ <item>
<title>GitHub Sponsors</title>
<link>https://ninenines.eu/articles/github-sponsors/</link>
<pubDate>Mon, 28 Oct 2019 07:00:00 +0100</pubDate>
diff --git a/services/index.html b/services/index.html
index 9a8fb4b0..75c79435 100644
--- a/services/index.html
+++ b/services/index.html
@@ -736,6 +736,8 @@
+
+
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
<p>Donate to Loïc Hoguin because his work on Cowboy, Ranch, Gun and Erlang.mk is fantastic:</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" style="display:inline">
diff --git a/sitemap.xml b/sitemap.xml
index 2f2faac0..943ed347 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
@@ -1124,16 +1124,21 @@
<url>
<loc>https://ninenines.eu/articles/</loc>
- <lastmod>2019-10-28T07:00:00+01:00</lastmod>
+ <lastmod>2019-12-23T07:00:00+01:00</lastmod>
</url>
<url>
- <loc>https://ninenines.eu/articles/github-sponsors/</loc>
- <lastmod>2019-10-28T07:00:00+01:00</lastmod>
+ <loc>https://ninenines.eu/articles/merry-christmas-2019/</loc>
+ <lastmod>2019-12-23T07:00:00+01:00</lastmod>
</url>
<url>
<loc>https://ninenines.eu/</loc>
+ <lastmod>2019-12-23T07:00:00+01:00</lastmod>
+ </url>
+
+ <url>
+ <loc>https://ninenines.eu/articles/github-sponsors/</loc>
<lastmod>2019-10-28T07:00:00+01:00</lastmod>
</url>
diff --git a/tags/index.xml b/tags/index.xml
index 875943a0..e0c4a806 100644
--- a/tags/index.xml
+++ b/tags/index.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Tags on Nine Nines</title>
diff --git a/talks/index.html b/talks/index.html
index ac61ad72..c4b227e4 100644
--- a/talks/index.html
+++ b/talks/index.html
@@ -63,6 +63,23 @@
<h1 class="lined-header"><span>Talks</span></h1>
+<h2>Upcoming Talks</h2>
+<div id="events" class="eventslist">
+
+ <article class="event">
+ <p class="date">
+ <span class="year">2020</span>
+ <span class="day-month">01 Feb</span>
+ </p>
+ <h3>Farwest Demo</h3>
+ <p>Conference: <a href="https://beam-fosdem.org/">BEAM FOSDEM 2020</a></p>
+ <p>Brussels, Belgium</p>
+ </article>
+
+</div>
+
+<h2>Previous Talks</h2>
+
<ul>