summaryrefslogtreecommitdiffstats
path: root/archives/extend/2012-November.txt
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2016-08-29 12:39:49 +0200
committerLoïc Hoguin <[email protected]>2016-08-29 12:40:03 +0200
commitc807880f7ac73f813b2660ea81a00f7712a4e793 (patch)
treeba1d09e9b177f230665a80513b33fbd532000ce4 /archives/extend/2012-November.txt
parentb1df25a7d9cda697513650659b781b55b40898f8 (diff)
downloadninenines.eu-c807880f7ac73f813b2660ea81a00f7712a4e793.tar.gz
ninenines.eu-c807880f7ac73f813b2660ea81a00f7712a4e793.tar.bz2
ninenines.eu-c807880f7ac73f813b2660ea81a00f7712a4e793.zip
Add old mailing list archives
Diffstat (limited to 'archives/extend/2012-November.txt')
-rw-r--r--archives/extend/2012-November.txt418
1 files changed, 418 insertions, 0 deletions
diff --git a/archives/extend/2012-November.txt b/archives/extend/2012-November.txt
new file mode 100644
index 00000000..dedac05f
--- /dev/null
+++ b/archives/extend/2012-November.txt
@@ -0,0 +1,418 @@
+From essen at ninenines.eu Tue Nov 13 10:04:17 2012
+From: essen at ninenines.eu (=?ISO-8859-1?Q?Lo=EFc_Hoguin?=)
+Date: Tue, 13 Nov 2012 10:04:17 +0100
+Subject: [99s-extend] Proposal for Cowboy Routing
+Message-ID: <[email protected]>
+
+Hello!
+
+I have put my thoughts on routing at the following gist:
+
+ https://gist.github.com/4064759
+
+Please comment or cry in terror if you're against it!
+
+Thanks.
+
+--
+Lo?c Hoguin
+Erlang Cowboy
+Nine Nines
+http://ninenines.eu
+
+
+From thomas at oinksoft.com Tue Nov 13 15:12:59 2012
+From: thomas at oinksoft.com (Thomas Allen)
+Date: Tue, 13 Nov 2012 09:12:59 -0500
+Subject: [99s-extend] Proposal for Cowboy Routing
+In-Reply-To: <[email protected]>
+References: <[email protected]>
+Message-ID: <[email protected]>
+
+On Tue, Nov 13, 2012 at 10:04:17AM +0100, Lo?c Hoguin wrote:
+> Hello!
+>
+> I have put my thoughts on routing at the following gist:
+>
+> https://gist.github.com/4064759
+>
+> Please comment or cry in terror if you're against it!
+
+I think that this looks very good. The current router handles all of my
+use cases, and this bit of sugar will definitely help to speed up
+development.
+
+As an aside, have you considered adding optional slash-add
+functionality, so that /a/b will match "/a/b/"? This is pretty easy to
+set up at the server level, but the front-line server doesn't know about
+our dispatch rules and so it doesn't know if there is a matching
+dispatch rule for the slash-added version of a given URL.
+
+Thomas
+
+
+From essen at ninenines.eu Tue Nov 13 15:14:03 2012
+From: essen at ninenines.eu (=?ISO-8859-1?Q?Lo=EFc_Hoguin?=)
+Date: Tue, 13 Nov 2012 15:14:03 +0100
+Subject: [99s-extend] Proposal for Cowboy Routing
+In-Reply-To: <[email protected]>
+References: <[email protected]>
+Message-ID: <[email protected]>
+
+On 11/13/2012 03:12 PM, Thomas Allen wrote:
+> On Tue, Nov 13, 2012 at 10:04:17AM +0100, Lo?c Hoguin wrote:
+>> Hello!
+>>
+>> I have put my thoughts on routing at the following gist:
+>>
+>> https://gist.github.com/4064759
+>>
+>> Please comment or cry in terror if you're against it!
+>
+> I think that this looks very good. The current router handles all of my
+> use cases, and this bit of sugar will definitely help to speed up
+> development.
+>
+> As an aside, have you considered adding optional slash-add
+> functionality, so that /a/b will match "/a/b/"? This is pretty easy to
+> set up at the server level, but the front-line server doesn't know about
+> our dispatch rules and so it doesn't know if there is a matching
+> dispatch rule for the slash-added version of a given URL.
+
+/a/b already matches /a/b/.
+
+--
+Lo?c Hoguin
+Erlang Cowboy
+Nine Nines
+http://ninenines.eu
+
+
+From thomas at oinksoft.com Tue Nov 13 15:35:29 2012
+From: thomas at oinksoft.com (Thomas Allen)
+Date: Tue, 13 Nov 2012 09:35:29 -0500
+Subject: [99s-extend] Proposal for Cowboy Routing
+In-Reply-To: <[email protected]>
+References: <[email protected]>
+Message-ID: <[email protected]>
+
+On Tue, Nov 13, 2012 at 03:14:03PM +0100, Lo?c Hoguin wrote:
+> /a/b already matches /a/b/.
+
+Sorry for not being more precise: /a/b would result in a 301 redirect to
+/a/b/
+
+Thomas
+
+
+From essen at ninenines.eu Tue Nov 13 15:41:35 2012
+From: essen at ninenines.eu (=?ISO-8859-1?Q?Lo=EFc_Hoguin?=)
+Date: Tue, 13 Nov 2012 15:41:35 +0100
+Subject: [99s-extend] Proposal for Cowboy Routing
+In-Reply-To: <[email protected]>
+References: <[email protected]>
+Message-ID: <[email protected]>
+
+On 11/13/2012 03:35 PM, Thomas Allen wrote:
+> On Tue, Nov 13, 2012 at 03:14:03PM +0100, Lo?c Hoguin wrote:
+>> /a/b already matches /a/b/.
+>
+> Sorry for not being more precise: /a/b would result in a 301 redirect to
+> /a/b/
+
+Oh alright. Well they are equivalent URLs, so if you really need to
+redirect I would do so in the handler directly, or through a request hook.
+
+--
+Lo?c Hoguin
+Erlang Cowboy
+Nine Nines
+http://ninenines.eu
+
+
+From thomas at oinksoft.com Tue Nov 13 16:12:14 2012
+From: thomas at oinksoft.com (Thomas Allen)
+Date: Tue, 13 Nov 2012 10:12:14 -0500
+Subject: [99s-extend] Proposal for Cowboy Routing
+In-Reply-To: <[email protected]>
+References: <[email protected]>
+Message-ID: <[email protected]>
+
+On Tue, Nov 13, 2012 at 03:41:35PM +0100, Lo?c Hoguin wrote:
+> Oh alright. Well they are equivalent URLs, so if you really need to
+> redirect I would do so in the handler directly, or through a request
+> hook.
+
+I suppose this suggests my next question ... how would one accomplish
+this right now in Cowboy? I hope I'm correct in assuming that this will
+involve cowboy_dispatcher:match/3 in an onrequest fun, but I do not
+understand how I will use match/3 with what I get from
+cowboy_req:path/1.
+
+Thomas
+
+
+From essen at ninenines.eu Tue Nov 13 16:22:48 2012
+From: essen at ninenines.eu (=?ISO-8859-1?Q?Lo=EFc_Hoguin?=)
+Date: Tue, 13 Nov 2012 16:22:48 +0100
+Subject: [99s-extend] Proposal for Cowboy Routing
+In-Reply-To: <[email protected]>
+References: <[email protected]>
+Message-ID: <[email protected]>
+
+On 11/13/2012 04:12 PM, Thomas Allen wrote:
+> On Tue, Nov 13, 2012 at 03:41:35PM +0100, Lo?c Hoguin wrote:
+>> Oh alright. Well they are equivalent URLs, so if you really need to
+>> redirect I would do so in the handler directly, or through a request
+>> hook.
+>
+> I suppose this suggests my next question ... how would one accomplish
+> this right now in Cowboy? I hope I'm correct in assuming that this will
+> involve cowboy_dispatcher:match/3 in an onrequest fun, but I do not
+> understand how I will use match/3 with what I get from
+> cowboy_req:path/1.
+
+No, just check that cowboy_req:path/1 ends with $/, and if it doesn't
+then redirect.
+
+--
+Lo?c Hoguin
+Erlang Cowboy
+Nine Nines
+http://ninenines.eu
+
+
+From dch at jsonified.com Tue Nov 13 16:42:53 2012
+From: dch at jsonified.com (Dave Cottlehuber)
+Date: Tue, 13 Nov 2012 16:42:53 +0100
+Subject: [99s-extend] Proposal for Cowboy Routing
+In-Reply-To: <[email protected]>
+References: <[email protected]>
+Message-ID: <CAL+Y1nunQttGU4=nTQkUZ6tfx7xAi+X4aDJeWAAHnFKsC3C81w@mail.gmail.com>
+
+On 13 November 2012 10:04, Lo?c Hoguin <essen at ninenines.eu> wrote:
+> Hello!
+>
+> I have put my thoughts on routing at the following gist:
+>
+> https://gist.github.com/4064759
+>
+> Please comment or cry in terror if you're against it!
+>
+> Thanks.
+>
+> --
+> Lo?c Hoguin
+> Erlang Cowboy
+> Nine Nines
+> http://ninenines.eu
+> _______________________________________________
+> Extend mailing list
+> Extend at lists.ninenines.eu
+> http://lists.ninenines.eu:81/listinfo/extend
+
+I actually commented on the gist, here's a copy for the ML:
+
+== dch ==
+
+Looks very useful for me. I've not heard of imbrication until today, I
+assume it is closest to nested optional components as used above.
+
+Having regex capability in the constraints would be great:
+
+{"/cars/:name/:color", [{color, in, [blue, red, pink]}], Handler,
+Opts} might be {"/cars/:name/:color", [{color, regex, "^(blue | red |
+pink)$", [other_re_parameters]) , Handler, Opts} for example.
+
+== Lo?c ==
+
+Yes, regex will be a possible constraint. Also checking for integer
+value. Not sure what else we'll want.
+
+A+
+Dave
+
+
+From essen at ninenines.eu Tue Nov 13 16:46:15 2012
+From: essen at ninenines.eu (=?ISO-8859-1?Q?Lo=EFc_Hoguin?=)
+Date: Tue, 13 Nov 2012 16:46:15 +0100
+Subject: [99s-extend] Proposal for Cowboy Routing
+In-Reply-To: <CAL+Y1nunQttGU4=nTQkUZ6tfx7xAi+X4aDJeWAAHnFKsC3C81w@mail.gmail.com>
+References: <[email protected]>
+ <CAL+Y1nunQttGU4=nTQkUZ6tfx7xAi+X4aDJeWAAHnFKsC3C81w@mail.gmail.com>
+Message-ID: <[email protected]>
+
+On 11/13/2012 04:42 PM, Dave Cottlehuber wrote:
+> On 13 November 2012 10:04, Lo?c Hoguin <essen at ninenines.eu> wrote:
+>> Hello!
+>>
+>> I have put my thoughts on routing at the following gist:
+>>
+>> https://gist.github.com/4064759
+>>
+>> Please comment or cry in terror if you're against it!
+>>
+>> Thanks.
+>>
+>> --
+>> Lo?c Hoguin
+>> Erlang Cowboy
+>> Nine Nines
+>> http://ninenines.eu
+>> _______________________________________________
+>> Extend mailing list
+>> Extend at lists.ninenines.eu
+>> http://lists.ninenines.eu:81/listinfo/extend
+>
+> I actually commented on the gist, here's a copy for the ML:
+>
+> == dch ==
+>
+> Looks very useful for me. I've not heard of imbrication until today, I
+> assume it is closest to nested optional components as used above.
+>
+> Having regex capability in the constraints would be great:
+>
+> {"/cars/:name/:color", [{color, in, [blue, red, pink]}], Handler,
+> Opts} might be {"/cars/:name/:color", [{color, regex, "^(blue | red |
+> pink)$", [other_re_parameters]) , Handler, Opts} for example.
+>
+> == Lo?c ==
+>
+> Yes, regex will be a possible constraint. Also checking for integer
+> value. Not sure what else we'll want.
+
+I'll add to that that in the case of integer, we could very well bind
+the value as an integer instead of as a binary, and avoid all these
+pesky list_to_integer(binary_to_list(Value)).
+
+--
+Lo?c Hoguin
+Erlang Cowboy
+Nine Nines
+http://ninenines.eu
+
+
+From thomas at oinksoft.com Tue Nov 13 17:10:04 2012
+From: thomas at oinksoft.com (Thomas Allen)
+Date: Tue, 13 Nov 2012 11:10:04 -0500
+Subject: [99s-extend] Proposal for Cowboy Routing
+In-Reply-To: <[email protected]>
+References: <[email protected]>
+Message-ID: <[email protected]>
+
+On Tue, Nov 13, 2012 at 04:22:48PM +0100, Lo?c Hoguin wrote:
+> No, just check that cowboy_req:path/1 ends with $/, and if it
+> doesn't then redirect.
+
+OK, so what I'm going for is to actually check for a valid URL with the
+slash. I got it to work in current cowboy, but shield your eyes ...
+
+I do this "middleware" thing often ... this might be a misnomer as I
+think some definitions of middleware specify that it be able to wrap the
+request *and* the response. I digress ...
+
+ %%% foo_app.erl:
+
+ {ok, _} = cowboy:start_http(http, ?ACCEPTORS,
+ [{port, ?PORT}],
+ [{dispatch, Dispatch},
+ {onrequest, fun(Req) ->
+ foo_middleware:all(Dispatch, Req)
+ end}]
+ ),
+
+
+ %% foo_middleware.erl:
+
+ -define(MIDDLEWARE, [
+ fun foo_middleware:slash/2,
+ fun foo_middleware:session/2,
+ fun foo_middleware:user/2
+ ]).
+
+ all(Dispatch, Req) ->
+ lists:foldl(fun(F, CurReq) -> F(Dispatch, CurReq) end, Req,
+ ?MIDDLEWARE).
+
+ %% ...
+
+ slash(Dispatch, Req) ->
+ {Path, _} = cowboy_req:path(Req),
+ case binary:last(Path) of
+ $/ -> Req;
+ _ ->
+ SlashPath = <<Path/bitstring, "/">>,
+ {Host, _} = cowboy_req:host(Req),
+ Match = cowboy_dispatcher:match(Dispatch, Host,
+ SlashPath),
+ case element(1, Match) of
+ ok ->
+ cowboy_req:reply(301,
+ [{<<"Location">>, SlashPath}], <<>>, Req);
+ error -> Req
+ end
+ end.
+
+So, I assume that any path not ending in "/" won't match. Another
+version of this could toss that assumption, but then you're performing
+an extra match on every request ... much better to use a '_' rule in
+that case.
+
+One thing that is icky about using a fallback '_' handler, and the
+reason I've elected to use onrequest for this example, is that I do not
+see a way to access cowboy_protocol's state.dispatch to access these
+rules. So, I enclose them in my `onrequest` fun. Would it be possible to
+expose Dispatch? This has many applications, particularly for URL
+reversing.
+
+Perhaps I am missing several things ;^)
+
+Thomas
+
+
+From essen at ninenines.eu Thu Nov 29 11:46:10 2012
+From: essen at ninenines.eu (=?ISO-8859-1?Q?Lo=EFc_Hoguin?=)
+Date: Thu, 29 Nov 2012 11:46:10 +0100
+Subject: [99s-extend] Proposal for Cowboy Routing
+In-Reply-To: <[email protected]>
+References: <[email protected]>
+Message-ID: <[email protected]>
+
+On 11/13/2012 10:04 AM, Lo?c Hoguin wrote:
+> Hello!
+>
+> I have put my thoughts on routing at the following gist:
+>
+> https://gist.github.com/4064759
+>
+> Please comment or cry in terror if you're against it!
+
+I have added more infos and changes as you can see in the comments here:
+https://gist.github.com/4064759#comments Please feedback.
+
+--
+Lo?c Hoguin
+Erlang Cowboy
+Nine Nines
+http://ninenines.eu
+
+