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

IRC log for #mojo, 2014-03-27

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

All times shown according to UTC.

Time Nick Message
00:01 upasana joined #mojo
00:18 jack joined #mojo
00:42 Jim joined #mojo
01:08 Jim left #mojo
01:08 laouji joined #mojo
01:08 d4rkie joined #mojo
01:21 cooper joined #mojo
01:50 hotsnow joined #mojo
02:40 meshl joined #mojo
02:51 klapperl joined #mojo
03:09 dsog joined #mojo
03:10 ua_1 joined #mojo
03:35 dsog left #mojo
03:36 cstamas joined #mojo
03:37 ua_ joined #mojo
03:40 ua_1 joined #mojo
03:58 hesperaux_ joined #mojo
04:14 ua joined #mojo
04:19 deserted joined #mojo
04:45 laouji joined #mojo
04:46 laouji_ joined #mojo
05:30 hesperaux joined #mojo
05:53 davido__ joined #mojo
05:53 Properler joined #mojo
05:54 Adura joined #mojo
05:58 sujithm joined #mojo
06:07 basiliscos joined #mojo
06:09 cpan_mojo Mojolicious-Plugin-DirectoryQueue 0.01 by Fu Kai - http://metacpan.org/release/FUKAI/Mojolicious-Plugin-DirectoryQueue-0.01
07:07 sujithm_ joined #mojo
07:15 fhelmber_ joined #mojo
07:18 Eke- joined #mojo
07:25 denis_boyun joined #mojo
07:51 dod joined #mojo
07:54 Vandal joined #mojo
07:57 rawler joined #mojo
08:07 eseyman joined #mojo
08:39 malikai joined #mojo
08:41 edestler joined #mojo
08:44 trone joined #mojo
08:58 arthas joined #mojo
09:01 sujithm joined #mojo
09:36 sujithm joined #mojo
09:40 mire_ joined #mojo
09:42 punter joined #mojo
09:43 punter Is there a way to take a meaningful StackTrace when doing non-block event-based code?
09:46 dod joined #mojo
10:07 maxhq joined #mojo
10:42 sujithm joined #mojo
11:23 sujithm joined #mojo
11:26 neilhwatson joined #mojo
11:33 bjakubski joined #mojo
11:34 denisboyun joined #mojo
11:40 rem_lex joined #mojo
11:49 ver joined #mojo
12:49 punter joined #mojo
12:49 punter joined #mojo
12:50 punter joined #mojo
12:50 punter joined #mojo
12:50 punter joined #mojo
12:51 punter joined #mojo
12:51 punter joined #mojo
12:51 punter joined #mojo
12:52 punter joined #mojo
12:52 punter joined #mojo
12:52 punter joined #mojo
12:53 punter joined #mojo
12:53 punter joined #mojo
12:53 punter joined #mojo
12:54 punter joined #mojo
12:54 punter joined #mojo
12:55 punter joined #mojo
12:55 punter joined #mojo
12:55 punter joined #mojo
12:56 punter joined #mojo
12:56 punter joined #mojo
12:56 punter joined #mojo
12:57 punter joined #mojo
12:57 punter joined #mojo
12:57 punter joined #mojo
12:58 punter joined #mojo
12:58 punter joined #mojo
12:59 punter joined #mojo
12:59 punter joined #mojo
12:59 punter joined #mojo
13:00 punter joined #mojo
13:00 punter joined #mojo
13:00 punter joined #mojo
13:01 punter joined #mojo
13:01 punter joined #mojo
13:01 punter joined #mojo
13:02 punter joined #mojo
13:02 punter joined #mojo
13:02 punter joined #mojo
13:03 punter joined #mojo
13:03 punter joined #mojo
13:04 punter joined #mojo
13:04 punter joined #mojo
13:04 punter joined #mojo
13:05 punter joined #mojo
13:05 punter joined #mojo
13:05 punter joined #mojo
13:06 punter joined #mojo
13:06 punter joined #mojo
13:06 punter joined #mojo
13:07 punter joined #mojo
13:07 punter joined #mojo
13:07 punter joined #mojo
13:08 punter joined #mojo
13:08 punter joined #mojo
13:08 punter joined #mojo
13:09 punter joined #mojo
13:09 punter joined #mojo
13:10 punter joined #mojo
13:10 punter joined #mojo
13:10 punter joined #mojo
13:11 punter joined #mojo
13:11 punter joined #mojo
13:11 punter joined #mojo
13:12 punter joined #mojo
13:12 punter joined #mojo
13:12 punter joined #mojo
13:52 sujithm joined #mojo
13:56 bluescreen joined #mojo
14:10 btyler joined #mojo
14:14 __noidd__ joined #mojo
14:14 __noidd__ Good morning
14:14 purl Lies!
14:14 __noidd__ Okay, bad morning
14:14 gryphon joined #mojo
14:15 jim joined #mojo
14:24 punter joined #mojo
14:25 d4rkie joined #mojo
14:26 punter joined #mojo
14:37 __noidd__ is mojo a deriritive of catalyst?
14:37 __noidd__ some of it looks vaugly familiar
14:43 genio Lots of web frameworks look familiar.  The author used to work on Catalyst as well.  But, this framework was built from the ground up, it's not a spin-off of any other.
14:43 go|dfish __noidd__: sri founded the Catalyst project
15:03 disputin joined #mojo
15:08 danmiller joined #mojo
15:09 dotan joined #mojo
15:09 marty mango is so frakin awesome
15:10 danmiller Hi! I'm looking for a pointer to documentation. What's the idiomatic way to put things on the stash for all routes?
15:11 __noidd__ I found it via qooxdoo
15:12 __noidd__ I started writing a qoodoo backend in perl then, after finding my senses decided to check cpan
15:12 __noidd__ and found that tobias has already created a Controller for it
15:12 __noidd__ so I'm trying to ramp-up as quickly as possible!  Looks like a fun framework.
15:20 meshl joined #mojo
15:23 tianon marty: much agreed <3
15:27 davido_ joined #mojo
15:32 bluescreen joined #mojo
15:33 go|dfish danmiller: Are you looking for defaults? http://mojolicio.us/perldoc/Mojolicious#defaults
15:35 Eke|| joined #mojo
15:37 danmiller Yes, I was looking for 'defaults'. Thank You! The best I came up with until now was a before_render hook which pushes things on the stack. Didn't feel smooth.
15:49 jrbeilke joined #mojo
16:10 Eke- joined #mojo
16:18 DaniBunny joined #mojo
16:30 punter_ joined #mojo
16:40 sh4 joined #mojo
16:42 asarch joined #mojo
16:46 beyondcreed joined #mojo
17:38 dsog joined #mojo
17:43 dsog joined #mojo
17:51 nikita joined #mojo
17:52 nikita hello, i need to implement redis session storage. how should i do it - subclass Mojolicious::Session or just use Mojolicious::Plugin::Session?
17:53 punter joined #mojo
18:02 sujithm joined #mojo
18:13 Mikey nikita: write your own session class
18:13 Mikey no point in subclassing Mojolicious::Session
18:14 Mikey so has the 'test' command always started the test server on a random port?  i'm digging in to find out but i could have sworn these tests passed before
18:19 punter You should port Mojolicious in Perl 6, this language rocks.
18:19 bluescreen_ joined #mojo
18:19 punter and mojo doesn't have any dependencies, so it should be possible.
18:19 __noidd__ perl6, not heard about that in years.
18:20 punter Just went through this tutorial, my mind was blown! http://perlgeek.de/en/article/5-to-6
18:20 __noidd__ looking
18:20 __noidd__ is it considered production ready yet?
18:21 punter Dunno.
18:21 punter I don't even know about the language specs, whether they're final yet.
18:22 punter But I downloaded and compiled Rakudo and played writing my own scripts.
18:23 neilhwatson TIL say();
18:26 mtths joined #mojo
18:29 __noidd__ huh
18:29 neilhwatson How many years has Perl 6 been talked about?  Seems I'll retire before I see it in a standard install.
18:29 __noidd__ same here
18:29 __noidd__ perldoc -f say
18:32 neilhwatson Interesting: my @countries = %drinks.keys.sort; Much more OO.
18:33 moritz Perl 6 (as an idea) is about half as old as perl 1.0
18:33 neilhwatson lol
18:37 maxhq joined #mojo
18:42 punter Ubuntu 14.04 will include a fairly recent Rakudo (that's Perl 6)
18:43 moritz punter: oh cool, which  version?
18:43 punter but maybe shouldn't be considered a standard install yet
18:43 punter version 2013.12
18:43 punter 2013.dec
18:43 * moritz should write an init system in Perl 6 and promote it to be the Debian standard
18:43 punter there's 2014.Jan already out
18:43 moritz punter: Feb and Mar too
18:44 moritz (at least compiler releases; not sure about Star)
18:44 punter not star
18:45 maxhq joined #mojo
19:01 mire_ joined #mojo
19:07 sri joined #mojo
19:13 good_news_everyone joined #mojo
19:13 good_news_everyone [mojo] kraih pushed 3 new commits to master: http://git.io/wP9IyQ
19:13 good_news_everyone mojo/master 565e603 Sebastian Riedel: improved performance of Mojolicious::Plugin::EPRenderer and Mojolicious::Plugin::EPLRenderer
19:13 good_news_everyone mojo/master 8a5eb48 Sebastian Riedel: improved Mojo::Reactor::Poll portability with POLLPRI support
19:13 good_news_everyone mojo/master b5da671 Sebastian Riedel: removed unused variable
19:13 good_news_everyone left #mojo
19:14 Adurah joined #mojo
19:16 sri i've put up a first preview for my job queue, still very much a work in progress, but you get the idea :) https://github.com/kraih/minion
19:16 __noidd__ minion :-)
19:17 * sri was very happy when he noticed the name is still free on cpan o/
19:17 neilhwatson nice score
19:19 __noidd__ I need to try and re-claim my pause id
19:28 abhishekisnot joined #mojo
19:31 asarch joined #mojo
19:31 sri btw. everyone feel free to handle issues, i'll be stepping back from that for now https://github.com/kraih/mojo/issues?state=open
19:32 sri jberger++ # btw.
19:35 __noidd__ hey sri, thank you.
19:41 dod joined #mojo
19:50 mattastrophe joined #mojo
19:54 sri a job queue is actually rather hard to explain with examples
19:55 sri aside from very tight mojolicious integration it's mostly modeled after resque
20:00 good_news_everyone joined #mojo
20:00 good_news_everyone [mojo] kraih pushed 1 new commit to master: http://git.io/PR8GFg
20:00 good_news_everyone mojo/master 32e4a7a Sebastian Riedel: updated build status image
20:00 good_news_everyone left #mojo
20:04 Eke- joined #mojo
20:15 sri minion should make for a good example for plugin authors though, some interesting aspects to it
20:15 sri multi level commands in a custom namespace that depends on the plugin https://github.com/kraih/minion/blob/master/lib/Mojolicious/Plugin/Minion.pm#L10
20:16 sri and an application helper returning an object, making the whole thing feel very much like a built-in feature
20:17 sri (jberger started that stuff and i like it)
20:18 sri testing a job queue can be rather tricky, but this doesn't seem like the worst way to do it https://github.com/kraih/minion/blob/master/t/minion_lite_app.t#L40
20:18 sri the actual jobs still run in a separate process, so there's still consistency
20:20 sri i think what kills more sophisticated examples mostly is the communicating results back into the app part, not sure what to do about that yet
20:20 sri although in my experience there are rarely real results that need to be communicated, just updated state in some model layer
20:22 sri stats and a simple way to restart jobs are on top of my list for now
20:22 purl Since Tue Aug 13 05:43:03 2013, there have been 14696 modifications and 5290 questions.  I have been awake for 226 days, 14 hours, 39 minutes, 12 seconds this session, and currently reference 957112 factoids. Addressing is in optional mode.
20:22 * sri kicks purl
20:22 * purl bites sri!
20:23 sri the actual worker daemon is really cute https://github.com/kraih/minion/blob/master/lib/Minion/Command/minion/worker.pm
20:23 marty sri!!!!  Missed you dude!  Welcome back.
20:23 sri it has literally no features
20:23 * sri hugs marty
20:24 * marty hugs sri
20:24 marty I like no features.  then I cannot get confused.  :P
20:26 sri i tried to be very conservative for now with process management so there's at least a remote chance it works on windows ;p
20:26 marty omg,  Minion!  whoot.  Love the name.   One more thing to add to the mojo.mango awesomeness.
20:27 sri it's very very experimental
20:27 sri i expect to grow it into a proper job queue over the next year or so
20:28 marty I'll install and play around with it this weekend.
20:30 sri so far i like the tight mojo integration more than i expected though, running a job is basically like running a block of code in startup()
21:03 Mikey i am definitely going to use minion, this is great!
21:05 zM joined #mojo
21:17 Eke- joined #mojo
21:21 * nic gets excited to try it out
21:22 chansen sri: how about sub second precision in logs? I need to differentiate between requests in logs, it's not uncommon to have 50 or more stamps with the same time on a moderate deployment server
21:23 nic chansen: You might want to look at Mojar::Log, I think it shows how easy/useful it is to subclass Mojo::Log
21:24 zackiv31 joined #mojo
21:26 dsog Minion looks pretty sweet :)
21:27 chansen nic: I think you are missing the point
21:32 chansen I can easily work around the issue, the point is that most deployments (probably suffers from the same issue, second granulation isn't enough)
21:41 espent joined #mojo
21:45 tempire minion
21:45 tempire excellent.
21:45 tempire that is troublesome, communicating back.
21:45 mudler joined #mojo
21:46 * nic deftly flies around the point and lands in the land of the minion
21:46 tempire even an event firing when the task is done.
21:48 sri that reminds me... i also need to add events to the todo list... for extensions
21:48 meshl joined #mojo
21:48 nic Could the producer(s) of jobs subscribe to a completion channel to which the worker publishes a job id once the result has been dropped into mongo?
21:49 sri app->minion->on(finished_job => sub {...})
21:49 sri pub/sub is very possible, but i'm unsure if it's worth it in the end
21:50 sri i'm not even using pub/sub to wake up worker processes when they are waiting for new jobs yet
21:51 * sri wants to get the basics rock solid first
21:51 * nic nods
21:52 sri for repairing the queue i've mostly adopted the resque strategy so far
21:53 sri kill 0 workers on the same host, and let all abandoned jobs fail
21:54 nic Now I need to choose whether to embrace mongo, abandoning my redis-based code, or to steal all your ideas staying with redis
21:54 sri at first i wanted to go with regular heartbeat messages and stuff... but that gets very complicated very quick...
21:54 nic the trouble is I kind of understand redis, simple beast that it is
21:54 sri if you have redis then resque should work well for you
21:54 nic yeah, my code is pretty close to diego's
21:55 sri i was a little surprised resque is blpop and not pub/sub based
21:56 nic yeah, I think pub/sub was in early stages when diego got going
21:56 nic pub/sub is on my list of things to do
21:56 sri i think diego ported the original resque design mostly
21:57 nic but I have requirements for high-availability and guaranteed throughput, so eg failed jobs must be requeued, stuck workers must be killed, etc
21:57 sri killing stuck workers is a problem i don't like :S
21:58 nic I'm currently just resorting to timeouts -- each job is told the max time it can run for
21:58 sri you have to say goodbye to windows fork emulation basically
21:59 nic yeah, I'm ok with not doing Windows
21:59 sri i'm on the edge about it
22:00 sri SIGTERM might work... SIGKILL not
22:00 nic I think the most sensible path for me would be to support minion as best I can, then write add-ons when its ready
22:01 sri think i saw somewhere that SIGTERM can get discarded when syscalls are in progress on windows and stuff...
22:01 nic I'm already seeing a more sensible architecture -- eg you fork jobs, not workers; seems so obvious now I see it :)
22:02 nic Are there any areas of minion that people can contribute to in the coming week(s)?
22:02 sri i guess an extension api for killing is not hard
22:04 sri everything basically, aside from the few things i need myself i'm not sure yet where to go with minion :)
22:05 nic cool.  there are going to be some interesting discussions.  i love it when something new comes along.  thanks again
22:05 sri local $SIG{ALRM} around the waitpid, a $job->pid attribute and $job->on(timeout => sub {...}) would do the trick i guess
22:06 sri $job->on(timeout => sub { kill 9, shift->pid });
22:08 sri indexes on certain fields will be necessary soon too
22:09 * nic goes to bed with Mongo For Dummies
22:15 Eke- joined #mojo
22:19 mport left #mojo
22:29 sri i'd be interested in use cases for communicating back job results to their point of origin
22:29 sri theoretically stuff like $c->minion->enqueue_and_wait(foo => [@args] => sub {...}); is totally possible
22:31 sri hehe... development hack.... Mojo::IOLoop->recurring(3 => sub { app->minion->worker->all_jobs });
22:31 sri no need to start a worker process
22:33 mattastrophe joined #mojo
22:44 Eke- joined #mojo
22:45 mattastrophe joined #mojo
22:49 ua1 joined #mojo
23:08 tianon joined #mojo
23:10 tianon joined #mojo
23:18 jhg joined #mojo
23:20 zM joined #mojo
23:20 jhg ping
23:22 go|dfish pong
23:23 abra joined #mojo
23:24 jhg go|dfish: know much about websockets?
23:25 mattastrophe joined #mojo
23:26 go|dfish jhg: what's the issue?
23:26 purl the issue is the same one. popl is just following the source and came across sub effective_group_id which has conditional return statements
23:28 jhg go|dfish: actually, I need to do some tests before I can say or ask anything mildly informative. Thanks for the pong. =)
23:30 jnbek joined #mojo
23:32 d4rkie joined #mojo
23:54 DaniBunny joined #mojo

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