summaryrefslogtreecommitdiffstats
path: root/_build/static/archives/extend/2013-April
diff options
context:
space:
mode:
Diffstat (limited to '_build/static/archives/extend/2013-April')
-rw-r--r--_build/static/archives/extend/2013-April/000073.html82
-rw-r--r--_build/static/archives/extend/2013-April/000074.html78
-rw-r--r--_build/static/archives/extend/2013-April/000075.html66
-rw-r--r--_build/static/archives/extend/2013-April/000076.html196
-rw-r--r--_build/static/archives/extend/2013-April/000077.html213
-rw-r--r--_build/static/archives/extend/2013-April/000078.html68
-rw-r--r--_build/static/archives/extend/2013-April/000079.html76
-rw-r--r--_build/static/archives/extend/2013-April/000080.html87
-rw-r--r--_build/static/archives/extend/2013-April/000081.html156
-rw-r--r--_build/static/archives/extend/2013-April/000082.html172
-rw-r--r--_build/static/archives/extend/2013-April/000083.html179
-rw-r--r--_build/static/archives/extend/2013-April/000084.html192
-rw-r--r--_build/static/archives/extend/2013-April/000085.html208
-rw-r--r--_build/static/archives/extend/2013-April/000086.html66
-rw-r--r--_build/static/archives/extend/2013-April/000087.html78
-rw-r--r--_build/static/archives/extend/2013-April/000088.html75
-rw-r--r--_build/static/archives/extend/2013-April/000089.html86
-rw-r--r--_build/static/archives/extend/2013-April/000090.html97
-rw-r--r--_build/static/archives/extend/2013-April/000091.html107
-rw-r--r--_build/static/archives/extend/2013-April/000092.html83
-rw-r--r--_build/static/archives/extend/2013-April/000093.html120
-rw-r--r--_build/static/archives/extend/2013-April/000094.html132
-rw-r--r--_build/static/archives/extend/2013-April/000095.html137
-rw-r--r--_build/static/archives/extend/2013-April/000096.html149
-rw-r--r--_build/static/archives/extend/2013-April/000097.html152
-rw-r--r--_build/static/archives/extend/2013-April/000098.html68
-rw-r--r--_build/static/archives/extend/2013-April/000099.html80
-rw-r--r--_build/static/archives/extend/2013-April/000100.html89
-rw-r--r--_build/static/archives/extend/2013-April/000101.html102
-rw-r--r--_build/static/archives/extend/2013-April/000102.html112
-rw-r--r--_build/static/archives/extend/2013-April/000103.html122
-rw-r--r--_build/static/archives/extend/2013-April/000104.html127
-rw-r--r--_build/static/archives/extend/2013-April/000105.html143
-rw-r--r--_build/static/archives/extend/2013-April/000106.html152
-rw-r--r--_build/static/archives/extend/2013-April/000107.html93
-rw-r--r--_build/static/archives/extend/2013-April/000108.html88
-rw-r--r--_build/static/archives/extend/2013-April/000109.html104
-rw-r--r--_build/static/archives/extend/2013-April/000110.html149
-rw-r--r--_build/static/archives/extend/2013-April/000111.html165
-rw-r--r--_build/static/archives/extend/2013-April/000112.html119
-rw-r--r--_build/static/archives/extend/2013-April/000113.html172
-rw-r--r--_build/static/archives/extend/2013-April/000114.html98
-rw-r--r--_build/static/archives/extend/2013-April/000115.html110
-rw-r--r--_build/static/archives/extend/2013-April/000116.html151
-rw-r--r--_build/static/archives/extend/2013-April/000117.html166
-rw-r--r--_build/static/archives/extend/2013-April/000118.html178
-rw-r--r--_build/static/archives/extend/2013-April/000119.html212
-rw-r--r--_build/static/archives/extend/2013-April/000120.html229
-rw-r--r--_build/static/archives/extend/2013-April/000121.html66
-rw-r--r--_build/static/archives/extend/2013-April/000122.html76
-rw-r--r--_build/static/archives/extend/2013-April/000123.html87
-rw-r--r--_build/static/archives/extend/2013-April/000124.html122
-rw-r--r--_build/static/archives/extend/2013-April/000125.html140
-rw-r--r--_build/static/archives/extend/2013-April/000126.html90
-rw-r--r--_build/static/archives/extend/2013-April/000127.html75
-rw-r--r--_build/static/archives/extend/2013-April/author.html322
-rw-r--r--_build/static/archives/extend/2013-April/date.html322
l---------_build/static/archives/extend/2013-April/index.html1
-rw-r--r--_build/static/archives/extend/2013-April/subject.html322
-rw-r--r--_build/static/archives/extend/2013-April/thread.html431
60 files changed, 8138 insertions, 0 deletions
diff --git a/_build/static/archives/extend/2013-April/000073.html b/_build/static/archives/extend/2013-April/000073.html
new file mode 100644
index 00000000..ce854d84
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000073.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] [ANN] Ranch 0.8.0
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20%5BANN%5D%20Ranch%200.8.0&In-Reply-To=%3C515B1410.6080905%40ninenines.eu%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+
+ <LINK REL="Next" HREF="000074.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] [ANN] Ranch 0.8.0</H1>
+ <B>Lo&#239;c Hoguin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20%5BANN%5D%20Ranch%200.8.0&In-Reply-To=%3C515B1410.6080905%40ninenines.eu%3E"
+ TITLE="[99s-extend] [ANN] Ranch 0.8.0">essen at ninenines.eu
+ </A><BR>
+ <I>Tue Apr 2 19:23:28 CEST 2013</I>
+ <P><UL>
+
+ <LI>Next message: <A HREF="000074.html">[99s-extend] [ANN] Cowboy 0.8.3
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#73">[ date ]</a>
+ <a href="thread.html#73">[ thread ]</a>
+ <a href="subject.html#73">[ subject ]</a>
+ <a href="author.html#73">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Just released!
+
+We have greatly improved the performance of Ranch both for accepting
+connections and when they get disconnected. Stability has also been much
+improved thanks to many community provided tests.
+
+Small API changes. Sorry!
+
+ * ListenerPid argument to Protocol:start_link/4 became Ref
+ * as a result it's now ranch:accept_ack(Ref)
+ * ranch_listener:remove_connection(ListenerPid) became
+ranch:remove_connection(Ref)
+
+Unless you used ranch_listener_remove_connection/1 your old code should
+still work without any changes.
+
+Enjoy!
+
+--
+Lo&#239;c Hoguin
+Erlang Cowboy
+Nine Nines
+<A HREF="http://ninenines.eu">http://ninenines.eu</A>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+
+ <LI>Next message: <A HREF="000074.html">[99s-extend] [ANN] Cowboy 0.8.3
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#73">[ date ]</a>
+ <a href="thread.html#73">[ thread ]</a>
+ <a href="subject.html#73">[ subject ]</a>
+ <a href="author.html#73">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000074.html b/_build/static/archives/extend/2013-April/000074.html
new file mode 100644
index 00000000..4618e32d
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000074.html
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] [ANN] Cowboy 0.8.3
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20%5BANN%5D%20Cowboy%200.8.3&In-Reply-To=%3C515C48EC.7040403%40ninenines.eu%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000073.html">
+ <LINK REL="Next" HREF="000075.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] [ANN] Cowboy 0.8.3</H1>
+ <B>Lo&#239;c Hoguin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20%5BANN%5D%20Cowboy%200.8.3&In-Reply-To=%3C515C48EC.7040403%40ninenines.eu%3E"
+ TITLE="[99s-extend] [ANN] Cowboy 0.8.3">essen at ninenines.eu
+ </A><BR>
+ <I>Wed Apr 3 17:21:16 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000073.html">[99s-extend] [ANN] Ranch 0.8.0
+</A></li>
+ <LI>Next message: <A HREF="000075.html">[99s-extend] Response headers
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#74">[ date ]</a>
+ <a href="thread.html#74">[ thread ]</a>
+ <a href="subject.html#74">[ subject ]</a>
+ <a href="author.html#74">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Hello!
+
+Very small release just to update Ranch to 0.8.0 (faster!) and change
+something about streaming the body. Newly introduced init_stream/5
+proved to be a bad idea and got removed in favor of a new stream_body/2
+which allows specifying the maximum chunk size you want on a per chunk
+basis.
+
+ <A HREF="https://github.com/extend/cowboy">https://github.com/extend/cowboy</A>
+
+Enjoy!
+
+--
+Lo&#239;c Hoguin
+Erlang Cowboy
+Nine Nines
+<A HREF="http://ninenines.eu">http://ninenines.eu</A>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000073.html">[99s-extend] [ANN] Ranch 0.8.0
+</A></li>
+ <LI>Next message: <A HREF="000075.html">[99s-extend] Response headers
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#74">[ date ]</a>
+ <a href="thread.html#74">[ thread ]</a>
+ <a href="subject.html#74">[ subject ]</a>
+ <a href="author.html#74">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000075.html b/_build/static/archives/extend/2013-April/000075.html
new file mode 100644
index 00000000..3441177d
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000075.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Response headers
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Response%20headers&In-Reply-To=%3CCE8DCDF4-398A-42CA-BCBE-8342F5D00DEF%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000074.html">
+ <LINK REL="Next" HREF="000076.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Response headers</H1>
+ <B>Lee Sylvester</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Response%20headers&In-Reply-To=%3CCE8DCDF4-398A-42CA-BCBE-8342F5D00DEF%40gmail.com%3E"
+ TITLE="[99s-extend] Response headers">lee.sylvester at gmail.com
+ </A><BR>
+ <I>Wed Apr 3 21:33:20 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000074.html">[99s-extend] [ANN] Cowboy 0.8.3
+</A></li>
+ <LI>Next message: <A HREF="000076.html">[99s-extend] Response headers
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#75">[ date ]</a>
+ <a href="thread.html#75">[ thread ]</a>
+ <a href="subject.html#75">[ subject ]</a>
+ <a href="author.html#75">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Hi list,
+
+I'd like to set up my handler to use CORS. Can anyone tell me how I can modify the headers for my handler to support this?
+
+Thanks loads,
+Lee
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000074.html">[99s-extend] [ANN] Cowboy 0.8.3
+</A></li>
+ <LI>Next message: <A HREF="000076.html">[99s-extend] Response headers
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#75">[ date ]</a>
+ <a href="thread.html#75">[ thread ]</a>
+ <a href="subject.html#75">[ subject ]</a>
+ <a href="author.html#75">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000076.html b/_build/static/archives/extend/2013-April/000076.html
new file mode 100644
index 00000000..243e1929
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000076.html
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Response headers
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Response%20headers&In-Reply-To=%3CCD81FF59.4478%25christopher.phillips%40turner.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000075.html">
+ <LINK REL="Next" HREF="000077.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Response headers</H1>
+ <B>Phillips, Christopher</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Response%20headers&In-Reply-To=%3CCD81FF59.4478%25christopher.phillips%40turner.com%3E"
+ TITLE="[99s-extend] Response headers">Christopher.Phillips at turner.com
+ </A><BR>
+ <I>Wed Apr 3 22:35:36 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000075.html">[99s-extend] Response headers
+</A></li>
+ <LI>Next message: <A HREF="000077.html">[99s-extend] Response headers
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#76">[ date ]</a>
+ <a href="thread.html#76">[ thread ]</a>
+ <a href="subject.html#76">[ subject ]</a>
+ <a href="author.html#76">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>
+ Sure. Right now, Cowboy doesn't parse the headers, but you can manually
+parse them in your handler. I've got them working in my implementation
+pretty well, I'll try and break it down a bit here.
+
+ A good, basic overview of what the requests the browser will send, and
+what your responses should look like, is here:
+<A HREF="https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS">https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS</A>
+
+
+
+HANDLING PRE-FLIGHTS -
+ Pre-flights are the OPTION requests the browser automatically sends off
+when you make a CORS request using a verb other than GET, or POST with one
+of three acceptable content types. They're defined well in the above link.
+
+ You can read off the requested headers the actual call wants to send in
+the OPTIONS preflight with
+
+ {Headers, NewRequest } =
+cowboy_req:header(&lt;&lt;&quot;access-control-request-headers&quot;&gt;&gt;, Request)
+
+ Headers will either be the binary, or undefined. If the binary, you
+either need to manually parse it and choose to allow/disallow the request
+from continuing based on it, or, if you just want to allow all headers
+trivially, just pipe that back into the request, a la -
+
+ Request2 =
+cowboy_req:set_resp_header(&lt;&lt;&quot;access-control-allow-headers&quot;&gt;&gt;,
+binary_to_list(Headers), NewRequest)
+
+ (As a reminder, it can be undefined. You'll need to check for that
+before passing it into the above. If it's undefined, you don't need to add
+the access-control-allow-headers header).
+
+
+
+ As part of the pre-flight request, you also need to handle what methods
+are allowed. This looks something like -
+
+ PreflightedRequest =
+cowboy_req:set_resp_header(&lt;&lt;&quot;access-control-allow-methods&quot;&gt;&gt;, &lt;&lt;&quot;GET,
+POST, DELETE, PUT&quot;&gt;&gt;, Request2)
+
+ If I wanted to allow gets, posts, deletes, and puts. You can also choose
+to read off the access-control-request-method header sent from the client,
+but I don't see the point; your list of allowed methods doesn't need to
+change based on that (the user is requesting a POST, why does that change
+whether you allow a POST or not? But I digress).
+
+
+
+
+
+FOR ALL CALLS (both pre-flights and the actual call)
+ Respond with acceptable origin. If you want any domain to access this
+resource (not advised, unless this is a public, readonly resource, but
+good for testing), you can do -
+
+ NewRequest =
+cowboy_req:set_resp_header(&lt;&lt;&quot;access-control-allow-origin&quot;&gt;&gt;, &lt;&lt;&quot;*&quot;&gt;&gt;,
+Request)
+
+
+ If you want to filter out the allowed domains, it looks like -
+
+ Origin = cowboy_req:header(&lt;&lt;&quot;origin&quot;&gt;&gt;, Request) %Get the origin that
+the browser sent you
+
+ %Do logic to check Origin, and any other data that would decide
+whether this request is allowed; it will only apply on a CORS request from
+another browser.
+
+ %If it passes, pass Origin back as the value for the
+access-control-allow-origin header.
+ NewRequest =
+cowboy_req:set_resp_header(&lt;&lt;&quot;access-control-allow-origin&quot;&gt;&gt;, Origin,
+Request)
+
+
+
+FOR ONLY THE ACTUAL CALL
+ If you want to send custom headers back to your Javascript client (or
+read any standard header beyond content-type), you need to explicitly
+allow them. This looks like (if I wanted to expose the 'server' header so
+my client Javascript can see that it's Cowboy on the backend) -
+
+ ExposedHeaderRequest =
+cowboy_req:set_resp_header(&lt;&lt;&quot;access-control-expose-headers&quot;&gt;&gt;,
+&lt;&lt;&quot;server&quot;&gt;&gt;, Request)
+
+
+
+
+ That's basically it I believe. There is also a max age, and a allow
+credentials header (which is really more of a require credentials);
+they're pretty straightforwardly explained on that page I linked above,
+but I haven't played with them personally.
+
+
+ Caveats I ran into were largely being aware that same domain requests do
+NOT supply any of the CORS headers, not even the origin header (so you can
+get undefined and have to handle those cases), as well as understanding
+the ramifications of allowing cross domain requests. Also, if you want to
+develop while disconnected (or if it's not easy to grab another domain),
+use your hosts file to declare a fake domain pointed to 127.0.0.1, load
+your page from that, explicitly define your AJAX calls to localhost. Note
+too that there is a bug in Firefox at present when you try and get all the
+request headers. It returns an empty list. You can get individual ones if
+you know the name (I.e., getResponseHeader(&quot;server&quot;) will work,
+getAllResponseHeaders() returns an empty string). This is further
+compounded by jQuery building its own XHR that loads headers by calling
+getAllResponseHeaders, so in Firefox, using jQuery, you can get back zero
+headers. Don't know if that affects you, but it's an issue it took me a
+good while to diagnose, and which we've had to bear in mind.
+
+
+
+
+On 4/3/13 3:33 PM, &quot;Lee Sylvester&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt; wrote:
+
+&gt;<i>Hi list,
+</I>&gt;<i>
+</I>&gt;<i>I'd like to set up my handler to use CORS. Can anyone tell me how I can
+</I>&gt;<i>modify the headers for my handler to support this?
+</I>&gt;<i>
+</I>&gt;<i>Thanks loads,
+</I>&gt;<i>Lee
+</I>&gt;<i>_______________________________________________
+</I>&gt;<i>Extend mailing list
+</I>&gt;<i><A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;<i><A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;<i>
+</I>
+
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000075.html">[99s-extend] Response headers
+</A></li>
+ <LI>Next message: <A HREF="000077.html">[99s-extend] Response headers
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#76">[ date ]</a>
+ <a href="thread.html#76">[ thread ]</a>
+ <a href="subject.html#76">[ subject ]</a>
+ <a href="author.html#76">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000077.html b/_build/static/archives/extend/2013-April/000077.html
new file mode 100644
index 00000000..1bbf7ad2
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000077.html
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Response headers
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Response%20headers&In-Reply-To=%3C3E75C3ED-9F52-495A-8E04-EF0A4667DB4E%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000076.html">
+ <LINK REL="Next" HREF="000078.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Response headers</H1>
+ <B>Lee Sylvester</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Response%20headers&In-Reply-To=%3C3E75C3ED-9F52-495A-8E04-EF0A4667DB4E%40gmail.com%3E"
+ TITLE="[99s-extend] Response headers">lee.sylvester at gmail.com
+ </A><BR>
+ <I>Thu Apr 4 10:38:07 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000076.html">[99s-extend] Response headers
+</A></li>
+ <LI>Next message: <A HREF="000078.html">[99s-extend] Bullet connection
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#77">[ date ]</a>
+ <a href="thread.html#77">[ thread ]</a>
+ <a href="subject.html#77">[ subject ]</a>
+ <a href="author.html#77">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Hi Christopher,
+
+Thank you for that. I will attempt to go through each piece today and solve the problem. This is good advice; maybe it belongs in a blog post? :-)
+
+Thanks again,
+Lee
+
+
+
+
+On 3 Apr 2013, at 21:35, &quot;Phillips, Christopher&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">Christopher.Phillips at turner.com</A>&gt; wrote:
+
+&gt;<i>
+</I>&gt;<i> Sure. Right now, Cowboy doesn't parse the headers, but you can manually
+</I>&gt;<i> parse them in your handler. I've got them working in my implementation
+</I>&gt;<i> pretty well, I'll try and break it down a bit here.
+</I>&gt;<i>
+</I>&gt;<i> A good, basic overview of what the requests the browser will send, and
+</I>&gt;<i> what your responses should look like, is here:
+</I>&gt;<i> <A HREF="https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS">https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS</A>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> HANDLING PRE-FLIGHTS -
+</I>&gt;<i> Pre-flights are the OPTION requests the browser automatically sends off
+</I>&gt;<i> when you make a CORS request using a verb other than GET, or POST with one
+</I>&gt;<i> of three acceptable content types. They're defined well in the above link.
+</I>&gt;<i>
+</I>&gt;<i> You can read off the requested headers the actual call wants to send in
+</I>&gt;<i> the OPTIONS preflight with
+</I>&gt;<i>
+</I>&gt;<i> {Headers, NewRequest } =
+</I>&gt;<i> cowboy_req:header(&lt;&lt;&quot;access-control-request-headers&quot;&gt;&gt;, Request)
+</I>&gt;<i>
+</I>&gt;<i> Headers will either be the binary, or undefined. If the binary, you
+</I>&gt;<i> either need to manually parse it and choose to allow/disallow the request
+</I>&gt;<i> from continuing based on it, or, if you just want to allow all headers
+</I>&gt;<i> trivially, just pipe that back into the request, a la -
+</I>&gt;<i>
+</I>&gt;<i> Request2 =
+</I>&gt;<i> cowboy_req:set_resp_header(&lt;&lt;&quot;access-control-allow-headers&quot;&gt;&gt;,
+</I>&gt;<i> binary_to_list(Headers), NewRequest)
+</I>&gt;<i>
+</I>&gt;<i> (As a reminder, it can be undefined. You'll need to check for that
+</I>&gt;<i> before passing it into the above. If it's undefined, you don't need to add
+</I>&gt;<i> the access-control-allow-headers header).
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> As part of the pre-flight request, you also need to handle what methods
+</I>&gt;<i> are allowed. This looks something like -
+</I>&gt;<i>
+</I>&gt;<i> PreflightedRequest =
+</I>&gt;<i> cowboy_req:set_resp_header(&lt;&lt;&quot;access-control-allow-methods&quot;&gt;&gt;, &lt;&lt;&quot;GET,
+</I>&gt;<i> POST, DELETE, PUT&quot;&gt;&gt;, Request2)
+</I>&gt;<i>
+</I>&gt;<i> If I wanted to allow gets, posts, deletes, and puts. You can also choose
+</I>&gt;<i> to read off the access-control-request-method header sent from the client,
+</I>&gt;<i> but I don't see the point; your list of allowed methods doesn't need to
+</I>&gt;<i> change based on that (the user is requesting a POST, why does that change
+</I>&gt;<i> whether you allow a POST or not? But I digress).
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> FOR ALL CALLS (both pre-flights and the actual call)
+</I>&gt;<i> Respond with acceptable origin. If you want any domain to access this
+</I>&gt;<i> resource (not advised, unless this is a public, readonly resource, but
+</I>&gt;<i> good for testing), you can do -
+</I>&gt;<i>
+</I>&gt;<i> NewRequest =
+</I>&gt;<i> cowboy_req:set_resp_header(&lt;&lt;&quot;access-control-allow-origin&quot;&gt;&gt;, &lt;&lt;&quot;*&quot;&gt;&gt;,
+</I>&gt;<i> Request)
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> If you want to filter out the allowed domains, it looks like -
+</I>&gt;<i>
+</I>&gt;<i> Origin = cowboy_req:header(&lt;&lt;&quot;origin&quot;&gt;&gt;, Request) %Get the origin that
+</I>&gt;<i> the browser sent you
+</I>&gt;<i>
+</I>&gt;<i> %Do logic to check Origin, and any other data that would decide
+</I>&gt;<i> whether this request is allowed; it will only apply on a CORS request from
+</I>&gt;<i> another browser.
+</I>&gt;<i>
+</I>&gt;<i> %If it passes, pass Origin back as the value for the
+</I>&gt;<i> access-control-allow-origin header.
+</I>&gt;<i> NewRequest =
+</I>&gt;<i> cowboy_req:set_resp_header(&lt;&lt;&quot;access-control-allow-origin&quot;&gt;&gt;, Origin,
+</I>&gt;<i> Request)
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> FOR ONLY THE ACTUAL CALL
+</I>&gt;<i> If you want to send custom headers back to your Javascript client (or
+</I>&gt;<i> read any standard header beyond content-type), you need to explicitly
+</I>&gt;<i> allow them. This looks like (if I wanted to expose the 'server' header so
+</I>&gt;<i> my client Javascript can see that it's Cowboy on the backend) -
+</I>&gt;<i>
+</I>&gt;<i> ExposedHeaderRequest =
+</I>&gt;<i> cowboy_req:set_resp_header(&lt;&lt;&quot;access-control-expose-headers&quot;&gt;&gt;,
+</I>&gt;<i> &lt;&lt;&quot;server&quot;&gt;&gt;, Request)
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> That's basically it I believe. There is also a max age, and a allow
+</I>&gt;<i> credentials header (which is really more of a require credentials);
+</I>&gt;<i> they're pretty straightforwardly explained on that page I linked above,
+</I>&gt;<i> but I haven't played with them personally.
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> Caveats I ran into were largely being aware that same domain requests do
+</I>&gt;<i> NOT supply any of the CORS headers, not even the origin header (so you can
+</I>&gt;<i> get undefined and have to handle those cases), as well as understanding
+</I>&gt;<i> the ramifications of allowing cross domain requests. Also, if you want to
+</I>&gt;<i> develop while disconnected (or if it's not easy to grab another domain),
+</I>&gt;<i> use your hosts file to declare a fake domain pointed to 127.0.0.1, load
+</I>&gt;<i> your page from that, explicitly define your AJAX calls to localhost. Note
+</I>&gt;<i> too that there is a bug in Firefox at present when you try and get all the
+</I>&gt;<i> request headers. It returns an empty list. You can get individual ones if
+</I>&gt;<i> you know the name (I.e., getResponseHeader(&quot;server&quot;) will work,
+</I>&gt;<i> getAllResponseHeaders() returns an empty string). This is further
+</I>&gt;<i> compounded by jQuery building its own XHR that loads headers by calling
+</I>&gt;<i> getAllResponseHeaders, so in Firefox, using jQuery, you can get back zero
+</I>&gt;<i> headers. Don't know if that affects you, but it's an issue it took me a
+</I>&gt;<i> good while to diagnose, and which we've had to bear in mind.
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> On 4/3/13 3:33 PM, &quot;Lee Sylvester&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt; wrote:
+</I>&gt;<i>
+</I>&gt;&gt;<i> Hi list,
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> I'd like to set up my handler to use CORS. Can anyone tell me how I can
+</I>&gt;&gt;<i> modify the headers for my handler to support this?
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Thanks loads,
+</I>&gt;&gt;<i> Lee
+</I>&gt;&gt;<i> _______________________________________________
+</I>&gt;&gt;<i> Extend mailing list
+</I>&gt;&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> _______________________________________________
+</I>&gt;<i> Extend mailing list
+</I>&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000076.html">[99s-extend] Response headers
+</A></li>
+ <LI>Next message: <A HREF="000078.html">[99s-extend] Bullet connection
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#77">[ date ]</a>
+ <a href="thread.html#77">[ thread ]</a>
+ <a href="subject.html#77">[ subject ]</a>
+ <a href="author.html#77">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000078.html b/_build/static/archives/extend/2013-April/000078.html
new file mode 100644
index 00000000..03f7f5d0
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000078.html
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Bullet connection
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Bullet%20connection&In-Reply-To=%3C33516651-FC93-49EA-A8CA-B5C3E42B03E5%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000077.html">
+ <LINK REL="Next" HREF="000079.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Bullet connection</H1>
+ <B>Lee Sylvester</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Bullet%20connection&In-Reply-To=%3C33516651-FC93-49EA-A8CA-B5C3E42B03E5%40gmail.com%3E"
+ TITLE="[99s-extend] Bullet connection">lee.sylvester at gmail.com
+ </A><BR>
+ <I>Thu Apr 4 22:17:54 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000077.html">[99s-extend] Response headers
+</A></li>
+ <LI>Next message: <A HREF="000079.html">[99s-extend] Bullet connection
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#78">[ date ]</a>
+ <a href="thread.html#78">[ thread ]</a>
+ <a href="subject.html#78">[ subject ]</a>
+ <a href="author.html#78">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Hi guys,
+
+So, I'm using bullet in my Cowboy setup. There's a lot of tasks that take place before a connection is finally requested, but when it is requested, I see that the server is first called via HTTPS using method CONNECT. The problem I have is that, while testing this on local host, this CONNECT request is throwing a 500 error, stating &quot;SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations&quot;.
+
+Does anyone know how I fix this to get past this problem?
+
+Thanks,
+Lee
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000077.html">[99s-extend] Response headers
+</A></li>
+ <LI>Next message: <A HREF="000079.html">[99s-extend] Bullet connection
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#78">[ date ]</a>
+ <a href="thread.html#78">[ thread ]</a>
+ <a href="subject.html#78">[ subject ]</a>
+ <a href="author.html#78">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000079.html b/_build/static/archives/extend/2013-April/000079.html
new file mode 100644
index 00000000..c44417d0
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000079.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Bullet connection
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Bullet%20connection&In-Reply-To=%3C515DE504.5060007%40ninenines.eu%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000078.html">
+ <LINK REL="Next" HREF="000080.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Bullet connection</H1>
+ <B>Lo&#239;c Hoguin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Bullet%20connection&In-Reply-To=%3C515DE504.5060007%40ninenines.eu%3E"
+ TITLE="[99s-extend] Bullet connection">essen at ninenines.eu
+ </A><BR>
+ <I>Thu Apr 4 22:39:32 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000078.html">[99s-extend] Bullet connection
+</A></li>
+ <LI>Next message: <A HREF="000080.html">[99s-extend] Bullet connection
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#79">[ date ]</a>
+ <a href="thread.html#79">[ thread ]</a>
+ <a href="subject.html#79">[ subject ]</a>
+ <a href="author.html#79">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>On 04/04/2013 10:17 PM, Lee Sylvester wrote:
+&gt;<i> Hi guys,
+</I>&gt;<i>
+</I>&gt;<i> So, I'm using bullet in my Cowboy setup. There's a lot of tasks that take place before a connection is finally requested, but when it is requested, I see that the server is first called via HTTPS using method CONNECT. The problem I have is that, while testing this on local host, this CONNECT request is throwing a 500 error, stating &quot;SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations&quot;.
+</I>&gt;<i>
+</I>&gt;<i> Does anyone know how I fix this to get past this problem?
+</I>
+You should probably disable the proxy you have configured in your
+browser for the domain localhost.
+
+--
+Lo&#239;c Hoguin
+Erlang Cowboy
+Nine Nines
+<A HREF="http://ninenines.eu">http://ninenines.eu</A>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000078.html">[99s-extend] Bullet connection
+</A></li>
+ <LI>Next message: <A HREF="000080.html">[99s-extend] Bullet connection
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#79">[ date ]</a>
+ <a href="thread.html#79">[ thread ]</a>
+ <a href="subject.html#79">[ subject ]</a>
+ <a href="author.html#79">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000080.html b/_build/static/archives/extend/2013-April/000080.html
new file mode 100644
index 00000000..ed41aaf8
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000080.html
@@ -0,0 +1,87 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Bullet connection
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Bullet%20connection&In-Reply-To=%3C52A2CDB5-3C4D-4E20-ACDF-011A44E0FD8B%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000079.html">
+ <LINK REL="Next" HREF="000081.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Bullet connection</H1>
+ <B>Lee Sylvester</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Bullet%20connection&In-Reply-To=%3C52A2CDB5-3C4D-4E20-ACDF-011A44E0FD8B%40gmail.com%3E"
+ TITLE="[99s-extend] Bullet connection">lee.sylvester at gmail.com
+ </A><BR>
+ <I>Thu Apr 4 22:54:54 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000079.html">[99s-extend] Bullet connection
+</A></li>
+ <LI>Next message: <A HREF="000081.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#80">[ date ]</a>
+ <a href="thread.html#80">[ thread ]</a>
+ <a href="subject.html#80">[ subject ]</a>
+ <a href="author.html#80">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>D'oh! I'm obviously tired :( Thanks for that. I saw the message and instantly assumed it was a Cowboy related error. Okay, so I got that fixed. Now I need to work out why my connections close the instant they're open :-D Oh, the life of a developer!
+
+Thanks again.
+
+Lee
+
+
+
+
+On 4 Apr 2013, at 21:39, Lo&#239;c Hoguin &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">essen at ninenines.eu</A>&gt; wrote:
+
+&gt;<i> On 04/04/2013 10:17 PM, Lee Sylvester wrote:
+</I>&gt;&gt;<i> Hi guys,
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> So, I'm using bullet in my Cowboy setup. There's a lot of tasks that take place before a connection is finally requested, but when it is requested, I see that the server is first called via HTTPS using method CONNECT. The problem I have is that, while testing this on local host, this CONNECT request is throwing a 500 error, stating &quot;SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations&quot;.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Does anyone know how I fix this to get past this problem?
+</I>&gt;<i>
+</I>&gt;<i> You should probably disable the proxy you have configured in your browser for the domain localhost.
+</I>&gt;<i>
+</I>&gt;<i> --
+</I>&gt;<i> Lo&#239;c Hoguin
+</I>&gt;<i> Erlang Cowboy
+</I>&gt;<i> Nine Nines
+</I>&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000079.html">[99s-extend] Bullet connection
+</A></li>
+ <LI>Next message: <A HREF="000081.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#80">[ date ]</a>
+ <a href="thread.html#80">[ thread ]</a>
+ <a href="subject.html#80">[ subject ]</a>
+ <a href="author.html#80">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000081.html b/_build/static/archives/extend/2013-April/000081.html
new file mode 100644
index 00000000..a19b56a9
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000081.html
@@ -0,0 +1,156 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Problems with Bullet
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Problems%20with%20Bullet&In-Reply-To=%3CB09B2F4B-4842-430D-A3AB-AC132B646E04%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000080.html">
+ <LINK REL="Next" HREF="000082.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Problems with Bullet</H1>
+ <B>Lee Sylvester</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Problems%20with%20Bullet&In-Reply-To=%3CB09B2F4B-4842-430D-A3AB-AC132B646E04%40gmail.com%3E"
+ TITLE="[99s-extend] Problems with Bullet">lee.sylvester at gmail.com
+ </A><BR>
+ <I>Mon Apr 8 15:53:38 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000080.html">[99s-extend] Bullet connection
+</A></li>
+ <LI>Next message: <A HREF="000082.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#81">[ date ]</a>
+ <a href="thread.html#81">[ thread ]</a>
+ <a href="subject.html#81">[ subject ]</a>
+ <a href="author.html#81">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Hi all,
+
+I'm currently having problems getting a websocket to connect to a simple bare bones Bullet handler. Unfortunately, I'm still quite an Erlang noob, so the stack traces tend to lead me in circles. I'm hoping this is obvious stuff to you Erlang pros :-)
+
+Given the below handler:
+
+init(_Transport, Req, _Opts, _Active) -&gt;
+ {ok, Req, undefined_state}.
+
+stream(Data, Req, State) -&gt;
+ {ok, Req, State}.
+
+info(Info, Req, State) -&gt;
+ {reply, Info, Req, State}.
+
+terminate(_Req, _State) -&gt;
+ ok.
+
+Connecting with a websocket throws the following error:
+
+=ERROR REPORT==== 8-Apr-2013::14:46:11 ===
+** Cowboy handler bullet_handler terminating in init/3
+ for the reason error:undef
+** Options were [{handler,connection_handler}]
+** Request was [{socket,#Port&lt;0.926&gt;},
+ {transport,ranch_tcp},
+ {connection,keepalive},
+ {pid,&lt;0.491.0&gt;},
+ {method,&lt;&lt;&quot;GET&quot;&gt;&gt;},
+ {version,{1,1}},
+ {peer,{{127,0,0,1},56630}},
+ {host,&lt;&lt;&quot;localhost&quot;&gt;&gt;},
+ {host_info,undefined},
+ {port,8080},
+ {path,&lt;&lt;&quot;/&quot;&gt;&gt;},
+ {path_info,undefined},
+ {qs,&lt;&lt;&quot;encoding=text&quot;&gt;&gt;},
+ {qs_vals,undefined},
+ {fragment,&lt;&lt;&gt;&gt;},
+ {bindings,[]},
+ {headers,[{&lt;&lt;&quot;upgrade&quot;&gt;&gt;,&lt;&lt;&quot;websocket&quot;&gt;&gt;},
+ {&lt;&lt;&quot;connection&quot;&gt;&gt;,&lt;&lt;&quot;Upgrade&quot;&gt;&gt;},
+ {&lt;&lt;&quot;host&quot;&gt;&gt;,&lt;&lt;&quot;localhost:8080&quot;&gt;&gt;},
+ {&lt;&lt;&quot;origin&quot;&gt;&gt;,&lt;&lt;&quot;<A HREF="http://www.websocket.org">http://www.websocket.org</A>&quot;&gt;&gt;},
+ {&lt;&lt;&quot;pragma&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+ {&lt;&lt;&quot;cache-control&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+ {&lt;&lt;&quot;sec-websocket-key&quot;&gt;&gt;,
+ &lt;&lt;&quot;fEj/SOOcQgSKATOjhbNJBQ==&quot;&gt;&gt;},
+ {&lt;&lt;&quot;sec-websocket-version&quot;&gt;&gt;,&lt;&lt;&quot;13&quot;&gt;&gt;},
+ {&lt;&lt;&quot;sec-websocket-extensions&quot;&gt;&gt;,
+ &lt;&lt;&quot;x-webkit-deflate-frame&quot;&gt;&gt;}]},
+ {p_headers,[{&lt;&lt;&quot;connection&quot;&gt;&gt;,[&lt;&lt;&quot;upgrade&quot;&gt;&gt;]}]},
+ {cookies,undefined},
+ {meta,[]},
+ {body_state,waiting},
+ {multipart,undefined},
+ {buffer,&lt;&lt;&gt;&gt;},
+ {resp_compress,false},
+ {resp_state,waiting},
+ {resp_headers,[]},
+ {resp_body,&lt;&lt;&gt;&gt;},
+ {onresponse,undefined}]
+** Stacktrace: [{bullet_handler,init,
+ [{tcp,http},
+ {http_req,#Port&lt;0.926&gt;,ranch_tcp,keepalive,&lt;0.491.0&gt;,
+ &lt;&lt;&quot;GET&quot;&gt;&gt;,
+ {1,1},
+ {{127,0,0,1},56630},
+ &lt;&lt;&quot;localhost&quot;&gt;&gt;,undefined,8080,&lt;&lt;&quot;/&quot;&gt;&gt;,
+ undefined,&lt;&lt;&quot;encoding=text&quot;&gt;&gt;,undefined,&lt;&lt;&gt;&gt;,
+ [],
+ [{&lt;&lt;&quot;upgrade&quot;&gt;&gt;,&lt;&lt;&quot;websocket&quot;&gt;&gt;},
+ {&lt;&lt;&quot;connection&quot;&gt;&gt;,&lt;&lt;&quot;Upgrade&quot;&gt;&gt;},
+ {&lt;&lt;&quot;host&quot;&gt;&gt;,&lt;&lt;&quot;localhost:8080&quot;&gt;&gt;},
+ {&lt;&lt;&quot;origin&quot;&gt;&gt;,&lt;&lt;&quot;<A HREF="http://www.websocket.org">http://www.websocket.org</A>&quot;&gt;&gt;},
+ {&lt;&lt;&quot;pragma&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+ {&lt;&lt;&quot;cache-control&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+ {&lt;&lt;&quot;sec-websocket-key&quot;&gt;&gt;,
+ &lt;&lt;&quot;fEj/SOOcQgSKATOjhbNJBQ==&quot;&gt;&gt;},
+ {&lt;&lt;&quot;sec-websocket-version&quot;&gt;&gt;,&lt;&lt;&quot;13&quot;&gt;&gt;},
+ {&lt;&lt;&quot;sec-websocket-extensions&quot;&gt;&gt;,
+ &lt;&lt;&quot;x-webkit-deflate-frame&quot;&gt;&gt;}],
+ [{&lt;&lt;&quot;connection&quot;&gt;&gt;,[&lt;&lt;&quot;upgrade&quot;&gt;&gt;]}],
+ undefined,[],waiting,undefined,&lt;&lt;&gt;&gt;,false,waiting,[],
+ &lt;&lt;&gt;&gt;,undefined},
+ [{handler,connection_handler}]],
+ []},
+ {cowboy_handler,handler_init,4,
+ [{file,&quot;src/cowboy_handler.erl&quot;},{line,69}]},
+ {cowboy_protocol,execute,4,
+ [{file,&quot;src/cowboy_protocol.erl&quot;},{line,514}]}]
+
+Can anyone see what might be throwing this off? I'd like to get a minimal handler running before I attempt to add some logic.
+
+Thanks,
+Lee
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000080.html">[99s-extend] Bullet connection
+</A></li>
+ <LI>Next message: <A HREF="000082.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#81">[ date ]</a>
+ <a href="thread.html#81">[ thread ]</a>
+ <a href="subject.html#81">[ subject ]</a>
+ <a href="author.html#81">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000082.html b/_build/static/archives/extend/2013-April/000082.html
new file mode 100644
index 00000000..6c776c44
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000082.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Problems with Bullet
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Problems%20with%20Bullet&In-Reply-To=%3C5162CF5F.2060200%40ninenines.eu%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000081.html">
+ <LINK REL="Next" HREF="000084.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Problems with Bullet</H1>
+ <B>Lo&#239;c Hoguin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Problems%20with%20Bullet&In-Reply-To=%3C5162CF5F.2060200%40ninenines.eu%3E"
+ TITLE="[99s-extend] Problems with Bullet">essen at ninenines.eu
+ </A><BR>
+ <I>Mon Apr 8 16:08:31 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000081.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI>Next message: <A HREF="000084.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#82">[ date ]</a>
+ <a href="thread.html#82">[ thread ]</a>
+ <a href="subject.html#82">[ subject ]</a>
+ <a href="author.html#82">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Sounds like Bullet isn't in your path. Forgot -pa deps/*/ebin?
+
+On 04/08/2013 03:53 PM, Lee Sylvester wrote:
+&gt;<i> Hi all,
+</I>&gt;<i>
+</I>&gt;<i> I'm currently having problems getting a websocket to connect to a simple bare bones Bullet handler. Unfortunately, I'm still quite an Erlang noob, so the stack traces tend to lead me in circles. I'm hoping this is obvious stuff to you Erlang pros :-)
+</I>&gt;<i>
+</I>&gt;<i> Given the below handler:
+</I>&gt;<i>
+</I>&gt;<i> init(_Transport, Req, _Opts, _Active) -&gt;
+</I>&gt;<i> {ok, Req, undefined_state}.
+</I>&gt;<i>
+</I>&gt;<i> stream(Data, Req, State) -&gt;
+</I>&gt;<i> {ok, Req, State}.
+</I>&gt;<i>
+</I>&gt;<i> info(Info, Req, State) -&gt;
+</I>&gt;<i> {reply, Info, Req, State}.
+</I>&gt;<i>
+</I>&gt;<i> terminate(_Req, _State) -&gt;
+</I>&gt;<i> ok.
+</I>&gt;<i>
+</I>&gt;<i> Connecting with a websocket throws the following error:
+</I>&gt;<i>
+</I>&gt;<i> =ERROR REPORT==== 8-Apr-2013::14:46:11 ===
+</I>&gt;<i> ** Cowboy handler bullet_handler terminating in init/3
+</I>&gt;<i> for the reason error:undef
+</I>&gt;<i> ** Options were [{handler,connection_handler}]
+</I>&gt;<i> ** Request was [{socket,#Port&lt;0.926&gt;},
+</I>&gt;<i> {transport,ranch_tcp},
+</I>&gt;<i> {connection,keepalive},
+</I>&gt;<i> {pid,&lt;0.491.0&gt;},
+</I>&gt;<i> {method,&lt;&lt;&quot;GET&quot;&gt;&gt;},
+</I>&gt;<i> {version,{1,1}},
+</I>&gt;<i> {peer,{{127,0,0,1},56630}},
+</I>&gt;<i> {host,&lt;&lt;&quot;localhost&quot;&gt;&gt;},
+</I>&gt;<i> {host_info,undefined},
+</I>&gt;<i> {port,8080},
+</I>&gt;<i> {path,&lt;&lt;&quot;/&quot;&gt;&gt;},
+</I>&gt;<i> {path_info,undefined},
+</I>&gt;<i> {qs,&lt;&lt;&quot;encoding=text&quot;&gt;&gt;},
+</I>&gt;<i> {qs_vals,undefined},
+</I>&gt;<i> {fragment,&lt;&lt;&gt;&gt;},
+</I>&gt;<i> {bindings,[]},
+</I>&gt;<i> {headers,[{&lt;&lt;&quot;upgrade&quot;&gt;&gt;,&lt;&lt;&quot;websocket&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;connection&quot;&gt;&gt;,&lt;&lt;&quot;Upgrade&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;host&quot;&gt;&gt;,&lt;&lt;&quot;localhost:8080&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;origin&quot;&gt;&gt;,&lt;&lt;&quot;<A HREF="http://www.websocket.org">http://www.websocket.org</A>&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;pragma&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;cache-control&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;sec-websocket-key&quot;&gt;&gt;,
+</I>&gt;<i> &lt;&lt;&quot;fEj/SOOcQgSKATOjhbNJBQ==&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;sec-websocket-version&quot;&gt;&gt;,&lt;&lt;&quot;13&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;sec-websocket-extensions&quot;&gt;&gt;,
+</I>&gt;<i> &lt;&lt;&quot;x-webkit-deflate-frame&quot;&gt;&gt;}]},
+</I>&gt;<i> {p_headers,[{&lt;&lt;&quot;connection&quot;&gt;&gt;,[&lt;&lt;&quot;upgrade&quot;&gt;&gt;]}]},
+</I>&gt;<i> {cookies,undefined},
+</I>&gt;<i> {meta,[]},
+</I>&gt;<i> {body_state,waiting},
+</I>&gt;<i> {multipart,undefined},
+</I>&gt;<i> {buffer,&lt;&lt;&gt;&gt;},
+</I>&gt;<i> {resp_compress,false},
+</I>&gt;<i> {resp_state,waiting},
+</I>&gt;<i> {resp_headers,[]},
+</I>&gt;<i> {resp_body,&lt;&lt;&gt;&gt;},
+</I>&gt;<i> {onresponse,undefined}]
+</I>&gt;<i> ** Stacktrace: [{bullet_handler,init,
+</I>&gt;<i> [{tcp,http},
+</I>&gt;<i> {http_req,#Port&lt;0.926&gt;,ranch_tcp,keepalive,&lt;0.491.0&gt;,
+</I>&gt;<i> &lt;&lt;&quot;GET&quot;&gt;&gt;,
+</I>&gt;<i> {1,1},
+</I>&gt;<i> {{127,0,0,1},56630},
+</I>&gt;<i> &lt;&lt;&quot;localhost&quot;&gt;&gt;,undefined,8080,&lt;&lt;&quot;/&quot;&gt;&gt;,
+</I>&gt;<i> undefined,&lt;&lt;&quot;encoding=text&quot;&gt;&gt;,undefined,&lt;&lt;&gt;&gt;,
+</I>&gt;<i> [],
+</I>&gt;<i> [{&lt;&lt;&quot;upgrade&quot;&gt;&gt;,&lt;&lt;&quot;websocket&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;connection&quot;&gt;&gt;,&lt;&lt;&quot;Upgrade&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;host&quot;&gt;&gt;,&lt;&lt;&quot;localhost:8080&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;origin&quot;&gt;&gt;,&lt;&lt;&quot;<A HREF="http://www.websocket.org">http://www.websocket.org</A>&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;pragma&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;cache-control&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;sec-websocket-key&quot;&gt;&gt;,
+</I>&gt;<i> &lt;&lt;&quot;fEj/SOOcQgSKATOjhbNJBQ==&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;sec-websocket-version&quot;&gt;&gt;,&lt;&lt;&quot;13&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;sec-websocket-extensions&quot;&gt;&gt;,
+</I>&gt;<i> &lt;&lt;&quot;x-webkit-deflate-frame&quot;&gt;&gt;}],
+</I>&gt;<i> [{&lt;&lt;&quot;connection&quot;&gt;&gt;,[&lt;&lt;&quot;upgrade&quot;&gt;&gt;]}],
+</I>&gt;<i> undefined,[],waiting,undefined,&lt;&lt;&gt;&gt;,false,waiting,[],
+</I>&gt;<i> &lt;&lt;&gt;&gt;,undefined},
+</I>&gt;<i> [{handler,connection_handler}]],
+</I>&gt;<i> []},
+</I>&gt;<i> {cowboy_handler,handler_init,4,
+</I>&gt;<i> [{file,&quot;src/cowboy_handler.erl&quot;},{line,69}]},
+</I>&gt;<i> {cowboy_protocol,execute,4,
+</I>&gt;<i> [{file,&quot;src/cowboy_protocol.erl&quot;},{line,514}]}]
+</I>&gt;<i>
+</I>&gt;<i> Can anyone see what might be throwing this off? I'd like to get a minimal handler running before I attempt to add some logic.
+</I>&gt;<i>
+</I>&gt;<i> Thanks,
+</I>&gt;<i> Lee
+</I>&gt;<i> _______________________________________________
+</I>&gt;<i> Extend mailing list
+</I>&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;<i>
+</I>
+
+--
+Lo&#239;c Hoguin
+Erlang Cowboy
+Nine Nines
+<A HREF="http://ninenines.eu">http://ninenines.eu</A>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000081.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI>Next message: <A HREF="000084.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#82">[ date ]</a>
+ <a href="thread.html#82">[ thread ]</a>
+ <a href="subject.html#82">[ subject ]</a>
+ <a href="author.html#82">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000083.html b/_build/static/archives/extend/2013-April/000083.html
new file mode 100644
index 00000000..4ebd5c3f
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000083.html
@@ -0,0 +1,179 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Problems with Bullet
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Problems%20with%20Bullet&In-Reply-To=%3CCD884493.47E3%25christopher.phillips%40turner.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000085.html">
+ <LINK REL="Next" HREF="000086.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Problems with Bullet</H1>
+ <B>Phillips, Christopher</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Problems%20with%20Bullet&In-Reply-To=%3CCD884493.47E3%25christopher.phillips%40turner.com%3E"
+ TITLE="[99s-extend] Problems with Bullet">Christopher.Phillips at turner.com
+ </A><BR>
+ <I>Mon Apr 8 16:11:44 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000085.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI>Next message: <A HREF="000086.html">[99s-extend] Heartbeat?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#83">[ date ]</a>
+ <a href="thread.html#83">[ thread ]</a>
+ <a href="subject.html#83">[ subject ]</a>
+ <a href="author.html#83">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE> Can you get the clock example working? I'm not sure why the initial
+upgrade request would fail; are you exporting init/4 in your handler? Are
+your dependencies consistent (I.e., blow them away and regrab them in case
+it's an older version of cowboy with a new version of bullet, or vice
+versa, maybe)? Either way, starting from the example would allow you to
+start from a set of working code and either avoid the issue entirely, or
+isolate it from your code.
+
+On 4/8/13 9:53 AM, &quot;Lee Sylvester&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt; wrote:
+
+&gt;<i>Hi all,
+</I>&gt;<i>
+</I>&gt;<i>I'm currently having problems getting a websocket to connect to a simple
+</I>&gt;<i>bare bones Bullet handler. Unfortunately, I'm still quite an Erlang
+</I>&gt;<i>noob, so the stack traces tend to lead me in circles. I'm hoping this is
+</I>&gt;<i>obvious stuff to you Erlang pros :-)
+</I>&gt;<i>
+</I>&gt;<i>Given the below handler:
+</I>&gt;<i>
+</I>&gt;<i>init(_Transport, Req, _Opts, _Active) -&gt;
+</I>&gt;<i> {ok, Req, undefined_state}.
+</I>&gt;<i>
+</I>&gt;<i>stream(Data, Req, State) -&gt;
+</I>&gt;<i> {ok, Req, State}.
+</I>&gt;<i>
+</I>&gt;<i>info(Info, Req, State) -&gt;
+</I>&gt;<i> {reply, Info, Req, State}.
+</I>&gt;<i>
+</I>&gt;<i>terminate(_Req, _State) -&gt;
+</I>&gt;<i> ok.
+</I>&gt;<i>
+</I>&gt;<i>Connecting with a websocket throws the following error:
+</I>&gt;<i>
+</I>&gt;<i>=ERROR REPORT==== 8-Apr-2013::14:46:11 ===
+</I>&gt;<i>** Cowboy handler bullet_handler terminating in init/3
+</I>&gt;<i> for the reason error:undef
+</I>&gt;<i>** Options were [{handler,connection_handler}]
+</I>&gt;<i>** Request was [{socket,#Port&lt;0.926&gt;},
+</I>&gt;<i> {transport,ranch_tcp},
+</I>&gt;<i> {connection,keepalive},
+</I>&gt;<i> {pid,&lt;0.491.0&gt;},
+</I>&gt;<i> {method,&lt;&lt;&quot;GET&quot;&gt;&gt;},
+</I>&gt;<i> {version,{1,1}},
+</I>&gt;<i> {peer,{{127,0,0,1},56630}},
+</I>&gt;<i> {host,&lt;&lt;&quot;localhost&quot;&gt;&gt;},
+</I>&gt;<i> {host_info,undefined},
+</I>&gt;<i> {port,8080},
+</I>&gt;<i> {path,&lt;&lt;&quot;/&quot;&gt;&gt;},
+</I>&gt;<i> {path_info,undefined},
+</I>&gt;<i> {qs,&lt;&lt;&quot;encoding=text&quot;&gt;&gt;},
+</I>&gt;<i> {qs_vals,undefined},
+</I>&gt;<i> {fragment,&lt;&lt;&gt;&gt;},
+</I>&gt;<i> {bindings,[]},
+</I>&gt;<i> {headers,[{&lt;&lt;&quot;upgrade&quot;&gt;&gt;,&lt;&lt;&quot;websocket&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;connection&quot;&gt;&gt;,&lt;&lt;&quot;Upgrade&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;host&quot;&gt;&gt;,&lt;&lt;&quot;localhost:8080&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;origin&quot;&gt;&gt;,&lt;&lt;&quot;<A HREF="http://www.websocket.org">http://www.websocket.org</A>&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;pragma&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;cache-control&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;sec-websocket-key&quot;&gt;&gt;,
+</I>&gt;<i> &lt;&lt;&quot;fEj/SOOcQgSKATOjhbNJBQ==&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;sec-websocket-version&quot;&gt;&gt;,&lt;&lt;&quot;13&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;sec-websocket-extensions&quot;&gt;&gt;,
+</I>&gt;<i> &lt;&lt;&quot;x-webkit-deflate-frame&quot;&gt;&gt;}]},
+</I>&gt;<i> {p_headers,[{&lt;&lt;&quot;connection&quot;&gt;&gt;,[&lt;&lt;&quot;upgrade&quot;&gt;&gt;]}]},
+</I>&gt;<i> {cookies,undefined},
+</I>&gt;<i> {meta,[]},
+</I>&gt;<i> {body_state,waiting},
+</I>&gt;<i> {multipart,undefined},
+</I>&gt;<i> {buffer,&lt;&lt;&gt;&gt;},
+</I>&gt;<i> {resp_compress,false},
+</I>&gt;<i> {resp_state,waiting},
+</I>&gt;<i> {resp_headers,[]},
+</I>&gt;<i> {resp_body,&lt;&lt;&gt;&gt;},
+</I>&gt;<i> {onresponse,undefined}]
+</I>&gt;<i>** Stacktrace: [{bullet_handler,init,
+</I>&gt;<i> [{tcp,http},
+</I>&gt;<i> {http_req,#Port&lt;0.926&gt;,ranch_tcp,keepalive,&lt;0.491.0&gt;,
+</I>&gt;<i> &lt;&lt;&quot;GET&quot;&gt;&gt;,
+</I>&gt;<i> {1,1},
+</I>&gt;<i> {{127,0,0,1},56630},
+</I>&gt;<i> &lt;&lt;&quot;localhost&quot;&gt;&gt;,undefined,8080,&lt;&lt;&quot;/&quot;&gt;&gt;,
+</I>&gt;<i> undefined,&lt;&lt;&quot;encoding=text&quot;&gt;&gt;,undefined,&lt;&lt;&gt;&gt;,
+</I>&gt;<i> [],
+</I>&gt;<i> [{&lt;&lt;&quot;upgrade&quot;&gt;&gt;,&lt;&lt;&quot;websocket&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;connection&quot;&gt;&gt;,&lt;&lt;&quot;Upgrade&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;host&quot;&gt;&gt;,&lt;&lt;&quot;localhost:8080&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;origin&quot;&gt;&gt;,&lt;&lt;&quot;<A HREF="http://www.websocket.org">http://www.websocket.org</A>&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;pragma&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;cache-control&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;sec-websocket-key&quot;&gt;&gt;,
+</I>&gt;<i> &lt;&lt;&quot;fEj/SOOcQgSKATOjhbNJBQ==&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;sec-websocket-version&quot;&gt;&gt;,&lt;&lt;&quot;13&quot;&gt;&gt;},
+</I>&gt;<i> {&lt;&lt;&quot;sec-websocket-extensions&quot;&gt;&gt;,
+</I>&gt;<i> &lt;&lt;&quot;x-webkit-deflate-frame&quot;&gt;&gt;}],
+</I>&gt;<i> [{&lt;&lt;&quot;connection&quot;&gt;&gt;,[&lt;&lt;&quot;upgrade&quot;&gt;&gt;]}],
+</I>&gt;<i>
+</I>&gt;<i>undefined,[],waiting,undefined,&lt;&lt;&gt;&gt;,false,waiting,[],
+</I>&gt;<i> &lt;&lt;&gt;&gt;,undefined},
+</I>&gt;<i> [{handler,connection_handler}]],
+</I>&gt;<i> []},
+</I>&gt;<i> {cowboy_handler,handler_init,4,
+</I>&gt;<i> [{file,&quot;src/cowboy_handler.erl&quot;},{line,69}]},
+</I>&gt;<i> {cowboy_protocol,execute,4,
+</I>&gt;<i> [{file,&quot;src/cowboy_protocol.erl&quot;},{line,514}]}]
+</I>&gt;<i>
+</I>&gt;<i>Can anyone see what might be throwing this off? I'd like to get a
+</I>&gt;<i>minimal handler running before I attempt to add some logic.
+</I>&gt;<i>
+</I>&gt;<i>Thanks,
+</I>&gt;<i>Lee
+</I>&gt;<i>_______________________________________________
+</I>&gt;<i>Extend mailing list
+</I>&gt;<i><A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;<i><A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;<i>
+</I>
+
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000085.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI>Next message: <A HREF="000086.html">[99s-extend] Heartbeat?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#83">[ date ]</a>
+ <a href="thread.html#83">[ thread ]</a>
+ <a href="subject.html#83">[ subject ]</a>
+ <a href="author.html#83">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000084.html b/_build/static/archives/extend/2013-April/000084.html
new file mode 100644
index 00000000..36ba2a51
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000084.html
@@ -0,0 +1,192 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Problems with Bullet
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Problems%20with%20Bullet&In-Reply-To=%3CCD8849A5.4807%25christopher.phillips%40turner.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000082.html">
+ <LINK REL="Next" HREF="000085.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Problems with Bullet</H1>
+ <B>Phillips, Christopher</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Problems%20with%20Bullet&In-Reply-To=%3CCD8849A5.4807%25christopher.phillips%40turner.com%3E"
+ TITLE="[99s-extend] Problems with Bullet">Christopher.Phillips at turner.com
+ </A><BR>
+ <I>Mon Apr 8 16:18:27 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000082.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI>Next message: <A HREF="000085.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#84">[ date ]</a>
+ <a href="thread.html#84">[ thread ]</a>
+ <a href="subject.html#84">[ subject ]</a>
+ <a href="author.html#84">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE> *facepalm* Or that, yeah. Should have correlated the stack trace with
+the error. Not used to seeing cowboy run as the app, not a dependency.
+
+On 4/8/13 10:08 AM, &quot;Lo&#239;c Hoguin&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">essen at ninenines.eu</A>&gt; wrote:
+
+&gt;<i>Sounds like Bullet isn't in your path. Forgot -pa deps/*/ebin?
+</I>&gt;<i>
+</I>&gt;<i>On 04/08/2013 03:53 PM, Lee Sylvester wrote:
+</I>&gt;&gt;<i> Hi all,
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> I'm currently having problems getting a websocket to connect to a
+</I>&gt;&gt;<i>simple bare bones Bullet handler. Unfortunately, I'm still quite an
+</I>&gt;&gt;<i>Erlang noob, so the stack traces tend to lead me in circles. I'm hoping
+</I>&gt;&gt;<i>this is obvious stuff to you Erlang pros :-)
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Given the below handler:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> init(_Transport, Req, _Opts, _Active) -&gt;
+</I>&gt;&gt;<i> {ok, Req, undefined_state}.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> stream(Data, Req, State) -&gt;
+</I>&gt;&gt;<i> {ok, Req, State}.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> info(Info, Req, State) -&gt;
+</I>&gt;&gt;<i> {reply, Info, Req, State}.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> terminate(_Req, _State) -&gt;
+</I>&gt;&gt;<i> ok.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Connecting with a websocket throws the following error:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> =ERROR REPORT==== 8-Apr-2013::14:46:11 ===
+</I>&gt;&gt;<i> ** Cowboy handler bullet_handler terminating in init/3
+</I>&gt;&gt;<i> for the reason error:undef
+</I>&gt;&gt;<i> ** Options were [{handler,connection_handler}]
+</I>&gt;&gt;<i> ** Request was [{socket,#Port&lt;0.926&gt;},
+</I>&gt;&gt;<i> {transport,ranch_tcp},
+</I>&gt;&gt;<i> {connection,keepalive},
+</I>&gt;&gt;<i> {pid,&lt;0.491.0&gt;},
+</I>&gt;&gt;<i> {method,&lt;&lt;&quot;GET&quot;&gt;&gt;},
+</I>&gt;&gt;<i> {version,{1,1}},
+</I>&gt;&gt;<i> {peer,{{127,0,0,1},56630}},
+</I>&gt;&gt;<i> {host,&lt;&lt;&quot;localhost&quot;&gt;&gt;},
+</I>&gt;&gt;<i> {host_info,undefined},
+</I>&gt;&gt;<i> {port,8080},
+</I>&gt;&gt;<i> {path,&lt;&lt;&quot;/&quot;&gt;&gt;},
+</I>&gt;&gt;<i> {path_info,undefined},
+</I>&gt;&gt;<i> {qs,&lt;&lt;&quot;encoding=text&quot;&gt;&gt;},
+</I>&gt;&gt;<i> {qs_vals,undefined},
+</I>&gt;&gt;<i> {fragment,&lt;&lt;&gt;&gt;},
+</I>&gt;&gt;<i> {bindings,[]},
+</I>&gt;&gt;<i> {headers,[{&lt;&lt;&quot;upgrade&quot;&gt;&gt;,&lt;&lt;&quot;websocket&quot;&gt;&gt;},
+</I>&gt;&gt;<i> {&lt;&lt;&quot;connection&quot;&gt;&gt;,&lt;&lt;&quot;Upgrade&quot;&gt;&gt;},
+</I>&gt;&gt;<i> {&lt;&lt;&quot;host&quot;&gt;&gt;,&lt;&lt;&quot;localhost:8080&quot;&gt;&gt;},
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>{&lt;&lt;&quot;origin&quot;&gt;&gt;,&lt;&lt;&quot;<A HREF="http://www.websocket.org">http://www.websocket.org</A>&quot;&gt;&gt;},
+</I>&gt;&gt;<i> {&lt;&lt;&quot;pragma&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+</I>&gt;&gt;<i> {&lt;&lt;&quot;cache-control&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+</I>&gt;&gt;<i> {&lt;&lt;&quot;sec-websocket-key&quot;&gt;&gt;,
+</I>&gt;&gt;<i> &lt;&lt;&quot;fEj/SOOcQgSKATOjhbNJBQ==&quot;&gt;&gt;},
+</I>&gt;&gt;<i> {&lt;&lt;&quot;sec-websocket-version&quot;&gt;&gt;,&lt;&lt;&quot;13&quot;&gt;&gt;},
+</I>&gt;&gt;<i> {&lt;&lt;&quot;sec-websocket-extensions&quot;&gt;&gt;,
+</I>&gt;&gt;<i> &lt;&lt;&quot;x-webkit-deflate-frame&quot;&gt;&gt;}]},
+</I>&gt;&gt;<i> {p_headers,[{&lt;&lt;&quot;connection&quot;&gt;&gt;,[&lt;&lt;&quot;upgrade&quot;&gt;&gt;]}]},
+</I>&gt;&gt;<i> {cookies,undefined},
+</I>&gt;&gt;<i> {meta,[]},
+</I>&gt;&gt;<i> {body_state,waiting},
+</I>&gt;&gt;<i> {multipart,undefined},
+</I>&gt;&gt;<i> {buffer,&lt;&lt;&gt;&gt;},
+</I>&gt;&gt;<i> {resp_compress,false},
+</I>&gt;&gt;<i> {resp_state,waiting},
+</I>&gt;&gt;<i> {resp_headers,[]},
+</I>&gt;&gt;<i> {resp_body,&lt;&lt;&gt;&gt;},
+</I>&gt;&gt;<i> {onresponse,undefined}]
+</I>&gt;&gt;<i> ** Stacktrace: [{bullet_handler,init,
+</I>&gt;&gt;<i> [{tcp,http},
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>{http_req,#Port&lt;0.926&gt;,ranch_tcp,keepalive,&lt;0.491.0&gt;,
+</I>&gt;&gt;<i> &lt;&lt;&quot;GET&quot;&gt;&gt;,
+</I>&gt;&gt;<i> {1,1},
+</I>&gt;&gt;<i> {{127,0,0,1},56630},
+</I>&gt;&gt;<i> &lt;&lt;&quot;localhost&quot;&gt;&gt;,undefined,8080,&lt;&lt;&quot;/&quot;&gt;&gt;,
+</I>&gt;&gt;<i> undefined,&lt;&lt;&quot;encoding=text&quot;&gt;&gt;,undefined,&lt;&lt;&gt;&gt;,
+</I>&gt;&gt;<i> [],
+</I>&gt;&gt;<i> [{&lt;&lt;&quot;upgrade&quot;&gt;&gt;,&lt;&lt;&quot;websocket&quot;&gt;&gt;},
+</I>&gt;&gt;<i> {&lt;&lt;&quot;connection&quot;&gt;&gt;,&lt;&lt;&quot;Upgrade&quot;&gt;&gt;},
+</I>&gt;&gt;<i> {&lt;&lt;&quot;host&quot;&gt;&gt;,&lt;&lt;&quot;localhost:8080&quot;&gt;&gt;},
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>{&lt;&lt;&quot;origin&quot;&gt;&gt;,&lt;&lt;&quot;<A HREF="http://www.websocket.org">http://www.websocket.org</A>&quot;&gt;&gt;},
+</I>&gt;&gt;<i> {&lt;&lt;&quot;pragma&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+</I>&gt;&gt;<i> {&lt;&lt;&quot;cache-control&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+</I>&gt;&gt;<i> {&lt;&lt;&quot;sec-websocket-key&quot;&gt;&gt;,
+</I>&gt;&gt;<i> &lt;&lt;&quot;fEj/SOOcQgSKATOjhbNJBQ==&quot;&gt;&gt;},
+</I>&gt;&gt;<i> {&lt;&lt;&quot;sec-websocket-version&quot;&gt;&gt;,&lt;&lt;&quot;13&quot;&gt;&gt;},
+</I>&gt;&gt;<i> {&lt;&lt;&quot;sec-websocket-extensions&quot;&gt;&gt;,
+</I>&gt;&gt;<i> &lt;&lt;&quot;x-webkit-deflate-frame&quot;&gt;&gt;}],
+</I>&gt;&gt;<i> [{&lt;&lt;&quot;connection&quot;&gt;&gt;,[&lt;&lt;&quot;upgrade&quot;&gt;&gt;]}],
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>undefined,[],waiting,undefined,&lt;&lt;&gt;&gt;,false,waiting,[],
+</I>&gt;&gt;<i> &lt;&lt;&gt;&gt;,undefined},
+</I>&gt;&gt;<i> [{handler,connection_handler}]],
+</I>&gt;&gt;<i> []},
+</I>&gt;&gt;<i> {cowboy_handler,handler_init,4,
+</I>&gt;&gt;<i> [{file,&quot;src/cowboy_handler.erl&quot;},{line,69}]},
+</I>&gt;&gt;<i> {cowboy_protocol,execute,4,
+</I>&gt;&gt;<i> [{file,&quot;src/cowboy_protocol.erl&quot;},{line,514}]}]
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Can anyone see what might be throwing this off? I'd like to get a
+</I>&gt;&gt;<i>minimal handler running before I attempt to add some logic.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Thanks,
+</I>&gt;&gt;<i> Lee
+</I>&gt;&gt;<i> _______________________________________________
+</I>&gt;&gt;<i> Extend mailing list
+</I>&gt;&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>--
+</I>&gt;<i>Lo&#239;c Hoguin
+</I>&gt;<i>Erlang Cowboy
+</I>&gt;<i>Nine Nines
+</I>&gt;<i><A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>&gt;<i>_______________________________________________
+</I>&gt;<i>Extend mailing list
+</I>&gt;<i><A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;<i><A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;<i>
+</I>
+
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000082.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI>Next message: <A HREF="000085.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#84">[ date ]</a>
+ <a href="thread.html#84">[ thread ]</a>
+ <a href="subject.html#84">[ subject ]</a>
+ <a href="author.html#84">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000085.html b/_build/static/archives/extend/2013-April/000085.html
new file mode 100644
index 00000000..7d46c844
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000085.html
@@ -0,0 +1,208 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Problems with Bullet
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Problems%20with%20Bullet&In-Reply-To=%3CA39F0108-E420-4FAB-A1A9-33C062509565%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000084.html">
+ <LINK REL="Next" HREF="000083.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Problems with Bullet</H1>
+ <B>Lee Sylvester</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Problems%20with%20Bullet&In-Reply-To=%3CA39F0108-E420-4FAB-A1A9-33C062509565%40gmail.com%3E"
+ TITLE="[99s-extend] Problems with Bullet">lee.sylvester at gmail.com
+ </A><BR>
+ <I>Mon Apr 8 16:21:53 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000084.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI>Next message: <A HREF="000083.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#85">[ date ]</a>
+ <a href="thread.html#85">[ thread ]</a>
+ <a href="subject.html#85">[ subject ]</a>
+ <a href="author.html#85">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Thanks guys, that was exactly the problem. I feel a little stupid :-) I use Rebar to compile my apps, but none of the three books I have on Erlang describe the config files in much detail. I probably have my entire setup wrong.
+
+Anyhow, it looks to be working, now :-)
+
+Thanks again,
+Lee
+
+
+
+On 8 Apr 2013, at 15:18, &quot;Phillips, Christopher&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">Christopher.Phillips at turner.com</A>&gt; wrote:
+
+&gt;<i> *facepalm* Or that, yeah. Should have correlated the stack trace with
+</I>&gt;<i> the error. Not used to seeing cowboy run as the app, not a dependency.
+</I>&gt;<i>
+</I>&gt;<i> On 4/8/13 10:08 AM, &quot;Lo&#239;c Hoguin&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">essen at ninenines.eu</A>&gt; wrote:
+</I>&gt;<i>
+</I>&gt;&gt;<i> Sounds like Bullet isn't in your path. Forgot -pa deps/*/ebin?
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> On 04/08/2013 03:53 PM, Lee Sylvester wrote:
+</I>&gt;&gt;&gt;<i> Hi all,
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> I'm currently having problems getting a websocket to connect to a
+</I>&gt;&gt;&gt;<i> simple bare bones Bullet handler. Unfortunately, I'm still quite an
+</I>&gt;&gt;&gt;<i> Erlang noob, so the stack traces tend to lead me in circles. I'm hoping
+</I>&gt;&gt;&gt;<i> this is obvious stuff to you Erlang pros :-)
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Given the below handler:
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> init(_Transport, Req, _Opts, _Active) -&gt;
+</I>&gt;&gt;&gt;<i> {ok, Req, undefined_state}.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> stream(Data, Req, State) -&gt;
+</I>&gt;&gt;&gt;<i> {ok, Req, State}.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> info(Info, Req, State) -&gt;
+</I>&gt;&gt;&gt;<i> {reply, Info, Req, State}.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> terminate(_Req, _State) -&gt;
+</I>&gt;&gt;&gt;<i> ok.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Connecting with a websocket throws the following error:
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> =ERROR REPORT==== 8-Apr-2013::14:46:11 ===
+</I>&gt;&gt;&gt;<i> ** Cowboy handler bullet_handler terminating in init/3
+</I>&gt;&gt;&gt;<i> for the reason error:undef
+</I>&gt;&gt;&gt;<i> ** Options were [{handler,connection_handler}]
+</I>&gt;&gt;&gt;<i> ** Request was [{socket,#Port&lt;0.926&gt;},
+</I>&gt;&gt;&gt;<i> {transport,ranch_tcp},
+</I>&gt;&gt;&gt;<i> {connection,keepalive},
+</I>&gt;&gt;&gt;<i> {pid,&lt;0.491.0&gt;},
+</I>&gt;&gt;&gt;<i> {method,&lt;&lt;&quot;GET&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {version,{1,1}},
+</I>&gt;&gt;&gt;<i> {peer,{{127,0,0,1},56630}},
+</I>&gt;&gt;&gt;<i> {host,&lt;&lt;&quot;localhost&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {host_info,undefined},
+</I>&gt;&gt;&gt;<i> {port,8080},
+</I>&gt;&gt;&gt;<i> {path,&lt;&lt;&quot;/&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {path_info,undefined},
+</I>&gt;&gt;&gt;<i> {qs,&lt;&lt;&quot;encoding=text&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {qs_vals,undefined},
+</I>&gt;&gt;&gt;<i> {fragment,&lt;&lt;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {bindings,[]},
+</I>&gt;&gt;&gt;<i> {headers,[{&lt;&lt;&quot;upgrade&quot;&gt;&gt;,&lt;&lt;&quot;websocket&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {&lt;&lt;&quot;connection&quot;&gt;&gt;,&lt;&lt;&quot;Upgrade&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {&lt;&lt;&quot;host&quot;&gt;&gt;,&lt;&lt;&quot;localhost:8080&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> {&lt;&lt;&quot;origin&quot;&gt;&gt;,&lt;&lt;&quot;<A HREF="http://www.websocket.org">http://www.websocket.org</A>&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {&lt;&lt;&quot;pragma&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {&lt;&lt;&quot;cache-control&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {&lt;&lt;&quot;sec-websocket-key&quot;&gt;&gt;,
+</I>&gt;&gt;&gt;<i> &lt;&lt;&quot;fEj/SOOcQgSKATOjhbNJBQ==&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {&lt;&lt;&quot;sec-websocket-version&quot;&gt;&gt;,&lt;&lt;&quot;13&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {&lt;&lt;&quot;sec-websocket-extensions&quot;&gt;&gt;,
+</I>&gt;&gt;&gt;<i> &lt;&lt;&quot;x-webkit-deflate-frame&quot;&gt;&gt;}]},
+</I>&gt;&gt;&gt;<i> {p_headers,[{&lt;&lt;&quot;connection&quot;&gt;&gt;,[&lt;&lt;&quot;upgrade&quot;&gt;&gt;]}]},
+</I>&gt;&gt;&gt;<i> {cookies,undefined},
+</I>&gt;&gt;&gt;<i> {meta,[]},
+</I>&gt;&gt;&gt;<i> {body_state,waiting},
+</I>&gt;&gt;&gt;<i> {multipart,undefined},
+</I>&gt;&gt;&gt;<i> {buffer,&lt;&lt;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {resp_compress,false},
+</I>&gt;&gt;&gt;<i> {resp_state,waiting},
+</I>&gt;&gt;&gt;<i> {resp_headers,[]},
+</I>&gt;&gt;&gt;<i> {resp_body,&lt;&lt;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {onresponse,undefined}]
+</I>&gt;&gt;&gt;<i> ** Stacktrace: [{bullet_handler,init,
+</I>&gt;&gt;&gt;<i> [{tcp,http},
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> {http_req,#Port&lt;0.926&gt;,ranch_tcp,keepalive,&lt;0.491.0&gt;,
+</I>&gt;&gt;&gt;<i> &lt;&lt;&quot;GET&quot;&gt;&gt;,
+</I>&gt;&gt;&gt;<i> {1,1},
+</I>&gt;&gt;&gt;<i> {{127,0,0,1},56630},
+</I>&gt;&gt;&gt;<i> &lt;&lt;&quot;localhost&quot;&gt;&gt;,undefined,8080,&lt;&lt;&quot;/&quot;&gt;&gt;,
+</I>&gt;&gt;&gt;<i> undefined,&lt;&lt;&quot;encoding=text&quot;&gt;&gt;,undefined,&lt;&lt;&gt;&gt;,
+</I>&gt;&gt;&gt;<i> [],
+</I>&gt;&gt;&gt;<i> [{&lt;&lt;&quot;upgrade&quot;&gt;&gt;,&lt;&lt;&quot;websocket&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {&lt;&lt;&quot;connection&quot;&gt;&gt;,&lt;&lt;&quot;Upgrade&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {&lt;&lt;&quot;host&quot;&gt;&gt;,&lt;&lt;&quot;localhost:8080&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> {&lt;&lt;&quot;origin&quot;&gt;&gt;,&lt;&lt;&quot;<A HREF="http://www.websocket.org">http://www.websocket.org</A>&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {&lt;&lt;&quot;pragma&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {&lt;&lt;&quot;cache-control&quot;&gt;&gt;,&lt;&lt;&quot;no-cache&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {&lt;&lt;&quot;sec-websocket-key&quot;&gt;&gt;,
+</I>&gt;&gt;&gt;<i> &lt;&lt;&quot;fEj/SOOcQgSKATOjhbNJBQ==&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {&lt;&lt;&quot;sec-websocket-version&quot;&gt;&gt;,&lt;&lt;&quot;13&quot;&gt;&gt;},
+</I>&gt;&gt;&gt;<i> {&lt;&lt;&quot;sec-websocket-extensions&quot;&gt;&gt;,
+</I>&gt;&gt;&gt;<i> &lt;&lt;&quot;x-webkit-deflate-frame&quot;&gt;&gt;}],
+</I>&gt;&gt;&gt;<i> [{&lt;&lt;&quot;connection&quot;&gt;&gt;,[&lt;&lt;&quot;upgrade&quot;&gt;&gt;]}],
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> undefined,[],waiting,undefined,&lt;&lt;&gt;&gt;,false,waiting,[],
+</I>&gt;&gt;&gt;<i> &lt;&lt;&gt;&gt;,undefined},
+</I>&gt;&gt;&gt;<i> [{handler,connection_handler}]],
+</I>&gt;&gt;&gt;<i> []},
+</I>&gt;&gt;&gt;<i> {cowboy_handler,handler_init,4,
+</I>&gt;&gt;&gt;<i> [{file,&quot;src/cowboy_handler.erl&quot;},{line,69}]},
+</I>&gt;&gt;&gt;<i> {cowboy_protocol,execute,4,
+</I>&gt;&gt;&gt;<i> [{file,&quot;src/cowboy_protocol.erl&quot;},{line,514}]}]
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Can anyone see what might be throwing this off? I'd like to get a
+</I>&gt;&gt;&gt;<i> minimal handler running before I attempt to add some logic.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Thanks,
+</I>&gt;&gt;&gt;<i> Lee
+</I>&gt;&gt;&gt;<i> _______________________________________________
+</I>&gt;&gt;&gt;<i> Extend mailing list
+</I>&gt;&gt;&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;&gt;&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> --
+</I>&gt;&gt;<i> Lo&#239;c Hoguin
+</I>&gt;&gt;<i> Erlang Cowboy
+</I>&gt;&gt;<i> Nine Nines
+</I>&gt;&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>&gt;&gt;<i> _______________________________________________
+</I>&gt;&gt;<i> Extend mailing list
+</I>&gt;&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> _______________________________________________
+</I>&gt;<i> Extend mailing list
+</I>&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000084.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI>Next message: <A HREF="000083.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#85">[ date ]</a>
+ <a href="thread.html#85">[ thread ]</a>
+ <a href="subject.html#85">[ subject ]</a>
+ <a href="author.html#85">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000086.html b/_build/static/archives/extend/2013-April/000086.html
new file mode 100644
index 00000000..f17e2a4b
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000086.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Heartbeat?
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Heartbeat%3F&In-Reply-To=%3CDC437291-FAB7-4E9D-AAAA-EC8B5E755A20%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000083.html">
+ <LINK REL="Next" HREF="000088.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Heartbeat?</H1>
+ <B>Lee Sylvester</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Heartbeat%3F&In-Reply-To=%3CDC437291-FAB7-4E9D-AAAA-EC8B5E755A20%40gmail.com%3E"
+ TITLE="[99s-extend] Heartbeat?">lee.sylvester at gmail.com
+ </A><BR>
+ <I>Wed Apr 10 13:47:45 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000083.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI>Next message: <A HREF="000088.html">[99s-extend] Heartbeat?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#86">[ date ]</a>
+ <a href="thread.html#86">[ thread ]</a>
+ <a href="subject.html#86">[ subject ]</a>
+ <a href="author.html#86">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Hey guys,
+
+So, my bullet websockets are going great. However, I have a question. At present, if I don't send any data to or from my websockets for a while, the connection closes after about 10 - 20 seconds. Therefore, should I send a heartbeat to the client from Erlang to keep this open? The websockets are for user to user messaging, so it's possible that large periods of inactivity could occur.
+
+Thanks,
+Lee
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000083.html">[99s-extend] Problems with Bullet
+</A></li>
+ <LI>Next message: <A HREF="000088.html">[99s-extend] Heartbeat?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#86">[ date ]</a>
+ <a href="thread.html#86">[ thread ]</a>
+ <a href="subject.html#86">[ subject ]</a>
+ <a href="author.html#86">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000087.html b/_build/static/archives/extend/2013-April/000087.html
new file mode 100644
index 00000000..b024dbf3
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000087.html
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] cowboy and chromium
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20and%20chromium&In-Reply-To=%3C90FA9B10-201C-469E-AF79-749CF56160F1%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000092.html">
+ <LINK REL="Next" HREF="000089.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] cowboy and chromium</H1>
+ <B>Sasa Juric</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20and%20chromium&In-Reply-To=%3C90FA9B10-201C-469E-AF79-749CF56160F1%40gmail.com%3E"
+ TITLE="[99s-extend] cowboy and chromium">sasa.juric at gmail.com
+ </A><BR>
+ <I>Wed Apr 10 14:00:47 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000092.html">[99s-extend] Heartbeat?
+</A></li>
+ <LI>Next message: <A HREF="000089.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#87">[ date ]</a>
+ <a href="thread.html#87">[ thread ]</a>
+ <a href="subject.html#87">[ subject ]</a>
+ <a href="author.html#87">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Hi,
+
+I have recently in my production system replaced mochiweb with cowboy. The server generally works fine, except for a bizarre behavior which I cannot quite explain, so I post here, hoping to get some pointers.
+
+After replacing mochiweb with cowboy, I noticed that in chromium (other major browsers work fine) often (but not always) a request lasts a little more than a minute. Further inspection in <A HREF="chrome://net-internals">chrome://net-internals</A> showed that browser tries to send a request, times out after 60 sec, retries and then succeeds immediately. The key point is that it doesn't happen always. First couple of requests work fine, then all of a sudden one doesn't work. At the same time requests from other browsers (including chrome) on the same machine work fine.
+
+If I revert to mochiweb, the problem disappears. Other than web server related code, everything else is the same: the rest of my code, the server setup etc... In addition, I return same responses and headers in both versions.
+
+After many attempts and failures, I might have worked around the issue. Namely, I included &lt;&lt;&quot;connection&quot;&gt;&gt;, &lt;&lt;&quot;close&quot;&gt;&gt; in all responses. After this change, it seems that long requests are not occurring. In any case, I can't reproduce it anymore, whereas before the change I could have reproduce it easily.
+
+However, I'm not sure if I have really resolved the issue, I'm also not happy with connection closes since it degrades performance. And finally, I'm not sure if I quite understand the problem.
+The only theory I have is that due to keep-alive, chromium holds the connection, while cowboy closes it (I read somewhere that hardcoded timeout is 5 seconds, right?). In this case it might happen that chromium sends a request to a non existing socket and then hangs for a minute, waiting for the response which never arrives.
+This might further be amplified by the fact that in production, between browser and cowboy, there is a proxy/load balancer, so maybe load balancer still holds the connection despite the fact that server had closed it.
+
+This is the only theory I currently have, and I would like to hear if you guys have some other idea or any kind of helpful pointer?
+
+Thank you very much in advance and best regards,
+Sasa
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000092.html">[99s-extend] Heartbeat?
+</A></li>
+ <LI>Next message: <A HREF="000089.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#87">[ date ]</a>
+ <a href="thread.html#87">[ thread ]</a>
+ <a href="subject.html#87">[ subject ]</a>
+ <a href="author.html#87">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000088.html b/_build/static/archives/extend/2013-April/000088.html
new file mode 100644
index 00000000..0ba2bb7e
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000088.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Heartbeat?
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Heartbeat%3F&In-Reply-To=%3C51657962.8020009%40ninenines.eu%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000086.html">
+ <LINK REL="Next" HREF="000092.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Heartbeat?</H1>
+ <B>Lo&#239;c Hoguin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Heartbeat%3F&In-Reply-To=%3C51657962.8020009%40ninenines.eu%3E"
+ TITLE="[99s-extend] Heartbeat?">essen at ninenines.eu
+ </A><BR>
+ <I>Wed Apr 10 16:38:26 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000086.html">[99s-extend] Heartbeat?
+</A></li>
+ <LI>Next message: <A HREF="000092.html">[99s-extend] Heartbeat?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#88">[ date ]</a>
+ <a href="thread.html#88">[ thread ]</a>
+ <a href="subject.html#88">[ subject ]</a>
+ <a href="author.html#88">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>On 04/10/2013 01:47 PM, Lee Sylvester wrote:
+&gt;<i> Hey guys,
+</I>&gt;<i>
+</I>&gt;<i> So, my bullet websockets are going great. However, I have a question. At present, if I don't send any data to or from my websockets for a while, the connection closes after about 10 - 20 seconds. Therefore, should I send a heartbeat to the client from Erlang to keep this open? The websockets are for user to user messaging, so it's possible that large periods of inactivity could occur.
+</I>
+Send one from the client if you want it to scale. Bullet provides you
+with one callback that you can use to send anything. If you're using
+JSON then sending {} is generally enough.
+
+--
+Lo&#239;c Hoguin
+Erlang Cowboy
+Nine Nines
+<A HREF="http://ninenines.eu">http://ninenines.eu</A>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000086.html">[99s-extend] Heartbeat?
+</A></li>
+ <LI>Next message: <A HREF="000092.html">[99s-extend] Heartbeat?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#88">[ date ]</a>
+ <a href="thread.html#88">[ thread ]</a>
+ <a href="subject.html#88">[ subject ]</a>
+ <a href="author.html#88">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000089.html b/_build/static/archives/extend/2013-April/000089.html
new file mode 100644
index 00000000..dad65559
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000089.html
@@ -0,0 +1,86 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] cowboy and chromium
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20and%20chromium&In-Reply-To=%3C51657A11.7070902%40ninenines.eu%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000087.html">
+ <LINK REL="Next" HREF="000090.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] cowboy and chromium</H1>
+ <B>Lo&#239;c Hoguin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20and%20chromium&In-Reply-To=%3C51657A11.7070902%40ninenines.eu%3E"
+ TITLE="[99s-extend] cowboy and chromium">essen at ninenines.eu
+ </A><BR>
+ <I>Wed Apr 10 16:41:21 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000087.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI>Next message: <A HREF="000090.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#89">[ date ]</a>
+ <a href="thread.html#89">[ thread ]</a>
+ <a href="subject.html#89">[ subject ]</a>
+ <a href="author.html#89">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>On 04/10/2013 02:00 PM, Sasa Juric wrote:
+&gt;<i> Hi,
+</I>&gt;<i>
+</I>&gt;<i> I have recently in my production system replaced mochiweb with cowboy. The server generally works fine, except for a bizarre behavior which I cannot quite explain, so I post here, hoping to get some pointers.
+</I>&gt;<i>
+</I>&gt;<i> After replacing mochiweb with cowboy, I noticed that in chromium (other major browsers work fine) often (but not always) a request lasts a little more than a minute. Further inspection in <A HREF="chrome://net-internals">chrome://net-internals</A> showed that browser tries to send a request, times out after 60 sec, retries and then succeeds immediately. The key point is that it doesn't happen always. First couple of requests work fine, then all of a sudden one doesn't work. At the same time requests from other browsers (including chrome) on the same machine work fine.
+</I>&gt;<i>
+</I>&gt;<i> If I revert to mochiweb, the problem disappears. Other than web server related code, everything else is the same: the rest of my code, the server setup etc... In addition, I return same responses and headers in both versions.
+</I>&gt;<i>
+</I>&gt;<i> After many attempts and failures, I might have worked around the issue. Namely, I included &lt;&lt;&quot;connection&quot;&gt;&gt;, &lt;&lt;&quot;close&quot;&gt;&gt; in all responses. After this change, it seems that long requests are not occurring. In any case, I can't reproduce it anymore, whereas before the change I could have reproduce it easily.
+</I>&gt;<i>
+</I>&gt;<i> However, I'm not sure if I have really resolved the issue, I'm also not happy with connection closes since it degrades performance. And finally, I'm not sure if I quite understand the problem.
+</I>&gt;<i> The only theory I have is that due to keep-alive, chromium holds the connection, while cowboy closes it (I read somewhere that hardcoded timeout is 5 seconds, right?). In this case it might happen that chromium sends a request to a non existing socket and then hangs for a minute, waiting for the response which never arrives.
+</I>&gt;<i> This might further be amplified by the fact that in production, between browser and cowboy, there is a proxy/load balancer, so maybe load balancer still holds the connection despite the fact that server had closed it.
+</I>&gt;<i>
+</I>&gt;<i> This is the only theory I currently have, and I would like to hear if you guys have some other idea or any kind of helpful pointer?
+</I>
+Haven't seen this happen on plain Cowboy. The proxy might be the
+culprit. See if you can reproduce without the proxy.
+
+--
+Lo&#239;c Hoguin
+Erlang Cowboy
+Nine Nines
+<A HREF="http://ninenines.eu">http://ninenines.eu</A>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000087.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI>Next message: <A HREF="000090.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#89">[ date ]</a>
+ <a href="thread.html#89">[ thread ]</a>
+ <a href="subject.html#89">[ subject ]</a>
+ <a href="author.html#89">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000090.html b/_build/static/archives/extend/2013-April/000090.html
new file mode 100644
index 00000000..a40dcac3
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000090.html
@@ -0,0 +1,97 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] cowboy and chromium
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20and%20chromium&In-Reply-To=%3C3CACD966-2058-4ABF-A819-AE127BE964D7%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000089.html">
+ <LINK REL="Next" HREF="000091.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] cowboy and chromium</H1>
+ <B>Sasa Juric</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20and%20chromium&In-Reply-To=%3C3CACD966-2058-4ABF-A819-AE127BE964D7%40gmail.com%3E"
+ TITLE="[99s-extend] cowboy and chromium">sasa.juric at gmail.com
+ </A><BR>
+ <I>Wed Apr 10 16:50:31 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000089.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI>Next message: <A HREF="000091.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#90">[ date ]</a>
+ <a href="thread.html#90">[ thread ]</a>
+ <a href="subject.html#90">[ subject ]</a>
+ <a href="author.html#90">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>I agree with you. In addition, I can't reproduce without the proxy, which confirms the suspicion.
+
+Looking at the code of mochiweb which I was using, the connection timeout is set to 5 minutes.
+The other factor, which I can confirm is that when the server terminates the connection, the proxy doesn't forward this to the client. Hence, the client and proxy probably &quot;think&quot; that connection is still active, and try to reuse it, but this doesn't work until timeout.
+Other browsers probably can gracefully handle this situation, but for some reason chromium is stuck to 60 seconds and after retry it presumably opens new connection and succeeds.
+
+Question: can I configure keep-alive timeout in Cowboy?
+
+
+On Apr 10, 2013, at 4:41 PM, Lo&#239;c Hoguin wrote:
+
+&gt;<i> On 04/10/2013 02:00 PM, Sasa Juric wrote:
+</I>&gt;&gt;<i> Hi,
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> I have recently in my production system replaced mochiweb with cowboy. The server generally works fine, except for a bizarre behavior which I cannot quite explain, so I post here, hoping to get some pointers.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> After replacing mochiweb with cowboy, I noticed that in chromium (other major browsers work fine) often (but not always) a request lasts a little more than a minute. Further inspection in <A HREF="chrome://net-internals">chrome://net-internals</A> showed that browser tries to send a request, times out after 60 sec, retries and then succeeds immediately. The key point is that it doesn't happen always. First couple of requests work fine, then all of a sudden one doesn't work. At the same time requests from other browsers (including chrome) on the same machine work fine.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> If I revert to mochiweb, the problem disappears. Other than web server related code, everything else is the same: the rest of my code, the server setup etc... In addition, I return same responses and headers in both versions.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> After many attempts and failures, I might have worked around the issue. Namely, I included &lt;&lt;&quot;connection&quot;&gt;&gt;, &lt;&lt;&quot;close&quot;&gt;&gt; in all responses. After this change, it seems that long requests are not occurring. In any case, I can't reproduce it anymore, whereas before the change I could have reproduce it easily.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> However, I'm not sure if I have really resolved the issue, I'm also not happy with connection closes since it degrades performance. And finally, I'm not sure if I quite understand the problem.
+</I>&gt;&gt;<i> The only theory I have is that due to keep-alive, chromium holds the connection, while cowboy closes it (I read somewhere that hardcoded timeout is 5 seconds, right?). In this case it might happen that chromium sends a request to a non existing socket and then hangs for a minute, waiting for the response which never arrives.
+</I>&gt;&gt;<i> This might further be amplified by the fact that in production, between browser and cowboy, there is a proxy/load balancer, so maybe load balancer still holds the connection despite the fact that server had closed it.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> This is the only theory I currently have, and I would like to hear if you guys have some other idea or any kind of helpful pointer?
+</I>&gt;<i>
+</I>&gt;<i> Haven't seen this happen on plain Cowboy. The proxy might be the culprit. See if you can reproduce without the proxy.
+</I>&gt;<i>
+</I>&gt;<i> --
+</I>&gt;<i> Lo&#239;c Hoguin
+</I>&gt;<i> Erlang Cowboy
+</I>&gt;<i> Nine Nines
+</I>&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000089.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI>Next message: <A HREF="000091.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#90">[ date ]</a>
+ <a href="thread.html#90">[ thread ]</a>
+ <a href="subject.html#90">[ subject ]</a>
+ <a href="author.html#90">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000091.html b/_build/static/archives/extend/2013-April/000091.html
new file mode 100644
index 00000000..0e8d39ec
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000091.html
@@ -0,0 +1,107 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] cowboy and chromium
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20and%20chromium&In-Reply-To=%3C51657C86.2060800%40ninenines.eu%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000090.html">
+ <LINK REL="Next" HREF="000093.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] cowboy and chromium</H1>
+ <B>Lo&#239;c Hoguin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20and%20chromium&In-Reply-To=%3C51657C86.2060800%40ninenines.eu%3E"
+ TITLE="[99s-extend] cowboy and chromium">essen at ninenines.eu
+ </A><BR>
+ <I>Wed Apr 10 16:51:50 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000090.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI>Next message: <A HREF="000093.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#91">[ date ]</a>
+ <a href="thread.html#91">[ thread ]</a>
+ <a href="subject.html#91">[ subject ]</a>
+ <a href="author.html#91">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>'timeout' protocol option, in milliseconds.
+
+On 04/10/2013 04:50 PM, Sasa Juric wrote:
+&gt;<i> I agree with you. In addition, I can't reproduce without the proxy, which confirms the suspicion.
+</I>&gt;<i>
+</I>&gt;<i> Looking at the code of mochiweb which I was using, the connection timeout is set to 5 minutes.
+</I>&gt;<i> The other factor, which I can confirm is that when the server terminates the connection, the proxy doesn't forward this to the client. Hence, the client and proxy probably &quot;think&quot; that connection is still active, and try to reuse it, but this doesn't work until timeout.
+</I>&gt;<i> Other browsers probably can gracefully handle this situation, but for some reason chromium is stuck to 60 seconds and after retry it presumably opens new connection and succeeds.
+</I>&gt;<i>
+</I>&gt;<i> Question: can I configure keep-alive timeout in Cowboy?
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> On Apr 10, 2013, at 4:41 PM, Lo&#239;c Hoguin wrote:
+</I>&gt;<i>
+</I>&gt;&gt;<i> On 04/10/2013 02:00 PM, Sasa Juric wrote:
+</I>&gt;&gt;&gt;<i> Hi,
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> I have recently in my production system replaced mochiweb with cowboy. The server generally works fine, except for a bizarre behavior which I cannot quite explain, so I post here, hoping to get some pointers.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> After replacing mochiweb with cowboy, I noticed that in chromium (other major browsers work fine) often (but not always) a request lasts a little more than a minute. Further inspection in <A HREF="chrome://net-internals">chrome://net-internals</A> showed that browser tries to send a request, times out after 60 sec, retries and then succeeds immediately. The key point is that it doesn't happen always. First couple of requests work fine, then all of a sudden one doesn't work. At the same time requests from other browsers (including chrome) on the same machine work fine.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> If I revert to mochiweb, the problem disappears. Other than web server related code, everything else is the same: the rest of my code, the server setup etc... In addition, I return same responses and headers in both versions.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> After many attempts and failures, I might have worked around the issue. Namely, I included &lt;&lt;&quot;connection&quot;&gt;&gt;, &lt;&lt;&quot;close&quot;&gt;&gt; in all responses. After this change, it seems that long requests are not occurring. In any case, I can't reproduce it anymore, whereas before the change I could have reproduce it easily.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> However, I'm not sure if I have really resolved the issue, I'm also not happy with connection closes since it degrades performance. And finally, I'm not sure if I quite understand the problem.
+</I>&gt;&gt;&gt;<i> The only theory I have is that due to keep-alive, chromium holds the connection, while cowboy closes it (I read somewhere that hardcoded timeout is 5 seconds, right?). In this case it might happen that chromium sends a request to a non existing socket and then hangs for a minute, waiting for the response which never arrives.
+</I>&gt;&gt;&gt;<i> This might further be amplified by the fact that in production, between browser and cowboy, there is a proxy/load balancer, so maybe load balancer still holds the connection despite the fact that server had closed it.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> This is the only theory I currently have, and I would like to hear if you guys have some other idea or any kind of helpful pointer?
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Haven't seen this happen on plain Cowboy. The proxy might be the culprit. See if you can reproduce without the proxy.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> --
+</I>&gt;&gt;<i> Lo&#239;c Hoguin
+</I>&gt;&gt;<i> Erlang Cowboy
+</I>&gt;&gt;<i> Nine Nines
+</I>&gt;&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>&gt;<i>
+</I>
+
+--
+Lo&#239;c Hoguin
+Erlang Cowboy
+Nine Nines
+<A HREF="http://ninenines.eu">http://ninenines.eu</A>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000090.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI>Next message: <A HREF="000093.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#91">[ date ]</a>
+ <a href="thread.html#91">[ thread ]</a>
+ <a href="subject.html#91">[ subject ]</a>
+ <a href="author.html#91">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000092.html b/_build/static/archives/extend/2013-April/000092.html
new file mode 100644
index 00000000..7df4cb55
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000092.html
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Heartbeat?
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Heartbeat%3F&In-Reply-To=%3C2499D410-A700-41A3-A926-F721CC092600%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000088.html">
+ <LINK REL="Next" HREF="000087.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Heartbeat?</H1>
+ <B>Lee Sylvester</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Heartbeat%3F&In-Reply-To=%3C2499D410-A700-41A3-A926-F721CC092600%40gmail.com%3E"
+ TITLE="[99s-extend] Heartbeat?">lee.sylvester at gmail.com
+ </A><BR>
+ <I>Wed Apr 10 16:53:24 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000088.html">[99s-extend] Heartbeat?
+</A></li>
+ <LI>Next message: <A HREF="000087.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#92">[ date ]</a>
+ <a href="thread.html#92">[ thread ]</a>
+ <a href="subject.html#92">[ subject ]</a>
+ <a href="author.html#92">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Ahh, thank you.
+
+Regards,
+Lee
+
+
+
+On 10 Apr 2013, at 15:38, Lo&#239;c Hoguin &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">essen at ninenines.eu</A>&gt; wrote:
+
+&gt;<i> On 04/10/2013 01:47 PM, Lee Sylvester wrote:
+</I>&gt;&gt;<i> Hey guys,
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> So, my bullet websockets are going great. However, I have a question. At present, if I don't send any data to or from my websockets for a while, the connection closes after about 10 - 20 seconds. Therefore, should I send a heartbeat to the client from Erlang to keep this open? The websockets are for user to user messaging, so it's possible that large periods of inactivity could occur.
+</I>&gt;<i>
+</I>&gt;<i> Send one from the client if you want it to scale. Bullet provides you with one callback that you can use to send anything. If you're using JSON then sending {} is generally enough.
+</I>&gt;<i>
+</I>&gt;<i> --
+</I>&gt;<i> Lo&#239;c Hoguin
+</I>&gt;<i> Erlang Cowboy
+</I>&gt;<i> Nine Nines
+</I>&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000088.html">[99s-extend] Heartbeat?
+</A></li>
+ <LI>Next message: <A HREF="000087.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#92">[ date ]</a>
+ <a href="thread.html#92">[ thread ]</a>
+ <a href="subject.html#92">[ subject ]</a>
+ <a href="author.html#92">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000093.html b/_build/static/archives/extend/2013-April/000093.html
new file mode 100644
index 00000000..25544b4e
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000093.html
@@ -0,0 +1,120 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] cowboy and chromium
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20and%20chromium&In-Reply-To=%3CAE3B3DE1-BEC0-4265-92EC-9D14EB4E0D59%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000091.html">
+ <LINK REL="Next" HREF="000094.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] cowboy and chromium</H1>
+ <B>Sasa Juric</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20and%20chromium&In-Reply-To=%3CAE3B3DE1-BEC0-4265-92EC-9D14EB4E0D59%40gmail.com%3E"
+ TITLE="[99s-extend] cowboy and chromium">sasa.juric at gmail.com
+ </A><BR>
+ <I>Wed Apr 10 16:56:08 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000091.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI>Next message: <A HREF="000094.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#93">[ date ]</a>
+ <a href="thread.html#93">[ thread ]</a>
+ <a href="subject.html#93">[ subject ]</a>
+ <a href="author.html#93">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Thanks!
+
+I was looking at the option, but was confused by description which states:
+Time in milliseconds a client has to send the full request line and headers.
+
+I'll give it a try and see how it works.
+
+Best regards,
+Sasa
+
+On Apr 10, 2013, at 4:51 PM, Lo&#239;c Hoguin wrote:
+
+&gt;<i> 'timeout' protocol option, in milliseconds.
+</I>&gt;<i>
+</I>&gt;<i> On 04/10/2013 04:50 PM, Sasa Juric wrote:
+</I>&gt;&gt;<i> I agree with you. In addition, I can't reproduce without the proxy, which confirms the suspicion.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Looking at the code of mochiweb which I was using, the connection timeout is set to 5 minutes.
+</I>&gt;&gt;<i> The other factor, which I can confirm is that when the server terminates the connection, the proxy doesn't forward this to the client. Hence, the client and proxy probably &quot;think&quot; that connection is still active, and try to reuse it, but this doesn't work until timeout.
+</I>&gt;&gt;<i> Other browsers probably can gracefully handle this situation, but for some reason chromium is stuck to 60 seconds and after retry it presumably opens new connection and succeeds.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Question: can I configure keep-alive timeout in Cowboy?
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> On Apr 10, 2013, at 4:41 PM, Lo&#239;c Hoguin wrote:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> On 04/10/2013 02:00 PM, Sasa Juric wrote:
+</I>&gt;&gt;&gt;&gt;<i> Hi,
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> I have recently in my production system replaced mochiweb with cowboy. The server generally works fine, except for a bizarre behavior which I cannot quite explain, so I post here, hoping to get some pointers.
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> After replacing mochiweb with cowboy, I noticed that in chromium (other major browsers work fine) often (but not always) a request lasts a little more than a minute. Further inspection in <A HREF="chrome://net-internals">chrome://net-internals</A> showed that browser tries to send a request, times out after 60 sec, retries and then succeeds immediately. The key point is that it doesn't happen always. First couple of requests work fine, then all of a sudden one doesn't work. At the same time requests from other browsers (including chrome) on the same machine work fine.
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> If I revert to mochiweb, the problem disappears. Other than web server related code, everything else is the same: the rest of my code, the server setup etc... In addition, I return same responses and headers in both versions.
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> After many attempts and failures, I might have worked around the issue. Namely, I included &lt;&lt;&quot;connection&quot;&gt;&gt;, &lt;&lt;&quot;close&quot;&gt;&gt; in all responses. After this change, it seems that long requests are not occurring. In any case, I can't reproduce it anymore, whereas before the change I could have reproduce it easily.
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> However, I'm not sure if I have really resolved the issue, I'm also not happy with connection closes since it degrades performance. And finally, I'm not sure if I quite understand the problem.
+</I>&gt;&gt;&gt;&gt;<i> The only theory I have is that due to keep-alive, chromium holds the connection, while cowboy closes it (I read somewhere that hardcoded timeout is 5 seconds, right?). In this case it might happen that chromium sends a request to a non existing socket and then hangs for a minute, waiting for the response which never arrives.
+</I>&gt;&gt;&gt;&gt;<i> This might further be amplified by the fact that in production, between browser and cowboy, there is a proxy/load balancer, so maybe load balancer still holds the connection despite the fact that server had closed it.
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> This is the only theory I currently have, and I would like to hear if you guys have some other idea or any kind of helpful pointer?
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Haven't seen this happen on plain Cowboy. The proxy might be the culprit. See if you can reproduce without the proxy.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> --
+</I>&gt;&gt;&gt;<i> Lo&#239;c Hoguin
+</I>&gt;&gt;&gt;<i> Erlang Cowboy
+</I>&gt;&gt;&gt;<i> Nine Nines
+</I>&gt;&gt;&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>&gt;&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> --
+</I>&gt;<i> Lo&#239;c Hoguin
+</I>&gt;<i> Erlang Cowboy
+</I>&gt;<i> Nine Nines
+</I>&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000091.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI>Next message: <A HREF="000094.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#93">[ date ]</a>
+ <a href="thread.html#93">[ thread ]</a>
+ <a href="subject.html#93">[ subject ]</a>
+ <a href="author.html#93">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000094.html b/_build/static/archives/extend/2013-April/000094.html
new file mode 100644
index 00000000..48a3dac6
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000094.html
@@ -0,0 +1,132 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] cowboy and chromium
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20and%20chromium&In-Reply-To=%3C51657EBA.7050506%40ninenines.eu%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000093.html">
+ <LINK REL="Next" HREF="000095.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] cowboy and chromium</H1>
+ <B>Lo&#239;c Hoguin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20and%20chromium&In-Reply-To=%3C51657EBA.7050506%40ninenines.eu%3E"
+ TITLE="[99s-extend] cowboy and chromium">essen at ninenines.eu
+ </A><BR>
+ <I>Wed Apr 10 17:01:14 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000093.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI>Next message: <A HREF="000095.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#94">[ date ]</a>
+ <a href="thread.html#94">[ thread ]</a>
+ <a href="subject.html#94">[ subject ]</a>
+ <a href="author.html#94">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Means it's not a read timeout, but a timeout for the whole request up to
+and excluding the body (so an intentionally slow client will get
+disconnected at 5s).
+
+On 04/10/2013 04:56 PM, Sasa Juric wrote:
+&gt;<i> Thanks!
+</I>&gt;<i>
+</I>&gt;<i> I was looking at the option, but was confused by description which states:
+</I>&gt;<i> Time in milliseconds a client has to send the full request line and headers.
+</I>&gt;<i>
+</I>&gt;<i> I'll give it a try and see how it works.
+</I>&gt;<i>
+</I>&gt;<i> Best regards,
+</I>&gt;<i> Sasa
+</I>&gt;<i>
+</I>&gt;<i> On Apr 10, 2013, at 4:51 PM, Lo&#239;c Hoguin wrote:
+</I>&gt;<i>
+</I>&gt;&gt;<i> 'timeout' protocol option, in milliseconds.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> On 04/10/2013 04:50 PM, Sasa Juric wrote:
+</I>&gt;&gt;&gt;<i> I agree with you. In addition, I can't reproduce without the proxy, which confirms the suspicion.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Looking at the code of mochiweb which I was using, the connection timeout is set to 5 minutes.
+</I>&gt;&gt;&gt;<i> The other factor, which I can confirm is that when the server terminates the connection, the proxy doesn't forward this to the client. Hence, the client and proxy probably &quot;think&quot; that connection is still active, and try to reuse it, but this doesn't work until timeout.
+</I>&gt;&gt;&gt;<i> Other browsers probably can gracefully handle this situation, but for some reason chromium is stuck to 60 seconds and after retry it presumably opens new connection and succeeds.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Question: can I configure keep-alive timeout in Cowboy?
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> On Apr 10, 2013, at 4:41 PM, Lo&#239;c Hoguin wrote:
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> On 04/10/2013 02:00 PM, Sasa Juric wrote:
+</I>&gt;&gt;&gt;&gt;&gt;<i> Hi,
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> I have recently in my production system replaced mochiweb with cowboy. The server generally works fine, except for a bizarre behavior which I cannot quite explain, so I post here, hoping to get some pointers.
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> After replacing mochiweb with cowboy, I noticed that in chromium (other major browsers work fine) often (but not always) a request lasts a little more than a minute. Further inspection in <A HREF="chrome://net-internals">chrome://net-internals</A> showed that browser tries to send a request, times out after 60 sec, retries and then succeeds immediately. The key point is that it doesn't happen always. First couple of requests work fine, then all of a sudden one doesn't work. At the same time requests from other browsers (including chrome) on the same machine work fine.
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> If I revert to mochiweb, the problem disappears. Other than web server related code, everything else is the same: the rest of my code, the server setup etc... In addition, I return same responses and headers in both versions.
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> After many attempts and failures, I might have worked around the issue. Namely, I included &lt;&lt;&quot;connection&quot;&gt;&gt;, &lt;&lt;&quot;close&quot;&gt;&gt; in all responses. After this change, it seems that long requests are not occurring. In any case, I can't reproduce it anymore, whereas before the change I could have reproduce it easily.
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> However, I'm not sure if I have really resolved the issue, I'm also not happy with connection closes since it degrades performance. And finally, I'm not sure if I quite understand the problem.
+</I>&gt;&gt;&gt;&gt;&gt;<i> The only theory I have is that due to keep-alive, chromium holds the connection, while cowboy closes it (I read somewhere that hardcoded timeout is 5 seconds, right?). In this case it might happen that chromium sends a request to a non existing socket and then hangs for a minute, waiting for the response which never arrives.
+</I>&gt;&gt;&gt;&gt;&gt;<i> This might further be amplified by the fact that in production, between browser and cowboy, there is a proxy/load balancer, so maybe load balancer still holds the connection despite the fact that server had closed it.
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> This is the only theory I currently have, and I would like to hear if you guys have some other idea or any kind of helpful pointer?
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> Haven't seen this happen on plain Cowboy. The proxy might be the culprit. See if you can reproduce without the proxy.
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> --
+</I>&gt;&gt;&gt;&gt;<i> Lo&#239;c Hoguin
+</I>&gt;&gt;&gt;&gt;<i> Erlang Cowboy
+</I>&gt;&gt;&gt;&gt;<i> Nine Nines
+</I>&gt;&gt;&gt;&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> --
+</I>&gt;&gt;<i> Lo&#239;c Hoguin
+</I>&gt;&gt;<i> Erlang Cowboy
+</I>&gt;&gt;<i> Nine Nines
+</I>&gt;&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>&gt;<i>
+</I>
+
+--
+Lo&#239;c Hoguin
+Erlang Cowboy
+Nine Nines
+<A HREF="http://ninenines.eu">http://ninenines.eu</A>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000093.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI>Next message: <A HREF="000095.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#94">[ date ]</a>
+ <a href="thread.html#94">[ thread ]</a>
+ <a href="subject.html#94">[ subject ]</a>
+ <a href="author.html#94">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000095.html b/_build/static/archives/extend/2013-April/000095.html
new file mode 100644
index 00000000..1e8cc343
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000095.html
@@ -0,0 +1,137 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] cowboy and chromium
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20and%20chromium&In-Reply-To=%3CE7866B20-0B8D-4192-8956-B5F4AD820FA9%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000094.html">
+ <LINK REL="Next" HREF="000096.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] cowboy and chromium</H1>
+ <B>Sasa Juric</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20and%20chromium&In-Reply-To=%3CE7866B20-0B8D-4192-8956-B5F4AD820FA9%40gmail.com%3E"
+ TITLE="[99s-extend] cowboy and chromium">sasa.juric at gmail.com
+ </A><BR>
+ <I>Wed Apr 10 17:05:51 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000094.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI>Next message: <A HREF="000096.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#95">[ date ]</a>
+ <a href="thread.html#95">[ thread ]</a>
+ <a href="subject.html#95">[ subject ]</a>
+ <a href="author.html#95">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Ok, just to make sure I understand:
+When I serve a request, and the connection is not closed due to keep-alive, will this timeout also apply?
+
+
+On Apr 10, 2013, at 5:01 PM, Lo&#239;c Hoguin wrote:
+
+&gt;<i> Means it's not a read timeout, but a timeout for the whole request up to and excluding the body (so an intentionally slow client will get disconnected at 5s).
+</I>&gt;<i>
+</I>&gt;<i> On 04/10/2013 04:56 PM, Sasa Juric wrote:
+</I>&gt;&gt;<i> Thanks!
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> I was looking at the option, but was confused by description which states:
+</I>&gt;&gt;<i> Time in milliseconds a client has to send the full request line and headers.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> I'll give it a try and see how it works.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Best regards,
+</I>&gt;&gt;<i> Sasa
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> On Apr 10, 2013, at 4:51 PM, Lo&#239;c Hoguin wrote:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> 'timeout' protocol option, in milliseconds.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> On 04/10/2013 04:50 PM, Sasa Juric wrote:
+</I>&gt;&gt;&gt;&gt;<i> I agree with you. In addition, I can't reproduce without the proxy, which confirms the suspicion.
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> Looking at the code of mochiweb which I was using, the connection timeout is set to 5 minutes.
+</I>&gt;&gt;&gt;&gt;<i> The other factor, which I can confirm is that when the server terminates the connection, the proxy doesn't forward this to the client. Hence, the client and proxy probably &quot;think&quot; that connection is still active, and try to reuse it, but this doesn't work until timeout.
+</I>&gt;&gt;&gt;&gt;<i> Other browsers probably can gracefully handle this situation, but for some reason chromium is stuck to 60 seconds and after retry it presumably opens new connection and succeeds.
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> Question: can I configure keep-alive timeout in Cowboy?
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> On Apr 10, 2013, at 4:41 PM, Lo&#239;c Hoguin wrote:
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> On 04/10/2013 02:00 PM, Sasa Juric wrote:
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> Hi,
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> I have recently in my production system replaced mochiweb with cowboy. The server generally works fine, except for a bizarre behavior which I cannot quite explain, so I post here, hoping to get some pointers.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> After replacing mochiweb with cowboy, I noticed that in chromium (other major browsers work fine) often (but not always) a request lasts a little more than a minute. Further inspection in <A HREF="chrome://net-internals">chrome://net-internals</A> showed that browser tries to send a request, times out after 60 sec, retries and then succeeds immediately. The key point is that it doesn't happen always. First couple of requests work fine, then all of a sudden one doesn't work. At the same time requests from other browsers (including chrome) on the same machine work fine.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> If I revert to mochiweb, the problem disappears. Other than web server related code, everything else is the same: the rest of my code, the server setup etc... In addition, I return same responses and headers in both versions.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> After many attempts and failures, I might have worked around the issue. Namely, I included &lt;&lt;&quot;connection&quot;&gt;&gt;, &lt;&lt;&quot;close&quot;&gt;&gt; in all responses. After this change, it seems that long requests are not occurring. In any case, I can't reproduce it anymore, whereas before the change I could have reproduce it easily.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> However, I'm not sure if I have really resolved the issue, I'm also not happy with connection closes since it degrades performance. And finally, I'm not sure if I quite understand the problem.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> The only theory I have is that due to keep-alive, chromium holds the connection, while cowboy closes it (I read somewhere that hardcoded timeout is 5 seconds, right?). In this case it might happen that chromium sends a request to a non existing socket and then hangs for a minute, waiting for the response which never arrives.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> This might further be amplified by the fact that in production, between browser and cowboy, there is a proxy/load balancer, so maybe load balancer still holds the connection despite the fact that server had closed it.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> This is the only theory I currently have, and I would like to hear if you guys have some other idea or any kind of helpful pointer?
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> Haven't seen this happen on plain Cowboy. The proxy might be the culprit. See if you can reproduce without the proxy.
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> --
+</I>&gt;&gt;&gt;&gt;&gt;<i> Lo&#239;c Hoguin
+</I>&gt;&gt;&gt;&gt;&gt;<i> Erlang Cowboy
+</I>&gt;&gt;&gt;&gt;&gt;<i> Nine Nines
+</I>&gt;&gt;&gt;&gt;&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> --
+</I>&gt;&gt;&gt;<i> Lo&#239;c Hoguin
+</I>&gt;&gt;&gt;<i> Erlang Cowboy
+</I>&gt;&gt;&gt;<i> Nine Nines
+</I>&gt;&gt;&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>&gt;&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> --
+</I>&gt;<i> Lo&#239;c Hoguin
+</I>&gt;<i> Erlang Cowboy
+</I>&gt;<i> Nine Nines
+</I>&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000094.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI>Next message: <A HREF="000096.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#95">[ date ]</a>
+ <a href="thread.html#95">[ thread ]</a>
+ <a href="subject.html#95">[ subject ]</a>
+ <a href="author.html#95">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000096.html b/_build/static/archives/extend/2013-April/000096.html
new file mode 100644
index 00000000..9e31920e
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000096.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] cowboy and chromium
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20and%20chromium&In-Reply-To=%3C51658026.2090805%40ninenines.eu%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000095.html">
+ <LINK REL="Next" HREF="000097.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] cowboy and chromium</H1>
+ <B>Lo&#239;c Hoguin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20and%20chromium&In-Reply-To=%3C51658026.2090805%40ninenines.eu%3E"
+ TITLE="[99s-extend] cowboy and chromium">essen at ninenines.eu
+ </A><BR>
+ <I>Wed Apr 10 17:07:18 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000095.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI>Next message: <A HREF="000097.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#96">[ date ]</a>
+ <a href="thread.html#96">[ thread ]</a>
+ <a href="subject.html#96">[ subject ]</a>
+ <a href="author.html#96">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>It's running from the moment Cowboy starts expecting a new request up to
+the moment it got the request in full (excluding the body), then it's
+reset for the next request.
+
+On 04/10/2013 05:05 PM, Sasa Juric wrote:
+&gt;<i> Ok, just to make sure I understand:
+</I>&gt;<i> When I serve a request, and the connection is not closed due to keep-alive, will this timeout also apply?
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> On Apr 10, 2013, at 5:01 PM, Lo&#239;c Hoguin wrote:
+</I>&gt;<i>
+</I>&gt;&gt;<i> Means it's not a read timeout, but a timeout for the whole request up to and excluding the body (so an intentionally slow client will get disconnected at 5s).
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> On 04/10/2013 04:56 PM, Sasa Juric wrote:
+</I>&gt;&gt;&gt;<i> Thanks!
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> I was looking at the option, but was confused by description which states:
+</I>&gt;&gt;&gt;<i> Time in milliseconds a client has to send the full request line and headers.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> I'll give it a try and see how it works.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Best regards,
+</I>&gt;&gt;&gt;<i> Sasa
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> On Apr 10, 2013, at 4:51 PM, Lo&#239;c Hoguin wrote:
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> 'timeout' protocol option, in milliseconds.
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> On 04/10/2013 04:50 PM, Sasa Juric wrote:
+</I>&gt;&gt;&gt;&gt;&gt;<i> I agree with you. In addition, I can't reproduce without the proxy, which confirms the suspicion.
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> Looking at the code of mochiweb which I was using, the connection timeout is set to 5 minutes.
+</I>&gt;&gt;&gt;&gt;&gt;<i> The other factor, which I can confirm is that when the server terminates the connection, the proxy doesn't forward this to the client. Hence, the client and proxy probably &quot;think&quot; that connection is still active, and try to reuse it, but this doesn't work until timeout.
+</I>&gt;&gt;&gt;&gt;&gt;<i> Other browsers probably can gracefully handle this situation, but for some reason chromium is stuck to 60 seconds and after retry it presumably opens new connection and succeeds.
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> Question: can I configure keep-alive timeout in Cowboy?
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> On Apr 10, 2013, at 4:41 PM, Lo&#239;c Hoguin wrote:
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> On 04/10/2013 02:00 PM, Sasa Juric wrote:
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> Hi,
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> I have recently in my production system replaced mochiweb with cowboy. The server generally works fine, except for a bizarre behavior which I cannot quite explain, so I post here, hoping to get some pointers.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> After replacing mochiweb with cowboy, I noticed that in chromium (other major browsers work fine) often (but not always) a request lasts a little more than a minute. Further inspection in <A HREF="chrome://net-internals">chrome://net-internals</A> showed that browser tries to send a request, times out after 60 sec, retries and then succeeds immediately. The key point is that it doesn't happen always. First couple of requests work fine, then all of a sudden one doesn't work. At the same time requests from other browsers (including chrome) on the same machine work fine.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> If I revert to mochiweb, the problem disappears. Other than web server related code, everything else is the same: the rest of my code, the server setup etc... In addition, I return same responses and headers in both versions.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> After many attempts and failures, I might have worked around the issue. Namely, I included &lt;&lt;&quot;connection&quot;&gt;&gt;, &lt;&lt;&quot;close&quot;&gt;&gt; in all responses. After this change, it seems that long requests are not occurring. In any case, I can't reproduce it anymore, whereas before the change I could have reproduce it easily.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> However, I'm not sure if I have really resolved the issue, I'm also not happy with connection closes since it degrades performance. And finally, I'm not sure if I quite understand the problem.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> The only theory I have is that due to keep-alive, chromium holds the connection, while cowboy closes it (I read somewhere that hardcoded timeout is 5 seconds, right?). In this case it might happen that chromium sends a request to a non existing socket and then hangs for a minute, waiting for the response which never arrives.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> This might further be amplified by the fact that in production, between browser and cowboy, there is a proxy/load balancer, so maybe load balancer still holds the connection despite the fact that server had closed it.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> This is the only theory I currently have, and I would like to hear if you guys have some other idea or any kind of helpful pointer?
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> Haven't seen this happen on plain Cowboy. The proxy might be the culprit. See if you can reproduce without the proxy.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> --
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> Lo&#239;c Hoguin
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> Erlang Cowboy
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> Nine Nines
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> --
+</I>&gt;&gt;&gt;&gt;<i> Lo&#239;c Hoguin
+</I>&gt;&gt;&gt;&gt;<i> Erlang Cowboy
+</I>&gt;&gt;&gt;&gt;<i> Nine Nines
+</I>&gt;&gt;&gt;&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> --
+</I>&gt;&gt;<i> Lo&#239;c Hoguin
+</I>&gt;&gt;<i> Erlang Cowboy
+</I>&gt;&gt;<i> Nine Nines
+</I>&gt;&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>&gt;<i>
+</I>
+
+--
+Lo&#239;c Hoguin
+Erlang Cowboy
+Nine Nines
+<A HREF="http://ninenines.eu">http://ninenines.eu</A>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000095.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI>Next message: <A HREF="000097.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#96">[ date ]</a>
+ <a href="thread.html#96">[ thread ]</a>
+ <a href="subject.html#96">[ subject ]</a>
+ <a href="author.html#96">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000097.html b/_build/static/archives/extend/2013-April/000097.html
new file mode 100644
index 00000000..0fce37e1
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000097.html
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] cowboy and chromium
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20and%20chromium&In-Reply-To=%3CB51E1290-B953-4A81-9B1F-BA9229E65AF1%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000096.html">
+ <LINK REL="Next" HREF="000098.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] cowboy and chromium</H1>
+ <B>Sasa Juric</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20and%20chromium&In-Reply-To=%3CB51E1290-B953-4A81-9B1F-BA9229E65AF1%40gmail.com%3E"
+ TITLE="[99s-extend] cowboy and chromium">sasa.juric at gmail.com
+ </A><BR>
+ <I>Wed Apr 10 17:11:57 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000096.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI>Next message: <A HREF="000098.html">[99s-extend] Distributed model?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#97">[ date ]</a>
+ <a href="thread.html#97">[ thread ]</a>
+ <a href="subject.html#97">[ subject ]</a>
+ <a href="author.html#97">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Thanks!
+
+On Apr 10, 2013, at 5:07 PM, Lo&#239;c Hoguin wrote:
+
+&gt;<i> It's running from the moment Cowboy starts expecting a new request up to the moment it got the request in full (excluding the body), then it's reset for the next request.
+</I>&gt;<i>
+</I>&gt;<i> On 04/10/2013 05:05 PM, Sasa Juric wrote:
+</I>&gt;&gt;<i> Ok, just to make sure I understand:
+</I>&gt;&gt;<i> When I serve a request, and the connection is not closed due to keep-alive, will this timeout also apply?
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> On Apr 10, 2013, at 5:01 PM, Lo&#239;c Hoguin wrote:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Means it's not a read timeout, but a timeout for the whole request up to and excluding the body (so an intentionally slow client will get disconnected at 5s).
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> On 04/10/2013 04:56 PM, Sasa Juric wrote:
+</I>&gt;&gt;&gt;&gt;<i> Thanks!
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> I was looking at the option, but was confused by description which states:
+</I>&gt;&gt;&gt;&gt;<i> Time in milliseconds a client has to send the full request line and headers.
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> I'll give it a try and see how it works.
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> Best regards,
+</I>&gt;&gt;&gt;&gt;<i> Sasa
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> On Apr 10, 2013, at 4:51 PM, Lo&#239;c Hoguin wrote:
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> 'timeout' protocol option, in milliseconds.
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> On 04/10/2013 04:50 PM, Sasa Juric wrote:
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> I agree with you. In addition, I can't reproduce without the proxy, which confirms the suspicion.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> Looking at the code of mochiweb which I was using, the connection timeout is set to 5 minutes.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> The other factor, which I can confirm is that when the server terminates the connection, the proxy doesn't forward this to the client. Hence, the client and proxy probably &quot;think&quot; that connection is still active, and try to reuse it, but this doesn't work until timeout.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> Other browsers probably can gracefully handle this situation, but for some reason chromium is stuck to 60 seconds and after retry it presumably opens new connection and succeeds.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> Question: can I configure keep-alive timeout in Cowboy?
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i> On Apr 10, 2013, at 4:41 PM, Lo&#239;c Hoguin wrote:
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> On 04/10/2013 02:00 PM, Sasa Juric wrote:
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> Hi,
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> I have recently in my production system replaced mochiweb with cowboy. The server generally works fine, except for a bizarre behavior which I cannot quite explain, so I post here, hoping to get some pointers.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> After replacing mochiweb with cowboy, I noticed that in chromium (other major browsers work fine) often (but not always) a request lasts a little more than a minute. Further inspection in <A HREF="chrome://net-internals">chrome://net-internals</A> showed that browser tries to send a request, times out after 60 sec, retries and then succeeds immediately. The key point is that it doesn't happen always. First couple of requests work fine, then all of a sudden one doesn't work. At the same time requests from other browsers (including chrome) on the same machine work fine.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> If I revert to mochiweb, the problem disappears. Other than web server related code, everything else is the same: the rest of my code, the server setup etc... In addition, I return same responses and headers in both versions.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> After many attempts and failures, I might have worked around the issue. Namely, I included &lt;&lt;&quot;connection&quot;&gt;&gt;, &lt;&lt;&quot;close&quot;&gt;&gt; in all responses. After this change, it seems that long requests are not occurring. In any case, I can't reproduce it anymore, whereas before the change I could have reproduce it easily.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> However, I'm not sure if I have really resolved the issue, I'm also not happy with connection closes since it degrades performance. And finally, I'm not sure if I quite understand the problem.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> The only theory I have is that due to keep-alive, chromium holds the connection, while cowboy closes it (I read somewhere that hardcoded timeout is 5 seconds, right?). In this case it might happen that chromium sends a request to a non existing socket and then hangs for a minute, waiting for the response which never arrives.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> This might further be amplified by the fact that in production, between browser and cowboy, there is a proxy/load balancer, so maybe load balancer still holds the connection despite the fact that server had closed it.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> This is the only theory I currently have, and I would like to hear if you guys have some other idea or any kind of helpful pointer?
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> Haven't seen this happen on plain Cowboy. The proxy might be the culprit. See if you can reproduce without the proxy.
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> --
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> Lo&#239;c Hoguin
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> Erlang Cowboy
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> Nine Nines
+</I>&gt;&gt;&gt;&gt;&gt;&gt;&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>&gt;&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> --
+</I>&gt;&gt;&gt;&gt;&gt;<i> Lo&#239;c Hoguin
+</I>&gt;&gt;&gt;&gt;&gt;<i> Erlang Cowboy
+</I>&gt;&gt;&gt;&gt;&gt;<i> Nine Nines
+</I>&gt;&gt;&gt;&gt;&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> --
+</I>&gt;&gt;&gt;<i> Lo&#239;c Hoguin
+</I>&gt;&gt;&gt;<i> Erlang Cowboy
+</I>&gt;&gt;&gt;<i> Nine Nines
+</I>&gt;&gt;&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>&gt;&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> --
+</I>&gt;<i> Lo&#239;c Hoguin
+</I>&gt;<i> Erlang Cowboy
+</I>&gt;<i> Nine Nines
+</I>&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000096.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI>Next message: <A HREF="000098.html">[99s-extend] Distributed model?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#97">[ date ]</a>
+ <a href="thread.html#97">[ thread ]</a>
+ <a href="subject.html#97">[ subject ]</a>
+ <a href="author.html#97">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000098.html b/_build/static/archives/extend/2013-April/000098.html
new file mode 100644
index 00000000..ee3ce9ba
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000098.html
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Distributed model?
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Distributed%20model%3F&In-Reply-To=%3CADCAD0B2-A081-44CA-82F5-B544F355956F%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000097.html">
+ <LINK REL="Next" HREF="000099.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Distributed model?</H1>
+ <B>Lee Sylvester</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Distributed%20model%3F&In-Reply-To=%3CADCAD0B2-A081-44CA-82F5-B544F355956F%40gmail.com%3E"
+ TITLE="[99s-extend] Distributed model?">lee.sylvester at gmail.com
+ </A><BR>
+ <I>Thu Apr 11 07:51:12 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000097.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI>Next message: <A HREF="000099.html">[99s-extend] Distributed model?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#98">[ date ]</a>
+ <a href="thread.html#98">[ thread ]</a>
+ <a href="subject.html#98">[ subject ]</a>
+ <a href="author.html#98">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Hi guys,
+
+So, I have my Cowboy / Bullet server working nicely, now, with much thanks to members on this list. I'm now looking at the best means of clustering this app. I want to set this up so that, should the connection count get very high (which it will), then I should only have to throw more machines at this problem and it'll all go away.
+
+I've got most of the logic working for this, but what I'm worried about is sending a lot of content over the erlang inter-node connection. I've heard hogging this line can be both a bottleneck and can potentially interrupt the heartbeat between nodes. With this in mind, should I look at adding a ZMQ layer or some such to facilitate this? What is the general solution to high traffic between nodes?
+
+Thanks,
+Lee
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000097.html">[99s-extend] cowboy and chromium
+</A></li>
+ <LI>Next message: <A HREF="000099.html">[99s-extend] Distributed model?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#98">[ date ]</a>
+ <a href="thread.html#98">[ thread ]</a>
+ <a href="subject.html#98">[ subject ]</a>
+ <a href="author.html#98">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000099.html b/_build/static/archives/extend/2013-April/000099.html
new file mode 100644
index 00000000..3bab2cbe
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000099.html
@@ -0,0 +1,80 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Distributed model?
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Distributed%20model%3F&In-Reply-To=%3CCAKD1GY6z-Au5C-AsOus2ieOEtGymgigYp_SzGhrt%2BGgaXNFd%3DQ%40mail.gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000098.html">
+ <LINK REL="Next" HREF="000100.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Distributed model?</H1>
+ <B>Jeremy Ong</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Distributed%20model%3F&In-Reply-To=%3CCAKD1GY6z-Au5C-AsOus2ieOEtGymgigYp_SzGhrt%2BGgaXNFd%3DQ%40mail.gmail.com%3E"
+ TITLE="[99s-extend] Distributed model?">jeremy at quarkgames.com
+ </A><BR>
+ <I>Thu Apr 11 08:29:16 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000098.html">[99s-extend] Distributed model?
+</A></li>
+ <LI>Next message: <A HREF="000100.html">[99s-extend] Distributed model?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#99">[ date ]</a>
+ <a href="thread.html#99">[ thread ]</a>
+ <a href="subject.html#99">[ subject ]</a>
+ <a href="author.html#99">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Make all the machines identically and add an haproxy (or equivalent)
+machine to load balance between all of them. Haproxy can handle many
+many requests. Keep in mind that with tcp, the load balancer is just
+accepting the socket but then the client communicates with the actual
+application server directly afterwards.
+
+On Wed, Apr 10, 2013 at 10:51 PM, Lee Sylvester &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt; wrote:
+&gt;<i> Hi guys,
+</I>&gt;<i>
+</I>&gt;<i> So, I have my Cowboy / Bullet server working nicely, now, with much thanks to members on this list. I'm now looking at the best means of clustering this app. I want to set this up so that, should the connection count get very high (which it will), then I should only have to throw more machines at this problem and it'll all go away.
+</I>&gt;<i>
+</I>&gt;<i> I've got most of the logic working for this, but what I'm worried about is sending a lot of content over the erlang inter-node connection. I've heard hogging this line can be both a bottleneck and can potentially interrupt the heartbeat between nodes. With this in mind, should I look at adding a ZMQ layer or some such to facilitate this? What is the general solution to high traffic between nodes?
+</I>&gt;<i>
+</I>&gt;<i> Thanks,
+</I>&gt;<i> Lee
+</I>&gt;<i> _______________________________________________
+</I>&gt;<i> Extend mailing list
+</I>&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000098.html">[99s-extend] Distributed model?
+</A></li>
+ <LI>Next message: <A HREF="000100.html">[99s-extend] Distributed model?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#99">[ date ]</a>
+ <a href="thread.html#99">[ thread ]</a>
+ <a href="subject.html#99">[ subject ]</a>
+ <a href="author.html#99">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000100.html b/_build/static/archives/extend/2013-April/000100.html
new file mode 100644
index 00000000..1efa066a
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000100.html
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Distributed model?
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Distributed%20model%3F&In-Reply-To=%3C8456939C-6A11-4A18-BD8A-DF378644DACB%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000099.html">
+ <LINK REL="Next" HREF="000101.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Distributed model?</H1>
+ <B>Lee Sylvester</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Distributed%20model%3F&In-Reply-To=%3C8456939C-6A11-4A18-BD8A-DF378644DACB%40gmail.com%3E"
+ TITLE="[99s-extend] Distributed model?">lee.sylvester at gmail.com
+ </A><BR>
+ <I>Thu Apr 11 08:49:18 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000099.html">[99s-extend] Distributed model?
+</A></li>
+ <LI>Next message: <A HREF="000101.html">[99s-extend] Distributed model?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#100">[ date ]</a>
+ <a href="thread.html#100">[ thread ]</a>
+ <a href="subject.html#100">[ subject ]</a>
+ <a href="author.html#100">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Thanks Jeremy, but what about inter-node communication? If I have a user on node A sending a message to 10k users located on 10 other nodes, what is the best way to handle that? Especially if this user is sending several messages and expecting replies. Should I use the standard Erlang inter-process messaging or should I implement an MQ on top to handle this?
+
+Thanks,
+Lee
+
+
+On 11 Apr 2013, at 07:29, Jeremy Ong &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">jeremy at quarkgames.com</A>&gt; wrote:
+
+&gt;<i> Make all the machines identically and add an haproxy (or equivalent)
+</I>&gt;<i> machine to load balance between all of them. Haproxy can handle many
+</I>&gt;<i> many requests. Keep in mind that with tcp, the load balancer is just
+</I>&gt;<i> accepting the socket but then the client communicates with the actual
+</I>&gt;<i> application server directly afterwards.
+</I>&gt;<i>
+</I>&gt;<i> On Wed, Apr 10, 2013 at 10:51 PM, Lee Sylvester &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt; wrote:
+</I>&gt;&gt;<i> Hi guys,
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> So, I have my Cowboy / Bullet server working nicely, now, with much thanks to members on this list. I'm now looking at the best means of clustering this app. I want to set this up so that, should the connection count get very high (which it will), then I should only have to throw more machines at this problem and it'll all go away.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> I've got most of the logic working for this, but what I'm worried about is sending a lot of content over the erlang inter-node connection. I've heard hogging this line can be both a bottleneck and can potentially interrupt the heartbeat between nodes. With this in mind, should I look at adding a ZMQ layer or some such to facilitate this? What is the general solution to high traffic between nodes?
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Thanks,
+</I>&gt;&gt;<i> Lee
+</I>&gt;&gt;<i> _______________________________________________
+</I>&gt;&gt;<i> Extend mailing list
+</I>&gt;&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000099.html">[99s-extend] Distributed model?
+</A></li>
+ <LI>Next message: <A HREF="000101.html">[99s-extend] Distributed model?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#100">[ date ]</a>
+ <a href="thread.html#100">[ thread ]</a>
+ <a href="subject.html#100">[ subject ]</a>
+ <a href="author.html#100">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000101.html b/_build/static/archives/extend/2013-April/000101.html
new file mode 100644
index 00000000..9202db3c
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000101.html
@@ -0,0 +1,102 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Distributed model?
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Distributed%20model%3F&In-Reply-To=%3CCAKD1GY4xtZWXvfqstapnpLskbn3DFPPGDO9yHTLHDmTP%2BozR7A%40mail.gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000100.html">
+ <LINK REL="Next" HREF="000102.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Distributed model?</H1>
+ <B>Jeremy Ong</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Distributed%20model%3F&In-Reply-To=%3CCAKD1GY4xtZWXvfqstapnpLskbn3DFPPGDO9yHTLHDmTP%2BozR7A%40mail.gmail.com%3E"
+ TITLE="[99s-extend] Distributed model?">jeremy at quarkgames.com
+ </A><BR>
+ <I>Thu Apr 11 09:04:04 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000100.html">[99s-extend] Distributed model?
+</A></li>
+ <LI>Next message: <A HREF="000102.html">[99s-extend] Distributed model?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#101">[ date ]</a>
+ <a href="thread.html#101">[ thread ]</a>
+ <a href="subject.html#101">[ subject ]</a>
+ <a href="author.html#101">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>I see. I assume this is for a chat server of some sort?
+
+You don't want the user process sending all these messages because the
+user process wouldn't be able to do anything useful (like receive
+messages) in the meantime.
+
+Better is to implement a pubsub process for each channel of
+communication (i.e. one process per room) or rely on Redis pubsub or
+something if speed is extremely important.
+
+There is no way to get around the O(N) complexity of broadcasting.
+
+On Wed, Apr 10, 2013 at 11:49 PM, Lee Sylvester &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt; wrote:
+&gt;<i> Thanks Jeremy, but what about inter-node communication? If I have a user on node A sending a message to 10k users located on 10 other nodes, what is the best way to handle that? Especially if this user is sending several messages and expecting replies. Should I use the standard Erlang inter-process messaging or should I implement an MQ on top to handle this?
+</I>&gt;<i>
+</I>&gt;<i> Thanks,
+</I>&gt;<i> Lee
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> On 11 Apr 2013, at 07:29, Jeremy Ong &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">jeremy at quarkgames.com</A>&gt; wrote:
+</I>&gt;<i>
+</I>&gt;&gt;<i> Make all the machines identically and add an haproxy (or equivalent)
+</I>&gt;&gt;<i> machine to load balance between all of them. Haproxy can handle many
+</I>&gt;&gt;<i> many requests. Keep in mind that with tcp, the load balancer is just
+</I>&gt;&gt;<i> accepting the socket but then the client communicates with the actual
+</I>&gt;&gt;<i> application server directly afterwards.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> On Wed, Apr 10, 2013 at 10:51 PM, Lee Sylvester &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt; wrote:
+</I>&gt;&gt;&gt;<i> Hi guys,
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> So, I have my Cowboy / Bullet server working nicely, now, with much thanks to members on this list. I'm now looking at the best means of clustering this app. I want to set this up so that, should the connection count get very high (which it will), then I should only have to throw more machines at this problem and it'll all go away.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> I've got most of the logic working for this, but what I'm worried about is sending a lot of content over the erlang inter-node connection. I've heard hogging this line can be both a bottleneck and can potentially interrupt the heartbeat between nodes. With this in mind, should I look at adding a ZMQ layer or some such to facilitate this? What is the general solution to high traffic between nodes?
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Thanks,
+</I>&gt;&gt;&gt;<i> Lee
+</I>&gt;&gt;&gt;<i> _______________________________________________
+</I>&gt;&gt;&gt;<i> Extend mailing list
+</I>&gt;&gt;&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;&gt;&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;<i>
+</I>
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000100.html">[99s-extend] Distributed model?
+</A></li>
+ <LI>Next message: <A HREF="000102.html">[99s-extend] Distributed model?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#101">[ date ]</a>
+ <a href="thread.html#101">[ thread ]</a>
+ <a href="subject.html#101">[ subject ]</a>
+ <a href="author.html#101">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000102.html b/_build/static/archives/extend/2013-April/000102.html
new file mode 100644
index 00000000..c9d55344
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000102.html
@@ -0,0 +1,112 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Distributed model?
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Distributed%20model%3F&In-Reply-To=%3CD7BCE9BB-C9D2-4423-92EC-14D4DC841D6F%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000101.html">
+ <LINK REL="Next" HREF="000103.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Distributed model?</H1>
+ <B>Lee Sylvester</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Distributed%20model%3F&In-Reply-To=%3CD7BCE9BB-C9D2-4423-92EC-14D4DC841D6F%40gmail.com%3E"
+ TITLE="[99s-extend] Distributed model?">lee.sylvester at gmail.com
+ </A><BR>
+ <I>Thu Apr 11 14:55:29 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000101.html">[99s-extend] Distributed model?
+</A></li>
+ <LI>Next message: <A HREF="000103.html">[99s-extend] Distributed model?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#102">[ date ]</a>
+ <a href="thread.html#102">[ thread ]</a>
+ <a href="subject.html#102">[ subject ]</a>
+ <a href="author.html#102">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Thank you, Jeremy, that's good advice. It's not so much a chat platform, but I guess it would resemble one in architecture. The part I'm concerned about, though, is should I be avoiding the internal Erlang messaging between connections (over many nodes) for heavy messaging?
+
+Thanks,
+Lee
+
+
+
+On 11 Apr 2013, at 08:04, Jeremy Ong &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">jeremy at quarkgames.com</A>&gt; wrote:
+
+&gt;<i> I see. I assume this is for a chat server of some sort?
+</I>&gt;<i>
+</I>&gt;<i> You don't want the user process sending all these messages because the
+</I>&gt;<i> user process wouldn't be able to do anything useful (like receive
+</I>&gt;<i> messages) in the meantime.
+</I>&gt;<i>
+</I>&gt;<i> Better is to implement a pubsub process for each channel of
+</I>&gt;<i> communication (i.e. one process per room) or rely on Redis pubsub or
+</I>&gt;<i> something if speed is extremely important.
+</I>&gt;<i>
+</I>&gt;<i> There is no way to get around the O(N) complexity of broadcasting.
+</I>&gt;<i>
+</I>&gt;<i> On Wed, Apr 10, 2013 at 11:49 PM, Lee Sylvester &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt; wrote:
+</I>&gt;&gt;<i> Thanks Jeremy, but what about inter-node communication? If I have a user on node A sending a message to 10k users located on 10 other nodes, what is the best way to handle that? Especially if this user is sending several messages and expecting replies. Should I use the standard Erlang inter-process messaging or should I implement an MQ on top to handle this?
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Thanks,
+</I>&gt;&gt;<i> Lee
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> On 11 Apr 2013, at 07:29, Jeremy Ong &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">jeremy at quarkgames.com</A>&gt; wrote:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Make all the machines identically and add an haproxy (or equivalent)
+</I>&gt;&gt;&gt;<i> machine to load balance between all of them. Haproxy can handle many
+</I>&gt;&gt;&gt;<i> many requests. Keep in mind that with tcp, the load balancer is just
+</I>&gt;&gt;&gt;<i> accepting the socket but then the client communicates with the actual
+</I>&gt;&gt;&gt;<i> application server directly afterwards.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> On Wed, Apr 10, 2013 at 10:51 PM, Lee Sylvester &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt; wrote:
+</I>&gt;&gt;&gt;&gt;<i> Hi guys,
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> So, I have my Cowboy / Bullet server working nicely, now, with much thanks to members on this list. I'm now looking at the best means of clustering this app. I want to set this up so that, should the connection count get very high (which it will), then I should only have to throw more machines at this problem and it'll all go away.
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> I've got most of the logic working for this, but what I'm worried about is sending a lot of content over the erlang inter-node connection. I've heard hogging this line can be both a bottleneck and can potentially interrupt the heartbeat between nodes. With this in mind, should I look at adding a ZMQ layer or some such to facilitate this? What is the general solution to high traffic between nodes?
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> Thanks,
+</I>&gt;&gt;&gt;&gt;<i> Lee
+</I>&gt;&gt;&gt;&gt;<i> _______________________________________________
+</I>&gt;&gt;&gt;&gt;<i> Extend mailing list
+</I>&gt;&gt;&gt;&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;&gt;&gt;&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;&gt;<i>
+</I>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000101.html">[99s-extend] Distributed model?
+</A></li>
+ <LI>Next message: <A HREF="000103.html">[99s-extend] Distributed model?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#102">[ date ]</a>
+ <a href="thread.html#102">[ thread ]</a>
+ <a href="subject.html#102">[ subject ]</a>
+ <a href="author.html#102">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000103.html b/_build/static/archives/extend/2013-April/000103.html
new file mode 100644
index 00000000..28c7c536
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000103.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Distributed model?
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Distributed%20model%3F&In-Reply-To=%3C4011ABA6-BD55-4DEB-BE8F-2E20F2376A25%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000102.html">
+ <LINK REL="Next" HREF="000104.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Distributed model?</H1>
+ <B>Lee Sylvester</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Distributed%20model%3F&In-Reply-To=%3C4011ABA6-BD55-4DEB-BE8F-2E20F2376A25%40gmail.com%3E"
+ TITLE="[99s-extend] Distributed model?">lee.sylvester at gmail.com
+ </A><BR>
+ <I>Thu Apr 11 17:46:35 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000102.html">[99s-extend] Distributed model?
+</A></li>
+ <LI>Next message: <A HREF="000104.html">[99s-extend] populating #http_req for unit testing
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#103">[ date ]</a>
+ <a href="thread.html#103">[ thread ]</a>
+ <a href="subject.html#103">[ subject ]</a>
+ <a href="author.html#103">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Okay, so I've figured it out. I will need to have a separate messaging layer. Does anyone know of a messaging layer that can be used when all you know is the PID to send to?
+
+Thanks,
+Lee
+
+
+
+On 11 Apr 2013, at 13:55, Lee Sylvester &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt; wrote:
+
+&gt;<i> Thank you, Jeremy, that's good advice. It's not so much a chat platform, but I guess it would resemble one in architecture. The part I'm concerned about, though, is should I be avoiding the internal Erlang messaging between connections (over many nodes) for heavy messaging?
+</I>&gt;<i>
+</I>&gt;<i> Thanks,
+</I>&gt;<i> Lee
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> On 11 Apr 2013, at 08:04, Jeremy Ong &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">jeremy at quarkgames.com</A>&gt; wrote:
+</I>&gt;<i>
+</I>&gt;&gt;<i> I see. I assume this is for a chat server of some sort?
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> You don't want the user process sending all these messages because the
+</I>&gt;&gt;<i> user process wouldn't be able to do anything useful (like receive
+</I>&gt;&gt;<i> messages) in the meantime.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Better is to implement a pubsub process for each channel of
+</I>&gt;&gt;<i> communication (i.e. one process per room) or rely on Redis pubsub or
+</I>&gt;&gt;<i> something if speed is extremely important.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> There is no way to get around the O(N) complexity of broadcasting.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> On Wed, Apr 10, 2013 at 11:49 PM, Lee Sylvester &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt; wrote:
+</I>&gt;&gt;&gt;<i> Thanks Jeremy, but what about inter-node communication? If I have a user on node A sending a message to 10k users located on 10 other nodes, what is the best way to handle that? Especially if this user is sending several messages and expecting replies. Should I use the standard Erlang inter-process messaging or should I implement an MQ on top to handle this?
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Thanks,
+</I>&gt;&gt;&gt;<i> Lee
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> On 11 Apr 2013, at 07:29, Jeremy Ong &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">jeremy at quarkgames.com</A>&gt; wrote:
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> Make all the machines identically and add an haproxy (or equivalent)
+</I>&gt;&gt;&gt;&gt;<i> machine to load balance between all of them. Haproxy can handle many
+</I>&gt;&gt;&gt;&gt;<i> many requests. Keep in mind that with tcp, the load balancer is just
+</I>&gt;&gt;&gt;&gt;<i> accepting the socket but then the client communicates with the actual
+</I>&gt;&gt;&gt;&gt;<i> application server directly afterwards.
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> On Wed, Apr 10, 2013 at 10:51 PM, Lee Sylvester &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt; wrote:
+</I>&gt;&gt;&gt;&gt;&gt;<i> Hi guys,
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> So, I have my Cowboy / Bullet server working nicely, now, with much thanks to members on this list. I'm now looking at the best means of clustering this app. I want to set this up so that, should the connection count get very high (which it will), then I should only have to throw more machines at this problem and it'll all go away.
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> I've got most of the logic working for this, but what I'm worried about is sending a lot of content over the erlang inter-node connection. I've heard hogging this line can be both a bottleneck and can potentially interrupt the heartbeat between nodes. With this in mind, should I look at adding a ZMQ layer or some such to facilitate this? What is the general solution to high traffic between nodes?
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> Thanks,
+</I>&gt;&gt;&gt;&gt;&gt;<i> Lee
+</I>&gt;&gt;&gt;&gt;&gt;<i> _______________________________________________
+</I>&gt;&gt;&gt;&gt;&gt;<i> Extend mailing list
+</I>&gt;&gt;&gt;&gt;&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;&gt;&gt;&gt;&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;<i>
+</I>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000102.html">[99s-extend] Distributed model?
+</A></li>
+ <LI>Next message: <A HREF="000104.html">[99s-extend] populating #http_req for unit testing
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#103">[ date ]</a>
+ <a href="thread.html#103">[ thread ]</a>
+ <a href="subject.html#103">[ subject ]</a>
+ <a href="author.html#103">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000104.html b/_build/static/archives/extend/2013-April/000104.html
new file mode 100644
index 00000000..692c6f64
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000104.html
@@ -0,0 +1,127 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] populating #http_req for unit testing
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20populating%20%23http_req%20for%20unit%20testing&In-Reply-To=%3CCD8CBFE1.A141%25kevin.brown%40turner.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000103.html">
+ <LINK REL="Next" HREF="000105.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] populating #http_req for unit testing</H1>
+ <B>Brown, Kevin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20populating%20%23http_req%20for%20unit%20testing&In-Reply-To=%3CCD8CBFE1.A141%25kevin.brown%40turner.com%3E"
+ TITLE="[99s-extend] populating #http_req for unit testing">Kevin.Brown at turner.com
+ </A><BR>
+ <I>Fri Apr 12 01:37:18 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000103.html">[99s-extend] Distributed model?
+</A></li>
+ <LI>Next message: <A HREF="000105.html">[99s-extend] populating #http_req for unit testing
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#104">[ date ]</a>
+ <a href="thread.html#104">[ thread ]</a>
+ <a href="subject.html#104">[ subject ]</a>
+ <a href="author.html#104">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>
+Cowfolk,
+
+I am doing something like this to create an #http_req suitable for unit
+testing my resource callbacks:
+
+-define (HTTP_REQ_ENCODERS_PORT_8000, #http_req{host= &lt;&lt;&quot;www.foo.com&quot;&gt;&gt; ,
+port=8000, path= &lt;&lt;&quot;/encoders&quot;&gt;&gt;,transport=ranch_tcp, qs= &lt;&lt;&gt;&gt;, fragment=
+&lt;&lt;&gt;&gt; }).
+
+Notice that I needed to set the transport to a Cowboy specific atom
+because I wanted to get cowboy_req:host_url and cowboy_req:path to work
+properly.
+
+I'm sure there is a method that Cowboy uses internally to populate an
+#http_req from a URL that I could use for testing. What might that be?
+How else should I be populating this record.
+
+Cheers,
+
+-kb
+
+
+
+
+
+
+On 4/11/13 7:07 PM, &quot;<A HREF="https://lists.ninenines.eu/listinfo/extend">extend-request at lists.ninenines.eu</A>&quot;
+&lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">extend-request at lists.ninenines.eu</A>&gt; wrote:
+
+&gt;<i>Welcome to the <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A> mailing list!
+</I>&gt;<i>
+</I>&gt;<i>To post to this list, send your message to:
+</I>&gt;<i>
+</I>&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">extend at lists.ninenines.eu</A>
+</I>&gt;<i>
+</I>&gt;<i>General information about the mailing list is at:
+</I>&gt;<i>
+</I>&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;<i>
+</I>&gt;<i>If you ever want to unsubscribe or change your options (eg, switch to
+</I>&gt;<i>or from digest mode, change your password, etc.), visit your
+</I>&gt;<i>subscription page at:
+</I>&gt;<i>
+</I>&gt;<i> <A HREF="http://lists.ninenines.eu:81/options/extend/kevin.brown%40turner.com">http://lists.ninenines.eu:81/options/extend/kevin.brown%40turner.com</A>
+</I>&gt;<i>
+</I>&gt;<i>You can also make such adjustments via email by sending a message to:
+</I>&gt;<i>
+</I>&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend-request at lists.ninenines.eu</A>
+</I>&gt;<i>
+</I>&gt;<i>with the word `help' in the subject or body (don't include the
+</I>&gt;<i>quotes), and you will get back a message with instructions.
+</I>&gt;<i>
+</I>&gt;<i>You must know your password to change your options (including changing
+</I>&gt;<i>the password, itself) or to unsubscribe without confirmation. It is:
+</I>&gt;<i>
+</I>&gt;<i> doofus1
+</I>&gt;<i>
+</I>&gt;<i>Normally, Mailman will remind you of your lists.ninenines.eu mailing
+</I>&gt;<i>list passwords once every month, although you can disable this if you
+</I>&gt;<i>prefer. This reminder will also include instructions on how to
+</I>&gt;<i>unsubscribe or change your account options. There is also a button on
+</I>&gt;<i>your options page that will email your current password to you.
+</I>&gt;<i>
+</I>
+
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000103.html">[99s-extend] Distributed model?
+</A></li>
+ <LI>Next message: <A HREF="000105.html">[99s-extend] populating #http_req for unit testing
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#104">[ date ]</a>
+ <a href="thread.html#104">[ thread ]</a>
+ <a href="subject.html#104">[ subject ]</a>
+ <a href="author.html#104">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000105.html b/_build/static/archives/extend/2013-April/000105.html
new file mode 100644
index 00000000..001e12f6
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000105.html
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] populating #http_req for unit testing
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20populating%20%23http_req%20for%20unit%20testing&In-Reply-To=%3C5167503E.5070204%40ninenines.eu%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000104.html">
+ <LINK REL="Next" HREF="000106.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] populating #http_req for unit testing</H1>
+ <B>Lo&#239;c Hoguin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20populating%20%23http_req%20for%20unit%20testing&In-Reply-To=%3C5167503E.5070204%40ninenines.eu%3E"
+ TITLE="[99s-extend] populating #http_req for unit testing">essen at ninenines.eu
+ </A><BR>
+ <I>Fri Apr 12 02:07:26 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000104.html">[99s-extend] populating #http_req for unit testing
+</A></li>
+ <LI>Next message: <A HREF="000106.html">[99s-extend] populating #http_req for unit testing
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#105">[ date ]</a>
+ <a href="thread.html#105">[ thread ]</a>
+ <a href="subject.html#105">[ subject ]</a>
+ <a href="author.html#105">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>There's a few undocumented functions in cowboy_req, like new, set and
+get, used by Cowboy internally.
+
+On 04/12/2013 01:37 AM, Brown, Kevin wrote:
+&gt;<i>
+</I>&gt;<i> Cowfolk,
+</I>&gt;<i>
+</I>&gt;<i> I am doing something like this to create an #http_req suitable for unit
+</I>&gt;<i> testing my resource callbacks:
+</I>&gt;<i>
+</I>&gt;<i> -define (HTTP_REQ_ENCODERS_PORT_8000, #http_req{host= &lt;&lt;&quot;www.foo.com&quot;&gt;&gt; ,
+</I>&gt;<i> port=8000, path= &lt;&lt;&quot;/encoders&quot;&gt;&gt;,transport=ranch_tcp, qs= &lt;&lt;&gt;&gt;, fragment=
+</I>&gt;<i> &lt;&lt;&gt;&gt; }).
+</I>&gt;<i>
+</I>&gt;<i> Notice that I needed to set the transport to a Cowboy specific atom
+</I>&gt;<i> because I wanted to get cowboy_req:host_url and cowboy_req:path to work
+</I>&gt;<i> properly.
+</I>&gt;<i>
+</I>&gt;<i> I'm sure there is a method that Cowboy uses internally to populate an
+</I>&gt;<i> #http_req from a URL that I could use for testing. What might that be?
+</I>&gt;<i> How else should I be populating this record.
+</I>&gt;<i>
+</I>&gt;<i> Cheers,
+</I>&gt;<i>
+</I>&gt;<i> -kb
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> On 4/11/13 7:07 PM, &quot;<A HREF="https://lists.ninenines.eu/listinfo/extend">extend-request at lists.ninenines.eu</A>&quot;
+</I>&gt;<i> &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">extend-request at lists.ninenines.eu</A>&gt; wrote:
+</I>&gt;<i>
+</I>&gt;&gt;<i> Welcome to the <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A> mailing list!
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> To post to this list, send your message to:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">extend at lists.ninenines.eu</A>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> General information about the mailing list is at:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> If you ever want to unsubscribe or change your options (eg, switch to
+</I>&gt;&gt;<i> or from digest mode, change your password, etc.), visit your
+</I>&gt;&gt;<i> subscription page at:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> <A HREF="http://lists.ninenines.eu:81/options/extend/kevin.brown%40turner.com">http://lists.ninenines.eu:81/options/extend/kevin.brown%40turner.com</A>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> You can also make such adjustments via email by sending a message to:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend-request at lists.ninenines.eu</A>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> with the word `help' in the subject or body (don't include the
+</I>&gt;&gt;<i> quotes), and you will get back a message with instructions.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> You must know your password to change your options (including changing
+</I>&gt;&gt;<i> the password, itself) or to unsubscribe without confirmation. It is:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> doofus1
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Normally, Mailman will remind you of your lists.ninenines.eu mailing
+</I>&gt;&gt;<i> list passwords once every month, although you can disable this if you
+</I>&gt;&gt;<i> prefer. This reminder will also include instructions on how to
+</I>&gt;&gt;<i> unsubscribe or change your account options. There is also a button on
+</I>&gt;&gt;<i> your options page that will email your current password to you.
+</I>&gt;&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> _______________________________________________
+</I>&gt;<i> Extend mailing list
+</I>&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;<i>
+</I>
+
+--
+Lo&#239;c Hoguin
+Erlang Cowboy
+Nine Nines
+<A HREF="http://ninenines.eu">http://ninenines.eu</A>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000104.html">[99s-extend] populating #http_req for unit testing
+</A></li>
+ <LI>Next message: <A HREF="000106.html">[99s-extend] populating #http_req for unit testing
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#105">[ date ]</a>
+ <a href="thread.html#105">[ thread ]</a>
+ <a href="subject.html#105">[ subject ]</a>
+ <a href="author.html#105">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000106.html b/_build/static/archives/extend/2013-April/000106.html
new file mode 100644
index 00000000..fc45bb84
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000106.html
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] populating #http_req for unit testing
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20populating%20%23http_req%20for%20unit%20testing&In-Reply-To=%3CCD8CCDCD.A1C9%25kevin.brown%40turner.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000105.html">
+ <LINK REL="Next" HREF="000107.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] populating #http_req for unit testing</H1>
+ <B>Brown, Kevin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20populating%20%23http_req%20for%20unit%20testing&In-Reply-To=%3CCD8CCDCD.A1C9%25kevin.brown%40turner.com%3E"
+ TITLE="[99s-extend] populating #http_req for unit testing">Kevin.Brown at turner.com
+ </A><BR>
+ <I>Fri Apr 12 02:30:15 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000105.html">[99s-extend] populating #http_req for unit testing
+</A></li>
+ <LI>Next message: <A HREF="000107.html">[99s-extend] populating #http_req for unit testing
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#106">[ date ]</a>
+ <a href="thread.html#106">[ thread ]</a>
+ <a href="subject.html#106">[ subject ]</a>
+ <a href="author.html#106">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Thanks.
+
+On 4/11/13 8:07 PM, &quot;Lo&#239;c Hoguin&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">essen at ninenines.eu</A>&gt; wrote:
+
+&gt;<i>There's a few undocumented functions in cowboy_req, like new, set and
+</I>&gt;<i>get, used by Cowboy internally.
+</I>&gt;<i>
+</I>&gt;<i>On 04/12/2013 01:37 AM, Brown, Kevin wrote:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Cowfolk,
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> I am doing something like this to create an #http_req suitable for unit
+</I>&gt;&gt;<i> testing my resource callbacks:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> -define (HTTP_REQ_ENCODERS_PORT_8000, #http_req{host=
+</I>&gt;&gt;<i>&lt;&lt;&quot;www.foo.com&quot;&gt;&gt; ,
+</I>&gt;&gt;<i> port=8000, path= &lt;&lt;&quot;/encoders&quot;&gt;&gt;,transport=ranch_tcp, qs= &lt;&lt;&gt;&gt;,
+</I>&gt;&gt;<i>fragment=
+</I>&gt;&gt;<i> &lt;&lt;&gt;&gt; }).
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Notice that I needed to set the transport to a Cowboy specific atom
+</I>&gt;&gt;<i> because I wanted to get cowboy_req:host_url and cowboy_req:path to work
+</I>&gt;&gt;<i> properly.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> I'm sure there is a method that Cowboy uses internally to populate an
+</I>&gt;&gt;<i> #http_req from a URL that I could use for testing. What might that be?
+</I>&gt;&gt;<i> How else should I be populating this record.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Cheers,
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> -kb
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> On 4/11/13 7:07 PM, &quot;<A HREF="https://lists.ninenines.eu/listinfo/extend">extend-request at lists.ninenines.eu</A>&quot;
+</I>&gt;&gt;<i> &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">extend-request at lists.ninenines.eu</A>&gt; wrote:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Welcome to the <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A> mailing list!
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> To post to this list, send your message to:
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">extend at lists.ninenines.eu</A>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> General information about the mailing list is at:
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> If you ever want to unsubscribe or change your options (eg, switch to
+</I>&gt;&gt;&gt;<i> or from digest mode, change your password, etc.), visit your
+</I>&gt;&gt;&gt;<i> subscription page at:
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> <A HREF="http://lists.ninenines.eu:81/options/extend/kevin.brown%40turner.com">http://lists.ninenines.eu:81/options/extend/kevin.brown%40turner.com</A>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> You can also make such adjustments via email by sending a message to:
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend-request at lists.ninenines.eu</A>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> with the word `help' in the subject or body (don't include the
+</I>&gt;&gt;&gt;<i> quotes), and you will get back a message with instructions.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> You must know your password to change your options (including changing
+</I>&gt;&gt;&gt;<i> the password, itself) or to unsubscribe without confirmation. It is:
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> doofus1
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Normally, Mailman will remind you of your lists.ninenines.eu mailing
+</I>&gt;&gt;&gt;<i> list passwords once every month, although you can disable this if you
+</I>&gt;&gt;&gt;<i> prefer. This reminder will also include instructions on how to
+</I>&gt;&gt;&gt;<i> unsubscribe or change your account options. There is also a button on
+</I>&gt;&gt;&gt;<i> your options page that will email your current password to you.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> _______________________________________________
+</I>&gt;&gt;<i> Extend mailing list
+</I>&gt;&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>--
+</I>&gt;<i>Lo&#239;c Hoguin
+</I>&gt;<i>Erlang Cowboy
+</I>&gt;<i>Nine Nines
+</I>&gt;<i><A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>&gt;<i>
+</I>
+
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000105.html">[99s-extend] populating #http_req for unit testing
+</A></li>
+ <LI>Next message: <A HREF="000107.html">[99s-extend] populating #http_req for unit testing
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#106">[ date ]</a>
+ <a href="thread.html#106">[ thread ]</a>
+ <a href="subject.html#106">[ subject ]</a>
+ <a href="author.html#106">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000107.html b/_build/static/archives/extend/2013-April/000107.html
new file mode 100644
index 00000000..dfdb80fa
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000107.html
@@ -0,0 +1,93 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] populating #http_req for unit testing
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20populating%20%23http_req%20for%20unit%20testing&In-Reply-To=%3CCAKAMJXjXrMs5OR%2BWfHwkmixGAx1UUP4-HyprhTffEjT4yXKBnA%40mail.gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000106.html">
+ <LINK REL="Next" HREF="000108.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] populating #http_req for unit testing</H1>
+ <B>Eduardo Gurgel</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20populating%20%23http_req%20for%20unit%20testing&In-Reply-To=%3CCAKAMJXjXrMs5OR%2BWfHwkmixGAx1UUP4-HyprhTffEjT4yXKBnA%40mail.gmail.com%3E"
+ TITLE="[99s-extend] populating #http_req for unit testing">edgurgel at gmail.com
+ </A><BR>
+ <I>Sat Apr 13 13:12:39 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000106.html">[99s-extend] populating #http_req for unit testing
+</A></li>
+ <LI>Next message: <A HREF="000108.html">[99s-extend] Reading body_qs multiple times
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#107">[ date ]</a>
+ <a href="thread.html#107">[ thread ]</a>
+ <a href="subject.html#107">[ subject ]</a>
+ <a href="author.html#107">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>On Thu, Apr 11, 2013 at 8:37 PM, Brown, Kevin &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">Kevin.Brown at turner.com</A>&gt;wrote:
+
+&gt;<i>
+</I>&gt;<i> Cowfolk,
+</I>&gt;<i>
+</I>&gt;<i> I am doing something like this to create an #http_req suitable for unit
+</I>&gt;<i> testing my resource callbacks:
+</I>&gt;<i>
+</I>
+
+I use the library meck(<A HREF="https://github.com/eproxus/meck">https://github.com/eproxus/meck</A>) to test stuff doing
+something like this:
+
+some_test() -&gt;
+ meck:expect(cowboy_req, binding, 2, {&lt;&lt;&quot;app_key&quot;&gt;&gt;, req} )
+ ?assertEqual({ok, req, empty},
+ websocket_handler:websocket_init(transport, req, opts)),
+ ?assert(meck:validate(cowboy_req)).
+
+I use simple atoms as input and mock the cowboy_req functions to return
+atoms that would represent the correct or the wrong answer.
+
+The real implementation or how cowboy represent stuff is not important
+here, just the output pattern like {Binding, Req}.
+
+That's it
+
+--
+
+Eduardo
+-------------- next part --------------
+An HTML attachment was scrubbed...
+URL: &lt;<A HREF="http://lists.ninenines.eu/archives/extend/attachments/20130413/f1b70800/attachment.html">http://lists.ninenines.eu/archives/extend/attachments/20130413/f1b70800/attachment.html</A>&gt;
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000106.html">[99s-extend] populating #http_req for unit testing
+</A></li>
+ <LI>Next message: <A HREF="000108.html">[99s-extend] Reading body_qs multiple times
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#107">[ date ]</a>
+ <a href="thread.html#107">[ thread ]</a>
+ <a href="subject.html#107">[ subject ]</a>
+ <a href="author.html#107">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000108.html b/_build/static/archives/extend/2013-April/000108.html
new file mode 100644
index 00000000..b5cf96b3
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000108.html
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Reading body_qs multiple times
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Reading%20body_qs%20multiple%20times&In-Reply-To=%3CCAJ0zLRN-62a9P7QhGz5q6qoj4WaWGv_4qzEznzzwb07Hqo-0QQ%40mail.gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000107.html">
+ <LINK REL="Next" HREF="000109.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Reading body_qs multiple times</H1>
+ <B>rambocoder</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Reading%20body_qs%20multiple%20times&In-Reply-To=%3CCAJ0zLRN-62a9P7QhGz5q6qoj4WaWGv_4qzEznzzwb07Hqo-0QQ%40mail.gmail.com%3E"
+ TITLE="[99s-extend] Reading body_qs multiple times">erlang at rambocoder.com
+ </A><BR>
+ <I>Mon Apr 15 22:45:42 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000107.html">[99s-extend] populating #http_req for unit testing
+</A></li>
+ <LI>Next message: <A HREF="000109.html">[99s-extend] Reading body_qs multiple times
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#108">[ date ]</a>
+ <a href="thread.html#108">[ thread ]</a>
+ <a href="subject.html#108">[ subject ]</a>
+ <a href="author.html#108">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Hello group,
+
+I am trying to put together a CSRF middleware
+<A HREF="https://github.com/rambocoder/stable/commit/b26980d292ac42aadfe9921a961436e28cdbb693">https://github.com/rambocoder/stable/commit/b26980d292ac42aadfe9921a961436e28cdbb693</A>
+and
+if the body of the request contains &quot;_csrf&quot; token, I check to make sure it
+matches the csrf token in the session.
+
+Currently I am doing it in middleware using cowboy_req:body_qs/1 however
+when in the handler I need to read another body parameter, such as in the
+rest_pastebin example:
+
+{ok, BodyQs, Req3} = cowboy_req:body_qs(Req),
+Paste = proplists:get_value(&lt;&lt;&quot;paste&quot;&gt;&gt;, BodyQs),
+
+cowboy_req:body_qs/1 returns [] due to the body of the request being
+already read {body_state,done}
+
+Is it pointless to have the type of CSRF middleware that I am writing and
+just do the CSRF in the handler's callback, where I can deal with all the
+body_qs at once?
+
+Thank you,
+
+rambocoder
+-------------- next part --------------
+An HTML attachment was scrubbed...
+URL: &lt;<A HREF="http://lists.ninenines.eu/archives/extend/attachments/20130415/03f35a62/attachment.html">http://lists.ninenines.eu/archives/extend/attachments/20130415/03f35a62/attachment.html</A>&gt;
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000107.html">[99s-extend] populating #http_req for unit testing
+</A></li>
+ <LI>Next message: <A HREF="000109.html">[99s-extend] Reading body_qs multiple times
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#108">[ date ]</a>
+ <a href="thread.html#108">[ thread ]</a>
+ <a href="subject.html#108">[ subject ]</a>
+ <a href="author.html#108">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000109.html b/_build/static/archives/extend/2013-April/000109.html
new file mode 100644
index 00000000..4d048b76
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000109.html
@@ -0,0 +1,104 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Reading body_qs multiple times
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Reading%20body_qs%20multiple%20times&In-Reply-To=%3C516C6773.1000004%40ninenines.eu%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000108.html">
+ <LINK REL="Next" HREF="000110.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Reading body_qs multiple times</H1>
+ <B>Lo&#239;c Hoguin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Reading%20body_qs%20multiple%20times&In-Reply-To=%3C516C6773.1000004%40ninenines.eu%3E"
+ TITLE="[99s-extend] Reading body_qs multiple times">essen at ninenines.eu
+ </A><BR>
+ <I>Mon Apr 15 22:47:47 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000108.html">[99s-extend] Reading body_qs multiple times
+</A></li>
+ <LI>Next message: <A HREF="000110.html">[99s-extend] Reading body_qs multiple times
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#109">[ date ]</a>
+ <a href="thread.html#109">[ thread ]</a>
+ <a href="subject.html#109">[ subject ]</a>
+ <a href="author.html#109">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Why not just put the token in the URL instead? if it's CSRF then it's
+probably used only once and only for POST and the like, so not cached or
+anything.
+
+On 04/15/2013 10:45 PM, rambocoder wrote:
+&gt;<i> Hello group,
+</I>&gt;<i>
+</I>&gt;<i> I am trying to put together a CSRF middleware
+</I>&gt;<i> <A HREF="https://github.com/rambocoder/stable/commit/b26980d292ac42aadfe9921a961436e28cdbb693">https://github.com/rambocoder/stable/commit/b26980d292ac42aadfe9921a961436e28cdbb693</A> and
+</I>&gt;<i> if the body of the request contains &quot;_csrf&quot; token, I check to make sure
+</I>&gt;<i> it matches the csrf token in the session.
+</I>&gt;<i>
+</I>&gt;<i> Currently I am doing it in middleware using cowboy_req:body_qs/1 however
+</I>&gt;<i> when in the handler I need to read another body parameter, such as in
+</I>&gt;<i> the rest_pastebin example:
+</I>&gt;<i>
+</I>&gt;<i> {ok, BodyQs, Req3} = cowboy_req:body_qs(Req),
+</I>&gt;<i> Paste = proplists:get_value(&lt;&lt;&quot;paste&quot;&gt;&gt;, BodyQs),
+</I>&gt;<i>
+</I>&gt;<i> cowboy_req:body_qs/1 returns [] due to the body of the request being
+</I>&gt;<i> already read {body_state,done}
+</I>&gt;<i>
+</I>&gt;<i> Is it pointless to have the type of CSRF middleware that I am writing
+</I>&gt;<i> and just do the CSRF in the handler's callback, where I can deal with
+</I>&gt;<i> all the body_qs at once?
+</I>&gt;<i>
+</I>&gt;<i> Thank you,
+</I>&gt;<i>
+</I>&gt;<i> rambocoder
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> _______________________________________________
+</I>&gt;<i> Extend mailing list
+</I>&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;<i>
+</I>
+
+--
+Lo&#239;c Hoguin
+Erlang Cowboy
+Nine Nines
+<A HREF="http://ninenines.eu">http://ninenines.eu</A>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000108.html">[99s-extend] Reading body_qs multiple times
+</A></li>
+ <LI>Next message: <A HREF="000110.html">[99s-extend] Reading body_qs multiple times
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#109">[ date ]</a>
+ <a href="thread.html#109">[ thread ]</a>
+ <a href="subject.html#109">[ subject ]</a>
+ <a href="author.html#109">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000110.html b/_build/static/archives/extend/2013-April/000110.html
new file mode 100644
index 00000000..7bf621ee
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000110.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Reading body_qs multiple times
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Reading%20body_qs%20multiple%20times&In-Reply-To=%3CCAJ0zLRPYmtXEMd6G78D5Dc9-ebrdRzxyWmVHnzGE%3DYrH%2BhA6fg%40mail.gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000109.html">
+ <LINK REL="Next" HREF="000111.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Reading body_qs multiple times</H1>
+ <B>rambocoder</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Reading%20body_qs%20multiple%20times&In-Reply-To=%3CCAJ0zLRPYmtXEMd6G78D5Dc9-ebrdRzxyWmVHnzGE%3DYrH%2BhA6fg%40mail.gmail.com%3E"
+ TITLE="[99s-extend] Reading body_qs multiple times">erlang at rambocoder.com
+ </A><BR>
+ <I>Tue Apr 16 02:13:44 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000109.html">[99s-extend] Reading body_qs multiple times
+</A></li>
+ <LI>Next message: <A HREF="000111.html">[99s-extend] Reading body_qs multiple times
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#110">[ date ]</a>
+ <a href="thread.html#110">[ thread ]</a>
+ <a href="subject.html#110">[ subject ]</a>
+ <a href="author.html#110">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Loic,
+
+After giving the CSRF middleware some thought and reading
+<A HREF="https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF">https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF</A>)_Prevention_Cheat_Sheet#Disclosure_of_Token_in_URL
+I
+came to conclusion that it is best to just not create the middleware and
+instead deal with CSRF on as needed basis.
+
+I know that node's Connect middleware
+<A HREF="http://www.senchalabs.org/connect/csrf.html#defaultValue">http://www.senchalabs.org/connect/csrf.html#defaultValue</A> for example allows
+for the csrf token to be passed as a query string parameter, however, the
+OWASP article made me think that it is not the most secure approach.
+
+For example, AngularJS <A HREF="http://docs.angularjs.org/api/ng.$http">http://docs.angularjs.org/api/ng.$http</A> has a section
+on how their AJAX component behaves to do CSRF out of the box, and they are
+talking about the server sending a cookie XSRF-TOKEN that is not HttpOnly.
+That makes me realize that csrf is a process more than just slapping some
+middleware into the pipeline.
+
+Btw, I noticed that when the result of the middleware execute function is:
+{error, StatusCode, Req}
+if I set the reply on the request via cowboy_req:reply before returning the
+{error.. , the status code of that reply will be used.
+
+Such as:
+{ok, Req3} = cowboy_req:reply(403, [], &quot;Invalid CSRF Token.&quot;, Req2),
+{error, 500, Req3}; % 500 is ignored, 403 is returned
+
+Is that by design?
+
+Sincerely,
+
+rambocoder
+
+
+
+On Mon, Apr 15, 2013 at 4:47 PM, Lo&#239;c Hoguin &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">essen at ninenines.eu</A>&gt; wrote:
+
+&gt;<i> Why not just put the token in the URL instead? if it's CSRF then it's
+</I>&gt;<i> probably used only once and only for POST and the like, so not cached or
+</I>&gt;<i> anything.
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> On 04/15/2013 10:45 PM, rambocoder wrote:
+</I>&gt;<i>
+</I>&gt;&gt;<i> Hello group,
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> I am trying to put together a CSRF middleware
+</I>&gt;&gt;<i> <A HREF="https://github.com/rambocoder/**stable/commit/**">https://github.com/rambocoder/**stable/commit/**</A>
+</I>&gt;&gt;<i> b26980d292ac42aadfe9921a961436**e28cdbb693&lt;<A HREF="https://github.com/rambocoder/stable/commit/b26980d292ac42aadfe9921a961436e28cdbb693">https://github.com/rambocoder/stable/commit/b26980d292ac42aadfe9921a961436e28cdbb693</A>&gt;and
+</I>&gt;&gt;<i> if the body of the request contains &quot;_csrf&quot; token, I check to make sure
+</I>&gt;&gt;<i> it matches the csrf token in the session.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Currently I am doing it in middleware using cowboy_req:body_qs/1 however
+</I>&gt;&gt;<i> when in the handler I need to read another body parameter, such as in
+</I>&gt;&gt;<i> the rest_pastebin example:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> {ok, BodyQs, Req3} = cowboy_req:body_qs(Req),
+</I>&gt;&gt;<i> Paste = proplists:get_value(&lt;&lt;&quot;paste&quot;&gt;**&gt;, BodyQs),
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> cowboy_req:body_qs/1 returns [] due to the body of the request being
+</I>&gt;&gt;<i> already read {body_state,done}
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Is it pointless to have the type of CSRF middleware that I am writing
+</I>&gt;&gt;<i> and just do the CSRF in the handler's callback, where I can deal with
+</I>&gt;&gt;<i> all the body_qs at once?
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Thank you,
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> rambocoder
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> ______________________________**_________________
+</I>&gt;&gt;<i> Extend mailing list
+</I>&gt;&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;&gt;<i> <A HREF="http://lists.ninenines.eu:81/**listinfo/extend&lt;http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/**listinfo/extend&lt;http://lists.ninenines.eu:81/listinfo/extend</A>&gt;
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> --
+</I>&gt;<i> Lo&#271;c Hoguin
+</I>&gt;<i> Erlang Cowboy
+</I>&gt;<i> Nine Nines
+</I>&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>-------------- next part --------------
+An HTML attachment was scrubbed...
+URL: &lt;<A HREF="http://lists.ninenines.eu/archives/extend/attachments/20130415/59aaeef2/attachment.html">http://lists.ninenines.eu/archives/extend/attachments/20130415/59aaeef2/attachment.html</A>&gt;
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000109.html">[99s-extend] Reading body_qs multiple times
+</A></li>
+ <LI>Next message: <A HREF="000111.html">[99s-extend] Reading body_qs multiple times
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#110">[ date ]</a>
+ <a href="thread.html#110">[ thread ]</a>
+ <a href="subject.html#110">[ subject ]</a>
+ <a href="author.html#110">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000111.html b/_build/static/archives/extend/2013-April/000111.html
new file mode 100644
index 00000000..95e1e1f5
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000111.html
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Reading body_qs multiple times
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Reading%20body_qs%20multiple%20times&In-Reply-To=%3C516D3736.4000106%40ninenines.eu%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000110.html">
+ <LINK REL="Next" HREF="000112.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Reading body_qs multiple times</H1>
+ <B>Lo&#239;c Hoguin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Reading%20body_qs%20multiple%20times&In-Reply-To=%3C516D3736.4000106%40ninenines.eu%3E"
+ TITLE="[99s-extend] Reading body_qs multiple times">essen at ninenines.eu
+ </A><BR>
+ <I>Tue Apr 16 13:34:14 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000110.html">[99s-extend] Reading body_qs multiple times
+</A></li>
+ <LI>Next message: <A HREF="000112.html">[99s-extend] Cowboy CORS
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#111">[ date ]</a>
+ <a href="thread.html#111">[ thread ]</a>
+ <a href="subject.html#111">[ subject ]</a>
+ <a href="author.html#111">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>On 04/16/2013 02:13 AM, rambocoder wrote:
+&gt;<i> Loic,
+</I>&gt;<i>
+</I>&gt;<i> After giving the CSRF middleware some thought and reading
+</I>&gt;<i> <A HREF="https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF">https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF</A>)_Prevention_Cheat_Sheet#Disclosure_of_Token_in_URL I
+</I>&gt;<i> came to conclusion that it is best to just not create the middleware and
+</I>&gt;<i> instead deal with CSRF on as needed basis.
+</I>
+Your link says what I said too, except I probably wasn't explicit enough.
+
+If you have a form that does POST (or PUT or PATCH or DELETE), put the
+token in &quot;&lt;form action=&quot;/path/to/resource?csrf=$TOKEN&quot;&gt;&quot;. The token must
+be only valid once, it must not be reused, not even between different
+forms (each form gets its own token). Since it is not a GET request,
+then you don't have cache or referer issues.
+
+You can still have issues if you allow another site to run JS on yours
+(but you probably shouldn't) or if there is a malevolent proxy (use SSL
+where needed), but these are different issues entirely.
+
+&gt;<i> Btw, I noticed that when the result of the middleware execute function is:
+</I>&gt;<i> {error, StatusCode, Req}
+</I>&gt;<i> if I set the reply on the request via cowboy_req:reply before returning
+</I>&gt;<i> the {error.. , the status code of that reply will be used.
+</I>&gt;<i>
+</I>&gt;<i> Such as:
+</I>&gt;<i> {ok, Req3} = cowboy_req:reply(403, [], &quot;Invalid CSRF Token.&quot;, Req2),
+</I>&gt;<i> {error, 500, Req3}; % 500 is ignored, 403 is returned
+</I>
+Yes, the response was already sent, therefore the second one is ignored.
+
+&gt;<i> Is that by design?
+</I>&gt;<i>
+</I>&gt;<i> Sincerely,
+</I>&gt;<i>
+</I>&gt;<i> rambocoder
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> On Mon, Apr 15, 2013 at 4:47 PM, Lo&#239;c Hoguin &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">essen at ninenines.eu</A>
+</I>&gt;<i> &lt;mailto:<A HREF="https://lists.ninenines.eu/listinfo/extend">essen at ninenines.eu</A>&gt;&gt; wrote:
+</I>&gt;<i>
+</I>&gt;<i> Why not just put the token in the URL instead? if it's CSRF then
+</I>&gt;<i> it's probably used only once and only for POST and the like, so not
+</I>&gt;<i> cached or anything.
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> On 04/15/2013 10:45 PM, rambocoder wrote:
+</I>&gt;<i>
+</I>&gt;<i> Hello group,
+</I>&gt;<i>
+</I>&gt;<i> I am trying to put together a CSRF middleware
+</I>&gt;<i> <A HREF="https://github.com/rambocoder/__stable/commit/__b26980d292ac42aadfe9921a961436__e28cdbb693">https://github.com/rambocoder/__stable/commit/__b26980d292ac42aadfe9921a961436__e28cdbb693</A>
+</I>&gt;<i> &lt;<A HREF="https://github.com/rambocoder/stable/commit/b26980d292ac42aadfe9921a961436e28cdbb693">https://github.com/rambocoder/stable/commit/b26980d292ac42aadfe9921a961436e28cdbb693</A>&gt;
+</I>&gt;<i> and
+</I>&gt;<i> if the body of the request contains &quot;_csrf&quot; token, I check to
+</I>&gt;<i> make sure
+</I>&gt;<i> it matches the csrf token in the session.
+</I>&gt;<i>
+</I>&gt;<i> Currently I am doing it in middleware using cowboy_req:body_qs/1
+</I>&gt;<i> however
+</I>&gt;<i> when in the handler I need to read another body parameter, such
+</I>&gt;<i> as in
+</I>&gt;<i> the rest_pastebin example:
+</I>&gt;<i>
+</I>&gt;<i> {ok, BodyQs, Req3} = cowboy_req:body_qs(Req),
+</I>&gt;<i> Paste = proplists:get_value(&lt;&lt;&quot;paste&quot;&gt;__&gt;, BodyQs),
+</I>&gt;<i>
+</I>&gt;<i> cowboy_req:body_qs/1 returns [] due to the body of the request being
+</I>&gt;<i> already read {body_state,done}
+</I>&gt;<i>
+</I>&gt;<i> Is it pointless to have the type of CSRF middleware that I am
+</I>&gt;<i> writing
+</I>&gt;<i> and just do the CSRF in the handler's callback, where I can deal
+</I>&gt;<i> with
+</I>&gt;<i> all the body_qs at once?
+</I>&gt;<i>
+</I>&gt;<i> Thank you,
+</I>&gt;<i>
+</I>&gt;<i> rambocoder
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> _________________________________________________
+</I>&gt;<i> Extend mailing list
+</I>&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A> &lt;mailto:<A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>&gt;
+</I>&gt;<i> <A HREF="http://lists.ninenines.eu:81/__listinfo/extend">http://lists.ninenines.eu:81/__listinfo/extend</A>
+</I>&gt;<i> &lt;<A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>&gt;
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> --
+</I>&gt;<i> Lo&#271;c Hoguin
+</I>&gt;<i> Erlang Cowboy
+</I>&gt;<i> Nine Nines
+</I>&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>
+
+--
+Lo&#239;c Hoguin
+Erlang Cowboy
+Nine Nines
+<A HREF="http://ninenines.eu">http://ninenines.eu</A>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000110.html">[99s-extend] Reading body_qs multiple times
+</A></li>
+ <LI>Next message: <A HREF="000112.html">[99s-extend] Cowboy CORS
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#111">[ date ]</a>
+ <a href="thread.html#111">[ thread ]</a>
+ <a href="subject.html#111">[ subject ]</a>
+ <a href="author.html#111">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000112.html b/_build/static/archives/extend/2013-April/000112.html
new file mode 100644
index 00000000..d2d82a89
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000112.html
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Cowboy CORS
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Cowboy%20CORS&In-Reply-To=%3C0103B45C-A73C-498E-908D-AA1639D3DEE1%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000111.html">
+ <LINK REL="Next" HREF="000113.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Cowboy CORS</H1>
+ <B>Lee Sylvester</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Cowboy%20CORS&In-Reply-To=%3C0103B45C-A73C-498E-908D-AA1639D3DEE1%40gmail.com%3E"
+ TITLE="[99s-extend] Cowboy CORS">lee.sylvester at gmail.com
+ </A><BR>
+ <I>Fri Apr 19 16:47:09 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000111.html">[99s-extend] Reading body_qs multiple times
+</A></li>
+ <LI>Next message: <A HREF="000113.html">[99s-extend] Cowboy CORS
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#112">[ date ]</a>
+ <a href="thread.html#112">[ thread ]</a>
+ <a href="subject.html#112">[ subject ]</a>
+ <a href="author.html#112">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Hi guys,
+
+So, I thought I had this resolved, as I managed to get it working locally, but across different local domains (test.localhost.com and cowboy.localhost.com). However, now I've deployed my app to a VM, I simply can't get CORS working in Cowboy. Here's the OPTIONS response from Chrome's console:
+
+
+Request URL:<A HREF="http://www.example.com/">http://www.example.com/</A>
+Request Method:OPTIONS
+Status Code:200 OK
+Request Headersview source
+Accept:*/*
+Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
+Accept-Encoding:gzip,deflate,sdch
+Accept-Language:en-US,en;q=0.8
+Access-Control-Request-Headers:origin, method, content-type
+Access-Control-Request-Method:POST
+Connection:keep-alive
+Host:www.example.com
+Origin:<A HREF="http://test.localhost.com:8889">http://test.localhost.com:8889</A>
+Referer:<A HREF="http://test.localhost.com:8889/">http://test.localhost.com:8889/</A>
+User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31
+Response Headersview source
+Access-Control-Allow-Headers:Content-Type, X-Requested-With, Origin, Method
+Access-Control-Allow-Methods:GET, POST, OPTIONS
+Access-Control-Allow-Origin:*
+connection:keep-alive
+content-length:0
+date:Fri, 19 Apr 2013 14:40:00 GMT
+server:Cowboy
+
+And then this is the POST response:
+
+Request URL:<A HREF="http://www.example.com/">http://www.example.com/</A>
+Request Headersview parsed
+POST <A HREF="http://www.example.com/">http://www.example.com/</A> HTTP/1.1
+Origin: <A HREF="http://test.localhost.com:8889">http://test.localhost.com:8889</A>
+Referer: <A HREF="http://test.localhost.com:8889/">http://test.localhost.com:8889/</A>
+method: POST <A HREF="http://www.example.com/">http://www.example.com/</A> HTTP/1.1
+User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31
+content-type: application/x-www-form-urlencoded
+Form Dataview parsed
+data={&quot;Type&quot;:&quot;auth_request&quot;,&quot;Authentication&quot;:&quot;public&quot;,&quot;Authorization&quot;:null,&quot;Domain&quot;:&quot;www.example.com&quot;,&quot;Application&quot;:&quot;test_app&quot;,&quot;Ident&quot;:&quot;lee&quot;}
+
+I am setting {&lt;&lt;&quot;Access-Control-Allow-Origin&quot;&gt;&gt;, &lt;&lt;&quot;*&quot;&gt;&gt;} in the headers param of cowboy_req:reply and the cowboy_req:set_resp_header, but neither seems to be working. Can anyone spot what I might be doing wrong?
+
+The cowboy_req:set_resp_header is happening in the handle&#8230; So
+
+handle(Req, State) -&gt;
+ Reply = case cowboy_req:method(Req) of
+ {&lt;&lt;&quot;POST&quot;&gt;&gt;, Req2} -&gt;
+ Req3 = cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Origin&quot;&gt;&gt;, &lt;&lt;&quot;*&quot;&gt;&gt;, Req2),
+[snip]
+
+
+Thanks,
+Lee
+
+-------------- next part --------------
+An HTML attachment was scrubbed...
+URL: &lt;<A HREF="http://lists.ninenines.eu/archives/extend/attachments/20130419/bf0e8ef9/attachment.html">http://lists.ninenines.eu/archives/extend/attachments/20130419/bf0e8ef9/attachment.html</A>&gt;
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000111.html">[99s-extend] Reading body_qs multiple times
+</A></li>
+ <LI>Next message: <A HREF="000113.html">[99s-extend] Cowboy CORS
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#112">[ date ]</a>
+ <a href="thread.html#112">[ thread ]</a>
+ <a href="subject.html#112">[ subject ]</a>
+ <a href="author.html#112">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000113.html b/_build/static/archives/extend/2013-April/000113.html
new file mode 100644
index 00000000..26913530
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000113.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] Cowboy CORS
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Cowboy%20CORS&In-Reply-To=%3CCD96D43A.4E43%25christopher.phillips%40turner.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000112.html">
+ <LINK REL="Next" HREF="000114.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] Cowboy CORS</H1>
+ <B>Phillips, Christopher</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Cowboy%20CORS&In-Reply-To=%3CCD96D43A.4E43%25christopher.phillips%40turner.com%3E"
+ TITLE="[99s-extend] Cowboy CORS">Christopher.Phillips at turner.com
+ </A><BR>
+ <I>Fri Apr 19 17:08:03 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000112.html">[99s-extend] Cowboy CORS
+</A></li>
+ <LI>Next message: <A HREF="000114.html">[99s-extend] 505 error
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#113">[ date ]</a>
+ <a href="thread.html#113">[ thread ]</a>
+ <a href="subject.html#113">[ subject ]</a>
+ <a href="author.html#113">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE> When querying to the VM from a browser, is Chrome complaining that it's a cross domain request in the console? Or something else?
+
+ Is the OPTIONS request firing and failing, or is it the POST that is failing (in the network tab)?
+
+ If it's working in a cross origin context for you locally across different domains (I.e., the browser is sending the CORS headers on the request, and you're seeing the right headers on the response, and the browser is handling them properly, such that you can retrieve the response from your Javascript), then it seems unlikely to be a CORS issue, but maybe a config or proxy or code issue in your handler.
+
+
+From: Lee Sylvester &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&lt;mailto:<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt;&gt;
+Date: Friday, April 19, 2013 10:47 AM
+To: &quot;<A HREF="https://lists.ninenines.eu/listinfo/extend">extend at lists.ninenines.eu</A>&lt;mailto:<A HREF="https://lists.ninenines.eu/listinfo/extend">extend at lists.ninenines.eu</A>&gt;&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">extend at lists.ninenines.eu</A>&lt;mailto:<A HREF="https://lists.ninenines.eu/listinfo/extend">extend at lists.ninenines.eu</A>&gt;&gt;
+Subject: [99s-extend] Cowboy CORS
+
+Hi guys,
+
+So, I thought I had this resolved, as I managed to get it working locally, but across different local domains (test.localhost.com&lt;<A HREF="http://test.localhost.com">http://test.localhost.com</A>&gt; and cowboy.localhost.com&lt;<A HREF="http://cowboy.localhost.com">http://cowboy.localhost.com</A>&gt;). However, now I've deployed my app to a VM, I simply can't get CORS working in Cowboy. Here's the OPTIONS response from Chrome's console:
+
+
+
+ 1.
+Request URL:
+<A HREF="http://www.example.com/">http://www.example.com/</A>
+ 2.
+Request Method:
+OPTIONS
+ 3.
+Status Code:
+200 OK
+ 4. Request Headersview source
+ *
+Accept:
+*/*
+ *
+Accept-Charset:
+ISO-8859-1,utf-8;q=0.7,*;q=0.3
+ *
+Accept-Encoding:
+gzip,deflate,sdch
+ *
+Accept-Language:
+en-US,en;q=0.8
+ *
+Access-Control-Request-Headers:
+origin, method, content-type
+ *
+Access-Control-Request-Method:
+POST
+ *
+Connection:
+keep-alive
+ *
+Host:
+www.example.com&lt;<A HREF="http://www.example.com">http://www.example.com</A>&gt;
+ *
+Origin:
+<A HREF="http://test.localhost.com:8889">http://test.localhost.com:8889</A>
+ *
+Referer:
+<A HREF="http://test.localhost.com:8889/">http://test.localhost.com:8889/</A>
+ *
+User-Agent:
+Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31
+ 5. Response Headersview source
+ *
+Access-Control-Allow-Headers:
+Content-Type, X-Requested-With, Origin, Method
+ *
+Access-Control-Allow-Methods:
+GET, POST, OPTIONS
+ *
+Access-Control-Allow-Origin:
+*
+ *
+connection:
+keep-alive
+ *
+content-length:
+0
+ *
+date:
+Fri, 19 Apr 2013 14:40:00 GMT
+ *
+server:
+Cowboy
+
+And then this is the POST response:
+
+
+ 1.
+Request URL:
+<A HREF="http://www.example.com/">http://www.example.com/</A>
+ 2. Request Headersview parsed
+ * POST <A HREF="http://www.example.com/">http://www.example.com/</A> HTTP/1.1 Origin: <A HREF="http://test.localhost.com:8889">http://test.localhost.com:8889</A> Referer: <A HREF="http://test.localhost.com:8889/">http://test.localhost.com:8889/</A> method: POST <A HREF="http://www.example.com/">http://www.example.com/</A> HTTP/1.1 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31 content-type: application/x-www-form-urlencoded
+ 3. Form Dataview parsed
+ * data={&quot;Type&quot;:&quot;auth_request&quot;,&quot;Authentication&quot;:&quot;public&quot;,&quot;Authorization&quot;:null,&quot;Domain&quot;:&quot;www.example.com&lt;<A HREF="http://www.example.com">http://www.example.com</A>&gt;&quot;,&quot;Application&quot;:&quot;test_app&quot;,&quot;Ident&quot;:&quot;lee&quot;}
+
+I am setting {&lt;&lt;&quot;Access-Control-Allow-Origin&quot;&gt;&gt;, &lt;&lt;&quot;*&quot;&gt;&gt;} in the headers param of cowboy_req:reply and the cowboy_req:set_resp_header, but neither seems to be working. Can anyone spot what I might be doing wrong?
+
+The cowboy_req:set_resp_header is happening in the handle&#8230; So
+
+handle(Req, State) -&gt;
+Reply = case cowboy_req:method(Req) of
+{&lt;&lt;&quot;POST&quot;&gt;&gt;, Req2} -&gt;
+Req3 = cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Origin&quot;&gt;&gt;, &lt;&lt;&quot;*&quot;&gt;&gt;, Req2),
+[snip]
+
+
+Thanks,
+Lee
+
+-------------- next part --------------
+An HTML attachment was scrubbed...
+URL: &lt;<A HREF="http://lists.ninenines.eu/archives/extend/attachments/20130419/383515dd/attachment.html">http://lists.ninenines.eu/archives/extend/attachments/20130419/383515dd/attachment.html</A>&gt;
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000112.html">[99s-extend] Cowboy CORS
+</A></li>
+ <LI>Next message: <A HREF="000114.html">[99s-extend] 505 error
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#113">[ date ]</a>
+ <a href="thread.html#113">[ thread ]</a>
+ <a href="subject.html#113">[ subject ]</a>
+ <a href="author.html#113">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000114.html b/_build/static/archives/extend/2013-April/000114.html
new file mode 100644
index 00000000..9f107a90
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000114.html
@@ -0,0 +1,98 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] 505 error
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20505%20error&In-Reply-To=%3C7E836341-BC4B-4575-AAFC-9F610A5610AE%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000113.html">
+ <LINK REL="Next" HREF="000115.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] 505 error</H1>
+ <B>Lee Sylvester</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20505%20error&In-Reply-To=%3C7E836341-BC4B-4575-AAFC-9F610A5610AE%40gmail.com%3E"
+ TITLE="[99s-extend] 505 error">lee.sylvester at gmail.com
+ </A><BR>
+ <I>Mon Apr 22 14:59:54 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000113.html">[99s-extend] Cowboy CORS
+</A></li>
+ <LI>Next message: <A HREF="000115.html">[99s-extend] 505 error
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#114">[ date ]</a>
+ <a href="thread.html#114">[ thread ]</a>
+ <a href="subject.html#114">[ subject ]</a>
+ <a href="author.html#114">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Hi guys,
+
+So, I was getting a CORS issue when connecting to my Bullet impl, which I have since fixed. I am now able to use these from many machines from many locations. However, I have found some machines to be getting a 505 error when making a POST request to the Cowboy instance:
+
+Request URL:<A HREF="http://www.example.com">http://www.example.com</A>
+Request Method:OPTIONS
+Status Code:505 HTTP Version Not Supported
+Request Headersview source
+Accept:*/*
+Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
+Accept-Encoding:gzip,deflate,sdch
+Accept-Language:en-US,en;q=0.8
+Access-Control-Request-Headers:origin, method, content-type
+Access-Control-Request-Method:POST
+Connection:keep-alive
+Host:www.example.com
+Origin:<A HREF="http://www.test.com">http://www.test.com</A>
+Referer:<A HREF="http://www.test.com/">http://www.test.com/</A>
+User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
+Response Headersview source
+connection:close
+content-length:0
+date:Mon, 22 Apr 2013 12:22:50 GMT
+server:Cowboy
+
+To get around the CORS issue, I set up an onrequest hook, which points to the function:
+
+set_request_cors(Req) -&gt;
+ Req2 = cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Methods&quot;&gt;&gt;, &lt;&lt;&quot;GET, POST, OPTIONS&quot;&gt;&gt;, Req),
+ Req3 = cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Headers&quot;&gt;&gt;, &lt;&lt;&quot;Content-Type, X-Requested-With, Origin, Method&quot;&gt;&gt;, Req2),
+ cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Origin&quot;&gt;&gt;, &lt;&lt;&quot;*&quot;&gt;&gt;, Req3).
+
+I'm afraid I don't have any more info, but this issue is completely eluding me.
+
+Thanks,
+Lee
+
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000113.html">[99s-extend] Cowboy CORS
+</A></li>
+ <LI>Next message: <A HREF="000115.html">[99s-extend] 505 error
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#114">[ date ]</a>
+ <a href="thread.html#114">[ thread ]</a>
+ <a href="subject.html#114">[ subject ]</a>
+ <a href="author.html#114">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000115.html b/_build/static/archives/extend/2013-April/000115.html
new file mode 100644
index 00000000..e6e5ba97
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000115.html
@@ -0,0 +1,110 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] 505 error
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20505%20error&In-Reply-To=%3C74D3D8EB-2285-47F5-9BD9-BED2021BE79A%40turner.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000114.html">
+ <LINK REL="Next" HREF="000116.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] 505 error</H1>
+ <B>Brown, Kevin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20505%20error&In-Reply-To=%3C74D3D8EB-2285-47F5-9BD9-BED2021BE79A%40turner.com%3E"
+ TITLE="[99s-extend] 505 error">Kevin.Brown at turner.com
+ </A><BR>
+ <I>Mon Apr 22 16:28:11 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000114.html">[99s-extend] 505 error
+</A></li>
+ <LI>Next message: <A HREF="000116.html">[99s-extend] 505 error
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#115">[ date ]</a>
+ <a href="thread.html#115">[ thread ]</a>
+ <a href="subject.html#115">[ subject ]</a>
+ <a href="author.html#115">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>What is the exact http request sent on the failing and successful machines? How do the differ?
+
+Stack trace?
+
+On Apr 22, 2013, at 9:00 AM, &quot;Lee Sylvester&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt; wrote:
+
+&gt;<i> Hi guys,
+</I>&gt;<i>
+</I>&gt;<i> So, I was getting a CORS issue when connecting to my Bullet impl, which I have since fixed. I am now able to use these from many machines from many locations. However, I have found some machines to be getting a 505 error when making a POST request to the Cowboy instance:
+</I>&gt;<i>
+</I>&gt;<i> Request URL:<A HREF="http://www.example.com">http://www.example.com</A>
+</I>&gt;<i> Request Method:OPTIONS
+</I>&gt;<i> Status Code:505 HTTP Version Not Supported
+</I>&gt;<i> Request Headersview source
+</I>&gt;<i> Accept:*/*
+</I>&gt;<i> Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
+</I>&gt;<i> Accept-Encoding:gzip,deflate,sdch
+</I>&gt;<i> Accept-Language:en-US,en;q=0.8
+</I>&gt;<i> Access-Control-Request-Headers:origin, method, content-type
+</I>&gt;<i> Access-Control-Request-Method:POST
+</I>&gt;<i> Connection:keep-alive
+</I>&gt;<i> Host:www.example.com
+</I>&gt;<i> Origin:<A HREF="http://www.test.com">http://www.test.com</A>
+</I>&gt;<i> Referer:<A HREF="http://www.test.com/">http://www.test.com/</A>
+</I>&gt;<i> User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
+</I>&gt;<i> Response Headersview source
+</I>&gt;<i> connection:close
+</I>&gt;<i> content-length:0
+</I>&gt;<i> date:Mon, 22 Apr 2013 12:22:50 GMT
+</I>&gt;<i> server:Cowboy
+</I>&gt;<i>
+</I>&gt;<i> To get around the CORS issue, I set up an onrequest hook, which points to the function:
+</I>&gt;<i>
+</I>&gt;<i> set_request_cors(Req) -&gt;
+</I>&gt;<i> Req2 = cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Methods&quot;&gt;&gt;, &lt;&lt;&quot;GET, POST, OPTIONS&quot;&gt;&gt;, Req),
+</I>&gt;<i> Req3 = cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Headers&quot;&gt;&gt;, &lt;&lt;&quot;Content-Type, X-Requested-With, Origin, Method&quot;&gt;&gt;, Req2),
+</I>&gt;<i> cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Origin&quot;&gt;&gt;, &lt;&lt;&quot;*&quot;&gt;&gt;, Req3).
+</I>&gt;<i>
+</I>&gt;<i> I'm afraid I don't have any more info, but this issue is completely eluding me.
+</I>&gt;<i>
+</I>&gt;<i> Thanks,
+</I>&gt;<i> Lee
+</I>&gt;<i>
+</I>&gt;<i> _______________________________________________
+</I>&gt;<i> Extend mailing list
+</I>&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;<i>
+</I>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000114.html">[99s-extend] 505 error
+</A></li>
+ <LI>Next message: <A HREF="000116.html">[99s-extend] 505 error
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#115">[ date ]</a>
+ <a href="thread.html#115">[ thread ]</a>
+ <a href="subject.html#115">[ subject ]</a>
+ <a href="author.html#115">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000116.html b/_build/static/archives/extend/2013-April/000116.html
new file mode 100644
index 00000000..0375b7de
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000116.html
@@ -0,0 +1,151 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] 505 error
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20505%20error&In-Reply-To=%3C8D420762-BBE6-48AC-81C9-56FED6EDA3F2%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000115.html">
+ <LINK REL="Next" HREF="000117.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] 505 error</H1>
+ <B>Lee Sylvester</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20505%20error&In-Reply-To=%3C8D420762-BBE6-48AC-81C9-56FED6EDA3F2%40gmail.com%3E"
+ TITLE="[99s-extend] 505 error">lee.sylvester at gmail.com
+ </A><BR>
+ <I>Mon Apr 22 16:40:19 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000115.html">[99s-extend] 505 error
+</A></li>
+ <LI>Next message: <A HREF="000117.html">[99s-extend] 505 error
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#116">[ date ]</a>
+ <a href="thread.html#116">[ thread ]</a>
+ <a href="subject.html#116">[ subject ]</a>
+ <a href="author.html#116">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Well, the below is the sent and return headers on the failing machine. On a succeeding machine, the headers are
+
+Request URL:<A HREF="http://www.example.com">http://www.example.com</A>
+Request Method:OPTIONS
+Status Code:200 OK
+
+Request Headersview source
+Accept:*/*
+Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
+Accept-Encoding:gzip,deflate,sdch
+Accept-Language:en-US,en;q=0.8
+Access-Control-Request-Headers:origin, method, content-type
+Access-Control-Request-Method:POST
+Connection:keep-alive
+Host:www.example.com
+Origin:<A HREF="http://www.test.com">http://www.test.com</A>
+Referer:<A HREF="http://www.test.com/">http://www.test.com/</A>
+User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31
+
+Response Headersview source
+Access-Control-Allow-Headers:Content-Type, X-Requested-With, Origin, Method
+Access-Control-Allow-Methods:GET, POST, OPTIONS
+Access-Control-Allow-Origin:*
+connection:keep-alive
+content-length:68
+date:Mon, 22 Apr 2013 14:33:30 GMT
+server:Cowboy
+
+As you can see, the header control and content isn't being sent back and the connection is closed.
+
+Thanks,
+Lee
+
+
+
+
+On 22 Apr 2013, at 15:28, &quot;Brown, Kevin&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">Kevin.Brown at turner.com</A>&gt; wrote:
+
+&gt;<i> What is the exact http request sent on the failing and successful machines? How do the differ?
+</I>&gt;<i>
+</I>&gt;<i> Stack trace?
+</I>&gt;<i>
+</I>&gt;<i> On Apr 22, 2013, at 9:00 AM, &quot;Lee Sylvester&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt; wrote:
+</I>&gt;<i>
+</I>&gt;&gt;<i> Hi guys,
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> So, I was getting a CORS issue when connecting to my Bullet impl, which I have since fixed. I am now able to use these from many machines from many locations. However, I have found some machines to be getting a 505 error when making a POST request to the Cowboy instance:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Request URL:<A HREF="http://www.example.com">http://www.example.com</A>
+</I>&gt;&gt;<i> Request Method:OPTIONS
+</I>&gt;&gt;<i> Status Code:505 HTTP Version Not Supported
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Request Headersview source
+</I>&gt;&gt;<i> Accept:*/*
+</I>&gt;&gt;<i> Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
+</I>&gt;&gt;<i> Accept-Encoding:gzip,deflate,sdch
+</I>&gt;&gt;<i> Accept-Language:en-US,en;q=0.8
+</I>&gt;&gt;<i> Access-Control-Request-Headers:origin, method, content-type
+</I>&gt;&gt;<i> Access-Control-Request-Method:POST
+</I>&gt;&gt;<i> Connection:keep-alive
+</I>&gt;&gt;<i> Host:www.example.com
+</I>&gt;&gt;<i> Origin:<A HREF="http://www.test.com">http://www.test.com</A>
+</I>&gt;&gt;<i> Referer:<A HREF="http://www.test.com/">http://www.test.com/</A>
+</I>&gt;&gt;<i> User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Response Headersview source
+</I>&gt;&gt;<i> connection:close
+</I>&gt;&gt;<i> content-length:0
+</I>&gt;&gt;<i> date:Mon, 22 Apr 2013 12:22:50 GMT
+</I>&gt;&gt;<i> server:Cowboy
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> To get around the CORS issue, I set up an onrequest hook, which points to the function:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> set_request_cors(Req) -&gt;
+</I>&gt;&gt;<i> Req2 = cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Methods&quot;&gt;&gt;, &lt;&lt;&quot;GET, POST, OPTIONS&quot;&gt;&gt;, Req),
+</I>&gt;&gt;<i> Req3 = cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Headers&quot;&gt;&gt;, &lt;&lt;&quot;Content-Type, X-Requested-With, Origin, Method&quot;&gt;&gt;, Req2),
+</I>&gt;&gt;<i> cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Origin&quot;&gt;&gt;, &lt;&lt;&quot;*&quot;&gt;&gt;, Req3).
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> I'm afraid I don't have any more info, but this issue is completely eluding me.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Thanks,
+</I>&gt;&gt;<i> Lee
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> _______________________________________________
+</I>&gt;&gt;<i> Extend mailing list
+</I>&gt;&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;&gt;<i>
+</I>&gt;<i>
+</I>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000115.html">[99s-extend] 505 error
+</A></li>
+ <LI>Next message: <A HREF="000117.html">[99s-extend] 505 error
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#116">[ date ]</a>
+ <a href="thread.html#116">[ thread ]</a>
+ <a href="subject.html#116">[ subject ]</a>
+ <a href="author.html#116">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000117.html b/_build/static/archives/extend/2013-April/000117.html
new file mode 100644
index 00000000..12ba1f47
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000117.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] 505 error
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20505%20error&In-Reply-To=%3C51755D08.2070006%40ninenines.eu%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000116.html">
+ <LINK REL="Next" HREF="000118.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] 505 error</H1>
+ <B>Lo&#239;c Hoguin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20505%20error&In-Reply-To=%3C51755D08.2070006%40ninenines.eu%3E"
+ TITLE="[99s-extend] 505 error">essen at ninenines.eu
+ </A><BR>
+ <I>Mon Apr 22 17:53:44 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000116.html">[99s-extend] 505 error
+</A></li>
+ <LI>Next message: <A HREF="000118.html">[99s-extend] 505 error
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#117">[ date ]</a>
+ <a href="thread.html#117">[ thread ]</a>
+ <a href="subject.html#117">[ subject ]</a>
+ <a href="author.html#117">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Headers are one thing but it'd be useful to know the request line itself.
+
+On 04/22/2013 04:40 PM, Lee Sylvester wrote:
+&gt;<i> Well, the below is the sent and return headers on the failing machine. On a succeeding machine, the headers are
+</I>&gt;<i>
+</I>&gt;<i> Request URL:<A HREF="http://www.example.com">http://www.example.com</A>
+</I>&gt;<i> Request Method:OPTIONS
+</I>&gt;<i> Status Code:200 OK
+</I>&gt;<i>
+</I>&gt;<i> Request Headersview source
+</I>&gt;<i> Accept:*/*
+</I>&gt;<i> Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
+</I>&gt;<i> Accept-Encoding:gzip,deflate,sdch
+</I>&gt;<i> Accept-Language:en-US,en;q=0.8
+</I>&gt;<i> Access-Control-Request-Headers:origin, method, content-type
+</I>&gt;<i> Access-Control-Request-Method:POST
+</I>&gt;<i> Connection:keep-alive
+</I>&gt;<i> Host:www.example.com
+</I>&gt;<i> Origin:<A HREF="http://www.test.com">http://www.test.com</A>
+</I>&gt;<i> Referer:<A HREF="http://www.test.com/">http://www.test.com/</A>
+</I>&gt;<i> User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31
+</I>&gt;<i>
+</I>&gt;<i> Response Headersview source
+</I>&gt;<i> Access-Control-Allow-Headers:Content-Type, X-Requested-With, Origin, Method
+</I>&gt;<i> Access-Control-Allow-Methods:GET, POST, OPTIONS
+</I>&gt;<i> Access-Control-Allow-Origin:*
+</I>&gt;<i> connection:keep-alive
+</I>&gt;<i> content-length:68
+</I>&gt;<i> date:Mon, 22 Apr 2013 14:33:30 GMT
+</I>&gt;<i> server:Cowboy
+</I>&gt;<i>
+</I>&gt;<i> As you can see, the header control and content isn't being sent back and the connection is closed.
+</I>&gt;<i>
+</I>&gt;<i> Thanks,
+</I>&gt;<i> Lee
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> On 22 Apr 2013, at 15:28, &quot;Brown, Kevin&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">Kevin.Brown at turner.com</A>&gt; wrote:
+</I>&gt;<i>
+</I>&gt;&gt;<i> What is the exact http request sent on the failing and successful machines? How do the differ?
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Stack trace?
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> On Apr 22, 2013, at 9:00 AM, &quot;Lee Sylvester&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt; wrote:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Hi guys,
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> So, I was getting a CORS issue when connecting to my Bullet impl, which I have since fixed. I am now able to use these from many machines from many locations. However, I have found some machines to be getting a 505 error when making a POST request to the Cowboy instance:
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Request URL:<A HREF="http://www.example.com">http://www.example.com</A>
+</I>&gt;&gt;&gt;<i> Request Method:OPTIONS
+</I>&gt;&gt;&gt;<i> Status Code:505 HTTP Version Not Supported
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Request Headersview source
+</I>&gt;&gt;&gt;<i> Accept:*/*
+</I>&gt;&gt;&gt;<i> Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
+</I>&gt;&gt;&gt;<i> Accept-Encoding:gzip,deflate,sdch
+</I>&gt;&gt;&gt;<i> Accept-Language:en-US,en;q=0.8
+</I>&gt;&gt;&gt;<i> Access-Control-Request-Headers:origin, method, content-type
+</I>&gt;&gt;&gt;<i> Access-Control-Request-Method:POST
+</I>&gt;&gt;&gt;<i> Connection:keep-alive
+</I>&gt;&gt;&gt;<i> Host:www.example.com
+</I>&gt;&gt;&gt;<i> Origin:<A HREF="http://www.test.com">http://www.test.com</A>
+</I>&gt;&gt;&gt;<i> Referer:<A HREF="http://www.test.com/">http://www.test.com/</A>
+</I>&gt;&gt;&gt;<i> User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Response Headersview source
+</I>&gt;&gt;&gt;<i> connection:close
+</I>&gt;&gt;&gt;<i> content-length:0
+</I>&gt;&gt;&gt;<i> date:Mon, 22 Apr 2013 12:22:50 GMT
+</I>&gt;&gt;&gt;<i> server:Cowboy
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> To get around the CORS issue, I set up an onrequest hook, which points to the function:
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> set_request_cors(Req) -&gt;
+</I>&gt;&gt;&gt;<i> Req2 = cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Methods&quot;&gt;&gt;, &lt;&lt;&quot;GET, POST, OPTIONS&quot;&gt;&gt;, Req),
+</I>&gt;&gt;&gt;<i> Req3 = cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Headers&quot;&gt;&gt;, &lt;&lt;&quot;Content-Type, X-Requested-With, Origin, Method&quot;&gt;&gt;, Req2),
+</I>&gt;&gt;&gt;<i> cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Origin&quot;&gt;&gt;, &lt;&lt;&quot;*&quot;&gt;&gt;, Req3).
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> I'm afraid I don't have any more info, but this issue is completely eluding me.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Thanks,
+</I>&gt;&gt;&gt;<i> Lee
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> _______________________________________________
+</I>&gt;&gt;&gt;<i> Extend mailing list
+</I>&gt;&gt;&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;&gt;&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> _______________________________________________
+</I>&gt;<i> Extend mailing list
+</I>&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;<i>
+</I>
+
+--
+Lo&#239;c Hoguin
+Erlang Cowboy
+Nine Nines
+<A HREF="http://ninenines.eu">http://ninenines.eu</A>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000116.html">[99s-extend] 505 error
+</A></li>
+ <LI>Next message: <A HREF="000118.html">[99s-extend] 505 error
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#117">[ date ]</a>
+ <a href="thread.html#117">[ thread ]</a>
+ <a href="subject.html#117">[ subject ]</a>
+ <a href="author.html#117">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000118.html b/_build/static/archives/extend/2013-April/000118.html
new file mode 100644
index 00000000..b9a0d0b2
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000118.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] 505 error
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20505%20error&In-Reply-To=%3CCD9AD247.AB02%25kevin.brown%40turner.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000117.html">
+ <LINK REL="Next" HREF="000119.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] 505 error</H1>
+ <B>Brown, Kevin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20505%20error&In-Reply-To=%3CCD9AD247.AB02%25kevin.brown%40turner.com%3E"
+ TITLE="[99s-extend] 505 error">Kevin.Brown at turner.com
+ </A><BR>
+ <I>Mon Apr 22 17:55:11 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000117.html">[99s-extend] 505 error
+</A></li>
+ <LI>Next message: <A HREF="000119.html">[99s-extend] 505 error
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#118">[ date ]</a>
+ <a href="thread.html#118">[ thread ]</a>
+ <a href="subject.html#118">[ subject ]</a>
+ <a href="author.html#118">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>You might see if &quot;view source&quot; (rather than the parsed view you sent)
+yields any clues. You'd like to see HTTP version being sent.
+
+
+On 4/22/13 10:40 AM, &quot;Lee Sylvester&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt; wrote:
+
+&gt;<i>Well, the below is the sent and return headers on the failing machine.
+</I>&gt;<i>On a succeeding machine, the headers are
+</I>&gt;<i>
+</I>&gt;<i>Request URL:<A HREF="http://www.example.com">http://www.example.com</A>
+</I>&gt;<i>Request Method:OPTIONS
+</I>&gt;<i>Status Code:200 OK
+</I>&gt;<i>
+</I>&gt;<i>Request Headersview source
+</I>&gt;<i>Accept:*/*
+</I>&gt;<i>Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
+</I>&gt;<i>Accept-Encoding:gzip,deflate,sdch
+</I>&gt;<i>Accept-Language:en-US,en;q=0.8
+</I>&gt;<i>Access-Control-Request-Headers:origin, method, content-type
+</I>&gt;<i>Access-Control-Request-Method:POST
+</I>&gt;<i>Connection:keep-alive
+</I>&gt;<i>Host:www.example.com
+</I>&gt;<i>Origin:<A HREF="http://www.test.com">http://www.test.com</A>
+</I>&gt;<i>Referer:<A HREF="http://www.test.com/">http://www.test.com/</A>
+</I>&gt;<i>User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3)
+</I>&gt;<i>AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31
+</I>&gt;<i>
+</I>&gt;<i>Response Headersview source
+</I>&gt;<i>Access-Control-Allow-Headers:Content-Type, X-Requested-With, Origin,
+</I>&gt;<i>Method
+</I>&gt;<i>Access-Control-Allow-Methods:GET, POST, OPTIONS
+</I>&gt;<i>Access-Control-Allow-Origin:*
+</I>&gt;<i>connection:keep-alive
+</I>&gt;<i>content-length:68
+</I>&gt;<i>date:Mon, 22 Apr 2013 14:33:30 GMT
+</I>&gt;<i>server:Cowboy
+</I>&gt;<i>
+</I>&gt;<i>As you can see, the header control and content isn't being sent back and
+</I>&gt;<i>the connection is closed.
+</I>&gt;<i>
+</I>&gt;<i>Thanks,
+</I>&gt;<i>Lee
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>On 22 Apr 2013, at 15:28, &quot;Brown, Kevin&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">Kevin.Brown at turner.com</A>&gt; wrote:
+</I>&gt;<i>
+</I>&gt;&gt;<i> What is the exact http request sent on the failing and successful
+</I>&gt;&gt;<i>machines? How do the differ?
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Stack trace?
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> On Apr 22, 2013, at 9:00 AM, &quot;Lee Sylvester&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt;
+</I>&gt;&gt;<i>wrote:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Hi guys,
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> So, I was getting a CORS issue when connecting to my Bullet impl,
+</I>&gt;&gt;&gt;<i>which I have since fixed. I am now able to use these from many
+</I>&gt;&gt;&gt;<i>machines from many locations. However, I have found some machines to
+</I>&gt;&gt;&gt;<i>be getting a 505 error when making a POST request to the Cowboy
+</I>&gt;&gt;&gt;<i>instance:
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Request URL:<A HREF="http://www.example.com">http://www.example.com</A>
+</I>&gt;&gt;&gt;<i> Request Method:OPTIONS
+</I>&gt;&gt;&gt;<i> Status Code:505 HTTP Version Not Supported
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Request Headersview source
+</I>&gt;&gt;&gt;<i> Accept:*/*
+</I>&gt;&gt;&gt;<i> Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
+</I>&gt;&gt;&gt;<i> Accept-Encoding:gzip,deflate,sdch
+</I>&gt;&gt;&gt;<i> Accept-Language:en-US,en;q=0.8
+</I>&gt;&gt;&gt;<i> Access-Control-Request-Headers:origin, method, content-type
+</I>&gt;&gt;&gt;<i> Access-Control-Request-Method:POST
+</I>&gt;&gt;&gt;<i> Connection:keep-alive
+</I>&gt;&gt;&gt;<i> Host:www.example.com
+</I>&gt;&gt;&gt;<i> Origin:<A HREF="http://www.test.com">http://www.test.com</A>
+</I>&gt;&gt;&gt;<i> Referer:<A HREF="http://www.test.com/">http://www.test.com/</A>
+</I>&gt;&gt;&gt;<i> User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31
+</I>&gt;&gt;&gt;<i>(KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Response Headersview source
+</I>&gt;&gt;&gt;<i> connection:close
+</I>&gt;&gt;&gt;<i> content-length:0
+</I>&gt;&gt;&gt;<i> date:Mon, 22 Apr 2013 12:22:50 GMT
+</I>&gt;&gt;&gt;<i> server:Cowboy
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> To get around the CORS issue, I set up an onrequest hook, which points
+</I>&gt;&gt;&gt;<i>to the function:
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> set_request_cors(Req) -&gt;
+</I>&gt;&gt;&gt;<i> Req2 =
+</I>&gt;&gt;&gt;<i>cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Methods&quot;&gt;&gt;, &lt;&lt;&quot;GET,
+</I>&gt;&gt;&gt;<i>POST, OPTIONS&quot;&gt;&gt;, Req),
+</I>&gt;&gt;&gt;<i> Req3 =
+</I>&gt;&gt;&gt;<i>cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Headers&quot;&gt;&gt;,
+</I>&gt;&gt;&gt;<i>&lt;&lt;&quot;Content-Type, X-Requested-With, Origin, Method&quot;&gt;&gt;, Req2),
+</I>&gt;&gt;&gt;<i> cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Origin&quot;&gt;&gt;,
+</I>&gt;&gt;&gt;<i>&lt;&lt;&quot;*&quot;&gt;&gt;, Req3).
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> I'm afraid I don't have any more info, but this issue is completely
+</I>&gt;&gt;&gt;<i>eluding me.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Thanks,
+</I>&gt;&gt;&gt;<i> Lee
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> _______________________________________________
+</I>&gt;&gt;&gt;<i> Extend mailing list
+</I>&gt;&gt;&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;&gt;&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>
+
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000117.html">[99s-extend] 505 error
+</A></li>
+ <LI>Next message: <A HREF="000119.html">[99s-extend] 505 error
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#118">[ date ]</a>
+ <a href="thread.html#118">[ thread ]</a>
+ <a href="subject.html#118">[ subject ]</a>
+ <a href="author.html#118">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000119.html b/_build/static/archives/extend/2013-April/000119.html
new file mode 100644
index 00000000..0f58a6e7
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000119.html
@@ -0,0 +1,212 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] 505 error
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20505%20error&In-Reply-To=%3C5826B1C1-C80E-4073-953C-3BF74829CE1A%40gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000118.html">
+ <LINK REL="Next" HREF="000120.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] 505 error</H1>
+ <B>Lee Sylvester</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20505%20error&In-Reply-To=%3C5826B1C1-C80E-4073-953C-3BF74829CE1A%40gmail.com%3E"
+ TITLE="[99s-extend] 505 error">lee.sylvester at gmail.com
+ </A><BR>
+ <I>Mon Apr 22 20:30:08 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000118.html">[99s-extend] 505 error
+</A></li>
+ <LI>Next message: <A HREF="000120.html">[99s-extend] 505 error
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#119">[ date ]</a>
+ <a href="thread.html#119">[ thread ]</a>
+ <a href="subject.html#119">[ subject ]</a>
+ <a href="author.html#119">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Does this help?
+
+Request URL:<A HREF="http://www.example.com">http://www.example.com</A>
+Request Method:OPTIONS
+Status Code:505 HTTP Version Not Supported
+
+Request Headersview parsed
+OPTIONS <A HREF="http://www.example.com">http://www.example.com</A> HTTP/1.1
+Host: www.example.com
+Proxy-Connection: keep-alive
+Access-Control-Request-Method: POST
+Origin: <A HREF="http://localhost">http://localhost</A>
+User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
+Access-Control-Request-Headers: origin, method, content-type
+Accept: */*
+Referer: <A HREF="http://localhost/p/">http://localhost/p/</A>
+Accept-Encoding: gzip,deflate,sdch
+Accept-Language: en-US,en;q=0.8
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
+
+Response Headersview parsed
+HTTP/1.1 505 HTTP Version Not Supported
+connection: close
+server: Cowboy
+date: Mon, 22 Apr 2013 17:42:39 GMT
+content-length: 0
+
+Thanks,
+Lee
+
+
+On 22 Apr 2013, at 16:55, &quot;Brown, Kevin&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">Kevin.Brown at turner.com</A>&gt; wrote:
+
+&gt;<i> You might see if &quot;view source&quot; (rather than the parsed view you sent)
+</I>&gt;<i> yields any clues. You'd like to see HTTP version being sent.
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> On 4/22/13 10:40 AM, &quot;Lee Sylvester&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt; wrote:
+</I>&gt;<i>
+</I>&gt;&gt;<i> Well, the below is the sent and return headers on the failing machine.
+</I>&gt;&gt;<i> On a succeeding machine, the headers are
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Request URL:<A HREF="http://www.example.com">http://www.example.com</A>
+</I>&gt;&gt;<i> Request Method:OPTIONS
+</I>&gt;&gt;<i> Status Code:200 OK
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Request Headersview source
+</I>&gt;&gt;<i> Accept:*/*
+</I>&gt;&gt;<i> Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
+</I>&gt;&gt;<i> Accept-Encoding:gzip,deflate,sdch
+</I>&gt;&gt;<i> Accept-Language:en-US,en;q=0.8
+</I>&gt;&gt;<i> Access-Control-Request-Headers:origin, method, content-type
+</I>&gt;&gt;<i> Access-Control-Request-Method:POST
+</I>&gt;&gt;<i> Connection:keep-alive
+</I>&gt;&gt;<i> Host:www.example.com
+</I>&gt;&gt;<i> Origin:<A HREF="http://www.test.com">http://www.test.com</A>
+</I>&gt;&gt;<i> Referer:<A HREF="http://www.test.com/">http://www.test.com/</A>
+</I>&gt;&gt;<i> User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3)
+</I>&gt;&gt;<i> AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Response Headersview source
+</I>&gt;&gt;<i> Access-Control-Allow-Headers:Content-Type, X-Requested-With, Origin,
+</I>&gt;&gt;<i> Method
+</I>&gt;&gt;<i> Access-Control-Allow-Methods:GET, POST, OPTIONS
+</I>&gt;&gt;<i> Access-Control-Allow-Origin:*
+</I>&gt;&gt;<i> connection:keep-alive
+</I>&gt;&gt;<i> content-length:68
+</I>&gt;&gt;<i> date:Mon, 22 Apr 2013 14:33:30 GMT
+</I>&gt;&gt;<i> server:Cowboy
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> As you can see, the header control and content isn't being sent back and
+</I>&gt;&gt;<i> the connection is closed.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> Thanks,
+</I>&gt;&gt;<i> Lee
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> On 22 Apr 2013, at 15:28, &quot;Brown, Kevin&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">Kevin.Brown at turner.com</A>&gt; wrote:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> What is the exact http request sent on the failing and successful
+</I>&gt;&gt;&gt;<i> machines? How do the differ?
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Stack trace?
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> On Apr 22, 2013, at 9:00 AM, &quot;Lee Sylvester&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt;
+</I>&gt;&gt;&gt;<i> wrote:
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> Hi guys,
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> So, I was getting a CORS issue when connecting to my Bullet impl,
+</I>&gt;&gt;&gt;&gt;<i> which I have since fixed. I am now able to use these from many
+</I>&gt;&gt;&gt;&gt;<i> machines from many locations. However, I have found some machines to
+</I>&gt;&gt;&gt;&gt;<i> be getting a 505 error when making a POST request to the Cowboy
+</I>&gt;&gt;&gt;&gt;<i> instance:
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> Request URL:<A HREF="http://www.example.com">http://www.example.com</A>
+</I>&gt;&gt;&gt;&gt;<i> Request Method:OPTIONS
+</I>&gt;&gt;&gt;&gt;<i> Status Code:505 HTTP Version Not Supported
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> Request Headersview source
+</I>&gt;&gt;&gt;&gt;<i> Accept:*/*
+</I>&gt;&gt;&gt;&gt;<i> Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
+</I>&gt;&gt;&gt;&gt;<i> Accept-Encoding:gzip,deflate,sdch
+</I>&gt;&gt;&gt;&gt;<i> Accept-Language:en-US,en;q=0.8
+</I>&gt;&gt;&gt;&gt;<i> Access-Control-Request-Headers:origin, method, content-type
+</I>&gt;&gt;&gt;&gt;<i> Access-Control-Request-Method:POST
+</I>&gt;&gt;&gt;&gt;<i> Connection:keep-alive
+</I>&gt;&gt;&gt;&gt;<i> Host:www.example.com
+</I>&gt;&gt;&gt;&gt;<i> Origin:<A HREF="http://www.test.com">http://www.test.com</A>
+</I>&gt;&gt;&gt;&gt;<i> Referer:<A HREF="http://www.test.com/">http://www.test.com/</A>
+</I>&gt;&gt;&gt;&gt;<i> User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31
+</I>&gt;&gt;&gt;&gt;<i> (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> Response Headersview source
+</I>&gt;&gt;&gt;&gt;<i> connection:close
+</I>&gt;&gt;&gt;&gt;<i> content-length:0
+</I>&gt;&gt;&gt;&gt;<i> date:Mon, 22 Apr 2013 12:22:50 GMT
+</I>&gt;&gt;&gt;&gt;<i> server:Cowboy
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> To get around the CORS issue, I set up an onrequest hook, which points
+</I>&gt;&gt;&gt;&gt;<i> to the function:
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> set_request_cors(Req) -&gt;
+</I>&gt;&gt;&gt;&gt;<i> Req2 =
+</I>&gt;&gt;&gt;&gt;<i> cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Methods&quot;&gt;&gt;, &lt;&lt;&quot;GET,
+</I>&gt;&gt;&gt;&gt;<i> POST, OPTIONS&quot;&gt;&gt;, Req),
+</I>&gt;&gt;&gt;&gt;<i> Req3 =
+</I>&gt;&gt;&gt;&gt;<i> cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Headers&quot;&gt;&gt;,
+</I>&gt;&gt;&gt;&gt;<i> &lt;&lt;&quot;Content-Type, X-Requested-With, Origin, Method&quot;&gt;&gt;, Req2),
+</I>&gt;&gt;&gt;&gt;<i> cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Origin&quot;&gt;&gt;,
+</I>&gt;&gt;&gt;&gt;<i> &lt;&lt;&quot;*&quot;&gt;&gt;, Req3).
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> I'm afraid I don't have any more info, but this issue is completely
+</I>&gt;&gt;&gt;&gt;<i> eluding me.
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> Thanks,
+</I>&gt;&gt;&gt;&gt;<i> Lee
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> _______________________________________________
+</I>&gt;&gt;&gt;&gt;<i> Extend mailing list
+</I>&gt;&gt;&gt;&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;&gt;&gt;&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000118.html">[99s-extend] 505 error
+</A></li>
+ <LI>Next message: <A HREF="000120.html">[99s-extend] 505 error
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#119">[ date ]</a>
+ <a href="thread.html#119">[ thread ]</a>
+ <a href="subject.html#119">[ subject ]</a>
+ <a href="author.html#119">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000120.html b/_build/static/archives/extend/2013-April/000120.html
new file mode 100644
index 00000000..1c18db93
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000120.html
@@ -0,0 +1,229 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] 505 error
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20505%20error&In-Reply-To=%3C51758D4B.1020501%40ninenines.eu%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000119.html">
+ <LINK REL="Next" HREF="000121.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] 505 error</H1>
+ <B>Lo&#239;c Hoguin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20505%20error&In-Reply-To=%3C51758D4B.1020501%40ninenines.eu%3E"
+ TITLE="[99s-extend] 505 error">essen at ninenines.eu
+ </A><BR>
+ <I>Mon Apr 22 21:19:39 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000119.html">[99s-extend] 505 error
+</A></li>
+ <LI>Next message: <A HREF="000121.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#120">[ date ]</a>
+ <a href="thread.html#120">[ thread ]</a>
+ <a href="subject.html#120">[ subject ]</a>
+ <a href="author.html#120">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>I'm going to need the exact request line to make sense of it.
+Something's missing in the parser I think, not sure what in your case
+though. Feel free to private email it.
+
+On 04/22/2013 08:30 PM, Lee Sylvester wrote:
+&gt;<i> Does this help?
+</I>&gt;<i>
+</I>&gt;<i> Request URL:<A HREF="http://www.example.com">http://www.example.com</A>
+</I>&gt;<i> Request Method:OPTIONS
+</I>&gt;<i> Status Code:505 HTTP Version Not Supported
+</I>&gt;<i>
+</I>&gt;<i> Request Headersview parsed
+</I>&gt;<i> OPTIONS <A HREF="http://www.example.com">http://www.example.com</A> HTTP/1.1
+</I>&gt;<i> Host: www.example.com
+</I>&gt;<i> Proxy-Connection: keep-alive
+</I>&gt;<i> Access-Control-Request-Method: POST
+</I>&gt;<i> Origin: <A HREF="http://localhost">http://localhost</A>
+</I>&gt;<i> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
+</I>&gt;<i> Access-Control-Request-Headers: origin, method, content-type
+</I>&gt;<i> Accept: */*
+</I>&gt;<i> Referer: <A HREF="http://localhost/p/">http://localhost/p/</A>
+</I>&gt;<i> Accept-Encoding: gzip,deflate,sdch
+</I>&gt;<i> Accept-Language: en-US,en;q=0.8
+</I>&gt;<i> Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
+</I>&gt;<i>
+</I>&gt;<i> Response Headersview parsed
+</I>&gt;<i> HTTP/1.1 505 HTTP Version Not Supported
+</I>&gt;<i> connection: close
+</I>&gt;<i> server: Cowboy
+</I>&gt;<i> date: Mon, 22 Apr 2013 17:42:39 GMT
+</I>&gt;<i> content-length: 0
+</I>&gt;<i>
+</I>&gt;<i> Thanks,
+</I>&gt;<i> Lee
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> On 22 Apr 2013, at 16:55, &quot;Brown, Kevin&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">Kevin.Brown at turner.com</A>&gt; wrote:
+</I>&gt;<i>
+</I>&gt;&gt;<i> You might see if &quot;view source&quot; (rather than the parsed view you sent)
+</I>&gt;&gt;<i> yields any clues. You'd like to see HTTP version being sent.
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i> On 4/22/13 10:40 AM, &quot;Lee Sylvester&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt; wrote:
+</I>&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Well, the below is the sent and return headers on the failing machine.
+</I>&gt;&gt;&gt;<i> On a succeeding machine, the headers are
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Request URL:<A HREF="http://www.example.com">http://www.example.com</A>
+</I>&gt;&gt;&gt;<i> Request Method:OPTIONS
+</I>&gt;&gt;&gt;<i> Status Code:200 OK
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Request Headersview source
+</I>&gt;&gt;&gt;<i> Accept:*/*
+</I>&gt;&gt;&gt;<i> Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
+</I>&gt;&gt;&gt;<i> Accept-Encoding:gzip,deflate,sdch
+</I>&gt;&gt;&gt;<i> Accept-Language:en-US,en;q=0.8
+</I>&gt;&gt;&gt;<i> Access-Control-Request-Headers:origin, method, content-type
+</I>&gt;&gt;&gt;<i> Access-Control-Request-Method:POST
+</I>&gt;&gt;&gt;<i> Connection:keep-alive
+</I>&gt;&gt;&gt;<i> Host:www.example.com
+</I>&gt;&gt;&gt;<i> Origin:<A HREF="http://www.test.com">http://www.test.com</A>
+</I>&gt;&gt;&gt;<i> Referer:<A HREF="http://www.test.com/">http://www.test.com/</A>
+</I>&gt;&gt;&gt;<i> User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3)
+</I>&gt;&gt;&gt;<i> AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Response Headersview source
+</I>&gt;&gt;&gt;<i> Access-Control-Allow-Headers:Content-Type, X-Requested-With, Origin,
+</I>&gt;&gt;&gt;<i> Method
+</I>&gt;&gt;&gt;<i> Access-Control-Allow-Methods:GET, POST, OPTIONS
+</I>&gt;&gt;&gt;<i> Access-Control-Allow-Origin:*
+</I>&gt;&gt;&gt;<i> connection:keep-alive
+</I>&gt;&gt;&gt;<i> content-length:68
+</I>&gt;&gt;&gt;<i> date:Mon, 22 Apr 2013 14:33:30 GMT
+</I>&gt;&gt;&gt;<i> server:Cowboy
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> As you can see, the header control and content isn't being sent back and
+</I>&gt;&gt;&gt;<i> the connection is closed.
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> Thanks,
+</I>&gt;&gt;&gt;<i> Lee
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i> On 22 Apr 2013, at 15:28, &quot;Brown, Kevin&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">Kevin.Brown at turner.com</A>&gt; wrote:
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> What is the exact http request sent on the failing and successful
+</I>&gt;&gt;&gt;&gt;<i> machines? How do the differ?
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> Stack trace?
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i> On Apr 22, 2013, at 9:00 AM, &quot;Lee Sylvester&quot; &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">lee.sylvester at gmail.com</A>&gt;
+</I>&gt;&gt;&gt;&gt;<i> wrote:
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> Hi guys,
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> So, I was getting a CORS issue when connecting to my Bullet impl,
+</I>&gt;&gt;&gt;&gt;&gt;<i> which I have since fixed. I am now able to use these from many
+</I>&gt;&gt;&gt;&gt;&gt;<i> machines from many locations. However, I have found some machines to
+</I>&gt;&gt;&gt;&gt;&gt;<i> be getting a 505 error when making a POST request to the Cowboy
+</I>&gt;&gt;&gt;&gt;&gt;<i> instance:
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> Request URL:<A HREF="http://www.example.com">http://www.example.com</A>
+</I>&gt;&gt;&gt;&gt;&gt;<i> Request Method:OPTIONS
+</I>&gt;&gt;&gt;&gt;&gt;<i> Status Code:505 HTTP Version Not Supported
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> Request Headersview source
+</I>&gt;&gt;&gt;&gt;&gt;<i> Accept:*/*
+</I>&gt;&gt;&gt;&gt;&gt;<i> Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
+</I>&gt;&gt;&gt;&gt;&gt;<i> Accept-Encoding:gzip,deflate,sdch
+</I>&gt;&gt;&gt;&gt;&gt;<i> Accept-Language:en-US,en;q=0.8
+</I>&gt;&gt;&gt;&gt;&gt;<i> Access-Control-Request-Headers:origin, method, content-type
+</I>&gt;&gt;&gt;&gt;&gt;<i> Access-Control-Request-Method:POST
+</I>&gt;&gt;&gt;&gt;&gt;<i> Connection:keep-alive
+</I>&gt;&gt;&gt;&gt;&gt;<i> Host:www.example.com
+</I>&gt;&gt;&gt;&gt;&gt;<i> Origin:<A HREF="http://www.test.com">http://www.test.com</A>
+</I>&gt;&gt;&gt;&gt;&gt;<i> Referer:<A HREF="http://www.test.com/">http://www.test.com/</A>
+</I>&gt;&gt;&gt;&gt;&gt;<i> User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31
+</I>&gt;&gt;&gt;&gt;&gt;<i> (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> Response Headersview source
+</I>&gt;&gt;&gt;&gt;&gt;<i> connection:close
+</I>&gt;&gt;&gt;&gt;&gt;<i> content-length:0
+</I>&gt;&gt;&gt;&gt;&gt;<i> date:Mon, 22 Apr 2013 12:22:50 GMT
+</I>&gt;&gt;&gt;&gt;&gt;<i> server:Cowboy
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> To get around the CORS issue, I set up an onrequest hook, which points
+</I>&gt;&gt;&gt;&gt;&gt;<i> to the function:
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> set_request_cors(Req) -&gt;
+</I>&gt;&gt;&gt;&gt;&gt;<i> Req2 =
+</I>&gt;&gt;&gt;&gt;&gt;<i> cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Methods&quot;&gt;&gt;, &lt;&lt;&quot;GET,
+</I>&gt;&gt;&gt;&gt;&gt;<i> POST, OPTIONS&quot;&gt;&gt;, Req),
+</I>&gt;&gt;&gt;&gt;&gt;<i> Req3 =
+</I>&gt;&gt;&gt;&gt;&gt;<i> cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Headers&quot;&gt;&gt;,
+</I>&gt;&gt;&gt;&gt;&gt;<i> &lt;&lt;&quot;Content-Type, X-Requested-With, Origin, Method&quot;&gt;&gt;, Req2),
+</I>&gt;&gt;&gt;&gt;&gt;<i> cowboy_req:set_resp_header(&lt;&lt;&quot;Access-Control-Allow-Origin&quot;&gt;&gt;,
+</I>&gt;&gt;&gt;&gt;&gt;<i> &lt;&lt;&quot;*&quot;&gt;&gt;, Req3).
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> I'm afraid I don't have any more info, but this issue is completely
+</I>&gt;&gt;&gt;&gt;&gt;<i> eluding me.
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> Thanks,
+</I>&gt;&gt;&gt;&gt;&gt;<i> Lee
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;&gt;<i> _______________________________________________
+</I>&gt;&gt;&gt;&gt;&gt;<i> Extend mailing list
+</I>&gt;&gt;&gt;&gt;&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;&gt;&gt;&gt;&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> _______________________________________________
+</I>&gt;<i> Extend mailing list
+</I>&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;<i>
+</I>
+
+--
+Lo&#239;c Hoguin
+Erlang Cowboy
+Nine Nines
+<A HREF="http://ninenines.eu">http://ninenines.eu</A>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000119.html">[99s-extend] 505 error
+</A></li>
+ <LI>Next message: <A HREF="000121.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#120">[ date ]</a>
+ <a href="thread.html#120">[ thread ]</a>
+ <a href="subject.html#120">[ subject ]</a>
+ <a href="author.html#120">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000121.html b/_build/static/archives/extend/2013-April/000121.html
new file mode 100644
index 00000000..a1fc20ce
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000121.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] does cowboy support hot code reload/replace ?
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20does%20cowboy%20support%20hot%20code%20reload/replace%20%3F&In-Reply-To=%3CCAN_mQBqbjr_JzSoL%3DYOzM8SaMbmvd%3D_OJ5FMg-DbYgKeYq6hBA%40mail.gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000120.html">
+ <LINK REL="Next" HREF="000122.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] does cowboy support hot code reload/replace ?</H1>
+ <B>yongboy</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20does%20cowboy%20support%20hot%20code%20reload/replace%20%3F&In-Reply-To=%3CCAN_mQBqbjr_JzSoL%3DYOzM8SaMbmvd%3D_OJ5FMg-DbYgKeYq6hBA%40mail.gmail.com%3E"
+ TITLE="[99s-extend] does cowboy support hot code reload/replace ?">yongboy at gmail.com
+ </A><BR>
+ <I>Thu Apr 25 05:46:24 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000120.html">[99s-extend] 505 error
+</A></li>
+ <LI>Next message: <A HREF="000122.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#121">[ date ]</a>
+ <a href="thread.html#121">[ thread ]</a>
+ <a href="subject.html#121">[ subject ]</a>
+ <a href="author.html#121">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>You know, the OTP's code_change so heavy, sometimes, you just want to
+debug, or change a little, does not want to rewrite the rel appup file.
+Any help is appreciated, thanks.
+-------------- next part --------------
+An HTML attachment was scrubbed...
+URL: &lt;<A HREF="http://lists.ninenines.eu/archives/extend/attachments/20130425/35ee7614/attachment.html">http://lists.ninenines.eu/archives/extend/attachments/20130425/35ee7614/attachment.html</A>&gt;
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000120.html">[99s-extend] 505 error
+</A></li>
+ <LI>Next message: <A HREF="000122.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#121">[ date ]</a>
+ <a href="thread.html#121">[ thread ]</a>
+ <a href="subject.html#121">[ subject ]</a>
+ <a href="author.html#121">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000122.html b/_build/static/archives/extend/2013-April/000122.html
new file mode 100644
index 00000000..1c5d02fb
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000122.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] does cowboy support hot code reload/replace ?
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20does%20cowboy%20support%20hot%20code%20reload/replace%20%3F&In-Reply-To=%3C51791697.7030500%40ninenines.eu%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000121.html">
+ <LINK REL="Next" HREF="000123.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] does cowboy support hot code reload/replace ?</H1>
+ <B>Lo&#239;c Hoguin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20does%20cowboy%20support%20hot%20code%20reload/replace%20%3F&In-Reply-To=%3C51791697.7030500%40ninenines.eu%3E"
+ TITLE="[99s-extend] does cowboy support hot code reload/replace ?">essen at ninenines.eu
+ </A><BR>
+ <I>Thu Apr 25 13:42:15 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000121.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A></li>
+ <LI>Next message: <A HREF="000123.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#122">[ date ]</a>
+ <a href="thread.html#122">[ thread ]</a>
+ <a href="subject.html#122">[ subject ]</a>
+ <a href="author.html#122">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>On 04/25/2013 05:46 AM, yongboy wrote:
+&gt;<i> You know, the OTP's code_change so heavy, sometimes, you just want to
+</I>&gt;<i> debug, or change a little, does not want to rewrite the rel appup file.
+</I>&gt;<i> Any help is appreciated, thanks.
+</I>
+At this time there is no code_change mechanism in Cowboy. Reloading a
+module works, modifying the protocol options with
+ranch:set_protocol_options can be used, but it doesn't change the
+running processes.
+
+--
+Lo&#239;c Hoguin
+Erlang Cowboy
+Nine Nines
+<A HREF="http://ninenines.eu">http://ninenines.eu</A>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000121.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A></li>
+ <LI>Next message: <A HREF="000123.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#122">[ date ]</a>
+ <a href="thread.html#122">[ thread ]</a>
+ <a href="subject.html#122">[ subject ]</a>
+ <a href="author.html#122">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000123.html b/_build/static/archives/extend/2013-April/000123.html
new file mode 100644
index 00000000..1876b3f4
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000123.html
@@ -0,0 +1,87 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] does cowboy support hot code reload/replace ?
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20does%20cowboy%20support%20hot%20code%20reload/replace%20%3F&In-Reply-To=%3CCAN_mQBq4FEG66Ot2CpTLgChaaTMUW1vG0cjsZrEs-Rbms7zGuQ%40mail.gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000122.html">
+ <LINK REL="Next" HREF="000124.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] does cowboy support hot code reload/replace ?</H1>
+ <B>yongboy</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20does%20cowboy%20support%20hot%20code%20reload/replace%20%3F&In-Reply-To=%3CCAN_mQBq4FEG66Ot2CpTLgChaaTMUW1vG0cjsZrEs-Rbms7zGuQ%40mail.gmail.com%3E"
+ TITLE="[99s-extend] does cowboy support hot code reload/replace ?">yongboy at gmail.com
+ </A><BR>
+ <I>Fri Apr 26 07:57:00 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000122.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A></li>
+ <LI>Next message: <A HREF="000124.html">[99s-extend] cowboy how to ruduce the memory usage per long-hold connection
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#123">[ date ]</a>
+ <a href="thread.html#123">[ thread ]</a>
+ <a href="subject.html#123">[ subject ]</a>
+ <a href="author.html#123">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Thanks very much !
+Maybe we can use the code:load_file() function I had just found it .
+
+
+2013/4/25 Lo&#239;c Hoguin &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">essen at ninenines.eu</A>&gt;
+
+&gt;<i> On 04/25/2013 05:46 AM, yongboy wrote:
+</I>&gt;<i>
+</I>&gt;&gt;<i> You know, the OTP's code_change so heavy, sometimes, you just want to
+</I>&gt;&gt;<i> debug, or change a little, does not want to rewrite the rel appup file.
+</I>&gt;&gt;<i> Any help is appreciated, thanks.
+</I>&gt;&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> At this time there is no code_change mechanism in Cowboy. Reloading a
+</I>&gt;<i> module works, modifying the protocol options with
+</I>&gt;<i> ranch:set_protocol_options can be used, but it doesn't change the running
+</I>&gt;<i> processes.
+</I>&gt;<i>
+</I>&gt;<i> --
+</I>&gt;<i> Lo&#271;c Hoguin
+</I>&gt;<i> Erlang Cowboy
+</I>&gt;<i> Nine Nines
+</I>&gt;<i> <A HREF="http://ninenines.eu">http://ninenines.eu</A>
+</I>&gt;<i>
+</I>-------------- next part --------------
+An HTML attachment was scrubbed...
+URL: &lt;<A HREF="http://lists.ninenines.eu/archives/extend/attachments/20130426/09f3ed34/attachment.html">http://lists.ninenines.eu/archives/extend/attachments/20130426/09f3ed34/attachment.html</A>&gt;
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000122.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A></li>
+ <LI>Next message: <A HREF="000124.html">[99s-extend] cowboy how to ruduce the memory usage per long-hold connection
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#123">[ date ]</a>
+ <a href="thread.html#123">[ thread ]</a>
+ <a href="subject.html#123">[ subject ]</a>
+ <a href="author.html#123">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000124.html b/_build/static/archives/extend/2013-April/000124.html
new file mode 100644
index 00000000..08b363e5
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000124.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] cowboy how to ruduce the memory usage per long-hold connection
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20how%20to%20ruduce%20the%20memory%20usage%20per%20long-hold%0A%09connection&In-Reply-To=%3CCAN_mQBobPN0zdpqJ3WtGKJaRMNiutvurgJfncMCqM3qtUHTm1g%40mail.gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000123.html">
+ <LINK REL="Next" HREF="000125.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] cowboy how to ruduce the memory usage per long-hold connection</H1>
+ <B>yongboy</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20how%20to%20ruduce%20the%20memory%20usage%20per%20long-hold%0A%09connection&In-Reply-To=%3CCAN_mQBobPN0zdpqJ3WtGKJaRMNiutvurgJfncMCqM3qtUHTm1g%40mail.gmail.com%3E"
+ TITLE="[99s-extend] cowboy how to ruduce the memory usage per long-hold connection">yongboy at gmail.com
+ </A><BR>
+ <I>Fri Apr 26 08:11:56 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000123.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A></li>
+ <LI>Next message: <A HREF="000125.html">[99s-extend] cowboy how to ruduce the memory usage per long-hold connection
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#124">[ date ]</a>
+ <a href="thread.html#124">[ thread ]</a>
+ <a href="subject.html#124">[ subject ]</a>
+ <a href="author.html#124">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>I have tested one long-hold webapp, when 512000 user connected, the app
+used
+6801M memory, 6801M*1024K / 512000 = 13.6K/Connection.
+
+Does anyone give me some advice on how to reduce the memory usage per one
+connection, thanks very much !
+
+Here is the code snippet:
+
+start(_Type, _Args) -&gt;
+ Dispatch = cowboy_router:compile([
+ {'_', [{'_', htmlfile_handler, []}]}
+ ]),
+ cowboy:start_http(my_http_listener, 100,
+ [{port, 8000}, {max_connections, infinity}],
+ [{env, [{dispatch, Dispatch}]}]
+ ),
+ count_server:start(),
+ htmlfilesimple_sup:start_link().
+
+......
+
+-module(htmlfile_handler).
+-behaviour(cowboy_loop_handler).
+-export([init/3, info/3, terminate/3]).
+-define(HEARBEAT_TIMEOUT, 20*1000).
+-record(status, {count=0}).
+
+init(_Any, Req, State) -&gt;
+ NowCount = count_server:welcome(),
+ io:format(&quot;online user ~p :))~n&quot;, [NowCount]),
+
+ output_first(Req),
+ Req2 = cowboy_req:compact(Req),
+ {loop, Req2, State, hibernate}.
+
+%% POST/Short Request
+info(_Any, Req, State) -&gt;
+ {loop, Req, State, hibernate}.
+
+output_first(Req) -&gt;
+ {ok, Reply} = cowboy_req:chunked_reply(200, [{&lt;&lt;&quot;Content-Type&quot;&gt;&gt;,
+&lt;&lt;&quot;text/html; charset=utf-8&quot;&gt;&gt;},
+
+{&lt;&lt;&quot;Connection&quot;&gt;&gt;, &lt;&lt;&quot;keep-alive&quot;&gt;&gt;}], Req),
+ cowboy_req:chunk(&lt;&lt;&quot;&lt;html&gt;&lt;body&gt;&lt;script&gt;var _ = function (msg) {
+parent.s._(msg, document);
+};&lt;/script&gt;
+&quot;&gt;&gt;,
+ Reply),
+ cowboy_req:chunk(gen_output(&quot;1::&quot;), Reply).
+
+gen_output(String) -&gt;
+ DescList = io_lib:format(&quot;&lt;script&gt;_('~s');&lt;/script&gt;&quot;, [String]),
+ list_to_binary(DescList).
+
+terminate(Reason, _Req, _State) -&gt;
+ NowCount = count_server:bye(),
+ io:format(&quot;offline user ~p :(( ~n&quot;, [NowCount]).
+-------------- next part --------------
+An HTML attachment was scrubbed...
+URL: &lt;<A HREF="http://lists.ninenines.eu/archives/extend/attachments/20130426/9d234e27/attachment.html">http://lists.ninenines.eu/archives/extend/attachments/20130426/9d234e27/attachment.html</A>&gt;
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000123.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A></li>
+ <LI>Next message: <A HREF="000125.html">[99s-extend] cowboy how to ruduce the memory usage per long-hold connection
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#124">[ date ]</a>
+ <a href="thread.html#124">[ thread ]</a>
+ <a href="subject.html#124">[ subject ]</a>
+ <a href="author.html#124">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000125.html b/_build/static/archives/extend/2013-April/000125.html
new file mode 100644
index 00000000..6fd69519
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000125.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] cowboy how to ruduce the memory usage per long-hold connection
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20how%20to%20ruduce%20the%20memory%20usage%20per%0A%09long-hold%20connection&In-Reply-To=%3CCAJ0zLRPcYmH1OXeiw2aZHLtoqqdW%3Ddu0rhonF53xdCbMUmnCLw%40mail.gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000124.html">
+ <LINK REL="Next" HREF="000126.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] cowboy how to ruduce the memory usage per long-hold connection</H1>
+ <B>rambocoder</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20how%20to%20ruduce%20the%20memory%20usage%20per%0A%09long-hold%20connection&In-Reply-To=%3CCAJ0zLRPcYmH1OXeiw2aZHLtoqqdW%3Ddu0rhonF53xdCbMUmnCLw%40mail.gmail.com%3E"
+ TITLE="[99s-extend] cowboy how to ruduce the memory usage per long-hold connection">erlang at rambocoder.com
+ </A><BR>
+ <I>Fri Apr 26 15:11:53 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000124.html">[99s-extend] cowboy how to ruduce the memory usage per long-hold connection
+</A></li>
+ <LI>Next message: <A HREF="000126.html">[99s-extend] [ANN] Cowboy 0.8.4
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#125">[ date ]</a>
+ <a href="thread.html#125">[ thread ]</a>
+ <a href="subject.html#125">[ subject ]</a>
+ <a href="author.html#125">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Is 13.6K/connection considered a lot? Once you start doing SSL, each
+connection will be about 80K, IMHO the most important factor for huge
+ammount of COMET users is latency, which Cowboy and Erlang do great.
+
+-rambocoder
+
+On Fri, Apr 26, 2013 at 2:11 AM, yongboy &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">yongboy at gmail.com</A>&gt; wrote:
+
+&gt;<i> I have tested one long-hold webapp, when 512000 user connected, the app
+</I>&gt;<i> used
+</I>&gt;<i> 6801M memory, 6801M*1024K / 512000 = 13.6K/Connection.
+</I>&gt;<i>
+</I>&gt;<i> Does anyone give me some advice on how to reduce the memory usage per one
+</I>&gt;<i> connection, thanks very much !
+</I>&gt;<i>
+</I>&gt;<i> Here is the code snippet:
+</I>&gt;<i>
+</I>&gt;<i> start(_Type, _Args) -&gt;
+</I>&gt;<i> Dispatch = cowboy_router:compile([
+</I>&gt;<i> {'_', [{'_', htmlfile_handler, []}]}
+</I>&gt;<i> ]),
+</I>&gt;<i> cowboy:start_http(my_http_listener, 100,
+</I>&gt;<i> [{port, 8000}, {max_connections, infinity}],
+</I>&gt;<i> [{env, [{dispatch, Dispatch}]}]
+</I>&gt;<i> ),
+</I>&gt;<i> count_server:start(),
+</I>&gt;<i> htmlfilesimple_sup:start_link().
+</I>&gt;<i>
+</I>&gt;<i> ......
+</I>&gt;<i>
+</I>&gt;<i> -module(htmlfile_handler).
+</I>&gt;<i> -behaviour(cowboy_loop_handler).
+</I>&gt;<i> -export([init/3, info/3, terminate/3]).
+</I>&gt;<i> -define(HEARBEAT_TIMEOUT, 20*1000).
+</I>&gt;<i> -record(status, {count=0}).
+</I>&gt;<i>
+</I>&gt;<i> init(_Any, Req, State) -&gt;
+</I>&gt;<i> NowCount = count_server:welcome(),
+</I>&gt;<i> io:format(&quot;online user ~p :))~n&quot;, [NowCount]),
+</I>&gt;<i>
+</I>&gt;<i> output_first(Req),
+</I>&gt;<i> Req2 = cowboy_req:compact(Req),
+</I>&gt;<i> {loop, Req2, State, hibernate}.
+</I>&gt;<i>
+</I>&gt;<i> %% POST/Short Request
+</I>&gt;<i> info(_Any, Req, State) -&gt;
+</I>&gt;<i> {loop, Req, State, hibernate}.
+</I>&gt;<i>
+</I>&gt;<i> output_first(Req) -&gt;
+</I>&gt;<i> {ok, Reply} = cowboy_req:chunked_reply(200, [{&lt;&lt;&quot;Content-Type&quot;&gt;&gt;,
+</I>&gt;<i> &lt;&lt;&quot;text/html; charset=utf-8&quot;&gt;&gt;},
+</I>&gt;<i>
+</I>&gt;<i> {&lt;&lt;&quot;Connection&quot;&gt;&gt;, &lt;&lt;&quot;keep-alive&quot;&gt;&gt;}], Req),
+</I>&gt;<i> cowboy_req:chunk(&lt;&lt;&quot;&lt;html&gt;&lt;body&gt;&lt;script&gt;var _ = function (msg) {
+</I>&gt;<i> parent.s._(msg, document);
+</I>&gt;<i> };&lt;/script&gt;
+</I>&gt;<i> &quot;&gt;&gt;,
+</I>&gt;<i> Reply),
+</I>&gt;<i> cowboy_req:chunk(gen_output(&quot;1::&quot;), Reply).
+</I>&gt;<i>
+</I>&gt;<i> gen_output(String) -&gt;
+</I>&gt;<i> DescList = io_lib:format(&quot;&lt;script&gt;_('~s');&lt;/script&gt;&quot;, [String]),
+</I>&gt;<i> list_to_binary(DescList).
+</I>&gt;<i>
+</I>&gt;<i> terminate(Reason, _Req, _State) -&gt;
+</I>&gt;<i> NowCount = count_server:bye(),
+</I>&gt;<i> io:format(&quot;offline user ~p :(( ~n&quot;, [NowCount]).
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>&gt;<i> _______________________________________________
+</I>&gt;<i> Extend mailing list
+</I>&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
+</I>&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
+</I>&gt;<i>
+</I>&gt;<i>
+</I>-------------- next part --------------
+An HTML attachment was scrubbed...
+URL: &lt;<A HREF="http://lists.ninenines.eu/archives/extend/attachments/20130426/b1e8ae7a/attachment.html">http://lists.ninenines.eu/archives/extend/attachments/20130426/b1e8ae7a/attachment.html</A>&gt;
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000124.html">[99s-extend] cowboy how to ruduce the memory usage per long-hold connection
+</A></li>
+ <LI>Next message: <A HREF="000126.html">[99s-extend] [ANN] Cowboy 0.8.4
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#125">[ date ]</a>
+ <a href="thread.html#125">[ thread ]</a>
+ <a href="subject.html#125">[ subject ]</a>
+ <a href="author.html#125">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000126.html b/_build/static/archives/extend/2013-April/000126.html
new file mode 100644
index 00000000..093d494d
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000126.html
@@ -0,0 +1,90 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] [ANN] Cowboy 0.8.4
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20%5BANN%5D%20Cowboy%200.8.4&In-Reply-To=%3C517A9B7C.8090706%40ninenines.eu%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000125.html">
+ <LINK REL="Next" HREF="000127.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] [ANN] Cowboy 0.8.4</H1>
+ <B>Lo&#239;c Hoguin</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20%5BANN%5D%20Cowboy%200.8.4&In-Reply-To=%3C517A9B7C.8090706%40ninenines.eu%3E"
+ TITLE="[99s-extend] [ANN] Cowboy 0.8.4">essen at ninenines.eu
+ </A><BR>
+ <I>Fri Apr 26 17:21:32 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000125.html">[99s-extend] cowboy how to ruduce the memory usage per long-hold connection
+</A></li>
+ <LI>Next message: <A HREF="000127.html">[99s-extend] cowboy websocket and wamp
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#126">[ date ]</a>
+ <a href="thread.html#126">[ thread ]</a>
+ <a href="subject.html#126">[ subject ]</a>
+ <a href="author.html#126">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Hello,
+
+Cowboy 0.8.4 has been released!
+
+This release features a tentatively stable API. This means that the
+complete API defined in this release should not change anymore. The API
+will be augmented with many features and functions of course, but
+existing code should not break anymore. Changes will only be considered
+if a feature causes bugs or too much confusion to the majority of users.
+
+This release includes all the remaining changes that had to be done to
+REST, which is now no longer experimental and has documentation that you
+can find here:
+
+ <A HREF="http://ninenines.eu/docs/en/cowboy/HEAD/guide/rest_handlers">http://ninenines.eu/docs/en/cowboy/HEAD/guide/rest_handlers</A>
+
+Diagrams and their explanations will be added to the documentation in
+the next few days.
+
+The full changelog for this release can be found here:
+<A HREF="https://github.com/extend/cowboy/commit/46b2ea0aaa7fe891bfdf3f8a0c47357393e72cf6">https://github.com/extend/cowboy/commit/46b2ea0aaa7fe891bfdf3f8a0c47357393e72cf6</A>
+
+Enjoy!
+
+--
+Lo&#239;c Hoguin
+Erlang Cowboy
+Nine Nines
+<A HREF="http://ninenines.eu">http://ninenines.eu</A>
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000125.html">[99s-extend] cowboy how to ruduce the memory usage per long-hold connection
+</A></li>
+ <LI>Next message: <A HREF="000127.html">[99s-extend] cowboy websocket and wamp
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#126">[ date ]</a>
+ <a href="thread.html#126">[ thread ]</a>
+ <a href="subject.html#126">[ subject ]</a>
+ <a href="author.html#126">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/000127.html b/_build/static/archives/extend/2013-April/000127.html
new file mode 100644
index 00000000..cc767686
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/000127.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [99s-extend] cowboy websocket and wamp
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20websocket%20and%20wamp&In-Reply-To=%3CCAAh%2BK4zu6f1CM1Dij7XsnUCLXXqaS3E6ZugABuaiST99Pz%2BKnA%40mail.gmail.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <style type="text/css">
+ pre {
+ white-space: pre-wrap; /* css-2.1, curent FF, Opera, Safari */
+ }
+ </style>
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="000126.html">
+
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[99s-extend] cowboy websocket and wamp</H1>
+ <B>Gregory de Souza</B>
+ <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20cowboy%20websocket%20and%20wamp&In-Reply-To=%3CCAAh%2BK4zu6f1CM1Dij7XsnUCLXXqaS3E6ZugABuaiST99Pz%2BKnA%40mail.gmail.com%3E"
+ TITLE="[99s-extend] cowboy websocket and wamp">gdesouza at gmail.com
+ </A><BR>
+ <I>Tue Apr 30 20:59:21 CEST 2013</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="000126.html">[99s-extend] [ANN] Cowboy 0.8.4
+</A></li>
+
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#127">[ date ]</a>
+ <a href="thread.html#127">[ thread ]</a>
+ <a href="subject.html#127">[ subject ]</a>
+ <a href="author.html#127">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Hi,
+I'm new to the community and am exploring cowboy for a project.
+
+Can anyone offer guidance/links on how to use cowboy's websocket support
+with WAMP (<A HREF="http://wamp.ws/">http://wamp.ws/</A>)?
+The cowboy docs mention bullet &lt;<A HREF="https://github.com/extend/bullet?source=cr">https://github.com/extend/bullet?source=cr</A>&gt; as
+a convenient client/server lib (with an AJAX fallback) which is great, but
+I'd like to use WAMP's RPC and PubSub so I'm unsure how to proceed.
+
+Any tips would be appreciated!
+
+Thanks in advance
+--
+Gregory | @gdesouza &lt;<A HREF="http://twitter.com/gdesouza">http://twitter.com/gdesouza</A>&gt; | <A HREF="http://blog.gdesouza.me">http://blog.gdesouza.me</A>
+-------------- next part --------------
+An HTML attachment was scrubbed...
+URL: &lt;<A HREF="http://lists.ninenines.eu/archives/extend/attachments/20130430/c86f8fdb/attachment.html">http://lists.ninenines.eu/archives/extend/attachments/20130430/c86f8fdb/attachment.html</A>&gt;
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="000126.html">[99s-extend] [ANN] Cowboy 0.8.4
+</A></li>
+
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#127">[ date ]</a>
+ <a href="thread.html#127">[ thread ]</a>
+ <a href="subject.html#127">[ subject ]</a>
+ <a href="author.html#127">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
+mailing list</a><br>
+</body></html>
diff --git a/_build/static/archives/extend/2013-April/author.html b/_build/static/archives/extend/2013-April/author.html
new file mode 100644
index 00000000..f8edc33c
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/author.html
@@ -0,0 +1,322 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <title>The Extend April 2013 Archive by author</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <a name="start"></A>
+ <h1>April 2013 Archives by author</h1>
+ <ul>
+ <li> <b>Messages sorted by:</b>
+ <a href="thread.html#start">[ thread ]</a>
+ <a href="subject.html#start">[ subject ]</a>
+
+ <a href="date.html#start">[ date ]</a>
+
+ <li><b><a href="https://lists.ninenines.eu/listinfo/extend">More info on this list...
+ </a></b></li>
+ </ul>
+ <p><b>Starting:</b> <i>Tue Apr 2 19:23:28 CEST 2013</i><br>
+ <b>Ending:</b> <i>Tue Apr 30 20:59:21 CEST 2013</i><br>
+ <b>Messages:</b> 55<p>
+ <ul>
+
+<LI><A HREF="000104.html">[99s-extend] populating #http_req for unit testing
+</A><A NAME="104">&nbsp;</A>
+<I>Brown, Kevin
+</I>
+
+<LI><A HREF="000106.html">[99s-extend] populating #http_req for unit testing
+</A><A NAME="106">&nbsp;</A>
+<I>Brown, Kevin
+</I>
+
+<LI><A HREF="000115.html">[99s-extend] 505 error
+</A><A NAME="115">&nbsp;</A>
+<I>Brown, Kevin
+</I>
+
+<LI><A HREF="000118.html">[99s-extend] 505 error
+</A><A NAME="118">&nbsp;</A>
+<I>Brown, Kevin
+</I>
+
+<LI><A HREF="000107.html">[99s-extend] populating #http_req for unit testing
+</A><A NAME="107">&nbsp;</A>
+<I>Eduardo Gurgel
+</I>
+
+<LI><A HREF="000073.html">[99s-extend] [ANN] Ranch 0.8.0
+</A><A NAME="73">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000074.html">[99s-extend] [ANN] Cowboy 0.8.3
+</A><A NAME="74">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000079.html">[99s-extend] Bullet connection
+</A><A NAME="79">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000082.html">[99s-extend] Problems with Bullet
+</A><A NAME="82">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000088.html">[99s-extend] Heartbeat?
+</A><A NAME="88">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000089.html">[99s-extend] cowboy and chromium
+</A><A NAME="89">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000091.html">[99s-extend] cowboy and chromium
+</A><A NAME="91">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000094.html">[99s-extend] cowboy and chromium
+</A><A NAME="94">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000096.html">[99s-extend] cowboy and chromium
+</A><A NAME="96">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000105.html">[99s-extend] populating #http_req for unit testing
+</A><A NAME="105">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000109.html">[99s-extend] Reading body_qs multiple times
+</A><A NAME="109">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000111.html">[99s-extend] Reading body_qs multiple times
+</A><A NAME="111">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000117.html">[99s-extend] 505 error
+</A><A NAME="117">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000120.html">[99s-extend] 505 error
+</A><A NAME="120">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000122.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A><A NAME="122">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000126.html">[99s-extend] [ANN] Cowboy 0.8.4
+</A><A NAME="126">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000087.html">[99s-extend] cowboy and chromium
+</A><A NAME="87">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+<LI><A HREF="000090.html">[99s-extend] cowboy and chromium
+</A><A NAME="90">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+<LI><A HREF="000093.html">[99s-extend] cowboy and chromium
+</A><A NAME="93">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+<LI><A HREF="000095.html">[99s-extend] cowboy and chromium
+</A><A NAME="95">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+<LI><A HREF="000097.html">[99s-extend] cowboy and chromium
+</A><A NAME="97">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+<LI><A HREF="000099.html">[99s-extend] Distributed model?
+</A><A NAME="99">&nbsp;</A>
+<I>Jeremy Ong
+</I>
+
+<LI><A HREF="000101.html">[99s-extend] Distributed model?
+</A><A NAME="101">&nbsp;</A>
+<I>Jeremy Ong
+</I>
+
+<LI><A HREF="000076.html">[99s-extend] Response headers
+</A><A NAME="76">&nbsp;</A>
+<I>Phillips, Christopher
+</I>
+
+<LI><A HREF="000083.html">[99s-extend] Problems with Bullet
+</A><A NAME="83">&nbsp;</A>
+<I>Phillips, Christopher
+</I>
+
+<LI><A HREF="000084.html">[99s-extend] Problems with Bullet
+</A><A NAME="84">&nbsp;</A>
+<I>Phillips, Christopher
+</I>
+
+<LI><A HREF="000113.html">[99s-extend] Cowboy CORS
+</A><A NAME="113">&nbsp;</A>
+<I>Phillips, Christopher
+</I>
+
+<LI><A HREF="000127.html">[99s-extend] cowboy websocket and wamp
+</A><A NAME="127">&nbsp;</A>
+<I>Gregory de Souza
+</I>
+
+<LI><A HREF="000075.html">[99s-extend] Response headers
+</A><A NAME="75">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000077.html">[99s-extend] Response headers
+</A><A NAME="77">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000078.html">[99s-extend] Bullet connection
+</A><A NAME="78">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000080.html">[99s-extend] Bullet connection
+</A><A NAME="80">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000081.html">[99s-extend] Problems with Bullet
+</A><A NAME="81">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000085.html">[99s-extend] Problems with Bullet
+</A><A NAME="85">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000086.html">[99s-extend] Heartbeat?
+</A><A NAME="86">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000092.html">[99s-extend] Heartbeat?
+</A><A NAME="92">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000098.html">[99s-extend] Distributed model?
+</A><A NAME="98">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000100.html">[99s-extend] Distributed model?
+</A><A NAME="100">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000102.html">[99s-extend] Distributed model?
+</A><A NAME="102">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000103.html">[99s-extend] Distributed model?
+</A><A NAME="103">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000112.html">[99s-extend] Cowboy CORS
+</A><A NAME="112">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000114.html">[99s-extend] 505 error
+</A><A NAME="114">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000116.html">[99s-extend] 505 error
+</A><A NAME="116">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000119.html">[99s-extend] 505 error
+</A><A NAME="119">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000108.html">[99s-extend] Reading body_qs multiple times
+</A><A NAME="108">&nbsp;</A>
+<I>rambocoder
+</I>
+
+<LI><A HREF="000110.html">[99s-extend] Reading body_qs multiple times
+</A><A NAME="110">&nbsp;</A>
+<I>rambocoder
+</I>
+
+<LI><A HREF="000125.html">[99s-extend] cowboy how to ruduce the memory usage per long-hold connection
+</A><A NAME="125">&nbsp;</A>
+<I>rambocoder
+</I>
+
+<LI><A HREF="000121.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A><A NAME="121">&nbsp;</A>
+<I>yongboy
+</I>
+
+<LI><A HREF="000123.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A><A NAME="123">&nbsp;</A>
+<I>yongboy
+</I>
+
+<LI><A HREF="000124.html">[99s-extend] cowboy how to ruduce the memory usage per long-hold connection
+</A><A NAME="124">&nbsp;</A>
+<I>yongboy
+</I>
+
+ </ul>
+ <p>
+ <a name="end"><b>Last message date:</b></a>
+ <i>Tue Apr 30 20:59:21 CEST 2013</i><br>
+ <b>Archived on:</b> <i>Wed May 28 18:41:43 CEST 2014</i>
+ <p>
+ <ul>
+ <li> <b>Messages sorted by:</b>
+ <a href="thread.html#start">[ thread ]</a>
+ <a href="subject.html#start">[ subject ]</a>
+
+ <a href="date.html#start">[ date ]</a>
+ <li><b><a href="https://lists.ninenines.eu/listinfo/extend">More info on this list...
+ </a></b></li>
+ </ul>
+ <p>
+ <hr>
+ <i>This archive was generated by
+ Pipermail 0.09 (Mailman edition).</i>
+ </BODY>
+</HTML>
+
diff --git a/_build/static/archives/extend/2013-April/date.html b/_build/static/archives/extend/2013-April/date.html
new file mode 100644
index 00000000..a3b39452
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/date.html
@@ -0,0 +1,322 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <title>The Extend April 2013 Archive by date</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <a name="start"></A>
+ <h1>April 2013 Archives by date</h1>
+ <ul>
+ <li> <b>Messages sorted by:</b>
+ <a href="thread.html#start">[ thread ]</a>
+ <a href="subject.html#start">[ subject ]</a>
+ <a href="author.html#start">[ author ]</a>
+
+
+ <li><b><a href="https://lists.ninenines.eu/listinfo/extend">More info on this list...
+ </a></b></li>
+ </ul>
+ <p><b>Starting:</b> <i>Tue Apr 2 19:23:28 CEST 2013</i><br>
+ <b>Ending:</b> <i>Tue Apr 30 20:59:21 CEST 2013</i><br>
+ <b>Messages:</b> 55<p>
+ <ul>
+
+<LI><A HREF="000073.html">[99s-extend] [ANN] Ranch 0.8.0
+</A><A NAME="73">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000074.html">[99s-extend] [ANN] Cowboy 0.8.3
+</A><A NAME="74">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000075.html">[99s-extend] Response headers
+</A><A NAME="75">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000076.html">[99s-extend] Response headers
+</A><A NAME="76">&nbsp;</A>
+<I>Phillips, Christopher
+</I>
+
+<LI><A HREF="000077.html">[99s-extend] Response headers
+</A><A NAME="77">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000078.html">[99s-extend] Bullet connection
+</A><A NAME="78">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000079.html">[99s-extend] Bullet connection
+</A><A NAME="79">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000080.html">[99s-extend] Bullet connection
+</A><A NAME="80">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000081.html">[99s-extend] Problems with Bullet
+</A><A NAME="81">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000082.html">[99s-extend] Problems with Bullet
+</A><A NAME="82">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000083.html">[99s-extend] Problems with Bullet
+</A><A NAME="83">&nbsp;</A>
+<I>Phillips, Christopher
+</I>
+
+<LI><A HREF="000084.html">[99s-extend] Problems with Bullet
+</A><A NAME="84">&nbsp;</A>
+<I>Phillips, Christopher
+</I>
+
+<LI><A HREF="000085.html">[99s-extend] Problems with Bullet
+</A><A NAME="85">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000086.html">[99s-extend] Heartbeat?
+</A><A NAME="86">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000087.html">[99s-extend] cowboy and chromium
+</A><A NAME="87">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+<LI><A HREF="000088.html">[99s-extend] Heartbeat?
+</A><A NAME="88">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000089.html">[99s-extend] cowboy and chromium
+</A><A NAME="89">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000090.html">[99s-extend] cowboy and chromium
+</A><A NAME="90">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+<LI><A HREF="000091.html">[99s-extend] cowboy and chromium
+</A><A NAME="91">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000092.html">[99s-extend] Heartbeat?
+</A><A NAME="92">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000093.html">[99s-extend] cowboy and chromium
+</A><A NAME="93">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+<LI><A HREF="000094.html">[99s-extend] cowboy and chromium
+</A><A NAME="94">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000095.html">[99s-extend] cowboy and chromium
+</A><A NAME="95">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+<LI><A HREF="000096.html">[99s-extend] cowboy and chromium
+</A><A NAME="96">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000097.html">[99s-extend] cowboy and chromium
+</A><A NAME="97">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+<LI><A HREF="000098.html">[99s-extend] Distributed model?
+</A><A NAME="98">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000099.html">[99s-extend] Distributed model?
+</A><A NAME="99">&nbsp;</A>
+<I>Jeremy Ong
+</I>
+
+<LI><A HREF="000100.html">[99s-extend] Distributed model?
+</A><A NAME="100">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000101.html">[99s-extend] Distributed model?
+</A><A NAME="101">&nbsp;</A>
+<I>Jeremy Ong
+</I>
+
+<LI><A HREF="000102.html">[99s-extend] Distributed model?
+</A><A NAME="102">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000103.html">[99s-extend] Distributed model?
+</A><A NAME="103">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000104.html">[99s-extend] populating #http_req for unit testing
+</A><A NAME="104">&nbsp;</A>
+<I>Brown, Kevin
+</I>
+
+<LI><A HREF="000105.html">[99s-extend] populating #http_req for unit testing
+</A><A NAME="105">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000106.html">[99s-extend] populating #http_req for unit testing
+</A><A NAME="106">&nbsp;</A>
+<I>Brown, Kevin
+</I>
+
+<LI><A HREF="000107.html">[99s-extend] populating #http_req for unit testing
+</A><A NAME="107">&nbsp;</A>
+<I>Eduardo Gurgel
+</I>
+
+<LI><A HREF="000108.html">[99s-extend] Reading body_qs multiple times
+</A><A NAME="108">&nbsp;</A>
+<I>rambocoder
+</I>
+
+<LI><A HREF="000109.html">[99s-extend] Reading body_qs multiple times
+</A><A NAME="109">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000110.html">[99s-extend] Reading body_qs multiple times
+</A><A NAME="110">&nbsp;</A>
+<I>rambocoder
+</I>
+
+<LI><A HREF="000111.html">[99s-extend] Reading body_qs multiple times
+</A><A NAME="111">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000112.html">[99s-extend] Cowboy CORS
+</A><A NAME="112">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000113.html">[99s-extend] Cowboy CORS
+</A><A NAME="113">&nbsp;</A>
+<I>Phillips, Christopher
+</I>
+
+<LI><A HREF="000114.html">[99s-extend] 505 error
+</A><A NAME="114">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000115.html">[99s-extend] 505 error
+</A><A NAME="115">&nbsp;</A>
+<I>Brown, Kevin
+</I>
+
+<LI><A HREF="000116.html">[99s-extend] 505 error
+</A><A NAME="116">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000117.html">[99s-extend] 505 error
+</A><A NAME="117">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000118.html">[99s-extend] 505 error
+</A><A NAME="118">&nbsp;</A>
+<I>Brown, Kevin
+</I>
+
+<LI><A HREF="000119.html">[99s-extend] 505 error
+</A><A NAME="119">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000120.html">[99s-extend] 505 error
+</A><A NAME="120">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000121.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A><A NAME="121">&nbsp;</A>
+<I>yongboy
+</I>
+
+<LI><A HREF="000122.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A><A NAME="122">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000123.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A><A NAME="123">&nbsp;</A>
+<I>yongboy
+</I>
+
+<LI><A HREF="000124.html">[99s-extend] cowboy how to ruduce the memory usage per long-hold connection
+</A><A NAME="124">&nbsp;</A>
+<I>yongboy
+</I>
+
+<LI><A HREF="000125.html">[99s-extend] cowboy how to ruduce the memory usage per long-hold connection
+</A><A NAME="125">&nbsp;</A>
+<I>rambocoder
+</I>
+
+<LI><A HREF="000126.html">[99s-extend] [ANN] Cowboy 0.8.4
+</A><A NAME="126">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000127.html">[99s-extend] cowboy websocket and wamp
+</A><A NAME="127">&nbsp;</A>
+<I>Gregory de Souza
+</I>
+
+ </ul>
+ <p>
+ <a name="end"><b>Last message date:</b></a>
+ <i>Tue Apr 30 20:59:21 CEST 2013</i><br>
+ <b>Archived on:</b> <i>Wed May 28 18:41:43 CEST 2014</i>
+ <p>
+ <ul>
+ <li> <b>Messages sorted by:</b>
+ <a href="thread.html#start">[ thread ]</a>
+ <a href="subject.html#start">[ subject ]</a>
+ <a href="author.html#start">[ author ]</a>
+
+ <li><b><a href="https://lists.ninenines.eu/listinfo/extend">More info on this list...
+ </a></b></li>
+ </ul>
+ <p>
+ <hr>
+ <i>This archive was generated by
+ Pipermail 0.09 (Mailman edition).</i>
+ </BODY>
+</HTML>
+
diff --git a/_build/static/archives/extend/2013-April/index.html b/_build/static/archives/extend/2013-April/index.html
new file mode 120000
index 00000000..db4b46f7
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/index.html
@@ -0,0 +1 @@
+thread.html \ No newline at end of file
diff --git a/_build/static/archives/extend/2013-April/subject.html b/_build/static/archives/extend/2013-April/subject.html
new file mode 100644
index 00000000..741c7962
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/subject.html
@@ -0,0 +1,322 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <title>The Extend April 2013 Archive by subject</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <a name="start"></A>
+ <h1>April 2013 Archives by subject</h1>
+ <ul>
+ <li> <b>Messages sorted by:</b>
+ <a href="thread.html#start">[ thread ]</a>
+
+ <a href="author.html#start">[ author ]</a>
+ <a href="date.html#start">[ date ]</a>
+
+ <li><b><a href="https://lists.ninenines.eu/listinfo/extend">More info on this list...
+ </a></b></li>
+ </ul>
+ <p><b>Starting:</b> <i>Tue Apr 2 19:23:28 CEST 2013</i><br>
+ <b>Ending:</b> <i>Tue Apr 30 20:59:21 CEST 2013</i><br>
+ <b>Messages:</b> 55<p>
+ <ul>
+
+<LI><A HREF="000114.html">[99s-extend] 505 error
+</A><A NAME="114">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000115.html">[99s-extend] 505 error
+</A><A NAME="115">&nbsp;</A>
+<I>Brown, Kevin
+</I>
+
+<LI><A HREF="000116.html">[99s-extend] 505 error
+</A><A NAME="116">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000117.html">[99s-extend] 505 error
+</A><A NAME="117">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000118.html">[99s-extend] 505 error
+</A><A NAME="118">&nbsp;</A>
+<I>Brown, Kevin
+</I>
+
+<LI><A HREF="000119.html">[99s-extend] 505 error
+</A><A NAME="119">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000120.html">[99s-extend] 505 error
+</A><A NAME="120">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000074.html">[99s-extend] [ANN] Cowboy 0.8.3
+</A><A NAME="74">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000126.html">[99s-extend] [ANN] Cowboy 0.8.4
+</A><A NAME="126">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000073.html">[99s-extend] [ANN] Ranch 0.8.0
+</A><A NAME="73">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000078.html">[99s-extend] Bullet connection
+</A><A NAME="78">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000079.html">[99s-extend] Bullet connection
+</A><A NAME="79">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000080.html">[99s-extend] Bullet connection
+</A><A NAME="80">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000087.html">[99s-extend] cowboy and chromium
+</A><A NAME="87">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+<LI><A HREF="000089.html">[99s-extend] cowboy and chromium
+</A><A NAME="89">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000090.html">[99s-extend] cowboy and chromium
+</A><A NAME="90">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+<LI><A HREF="000091.html">[99s-extend] cowboy and chromium
+</A><A NAME="91">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000093.html">[99s-extend] cowboy and chromium
+</A><A NAME="93">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+<LI><A HREF="000094.html">[99s-extend] cowboy and chromium
+</A><A NAME="94">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000095.html">[99s-extend] cowboy and chromium
+</A><A NAME="95">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+<LI><A HREF="000096.html">[99s-extend] cowboy and chromium
+</A><A NAME="96">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000097.html">[99s-extend] cowboy and chromium
+</A><A NAME="97">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+<LI><A HREF="000112.html">[99s-extend] Cowboy CORS
+</A><A NAME="112">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000113.html">[99s-extend] Cowboy CORS
+</A><A NAME="113">&nbsp;</A>
+<I>Phillips, Christopher
+</I>
+
+<LI><A HREF="000124.html">[99s-extend] cowboy how to ruduce the memory usage per long-hold connection
+</A><A NAME="124">&nbsp;</A>
+<I>yongboy
+</I>
+
+<LI><A HREF="000125.html">[99s-extend] cowboy how to ruduce the memory usage per long-hold connection
+</A><A NAME="125">&nbsp;</A>
+<I>rambocoder
+</I>
+
+<LI><A HREF="000127.html">[99s-extend] cowboy websocket and wamp
+</A><A NAME="127">&nbsp;</A>
+<I>Gregory de Souza
+</I>
+
+<LI><A HREF="000098.html">[99s-extend] Distributed model?
+</A><A NAME="98">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000099.html">[99s-extend] Distributed model?
+</A><A NAME="99">&nbsp;</A>
+<I>Jeremy Ong
+</I>
+
+<LI><A HREF="000100.html">[99s-extend] Distributed model?
+</A><A NAME="100">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000101.html">[99s-extend] Distributed model?
+</A><A NAME="101">&nbsp;</A>
+<I>Jeremy Ong
+</I>
+
+<LI><A HREF="000102.html">[99s-extend] Distributed model?
+</A><A NAME="102">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000103.html">[99s-extend] Distributed model?
+</A><A NAME="103">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000121.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A><A NAME="121">&nbsp;</A>
+<I>yongboy
+</I>
+
+<LI><A HREF="000122.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A><A NAME="122">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000123.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A><A NAME="123">&nbsp;</A>
+<I>yongboy
+</I>
+
+<LI><A HREF="000086.html">[99s-extend] Heartbeat?
+</A><A NAME="86">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000088.html">[99s-extend] Heartbeat?
+</A><A NAME="88">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000092.html">[99s-extend] Heartbeat?
+</A><A NAME="92">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000104.html">[99s-extend] populating #http_req for unit testing
+</A><A NAME="104">&nbsp;</A>
+<I>Brown, Kevin
+</I>
+
+<LI><A HREF="000105.html">[99s-extend] populating #http_req for unit testing
+</A><A NAME="105">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000106.html">[99s-extend] populating #http_req for unit testing
+</A><A NAME="106">&nbsp;</A>
+<I>Brown, Kevin
+</I>
+
+<LI><A HREF="000107.html">[99s-extend] populating #http_req for unit testing
+</A><A NAME="107">&nbsp;</A>
+<I>Eduardo Gurgel
+</I>
+
+<LI><A HREF="000081.html">[99s-extend] Problems with Bullet
+</A><A NAME="81">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000082.html">[99s-extend] Problems with Bullet
+</A><A NAME="82">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000083.html">[99s-extend] Problems with Bullet
+</A><A NAME="83">&nbsp;</A>
+<I>Phillips, Christopher
+</I>
+
+<LI><A HREF="000084.html">[99s-extend] Problems with Bullet
+</A><A NAME="84">&nbsp;</A>
+<I>Phillips, Christopher
+</I>
+
+<LI><A HREF="000085.html">[99s-extend] Problems with Bullet
+</A><A NAME="85">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000108.html">[99s-extend] Reading body_qs multiple times
+</A><A NAME="108">&nbsp;</A>
+<I>rambocoder
+</I>
+
+<LI><A HREF="000109.html">[99s-extend] Reading body_qs multiple times
+</A><A NAME="109">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000110.html">[99s-extend] Reading body_qs multiple times
+</A><A NAME="110">&nbsp;</A>
+<I>rambocoder
+</I>
+
+<LI><A HREF="000111.html">[99s-extend] Reading body_qs multiple times
+</A><A NAME="111">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<LI><A HREF="000075.html">[99s-extend] Response headers
+</A><A NAME="75">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<LI><A HREF="000076.html">[99s-extend] Response headers
+</A><A NAME="76">&nbsp;</A>
+<I>Phillips, Christopher
+</I>
+
+<LI><A HREF="000077.html">[99s-extend] Response headers
+</A><A NAME="77">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+ </ul>
+ <p>
+ <a name="end"><b>Last message date:</b></a>
+ <i>Tue Apr 30 20:59:21 CEST 2013</i><br>
+ <b>Archived on:</b> <i>Wed May 28 18:41:43 CEST 2014</i>
+ <p>
+ <ul>
+ <li> <b>Messages sorted by:</b>
+ <a href="thread.html#start">[ thread ]</a>
+
+ <a href="author.html#start">[ author ]</a>
+ <a href="date.html#start">[ date ]</a>
+ <li><b><a href="https://lists.ninenines.eu/listinfo/extend">More info on this list...
+ </a></b></li>
+ </ul>
+ <p>
+ <hr>
+ <i>This archive was generated by
+ Pipermail 0.09 (Mailman edition).</i>
+ </BODY>
+</HTML>
+
diff --git a/_build/static/archives/extend/2013-April/thread.html b/_build/static/archives/extend/2013-April/thread.html
new file mode 100644
index 00000000..eafeca8a
--- /dev/null
+++ b/_build/static/archives/extend/2013-April/thread.html
@@ -0,0 +1,431 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+ <HEAD>
+ <title>The Extend April 2013 Archive by thread</title>
+ <META NAME="robots" CONTENT="noindex,follow">
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <a name="start"></A>
+ <h1>April 2013 Archives by thread</h1>
+ <ul>
+ <li> <b>Messages sorted by:</b>
+
+ <a href="subject.html#start">[ subject ]</a>
+ <a href="author.html#start">[ author ]</a>
+ <a href="date.html#start">[ date ]</a>
+
+ <li><b><a href="https://lists.ninenines.eu/listinfo/extend">More info on this list...
+ </a></b></li>
+ </ul>
+ <p><b>Starting:</b> <i>Tue Apr 2 19:23:28 CEST 2013</i><br>
+ <b>Ending:</b> <i>Tue Apr 30 20:59:21 CEST 2013</i><br>
+ <b>Messages:</b> 55<p>
+ <ul>
+
+<!--0 01364923408.73- -->
+<LI><A HREF="000073.html">[99s-extend] [ANN] Ranch 0.8.0
+</A><A NAME="73">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<!--0 01365002476.74- -->
+<LI><A HREF="000074.html">[99s-extend] [ANN] Cowboy 0.8.3
+</A><A NAME="74">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<!--0 01365017600.75- -->
+<LI><A HREF="000075.html">[99s-extend] Response headers
+</A><A NAME="75">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<UL>
+<!--1 01365017600.75-01365021336.76- -->
+<LI><A HREF="000076.html">[99s-extend] Response headers
+</A><A NAME="76">&nbsp;</A>
+<I>Phillips, Christopher
+</I>
+
+<UL>
+<!--2 01365017600.75-01365021336.76-01365064687.77- -->
+<LI><A HREF="000077.html">[99s-extend] Response headers
+</A><A NAME="77">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+</UL>
+</UL>
+<!--0 01365106674.78- -->
+<LI><A HREF="000078.html">[99s-extend] Bullet connection
+</A><A NAME="78">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<UL>
+<!--1 01365106674.78-01365107972.79- -->
+<LI><A HREF="000079.html">[99s-extend] Bullet connection
+</A><A NAME="79">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<UL>
+<!--2 01365106674.78-01365107972.79-01365108894.80- -->
+<LI><A HREF="000080.html">[99s-extend] Bullet connection
+</A><A NAME="80">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+</UL>
+</UL>
+<!--0 01365429218.81- -->
+<LI><A HREF="000081.html">[99s-extend] Problems with Bullet
+</A><A NAME="81">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<UL>
+<!--1 01365429218.81-01365430111.82- -->
+<LI><A HREF="000082.html">[99s-extend] Problems with Bullet
+</A><A NAME="82">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<UL>
+<!--2 01365429218.81-01365430111.82-01365430707.84- -->
+<LI><A HREF="000084.html">[99s-extend] Problems with Bullet
+</A><A NAME="84">&nbsp;</A>
+<I>Phillips, Christopher
+</I>
+
+<UL>
+<!--3 01365429218.81-01365430111.82-01365430707.84-01365430913.85- -->
+<LI><A HREF="000085.html">[99s-extend] Problems with Bullet
+</A><A NAME="85">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+</UL>
+</UL>
+<!--1 01365429218.81-01365430304.83- -->
+<LI><A HREF="000083.html">[99s-extend] Problems with Bullet
+</A><A NAME="83">&nbsp;</A>
+<I>Phillips, Christopher
+</I>
+
+</UL>
+<!--0 01365594465.86- -->
+<LI><A HREF="000086.html">[99s-extend] Heartbeat?
+</A><A NAME="86">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<UL>
+<!--1 01365594465.86-01365604706.88- -->
+<LI><A HREF="000088.html">[99s-extend] Heartbeat?
+</A><A NAME="88">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<UL>
+<!--2 01365594465.86-01365604706.88-01365605604.92- -->
+<LI><A HREF="000092.html">[99s-extend] Heartbeat?
+</A><A NAME="92">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+</UL>
+</UL>
+<!--0 01365595247.87- -->
+<LI><A HREF="000087.html">[99s-extend] cowboy and chromium
+</A><A NAME="87">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+<UL>
+<!--1 01365595247.87-01365604881.89- -->
+<LI><A HREF="000089.html">[99s-extend] cowboy and chromium
+</A><A NAME="89">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<UL>
+<!--2 01365595247.87-01365604881.89-01365605431.90- -->
+<LI><A HREF="000090.html">[99s-extend] cowboy and chromium
+</A><A NAME="90">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+<UL>
+<!--3 01365595247.87-01365604881.89-01365605431.90-01365605510.91- -->
+<LI><A HREF="000091.html">[99s-extend] cowboy and chromium
+</A><A NAME="91">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<!--3 01365595247.87-01365604881.89-01365605431.90-01365605510.91-01365605768.93- -->
+<LI><A HREF="000093.html">[99s-extend] cowboy and chromium
+</A><A NAME="93">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+<!--3 01365595247.87-01365604881.89-01365605431.90-01365605510.91-01365605768.93-01365606074.94- -->
+<LI><A HREF="000094.html">[99s-extend] cowboy and chromium
+</A><A NAME="94">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<!--3 01365595247.87-01365604881.89-01365605431.90-01365605510.91-01365605768.93-01365606074.94-01365606351.95- -->
+<LI><A HREF="000095.html">[99s-extend] cowboy and chromium
+</A><A NAME="95">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+<!--3 01365595247.87-01365604881.89-01365605431.90-01365605510.91-01365605768.93-01365606074.94-01365606351.95-01365606438.96- -->
+<LI><A HREF="000096.html">[99s-extend] cowboy and chromium
+</A><A NAME="96">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<!--3 01365595247.87-01365604881.89-01365605431.90-01365605510.91-01365605768.93-01365606074.94-01365606351.95-01365606438.96-01365606717.97- -->
+<LI><A HREF="000097.html">[99s-extend] cowboy and chromium
+</A><A NAME="97">&nbsp;</A>
+<I>Sasa Juric
+</I>
+
+</UL>
+</UL>
+</UL>
+<!--0 01365659472.98- -->
+<LI><A HREF="000098.html">[99s-extend] Distributed model?
+</A><A NAME="98">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<UL>
+<!--1 01365659472.98-01365661756.99- -->
+<LI><A HREF="000099.html">[99s-extend] Distributed model?
+</A><A NAME="99">&nbsp;</A>
+<I>Jeremy Ong
+</I>
+
+<UL>
+<!--2 01365659472.98-01365661756.99-01365662958.100- -->
+<LI><A HREF="000100.html">[99s-extend] Distributed model?
+</A><A NAME="100">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<UL>
+<!--3 01365659472.98-01365661756.99-01365662958.100-01365663844.101- -->
+<LI><A HREF="000101.html">[99s-extend] Distributed model?
+</A><A NAME="101">&nbsp;</A>
+<I>Jeremy Ong
+</I>
+
+<!--3 01365659472.98-01365661756.99-01365662958.100-01365663844.101-01365684929.102- -->
+<LI><A HREF="000102.html">[99s-extend] Distributed model?
+</A><A NAME="102">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<!--3 01365659472.98-01365661756.99-01365662958.100-01365663844.101-01365684929.102-01365695195.103- -->
+<LI><A HREF="000103.html">[99s-extend] Distributed model?
+</A><A NAME="103">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+</UL>
+</UL>
+</UL>
+<!--0 01365723438.104- -->
+<LI><A HREF="000104.html">[99s-extend] populating #http_req for unit testing
+</A><A NAME="104">&nbsp;</A>
+<I>Brown, Kevin
+</I>
+
+<UL>
+<!--1 01365723438.104-01365725246.105- -->
+<LI><A HREF="000105.html">[99s-extend] populating #http_req for unit testing
+</A><A NAME="105">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<UL>
+<!--2 01365723438.104-01365725246.105-01365726615.106- -->
+<LI><A HREF="000106.html">[99s-extend] populating #http_req for unit testing
+</A><A NAME="106">&nbsp;</A>
+<I>Brown, Kevin
+</I>
+
+</UL>
+<!--1 01365723438.104-01365851559.107- -->
+<LI><A HREF="000107.html">[99s-extend] populating #http_req for unit testing
+</A><A NAME="107">&nbsp;</A>
+<I>Eduardo Gurgel
+</I>
+
+</UL>
+<!--0 01366058742.108- -->
+<LI><A HREF="000108.html">[99s-extend] Reading body_qs multiple times
+</A><A NAME="108">&nbsp;</A>
+<I>rambocoder
+</I>
+
+<UL>
+<!--1 01366058742.108-01366058867.109- -->
+<LI><A HREF="000109.html">[99s-extend] Reading body_qs multiple times
+</A><A NAME="109">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<UL>
+<!--2 01366058742.108-01366058867.109-01366071224.110- -->
+<LI><A HREF="000110.html">[99s-extend] Reading body_qs multiple times
+</A><A NAME="110">&nbsp;</A>
+<I>rambocoder
+</I>
+
+<UL>
+<!--3 01366058742.108-01366058867.109-01366071224.110-01366112054.111- -->
+<LI><A HREF="000111.html">[99s-extend] Reading body_qs multiple times
+</A><A NAME="111">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+</UL>
+</UL>
+</UL>
+<!--0 01366382829.112- -->
+<LI><A HREF="000112.html">[99s-extend] Cowboy CORS
+</A><A NAME="112">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<UL>
+<!--1 01366382829.112-01366384083.113- -->
+<LI><A HREF="000113.html">[99s-extend] Cowboy CORS
+</A><A NAME="113">&nbsp;</A>
+<I>Phillips, Christopher
+</I>
+
+</UL>
+<!--0 01366635594.114- -->
+<LI><A HREF="000114.html">[99s-extend] 505 error
+</A><A NAME="114">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<UL>
+<!--1 01366635594.114-01366640891.115- -->
+<LI><A HREF="000115.html">[99s-extend] 505 error
+</A><A NAME="115">&nbsp;</A>
+<I>Brown, Kevin
+</I>
+
+<UL>
+<!--2 01366635594.114-01366640891.115-01366641619.116- -->
+<LI><A HREF="000116.html">[99s-extend] 505 error
+</A><A NAME="116">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<UL>
+<!--3 01366635594.114-01366640891.115-01366641619.116-01366646024.117- -->
+<LI><A HREF="000117.html">[99s-extend] 505 error
+</A><A NAME="117">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<!--3 01366635594.114-01366640891.115-01366641619.116-01366646111.118- -->
+<LI><A HREF="000118.html">[99s-extend] 505 error
+</A><A NAME="118">&nbsp;</A>
+<I>Brown, Kevin
+</I>
+
+<!--3 01366635594.114-01366640891.115-01366641619.116-01366646111.118-01366655408.119- -->
+<LI><A HREF="000119.html">[99s-extend] 505 error
+</A><A NAME="119">&nbsp;</A>
+<I>Lee Sylvester
+</I>
+
+<!--3 01366635594.114-01366640891.115-01366641619.116-01366646111.118-01366655408.119-01366658379.120- -->
+<LI><A HREF="000120.html">[99s-extend] 505 error
+</A><A NAME="120">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+</UL>
+</UL>
+</UL>
+<!--0 01366861584.121- -->
+<LI><A HREF="000121.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A><A NAME="121">&nbsp;</A>
+<I>yongboy
+</I>
+
+<UL>
+<!--1 01366861584.121-01366890135.122- -->
+<LI><A HREF="000122.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A><A NAME="122">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<UL>
+<!--2 01366861584.121-01366890135.122-01366955820.123- -->
+<LI><A HREF="000123.html">[99s-extend] does cowboy support hot code reload/replace ?
+</A><A NAME="123">&nbsp;</A>
+<I>yongboy
+</I>
+
+</UL>
+</UL>
+<!--0 01366956716.124- -->
+<LI><A HREF="000124.html">[99s-extend] cowboy how to ruduce the memory usage per long-hold connection
+</A><A NAME="124">&nbsp;</A>
+<I>yongboy
+</I>
+
+<UL>
+<!--1 01366956716.124-01366981913.125- -->
+<LI><A HREF="000125.html">[99s-extend] cowboy how to ruduce the memory usage per long-hold connection
+</A><A NAME="125">&nbsp;</A>
+<I>rambocoder
+</I>
+
+</UL>
+<!--0 01366989692.126- -->
+<LI><A HREF="000126.html">[99s-extend] [ANN] Cowboy 0.8.4
+</A><A NAME="126">&nbsp;</A>
+<I>Lo&#239;c Hoguin
+</I>
+
+<!--0 01367348361.127- -->
+<LI><A HREF="000127.html">[99s-extend] cowboy websocket and wamp
+</A><A NAME="127">&nbsp;</A>
+<I>Gregory de Souza
+</I>
+
+ </ul>
+ <p>
+ <a name="end"><b>Last message date:</b></a>
+ <i>Tue Apr 30 20:59:21 CEST 2013</i><br>
+ <b>Archived on:</b> <i>Wed May 28 18:41:43 CEST 2014</i>
+ <p>
+ <ul>
+ <li> <b>Messages sorted by:</b>
+
+ <a href="subject.html#start">[ subject ]</a>
+ <a href="author.html#start">[ author ]</a>
+ <a href="date.html#start">[ date ]</a>
+ <li><b><a href="https://lists.ninenines.eu/listinfo/extend">More info on this list...
+ </a></b></li>
+ </ul>
+ <p>
+ <hr>
+ <i>This archive was generated by
+ Pipermail 0.09 (Mailman edition).</i>
+ </BODY>
+</HTML>
+