diff options
author | Loïc Hoguin <[email protected]> | 2025-04-11 14:34:51 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2025-04-11 14:34:51 +0200 |
commit | eb808a3f8bbd97d2a2ea0114b43b708a17b44066 (patch) | |
tree | fc142e5b11792af4f84d8634d9a8809f32344634 /articles | |
parent | 25e93c91878b7f8536764b06d2cb72020031acd1 (diff) | |
download | ninenines.eu-master.tar.gz ninenines.eu-master.tar.bz2 ninenines.eu-master.zip |
Diffstat (limited to 'articles')
68 files changed, 713 insertions, 53 deletions
diff --git a/articles/asciideck/index.html b/articles/asciideck/index.html index ccfc586a..cc8489dd 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</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 a9851d44..485cd940 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</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 dd909d01..a12f6317 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</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 3027b9af..4a1f11af 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/cowboy-2.0.0/index.html b/articles/cowboy-2.0.0/index.html index 2742e197..f3ef2a8a 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/cowboy-2.1.0/index.html b/articles/cowboy-2.1.0/index.html index 29ac1887..2880ce5d 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/cowboy-2.11.0/index.html b/articles/cowboy-2.11.0/index.html index f78364a5..e9e52b70 100644 --- a/articles/cowboy-2.11.0/index.html +++ b/articles/cowboy-2.11.0/index.html @@ -88,6 +88,10 @@ + <li><a href="https://ninenines.eu/articles/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/cowboy-2.12.0/index.html b/articles/cowboy-2.12.0/index.html index 118d825f..9f8d123c 100644 --- a/articles/cowboy-2.12.0/index.html +++ b/articles/cowboy-2.12.0/index.html @@ -89,6 +89,10 @@ + <li><a href="https://ninenines.eu/articles/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/cowboy-2.13.0-performance/index.html b/articles/cowboy-2.13.0-performance/index.html index fb1a0c59..178c78ae 100644 --- a/articles/cowboy-2.13.0-performance/index.html +++ b/articles/cowboy-2.13.0-performance/index.html @@ -103,6 +103,10 @@ + <li><a href="https://ninenines.eu/articles/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/cowboy-2.13.0/index.html b/articles/cowboy-2.13.0/index.html index 0aec7b32..cbbb4a86 100644 --- a/articles/cowboy-2.13.0/index.html +++ b/articles/cowboy-2.13.0/index.html @@ -88,6 +88,10 @@ + <li><a href="https://ninenines.eu/articles/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/cowboy-2.2.0/index.html b/articles/cowboy-2.2.0/index.html index 871dc33c..e7d3bf2d 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/cowboy-2.3.0/index.html b/articles/cowboy-2.3.0/index.html index ad41bb42..c47739af 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/cowboy-2.4.0/index.html b/articles/cowboy-2.4.0/index.html index a71d8046..efb0b980 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/cowboy-2.5.0/index.html b/articles/cowboy-2.5.0/index.html index e6f6be96..6bb89dc8 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/cowboy-2.6.0/index.html b/articles/cowboy-2.6.0/index.html index 6cf18362..97dc5d90 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/cowboy-2.7.0/index.html b/articles/cowboy-2.7.0/index.html index 604508be..325dc752 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/cowboy-2.8.0/index.html b/articles/cowboy-2.8.0/index.html index 8df53254..ab6562f3 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/cowboy-2.9.0/index.html b/articles/cowboy-2.9.0/index.html index 105fd467..d915ec37 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/cowboy2-qs/index.html b/articles/cowboy2-qs/index.html index 6202e813..0807bf78 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/discord-server/index.html b/articles/discord-server/index.html index 8009c348..013679b6 100644 --- a/articles/discord-server/index.html +++ b/articles/discord-server/index.html @@ -85,6 +85,10 @@ + <li><a href="https://ninenines.eu/articles/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/dont-let-it-crash/index.html b/articles/dont-let-it-crash/index.html index 42524da9..ddb01724 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/erlang-meetup-10-septembre-2019/index.html b/articles/erlang-meetup-10-septembre-2019/index.html index 409f0b81..f6901661 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/erlang-scalability/index.html b/articles/erlang-scalability/index.html index 9a1aa8d6..77064a99 100644 --- a/articles/erlang-scalability/index.html +++ b/articles/erlang-scalability/index.html @@ -116,6 +116,10 @@ + <li><a href="https://ninenines.eu/articles/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/erlang-validate-utf8/index.html b/articles/erlang-validate-utf8/index.html index 7e44c1dd..23ac359c 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/erlang.mk-and-relx/index.html b/articles/erlang.mk-and-relx/index.html index d1385ad0..464d3fe2 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/erlanger-playbook-september-2015-update/index.html b/articles/erlanger-playbook-september-2015-update/index.html index 016cd9e3..d10fa7a2 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/erlanger-playbook/index.html b/articles/erlanger-playbook/index.html index 7f917449..ba18fd2d 100644 --- a/articles/erlanger-playbook/index.html +++ b/articles/erlanger-playbook/index.html @@ -128,6 +128,10 @@ + <li><a href="https://ninenines.eu/articles/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/farwest-funded/index.html b/articles/farwest-funded/index.html index f1f867df..f9dba26c 100644 --- a/articles/farwest-funded/index.html +++ b/articles/farwest-funded/index.html @@ -88,6 +88,10 @@ + <li><a href="https://ninenines.eu/articles/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/github-sponsors/index.html b/articles/github-sponsors/index.html index e7910dc0..83f77f28 100644 --- a/articles/github-sponsors/index.html +++ b/articles/github-sponsors/index.html @@ -85,6 +85,10 @@ + <li><a href="https://ninenines.eu/articles/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</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 b26375f3..0dd68793 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/gun-1.0.0/index.html b/articles/gun-1.0.0/index.html index 7731c63c..9ad2fa24 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/gun-1.2.0/index.html b/articles/gun-1.2.0/index.html index 2219e622..ba71b510 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/gun-1.3.0/index.html b/articles/gun-1.3.0/index.html index 15246fe7..cbd76a3c 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</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 8635550e..fb3537b6 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</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 9aa8cca4..ae2b7fc3 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</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 10b3e94c..32c675ff 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/gun-2.0.0/index.html b/articles/gun-2.0.0/index.html index 3053cf81..c426e3f6 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/gun-2.2.0/index.html b/articles/gun-2.2.0/index.html new file mode 100644 index 00000000..79d967ff --- /dev/null +++ b/articles/gun-2.2.0/index.html @@ -0,0 +1,381 @@ +<!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: Gun 2.2</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>Gun 2.2</span></h1> + <p class="date"> + <span class="year">2025</span> + <span class="day-month">11 Apr</span> + </p> +</header> + +<p>Gun <code>2.2.0</code> has been released!</p> +<p>Gun 2.2 contains many features and fixes, including an experimental HTTP/3 implementation.</p> +<p>Gun 2.2 is the first release that includes an experimental support for the HTTP/3 protocol. Note that unlike Cowboy, Gun 2.2 does not yet support Websocket over HTTP/3.</p> +<p>Gun 2.2 now sets the appropriate ssl options to perform wildcard certificate matching, which is a requirement for HTTP and previously had to be configured by users.</p> +<p>Gun 2.2 also enables users to send HTTP/2 pings directly, including over tunnels, enabling use cases such as measuring the latency with the server. These pings are separate from the keepalive functionality.</p> +<p>Gun 2.2 also contains various fixes, the most significant of which is a better handling of TLS 1.3 alerts in mTLS scenarios. TLS 1.3 may perform certificate validation after the handshake has completed, leading to the alerts often arriving asynchronously. When an ssl function call returns <code>{error, closed}</code> or equivalent, Gun will now check whether the closure was a result of a TLS alert, and in that case propagate the alert as the error reason to the user. This has also been made to work over tunnels.</p> +<p>HTTP/2 tunneling has also seen a number of improvements.</p> +<p>Gun 2.0 requires Erlang/OTP 24.0 or greater and is tested and supported on Linux, macOS and Windows.</p> +<p>A complete list of changes can be found in the migration guide: <a href="https://ninenines.eu/docs/en/gun/2.2/guide/migrating_from_2.1/">Migrating from Gun 2.1 to 2.2</a>.</p> +<p>I will now focus on implementing HTTP/3 WebTransport in Cowboy and Gun.</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. 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/gun-2.2.0/">Gun 2.2</a></li> + + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> + + + + <li><a href="https://ninenines.eu/articles/ranch-2.2.0/">Ranch 2.2</a></li> + + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0-performance/">Performance improvements in Cowboy 2.13</a></li> + + + + <li><a href="https://ninenines.eu/articles/discord-server/">Erlang OSS Discord server</a></li> + + + + <li><a href="https://ninenines.eu/articles/cowboy-2.12.0/">Cowboy 2.12</a></li> + + + + <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'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 © Loïc Hoguin 2012-2018</p> + </div> + </div> + </div> + </footer> + + + <script src="/js/custom.js"></script> + </body> +</html> + diff --git a/articles/index.html b/articles/index.html index d1cf2a6a..4f10d828 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/gun-2.2.0/">Gun 2.2</a></h2> + <p class="date"> + <span class="year">2025</span> + <span class="day-month">11 Apr</span> + </p> + </header> + + <p>Gun 2.2.0 has been released! +Gun 2.2 contains many features and fixes, including an experimental HTTP/3 implementation. +Gun 2.2 is the first release that includes an experimental support for the HTTP/3 protocol. Note that unlike Cowboy, Gun 2.2 does not yet support Websocket over HTTP/3. +Gun 2.2 now sets the appropriate ssl options to perform wildcard certificate matching, which is a requirement for HTTP and previously had to be configured by users.</p> + + <p style="text-align:right"> + <a class="read_more" href="https://ninenines.eu/articles/gun-2.2.0/">Read More</a> + </p> + </article> + + <article class="blog_item"> + <header> <h2><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></h2> <p class="date"> <span class="year">2025</span> @@ -410,23 +429,6 @@ Before listing the features please note that this pre-release includes a fix for </p> </article> - <article class="blog_item"> - <header> - <h2><a href="https://ninenines.eu/articles/erlang-meetup-10-septembre-2019/">Erlang meetup: 10 septembre 2019</a></h2> - <p class="date"> - <span class="year">2019</span> - <span class="day-month">22 Aug</span> - </p> - </header> - - <p>Erlang meetups are resuming and I will be present at the next one in Paris on the 10th of September. As the meetup and my talk about Gun will be in French the rest of this post will be in French as well. If you are around Paris that night, you are welcome to join and chat, even if you don't speak the language! -Je serai au meetup Erlang le 10 septembre chez Datadog à Paris.</p> - - <p style="text-align:right"> - <a class="read_more" href="https://ninenines.eu/articles/erlang-meetup-10-septembre-2019/">Read More</a> - </p> - </article> - <nav class="pagination" role="pagination"> diff --git a/articles/index.xml b/articles/index.xml index 72c8b1dd..c800fc26 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>Tue, 18 Feb 2025 07:00:00 +0100</lastBuildDate> + <lastBuildDate>Fri, 11 Apr 2025 07:00:00 +0100</lastBuildDate> <atom:link href="https://ninenines.eu/articles/index.xml" rel="self" type="application/rss+xml" /> <item> + <title>Gun 2.2</title> + <link>https://ninenines.eu/articles/gun-2.2.0/</link> + <pubDate>Fri, 11 Apr 2025 07:00:00 +0100</pubDate> + + <guid>https://ninenines.eu/articles/gun-2.2.0/</guid> + <description>Gun 2.2.0 has been released! +Gun 2.2 contains many features and fixes, including an experimental HTTP/3 implementation. +Gun 2.2 is the first release that includes an experimental support for the HTTP/3 protocol. Note that unlike Cowboy, Gun 2.2 does not yet support Websocket over HTTP/3. +Gun 2.2 now sets the appropriate ssl options to perform wildcard certificate matching, which is a requirement for HTTP and previously had to be configured by users.</description> + </item> + + <item> <title>Cowboy 2.13</title> <link>https://ninenines.eu/articles/cowboy-2.13.0/</link> <pubDate>Tue, 18 Feb 2025 07:00:00 +0100</pubDate> diff --git a/articles/january-2014-status/index.html b/articles/january-2014-status/index.html index 1936d650..7d7aacd1 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/joe_the_rubber_duck/index.html b/articles/joe_the_rubber_duck/index.html index 88875513..2f59922b 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/merry-christmas-2018/index.html b/articles/merry-christmas-2018/index.html index 99a88e73..732f123b 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/merry-christmas-2019/index.html b/articles/merry-christmas-2019/index.html index 1f5e891e..91957286 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/ml-archives/index.html b/articles/ml-archives/index.html index 413415c1..525ff222 100644 --- a/articles/ml-archives/index.html +++ b/articles/ml-archives/index.html @@ -85,6 +85,10 @@ + <li><a href="https://ninenines.eu/articles/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/on-open-source/index.html b/articles/on-open-source/index.html index 567dca2c..35c9f683 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/otp-26/index.html b/articles/otp-26/index.html index 222761e4..da40f8d4 100644 --- a/articles/otp-26/index.html +++ b/articles/otp-26/index.html @@ -92,6 +92,10 @@ + <li><a href="https://ninenines.eu/articles/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/page/2/index.html b/articles/page/2/index.html index 3855283a..4fc0096a 100644 --- a/articles/page/2/index.html +++ b/articles/page/2/index.html @@ -65,6 +65,23 @@ <article class="blog_item"> <header> + <h2><a href="https://ninenines.eu/articles/erlang-meetup-10-septembre-2019/">Erlang meetup: 10 septembre 2019</a></h2> + <p class="date"> + <span class="year">2019</span> + <span class="day-month">22 Aug</span> + </p> + </header> + + <p>Erlang meetups are resuming and I will be present at the next one in Paris on the 10th of September. As the meetup and my talk about Gun will be in French the rest of this post will be in French as well. If you are around Paris that night, you are welcome to join and chat, even if you don't speak the language! +Je serai au meetup Erlang le 10 septembre chez Datadog à Paris.</p> + + <p style="text-align:right"> + <a class="read_more" href="https://ninenines.eu/articles/erlang-meetup-10-septembre-2019/">Read More</a> + </p> + </article> + + <article class="blog_item"> + <header> <h2><a href="https://ninenines.eu/articles/ranch-2.0.0-rc.1/">Ranch 2.0 release candidate 1</a></h2> <p class="date"> <span class="year">2019</span> @@ -418,23 +435,6 @@ The plan is to have a new RC version every couple weeks until the summer ends or </p> </article> - <article class="blog_item"> - <header> - <h2><a href="https://ninenines.eu/articles/the-elephant-in-the-room/">The elephant in the room</a></h2> - <p class="date"> - <span class="year">2017</span> - <span class="day-month">26 Mar</span> - </p> - </header> - - <p>Have you ever tried telling someone why they should use Erlang? You boast the smaller code size, the auto healing mechanisms, the distribution and they seem really excited. They wonder why they never heard about Erlang before. And then you show them what the code looks like. All excitement goes away. The smiles disappear. Their face starts becoming really serious. -You lost them. You know you lost them. They comment on the syntax, or perhaps you do, already admitting defeat.</p> - - <p style="text-align:right"> - <a class="read_more" href="https://ninenines.eu/articles/the-elephant-in-the-room/">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 492d6b14..0fd4fe6b 100644 --- a/articles/page/3/index.html +++ b/articles/page/3/index.html @@ -65,6 +65,23 @@ <article class="blog_item"> <header> + <h2><a href="https://ninenines.eu/articles/the-elephant-in-the-room/">The elephant in the room</a></h2> + <p class="date"> + <span class="year">2017</span> + <span class="day-month">26 Mar</span> + </p> + </header> + + <p>Have you ever tried telling someone why they should use Erlang? You boast the smaller code size, the auto healing mechanisms, the distribution and they seem really excited. They wonder why they never heard about Erlang before. And then you show them what the code looks like. All excitement goes away. The smiles disappear. Their face starts becoming really serious. +You lost them. You know you lost them. They comment on the syntax, or perhaps you do, already admitting defeat.</p> + + <p style="text-align:right"> + <a class="read_more" href="https://ninenines.eu/articles/the-elephant-in-the-room/">Read More</a> + </p> + </article> + + <article class="blog_item"> + <header> <h2><a href="https://ninenines.eu/articles/dont-let-it-crash/">Don't let it crash</a></h2> <p class="date"> <span class="year">2017</span> @@ -407,24 +424,6 @@ mod out_module begin mod in_module begin end end Of course, in the context of t </p> </article> - <article class="blog_item"> - <header> - <h2><a href="https://ninenines.eu/articles/xerl-0.1-empty-modules/">Xerl: empty modules</a></h2> - <p class="date"> - <span class="year">2013</span> - <span class="day-month">30 Jan</span> - </p> - </header> - - <p>Let's build a programming language. I call it Xerl: eXtended ERLang. It'll be an occasion for us to learn a few things, especially me. -Unlike in Erlang, in this language, everything is an expression. This means that modules and functions are expression, and indeed that you can have more than one module per file. -We are just starting, so let's no go ahead of ourselves here. We'll begin with writing the code allowing us to compile an empty module.</p> - - <p style="text-align:right"> - <a class="read_more" href="https://ninenines.eu/articles/xerl-0.1-empty-modules/">Read More</a> - </p> - </article> - <nav class="pagination" role="pagination"> diff --git a/articles/page/4/index.html b/articles/page/4/index.html index 53e77536..86752a19 100644 --- a/articles/page/4/index.html +++ b/articles/page/4/index.html @@ -65,6 +65,24 @@ <article class="blog_item"> <header> + <h2><a href="https://ninenines.eu/articles/xerl-0.1-empty-modules/">Xerl: empty modules</a></h2> + <p class="date"> + <span class="year">2013</span> + <span class="day-month">30 Jan</span> + </p> + </header> + + <p>Let's build a programming language. I call it Xerl: eXtended ERLang. It'll be an occasion for us to learn a few things, especially me. +Unlike in Erlang, in this language, everything is an expression. This means that modules and functions are expression, and indeed that you can have more than one module per file. +We are just starting, so let's no go ahead of ourselves here. We'll begin with writing the code allowing us to compile an empty module.</p> + + <p style="text-align:right"> + <a class="read_more" href="https://ninenines.eu/articles/xerl-0.1-empty-modules/">Read More</a> + </p> + </article> + + <article class="blog_item"> + <header> <h2><a href="https://ninenines.eu/articles/ranch-ftp/">Build an FTP Server with Ranch in 30 Minutes</a></h2> <p class="date"> <span class="year">2012</span> diff --git a/articles/ranch-1.3/index.html b/articles/ranch-1.3/index.html index 3c1850df..d7300acf 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/ranch-1.6.0/index.html b/articles/ranch-1.6.0/index.html index f4140cc1..be88f288 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/ranch-1.7.0/index.html b/articles/ranch-1.7.0/index.html index f29a7915..ac2a4433 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</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 513dbaa6..85284166 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/ranch-2.0.0/index.html b/articles/ranch-2.0.0/index.html index 3f595900..acee64bb 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/ranch-2.1.0/index.html b/articles/ranch-2.1.0/index.html index 9bb62a80..d1ce138c 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/ranch-2.2.0/index.html b/articles/ranch-2.2.0/index.html index 4fea2c69..e358a763 100644 --- a/articles/ranch-2.2.0/index.html +++ b/articles/ranch-2.2.0/index.html @@ -88,6 +88,10 @@ + <li><a href="https://ninenines.eu/articles/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/ranch-ftp/index.html b/articles/ranch-ftp/index.html index bd7c4fc6..b51f6ba0 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/the-elephant-in-the-room/index.html b/articles/the-elephant-in-the-room/index.html index 08a25daf..01498b78 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/the-gateway-trilogy/index.html b/articles/the-gateway-trilogy/index.html index 6d6bbc33..2f406fd6 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/the-story-so-far/index.html b/articles/the-story-so-far/index.html index 49953d32..2f4b0526 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/tictactoe/index.html b/articles/tictactoe/index.html index a790b193..2382be79 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/website-update/index.html b/articles/website-update/index.html index d3ccbcca..440e1adf 100644 --- a/articles/website-update/index.html +++ b/articles/website-update/index.html @@ -90,6 +90,10 @@ + <li><a href="https://ninenines.eu/articles/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/xerl-0.1-empty-modules/index.html b/articles/xerl-0.1-empty-modules/index.html index cc4b2e35..7dd8a514 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/xerl-0.2-two-modules/index.html b/articles/xerl-0.2-two-modules/index.html index 3662f675..2d0cf9b0 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/xerl-0.3-atomic-expressions/index.html b/articles/xerl-0.3-atomic-expressions/index.html index d6a25886..a28bfda5 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/xerl-0.4-expression-separator/index.html b/articles/xerl-0.4-expression-separator/index.html index 74813db8..e34e56ac 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> diff --git a/articles/xerl-0.5-intermediate-module/index.html b/articles/xerl-0.5-intermediate-module/index.html index 2ac33af1..bd555350 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/gun-2.2.0/">Gun 2.2</a></li> + + + <li><a href="https://ninenines.eu/articles/cowboy-2.13.0/">Cowboy 2.13</a></li> |