The web in a box - a next generation web framework for the Perl programming language

IRC log for #mojo, 2017-12-23

| Channels | #mojo index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 jberger hahahahaha https://twitter.com/PerlTricks/status/944356390793080834
00:00 jberger forgot about that
00:01 jberger maybe my superpower is nudging people at the right time
00:01 marty_ joined #mojo
00:04 mohawk jberger++
00:04 mohawk jberger, i'm contemplating a graphql one still?
00:07 jberger so the only thought I have is that I'm considering doing a wrap up post for tomorrow
00:07 jberger which would mean the only real slot open is tonight
00:07 jberger that said
00:07 jberger I could do a wrap up and post it for christmas day if we really wanted
00:08 jberger I suppose no one said it could ONLY be 24 days
00:08 jberger mohawk: thoughts?
00:08 purl i like cheese
00:08 jberger I do too purl
00:09 jberger (got myself some fresh wisconsin cheese curds on the way home)
00:12 jberger https://taustation.space/blog/fueling-space-ships-closed-alpha-test-starts-soon/
00:20 marty joined #mojo
00:31 mohawk_pts jberger, i think tonight would be a bit ambitious for my one
00:31 mohawk_pts although
00:31 mohawk_pts i could do one about my docker exploits, as mentioned above
00:33 jberger I'm not as sure that docker is a good fit for the calendar
00:33 Lee joined #mojo
00:34 jberger I'll take a post on it any time after though
00:34 jberger but as we come to a close on the calendar I'd like to stay a little closer to home
00:35 jberger I think you should work on your graphql post
00:35 jberger I'll post tonight
00:35 jberger if you have something for tomorrow then I can save my wrap up for 25th
00:35 jberger otherwise, we can publish that some time later too
00:35 kgoess are there any known special conditions around setting the Host header in a Mojo::UserAgent request?
00:36 jberger kgoess: ?
00:37 kgoess the server is making a request to a backend, and I set the Host header for the UserAgent, but when it gets pulled off the event loop, the Mojo::Message::Request is using the Host: header from some other place. the url? a previous connection? not sure, but it's a pernicious bug
00:37 kgoess err, problem, it may not be a mojo bug
00:37 kgoess I mean, it's a bug to *me* :-/
00:39 jberger the Host header isn't something you should be setting
00:39 kgoess aha! that's good to know. why not? and are there alternatives?
00:40 jberger the Host header is the host you are requesting, it should always be the same as your request url
00:40 jberger what do you need it for?
00:40 jberger https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Host
00:41 kgoess at the risk of TMI: this mojo service I'm building is using an existing mod_perl webservice as a backend service
00:41 kgoess that existing mod_perl service is usually accessed by requests coming through the front door through the load balancers
00:41 kgoess this mojo service that I'm building is on the network *behind* the load balancers
00:42 mohawk_pts jberger, if you have enough material then i'd prefer to hold off on these two articles:
00:42 mohawk_pts graphql until async works and i can show an openapi and a graphql in-process that talks to it
00:42 jberger mohawk_pts: that's no problem, it was more like I didn't want to cut anyone off if they had stuff in process
00:42 kgoess so that it can use all the existing pool logic for the mod_perls, it's talking to a virtual IP, but it needs a hostname in the Host header to get the right Virtual Host on the mod_perls
00:42 jberger and I knew you had had that one in process
00:43 mohawk_pts docker until i've made the tools and it's all slick :-)
00:43 mohawk_pts jberger, far as i'm concerned it's all good :-)
00:43 jberger neato
00:43 mohawk_pts sorry to have slightly overpromised and underdelivered :-)
00:43 jberger not at all
00:44 jberger you delivered one, and your encouragement got batman's out the door too
00:44 jberger from the start I didn't bank on having any contributions, so those that I got were welcome respites
00:45 mohawk_pts excellent
00:45 jberger kgoess so usually this kind of stuff is handled with X- headers
00:46 jberger things like https://metacpan.org/pod/Mojolicious::Plugin::RequestBase
00:46 jberger however I'm assuming you don't have access to (or don't want to) change the mod_perl stuff?
00:47 kgoess I *could*, I don't remember hearing about X-Request-Base before in that world
00:48 kgoess looking back at the Apache named virtual hosts docs now
00:49 jberger kgoess: this suggests that if you set the host header that it shouldn't be overwritten: https://github.com/kraih/mojo/blob/8a405d8524553632f8586bf1380a385142b4c972/lib/Mojo/Message/Request.pm#L68
00:50 kgoess yeah, I saw that
00:50 kgoess am currently plumbing out the mojo server with debugging lines trying to track down where the change is coming from
00:50 kgoess if you think it *should* work, I'll continue in this direction
00:50 mohawk_pts i've also been pondering taking the docker stuff onwards to 12 factor. seems no-one in perl land has mentioned 12 factor in the last 3-4 years
00:51 jberger mojo get -v -H Host:myhost.com mojolicious.org title
00:52 jberger you said that it changes? what does it change to?
00:52 kgoess yeah, the problem I'm seeing is that it's working ont he first request but not on on subsequent requests after other requests to different Host headers have happened in that mojo worker procerss
00:53 jberger ok that's something different
00:53 jberger how do you mean subsequent requests?
00:53 jberger like redirects?
00:54 kgoess no, separate requests from the remote client
00:54 jberger you'd have to set it each time
00:54 jberger wait, from the remote client?
00:55 jberger now I have no idea what you're asking about
00:55 kgoess yeah, am doing that on the server, and am logging in Mojo::UserAgent->_write  where $tx->req->content->headers->host is "A", which is what I want
00:56 jberger first of all, just use MOJO_USERAGENT_DEBUG=1
00:56 kgoess yeah, I've got that on
00:56 jberger then why are you doing anything in _write?
00:57 kgoess and actually, no, I said it backwards, but the time UserAgent->_write happens it's been set to "B", the wrong thing
00:57 kgoess in Mojo::UserAgent::Transactor->tx, it's correct
00:57 kgoess that gets dropped onto the event loop
00:57 jberger are you by chance doing some crazy dumping of the request body as a string in there someplace?
00:58 kgoess and by the time it gets picked up from the event loop and is in UserAgent->_write, it's been set to "B"
00:58 kgoess what counts as "crazy" ?
00:58 jberger that thing is crazy, dumping the entire request body as a string
00:59 jberger it finalizes headers at the wrong time
01:00 kgoess hmmm?
01:01 kgoess I checked, the only dumping going on is the one that MOJO_USERAGENT_DEBUG does
01:01 jberger ok
01:02 kgoess Mojo::UserAgent::_write gets called by Mojo::UserAgent::_connected, which gets triggered by the event loop, at that point the $tx->req->content->headers->host is not what I'd set it to
01:04 jberger kgoess: I still don't understand
01:04 jberger I see it working on the request I gave you
01:04 sri this pull request changed quite a bit, it is now about full ISO 8601 support, maybe some of you would like to comment https://github.com/kraih/mojo/pull/1167
01:04 jberger and you say it works the first time too
01:05 jberger preaction: I know you are a fan of ISO 8601, do you have thoughts?
01:05 kgoess jberger, right, after restarting the mojo service, the first time it works fine, then the client makes some other requests, then I do this one again, but no dice
01:06 kgoess if you don't know specifically any gotchas in the Host header in there, I'll keep digging
01:06 jberger so something stateful is happening
01:06 kgoess exactly
01:06 jberger are you reusing any part of the request?
01:06 kgoess I know the request has the rigth host header in Mojo::UserAgent::Transactor::tx, which is I think right before it gets handed off to the event loop
01:07 kgoess reusing, no
01:07 jberger are you setting it in an on start handler?
01:07 kgoess "it" ?
01:07 jberger the header
01:07 purl the header is 'Referer:'
01:07 * jberger punts purl
01:07 jberger (oh that could be a good factoid)
01:07 kgoess no, it gets added to a fresh Mojo::UserAgent each time
01:08 kgoess let me doublecheck that, I think I'm logging the reference...
01:08 jberger a new useragent, so it can't even be the same connection
01:08 jberger since keepalive is handled in the useragent
01:09 jberger that sounds impossible and I'm ready to blame your code somehow :-P
01:09 kgoess doublechecking that useragent is fresh...
01:10 kgoess aha
01:11 jberger it isn't a fresh useragent, you are setting the header in a start handler, and you aren't resetting it on each request so the header leaks between requests
01:11 jberger </guess>
01:11 kgoess Mojo::UserAgent=HASH(0x10103a70) is being re-used across requests
01:12 kgoess ok, this I can fix
01:12 jberger that still should be ok
01:12 jberger in theory
01:12 kgoess oh?
01:12 jberger sure
01:12 jberger but it does give an avenue where this COULD happen
01:13 jberger like if you are closing over something wrong or using an event handler to do the samee
01:13 jberger find where you think you are setting the header
01:13 jberger and I'm guessing you'll find something accidentally stateful there
01:14 kgoess oh, right the ua is just from $c->ua
01:14 kgoess request then just looks like $ua->$http_method($full_url => $headers...etc
01:14 kgoess and I logged the header in $headers->{Host} at that point, and it's correct
01:15 kgoess but I'll keep looking down that avenue, you've been super helpful, thanks!
01:17 jberger MOJO_USERAGENT_DEBUG=1 perl -Mojo -E 'g("mojolicious.org" => {Host => "myhost.org"}); g("mojolicious.org" => {Host => "yourhost.net"})' 2>&1 | grep 'Host:'
01:17 jberger is the second header the same as the first each time?
01:19 kgoess checking
01:20 jberger and btw, I'm only trusting the DEBUG output, not your printing of the headers at odd times :-P
01:20 itaipu joined #mojo
01:21 jberger because that happens just as it writes to the handle https://github.com/kraih/mojo/blob/master/lib/Mojo/UserAgent.pm#L359
01:23 kgoess exactly. at that point, in my problem world, the Host: is wrong
01:23 kgoess your command-line runs like you'd expect it to
01:23 kgoess those two requests are blocking, fwiw, not sure if that makes a difference
01:23 jberger and yours are non blocking?
01:23 jberger (me suspects a rogue closure even more now)
01:25 jberger anyway, without seeing code at this point there isn't much else I can do
01:25 kgoess no, thanks, yeah, that's been really helpful
01:25 jberger I suspect you have a statefulness bug, probably a rogue closure over the header variable
01:25 kgoess just the negatives from you ruled out a bunch of things
01:26 jberger or else weird reuse of something else
01:26 kgoess I will continue to investigate
01:26 jberger like reusing the request object or some such
01:26 kgoess have a great holiday weekend, if you do such things where you are!
01:26 jberger thank you very much, same to you on those same terms
01:49 mohawk_pts what if any thoughts do you folks have about, say, a web-app that provides a REST api (say to mobile apps), but also consumes that as part of producing web content?
01:50 mohawk_pts ie, a frontend/backend (that could also be separated, obviously)
01:51 mohawk_pts i ask because that raises the same question about what i'm going to call self-calling (which was talked about in terms of dispatch last time)
01:51 mohawk_pts (and by separated, i mean running in separate processes/machines)
02:33 Lee joined #mojo
02:37 Leffe joined #mojo
02:56 ilbot2 joined #mojo
02:56 Topic for #mojo is now 🍩 nom nom | http://mojolicious.org | http://irclog.mojolicious.org | http://code-of-conduct.mojolicious.org
03:12 jberger sri: I have a horrific idea
03:12 jberger this is a jberger idea of old
03:12 jberger CandyAngel watch out, I'm taking my title back
03:13 jberger in ojo, b (and maybe others) could use $_ as their default variable if not given
03:15 jberger awww, g(b(mojolicious.org)) doesn't work :(
03:16 jberger needs ->to_string
04:01 Lee joined #mojo
05:06 mohawk_pts just finished making my FakePromise meet (i think) promises/a+
05:07 mohawk_pts how long can it be before i release it as Promise::Tiny?
05:08 pink_mist I am counting the seconds :P
05:08 mohawk_pts it's even got a ->get method for Future compatibility (no joke, that's how i'm using it to test promise-y stuff but still in a blocking style)
05:08 mohawk_pts pink_mist, you and me both, non-gender-specific sibling
05:09 pink_mist maybe release it as an xmas gift for cpan :P
05:10 mohawk_pts i might actually just release it as Acme::Promise::Future::Tiny::Banter
05:10 mohawk_pts (except for the last bit)
05:11 mohawk_pts do any perl IDEs do continuous syntax-checking/linting/CI as you save files?
05:13 pink_mist vim can be made to perl -c your buffer
05:14 mohawk_pts but the workflow is not a recognised "thing" in perl-land?
05:14 mohawk_pts (srs question)
05:15 mohawk_pts reason: i used "npm run watch" with graphql-js while i was doing a bit of a change there, it's quite a nice dev experience
05:16 mohawk_pts so i might make a "modern perl 2.0" which features that, a bit of 12 factor, docker, and a sprinkle of github "scripts to rule them all" mixed in
05:16 mohawk_pts time estimated: 6 minutes
05:26 mohawk_pts http://dilbert.com/strip/1994-10-17
05:30 pink_mist hah :P
05:32 mohawk_pts "mojo generate 12factor" here i come
05:41 Vandal joined #mojo
05:48 jberger mohawk_pts do you use vim?
05:48 jberger https://github.com/jberger/dotfiles/blob/master/vimrc#L26
05:48 jberger https://github.com/jberger/dotfiles/blob/master/vimrc#L60-L65
05:49 mohawk_pts i do!
05:51 mohawk_pts jberger, that will be in "modern perl 2.1" :-)
05:51 jberger ?
05:51 mohawk_pts so the first version will have to wait all the way until you save a file to do stuff
05:52 mohawk_pts but then another add-on would be...
05:52 jberger I make it wait until you save, yes
05:52 jberger but it can do it continuously
05:52 jberger this particular plugin uses vim
05:52 jberger vim's new background process stuff
05:53 jberger so it doesn't block you continuing to type while it runs
05:53 mohawk_pts sure
05:53 mohawk_pts that's pretty neat!
05:54 mohawk_pts i note this line: https://github.com/jberger/dotfiles/blob/master/vimrc#L19
05:54 jberger (also, I'm a huge fan of the vim package manager I use, it doesn't get nearly enough press)
05:54 jberger hahaha
05:54 mohawk_pts "vim: for when you thought emacs was too small, fast, and featureless"
05:54 jberger that bit there bootstraps the plugin manager right in your vimrc
05:55 jberger all of the plugins are then declared ... declariatively
05:55 jberger (sp)
05:55 jberger that one file is my entire vimrc AND plugins
05:56 jberger load it into a new vim and it will go fetch all the plugins for me
05:56 mohawk_pts i remember reading of people who used to use emacs for email, news, ...
05:56 mohawk_pts sounds like vim has metastasised equally
06:03 jberger I don't know that I'd say that
06:04 jberger I just think that having a plugin manager that actually manages your plugins rather than you having to use git submodules to do it is much nicer
06:13 mohawk no, it's actually an impressive feat
06:20 Lee joined #mojo
06:23 jberger https://twitter.com/joelaberger/status/944453235498156032
06:23 jberger and that is likely my last full article of this marathon
06:24 * jberger exhales
06:51 mohawk jberger++
06:59 kes joined #mojo
07:00 mohawk wow, that's really a good article!
07:00 mohawk_pts (a really)
07:10 pink_mist realy a really
07:10 pink_mist *really
07:16 mohawk_pts fine
07:16 mohawk_pts it's "jolly good"
08:29 kes spent a bit time to resolve why HASH(0x234131243) is rendered:
08:29 kes http://paste.scsys.co.uk/566224
08:29 kes will it be more handy if 'data/text/json' have special meaning when template and handler stash values are not set?
09:24 jamesaxl joined #mojo
10:14 sh14 joined #mojo
10:25 geospeck joined #mojo
11:20 itaipu joined #mojo
12:02 geospeck joined #mojo
12:02 marty joined #mojo
12:35 geospeck joined #mojo
13:09 sri reminder, please comment if you know a reason for why we should have full ISO 8601 support https://github.com/kraih/mojo/pull/1167
13:32 sri preaction: weren't you supposed to come up with reasons/
13:32 sri ?
14:30 genio answering my own question about Netflix's "Bright"... no. Not worth the watch
14:32 sri didn't that cost netflix like 90 million?
14:33 genio it must have been pretty high for sure. the production quality was pretty good, the movie wasn't
14:34 genio it _could_ have worked better as a series, but meh
15:20 jberger I never said that preaction was required to come up with reasons, I just think that I recall him espousing affection for ISO 8601 and thought he would have better case examples at the tip of the tongue
15:22 jberger I did come up with one
15:22 jberger XMLRPC http://xmlrpc.scripting.com/spec.html
15:25 jberger in Mojo::XMLRPC I try to parse it using Mojo::Date but if it fails I have to fall back to Time::Piece https://github.com/jberger/Mojo-XMLRPC/blob/master/lib/Mojo/XMLRPC.pm#L179-L185
15:43 rickbol_ joined #mojo
16:07 Afristar joined #mojo
16:31 marty joined #mojo
16:36 marty joined #mojo
16:46 ChmEarl joined #mojo
17:18 dod joined #mojo
17:23 nico joined #mojo
17:24 nico hello, with http://search.cpan.org/dist/Mojo-IOLoop-Tail/lib/Mojo/IOLoop/Tail.pm I get 100% CPU usage, is there a way to reduce the checking interval?
17:26 dod joined #mojo
17:26 nico basically I have an app using Mojo::IOLoop and I need to asynchronusly tail a file while the main loop is running but that tail thing should not block the main loop
17:49 mohawk if it's tail, wouldn't it use a select and therefore not need to check at all?
17:49 mohawk perhaps i missed something
17:50 mohawk sri, i (heart) ISO8601 and would love to see it supported
17:51 sri please participate in the issue
17:51 mohawk ok
17:54 mohawk done
17:56 sri what a dumpster fire http://blogs.perl.org/users/leon_timmermans/2017/12/smartmatch-in-5277.html
17:56 sri can we please go back to rjbs era specs?
17:57 mohawk just reading it myself
17:58 mohawk what in god's name (as i just said on #london.pm) is "whereis"? also: "whereso"
18:19 mohawk sri, could you say that emoji here so i can look at the web-irc-log?
18:19 sri 🙄
18:19 sri it's the eye roll emoji
18:19 sri literally
18:20 mohawk magic!
18:20 sri FACE WITH ROLLING EYES
18:20 sri which now might be the code name of mojo 8.0 :p
18:20 mohawk what a time to be alive: you don't have to approximate facial expressions with ascii punctuation no more
18:20 mohawk YES
18:20 mohawk make it so
18:20 purl Fuck that, Picard. Get Data to do it.
18:21 mohawk it's a pity the irclog doesn't seem to do websocket
18:22 sri https://i.imgur.com/0arthS9.png
18:22 sri screenshot
18:22 purl i guess screenshot is import -window root root.png or xwd > woteva.xwd *click* or alt+prntscrn or scrot foo.png
18:22 sri so you get to see it in all its glory
18:23 mohawk oh, i already clicked the link in the topic
18:37 mohawk and thanks!
18:37 mohawk seems perlgeek.de is using apache
18:38 mohawk i wonder whether there's scope to make it use mojo for WS purposes
18:57 jberger mohawk it was designed for p6 dio I'm guessing changes to it would go that way
18:58 jberger s/dio/so/ # thanks swipe type!
19:27 itaipu joined #mojo
19:41 mohawk hm
19:49 mohawk_pts joined #mojo
19:56 CandyAngel jberger: You sure you want to raise those stakes?
19:57 CandyAngel It ends up with MojOS
20:01 jberger :p
20:03 smerft joined #mojo
20:04 CandyAngel "and speaing of development" :P
20:05 jberger I was writing fast! You take your segues where they come!
20:06 CandyAngel Eh.. Pale Moon doesn't render your code examples properly
20:06 jberger ?
20:07 jberger yet another firefox clone?
20:07 jberger yeah
20:07 jberger hmmmm, wonder why not
20:07 jberger I'm just using hljs
20:11 [1]mohawk joined #mojo
20:11 CandyAngel When I scroll them, they corrupt like this: https://ibin.co/3liLTLlIEBp3.png
20:12 CandyAngel I think I know what it is.. Firefox forces something that PM doesn't
20:12 CandyAngel But bringing up discovered issues with them is.. unpleasant
20:12 CandyAngel You found an issue in PM that doesn't happen in any other browser? It's your [ ] computer [ ] setup [ ] usage
20:15 [1]mohawk open source project in poor usability shocker
20:15 [1]mohawk fillum at 11
20:15 CandyAngel So I don't bother. I'll just do what I did with Firefox and use it until I'm totally fed up with it
20:15 CandyAngel :P
20:15 mohawk i'm thinking that i'm done with FF soon
20:16 mohawk i upgraded it from 57 back to 56, suddenly [re]making a bunch of plugins work again
20:16 CandyAngel Losing sound was the last straw for me on that (PulseAudio being required)
20:16 mohawk wow
20:16 mohawk i severely doubt i'll go on to FF anything else
20:17 CandyAngel uzbl2 when? :P
20:18 mohawk for me it's cookiemonster
20:18 mohawk noscript caught up again
20:18 mohawk ABP is apparently in trouble
20:19 jberger I know Chrome has certain fears because of Google, and well founded certainly
20:20 jberger but the addition of the remote debugging api is a game changer
20:20 mohawk well, quite
20:20 mohawk i've like chrome for a while
20:20 mohawk on my last-but-one work laptop, i had FF
20:20 mohawk when i had to get the last one, i switched to chrome and didn't look back
20:20 mohawk i have FF here
20:21 mohawk but as above, i may well switch fully to chrome
20:23 CandyAngel It was funny when they blamed my VM setup for the browser smearing images when you scrolled over them
20:24 CandyAngel The same VM setup where I can do GTA5 and VR
20:24 mohawk gawd
20:26 mohawk just got email from srezic - the Mojo::Promise problem was because there used to be a Mojo::Promise in Evo, that was loaded first because it was in sitearchlib
20:26 mohawk he's now zapped it out of there
20:26 CandyAngel pewpew
20:27 mohawk #winning
20:28 jberger hunh, so he seemingly he keeps a large collection of modules in @INC when testing
20:28 jberger that's very different from most cpantesters
20:30 mohawk it's quite a realistic scenario, so good for him
20:30 sri oh, new black mirror season next week
20:30 jberger it just explains some other failures I've gotten from his boxen over the years
20:30 jberger sri: yeah, that's something to look forward too
20:35 CandyAngel There we go.. forcing OMTC fixes the graphical glitch.. thought it might
20:57 mohawk omtc?
21:00 CandyAngel Off Main Thread Compositing
21:01 mohawk ta
21:04 jberger knowning nothing about the topic, that seems like a lot of acronym-power for rendering text in a scrolled container
21:04 CandyAngel You'd have thought so :P
21:10 mohawk a full ETLA
21:14 jabberwok it is strange that cpanm --test-only is not idempotent, as it nevertheless leaves all the dependencies installed.
21:25 mohawk yeah
21:25 mohawk i had the idea of making it use a local-lib overlab for such a thing
21:26 mohawk i would say it is idempotent, by the way - but not side-effect-free
21:26 mohawk overlab -> overlap
22:31 sri btw. any thoughts about making restrictive placeholders easier with named patterns? $r->get('/foo/(bar:int)')
22:32 jberger sri: I don't know what you mean by that, can you elaborate?
22:33 sri $r->add_pattern(int => qr/[0-9]+/)
22:33 sri alternative to $r->get('/foo/:bar' => [bar => qr/[0-9]+/])
22:34 sri $r->add_pattern(foo => ['also', 'alternatives'])
22:35 sri $r->get('/(whatever:foo)')
22:36 jberger so it allows patterns to be reusable and cleans up the definitions
22:36 jberger nice, I like it
22:36 jberger would the old way still exist or would this replace it
22:36 jberger (not that I mind too much either way)
22:36 sri would still exist, in fact it would use the old way
22:36 sri kinda
22:37 sri i mean, the old way could be removed
22:37 sri internals of it would stay though
22:38 jberger the only thing that would make me think that the old way should stay is that if some application used lots of restrictive placeholders but never reused any, it might be less nice since all the restrictions would have to be declared elsewhere
22:38 jberger rather than just declaring them as they are used
22:57 sri now it's up for discussion and voting https://github.com/kraih/mojo/issues/1175
23:08 CandyAngel Well, this is exciting
23:11 CandyAngel perl fails to install.. because localhost is going out to DNS to be resolved :|
23:40 jberger sri: I'm not sure I like the syntax though
23:40 jberger does that then require the : placeholder?
23:41 sri ?
23:42 sri the :, # and * prefixes have no meaning for restrictive placeholders
23:42 jberger really?
23:42 sri none whatsoever
23:42 jberger hmmmm, guess that shows how much I use those
23:42 jberger ok I retract my statement
23:43 sri those prefixes are basically just named patterns for .+ and so on
23:44 sri a relaxed placeholder is nothing more than $r->get('/(foo)', foo => qr/[^/]+/)
23:45 sri yes, that works right now
23:49 robx joined #mojo
23:50 sri but feel free to bikeshed the syntax
23:50 sri i don't really care

| Channels | #mojo index | Today | | Search | Google Search | Plain-Text | summary