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

IRC log for #mojo, 2014-08-17

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

All times shown according to UTC.

Time Nick Message
00:00 sri like $r->bridge('/')->route('/foo')
00:00 Akron Nice!
00:10 sri or actually better :) https://gist.github.com/anonymous/53619a7466dc0211618b
00:10 sri before and after (as usual)
00:10 sri i can't math so late... but that looks closer to 25% ;p
00:12 sri ohoh
00:12 sri of course my test is wrong :S
00:14 sri the real one https://gist.github.com/anonymous/0884ef35a2f18b0bc45e
00:14 sri so about 20%
00:15 woz joined #mojo
00:46 good_news_everyon joined #mojo
00:46 good_news_everyon [mojo] kraih pushed 1 new commit to master: http://git.io/W7IEBA
00:46 good_news_everyon mojo/master dc1382e Sebastian Riedel: render routes a little faster
00:46 good_news_everyon left #mojo
01:16 woz joined #mojo
01:19 d4rkie_ joined #mojo
01:23 sujithm joined #mojo
01:45 klapperl_ joined #mojo
01:46 good_news_everyon joined #mojo
01:46 good_news_everyon [mojo] kraih pushed 1 new commit to master: http://git.io/uUE0Pg
01:46 good_news_everyon mojo/master cd087ba Sebastian Riedel: improved Mojolicious::Static to only handle GET and HEAD requests
01:46 good_news_everyon left #mojo
01:47 sri so all other methods can be handled by the router, even if a static file with the same patch exists
01:47 sri *path
02:08 good_news_everyon joined #mojo
02:08 good_news_everyon [mojo] kraih pushed 1 new commit to master: http://git.io/ymLa4Q
02:08 good_news_everyon mojo/master ac3de43 Sebastian Riedel: mention request methods in tutorial
02:08 good_news_everyon left #mojo
02:13 good_news_everyon joined #mojo
02:13 good_news_everyon [mojo] kraih pushed 1 new commit to master: http://git.io/Aph2nw
02:13 good_news_everyon mojo/master 3e09f14 Sebastian Riedel: better explanation for request methods used for static files
02:13 good_news_everyon left #mojo
02:17 woz joined #mojo
02:47 mattastrophe joined #mojo
02:48 noganex joined #mojo
02:57 dexteruk joined #mojo
02:57 dexteruk_ joined #mojo
02:58 preaction joined #mojo
02:58 davido_ joined #mojo
03:07 davido__ joined #mojo
03:11 basic6_ joined #mojo
03:15 basic6 joined #mojo
03:19 woz joined #mojo
03:32 d4rkie joined #mojo
03:42 dexteruk__ joined #mojo
03:43 dexteruk___ joined #mojo
03:54 d4rkie joined #mojo
04:20 woz joined #mojo
05:09 Kovensky joined #mojo
05:21 woz joined #mojo
05:29 KindOne joined #mojo
05:40 preaction joined #mojo
05:58 sujithm joined #mojo
06:10 Eke- joined #mojo
06:22 GabrielVieira joined #mojo
06:22 woz joined #mojo
06:41 KCL joined #mojo
07:23 woz joined #mojo
07:24 Vandal joined #mojo
07:30 marcus sri: Seems I was benchmarking the default not_found.html.ep last night, not the default hello world. Which makes a lot of sense, given that the default hello world has no url_for.
08:03 trone joined #mojo
08:04 crab well, is the performance of the default not_found.html.ep up to scratch?
08:07 marcus crab: it has two url_for calls, which we optimized last night :)
08:07 marcus crab: which I think it useful for most real apps too
08:07 marcus I lol'ed at https://twitter.com/blipsofadoug/status/500789002107363329
08:12 crab what does it mean?
08:12 crab we have separate server and client modules too...
08:18 dotan joined #mojo
08:24 woz joined #mojo
08:31 nic Mojolicious -- extreme perl
08:31 purl i heard extreme perl was rather nice
08:34 nic it's a shame more peeps don't see the value of bundling them together
08:35 nic Would be worth a blog post spelling it out
08:36 marcus I think this 'mojo is huge' idea is pretty funny. Rails is about 50.000 LOC excluding tests.
08:37 marcus vs mojolicious at close to 9k lines
08:37 nic mojo doesn't just influence current activity; future frameworks too
08:37 * nic nods
08:38 nic I did a comparison of install times and footprints
08:38 * nic was shocked
08:38 marcus The main hapi.js distribution is about 5200 LOC, but of course they get the node.js ioloop for free.
08:40 nic it spoils me a bit tho
08:41 nic i've started using SQL::Abstract::More
08:42 nic feels heavyweight compared to the rest of my tools
08:42 nic (even tho it's fine compared to most of cpan)
08:44 marcus Catalyst clocks in at ~8000 LOC including Devel, Dancer2 is about 7000LOC
08:46 nic https://gist.github.com/niczero/27e20e5de01f00d9ebfb
08:47 marcus The entire mojo ioloop is ~750 LOC. :-o Would have thought it was more
08:52 marcus And the servers about the same.
08:52 marcus the DOM is about 1250 LOC
09:00 batman http://p.thorsen.pm/8b2f0b7efe84 # sloccount of Mojo
09:01 batman i don't think sloccount count documentation
09:03 preaction it doesn't
09:25 woz joined #mojo
09:26 marcus batman: yeah, I've been using http://cloc.sourceforge.net/ to count loc, which also excludes pod
09:26 sujithm joined #mojo
09:26 batman ok
09:26 marcus I've used sloccount before, but it doesn't seem to work for JS.
09:26 batman oh. didn't know that :/
09:44 argh joined #mojo
09:51 argh joined #mojo
10:14 basic6_ joined #mojo
10:23 irq joined #mojo
10:27 woz joined #mojo
10:30 d4rkie joined #mojo
10:51 d4rkie joined #mojo
11:28 woz joined #mojo
11:36 GabrielVieira joined #mojo
11:55 batman tempire: could you document how to set up the client auth part for https://metacpan.org/pod/distribution/Mojolicious-Plugin-SslAuth/README.pod ?
12:25 sujithm joined #mojo
12:28 woz joined #mojo
12:35 good_news_everyon joined #mojo
12:35 good_news_everyon [mojo] kraih pushed 1 new commit to master: http://git.io/XE3yFw
12:35 good_news_everyon mojo/master fe95f1c Sebastian Riedel: improved overall performance by a few percent
12:35 good_news_everyon left #mojo
12:42 irq joined #mojo
12:53 sri checking the cookie header in Mojolicious::Sessions does seem a bit silly, but it goes through so many layers otherwise that it's an imporvement of 5-10% for requests without cookies :o
12:58 bodgix joined #mojo
13:29 woz joined #mojo
13:43 hesco joined #mojo
13:46 sri hmm, i have found a very odd bug
13:46 sri it only happens with the prefork daemon
13:47 sri randomly *main::DATA is completely empty for one worker process
13:59 hesco joined #mojo
14:01 sri can replicate it on osx and linux
14:01 sri soo, odds are all mojolicious apps with stuff in the DATA section are affected
14:14 sri and i know what it is... but no clue how to fix
14:14 sri it's a race condition
14:15 GabrielVieira joined #mojo
14:15 sri i have also no clue how DATA works exactly, but apparently it's shared and if two processes access it at the same time bad stuff happens
14:15 jberger I didn't think we used the actual *DATA handle anyway
14:19 sri how else would we get the data?
14:20 jberger sri: https://github.com/kraih/mojo/blob/master/lib/Mojo/Loader.pm#L59
14:20 sri ?
14:20 jberger oh, I guess that does still use *DATA
14:21 GabrielVieira joined #mojo
14:23 jberger but it essentially just does that to locate the right file, yeah?
14:23 basic6 joined #mojo
14:25 batman sri: could you flock it?
14:26 batman or what about opening the actual file, by finding the path in $INC{"My/Module.pm"} ?
14:27 sri flock does not work
14:28 sri was my first thought as well, but dos nothing
14:31 sri here's my test case https://gist.github.com/anonymous/138963360dfb88f670be
14:31 sri just start it with perl -Ilib test.pl prefork
14:32 sri randomly you will get an empty hash
14:32 sri that empty hash is the problem
14:32 sri you can trigger the problem more reliable by removing the seek https://github.com/kraih/mojo/blob/master/lib/Mojo/Loader.pm#L55
14:33 jberger Oh! I probably know what that is
14:33 * jberger searches docs
14:34 jberger http://perldoc.perl.org/perlfork.html#CAVEATS-AND-LIMITATIONS
14:35 jberger see: open filehandles
14:35 jberger seek pointer is shared!
14:35 irq joined #mojo
14:38 jberger and if that is the problem, then I have one too
14:39 jberger http://www.cpantesters.org/distro/M/Mojo-IOLoop-ForkCall.html?oncpan=1&distmat=1&version=0.13
14:39 jberger latest forkcall fails on perl <= 5.12.5
14:42 jberger in that case the error is a little misleading
14:43 sri jberger: that is the problem, currently discussing it in #p5p too
14:43 sri shared seek pointer is the race condition
14:43 jberger https://github.com/jberger/Mojo-IOLoop-ForkCall/blob/master/t/functional.t#L27-L34
14:44 jberger with that variant of the test, $err is undef
14:44 jberger but only on perl <= 5.12.5
14:49 sri ummm
14:49 sri does flock not work across processes at all?
14:50 sri i've been trying this https://gist.github.com/anonymous/2d83c218d6d07ff742c4
14:50 sri and it doesn't appear to work
14:51 sri race conditions do happen a lot less often, but they still do happen
14:51 sri we may be really really screwed if this turns out to be true
14:52 jberger could we pre-cache the data?
14:52 jberger does prefork run startup before forking?
14:52 sri it's not just about this, we use flock in many other places
14:52 sri how do you pre-cache for a lite app?
14:52 sri plugins are loaded after startup there
14:53 jberger yeah
14:53 jberger hmmmmm
14:53 sri we would have to force servers to perform a warm-up request in the parent process or so
14:54 batman sri: why won't you try the filename in %INC ?
14:54 sri batman: why won't you?
14:54 sri i'm making everything i have public so you can help!
14:55 jberger batman: that also doesn't help for main::
14:56 jberger but otherwise I think that might help
14:56 jberger (for this not flock)
14:56 batman hm... true
14:59 basiliscos joined #mojo
15:00 basiliscos joined #mojo
15:02 jberger sri: did I miss anything on #p5p, I don't see any activity now
15:07 batman sri: it doesn't fail at my laptop :/
15:07 batman about flock: i was thinking flock($handle, FLOCK_EX) inside Mojo::Loader
15:14 jberger batman: I had to run it a few times to get a failure
15:24 nicomen are you able to find out exactly where the race condition happens?
15:24 nicomen (strace or similar?)
15:29 batman jberger: i still couldn't do it: while perl test.pl daemon; do echo $$; done
15:31 sri NOT DAEMON!!!
15:31 sri nicomen: we know exactly what happens
15:32 sri jberger: not much, think i've mentioned everything here too
15:34 batman OMG
15:34 sri if you don't understand the problem, please re-read the backlog, we know exactly what is happening and it should all be there
15:34 batman i get it. i'm just a bit off :(
15:35 batman i modified the script and then when i couldn't make it fail, i tried again but now with "daemon" :(
15:35 jberger no worries batman, we all make mi .... ALL GLORY TO THE HYPNOTOAD!!!
15:43 sri i don't understand why my flock patch doesn't work
15:48 Eke- joined #mojo
16:00 basic6_ joined #mojo
16:03 jberger well, here is my problem: https://metacpan.org/pod/perl5140delta#Exception-Handling
16:03 jberger "Likewise, a local $@ inside an eval no longer clobbers any exception thrown in its scope. Previously, the restoration of $@ upon unwinding would overwrite any exception being thrown. Now the exception gets to the eval anyway."
16:05 jberger so callback errors in fork_call (specifically the functional form) in perl < 5.14 just vanish
16:06 sh4 joined #mojo
16:08 basiliscos joined #mojo
16:13 sri so nobody has any ideas for fixing the DATA problem?
16:13 sri this is pretty serious
16:13 sri we may have to get rid of DATA support
16:16 sri this doesn't just happen on server startup, whenever new workers get forked this can happen, randomly, in production usage
16:18 basiliscos joined #mojo
16:19 sri let me repeat, every mojolicious app with something in a DATA section may fail randomly in production, no matter if it's a lite app or using a plugin that happens to bundle something in its DATA section
16:19 sri s/may/will/
16:20 basiliscos joined #mojo
16:26 sri i was considering a before_fork hook or so that preforking servers are supposed to emit
16:26 sri but that doesn't work for PSGI
16:26 sri plack doesn't have anything for this
16:37 marcus hmm, why does this suddenly surface now? We've had templates in data since the beginning?
16:39 davido_ http://www.perlmonks.org/?node_id=590717
16:39 sri i've seen the problem before, but have been unable to track it down until now
16:40 sri pretty sure i've even talked and asked about it here
16:40 sri and when it happens out in the wild, people will only see random 404 responses, unable to track it down themselves
16:41 sri now that i think about it, pretty sure random 404 responses is something we've heard complaints about a few times
16:41 sri it's just easy to dismiss as a user problem
16:42 sri and once the worker process gets restarted the problem will most likely vanish again
16:43 sri to sum it up, i've seen this shit and been unable to track it down for 3 years, how would most of our users do it?
16:46 sri davido_: what do you mean?
16:46 davido_ What about this: In your lock.diff gist, what if instead of a random tempfile you used a filename based on the app secret?
16:47 sri davido_: what?
16:47 sri what does the filename have to do with it?
16:48 davido_ Is loader executed before forking?
16:49 Eke- joined #mojo
16:49 davido_ I mean is line 18 of your gist guaranteed to run before any fork?
16:50 sri yes
16:50 davido_ ok, then no difference :) .
16:50 basiliscos joined #mojo
16:51 sri File::Temp is even smart enough only to clean up temp files created by the current process, not inherited ones...
16:51 sri so i really don't get what's going wrong
16:53 davido_ My thought (which you've pointed out is not helpful) was that if tempfile is being called on a per-worker basis (after fork), then each worker will have a different tempfile, and a different lock.  Using an app-secret as a common filename would establish a semaphore that all workers must wait for.  But as you mentioned, that line executes before any fork, so the line of thought was not useful.
16:53 jberger sri: could we just put a retry around these two lines?
16:53 jberger https://github.com/kraih/mojo/blob/master/lib/Mojo/Loader.pm#L55-L56
16:54 jberger I think you don't get a fileno if there is no __DATA__ section (I will check), in that case we know there is something, we could just ensure that we get something
16:55 davido_ jberger: So retry on failure?
16:55 jberger yeah
16:55 sri hmm
16:56 sri doesn't work i believe
16:56 sri seek may happen in between reads
16:56 jberger slurp?
16:56 purl slurp is the sound uri makes
16:56 sri the no result case is only the ideal failure
16:57 sri you may even end up reading stuff twice
16:57 jberger wow
16:57 jberger what happens if you close and reopen *DATA
16:58 sri how?
16:58 jberger certainly you can close *DATA
16:58 jberger I don't know if you can reopen it
16:58 jberger but if you can, wouldn't that give you a distinct seek pointer?
16:58 davido_ Why didn't opening the source file directly and scanning down to __DATA__ work?  I know that was mentioned earlier.
16:59 jberger davido_: how do you know which file?
16:59 davido_ ah
16:59 jberger otherwise that would be fine
17:04 davido_ So is mjd's slide: ( http://perl.plover.com/yak/flock/samples/slide006.html ) incorrect?
17:04 davido_ in particular, #2a
17:05 jberger the difference there is that cron is starting a new process
17:05 jberger we are dealing with forking
17:05 sri #2a is wrong
17:06 sri but who knows how DATA worked back then
17:06 davido_ yeah.  interesting though.
17:12 sri i have something solution-ish
17:12 jberger let me guess
17:13 jberger read a line and keep track of the position in the file
17:13 jberger the second line of your patch is `my $pos = tell *DATA`
17:13 jberger ?
17:14 jberger or can you not even read a line
17:14 jberger hmmmmm
17:16 sri nope, push everything into a warmup phase in the parent process https://gist.github.com/anonymous/14ad4599401f880aaaad
17:17 sri at the time when app->start is called, which happens at the end of lite apps and in the script of normal apps
17:17 jberger http://irclog.perlgeek.de/mojo/2014-08-17#i_9199676
17:17 jberger ^^ close enough
17:18 sri it does not cover cases where apps are loaded but the command system is never started
17:18 jberger does that happen?
17:18 sri so there has to be a fallback
17:18 sri of course
17:18 sri test apps for example
17:18 jberger OH
17:19 jberger test apps are rarely run in parallel with a shared __DATA__ handle
17:19 sri i'm not actually happy with this solution, but can't think of anything better
17:20 jberger shared seek pointers seem like a huge problem now that I think about it
17:22 jberger i have been trying to find a good way to go from fileno to filename
17:22 jberger that seems like the real way to do this
17:24 davido_ jberger: This doesn't offer much hope: http://stackoverflow.com/questions/2813092/can-i-find-a-filename-from-a-filehandle-in-perl
17:24 al joined #mojo
17:24 davido_ at best, not portable, and not efficient.
17:25 bodgix joined #mojo
17:25 jberger I'm seeing those same results
17:30 jberger sri: http://perl.active-venture.com/pod/perlopentut-tricks.html
17:30 jberger open my $data, "<&main::DATA";
17:32 jberger going to test to see if that helps
17:34 sri i've tried the open(MHCONTEXT, "<&=$fd") thing, but dup-ing the handle doesn't help of course
17:34 sri you dup everything except for the seek pointer -.-
17:34 jberger what about without the =
17:36 jberger nope
17:36 jberger drat
17:37 sri haha, fail on first try
17:37 jberger took me several, but I got it too
17:40 good_news_everyon joined #mojo
17:40 good_news_everyon [mojo] kraih pushed 1 new commit to master: http://git.io/vO0p5Q
17:40 good_news_everyon mojo/master 54f0926 Sebastian Riedel: fixed bug where DATA sections sometimes got corrupted after forking, which caused applications to fail randomly
17:40 good_news_everyon left #mojo
17:40 sri i'll commit that for now
17:41 sri so we have a fallback solution if nothing else works out
17:41 sri and people can fix their production setups -.-
17:42 sri little bonus, DATA templates get stored in the parent process, which uses less memory
17:43 woz joined #mojo
17:44 sri i actually stumbled over the bug by accident while profiling that little example i also committed
17:45 sri wish we could at least test this somehow... it's the worst bug we ever had imo
17:45 marcus Are there any actual downsides to doing this prefork?
17:46 sri only upsides
17:46 sri the problem is that the warmup step is not consistent
17:46 sri since it depends on app->start getting called
17:50 jberger I'm just amazed at the behavior
17:51 jberger it almost seems like keeping any seekable filehandles open through a fork is a bug then
17:51 sri yea
17:52 sri btw. flock appears not to be broken in general, leont was wrong
17:53 sri i have no clue why it didn't work on the tempfile though
17:53 nicomen -)
17:58 denis_boyun joined #mojo
18:05 jberger nicomen == cyclops
18:06 jberger sri: wouldn't sysread fix this? and thus Mojo::Util::slurp
18:08 sri jberger: *cough* https://github.com/kraih/mojo/blob/master/lib/Mojo/Util.pm#L247
18:10 basiliscos joined #mojo
18:10 sri how do you sysread *everything* in one syscall?
18:11 jberger ok, that's not how I thought that worked (I was still looking), how does that even work?
18:12 jberger wouldn't that repeatedly reread the same block
18:12 jberger ?
18:12 good_news_everyon joined #mojo
18:12 good_news_everyon [mojo] kraih pushed 1 new commit to master: http://git.io/d1P3cw
18:12 good_news_everyon mojo/master 5ef9686 Sebastian Riedel: better comments
18:12 good_news_everyon left #mojo
18:19 neilhwatson joined #mojo
18:20 denis_boyun joined #mojo
18:23 sri funny thing i just noticed, os x perl now also seeks to the start of the file and not just the DATA section
18:25 good_news_everyon joined #mojo
18:25 good_news_everyon [mojo] kraih pushed 1 new commit to master: http://git.io/2Q3S_g
18:25 good_news_everyon mojo/master fdfe08a Sebastian Riedel: it is not just Windows
18:25 good_news_everyon left #mojo
18:26 woz joined #mojo
18:38 stryx` joined #mojo
18:41 KCL_ joined #mojo
18:41 jberger sri: so, I have managed to make a patch that gives {} for all but one worker every time :-P
18:43 sri haha, been there too
18:46 basic6 joined #mojo
18:46 jberger oh, I totally misunderstood what OFFSET is in (sys)?read functions
18:48 jberger I expected it to read from byte OFFSET in the handle, not start position in the buffer
18:48 jberger sigh
18:49 sri now that we are mostly using ssd... i suppose new apis would be in order
18:50 Foxcool joined #mojo
18:51 jberger I took sysread to be the logical inverseof syswrite, and I guess it is, but differently than I expected
18:52 sri i've never used those offsets
18:54 jberger I use it in forkcall
18:54 woz joined #mojo
18:54 jberger to send the serialized data back to the parent
18:55 jberger https://github.com/jberger/Mojo-IOLoop-ForkCall/blob/master/lib/Mojo/IOLoop/ForkCall.pm#L128-L132
19:05 jberger working on File::Map solutions now
19:05 jberger "Can't map fake filehandle at /home/joel/Programs/Dist/mojo/lib/Mojo/Loader.pm line 57."
19:06 jberger ;/
19:06 sri ouch
19:08 jberger I'm starting to lean more and more to the idea of using %INC
19:09 jberger Mojolicious::Lite can just probe for a data handle in the importing package and keep track of that separately
19:11 sri it's also controllers and plugins
19:11 sri we even have a recipe for that
19:11 fitnerd_ joined #mojo
19:11 jberger anything that maps from a package name to a file should work fine
19:11 sri which is why i got so scared we might not find a solution
19:11 jberger it really is only main:: that worries me
19:12 irq joined #mojo
19:15 denis_boyun joined #mojo
19:19 jberger hmmm, but I guess that's a little bit not the same
19:20 jberger and even then I'm not getting it to work
19:20 jberger ok, I'm +1 on warmup
19:22 jberger sri: we could improve things by exposing a method to register a template
19:23 jberger then plugins etc could register string-form templates
19:23 jberger using say $app->add_template($package, $name, $string)
19:24 sri what do we gain from that?
19:24 jberger then plugins don't have to use __DATA__
19:24 jberger its a plan for (slowly) migrating away from depending on __DATA__
19:24 sri why $package?
19:25 jberger sorry, $class
19:25 sri why $class? ;p
19:25 jberger same functionality as if it were in __DATA__, it could put the data in the same place
19:25 woz joined #mojo
19:26 jberger an api for %CACHE in Mojo::Loader
19:26 jberger or make an app level template registry, organized however, and Mojo::Loader can be used to import into that
19:27 sri don't think i would ever use that
19:27 jberger suddenly the __DATA__ handle scares the crap out of me
19:27 sri you have to store the templates somewhere too
19:27 sri heredocs are a huge pita
19:27 jberger yeah, I know
19:28 jberger I think you keep __DATA__ for the ease of entry
19:28 sri i would end up putting them in files, and then i could just as well add a new path and be done with it
19:30 jberger to be clear, I LOVE __DATA__ as an introductory mechanism and for example snippets
19:32 dexteruk joined #mojo
19:32 dexteruk_ joined #mojo
19:34 dexteruk____ joined #mojo
19:34 dexteruk_____ joined #mojo
19:35 sri my only problem with warmup is that it depends on $app->start
19:38 sri but it's not like there are alternatives
19:39 sri having a warmup mechanism to prepare stuff before forking makes perfect sense
19:39 marcus I agree
19:39 jberger yeah, I'm running out of ideas
19:39 jberger agreed
19:55 cpan_mojo Mojo-IOLoop-ForkCall 0.14 by Joel Berger - http://metacpan.org/release/JBERGER/Mojo-IOLoop-ForkCall-0.14
19:56 woz joined #mojo
19:57 jberger this is the best I can do for fork_call https://github.com/jberger/Mojo-IOLoop-ForkCall/blob/master/t/functional.t#L28
19:57 jberger luckily it only affects the functional form (which is discouraged anyway)
19:59 jberger CPANtesters++
20:28 preaction joined #mojo
20:34 dvinciguerra joined #mojo
20:35 preaction joined #mojo
20:57 woz joined #mojo
21:10 good_news_everyon joined #mojo
21:10 good_news_everyon [mojo] kraih pushed 1 new commit to master: http://git.io/02JYNg
21:10 good_news_everyon mojo/master aec9029 Sebastian Riedel: slightly faster warmup process
21:10 good_news_everyon left #mojo
21:28 woz joined #mojo
21:48 good_news_everyon joined #mojo
21:48 good_news_everyon [mojo] kraih tagged v5.30 at 83f2bea: http://git.io/44SFHQ
21:48 good_news_everyon left #mojo
21:48 marty joined #mojo
21:49 cpan_mojo Mojolicious 5.30 by Sebastian Riedel - http://metacpan.org/release/SRI/Mojolicious-5.30
21:49 good_news_everyon joined #mojo
21:49 good_news_everyon [mojo] kraih pushed 1 new commit to master: http://git.io/drv_6g
21:49 good_news_everyon mojo/master 190e919 Sebastian Riedel: bump version
21:49 good_news_everyon left #mojo
21:52 sri think i'll write something to the mailing list about this bug
22:10 mishantil When testing with Test::Mojo, is it best to use the ->ua to check for set session variables etc?
22:11 mishantil eg. to test that a controller has set foo => 'bar' in the sesion
22:11 mishantil *session
22:13 dvinciguerra joined #mojo
22:19 lb_ joined #mojo
22:24 cpan_mojo Ado 0.58 by Krasimir Berov - http://metacpan.org/release/BEROV/Ado-0.58 (depends on Mojolicious::Plugin::DSC)
22:29 woz joined #mojo
23:02 zivester joined #mojo
23:07 ua joined #mojo
23:22 woz joined #mojo
23:26 neyasov joined #mojo
23:41 neyasov joined #mojo
23:41 neyasov joined #mojo

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