summaryrefslogtreecommitdiffstats
path: root/index.xml
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2017-01-03 14:26:42 +0100
committerLoïc Hoguin <[email protected]>2017-01-03 14:26:42 +0100
commitf6f2a2dcde0b80a1a9c3c22f533abf2f7a99713a (patch)
tree779dd1ad332a560c7a3e9633649e44b430629f44 /index.xml
parentfdc955ab18ba2fe285c75b75a8b92cf9f9436adc (diff)
downloadninenines.eu-f6f2a2dcde0b80a1a9c3c22f533abf2f7a99713a.tar.gz
ninenines.eu-f6f2a2dcde0b80a1a9c3c22f533abf2f7a99713a.tar.bz2
ninenines.eu-f6f2a2dcde0b80a1a9c3c22f533abf2f7a99713a.zip
Announce Cowboy 2.0.0-pre.4 and make 2.0 the default
Diffstat (limited to 'index.xml')
-rw-r--r--index.xml274
1 files changed, 122 insertions, 152 deletions
diff --git a/index.xml b/index.xml
index 3b75c017..6d4b70a1 100644
--- a/index.xml
+++ b/index.xml
@@ -6,10 +6,129 @@
<description>Recent content on Nine Nines</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
- <lastBuildDate>Mon, 28 Nov 2016 00:00:00 +0100</lastBuildDate>
+ <lastBuildDate>Tue, 03 Jan 2017 00:00:00 +0100</lastBuildDate>
<atom:link href="https://ninenines.eu/index.xml" rel="self" type="application/rss+xml" />
<item>
+ <title>Cowboy 2.0 pre-release 4</title>
+ <link>https://ninenines.eu/articles/cowboy-2.0.0-pre.4/</link>
+ <pubDate>Tue, 03 Jan 2017 00:00:00 +0100</pubDate>
+
+ <guid>https://ninenines.eu/articles/cowboy-2.0.0-pre.4/</guid>
+ <description>&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Cowboy &lt;code&gt;2.0.0-pre.4&lt;/code&gt; has been released!&lt;/p&gt;&lt;/div&gt;
+&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;This is the new recommended version of Cowboy.
+While I would not recommend putting it in production
+just yet, I do recommend you start writing new
+applications with this Cowboy version.&lt;/p&gt;&lt;/div&gt;
+&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;The most significant changes in the pre-release are:&lt;/p&gt;&lt;/div&gt;
+&lt;div class=&#34;ulist&#34;&gt;&lt;ul&gt;
+&lt;li&gt;
+&lt;p&gt;
+A new architecture: there now is one process per
+ connection and one process per request. This was
+ done because HTTP/2 allows running requests concurrently.
+&lt;/p&gt;
+&lt;/li&gt;
+&lt;li&gt;
+&lt;p&gt;
+Stream handlers. Every request, response and data goes
+ through stream handlers. They are meant to replace hooks
+ and more. They will be documented in a future pre-release.
+ Check &lt;code&gt;cowboy_stream&lt;/code&gt; and &lt;code&gt;cowboy_stream_h&lt;/code&gt; if interested.
+&lt;/p&gt;
+&lt;/li&gt;
+&lt;li&gt;
+&lt;p&gt;
+Numerous changes to the &lt;code&gt;cowboy_req&lt;/code&gt; interface. This
+ is very close to final. Check the manual for what changed.
+&lt;/p&gt;
+&lt;/li&gt;
+&lt;li&gt;
+&lt;p&gt;
+The Req object is no longer passed in Websocket callbacks.
+&lt;/p&gt;
+&lt;/li&gt;
+&lt;li&gt;
+&lt;p&gt;
+It is now possible to send frames directly from &lt;code&gt;websocket_init/1&lt;/code&gt;.
+&lt;/p&gt;
+&lt;/li&gt;
+&lt;li&gt;
+&lt;p&gt;
+SPDY support was removed, now that we have HTTP/2.
+&lt;/p&gt;
+&lt;/li&gt;
+&lt;li&gt;
+&lt;p&gt;
+Update Ranch to 1.3. We still depend on Cowlib master
+ for the time being.
+&lt;/p&gt;
+&lt;/li&gt;
+&lt;li&gt;
+&lt;p&gt;
+A much improved manual.
+&lt;/p&gt;
+&lt;/li&gt;
+&lt;/ul&gt;&lt;/div&gt;
+&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;The manual received a lot of love. It now has one page per
+function with a detailed description, arguments list, return
+value, changelog and examples. It also links to the other
+relevant manual pages: &lt;a href=&#34;https://ninenines.eu/docs/en/cowboy/2.0/manual/&#34;&gt;https://ninenines.eu/docs/en/cowboy/2.0/manual/&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
+&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;I am quite proud of the manual right now. While more
+improvements can be made, what we have now is way better
+than before. Feedback for further improvements is welcome!&lt;/p&gt;&lt;/div&gt;
+&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;This is a significant step toward Cowboy 2.0. Almost all
+the breaking changes are in. A few more pre-releases are
+planned and will be released on a weekly basis (with exceptions).&lt;/p&gt;&lt;/div&gt;
+&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Cowboy is now tested and supported with Erlang/OTP 18.0 or above
+on Arch Linux, FreeBSD, OSX, Ubuntu and Windows 7. Contact me
+if you can provide permanent access to another platform for the
+purposes of testing.&lt;/p&gt;&lt;/div&gt;
+&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Cowboy is now available from four locations:&lt;/p&gt;&lt;/div&gt;
+&lt;div class=&#34;ulist&#34;&gt;&lt;ul&gt;
+&lt;li&gt;
+&lt;p&gt;
+&lt;a href=&#34;https://git.ninenines.eu/cowboy.git&#34;&gt;https://git.ninenines.eu/cowboy.git&lt;/a&gt;
+&lt;/p&gt;
+&lt;/li&gt;
+&lt;li&gt;
+&lt;p&gt;
+&lt;a href=&#34;https://github.com/ninenines/cowboy.git&#34;&gt;https://github.com/ninenines/cowboy.git&lt;/a&gt;
+&lt;/p&gt;
+&lt;/li&gt;
+&lt;li&gt;
+&lt;p&gt;
+&lt;a href=&#34;https://bitbucket.org/ninenines/cowboy.git&#34;&gt;https://bitbucket.org/ninenines/cowboy.git&lt;/a&gt;
+&lt;/p&gt;
+&lt;/li&gt;
+&lt;li&gt;
+&lt;p&gt;
+&lt;a href=&#34;https://gitlab.com/ninenines/cowboy.git&#34;&gt;https://gitlab.com/ninenines/cowboy.git&lt;/a&gt;
+&lt;/p&gt;
+&lt;/li&gt;
+&lt;/ul&gt;&lt;/div&gt;
+&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;They are updated at the same time so there is no real difference.&lt;/p&gt;&lt;/div&gt;
+&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Cowboy 2.0 will be released once all the breaking changes
+are completed and the temporarily removed features are
+added back.&lt;/p&gt;&lt;/div&gt;
+&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Thanks for your patience. I know it took a long time.&lt;/p&gt;&lt;/div&gt;
+&lt;hr/&gt;
+&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Half-price on all donations because I need a new hat:&lt;/p&gt;&lt;/div&gt;
+&lt;form action=&#34;https://www.paypal.com/cgi-bin/webscr&#34; method=&#34;post&#34; style=&#34;display:inline&#34;&gt;
+&lt;input type=&#34;hidden&#34; name=&#34;cmd&#34; value=&#34;_donations&#34;&gt;
+&lt;input type=&#34;hidden&#34; name=&#34;business&#34; value=&#34;[email protected]&#34;&gt;
+&lt;input type=&#34;hidden&#34; name=&#34;lc&#34; value=&#34;FR&#34;&gt;
+&lt;input type=&#34;hidden&#34; name=&#34;item_name&#34; value=&#34;Loic Hoguin&#34;&gt;
+&lt;input type=&#34;hidden&#34; name=&#34;item_number&#34; value=&#34;99s&#34;&gt;
+&lt;input type=&#34;hidden&#34; name=&#34;currency_code&#34; value=&#34;EUR&#34;&gt;
+&lt;input type=&#34;hidden&#34; name=&#34;bn&#34; value=&#34;PP-DonationsBF:btn_donate_LG.gif:NonHosted&#34;&gt;
+&lt;input type=&#34;image&#34; src=&#34;https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif&#34; border=&#34;0&#34; name=&#34;submit&#34; alt=&#34;PayPal - The safer, easier way to pay online!&#34;&gt;
+&lt;img alt=&#34;&#34; border=&#34;0&#34; src=&#34;https://www.paypalobjects.com/fr_FR/i/scr/pixel.gif&#34; width=&#34;1&#34; height=&#34;1&#34;&gt;
+&lt;/form&gt;
+</description>
+ </item>
+
+ <item>
<title>Ranch 1.3</title>
<link>https://ninenines.eu/articles/ranch-1.3/</link>
<pubDate>Mon, 28 Nov 2016 00:00:00 +0100</pubDate>
@@ -340,8 +459,8 @@ of my projects? I would happily include them on this page.&lt;/p&gt;&lt;/div&gt;
<guid>https://ninenines.eu/donate/</guid>
<description>&lt;div class=&#34;sect2&#34;&gt;
&lt;h3 id=&#34;_like_my_work_donate&#34;&gt;Like my work? Donate!&lt;/h3&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;You can donate via Paypal to reward me, Loïc Hoguin, for my
-work on open source software including Cowboy and Erlang.mk.&lt;/p&gt;&lt;/div&gt;
+&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Donate to Loïc Hoguin because his work on Cowboy
+and Erlang.mk is fantastic:&lt;/p&gt;&lt;/div&gt;
&lt;form action=&#34;https://www.paypal.com/cgi-bin/webscr&#34; method=&#34;post&#34; style=&#34;display:inline&#34;&gt;
&lt;input type=&#34;hidden&#34; name=&#34;cmd&#34; value=&#34;_donations&#34;&gt;
&lt;input type=&#34;hidden&#34; name=&#34;business&#34; value=&#34;[email protected]&#34;&gt;
@@ -1171,154 +1290,5 @@ thoughts that went into this rather than just the conclusion.&lt;/p&gt;&lt;/div&
</description>
</item>
- <item>
- <title>January 2014 status</title>
- <link>https://ninenines.eu/articles/january-2014-status/</link>
- <pubDate>Tue, 07 Jan 2014 00:00:00 +0100</pubDate>
-
- <guid>https://ninenines.eu/articles/january-2014-status/</guid>
- <description>&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;I will now be regularly writing posts about project status, plans
-and hopes for the future.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Before that though, there&amp;#8217;s one important news to share.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Until a year ago all development was financed through consulting
-and development services. This worked alright but too much time was
-spent doing things that didn&amp;#8217;t benefit the open source projects.
-And that didn&amp;#8217;t make me happy at all. Because I like being happy
-I stopped that for the most part and spent the year figuring things
-out, experimenting and discussing with people about it.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;What makes me happy is answering these &#34;what if&#34; questions.
-Ranch and Cowboy are a direct product of that, as they originate
-from the &#34;what if we could have a server running different protocols
-on different ports but all part of the same application?&#34;; Erlang.mk
-is a bit different: &#34;this works great for me, what if it could
-become the standard solution for building Erlang applications?&#34;.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;When I successfully answer the question, this becomes a project
-that may end up largely benefiting the Erlang community. I love
-Erlang and I love enabling people to build awesome products based
-on my projects. It&amp;#8217;s a lot more rewarding than activities like
-consulting where you only help one company at a time. And it&amp;#8217;s
-also a much better use of my time as this has a bigger impact on
-the community.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;The hard part is to figure out how to be able to spend 100%
-of the time on projects that you basically give away for free,
-and still be able to afford living.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;The immediate solution was getting work sponsored by the
-&lt;a href=&#34;http://www.leofs.org/&#34;&gt;LeoFS project&lt;/a&gt;. LeoFS is a great
-distributed file storage that I can only recommend to anyone who
-needs to store files or large pieces of data. The sponsorship
-works pretty great, and spurred development of the SPDY code in
-Cowboy amongst other things, plus a couple upcoming projects
-done more recently and getting a final touch before release.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;It turns out sponsoring works great. So I&amp;#8217;m thinking of
-expanding on it and hopefully get enough sponsoring for fulltime
-open source development. So I figured out a few things that
-can give incentive to companies willing to sponsor.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Sponsors can &lt;em&gt;request that a particular version of Cowboy
-be maintained indefinitely&lt;/em&gt; (as long as they&amp;#8217;re sponsoring).
-This means fixes will be backported. This doesn&amp;#8217;t include
-features although I can take requests depending on feasability.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Sponsors can &lt;em&gt;have a direct, private line of communication&lt;/em&gt;,
-useful when they need help debugging or optimizing their product.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Sponsors can &lt;em&gt;get their name associated with one of the
-project&lt;/em&gt; and get a good standing in the community thanks
-to this. They would be featured in the README of the project
-which is viewed by hundreds of developers daily.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Sponsors can &lt;em&gt;be listed on this website&lt;/em&gt;. I will modify
-the front page when we get a few more sponsors, they will be
-featured below the carousel of projects.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Please &lt;a href=&#34;mailto:[email protected]&#34;&gt;contact us&lt;/a&gt; if
-you are interested in sponsoring, and say how much you are willing
-to sponsor. The goal here is only to have enough money to make a
-living and attend a few conferences. There&amp;#8217;s an upper limit in the
-amount needed per year, so the more sponsors there are the cheaper
-it becomes to everyone.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;The upper limit stems from the new legal entity that will replace
-the current Nine Nines. This is mostly to lower the legal costs and
-simplify the administrative stuff and allow me to dedicate all my
-time on what&amp;#8217;s important. From your point of view it&amp;#8217;s business as
-usual.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Now on to project statuses and future works.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;sect1&#34;&gt;
-&lt;h2 id=&#34;_cowboy&#34;&gt;Cowboy&lt;/h2&gt;
-&lt;div class=&#34;sectionbody&#34;&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Cowboy is getting ready for a 1.0 release. Once multipart support
-is in, all that&amp;#8217;s left is finishing the guide, improving tests and
-finishing moving code to the cowlib project. I hope everything will
-be ready around the time R17B is released.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;I already dream of some API breaking changes after 1.0, which
-would essentially become 2.0 when they&amp;#8217;re done. An extensive survey
-will be setup after the 1.0 release to get more information on what
-people like and don&amp;#8217;t like about the API.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;And of course, when clients start implementing HTTP/2.0 then we
-will too.&lt;/p&gt;&lt;/div&gt;
-&lt;/div&gt;
-&lt;/div&gt;
-&lt;div class=&#34;sect1&#34;&gt;
-&lt;h2 id=&#34;_ranch&#34;&gt;Ranch&lt;/h2&gt;
-&lt;div class=&#34;sectionbody&#34;&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Ranch is also getting close to 1.0. I am currently writing a
-test suite for upgrades. After that I also would like to write
-a chaos_monkey test suite and add a getting started chapter to the
-guide.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Ranch is pretty solid otherwise, it&amp;#8217;s hard to foresee new
-features at this point.&lt;/p&gt;&lt;/div&gt;
-&lt;/div&gt;
-&lt;/div&gt;
-&lt;div class=&#34;sect1&#34;&gt;
-&lt;h2 id=&#34;_erlang_mk&#34;&gt;Erlang.mk&lt;/h2&gt;
-&lt;div class=&#34;sectionbody&#34;&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;I didn&amp;#8217;t expect this project to become popular. Glad it did though.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Windows support is planned, but will require GNU Make 4.
-Thankfully, it&amp;#8217;s available at least through cygwin. Make,
-Git and Erlang will be the only required dependencies
-because the rest of the external calls will be converted to
-using Guile, a Scheme included since GNU Make 4. So it is
-Guile that will download the needed files, magically fill
-the list of modules in the &lt;em&gt;.app&lt;/em&gt; file and so on, allowing
-us to provide a truly cross-platform solution without
-losing on the performance we benefit from using Make.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Also note that it is possible to check whether Guile
-is available so we will be able to fallback to the current
-code for older systems.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;I am also thinking about adding an extra column to the package
-index, indicating the preferred tag or commit number to be used.
-This would allow us to skip the individual &lt;code&gt;dep&lt;/code&gt; lines
-entirely if the information in the package index is good enough.
-And committing that file to your project would be the only thing
-needed to lock the dependencies. Of course if a &lt;code&gt;dep&lt;/code&gt;
-line is specified this would instead override the file.&lt;/p&gt;&lt;/div&gt;
-&lt;/div&gt;
-&lt;/div&gt;
-&lt;div class=&#34;sect1&#34;&gt;
-&lt;h2 id=&#34;_alien_shaman&#34;&gt;Alien Shaman&lt;/h2&gt;
-&lt;div class=&#34;sectionbody&#34;&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;This is the two-parts project requested by the LeoFS team.
-This is essentially a &#34;distributed bigwig&#34;. I am hoping to
-have a prototype up in a few days.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Alien is the part that allows writing and enabling probes
-in your nodes. Probes send events which may get filtered before
-being forwarded to their destination. The events may be sent
-to a local process, a remote process, over UDP, TCP or SSL.
-Events may also be received by a process called a relay, which
-may be used to group or aggregate data before it is being sent
-over the network, reducing the footprint overall.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;Shaman is the UI for it. It will ultimately be able to display
-any event as long as it&amp;#8217;s configured to do so. Events may be logs,
-numeric values displayed on graphs updated in real time, lists of
-items like processes and so on.&lt;/p&gt;&lt;/div&gt;
-&lt;/div&gt;
-&lt;/div&gt;
-&lt;div class=&#34;sect1&#34;&gt;
-&lt;h2 id=&#34;_feedback&#34;&gt;Feedback&lt;/h2&gt;
-&lt;div class=&#34;sectionbody&#34;&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;That&amp;#8217;s it for today! There will be another status update once
-Shaman is out. But for now I have to focus on it.&lt;/p&gt;&lt;/div&gt;
-&lt;div class=&#34;paragraph&#34;&gt;&lt;p&gt;As always, please send feedback on the projects, this post,
-the sponsoring idea, anything really! Thanks.&lt;/p&gt;&lt;/div&gt;
-&lt;/div&gt;
-&lt;/div&gt;
-</description>
- </item>
-
</channel>
</rss> \ No newline at end of file