From f6f2a2dcde0b80a1a9c3c22f533abf2f7a99713a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Tue, 3 Jan 2017 14:26:42 +0100 Subject: Announce Cowboy 2.0.0-pre.4 and make 2.0 the default --- index.xml | 274 ++++++++++++++++++++++++++++---------------------------------- 1 file changed, 122 insertions(+), 152 deletions(-) (limited to 'index.xml') diff --git a/index.xml b/index.xml index 3b75c017..6d4b70a1 100644 --- a/index.xml +++ b/index.xml @@ -6,9 +6,128 @@ Recent content on Nine Nines Hugo -- gohugo.io en-us - Mon, 28 Nov 2016 00:00:00 +0100 + Tue, 03 Jan 2017 00:00:00 +0100 + + Cowboy 2.0 pre-release 4 + https://ninenines.eu/articles/cowboy-2.0.0-pre.4/ + Tue, 03 Jan 2017 00:00:00 +0100 + + https://ninenines.eu/articles/cowboy-2.0.0-pre.4/ + <div class="paragraph"><p>Cowboy <code>2.0.0-pre.4</code> has been released!</p></div> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>The most significant changes in the pre-release are:</p></div> +<div class="ulist"><ul> +<li> +<p> +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. +</p> +</li> +<li> +<p> +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 <code>cowboy_stream</code> and <code>cowboy_stream_h</code> if interested. +</p> +</li> +<li> +<p> +Numerous changes to the <code>cowboy_req</code> interface. This + is very close to final. Check the manual for what changed. +</p> +</li> +<li> +<p> +The Req object is no longer passed in Websocket callbacks. +</p> +</li> +<li> +<p> +It is now possible to send frames directly from <code>websocket_init/1</code>. +</p> +</li> +<li> +<p> +SPDY support was removed, now that we have HTTP/2. +</p> +</li> +<li> +<p> +Update Ranch to 1.3. We still depend on Cowlib master + for the time being. +</p> +</li> +<li> +<p> +A much improved manual. +</p> +</li> +</ul></div> +<div class="paragraph"><p>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: <a href="https://ninenines.eu/docs/en/cowboy/2.0/manual/">https://ninenines.eu/docs/en/cowboy/2.0/manual/</a></p></div> +<div class="paragraph"><p>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!</p></div> +<div class="paragraph"><p>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).</p></div> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>Cowboy is now available from four locations:</p></div> +<div class="ulist"><ul> +<li> +<p> +<a href="https://git.ninenines.eu/cowboy.git">https://git.ninenines.eu/cowboy.git</a> +</p> +</li> +<li> +<p> +<a href="https://github.com/ninenines/cowboy.git">https://github.com/ninenines/cowboy.git</a> +</p> +</li> +<li> +<p> +<a href="https://bitbucket.org/ninenines/cowboy.git">https://bitbucket.org/ninenines/cowboy.git</a> +</p> +</li> +<li> +<p> +<a href="https://gitlab.com/ninenines/cowboy.git">https://gitlab.com/ninenines/cowboy.git</a> +</p> +</li> +</ul></div> +<div class="paragraph"><p>They are updated at the same time so there is no real difference.</p></div> +<div class="paragraph"><p>Cowboy 2.0 will be released once all the breaking changes +are completed and the temporarily removed features are +added back.</p></div> +<div class="paragraph"><p>Thanks for your patience. I know it took a long time.</p></div> +<hr/> +<div class="paragraph"><p>Half-price on all donations because I need a new hat:</p></div> +<form action="https://www.paypal.com/cgi-bin/webscr" method="post" style="display:inline"> +<input type="hidden" name="cmd" value="_donations"> +<input type="hidden" name="business" value="essen@ninenines.eu"> +<input type="hidden" name="lc" value="FR"> +<input type="hidden" name="item_name" value="Loic Hoguin"> +<input type="hidden" name="item_number" value="99s"> +<input type="hidden" name="currency_code" value="EUR"> +<input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHosted"> +<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"> +<img alt="" border="0" src="https://www.paypalobjects.com/fr_FR/i/scr/pixel.gif" width="1" height="1"> +</form> + + + Ranch 1.3 https://ninenines.eu/articles/ranch-1.3/ @@ -340,8 +459,8 @@ of my projects? I would happily include them on this page.</p></div> https://ninenines.eu/donate/ <div class="sect2"> <h3 id="_like_my_work_donate">Like my work? Donate!</h3> -<div class="paragraph"><p>You can donate via Paypal to reward me, Loïc Hoguin, for my -work on open source software including Cowboy and Erlang.mk.</p></div> +<div class="paragraph"><p>Donate to Loïc Hoguin because his work on Cowboy +and Erlang.mk is fantastic:</p></div> <form action="https://www.paypal.com/cgi-bin/webscr" method="post" style="display:inline"> <input type="hidden" name="cmd" value="_donations"> <input type="hidden" name="business" value="essen@ninenines.eu"> @@ -1168,155 +1287,6 @@ easier manipulation.</p></div> <div class="paragraph"><p>As usual, feedback is more than welcome, and I apologize for the rocky structure of this post as it contains all the thoughts that went into this rather than just the conclusion.</p></div> - - - - - January 2014 status - https://ninenines.eu/articles/january-2014-status/ - Tue, 07 Jan 2014 00:00:00 +0100 - - https://ninenines.eu/articles/january-2014-status/ - <div class="paragraph"><p>I will now be regularly writing posts about project status, plans -and hopes for the future.</p></div> -<div class="paragraph"><p>Before that though, there&#8217;s one important news to share.</p></div> -<div class="paragraph"><p>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&#8217;t benefit the open source projects. -And that didn&#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.</p></div> -<div class="paragraph"><p>What makes me happy is answering these "what if" questions. -Ranch and Cowboy are a direct product of that, as they originate -from the "what if we could have a server running different protocols -on different ports but all part of the same application?"; Erlang.mk -is a bit different: "this works great for me, what if it could -become the standard solution for building Erlang applications?".</p></div> -<div class="paragraph"><p>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&#8217;s a lot more rewarding than activities like -consulting where you only help one company at a time. And it&#8217;s -also a much better use of my time as this has a bigger impact on -the community.</p></div> -<div class="paragraph"><p>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.</p></div> -<div class="paragraph"><p>The immediate solution was getting work sponsored by the -<a href="http://www.leofs.org/">LeoFS project</a>. 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.</p></div> -<div class="paragraph"><p>It turns out sponsoring works great. So I&#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.</p></div> -<div class="paragraph"><p>Sponsors can <em>request that a particular version of Cowboy -be maintained indefinitely</em> (as long as they&#8217;re sponsoring). -This means fixes will be backported. This doesn&#8217;t include -features although I can take requests depending on feasability.</p></div> -<div class="paragraph"><p>Sponsors can <em>have a direct, private line of communication</em>, -useful when they need help debugging or optimizing their product.</p></div> -<div class="paragraph"><p>Sponsors can <em>get their name associated with one of the -project</em> 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.</p></div> -<div class="paragraph"><p>Sponsors can <em>be listed on this website</em>. I will modify -the front page when we get a few more sponsors, they will be -featured below the carousel of projects.</p></div> -<div class="paragraph"><p>Please <a href="mailto:contact@ninenines.eu">contact us</a> 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&#8217;s an upper limit in the -amount needed per year, so the more sponsors there are the cheaper -it becomes to everyone.</p></div> -<div class="paragraph"><p>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&#8217;s important. From your point of view it&#8217;s business as -usual.</p></div> -<div class="paragraph"><p>Now on to project statuses and future works.</p></div> -<div class="sect1"> -<h2 id="_cowboy">Cowboy</h2> -<div class="sectionbody"> -<div class="paragraph"><p>Cowboy is getting ready for a 1.0 release. Once multipart support -is in, all that&#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.</p></div> -<div class="paragraph"><p>I already dream of some API breaking changes after 1.0, which -would essentially become 2.0 when they&#8217;re done. An extensive survey -will be setup after the 1.0 release to get more information on what -people like and don&#8217;t like about the API.</p></div> -<div class="paragraph"><p>And of course, when clients start implementing HTTP/2.0 then we -will too.</p></div> -</div> -</div> -<div class="sect1"> -<h2 id="_ranch">Ranch</h2> -<div class="sectionbody"> -<div class="paragraph"><p>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.</p></div> -<div class="paragraph"><p>Ranch is pretty solid otherwise, it&#8217;s hard to foresee new -features at this point.</p></div> -</div> -</div> -<div class="sect1"> -<h2 id="_erlang_mk">Erlang.mk</h2> -<div class="sectionbody"> -<div class="paragraph"><p>I didn&#8217;t expect this project to become popular. Glad it did though.</p></div> -<div class="paragraph"><p>Windows support is planned, but will require GNU Make 4. -Thankfully, it&#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 <em>.app</em> file and so on, allowing -us to provide a truly cross-platform solution without -losing on the performance we benefit from using Make.</p></div> -<div class="paragraph"><p>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.</p></div> -<div class="paragraph"><p>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 <code>dep</code> 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 <code>dep</code> -line is specified this would instead override the file.</p></div> -</div> -</div> -<div class="sect1"> -<h2 id="_alien_shaman">Alien Shaman</h2> -<div class="sectionbody"> -<div class="paragraph"><p>This is the two-parts project requested by the LeoFS team. -This is essentially a "distributed bigwig". I am hoping to -have a prototype up in a few days.</p></div> -<div class="paragraph"><p>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.</p></div> -<div class="paragraph"><p>Shaman is the UI for it. It will ultimately be able to display -any event as long as it&#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.</p></div> -</div> -</div> -<div class="sect1"> -<h2 id="_feedback">Feedback</h2> -<div class="sectionbody"> -<div class="paragraph"><p>That&#8217;s it for today! There will be another status update once -Shaman is out. But for now I have to focus on it.</p></div> -<div class="paragraph"><p>As always, please send feedback on the projects, this post, -the sponsoring idea, anything really! Thanks.</p></div> -</div> -</div> -- cgit v1.2.3