summaryrefslogtreecommitdiffstats
path: root/articles
diff options
context:
space:
mode:
Diffstat (limited to 'articles')
-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.11.0/index.html353
-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/cowboy-2.8.0/index.html4
-rw-r--r--articles/cowboy-2.9.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/gun-2.0.0-pre.2/index.html4
-rw-r--r--articles/gun-2.0.0-rc.1/index.html4
-rw-r--r--articles/gun-2.0.0/index.html4
-rw-r--r--articles/index.html38
-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.html4
-rw-r--r--articles/ml-archives/index.html4
-rw-r--r--articles/on-open-source/index.html4
-rw-r--r--articles/otp-26/index.html4
-rw-r--r--articles/page/2/index.html38
-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-2.0.0/index.html4
-rw-r--r--articles/ranch-2.1.0/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-gateway-trilogy/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
61 files changed, 647 insertions, 39 deletions
diff --git a/articles/asciideck/index.html b/articles/asciideck/index.html
index 93f30043..27d71de6 100644
--- a/articles/asciideck/index.html
+++ b/articles/asciideck/index.html
@@ -109,6 +109,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</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 d45c471d..1493398d 100644
--- a/articles/cowboy-2.0.0-pre.4/index.html
+++ b/articles/cowboy-2.0.0-pre.4/index.html
@@ -128,6 +128,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</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 501191c2..717c46ce 100644
--- a/articles/cowboy-2.0.0-rc.1/index.html
+++ b/articles/cowboy-2.0.0-rc.1/index.html
@@ -99,6 +99,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</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 4bca308b..1fc95a37 100644
--- a/articles/cowboy-2.0.0-rc.2/index.html
+++ b/articles/cowboy-2.0.0-rc.2/index.html
@@ -92,6 +92,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/cowboy-2.0.0/index.html b/articles/cowboy-2.0.0/index.html
index 454b8452..23e01649 100644
--- a/articles/cowboy-2.0.0/index.html
+++ b/articles/cowboy-2.0.0/index.html
@@ -98,6 +98,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/cowboy-2.1.0/index.html b/articles/cowboy-2.1.0/index.html
index 3f9f23fe..893793ca 100644
--- a/articles/cowboy-2.1.0/index.html
+++ b/articles/cowboy-2.1.0/index.html
@@ -95,6 +95,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/cowboy-2.11.0/index.html b/articles/cowboy-2.11.0/index.html
new file mode 100644
index 00000000..fd7b2cb8
--- /dev/null
+++ b/articles/cowboy-2.11.0/index.html
@@ -0,0 +1,353 @@
+<!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: Cowboy 2.11</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>Cowboy 2.11</span></h1>
+ <p class="date">
+ <span class="year">2024</span>
+ <span class="day-month">29 Jan</span>
+ </p>
+</header>
+
+<p>Cowboy <code>2.11.0</code> has been released!</p>
+<p>Cowboy 2.11 contains a variety of new features and bug fixes. Nearly all previously experimental features are now marked as stable, including Websocket over HTTP/2.</p>
+<p>Cowboy 2.11 addresses the HTTP/2 CVE CVE-2023-44487, the rapid reset vulnerability, which attackers can use in denial of services attacks. Cowboy adds a new HTTP/2 option <code>max_cancel_stream_rate</code> to control for this behavior.</p>
+<p>Cowboy 2.11 requires Erlang/OTP 24.0 or greater. It is tested and supported on Linux, macOS and Windows.</p>
+<p>Cowboy is now using GitHub Actions for CI. The main reason for the move is to reduce costs by no longer having to self-host CI runners. The downside is that GitHub runners are less reliable and timing dependent tests are now more likely to fail. Another consequence following the move is that FreeBSD is no longer tested. This may be reevaluated in the future.</p>
+<p>A complete list of changes can be found in the migration guide: <a href="https://ninenines.eu/docs/en/cowboy/2.11/guide/migrating_from_2.10/">Migrating from Cowboy 2.10 to 2.11</a>.</p>
+<p>You can donate to this project via <a href="https://github.com/sponsors/essen">GitHub Sponsors</a>.</p>
+<p>As usual, feedback is appreciated, and issues or questions should be sent via Github tickets or discussions. Thanks!</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/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/ranch-2.1.0/">Ranch 2.1</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.9.0/">Cowboy 2.9</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/gun-2.0.0-rc.1/">Gun 2.0 release candidate 1</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/ranch-2.0.0/">Ranch 2.0</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.8.0/">Cowboy 2.8</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/the-gateway-trilogy/">The Gateway Trilogy</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/gun-2.0.0-pre.2/">Gun 2.0 pre-release 2</a></li>
+
+
+
+ <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/cowboy-2.2.0/index.html b/articles/cowboy-2.2.0/index.html
index 93ebd3c1..1ba03218 100644
--- a/articles/cowboy-2.2.0/index.html
+++ b/articles/cowboy-2.2.0/index.html
@@ -93,6 +93,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/cowboy-2.3.0/index.html b/articles/cowboy-2.3.0/index.html
index 5e8ff222..25a59f41 100644
--- a/articles/cowboy-2.3.0/index.html
+++ b/articles/cowboy-2.3.0/index.html
@@ -85,6 +85,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/cowboy-2.4.0/index.html b/articles/cowboy-2.4.0/index.html
index 18a866b4..8bf20678 100644
--- a/articles/cowboy-2.4.0/index.html
+++ b/articles/cowboy-2.4.0/index.html
@@ -87,6 +87,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/cowboy-2.5.0/index.html b/articles/cowboy-2.5.0/index.html
index b704ea37..98afacff 100644
--- a/articles/cowboy-2.5.0/index.html
+++ b/articles/cowboy-2.5.0/index.html
@@ -91,6 +91,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/cowboy-2.6.0/index.html b/articles/cowboy-2.6.0/index.html
index caf89fff..1efa76c4 100644
--- a/articles/cowboy-2.6.0/index.html
+++ b/articles/cowboy-2.6.0/index.html
@@ -88,6 +88,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/cowboy-2.7.0/index.html b/articles/cowboy-2.7.0/index.html
index c182c6e0..31e15200 100644
--- a/articles/cowboy-2.7.0/index.html
+++ b/articles/cowboy-2.7.0/index.html
@@ -89,6 +89,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/cowboy-2.8.0/index.html b/articles/cowboy-2.8.0/index.html
index 946a71d5..382ca65e 100644
--- a/articles/cowboy-2.8.0/index.html
+++ b/articles/cowboy-2.8.0/index.html
@@ -88,6 +88,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/cowboy-2.9.0/index.html b/articles/cowboy-2.9.0/index.html
index 3a09ecb1..fefe4511 100644
--- a/articles/cowboy-2.9.0/index.html
+++ b/articles/cowboy-2.9.0/index.html
@@ -87,6 +87,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/cowboy2-qs/index.html b/articles/cowboy2-qs/index.html
index 68971574..ce6275be 100644
--- a/articles/cowboy2-qs/index.html
+++ b/articles/cowboy2-qs/index.html
@@ -129,6 +129,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/dont-let-it-crash/index.html b/articles/dont-let-it-crash/index.html
index 2198a123..5f48d233 100644
--- a/articles/dont-let-it-crash/index.html
+++ b/articles/dont-let-it-crash/index.html
@@ -104,6 +104,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/erlang-meetup-10-septembre-2019/index.html b/articles/erlang-meetup-10-septembre-2019/index.html
index 56a08b2b..735e9409 100644
--- a/articles/erlang-meetup-10-septembre-2019/index.html
+++ b/articles/erlang-meetup-10-septembre-2019/index.html
@@ -84,6 +84,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/erlang-scalability/index.html b/articles/erlang-scalability/index.html
index 7fbf1e1c..108aea88 100644
--- a/articles/erlang-scalability/index.html
+++ b/articles/erlang-scalability/index.html
@@ -116,6 +116,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/erlang-validate-utf8/index.html b/articles/erlang-validate-utf8/index.html
index e6c4626e..6c73f7b2 100644
--- a/articles/erlang-validate-utf8/index.html
+++ b/articles/erlang-validate-utf8/index.html
@@ -232,6 +232,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/erlang.mk-and-relx/index.html b/articles/erlang.mk-and-relx/index.html
index 913ab209..bd5b0ad2 100644
--- a/articles/erlang.mk-and-relx/index.html
+++ b/articles/erlang.mk-and-relx/index.html
@@ -118,6 +118,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/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/erlanger-playbook-september-2015-update/index.html b/articles/erlanger-playbook-september-2015-update/index.html
index 8a80d4f2..8bfdbc66 100644
--- a/articles/erlanger-playbook-september-2015-update/index.html
+++ b/articles/erlanger-playbook-september-2015-update/index.html
@@ -87,6 +87,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/erlanger-playbook/index.html b/articles/erlanger-playbook/index.html
index 0588bf0c..ef64fd42 100644
--- a/articles/erlanger-playbook/index.html
+++ b/articles/erlanger-playbook/index.html
@@ -128,6 +128,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/farwest-funded/index.html b/articles/farwest-funded/index.html
index 393054f7..2a76b21f 100644
--- a/articles/farwest-funded/index.html
+++ b/articles/farwest-funded/index.html
@@ -88,6 +88,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/github-sponsors/index.html b/articles/github-sponsors/index.html
index 139faf91..c9ac7832 100644
--- a/articles/github-sponsors/index.html
+++ b/articles/github-sponsors/index.html
@@ -85,6 +85,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</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 7aa2c3e1..c84425b7 100644
--- a/articles/gun-1.0.0-rc.1/index.html
+++ b/articles/gun-1.0.0-rc.1/index.html
@@ -89,6 +89,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/gun-1.0.0/index.html b/articles/gun-1.0.0/index.html
index 7cb799ed..b296f967 100644
--- a/articles/gun-1.0.0/index.html
+++ b/articles/gun-1.0.0/index.html
@@ -88,6 +88,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/gun-1.2.0/index.html b/articles/gun-1.2.0/index.html
index 47f06350..72ed2cb8 100644
--- a/articles/gun-1.2.0/index.html
+++ b/articles/gun-1.2.0/index.html
@@ -88,6 +88,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/gun-1.3.0/index.html b/articles/gun-1.3.0/index.html
index 2493e10b..f411689b 100644
--- a/articles/gun-1.3.0/index.html
+++ b/articles/gun-1.3.0/index.html
@@ -86,6 +86,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</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 da77236c..53ebe68e 100644
--- a/articles/gun-2.0.0-pre.1/index.html
+++ b/articles/gun-2.0.0-pre.1/index.html
@@ -93,6 +93,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/gun-2.0.0-pre.2/index.html b/articles/gun-2.0.0-pre.2/index.html
index d25488dc..9ea063eb 100644
--- a/articles/gun-2.0.0-pre.2/index.html
+++ b/articles/gun-2.0.0-pre.2/index.html
@@ -91,6 +91,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/gun-2.0.0-rc.1/index.html b/articles/gun-2.0.0-rc.1/index.html
index f4fec820..2e76574f 100644
--- a/articles/gun-2.0.0-rc.1/index.html
+++ b/articles/gun-2.0.0-rc.1/index.html
@@ -96,6 +96,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/gun-2.0.0/index.html b/articles/gun-2.0.0/index.html
index 79ccd73e..5307765c 100644
--- a/articles/gun-2.0.0/index.html
+++ b/articles/gun-2.0.0/index.html
@@ -98,6 +98,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/index.html b/articles/index.html
index dd4edf86..94131ef3 100644
--- a/articles/index.html
+++ b/articles/index.html
@@ -65,6 +65,25 @@
<article class="blog_item">
<header>
+ <h2><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></h2>
+ <p class="date">
+ <span class="year">2024</span>
+ <span class="day-month">29 Jan</span>
+ </p>
+ </header>
+
+ <p>Cowboy 2.11.0 has been released!
+Cowboy 2.11 contains a variety of new features and bug fixes. Nearly all previously experimental features are now marked as stable, including Websocket over HTTP/2.
+Cowboy 2.11 addresses the HTTP/2 CVE CVE-2023-44487, the rapid reset vulnerability, which attackers can use in denial of services attacks. Cowboy adds a new HTTP/2 option max_cancel_stream_rate to control for this behavior.
+Cowboy 2.11 requires Erlang/OTP 24.0 or greater. It is tested and supported on Linux, macOS and Windows.</p>
+
+ <p style="text-align:right">
+ <a class="read_more" href="https://ninenines.eu/articles/cowboy-2.11.0/">Read More</a>
+ </p>
+ </article>
+
+ <article class="blog_item">
+ <header>
<h2><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></h2>
<p class="date">
<span class="year">2023</span>
@@ -408,25 +427,6 @@ While a third-party library already existed, it was not entirely compatible with
</p>
</article>
- <article class="blog_item">
- <header>
- <h2><a href="https://ninenines.eu/articles/cowboy-2.5.0/">Cowboy 2.5</a></h2>
- <p class="date">
- <span class="year">2018</span>
- <span class="day-month">03 Oct</span>
- </p>
- </header>
-
- <p>Cowboy 2.5.0 has been released!
-Cowboy 2.5 focused on making the test suites pass. It is now possible to get all the Cowboy tests to pass successfully, at least on Linux and on the more recent Erlang/OTP versions.
-HTTP/1.1 has been improved with a fix for the TCP reset problem and the ability to stream a response body without using chunked transfer-encoding.
-Two functions have been added: cowboy_req:stream_events/3 encodes and streams one or more text/event-stream events, and cowboy_req:read_and_match_urlencoded_body/2,3 reads, parses and matches application/x-www-form-urlencoded request bodies.</p>
-
- <p style="text-align:right">
- <a class="read_more" href="https://ninenines.eu/articles/cowboy-2.5.0/">Read More</a>
- </p>
- </article>
-
<nav class="pagination" role="pagination">
diff --git a/articles/index.xml b/articles/index.xml
index dd57f231..70d8716b 100644
--- a/articles/index.xml
+++ b/articles/index.xml
@@ -6,12 +6,24 @@
<description>Recent content in Articles on Nine Nines</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
- <lastBuildDate>Fri, 28 Apr 2023 07:00:00 +0100</lastBuildDate>
+ <lastBuildDate>Mon, 29 Jan 2024 07:00:00 +0100</lastBuildDate>
<atom:link href="https://ninenines.eu/articles/index.xml" rel="self" type="application/rss+xml" />
<item>
+ <title>Cowboy 2.11</title>
+ <link>https://ninenines.eu/articles/cowboy-2.11.0/</link>
+ <pubDate>Mon, 29 Jan 2024 07:00:00 +0100</pubDate>
+
+ <guid>https://ninenines.eu/articles/cowboy-2.11.0/</guid>
+ <description>Cowboy 2.11.0 has been released!
+Cowboy 2.11 contains a variety of new features and bug fixes. Nearly all previously experimental features are now marked as stable, including Websocket over HTTP/2.
+Cowboy 2.11 addresses the HTTP/2 CVE CVE-2023-44487, the rapid reset vulnerability, which attackers can use in denial of services attacks. Cowboy adds a new HTTP/2 option max_cancel_stream_rate to control for this behavior.
+Cowboy 2.11 requires Erlang/OTP 24.0 or greater. It is tested and supported on Linux, macOS and Windows.</description>
+ </item>
+
+ <item>
<title>Erlang/OTP 26</title>
<link>https://ninenines.eu/articles/otp-26/</link>
<pubDate>Fri, 28 Apr 2023 07:00:00 +0100</pubDate>
diff --git a/articles/january-2014-status/index.html b/articles/january-2014-status/index.html
index fa4508e5..2c3136f7 100644
--- a/articles/january-2014-status/index.html
+++ b/articles/january-2014-status/index.html
@@ -114,6 +114,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/joe_the_rubber_duck/index.html b/articles/joe_the_rubber_duck/index.html
index 0fad119f..05be9f53 100644
--- a/articles/joe_the_rubber_duck/index.html
+++ b/articles/joe_the_rubber_duck/index.html
@@ -88,6 +88,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/merry-christmas-2018/index.html b/articles/merry-christmas-2018/index.html
index 0873fc07..1eafa1e9 100644
--- a/articles/merry-christmas-2018/index.html
+++ b/articles/merry-christmas-2018/index.html
@@ -95,6 +95,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/merry-christmas-2019/index.html b/articles/merry-christmas-2019/index.html
index 66b374ca..b7a7c3e5 100644
--- a/articles/merry-christmas-2019/index.html
+++ b/articles/merry-christmas-2019/index.html
@@ -91,6 +91,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/ml-archives/index.html b/articles/ml-archives/index.html
index c3e88336..984a255a 100644
--- a/articles/ml-archives/index.html
+++ b/articles/ml-archives/index.html
@@ -85,6 +85,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/on-open-source/index.html b/articles/on-open-source/index.html
index 78c22485..0a9cbb56 100644
--- a/articles/on-open-source/index.html
+++ b/articles/on-open-source/index.html
@@ -97,6 +97,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/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/otp-26/index.html b/articles/otp-26/index.html
index 35689103..4a1572ae 100644
--- a/articles/otp-26/index.html
+++ b/articles/otp-26/index.html
@@ -92,6 +92,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/page/2/index.html b/articles/page/2/index.html
index f53f6579..3904e1f8 100644
--- a/articles/page/2/index.html
+++ b/articles/page/2/index.html
@@ -65,6 +65,25 @@
<article class="blog_item">
<header>
+ <h2><a href="https://ninenines.eu/articles/cowboy-2.5.0/">Cowboy 2.5</a></h2>
+ <p class="date">
+ <span class="year">2018</span>
+ <span class="day-month">03 Oct</span>
+ </p>
+ </header>
+
+ <p>Cowboy 2.5.0 has been released!
+Cowboy 2.5 focused on making the test suites pass. It is now possible to get all the Cowboy tests to pass successfully, at least on Linux and on the more recent Erlang/OTP versions.
+HTTP/1.1 has been improved with a fix for the TCP reset problem and the ability to stream a response body without using chunked transfer-encoding.
+Two functions have been added: cowboy_req:stream_events/3 encodes and streams one or more text/event-stream events, and cowboy_req:read_and_match_urlencoded_body/2,3 reads, parses and matches application/x-www-form-urlencoded request bodies.</p>
+
+ <p style="text-align:right">
+ <a class="read_more" href="https://ninenines.eu/articles/cowboy-2.5.0/">Read More</a>
+ </p>
+ </article>
+
+ <article class="blog_item">
+ <header>
<h2><a href="https://ninenines.eu/articles/gun-1.3.0/">Gun 1.3</a></h2>
<p class="date">
<span class="year">2018</span>
@@ -415,25 +434,6 @@ I am very happy with that new setup.</p>
</p>
</article>
- <article class="blog_item">
- <header>
- <h2><a href="https://ninenines.eu/articles/erlanger-playbook-september-2015-update/">The Erlanger Playbook September 2015 Update</a></h2>
- <p class="date">
- <span class="year">2015</span>
- <span class="day-month">02 Sep</span>
- </p>
- </header>
-
- <p>An update to The Erlanger Playbook is now available!
-The Erlanger Playbook is a book about software development using Erlang. It currently covers all areas from the conception, design, the writing of code, documentation and tests.
-The book is still a work in progress. Future topics will include refactoring, debugging and tracing, benchmarking, releases, community management (for open source projects).
-This update fixes a number of things and adds two chapters: IOlists and Erlang building blocks.</p>
-
- <p style="text-align:right">
- <a class="read_more" href="https://ninenines.eu/articles/erlanger-playbook-september-2015-update/">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 a11da5bc..c7836f33 100644
--- a/articles/page/3/index.html
+++ b/articles/page/3/index.html
@@ -65,6 +65,25 @@
<article class="blog_item">
<header>
+ <h2><a href="https://ninenines.eu/articles/erlanger-playbook-september-2015-update/">The Erlanger Playbook September 2015 Update</a></h2>
+ <p class="date">
+ <span class="year">2015</span>
+ <span class="day-month">02 Sep</span>
+ </p>
+ </header>
+
+ <p>An update to The Erlanger Playbook is now available!
+The Erlanger Playbook is a book about software development using Erlang. It currently covers all areas from the conception, design, the writing of code, documentation and tests.
+The book is still a work in progress. Future topics will include refactoring, debugging and tracing, benchmarking, releases, community management (for open source projects).
+This update fixes a number of things and adds two chapters: IOlists and Erlang building blocks.</p>
+
+ <p style="text-align:right">
+ <a class="read_more" href="https://ninenines.eu/articles/erlanger-playbook-september-2015-update/">Read More</a>
+ </p>
+ </article>
+
+ <article class="blog_item">
+ <header>
<h2><a href="https://ninenines.eu/articles/erlanger-playbook/">The Erlanger Playbook</a></h2>
<p class="date">
<span class="year">2015</span>
diff --git a/articles/ranch-1.3/index.html b/articles/ranch-1.3/index.html
index e6cc12c7..ef8d7abc 100644
--- a/articles/ranch-1.3/index.html
+++ b/articles/ranch-1.3/index.html
@@ -126,6 +126,10 @@ Primary key fingerprint<font color="#990000">:</font> F19F 189C ECC7 <font color
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/ranch-1.6.0/index.html b/articles/ranch-1.6.0/index.html
index bc974fcb..ff1b3f6d 100644
--- a/articles/ranch-1.6.0/index.html
+++ b/articles/ranch-1.6.0/index.html
@@ -88,6 +88,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/ranch-1.7.0/index.html b/articles/ranch-1.7.0/index.html
index 72f8a0c8..dbaaf3bc 100644
--- a/articles/ranch-1.7.0/index.html
+++ b/articles/ranch-1.7.0/index.html
@@ -87,6 +87,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</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 4fd9052c..5c4e395f 100644
--- a/articles/ranch-2.0.0-rc.1/index.html
+++ b/articles/ranch-2.0.0-rc.1/index.html
@@ -96,6 +96,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/ranch-2.0.0/index.html b/articles/ranch-2.0.0/index.html
index 5c26e76d..0484c7c6 100644
--- a/articles/ranch-2.0.0/index.html
+++ b/articles/ranch-2.0.0/index.html
@@ -95,6 +95,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/ranch-2.1.0/index.html b/articles/ranch-2.1.0/index.html
index f4efecdf..e481994a 100644
--- a/articles/ranch-2.1.0/index.html
+++ b/articles/ranch-2.1.0/index.html
@@ -90,6 +90,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/ranch-ftp/index.html b/articles/ranch-ftp/index.html
index 2f6e1475..25540d3a 100644
--- a/articles/ranch-ftp/index.html
+++ b/articles/ranch-ftp/index.html
@@ -228,6 +228,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/the-elephant-in-the-room/index.html b/articles/the-elephant-in-the-room/index.html
index d79c15f4..24705b56 100644
--- a/articles/the-elephant-in-the-room/index.html
+++ b/articles/the-elephant-in-the-room/index.html
@@ -110,6 +110,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/the-gateway-trilogy/index.html b/articles/the-gateway-trilogy/index.html
index 43cb77ef..e84cd353 100644
--- a/articles/the-gateway-trilogy/index.html
+++ b/articles/the-gateway-trilogy/index.html
@@ -85,6 +85,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/the-story-so-far/index.html b/articles/the-story-so-far/index.html
index 72f240aa..81dbd512 100644
--- a/articles/the-story-so-far/index.html
+++ b/articles/the-story-so-far/index.html
@@ -101,6 +101,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/tictactoe/index.html b/articles/tictactoe/index.html
index 0bad0095..981d14cc 100644
--- a/articles/tictactoe/index.html
+++ b/articles/tictactoe/index.html
@@ -133,6 +133,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/website-update/index.html b/articles/website-update/index.html
index 74124a57..7d31c950 100644
--- a/articles/website-update/index.html
+++ b/articles/website-update/index.html
@@ -90,6 +90,10 @@
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/xerl-0.1-empty-modules/index.html b/articles/xerl-0.1-empty-modules/index.html
index 27751e65..8a429eb2 100644
--- a/articles/xerl-0.1-empty-modules/index.html
+++ b/articles/xerl-0.1-empty-modules/index.html
@@ -168,6 +168,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/xerl-0.2-two-modules/index.html b/articles/xerl-0.2-two-modules/index.html
index 5e87188f..35b1114d 100644
--- a/articles/xerl-0.2-two-modules/index.html
+++ b/articles/xerl-0.2-two-modules/index.html
@@ -196,6 +196,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/xerl-0.3-atomic-expressions/index.html b/articles/xerl-0.3-atomic-expressions/index.html
index 54128807..eb8f95e8 100644
--- a/articles/xerl-0.3-atomic-expressions/index.html
+++ b/articles/xerl-0.3-atomic-expressions/index.html
@@ -165,6 +165,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/xerl-0.4-expression-separator/index.html b/articles/xerl-0.4-expression-separator/index.html
index 9e6a3040..ec329ecb 100644
--- a/articles/xerl-0.4-expression-separator/index.html
+++ b/articles/xerl-0.4-expression-separator/index.html
@@ -117,6 +117,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
diff --git a/articles/xerl-0.5-intermediate-module/index.html b/articles/xerl-0.5-intermediate-module/index.html
index 5046ee50..e9eb8f1b 100644
--- a/articles/xerl-0.5-intermediate-module/index.html
+++ b/articles/xerl-0.5-intermediate-module/index.html
@@ -161,6 +161,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/cowboy-2.11.0/">Cowboy 2.11</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>