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

IRC log for #mojo, 2016-01-18

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

All times shown according to UTC.

Time Nick Message
00:11 mad_hatter joined #mojo
00:15 binlei joined #mojo
00:23 mudpit joined #mojo
00:26 mudpit I've written a CMS and it contains a billion Perl packages (over 1000 at any rate). It's inlaid with bits of HTML here and there (thus, data) and is not structure to use MVC. So now I want to convert it to mojolicious (after studying hard which one to use of the three big ones). And I'm wondering what the easiest approach is.
00:28 mudpit Is there a manual for dummies on how to do this; I really despise learning too much at this phase ... my problem is that with such a large project, I don't want to take the wrong approach and end up wasting needless time ... so I'm looking for a good approach.
00:29 genio Unfortunately, there's no easy approach.  Figure out your authentication/authorization, learn about RESTFul services, etc.
00:30 melo joined #mojo
00:31 genio Figure out if you want to do it as a single-page app or if you want each page to be served out by the server, etc.
00:32 mudpit Well, as mentioned, it's a CMS and there are currently over 1000 package (I mean, probably 30k lines of code) .... so a single page app is out of the question
00:32 mudpit plus it's modular
00:32 mudpit I want modules to be able to be enabled and disabled
00:34 mudpit A lot of the packages are straight perl code (algorithms, etc) and there there are the blocks that actually generate HTML
00:34 mudpit sounds like I need to first start by separating those out ...
00:40 binlei joined #mojo
00:49 jberger mudpit: that doesn't sound like a good candidate for whole sale conversion
00:50 jberger And " I really despise learning too much at this phase" isn't going to get you very far
00:51 jberger If it's a pure cgi application there is a Mojolicious::Plugin::CGI  which can wrap it, forking for each request to give you a clean environment
00:52 jberger Many applications that weren't written for persistent servers have a hard time being ported to more modern frameworks because of the way they often stored state in globals
01:25 mudpit jberger and genio, thank you
01:34 bpmedley joined #mojo
01:36 mad_hatter joined #mojo
01:41 bpmedley joined #mojo
01:46 binlei joined #mojo
02:08 melo joined #mojo
02:43 inokenty-w joined #mojo
02:48 melo joined #mojo
03:04 zivester joined #mojo
03:22 binlei joined #mojo
03:49 noganex joined #mojo
04:13 fkafka joined #mojo
04:14 fkafka Hey everyone, I know it's probably unorthodox, but I am trying to set/use a session cookie from websocket. However, when I reload the page, the session cookie is gone.
04:14 fkafka Is it possible to set a session cookie for a client and access that session cookie from within the websocket connection?
04:16 jberger I don't believe you can set the session cookie from a websocket
04:17 jberger I mean, maybe from the handshake ... but not during the websocket stream
04:17 c--_ joined #mojo
04:18 jberger if you really need to, create a simple rest endpoint that can set the cookie value and use javascript to ajax to it
04:18 melo joined #mojo
04:19 fkafka ok, that's what I was doing, but switched to websocket for some reason :)
04:19 fkafka cool, good to know, thank you jberger
04:19 jberger for galileo I had wanted all interaction to be over websocket
04:19 jberger but I had to make the exception for login
04:19 jberger for that very reason
04:23 fkafka yeah, difficult... trying to think about how to change settings from within the post endpoint and then send out new data over the websocket based on the new settings.
04:24 fkafka the mix of websocket / rest endpoints makes things somewhat difficult.
04:27 jberger if you are in a request/response cycle anyway, why do you want to use a websocket
04:28 jberger on of the things I learned from the galileo project is that for request/response an ajax request can sometimes be much simpler
04:28 jberger s/on/one/
04:29 obi_wan joined #mojo
04:31 obi_wan I'm currently new to mojolicious and would like to direct all get requests that use /abc to a new package while everything else will remain in the main script. How would I do that?
04:32 jberger obi_wan: meaning you want to start the transition from lite to full app?
04:32 jberger read the Growing guide
04:32 jberger basically you are looking for the controller stash value
04:33 obi_wan from lite to full app? yes, definitely
04:33 jberger our recommended process to learn starts by reading these guides in this order: http://mojolicious.org/perldoc#TUTORIAL
04:33 jberger starting with the tutorial
04:34 jberger the Growing guide is the second
04:34 jberger highly recommended reading
04:34 obi_wan OK. Thanks.
04:35 fkafka jberger, if someone changes their settings (stored in the session), it determines what is sent over websocket.
04:36 jberger but the websocket is already established?
04:36 fkafka yeah, websocket is established.
04:36 fkafka I'm keeping track of client ids, and sending over the websocket from within the post endpoint, and that works.
04:37 jberger by you can't use prefork/hypnotoad unless you have a message bus, right?
04:37 fkafka ok, this crapola code I've written works. I am reminded of the meme where Brad looks at his screen and says, "Why doesn't this work?", then in the next frame it says, "Why does this work?"
04:40 fkafka jberger, on 50 servers a daemon is running that watches a directory, if files are written to the directory, deleted, etc (basically anything changes), it sends to a websocket on a single server (hypnotoad webapp). There is another websocket connection for clients (browsers) that sends the data from the 50 servers, filtered based on the user's settings.
04:40 fkafka filtered meaning, "I only want the updates for X servers," X being say 3 servers of the 50, or whatever.
04:41 fkafka Kind of a subscription type service. Everything works now, but yeah, probably not written in the best way.
04:41 jberger it works as long as you just use the simple daemon because all transactions are handled in the same process
04:42 jberger you might look at having a message broker in there somewhere
04:43 fkafka jberger, like minion?
04:45 jberger no, like redis or pg pubsub, or else a true mq of various flavors (rabbit or zeromq)
04:46 jberger preaction's Mercury app on CPAN works too, but its basically just a streamlined version of what you are doing, a single process websocket relay
04:47 fkafka ohh haha
04:47 fkafka I was thinking 0mq at first, yeah
04:47 fkafka lol, I wish I worked in an environment where things like that would be easy.
04:47 fkafka Getting us to move to Perl 5.10 and use Mojolicious took a little over a year to get approved.
04:48 jberger sigh
04:51 jberger what could possibly take a year to approve that would actually get approved I wonder
04:52 jberger seems like anything that would take that long to assess would be virtually non-assessable
05:15 binlei joined #mojo
06:03 binlei joined #mojo
06:11 melo1 joined #mojo
06:20 sri so, periodic jobs is what avkhozov really wants https://github.com/kraih/minion/pull/22#issuecomment-172428400
06:21 sri guess if someone found a clean implementation i'm not opposed
06:26 sri hahaha, the sidekiq implementation seems pretty insane https://github.com/mperham/sidekiq/wiki/Ent-Periodic-Jobs
06:26 sri apparently they elect a leader, and the leader takes care of scheduled jobs
06:28 melo joined #mojo
06:29 sri i feel like minion usage went down quite a bit since the removal of the file backend
06:49 good_news_everyon joined #mojo
06:49 good_news_everyon [mojo] kraih pushed 1 new commit to master: https://github.com/kraih/mojo/commit/f7bf0d894647d00a86c4a4233393b4ebd7725a77
06:49 good_news_everyon mojo/master f7bf0d8 Sebastian Riedel: fix typo
06:49 good_news_everyon left #mojo
07:10 absolut_todd joined #mojo
07:16 kes joined #mojo
07:16 jontaylor joined #mojo
07:22 dod joined #mojo
07:24 McA joined #mojo
07:27 dod joined #mojo
07:40 Lee joined #mojo
07:54 osfabibisi joined #mojo
08:04 abra joined #mojo
08:33 trone joined #mojo
08:57 and joined #mojo
08:57 Vandal joined #mojo
08:59 mtths joined #mojo
09:06 mtths joined #mojo
09:09 odc joined #mojo
09:09 sugar joined #mojo
09:33 vanHoesel joined #mojo
09:43 melo joined #mojo
09:48 dod joined #mojo
10:26 punter joined #mojo
11:15 dod joined #mojo
11:23 Lee_ joined #mojo
11:45 kaare joined #mojo
12:01 cpan_mojo MojoX-Ping-0.512 by UNDEF https://metacpan.org/release/UNDEF/MojoX-Ping-0.512
12:03 neilhwatson joined #mojo
12:04 pink_mist :X deprecating MojoX::Ping in favour of AnyEvent::Ping? the horror
12:14 berov joined #mojo
12:43 binlei joined #mojo
13:02 marcus how the hell are we going to ping things now? :'(
13:02 marcus (Sorry about the expletive, I'm just that upset). :D
13:17 ajr_ joined #mojo
13:18 binlei joined #mojo
13:24 asarch joined #mojo
14:34 sue joined #mojo
14:41 binlei joined #mojo
14:44 nic marcus: The package will still be available, just no more new functionality
14:45 marcus nic; I'm joking, fwiw.
14:45 nic me too :)
14:46 marcus :)
15:04 zivester joined #mojo
15:06 mad_hatter joined #mojo
15:08 jberger I was surprised to see actual code in there
15:09 jberger I really expected to see open fork pipe from ping
15:09 nic Don't get too excited... no more new functionality
15:10 jberger after all, ping is a rapidly evolving technology
15:10 nic you never know what's around the corner
15:12 nic It reminds me of a scene in which a comedian was filmed in a real piano shop.  He was contemplating the purchase of a grand piano from an unaware salesman.  "But if I get bored with these keys, can I bring it back and get more added?"
15:15 genio use base 'Mojo::Base';  odd
15:18 marty joined #mojo
15:18 nic s/odd/bonkers/
15:18 jberger hunh, didn't see that
15:19 Grinnz_ well i mean... it's not completely wrong...
15:19 jberger well that's what all the __PACKAGE__->attr() is about then
15:19 Grinnz_ oh god
15:19 genio yea.
15:20 genio I was looking around for why the __PACKAGE__->attr() stuff was there when I came across the Mojo::Base confusion
15:20 jberger in truth that's all "has" is: https://github.com/kraih/mojo/blob/master/lib/Mojo/Base.pm#L85
15:20 jberger but yeah, ewwww
15:41 bpmedley joined #mojo
15:46 jberger hahahahah: http://samshadwell.github.io/TrumpScript/
16:01 mortisha joined #mojo
16:02 mortisha I cannot figure out routing. If in startup I do this, $r->get('/welcome')->to(controller => 'foo', action => 'welcome');, where do I physically put package MyApp::Controller::Foo;???
16:03 mortisha Note, the example comes from here: http://mojolicious.org/perldoc/Mojolicious/Guides/Routing#Minimal-route
16:03 Grinnz_ where perl will find it; for example lib/MyApp/Controller/Foo.pm
16:04 mortisha so am I expected to put a use lib statement in package MyApp;?
16:04 Grinnz_ no, it would be found the same way MyApp itself is
16:04 mortisha maybe I missed it, it's probably already there, as long as I use lib, right?
16:05 mortisha well, MyApp is not found, it's .pl, so it's run
16:05 mortisha Unless I'm really messed up
16:05 mortisha but that's what I take it from reading it ...
16:05 Grinnz_ https://metacpan.org/pod/Mojolicious::Guides::Growing#WELL-STRUCTURED-APPLICATION
16:05 Grinnz_ this may help
16:05 mortisha I do a morbo on MyApp, right?
16:06 mortisha Yeah, I've been reading that, but honestly, I'm a little messed up here, it's not my fluent language
16:06 Grinnz_ a non-Lite app is not expected to be in a single script
16:06 Grinnz_ https://metacpan.org/pod/Mojolicious::Guides::Growing#Script is all that needs to be in the script
16:12 mortisha but correct me if I'm wrong, but inside the script directory should just be a single script, correct?
16:12 mortisha then using routes, I can route to anything inside of lib
16:12 mortisha (got the full app structure ...)
16:13 Grinnz_ right
16:13 Grinnz_ MyApp.pm would be in lib/
16:13 Grinnz_ that is where your startup goes
16:13 Grinnz_ "Simplified application class" section
16:15 jberger well, not just anything in lib/, the class has to inherit from Mojolicious::Controller
16:15 mortisha that's great. Thanks.
16:21 mortisha So can I do this? And if not, why not? (Cause it ain't working): inside of startup, there is already $r->get('/')->to('example#welcome');, and now, underneath that, I've put, $r->get('/joe')->to('example2#welcome');; I've copied Example.pm to Example2.pm, and changed the package name, but no go.
16:23 Grinnz_ can you paste the Example2.pm? and how you're testing it?
16:23 Grinnz_ in a paste site
16:23 mortisha Sure, it's a straight copy of Example.pm, except for the package name. So ....
16:23 mortisha package TestApp::Controller::Example2; use Mojo::Base 'Mojolicious::Controller';  # This action will render a template sub welcome {   my $self = shift;    # Render template "example/welcome.html.ep" with message   $self->render(msg => 'Welcome to the Mojolicious real-time web framework 2!'); }  1;
16:24 mortisha so I have not changed anything, including the sub name
16:24 sri please don't paste into the channel, use a paste site
16:24 Grinnz_ like fpaste.org
16:25 sri or gist.github.com
16:25 mortisha http://mibpaste.com/PYpoTl
16:25 Grinnz_ is that in lib/TestApp/Controller/Example2.pm?
16:25 mortisha yes
16:25 Grinnz_ and is your app lib/TestApp.pm?
16:25 mortisha yes
16:25 sri did you copy the template too?
16:25 mortisha hum ... no
16:26 mortisha oh I see ...
16:26 sri then you're rendering without a template, the log should tell you
16:26 mortisha yeah, it actually does tell me that ....
16:26 mortisha hum. ok
16:27 mortisha hey, it works now.
16:27 mortisha wow. so cool.
16:27 sri for those interested in the future of minion and who missed it yesterday https://github.com/kraih/minion/pull/22
16:30 sri re more stickers, looks like i have to place a custom order myself, and afterwards i could add those for everyone else... so theoretically more stickers are possible if someone has a really good idea for one
16:30 mortisha would it be unsightly or ghastly to see 50 or even 500 r->get statements in a row, inside of startup? Or that basically the way it goes? This is for a very large application.
16:31 Grinnz_ mortisha: I put them in a plugin that i call from startup, or a module function
16:31 Grinnz_ just for organization
16:32 sri it's fine to keep them in startup though, if you can keep them in smaller groups of related routes
16:34 sri at 500 you also have to think about performance, a few common prefixes can help a lot with that http://mojolicious.org/perldoc/Mojolicious/Guides/Routing#Nested-routes
16:37 sri anyone know another job queue than sidekiq that supports unique jobs?
16:38 sri hmm, looks like it is commonly implemented using a cache backend with an expiring key as shared lock
16:41 mortisha sri: actually, yes, I have about 40 common prefixes, so they can be grouped much less than 500 for sure
16:42 bowtie joined #mojo
16:50 good_news_everyon joined #mojo
16:50 good_news_everyon [mojo] kraih pushed 1 new commit to master: https://github.com/kraih/mojo/commit/2881e11b2b6f7023f0931d7df9ddf6541144f821
16:50 good_news_everyon mojo/master 2881e11 Sebastian Riedel: mention why nested routes improve performance
16:50 good_news_everyon left #mojo
16:50 Grinnz_ sri: good to know
16:57 mortisha morbo is supposed to prevent the need to reload, but I'm finding I have to reload when making changes to TestApp.pm
16:58 jberger mortisha: reload the webpage or the app?
16:59 jberger certainly you will need to reload the page
16:59 jberger the idea is to prevent needing to reload the app
16:59 mortisha the app
16:59 mortisha yes, I'm having to reload the app
17:00 mortisha is is because it's no longer lite that I'm using?
17:00 mortisha I think it was working fine .... until I tried to create a plugin, but then I removed the plugin, but the plugin path is still there, but no longer being called
17:03 jberger mortisha: that shouldn't break morbo
17:10 sh4 joined #mojo
17:12 Grinnz_ mortisha: lib and templates in the current directory are watched by default
17:15 mortisha Grinnz_: well it's kind of curious, cause it's not working ..
17:15 mortisha I'm changing values in lib/TestApp.pm and it's definitely not taking it w/o an app reload for some reason
17:17 mortisha I do have a question that's even more important than that right now, however, and it is, insdie of TestApp/Controller/Example2.pm, can I use a statement like this?
17:18 mortisha http://mibpaste.com/qGqbwa
17:18 mortisha And if not, why not? How then do I do it?
17:18 jberger mortisha: the routing should happen in the app
17:18 jberger the controllers are just the handlers
17:19 mortisha In that case, I've got probably at least 1000 routes ... and I'm trying to simplify differentiation to different packages.
17:20 mortisha So I want to do something like this '/abc/*anything --> Package1.pm, and /efg/*anything -> Package 2.pm, where I can then handle it
17:20 jberger mortisha: have you read the Growing guide?
17:20 PryMar56 joined #mojo
17:20 mortisha Um, yes, but so complicated for a guy like me
17:21 jberger mojolicious by default has a centralized router, so unless you want to pull out some crazy hacks you generally define all your routes in one place
17:22 jberger the ways to mitigate that getting too unruly is to split that out into application methods (sub add_foo_routes($app, $route) { ... }) or else put them into a plugin
17:22 mortisha So then, what was suggested earlier is probably the way to go, which is use plugins to define these routes, because I need to be able to switch routes on an off (about 40 high level routes, which funnel down to many more).
17:22 mortisha Would that be correct?
17:23 jberger yeah
17:23 jberger or like I said you can use application-level methods
17:23 mortisha application methods, can I funnel everything form /abc/*anything to one application method?
17:23 mortisha *from (not form)
17:24 mortisha I wish to process *anything lower down, without having to route it immediately (I would like to route it after calling the sub)
17:24 jberger no, you'd call that method to add the routes, just so you can group them separately
17:25 jberger I'm sorry, I really don't follow
17:25 Grinnz_ if you have levels of routes, you can pass the base level like '/abc' and then route under that
17:25 jberger how could you process it without knowing what route is requested
17:25 jberger ?
17:25 mortisha yes, that's what I mean
17:26 mortisha how do I do that?
17:26 mortisha I'm sorry, this is the part that's confusing me
17:26 Grinnz_ my $abc = $r->any('/abc')->to(...defaults...); $abc->get('/def') # routes to /abc/def
17:26 Grinnz_ you can pass $abc into a sub to do the second part
17:27 jberger as sri mentioned before: http://mojolicious.org/perldoc/Mojolicious/Guides/Routing#Nested-routes
17:27 jberger probably best to suggest you read the whole Routing guide
17:27 jberger you might also be interested in "Under"
17:27 jberger http://mojolicious.org/perldoc/Mojolicious/Guides/Routing#Under
17:28 mortisha OK I will have to go back to that, but this makes a little more sense. Yes, I notice that what Grinnz_ mentioned is similar to Under
17:28 jberger but these are rather fundamental aspects of mojolicious and it will help you long-term to understand these concepts
17:28 mortisha It's basically the principle of routing ...
17:28 mortisha yes, for sure.
17:28 jberger under is just a nested route with some code attached before dispatching to the child routes
17:29 Grinnz_ under has an intermediate dispatch step. other nested routes do not
17:30 mortisha So for speed, how do you recommend I proceed? I have got 40 top level functions, so essentally /a1, /a2, /a3, etc ... /a40 ...
17:30 mortisha each one has many sub calls , such as /a1/b1, a1/b2, a1/b2/c1, etc ....
17:45 mortisha Grinnz_: (see 12:26): how do I pass $abc into a sub? Do I have to require the new Package, or do I put it in the controller? Forgive me, but I really do not understand OO very well (and almost not at all)
17:45 Grinnz_ it's just a reference, you pass it like any other scalar
17:46 Grinnz_ wherever you pass it to does not need to know where it comes from
17:46 Grinnz_ or you mean calling subs in general? maybe you should look at a tutorial or two :)
17:46 mortisha yes, but in mojolicious there are these shortcuts to Controllor, so that subs are called via "to" ...
17:47 Grinnz_ setting up routing has nothing to do with the controller classes...
17:48 mortisha The example shows this: my $foo = $r->any('/foo')->to(controller => 'foo');, so then what?
17:48 Grinnz_ when you call ->to it's just setting the target of that route, it's not calling the controller yet
17:49 Grinnz_ so then you have $foo, which is a route object you can pass to anywhere then add new nested routes
17:49 mortisha I wish it was obvious to me, but I've been writing procedural perl for 10 years, and it's not obvious to me
17:49 Grinnz_ $foo->any('/bar')->to(...)
17:49 Grinnz_ routes to /foo/bar
17:50 Grinnz_ what i was saying is that part can be in another subroutine, an application method...
17:50 Grinnz_ an arbitrary module function you write
17:50 mortisha yes, but what do I do with foo from my $foo = $r->any('/foo')->to(controller => 'foo');?
17:50 mortisha do I pass it like so? new_sub($foo) ? Into where, Controller, or just a plain old Perl package?
17:51 Grinnz_ wherever you want to define the nested routes (not the controller)
17:51 mortisha I have a hundred routes ... they look like so: "if $secondpart eq 'hello' then .... ..... and if $secondpart eq 'goodbye' then ....
17:52 mortisha these are all just plain subroutines ....
17:52 Grinnz_ for instance if you put sub foo_routes { my ($self, $foo) = @_; ... } in the application class, then you can call $self->foo_routes($foo) in startup to call that method
17:52 pink_mist none of that looks like a subroutine
17:52 mortisha pink_mist: they all split off to subroutines ...
17:52 mortisha those are just the if clauses I'm showing
17:53 Grinnz_ or that can just be a normal function, $self doesn't need to be passed
17:53 Grinnz_ sub foo_routes { my $foo = shift; ... } sub startup { ... foo_routes($foo) ... }
17:55 mortisha Is there an example of this somewhere that I can find?
17:56 mortisha I mean, a real example, that works.
17:58 mortisha For example, if I do this, $r->get('/joe/*')->to('example2#welcome');, how can I pass the subparams to Example2.pm?
17:58 mortisha Is it possible under this construct, or is it not possible?
17:58 mortisha I suppose I should have said, $r->get('/joe/*myval')->to('example2#welcome');
17:59 Grinnz_ this has nothing to do with nested routes...
17:59 Grinnz_ i'm not sure what we're talking about
17:59 mortisha So you are saying a route cannot get passed to Example2.pm, is that correct?
18:00 mortisha For example, here, $r->get('/')->to('example#welcome');, I called sub welcome, inside of Example.pm
18:00 Grinnz_ that's when you get a request ,not when you're routing
18:00 mortisha But how could I pass a wildcard parameter to welcome()?
18:01 Grinnz_ https://metacpan.org/pod/distribution/Mojolicious/lib/Mojolicious/Guides/Routing.pod#Standard-placeholders
18:02 Grinnz_ placeholders pass the value to the action method via the stash, on each request
18:07 trone joined #mojo
18:08 mortisha I think I found what I'm looking for, something like this: $r->get('/:name' => [name => qr/[a-zA-Z]+/])->to('foo#bar');
18:08 mortisha Now I can access "name" inside of Foo::bar, correct?
18:08 Grinnz_ don't use conditions unless you need them, theyre inefficient
18:09 Grinnz_ the routing guide goes over placeholders in great detail
18:09 mortisha OK, but still, I can do: $r->get('/abc/:name')->to('foo#bar');
18:09 Grinnz_ yes
18:10 mortisha and I can access name in Foo::bar, correct?
18:10 Grinnz_ right
18:10 mortisha how?
18:10 mortisha sorry, I know this is easy, but I'm really stupid in this area
18:11 Grinnz_ from the stash
18:11 Grinnz_ https://metacpan.org/pod/distribution/Mojolicious/lib/Mojolicious/Guides/Routing.pod#Stash
18:13 mortisha So essentially like this, then: my $name = $self->stash('name');
18:14 Grinnz_ you can also use $self->param: https://metacpan.org/pod/Mojolicious::Controller#param
18:15 mortisha OK I will try it out. Thank you.
18:16 Grinnz_ https://metacpan.org/pod/Mojolicious::Guides::Tutorial#Placeholders also mentions this
18:16 Grinnz_ the inline subs and controller action methods work the same way
18:33 crux_ joined #mojo
18:39 mortisha morbo ~/mojo/test_app/script/test_app is not recognizing any changes to /mojo/test_app/lib/TestApp/Controller/Abc.pm; how can I fix this? This is not supposed to be the case, correct? However, I've double (and even triple) checked this, and morbo is not picking up the changes w/o a restart
18:39 Grinnz_ it watches dirs relative to the current directory by dfault, you're not in the project directory
18:40 mortisha actually, I am in the project directory, but I just spelled it out to show you the path. So I'm doing this: "morbo test_app"
18:40 Grinnz_ then you're in the script dir :P
18:41 mortisha yes
18:41 Grinnz_ lib is not in the script dir
18:41 mortisha so you're saying to cd to ~/mojo
18:41 Grinnz_ ~/mojo/test_app
18:41 mortisha ok
18:41 mortisha :-)
18:41 Grinnz_ you can also specify the directories to watch yourself with -w
18:42 mortisha yeah, I had read about that .... thank you
18:42 mortisha I didn't quite know where that was at a glance, but thanks. I appreciate it.
18:43 mortisha yup, working now. Thanks.
18:43 mortisha (hey, that helps)
18:48 Kogurr joined #mojo
19:00 marty joined #mojo
19:04 sri Grinnz_: that's not a condition, but a restrictive placeholder
19:05 tyldis If I want to use events from an IO::Async as a driver for a Mojo app, is Mojo::Reactor::IOAsync the best way to go?
19:05 Grinnz_ oh
19:05 Grinnz_ tyldis: or IO::Async::Loop::Mojo, depending which you will be using to start/stop the loop
19:05 tyldis Grinnz_ might not be objective, I suspect ;)
19:05 sri hashref = default values, arrayref = restrictive plaeholder, plain key/value = condition
19:06 Grinnz_ tyldis: the "best way" is to get everything from one event loop system, but if you're willing to accept th eperformance hit, either backend glue should work...
19:07 tyldis Grinnz_: Thanks, I'll go read
19:07 sri IO::Async::Loop::EV might also work
19:08 Grinnz_ true, didnt know that existed
19:08 tyldis Great, that gives me some starting points. Performance is not likely to become a factor in my lifetime for this project.
19:09 tyldis Ah, that one makes both use EV as backend? Sounds nice and clean.
19:10 Grinnz_ well, it makes IO::Async use it, Mojo will use it as long as it can load a new enough EV
19:10 tyldis Seem to recall something along those lines from the docs
19:26 punter joined #mojo
20:18 absolut_todd joined #mojo
20:50 kaare joined #mojo
20:54 marty joined #mojo
21:01 good_news_everyon joined #mojo
21:01 good_news_everyon [mojo] kraih pushed 1 new commit to master: https://github.com/kraih/mojo/commit/ea490a37557e82e522bb818732d40185cdc50cf2
21:01 good_news_everyon mojo/master ea490a3 Sebastian Riedel: mention performance impact of route order
21:01 good_news_everyon left #mojo
22:57 sue joined #mojo
23:00 sri so, stevan is at it again? :o https://www.youtube.com/watch?v=Srdwhdr5wPc
23:01 jberger :o
23:01 jberger I was really pumped about his YAPC::NA talk
23:01 jberger then that seemed to evaporate almost immediately
23:04 Grinnz_ he's been popping commits on that from time to time
23:05 sue joined #mojo
23:06 Grinnz_ https://github.com/stevan/p5-mop
23:07 jberger oh I thought is was something with a funnier name
23:07 Grinnz_ like https://github.com/stevan/p5-mop-again-seriously-wtf ?
23:08 jberger yeah that one
23:08 Grinnz_ thats not quite the latest attempt :P
23:09 jberger well its the one he announced in his talk
23:09 mad_hatter joined #mojo
23:10 Grinnz_ wonder what Moxie is, that looks like it split out recently
23:10 Grinnz_ "Moxie is a reference implemenation for an object system built
23:10 Grinnz_ on top of the mop."
23:10 Grinnz_ apparently
23:10 jberger yeah, that was a part of that last implementation too
23:11 jberger the p5-mop is just primatives
23:11 jberger Moxie is the sugar
23:11 Grinnz_ because i guess we can't have an object system in perl without Mo* :P
23:40 genio That one's a bit hard to watch due to whoever is typing the whole time right beside the mic
23:46 sri also filmed with a potato
23:48 genio That, too.

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