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

IRC log for #mojo, 2016-11-26

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

All times shown according to UTC.

Time Nick Message
00:44 polettix joined #mojo
00:57 aborazmeh joined #mojo
01:00 jontaylor joined #mojo
01:03 lluad joined #mojo
01:34 alexbyk joined #mojo
02:13 asarch joined #mojo
02:18 stryx` joined #mojo
02:50 jberger I don't use audio/video/screenshare when I'm trying to be in the zone
02:51 jberger just when I'm trying make effective use of remote pair programming
02:51 jberger when I do that over chat, inevitably one person starts drifting
02:56 genio I find it very hard to pair over some sort of chat service
03:27 noganex_ joined #mojo
05:01 CW joined #mojo
05:04 dboehmer_ joined #mojo
05:10 Gedge joined #mojo
06:22 dod joined #mojo
06:28 dod joined #mojo
06:52 laidback_01 joined #mojo
07:27 polettix joined #mojo
08:03 rshadow joined #mojo
08:41 eseyman joined #mojo
09:10 abra joined #mojo
09:16 dantti_laptop joined #mojo
09:35 ivi joined #mojo
09:40 jontaylor joined #mojo
10:25 ivi joined #mojo
10:35 mishanti1 jberger, genio: I feel the same way, but when discussions are done via some audio-enabled service and both are editing the same buffer then it is much easier to avoid "drift".
10:37 polettix joined #mojo
11:05 abra joined #mojo
11:06 abra_ joined #mojo
11:07 abra joined #mojo
11:11 abra_ joined #mojo
11:14 dod joined #mojo
11:18 abra joined #mojo
11:23 abra joined #mojo
11:25 abra joined #mojo
11:26 abra_ joined #mojo
11:28 abra_ joined #mojo
11:29 abra__ joined #mojo
11:29 abra joined #mojo
11:32 abra joined #mojo
11:39 ilbot2 joined #mojo
11:39 Topic for #mojo is now ???? nom nom | http://mojolicious.org | http://irclog.mojolicious.org | http://code-of-conduct.mojolicious.org
11:40 abra joined #mojo
11:51 asarch joined #mojo
11:51 abra joined #mojo
11:53 abra_ joined #mojo
11:55 abra joined #mojo
12:29 abra joined #mojo
12:36 abra joined #mojo
12:37 asarch joined #mojo
12:42 abra_ joined #mojo
12:52 abra joined #mojo
13:07 abra_ joined #mojo
13:20 sugar joined #mojo
13:39 abra joined #mojo
14:16 zivester joined #mojo
14:44 dod joined #mojo
15:29 stryx` joined #mojo
15:44 disputin joined #mojo
15:53 abra_ joined #mojo
15:56 rshadow joined #mojo
16:00 ivi joined #mojo
16:02 abra joined #mojo
16:04 alexbyk joined #mojo
17:15 lluad joined #mojo
17:21 rshadow joined #mojo
17:34 tojo joined #mojo
17:47 polettix joined #mojo
18:00 PryMar56 joined #mojo
18:38 mishanti1 A non-blocking/design-question for the people here. We're working on getting our API to be able to accept more clients simultaneously and have started on making the API non-blocking.
18:39 mishanti1 After having read on the wiki and in the documentation I am still a bit uncertain exactly how much need to eg. be placed in Mojo::IOLoop::Delays for the workers to be able to process incoming requests.
18:39 mishanti1 From what I can gather the answer might be "everything".
18:41 mishanti1 Is this assumption near correct? Would the worker get to serve new incoming plus existing connections simultaneously if all operations agains eg database, network, local sockets etc are placed in delays?
18:52 abra joined #mojo
18:55 abra joined #mojo
18:57 abra_ joined #mojo
18:57 abra joined #mojo
18:58 rshadow joined #mojo
19:00 abra joined #mojo
19:01 abra joined #mojo
19:08 sri delays are not magic
19:09 sri just flow control, they do nothing for making stuff non-blocking
19:11 abra_ joined #mojo
19:12 mishanti1 Well yes. I gathered that the usage of the ioloop and passing callbacks to eg Mojo::Pg and the useragent is what makes things not block. So, as long as we use the cb-form for the various things that would otherwise block, and provide the right callbacks then the worker would accept and serve connections up to it's max-connection limit?
19:15 abra joined #mojo
19:18 abra_ joined #mojo
19:41 abra joined #mojo
19:57 alexbyk @mishanti1 in most of the cases switching from blocking db access to non-blocking won't make your application faster (event it will make it a little bit slower, test it yourself). Also using Mojo::Delay with non-blocking interface makes your "models" code untestable (without your app), while not using it makes your code a nightmare.
19:57 alexbyk So IMHO, if you don't need a non-blocking interface to DB, avoid it. The only things you need to be non-blocking are serving clients(which Mojolicious makes for you transparently) and requesting external resources (like fetching information from FB).
20:02 sri alexbyk: delays don't make code untestable
20:03 sri pretty much all your advice is wrong actually
20:03 sri queries that take a long time should definitely be done non-blocking
20:05 * sri is sad people use delays wrong so much
20:06 alexbyk That's only my opinion. If there are some queries that take a long time, all application will work slow in case if every request depends on db (which is most of the cases, as I mentioned). If most of requests don't need db access, I agree, slow requests should be non-blocking. But it much simpler to optimize db access than write nb code
20:08 abra_ joined #mojo
20:15 pink_mist presumably you've already optimised your queries
20:26 abra joined #mojo
21:04 ranguard joined #mojo
21:06 alexbyk sri: Ok. If we mentioned that theme. I believe that promises can make Mojolicious much simpler, stable, obvious, testable. Mojo::Delay can only synchronize 1 or more actions and that's all. But it requires to write more code, a few people understand how it works, and it's very hard to test what's going on inside that delay.
21:06 alexbyk Promises can cover that only one M::I::D feature + many others. Promises are much easier to use, much simpler to test, they are very popular. And it's ridiculously simple to combine different APIs that uses promises. There is one well known flaw in the Promises/A+ design, but M::I::D also has it.
21:06 alexbyk So how about considering Promises/A+ in the Mojolicious core? Don't you thing that it will make Mojolicious at least more popular?
21:06 sri alexbyk: umm, i keep mentioning it here
21:07 sri if someone makes a cool proposal for promises i'll prolly accept it
21:09 alexbyk I'm not very often here so I was sure that you are against promises. Good to know.
21:13 sri and after i say that it usually gets silent and nobody ever makes a proposal
21:16 polettix joined #mojo
21:16 alexbyk That's because promises are easy to use but not so easy to implement.
21:32 sri i wouldn't even mind implementing Mojo::Promise myself, the problem is integration into the framework
21:32 sri for all i care make a prototype with some existing promise module on cpan
21:32 genio didn't Grinnz already do a ::Future thingy?
21:33 Grinnz that's just an adapter for Future
21:33 Grinnz oh, "with some existing promise module", yeah that counts i guess :P
21:34 Grinnz but its not really integrated into mojo, just the ioloop
21:35 ranguard joined #mojo
21:36 sri yea, i don't care at all about the promise module used for the prototype
21:36 genio integrating futures/promises into the framework would be... very cumbersome
21:36 sri just teh integration
21:36 sri it has to be better than delays
21:37 sri genio: not necessarily
21:38 sri you could for example propose "my $promise = $ua->maybe_get('http://mojolicious.org')", which would be a wrapper around the callback version of ->get(...)
21:40 sri personally, what i'm really looking forward to is torturing promises fans with questions about their plans for Mojo::IOLoop->timer() and Mojo::IOLoop->recurring() though ;p
21:41 sri that's where you realize just how few use cases for promises there are in mojolicious
21:41 sri most callbacks in our api don't fit the promise pattern, they are observables
21:42 alexbyk At least I have one impl. here in perl - this covers full SPEC/A+:
21:42 alexbyk https://github.com/alexbyk/perl-evo/blob/master/lib/Evo/Promise/Role.pm#L119-L231 (other code is just syntatic sugar and utilites)
21:42 alexbyk At a first glance this code may look scary. That's because it was designed to work with any Event loop (AnyEvent, Mojo etc) that may not have next_tick feature(required by spec) and walks a tree without recursions (which is good for perl, bad for people). But the main part https://github.com/alexbyk/perl-evo/blob/master/lib/Evo/Promise/Role.pm#L199-L231 is quit simple.
21:42 alexbyk Right now I don't fill experienced enough to make a proposal (I'm very modest and non-confident person). But at least this may help some smart guy to implement Promises in Mojolicious.
21:42 alexbyk I can add when I started to use promises with Mojo it was like having sex with a real girl for the first time instead of internet porn - both are ok, but the real girl is much better.
21:42 sri alexbyk: that part is completely uninteresting though
21:43 sri alexbyk: umm, that last part is not appropriate
21:44 sri consider yourself formally warned
21:46 sri an on that note i leave the promises discussion again
21:49 sri alexbyk: in case the context is not clear to you http://mojolicious.org/perldoc/Mojolicious/Guides/Contributing#CODE-OF-CONDUCT
21:49 alexbyk What word from my last sentence is not appropriate?
21:51 pink_mist alexbyk: all the unnecessary sex talk.
21:51 alexbyk For the notes, that wasn't Unwelcome sexual attention) I was triying to make a point)
21:51 pink_mist and porn
21:51 alexbyk ok ok)
21:51 batman joined #mojo
22:05 alexbyk sri: I didn't get this part "...about their plans for Mojo::IOLoop->timer() and Mojo::IOLoop->recurring()". What's about them? Promises (https://promisesaplus.com/#point-34) requires "next_tick" which is implemented by Mojo::IOLoop. timer and recurring are not connected with promises
22:12 Grinnz you can have a promise that is completed by a timer, e.g. https://metacpan.org/source/DBOOK/Future-Mojo-0.003/lib/Future/Mojo.pm#L22
22:13 Grinnz but recurring timers don't fit into the model
22:14 Grinnz since promises resolve and have a result only once
22:16 alexbyk I'm talking about specification described here https://github.com/promises-aplus/promises-spec - It doesn't requires timers or recurring, it even doesn't mention them. There are no promises that is resolved by the timer in the original spec.
22:20 Grinnz as sri said, there is implementing the spec, but that is separate from integrating it into the framework
22:45 alexbyk Ok. I got it. There is a Future module. For people who have an experience with JS development it's obvious that Future is not a Promises. Also there is abandoned Promises module, that is either not Promises/A+ or is buggy (and people may start working with it and become dissapointed as was I)
22:45 alexbyk As i understand, Mojo developers are thinking about Promises like "something like Future" and that's why don't see real benefits. That's why I didn't get a part about "timer" and "recurring" because is doesn't make sense for me (in context of promises)
22:45 alexbyk I also have to mention that I'm black vegan viper and my mission this year will be populate promises. I'm out. Have a nice weekend. P.S: Sex porn vodka trump.
22:47 jberger alexbyk: the idea is to make everyone comfortable. You clearly aren't interested in that, but we are
22:47 jberger you were just warned
22:47 jberger so, I think I'm safe in issuing a tempban
22:48 jberger good riddacne
22:48 jberger riddance even
22:49 sri *facepalm*
22:49 jberger sri: how long did we think for a first tempban? 1 day?
22:50 jberger I'm pretty upset though, that was flagrant
22:50 sri yea, definitely a week imo
22:50 jberger make it so
22:50 purl Fuck that, Picard. Get Data to do it.
22:50 jberger botsnack
22:50 purl :)
22:51 sri reminds me that i'm not sure how to feel about the new star trek show
22:52 alexbyk joined #mojo
22:53 alexbyk I'ts because I'm black? Or because I was voting for Thump? So intolerant :(
22:54 sri jberger: permanent i guess
22:54 sri alexbyk: good bye, we'll never speak again
22:55 jberger hmmm, the new convos doesn't make it easy to ban
22:55 jberger did it go though?
22:56 alexbyk was kicked by Grinnz: alexbyk
22:56 Grinnz :P
22:56 jberger thanks
22:56 jberger and time for a few feature requests in convos too
22:56 sri "jberger banned alexbyk!*@* (+b)"
22:56 jberger heh, it didn't echo that at all
22:57 Grinnz for good measure
22:58 jberger and for the record, voting history had absolutely nothing to do with that
22:58 jberger nor did race, if that even needs to be said
22:59 pink_mist it really doesn't
22:59 meredith i was kinda assuming they were facetious claims
23:01 sugar joined #mojo
23:06 jberger and its kinda too bad because I know mst is slowly tinkering with a module to make Futures easier to use with a callback api
23:06 jberger and I was chatting with him about it, but now I find myself not caring very much
23:07 jberger on a completely different note, aaaahhh, I finally can relax
23:07 alexbyk_ joined #mojo
23:09 jberger alexbyk_: you have been permanently banned from this community because of your insistence on making others uncomfortable, despite our rules and warnings
23:09 jberger and if you hadn't been, now you WOULD be because of evading a ban
23:09 alexbyk_ I'm not him...
23:09 alexbyk_ was kicked by Grinnz: alexbyk_
23:10 Grinnz hmm irccloud still needs to fix /kickban too
23:11 pink_mist wonder what his problem is
23:11 pink_mist I mean, it's not normal to antagonise a community intentionally
23:12 Grinnz immaturity
23:12 purl i think immaturity is a stress outlet.
23:12 lindsey_stirling joined #mojo
23:12 pink_mist lindsey_stirling: you're not fooling anyone. just leave.
23:14 pink_mist ok, maybe you are fooling Grinnz and jberger since you aren't banned yet ...
23:15 jberger my whowas doesn't work, again, another feature request to convos
23:15 lindsey_stirling You now I was going to leave and even have closed my irc client when I found that was going to be banned)
23:15 jberger and that helps you how?
23:15 lindsey_stirling Right now I can't just leave))) I need to see what will be here)))
23:16 jberger chanserv op #mojo
23:16 jberger err
23:16 lindsey_stirling What is convos?
23:16 purl convos is really great on Android. or teh awesomez or at http://convos.by/
23:16 jberger but now that you've confirmed it
23:17 lindsey_stirling was kicked by jberger: lindsey_stirling
23:17 sri he's blocked on github too
23:19 jon-jones joined #mojo
23:23 jberger jon-jones: you might think you are having fun, the wheels of moderation are turning however
23:23 haarg just ban *!*@*.dialup.umc.net.ua for now
23:24 jon-jones was kicked by Grinnz: jon-jones
23:24 jberger I hate to do that since I don't want to affect other users, no one ever remembers those
23:24 jberger and then its "why can't I join?"
23:24 Grinnz I'll change the ban back in a few hrs
23:27 bender-rodriguez joined #mojo
23:28 bender-rodriguez Yeah. Right. He deserves that)
23:28 bender-rodriguez was kicked by Grinnz: bender-rodriguez
23:29 Grinnz i can do this all day. how much effort you want to put into this?
23:29 jberger Grinnz++
23:33 chansen LOL, thats a very persistent fellow!
23:34 cartman joined #mojo
23:35 cartman was kicked by Grinnz: cartman
23:37 mishanti1 Would `my $id = Mojo::IOLoop->recurring( 0.1 => sub { Mojo::IOLoop->remove($id) if something_is_truthy() });` be terribly naughty? Basically I'm trying to sit and wait until something happens while letting the eventloop run.
23:38 Grinnz that's pretty standard polling really
23:38 Grinnz however you'll need to declare $id in the previous statement
23:38 Grinnz as it won't exist yet
23:39 mishanti1 Grinnz: Thanks. :) So `my $id; $id = Mojo::IOLoop etc etc`?
23:39 Grinnz yea
23:39 mishanti1 Excellent. Thank you. Btw, my usage of ->remove() is correct there? ->remove is for removing eg. timers set up lie that?
23:39 mishanti1 s/lie/like/
23:39 Grinnz yep
23:41 mishanti1 Great. Thank you for helping, and at this hour.
23:42 randall-marsh__ joined #mojo
23:42 randall-marsh__ I have something important to say! stop!
23:42 randall-marsh__ was kicked by Grinnz: randall-marsh__
23:43 sri bit odd, he's not even anonymous
23:43 haarg Grinnz: 130.180.* won't affect anyone else currently
23:46 polettix joined #mojo
23:49 sarahconnor_ joined #mojo
23:50 sarahconnor_ joined #mojo
23:51 sarahconnor_ joined #mojo
23:51 sarahconnor_ was kicked by Grinnz: sarahconnor_
23:52 jberger joined #mojo
23:52 jberger hrm, I tried upgrading convos and got stuck in dependency hell (not for the record that I don't use the standard deploy process convos (rightly) recommends)
23:54 jberger joined #mojo
23:54 jberger k I think I'm really back this time

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