summaryrefslogtreecommitdiffstats
path: root/articles
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2017-11-09 13:18:29 +0000
committerLoïc Hoguin <[email protected]>2017-11-09 13:18:29 +0000
commit260b1e2a7c3d1ac9aee4f96e24ddae6417675e55 (patch)
tree37f3bec6bda232d8bd6e861187368a85dd8571ad /articles
parent28b5bf18a3be3b933a76f8b8912c8ee55238cdc6 (diff)
downloadninenines.eu-260b1e2a7c3d1ac9aee4f96e24ddae6417675e55.tar.gz
ninenines.eu-260b1e2a7c3d1ac9aee4f96e24ddae6417675e55.tar.bz2
ninenines.eu-260b1e2a7c3d1ac9aee4f96e24ddae6417675e55.zip
Cowboy 2.1.0 announcement
Diffstat (limited to 'articles')
-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.html274
-rw-r--r--articles/cowboy2-qs/index.html4
-rw-r--r--articles/dont-let-it-crash/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/index.html37
-rw-r--r--articles/index.xml13
-rw-r--r--articles/january-2014-status/index.html4
-rw-r--r--articles/ml-archives/index.html4
-rw-r--r--articles/on-open-source/index.html4
-rw-r--r--articles/page/2/index.html19
-rw-r--r--articles/ranch-1.3/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
30 files changed, 427 insertions, 20 deletions
diff --git a/articles/cowboy-2.0.0-pre.4/index.html b/articles/cowboy-2.0.0-pre.4/index.html
index caeed70a..23888a05 100644
--- a/articles/cowboy-2.0.0-pre.4/index.html
+++ b/articles/cowboy-2.0.0-pre.4/index.html
@@ -193,6 +193,10 @@ added back.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/cowboy-2.0.0-rc.1/index.html b/articles/cowboy-2.0.0-rc.1/index.html
index 4c897115..2dfc5025 100644
--- a/articles/cowboy-2.0.0-rc.1/index.html
+++ b/articles/cowboy-2.0.0-rc.1/index.html
@@ -139,6 +139,10 @@ purposes of testing.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/cowboy-2.0.0-rc.2/index.html b/articles/cowboy-2.0.0-rc.2/index.html
index c6d15cdd..daccb31a 100644
--- a/articles/cowboy-2.0.0-rc.2/index.html
+++ b/articles/cowboy-2.0.0-rc.2/index.html
@@ -118,6 +118,10 @@ before 2.0.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/cowboy-2.0.0/index.html b/articles/cowboy-2.0.0/index.html
index 35232f17..4acfa976 100644
--- a/articles/cowboy-2.0.0/index.html
+++ b/articles/cowboy-2.0.0/index.html
@@ -131,6 +131,10 @@ should be reported by opening a ticket. Thanks!</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/cowboy-2.1.0/index.html b/articles/cowboy-2.1.0/index.html
new file mode 100644
index 00000000..45076f76
--- /dev/null
+++ b/articles/cowboy-2.1.0/index.html
@@ -0,0 +1,274 @@
+<!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">
+
+ <meta name="generator" content="Hugo 0.30.2" />
+
+ <title>Nine Nines: Cowboy 2.1</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=1" 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="Keep in touch!" href="http://twitter.com/lhoguin"><img src="/img/ico_microblog.png" data-hover="/img/ico_microblog_alt.png"></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>Cowboy 2.1</span></h1>
+ <p class="date">
+ <span class="day">09</span>
+ <span class="month">Nov</span>
+ </p>
+</header>
+
+<div class="paragraph"><p>Cowboy <code>2.1.0</code> has been released!</p></div>
+<div class="paragraph"><p>This release focused on adding features that were temporarily
+removed during the 2.0 release process:</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+The client TLS certificate can now be obtained.
+</p>
+</li>
+<li>
+<p>
+The 100 Continue response is now sent automatically
+ again when necessary.
+</p>
+</li>
+<li>
+<p>
+NEW: It is now possible to send informational
+ responses (1XX) directly from user code via the
+ <code>cowboy_req:inform/2,3</code> functions.
+</p>
+</li>
+<li>
+<p>
+NEW: <code>cowboy_rest</code> handlers can now switch to any
+ other type of handler from almost any callback. This
+ is especially useful to switch to <code>cowboy_loop</code> to
+ stream the request or response body.
+</p>
+</li>
+</ul></div>
+<div class="paragraph"><p>A number of bugs have also been fixed. A more complete
+list of changes can be found in the migration guide:
+<a href="https://ninenines.eu/docs/en/cowboy/2.0/guide/migrating_from_2.0/">Migrating from Cowboy 2.0 to 2.1</a>.</p></div>
+<div class="paragraph"><p>The next release will see the added support for trailers,
+which are necessary for implementing the gRPC protocol.</p></div>
+<div class="paragraph"><p>Feeling good about this release? Send money one-time
+or monthly via</p></div>
+<div class="paragraph"><p>You can donate to this project via
+<a href="https://salt.bountysource.com/teams/ninenines">BountySource</a>
+because I need to eat snacks when I write code.
+Thanks in advance!</p></div>
+<div class="paragraph"><p>As usual, any feedback is appreciated, and any issues
+should be reported by opening a ticket. Thanks!</p></div>
+
+</article>
+</div>
+
+<div class="span3 sidecol">
+<h3>More articles</h3>
+<ul id="articles-nav" class="extra_margin">
+
+
+ <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-2016</p>
+ </div>
+ </div>
+ </div>
+ </footer>
+
+
+ <script src="/js/custom.js"></script>
+ </body>
+</html>
+
diff --git a/articles/cowboy2-qs/index.html b/articles/cowboy2-qs/index.html
index a53ae12e..72bc6ab0 100644
--- a/articles/cowboy2-qs/index.html
+++ b/articles/cowboy2-qs/index.html
@@ -232,6 +232,10 @@ thoughts that went into this rather than just the conclusion.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/dont-let-it-crash/index.html b/articles/dont-let-it-crash/index.html
index 8602c40b..87e2f527 100644
--- a/articles/dont-let-it-crash/index.html
+++ b/articles/dont-let-it-crash/index.html
@@ -195,6 +195,10 @@ make more.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/erlang-scalability/index.html b/articles/erlang-scalability/index.html
index c678bc5c..d5abef81 100644
--- a/articles/erlang-scalability/index.html
+++ b/articles/erlang-scalability/index.html
@@ -217,6 +217,10 @@ concurrently.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/erlang-validate-utf8/index.html b/articles/erlang-validate-utf8/index.html
index 74638863..b73fd24c 100644
--- a/articles/erlang-validate-utf8/index.html
+++ b/articles/erlang-validate-utf8/index.html
@@ -268,6 +268,10 @@ http://www.gnu.org/software/src-highlite -->
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/erlang.mk-and-relx/index.html b/articles/erlang.mk-and-relx/index.html
index 577caa5c..d1a7f9b6 100644
--- a/articles/erlang.mk-and-relx/index.html
+++ b/articles/erlang.mk-and-relx/index.html
@@ -195,6 +195,10 @@ containing all the flags to pass to the Erlang VM, for example
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/erlanger-playbook-september-2015-update/index.html b/articles/erlanger-playbook-september-2015-update/index.html
index 25be76c7..cbcccbc3 100644
--- a/articles/erlanger-playbook-september-2015-update/index.html
+++ b/articles/erlanger-playbook-september-2015-update/index.html
@@ -96,6 +96,10 @@ will be used to allow me to work on open source full time.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/erlanger-playbook/index.html b/articles/erlanger-playbook/index.html
index b1b06412..c0d96c50 100644
--- a/articles/erlanger-playbook/index.html
+++ b/articles/erlanger-playbook/index.html
@@ -164,6 +164,10 @@ You will receive updates to the book for free as soon as they are available.</p>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/farwest-funded/index.html b/articles/farwest-funded/index.html
index 665ba16d..8b9bc370 100644
--- a/articles/farwest-funded/index.html
+++ b/articles/farwest-funded/index.html
@@ -104,6 +104,10 @@ can help!</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/index.html b/articles/index.html
index a4cce0ed..eb1e2c27 100644
--- a/articles/index.html
+++ b/articles/index.html
@@ -72,6 +72,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="day">09</span>
+ <span class="month">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="day">04</span>
@@ -411,25 +429,6 @@
</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="day">01</span>
- <span class="month">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/index.xml b/articles/index.xml
index fde733fb..0efba687 100644
--- a/articles/index.xml
+++ b/articles/index.xml
@@ -6,12 +6,23 @@
<description>Recent content in Articles on Nine Nines</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
- <lastBuildDate>Wed, 04 Oct 2017 12:00:00 +0100</lastBuildDate>
+ <lastBuildDate>Thu, 09 Nov 2017 12:00:00 +0100</lastBuildDate>
<atom:link href="https://ninenines.eu/articles/index.xml" rel="self" type="application/rss+xml" />
<item>
+ <title>Cowboy 2.1</title>
+ <link>https://ninenines.eu/articles/cowboy-2.1.0/</link>
+ <pubDate>Thu, 09 Nov 2017 12:00:00 +0100</pubDate>
+
+ <guid>https://ninenines.eu/articles/cowboy-2.1.0/</guid>
+ <description>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.</description>
+ </item>
+
+ <item>
<title>Cowboy 2.0</title>
<link>https://ninenines.eu/articles/cowboy-2.0.0/</link>
<pubDate>Wed, 04 Oct 2017 12:00:00 +0100</pubDate>
diff --git a/articles/january-2014-status/index.html b/articles/january-2014-status/index.html
index 49db7d25..6b09c04b 100644
--- a/articles/january-2014-status/index.html
+++ b/articles/january-2014-status/index.html
@@ -223,6 +223,10 @@ the sponsoring idea, anything really! Thanks.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/ml-archives/index.html b/articles/ml-archives/index.html
index cc2110c6..78d47d29 100644
--- a/articles/ml-archives/index.html
+++ b/articles/ml-archives/index.html
@@ -93,6 +93,10 @@ underlying problem in the project or its documentation.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/on-open-source/index.html b/articles/on-open-source/index.html
index 951e9cbe..4195d1fa 100644
--- a/articles/on-open-source/index.html
+++ b/articles/on-open-source/index.html
@@ -200,6 +200,10 @@ of your company&#8217;s money.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/page/2/index.html b/articles/page/2/index.html
index 4c97395a..4097c8bf 100644
--- a/articles/page/2/index.html
+++ b/articles/page/2/index.html
@@ -72,6 +72,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="day">01</span>
+ <span class="month">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="day">18</span>
diff --git a/articles/ranch-1.3/index.html b/articles/ranch-1.3/index.html
index cf8e2fb3..48b28899 100644
--- a/articles/ranch-1.3/index.html
+++ b/articles/ranch-1.3/index.html
@@ -165,6 +165,10 @@ that need fixing sooner rather than later.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/ranch-ftp/index.html b/articles/ranch-ftp/index.html
index 7205482d..21be3cb0 100644
--- a/articles/ranch-ftp/index.html
+++ b/articles/ranch-ftp/index.html
@@ -293,6 +293,10 @@ binary protocol implementations in just a few lines of code.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/the-elephant-in-the-room/index.html b/articles/the-elephant-in-the-room/index.html
index 424da3ae..a2153173 100644
--- a/articles/the-elephant-in-the-room/index.html
+++ b/articles/the-elephant-in-the-room/index.html
@@ -216,6 +216,10 @@ the flaws or the weirdness before they see them.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/the-story-so-far/index.html b/articles/the-story-so-far/index.html
index ffe656fd..add4c233 100644
--- a/articles/the-story-so-far/index.html
+++ b/articles/the-story-so-far/index.html
@@ -307,6 +307,10 @@ project and make sure it doesn&#8217;t happen again.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/tictactoe/index.html b/articles/tictactoe/index.html
index a9f55dd9..bb7b2739 100644
--- a/articles/tictactoe/index.html
+++ b/articles/tictactoe/index.html
@@ -166,6 +166,10 @@ of writing algorithms to do things.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/website-update/index.html b/articles/website-update/index.html
index d965a2d7..1cc1b365 100644
--- a/articles/website-update/index.html
+++ b/articles/website-update/index.html
@@ -140,6 +140,10 @@ upgrading JS libraries.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/xerl-0.1-empty-modules/index.html b/articles/xerl-0.1-empty-modules/index.html
index 92934c2a..03ccc395 100644
--- a/articles/xerl-0.1-empty-modules/index.html
+++ b/articles/xerl-0.1-empty-modules/index.html
@@ -221,6 +221,10 @@ the next few articles.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/xerl-0.2-two-modules/index.html b/articles/xerl-0.2-two-modules/index.html
index d2c28ab3..67be4d4e 100644
--- a/articles/xerl-0.2-two-modules/index.html
+++ b/articles/xerl-0.2-two-modules/index.html
@@ -226,6 +226,10 @@ though, so let&#8217;s get back to it after we add more.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/xerl-0.3-atomic-expressions/index.html b/articles/xerl-0.3-atomic-expressions/index.html
index 235b4f08..cb52a379 100644
--- a/articles/xerl-0.3-atomic-expressions/index.html
+++ b/articles/xerl-0.3-atomic-expressions/index.html
@@ -230,6 +230,10 @@ do that.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/xerl-0.4-expression-separator/index.html b/articles/xerl-0.4-expression-separator/index.html
index da137842..8564b88f 100644
--- a/articles/xerl-0.4-expression-separator/index.html
+++ b/articles/xerl-0.4-expression-separator/index.html
@@ -135,6 +135,10 @@ expressions so I thought it was a good idea to anticipate.</p></div>
<ul id="articles-nav" class="extra_margin">
+ <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>
diff --git a/articles/xerl-0.5-intermediate-module/index.html b/articles/xerl-0.5-intermediate-module/index.html
index 38b6ef53..30e0e712 100644
--- a/articles/xerl-0.5-intermediate-module/index.html
+++ b/articles/xerl-0.5-intermediate-module/index.html
@@ -213,6 +213,10 @@ http://www.gnu.org/software/src-highlite -->
<ul id="articles-nav" class="extra_margin">
+ <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>