<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: "Courier New", monospace; font-size: 10pt; color: rgb(0, 0, 0);">
GREAT!!!! <span style="color: rgb(0, 0, 0); font-family: "Courier New", monospace; font-size: 10pt;">What a good way to start a day reading about your new Nitrogen release!</span></div>
<div style="font-family: "Courier New", monospace; font-size: 10pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: "Courier New", monospace; font-size: 10pt; color: rgb(0, 0, 0);">
I've been using Nitrogen on a website for 5 years now without any problems, so it might be time for an upgrade.</div>
<div style="font-family: "Courier New", monospace; font-size: 10pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: "Courier New", monospace; font-size: 10pt; color: rgb(0, 0, 0);">
/Hans Nilsson</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>Från:</b> erlang-questions <erlang-questions-bounces@erlang.org> för Jesse Gumm <gumm@sigma-star.com><br>
<b>Skickat:</b> den 17 november 2020 00:07<br>
<b>Till:</b> Erlang Questions <erlang-questions@erlang.org><br>
<b>Ämne:</b> [ANN] Nitrogen Web Framework 2.4 Released</font>
<div> </div>
</div>
<div>
<div dir="ltr">Hello Fellow Erlangers and (maybe some of you Nitrogenes)!<br>
<br>
I'm proud to announce the 2.4 release of the Nitrogen Web Framework!<br>
<br>
<br>
What is Nitrogen?<br>
<br>
Nitrogen (<a href="https://protect2.fireeye.com/v1/url?k=2596db5a-7a0de388-25969bc1-866132fe445e-b46cff6db11e77c8&q=1&e=5bd24435-c2bd-4b69-b01a-03a04484ff65&u=http%3A%2F%2Fnitrogenproject.com%2F">http://nitrogenproject.com</a>) is an event-driven Erlang web
framework that uses Erlang records to generate HTML and Javascript. It is a server-side rendering framework with (usually) a live websocket connection active at all times.<br>
<br>
*************************************<br>
Highlights from version 2.4.0<br>
*************************************<br>
<br>
* Added built-in Caching. The cache handler is, of course, customizable so that you can plug in your own caching system if you like (Redis, memcached, Mnesia, etc), but the default cache handler uses a caching application called NitroCache (<a href="https://protect2.fireeye.com/v1/url?k=1682befe-4919862c-1682fe65-866132fe445e-26e86d4ae7f0547d&q=1&e=5bd24435-c2bd-4b69-b01a-03a04484ff65&u=https%3A%2F%2Fgithub.com%2Fnitrogen%2Fnitro_cache">https://github.com/nitrogen/nitro_cache</a>).
NitroCache is a basic ETS-based cache with a mutex to prevent simultaneous requests to the same key from being calculated in parallel. (This is a heavily modified fork of
<a href="https://protect2.fireeye.com/v1/url?k=3b6ec08e-64f5f85c-3b6e8015-866132fe445e-d397e6ba128f2132&q=1&e=5bd24435-c2bd-4b69-b01a-03a04484ff65&u=https%3A%2F%2Fgithub.com%2Fmarcelog%2Fsimple_cache">
https://github.com/marcelog/simple_cache</a>)<br>
* Created a new library/tool called `rekt` (<a href="https://protect2.fireeye.com/v1/url?k=5e121910-018921c2-5e12598b-866132fe445e-166f6ba217fc12a1&q=1&e=5bd24435-c2bd-4b69-b01a-03a04484ff65&u=https%3A%2F%2Fgithub.com%2Fnitrogen%2Frekt">https://github.com/nitrogen/rekt</a>)
that is sort of a parse_transform that allows inheritance with records. Basically, you can define new records based on other records. This uses a new module attribute called `-extend`. See the readme on the github page for details.<br>
* Nitrogen's templating system now supports Pandoc (<a href="https://protect2.fireeye.com/v1/url?k=ce3c89f2-91a7b120-ce3cc969-866132fe445e-3322cff3008ace8e&q=1&e=5bd24435-c2bd-4b69-b01a-03a04484ff65&u=https%3A%2F%2Fpandoc.org%2F">https://pandoc.org</a>) for
converting from and to various formats (like HTML, PDF, RTF, Markdown, etc). For this functionality, you must have pandoc installed on your system.<br>
* Added new tools to assist with creating Nitrogen plugins.<br>
* All documentation has been converted to markdown (from org-mode) for easier editing.<br>
* The usual: New elements, actions, API functions, documentation, etc<br>
* The Full Nitrogen Changelog:<br>
<a href="https://protect2.fireeye.com/v1/url?k=585b3431-07c00ce3-585b74aa-866132fe445e-373edeaa858a931d&q=1&e=5bd24435-c2bd-4b69-b01a-03a04484ff65&u=https%3A%2F%2Fgithub.com%2Fnitrogen%2Fnitrogen%2Fblob%2Fmaster%2FCHANGELOG.markdown">https://github.com/nitrogen/nitrogen/blob/master/CHANGELOG.markdown</a><br>
<br>
One key callout for the Erlang veterans: Nitrogen is one of the few projects still on Rebar2 and reltool. I have begun the work of converting Nitrogen to rebar3/relx. Nitrogen has always relied heavily on some rebar2 and reltool hackery and I haven't had the
time to rework it to support rebar3 properly while maintaining backwards compatibility. Nitrogen 3 will use Rebar3, and *may* break some backwards compatibility.<br>
<br>
*************************************<br>
A few other things of note<br>
*************************************<br>
<br>
As usual, binaries for self-contained quick-start development environments with all supported web servers (Cowboy, Yaws, Mochiweb, Webmachine, Inets) for all supported platforms (Linux, OSX, Windows, FreeBSD, Raspbian) are up for download now on:
<a href="https://protect2.fireeye.com/v1/url?k=6a468095-35ddb847-6a46c00e-866132fe445e-59965b88ae87f614&q=1&e=5bd24435-c2bd-4b69-b01a-03a04484ff65&u=http%3A%2F%2Fnitrogenproject.com%2Fdownloads">
nitrogenproject.com/downloads</a><br>
<br>
Nitrogen now has a public roadmap and it's up at: <a href="https://protect2.fireeye.com/v1/url?k=312d4d0d-6eb675df-312d0d96-866132fe445e-89f3e28aa46ba1cf&q=1&e=5bd24435-c2bd-4b69-b01a-03a04484ff65&u=http%3A%2F%2Ftrello.nitrogenproject.com%2F">
trello.nitrogenproject.com</a>.<br>
<br>
One final change, the #nitrogen IRC channel (on freenode) has been retired in favor of a Discord channel. This is accessible via
<a href="https://protect2.fireeye.com/v1/url?k=d7898071-8812b8a3-d789c0ea-866132fe445e-2ac672f1b7029876&q=1&e=5bd24435-c2bd-4b69-b01a-03a04484ff65&u=http%3A%2F%2Fdiscord.nitrogenproject.com%2F">
discord.nitrogenproject.com</a>.<br>
<br>
*************************************<br>
Some Personal Stuff<br>
*************************************<br>
<br>
Overall, I'm excited to finally have this new version released. It has been an embarrassingly long time since the last release, and although it has been so long, development has continued slowly and steadily. Nitrogen remains my daily environment and developing
with it and for it continues to give me great joy.<br>
<br>
There is another major announcement for Nitrogen coming this week. I'll give you a hint: it involves a word that starts with "B" and rhymes with "cook."<br>
<br>
***************************************<br>
C'mon! Get this over with already!<br>
***************************************<br>
<br>
If anyone is interested in becoming an official part of the Nitrogen team, please let me know. I know nobody really ever has time for open source, but if you're running an application that depends on Nitrogen for revenue or are a young go-getter who wants to
change the world by working on a niche framework for an esoteric programming language, hit me up.<br>
<br>
Finally, thanks to everyone who contributed code, submitted bug reports and issues, and asked questions. Every little bit helps and you folks are great for it!<br>
<br>
And of course, thanks to everyone in the Erlang and Elixir ecosystem. Since coming into Erlang in the late 2000s (with the help of Joe's legendary book), it has been so exciting watching the evolution of the community and ecosystem (especially things like Rebar
and Elixir).<br>
<br>
The overarching BEAM community remains second-to-none.<br>
<br>
Thanks all again, and happy hacking!<br>
<br>
-Jesse<br>
<br>
--<br>
Jesse Gumm<br>
Owner, Sigma Star Systems<br>
414.940.4866 || <a href="https://protect2.fireeye.com/v1/url?k=ed9b9077-b200a8a5-ed9bd0ec-866132fe445e-c1d85e31aaaf48f1&q=1&e=5bd24435-c2bd-4b69-b01a-03a04484ff65&u=http%3A%2F%2Fsigma-star.com%2F">
sigma-star.com</a> || @jessegumm<br>
</div>
</div>
</body>
</html>