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

IRC log for #mojo, 2015-07-13

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

All times shown according to UTC.

Time Nick Message
00:01 preaction BA-NA-NA?
00:04 sri :O
00:25 Kogurr joined #mojo
00:37 mattastrophe joined #mojo
00:43 zivester joined #mojo
00:57 mattastrophe1 joined #mojo
01:23 mattastrophe joined #mojo
01:28 frederico joined #mojo
02:12 noganex_ joined #mojo
02:24 mattastrophe joined #mojo
02:38 hshong joined #mojo
03:17 saki joined #mojo
03:30 mattastrophe1 joined #mojo
03:31 jberger BA-NA-NA!
03:44 jberger the autoderef is dead! long live postderef!
03:58 mattastrophe joined #mojo
03:59 kaare joined #mojo
04:04 kaare_ joined #mojo
04:22 mattastrophe1 joined #mojo
05:01 mattastrophe joined #mojo
05:13 hesco joined #mojo
05:14 hesco perl seems to ignore my MOJO_MODE environment variable:  https://gist.github.com/hesco/c6c3ff06e9e0a153bb69#file-0200-scripts-supporters  Any idea why?
05:57 cpan_mojo Statocles-0.052 by PREACTION https://metacpan.org/release/PREACTION/Statocles-0.052
06:07 cpan_mojo Mojolicious-Plugin-ServerInfo-0.010 by WOLLMERS https://metacpan.org/release/WOLLMERS/Mojolicious-Plugin-ServerInfo-0.010
06:08 McA joined #mojo
06:13 jb360 joined #mojo
06:32 y1mmm joined #mojo
06:33 jnbek joined #mojo
06:33 sivoais joined #mojo
06:33 tianon joined #mojo
06:33 CandyAngel joined #mojo
06:33 McA joined #mojo
06:33 jwang joined #mojo
06:33 buu joined #mojo
06:33 davido__ joined #mojo
06:33 mst joined #mojo
06:33 bd joined #mojo
06:33 cstamas joined #mojo
06:34 mtths joined #mojo
06:34 marcusr joined #mojo
06:34 dustinm joined #mojo
06:34 jberger joined #mojo
06:34 ans joined #mojo
06:37 Bender joined #mojo
07:08 Lee joined #mojo
07:10 trone joined #mojo
07:12 AndrewIsh joined #mojo
07:20 Vandal joined #mojo
07:37 Lee joined #mojo
07:43 dp_ joined #mojo
08:26 berov joined #mojo
08:30 eseyman joined #mojo
08:40 jontaylor joined #mojo
09:11 bin_005 joined #mojo
09:13 absolut_todd joined #mojo
09:26 absolut_todd joined #mojo
09:30 absolut_todd joined #mojo
09:31 punter joined #mojo
09:59 bin_005 joined #mojo
10:16 pink_mist hesco: presumably sudo is removing it ... sudo is wont to do that
10:16 pink_mist hesco: man sudo
10:18 geheimnis` joined #mojo
10:20 pink_mist hesco: so your test where you did: "env | grep MOJO" was insufficient. you should have done "sudo -u hesco env | grep MOJO"
10:21 pink_mist assuming your security policy isn't specially set for /usr/bin/perl
10:22 frederico joined #mojo
10:41 deserted joined #mojo
10:48 adnane joined #mojo
10:49 bpmedley joined #mojo
11:18 eitz joined #mojo
11:38 neilhwatson joined #mojo
11:47 jontaylor I’m trying to benchmark two apps and getting odd results, App A does a webservice call to App B, and i’m trying to make sure there are no bottlenecks
11:47 jontaylor so i’m apache benching app A, with 100 concurrency
11:48 jontaylor and everything is fine, but I get stalls
11:48 jontaylor so it’ll be doing say 800 requests per second, then drop to 3 or 4
11:48 jontaylor for 1 second
11:48 jontaylor before improving again
11:49 jontaylor I thought it could be workers restarting, so I set them to accepts => 0
11:49 jontaylor but thats not sorted it, i’ve tried boosting max files and the ulimit, no luck either
11:53 batman jontaylor: have yout tried benchmarking with just "daemon" (not prefork/hypnotoad)
11:53 batman s/yout/you/
11:54 jontaylor batman: no, i’ve tried morbo and hypnotoad, I will try deamon mode now
11:54 jontaylor thanks
11:54 batman it would probably answer the "is there a worker issue?" question...
11:54 pink_mist have you tried not putting apache in front of it, but just testing the actual app itself?
11:54 jberger morbo is the development server and there is little point to profiling it
11:55 pink_mist indeed, morbo sounds silly to do this with
11:55 batman oh. i thought "apache benching app" was "ab"
11:55 pink_mist oh, well maybe?
11:55 purl Maybe not.
11:55 pink_mist I don't know
11:56 batman jberger: it shouldn't really matter, unless morbo actually restarts the app...?
11:56 jontaylor yeah ab
11:56 jontaylor i’ve not got apache itself in the loop
11:56 pink_mist ah ok
11:56 batman jontaylor: good :)
11:59 jontaylor batman: stalls completed gone running with daemon
11:59 jontaylor *completely
11:59 batman cool. what is the result?
11:59 batman (in numbers)
11:59 jberger jontaylor: your app calls into itself?
12:00 jontaylor jberger: it calls another mojo app
12:00 jberger Are they running in the same server process?
12:00 jontaylor so under deamon i’m getting 130 req/s +- 20
12:00 batman ok. jontaylor what about "clients" in hypnotoad config?
12:00 jontaylor under hypnotoad I average about 500, but with some seconds doing under 10 req/s
12:01 jontaylor taking the default for clients, gonna quick look up what that is
12:01 jontaylor defaults to 1000
12:03 jontaylor clients only matters for async apps though doesn’t it
12:03 batman also consider "requests"... no idea how "ab" works / is set up (Maximum number of keep-alive requests per connection, defaults to 25.)
12:05 jontaylor batman: fearing that I split my ab into 4 different tabs
12:06 jontaylor so i’ve got 4 threads doing 20 concurrency now
12:06 batman sorry. i don't understand what you're saying :(
12:06 batman don't mind if i don't have to, hehe
12:06 jontaylor thank you for your suggestion to try deamon mode now, i’ve got a new avenue of investigation :)
12:07 batman yeah. i would think benchmarking with daemon is good for finding bottlenecks.
12:07 batman i think you can even use nytprof...
12:08 batman perl -d:NYTProf yourapp.pl; .... nytprofhtml --open
12:09 batman you even have https://metacpan.org/pod/Mojolicious::Plugin::NYTProf written by Lee
12:09 batman (haven't used that myself)
12:17 kyshtynbai joined #mojo
12:25 ivan_ joined #mojo
12:34 PryMar56 joined #mojo
12:42 Adurah joined #mojo
12:51 bwf joined #mojo
13:11 ajr_ joined #mojo
13:12 hesco of course, pink_mist.  I had missed that one.  And this had baffled me for a couple of hours.  Thanks for that insight!
13:14 dvinciguerra joined #mojo
14:02 kmx joined #mojo
14:06 stokachu joined #mojo
14:21 mattastrophe joined #mojo
14:30 mattastrophe joined #mojo
14:35 ivan__ joined #mojo
14:41 amfvargas joined #mojo
14:46 punter joined #mojo
14:53 gryphon joined #mojo
14:57 disputin joined #mojo
14:59 sh4 joined #mojo
15:01 mattastrophe joined #mojo
15:10 AndrewIsh hi guys. does anyone know with Mojolicious::Plugin::Config whether the config parsing is recursive, i.e. can i refer to other config files within my main config?
15:11 Ptolemarch joined #mojo
15:12 AndrewIsh and whether the config of the other files is interpolated into my config hash?
15:14 Grinnz_ unless the docs say so, config files generally don't have an "include" method
15:15 AndrewIsh yeah, not seeing anything in the docs :(
15:15 berov AndrewIsh: no, they ar not recursive
15:16 AndrewIsh berov / Grinnz_ : ok, i feared that might be the case, thanks
15:17 berov AndrewIsh: You have to implement somehow this if you need it
15:17 mst isn't the config file perl code?
15:17 berov mst: it is
15:18 mst so what the fuck would you need an include feature for?
15:18 mst thing => do { require 'other/config.pl' },
15:18 mst TADA
15:18 berov by default unless one use some other Plugin for config reading
15:18 berov mst: ++
15:18 mst AndrewIsh: so, what's wrong with using perl? :)
15:19 mst try and avoid imagining extra problems that don't exist - programming is hard enough when you only have to deal with the real ones.
15:19 AndrewIsh mst: amen, sorry, i was indeed adding a layer of complication that didn't need to be there!
15:19 Grinnz_ well, assuming you're in the correct directory
15:20 mst true. otherwise you may require Dir::Self to make it work
15:20 pink_mist or just specify full path
15:21 mst ooh! ooh!
15:21 berov AndrewIsh: you can use app->home->rel_file('path/file.pl') from within config file it self
15:21 mst it injects a sub app() into the config
15:21 mst right
15:21 Grinnz_ ^^
15:21 Grinnz_ i like that way
15:21 Grinnz_ absolute paths bad :)
15:22 mst actually
15:22 mst bah, not quite
15:23 mst Mojolicious::Plugin::Config->load(app->home->rel_file('path/file.pl'), {}, $app)
15:23 mst would also work
15:23 mst but is starting to get icky
15:24 AndrewIsh mst: i really like the app->home->rel_file('path/file.pl') suggestion, i'll give that a go :)
15:24 AndrewIsh berov: i really like the app->home->rel_file('path/file.pl') suggestion, i'll give that a go :)
15:24 AndrewIsh doh! sorry, didn't mean to duplicate
15:24 mst eh
15:24 mattastrophe joined #mojo
15:25 berov AndrewIsh: https://metacpan.org/pod/Mojo::Home <-docs
15:26 berov app->home is an instance of Mojo::Home
15:26 AndrewIsh berov: thanks :)
15:27 AndrewIsh berov: ah yes, makes sense, thanks :)
15:27 berov example :) https://metacpan.org/source/BEROV/Ado-0.921/etc/ado.conf#L121
15:30 jberger AndrewIsh: note also that it does load mode-specific configuration files too
15:30 jberger http://mojolicio.us/perldoc/Mojolicious/Plugin/Config#DESCRIPTION
15:32 jberger with that and the defaults option I have rarely needed to do additional recursive loading, though of course I can see the value for complex hierarchies
15:32 sri jontaylor: ab is terrible for benchmarking, you're prolly running out of file descriptors
15:32 jontaylor sri: I am indeed, looking at alternatives now, looking into seige
15:32 sri wrk
15:33 sri the sudden slowdown is typical for running out of file descriptors, you avoid that by using keep-alive, which wrk does all the time
15:33 AndrewIsh jberger: ah yes, good point, thanks for that
15:35 nicomen should have had a mojo-based http benhmarking tool ;)
15:35 jontaylor sri: grabbing wrk now, I also found setting sudo sysctl -w net.inet.tcp.msl=1000 improved my performance by 5 times
15:36 jontaylor ports were only being released after 15 seconds, 1 second is much better
15:36 sri nicomen: that would be terrible
15:37 mst you want your benchmarking tool to be written in something lower level than perl really
15:37 nicomen sri: aren't all the building blocks there?
15:37 nicomen well, yeah, but I noticed wrk was ruby...
15:38 sri bullshit
15:38 lluad joined #mojo
15:38 sri wrk is C
15:38 nicomen err lua
15:38 nicomen ah right
15:38 mst C with embedded lua scripting != 'lua'
15:38 sri in fact it's the redis event loop
15:38 mst so, yes, you could, in theory, write a bench tool in perl
15:38 mst same as you could, in theory, have sex down a nine foot long metal pipe
15:39 mst but it wouldn't be clever, it won't be comfortable, and it wasn't designed for that
15:39 sri i very much doubt you could make a better benchmark tool than wrk with perl
15:39 jberger (right tool for the job)++
15:40 nicomen wrk2 ?
15:40 sri and it's not just C and Lua, it's actually LuaJIT!
15:40 jontaylor ab: 5100 req/s, ab with more file descriptors: 25000 req/s, with wrk: 34678 req/s
15:40 sri that thing is really fricking fast
15:41 Grinnz_ who benchmarks the benchmarks?
15:41 sri wrk is so good, it usually is able to overwhelm any web server if you configure it right, so you learn exactly the limits of your app
15:41 jontaylor sorry those are request per miunte...
15:41 jontaylor i’m not running twitter or anything
15:41 jontaylor :)
15:42 sri 34k rps is not really shocking, if you had a big server with many cores
15:43 sri one big server can deliver that with hypnotoad and a lot of workers/cores
15:44 sri (as long as you don't have latency from backend services, such as a database)
15:46 sri like here actually https://www.techempower.com/benchmarks/#section=data-r10&amp;hw=peak&amp;test=db
15:46 sri 16k rps with postgres
15:46 sri and that's not even a super big server
15:51 jontaylor I didn’t realise mojo was that much faster than rails with unicorn
15:52 batman mst: why do you use do { require 'other/config.pl' } instead of just do('other/config.pl') ?
15:54 mst batman: require throws exceptions
15:54 mst batman: do you really want silent failure on a syntax error?
15:54 batman mst: ah! right. so you don't have to do ... or die $@ ?
15:54 mst exactly
15:55 * batman checks if require and do both do/don't cache the config
15:55 mst neither
15:55 mst require will only work once per process
15:55 mst do will parse it every time
15:56 batman mst: right. wasn't sure if require cached when giving it a filename
15:56 mst no, it'll just return 1 from then on
15:57 batman that's probably why i've done do(...) or die $@ instead
15:57 batman no good reason, just old wisdom (what's wisdom, when it's stupid? hehe)
16:00 batman i was not expecting the response to "Reasons for choosing Mojolicious" ... i was almost sure i had messed up the selection of words somewhere.
16:00 batman seems like i didn't for once :)
16:01 mst batman: basically, the do approach is more reliable in terms of if you get re-run but if you know it'll only get loaded once then require is prettier and harder to get wrong
16:01 batman yeah. makes sense
16:04 jberger batman: speaking of your post (which was nice btw): https://www.reddit.com/r/perl/comments/3d5117/reasons_for_choosing_mojolicious_by_jan_henning/
16:06 batman i'm not on reddit :/
16:06 batman thanks
16:06 jberger I just checked for it and it wasn't there
16:06 batman haha -- i got an account :S
16:06 nicomen batman: I had to laugh though, when many of the modules are actually yours ;) It reminds me of myself using myself as a quote in a uni thesis... :-P
16:06 batman maybe i should post the swagger url there...
16:07 jberger "i was not expecting the response to "Reasons for choosing Mojolicious"" where do you get your reponses?
16:07 nicomen I don't think that's bad mind you
16:07 batman nicomen: what's the option? i make modules, because they don't exists.
16:07 nicomen batman: yeah I know, and it's good ;)
16:07 batman jberger: twitter and irc.
16:08 nicomen I love them ;)
16:08 batman jberger: please let me know if should be corrected!
16:08 Ptolemarch joined #mojo
16:10 batman nicomen: also, i would love to hear if there was more modules i could suggest.
16:10 batman *are
16:10 mst huh, somebody on perlmonks mentions Raisin
16:11 mst I'd not even heard of that one
16:11 * batman don't get raisin
16:11 batman no idea why i would use it
16:12 batman but... i might be a tad bias ;)
16:12 batman i think it's very difficult to get "do/does" right when using "/me ..."
16:12 mst actually, that looks quite cute
16:12 mst sort of like Dancer::Plugin::REST except without most of the awful
16:13 jberger mst: http://cdn.discogs.com/2Eh43b4LSuBI9zvcEg9lRqquxOA=/fit-in/300x300/filters:strip_icc():format(jpeg):mode_rgb()/discogs-images/R-1312562-1392516267-3673.jpeg.jpg ?
16:14 batman guess i need to make a DSL for Mojolicious::Plugin::Swagger2 then, if that's cute...
16:14 Ptolemarch joined #mojo
16:14 batman that = raisin
16:15 mst eh, it's not something I'd ever use
16:16 pink_mist DSLs--
16:16 batman no, but there's probably more people you had the same thought
16:16 batman pink_mist: why?
16:17 pink_mist because it's another language to learn for one specific thing
16:17 mst oh, please
16:17 mst it's just some fucking subroutine calls
16:17 mst don't be a wuss
16:17 batman haha
16:17 mst do you call 'has' or do you use __PACKAGE__->attr ?
16:17 batman pink_mist: yeah. Mojolicious::Lite offers DSL. i think that works nicely
16:17 batman i'm also very happy with the Toadfarm dsl
16:18 pink_mist uh what? ::Lite isn't a DSL ...
16:18 mst yes it is
16:18 batman pink_mist: it is :)
16:18 buu APIs can in many cases be considered a DSL
16:19 buu much less whatever mojo-lite is
16:19 mst it's an internal DSL, just like D::P::REST, just like Raisin
16:19 pink_mist I don't think we mean the same thing when we mean DSL ...
16:19 pink_mist *when we talk about
16:19 buu I don't think he meant the internet connection
16:19 mst there's two sorts of DSL, internal and external
16:19 mst internal is something like Mojolicious::Lite or the Dancer API or Raisin
16:19 mst external is a complete extra language with its own parser
16:20 mst if you decided to say 'DSLs--' in the middle of a conversation about internal DSLs because you don't like extrnal DSLs, that would explain why you didn't make any sense
16:20 pink_mist well I don't consider "internal DSLs" to be DSLs at all
16:20 mst well then you're not using the same definition as the rest of the world
16:20 batman pink_mist: doesn't really matter what you think i'm afraid :/
16:20 mst protip: try to be having the same conversation before opening mouth
16:21 jberger I would define an (internal) DSL: a set of semantically named functions that mutate an (usually unseen) global state
16:22 jberger ::Lite falls right in there
16:22 mst right, so extends/has/with/before/after/around are an internal DSL
16:22 nicomen maybe you mean domain specific languages when talking about something that introduces a new syntax on top of an existing one?
16:22 mst the 'global state' part isn't actually relevant
16:22 mst nicomen: yes, pink_mist appears to have mentally redefined DSL to only mean external DSLs, and thereby got himself confused
16:22 mst we already established that
16:22 jberger mst: well without that, its just functions, I don't think that a "fuctional interface" is necessarily the same thing as a DSL
16:23 pink_mist jberger: THANK YOU
16:23 jberger pink_mist: I'm not sure I'm agreeing with you?
16:23 mst pink_mist: jberger is not agreeing with you.
16:23 pink_mist jberger: well you said exactly what I was trying to form in my mind
16:23 nicomen well, I think that's what most people man by DSL, something alien, or at least when they appear in that form, that's what most people who "don't like DSLs" mean
16:23 mst pink_mist: otherwise Mojolicious::Lite and Raisin and etc. would count
16:23 mst pink_mist: his definition includes exactly the things we've been counting as DSLs
16:23 mst pink_mist: that you've been claiming aren't
16:23 batman pink_mist: but jberger consider M::Lite to be a DSL, while you don't
16:24 mst jberger: also, you're playing black and white thinking
16:24 pink_mist "I don't think that a "fuctional interface" is necessarily the same thing as a DSL" <-- this part was what I was trying to form in my mind...
16:24 * batman is an echo machine (shuts up now)
16:24 mst well, no, a functional interface isn't necessarily the same thing
16:24 mst but the 'mutates semi-global state' is a silly way to decide the difference
16:24 jberger pink_mist: I don't consider ::Lite a functional interface
16:25 jberger mst: perhaps not, but in practice that seems to usually be the case
16:25 * sri even considers the Mojolicious router API a DSL
16:25 batman jberger: how is it not a functional interface?
16:25 sri $r->get('/')->to('foo#bar')
16:26 jberger "functional" almost by definition doesn't have side effects
16:26 * nicomen agrees with sri
16:26 jberger "uses function calls" ne "functional"
16:26 mst ok, but e.g. Web::Scraper has basically no side effects
16:26 nicomen schemantics
16:26 mst and is still very much a DSL-ish thing
16:27 nicomen *schmemantics
16:27 jberger mst: certainly that is mutating an internal state
16:27 pink_mist well, I've never heard 'DSL' be used for this kind of thing ever before, so I guess I learned something new today
16:28 nicomen everything may be called a dsl with a broad enough perspective
16:28 mst jberger: you started off with *global* state
16:28 * mst sighs
16:28 mst I love it when I make an argument and people's response is to move the goalposts
16:28 pink_mist and since I only ever heard the term DSL of what you term 'external DSL', my 'DSLs--' was obviously (external DSLs)--
16:28 nicomen programming languages? oh that's for computers, a small domain. Written language? Oh yeah as far as we known it's only used for communicate on Earth.
16:29 pink_mist DSLs++ #to keep the status quo
16:29 jberger mst: sorry, a state more global than the one that is visible, in Web::Scraper's case it is "the current scraper and current data"
16:29 jberger I didn't mean it to be goalpost moving
16:29 mst I really don't think that's the criterion
16:29 sri from wikipedia "embedded (or internal) domain-specific languages, implemented as libraries which exploit the syntax of their host general purpose language or a subset thereof, while adding domain-specific language elements (data types, routines, methods, macros etc.). (e.g. Embedded SQL, LINQ)"
16:30 mst __PACKAGE__->attr(...) doesn't seem like DSL to me
16:30 mst has() does
16:30 sri https://en.wikipedia.org/wiki/Domain-specific_language#Usage_patterns
16:30 mst and yet both mutate the exact same things
16:30 mst jberger: also, by that argument, HTML::Tags isn't a DSL
16:30 mst and I would argue that
16:30 jontaylor joined #mojo
16:31 mst do { use HTML::Tags; <html>, <head>, <title>, $title, </title>, </head>, <body>, $body, </body>, </html> }
16:31 mst is very definitely into the DSL category
16:32 mst but there's no global state involved there at all
16:33 nicomen or is it a macro language?
16:33 mst macros are a tool that can be used, among other things, for building DSLs
16:34 nicomen heh
16:34 jberger mst: well, I'm not exactly sure what I would call that, so sure, lets say DSL
16:35 mst I mean, generally, the global state thing is a side effect of the common ways of implementing such things in perl
16:36 mst something like e.g. the prolog-embedded-within-lisp type things (there's lots of those) will work a completely different way, simply because lisp allows different affordances
16:36 jberger mst: I will conceed that I come from a very Perl-centric view, I have been meaning to learn lisp at some point, just haven't found a good concrete motivator
16:45 dabudabu joined #mojo
16:57 cpan_mojo API-Twitter-0.02 by AWNCORP https://metacpan.org/release/AWNCORP/API-Twitter-0.02
16:58 mattastrophe joined #mojo
17:11 disputin joined #mojo
17:14 mattastrophe1 joined #mojo
17:28 ajr_ joined #mojo
17:30 human39 joined #mojo
17:33 mattastrophe joined #mojo
17:47 mattastrophe1 joined #mojo
17:50 amon joined #mojo
18:00 berov1 joined #mojo
18:09 trone joined #mojo
18:23 * sri yawns
18:23 * mst throws a sock
18:54 ajr_ joined #mojo
19:20 * sri dodges
19:21 sri (very slow reflexes)
19:21 mst don't worry, the sock was written in ruby
19:22 Grinnz_ sri was just practicing his blocking web server emulation
19:25 ribasushi mst: does this mean the sock comes with its own "usage dsl" ?
19:26 mst ribasushi: and its own OO system, Stiffy.rb
19:26 jberger http://www.sockdreams.com/products/ruby-slipper-socks?t=9322&amp;utm_source=google&amp;utm_medium=shopping&amp;utm_campaign=product_feed&amp;gclid=CPfn2obr2MYCFcGRHwodU1MNow
19:27 Grinnz_ nice
19:27 eitz joined #mojo
19:30 jberger I found that thinking I was looking for a ruby SOCKS implementation, but this was so much better :-)
19:36 bin_005 joined #mojo
19:52 disputin joined #mojo
19:55 zackiv31 joined #mojo
20:01 Grinnz_ new release of EV, i held my breath until the Changes loaded
20:02 jberger Grinnz_: it does have the canary attached
20:03 Grinnz_ oh shit, it does
20:03 neilhwatson joined #mojo
20:03 Grinnz_ hidden in a dynamic configure_requires
20:03 Grinnz_ of course
20:03 meredith he won't stop til all of cpan is as salty as he is
20:03 meredith (but toward him)
20:04 jberger meredith: no, I expect that eventually he is making himself less relevant
20:04 jberger as people push for replacements for his code
20:04 jberger which is sad
20:04 Grinnz_ so, anyone know how to fix UV? :)
20:04 meredith yeah, we're just going to find workarounds and replacements
20:05 jberger Grinnz_: I keep hoping for the time to make an FFI UV bindings
20:05 Grinnz_ meredith: we have those for everything except Coro and EV
20:05 meredith Corion has a repo with the five-line fix necessary for Coro on 5.22
20:05 Grinnz_ i don't want a five-line fix, i want something not maintained by mlehmann :P
20:05 sri Grinnz_: not quite, there
20:06 mst the canary doesn't stop it from installing though
20:06 sri 's also IO::AIO and IO::FDPass
20:06 jberger Grinnz_: https://gist.github.com/plicease/b51c70df4c516a89912d
20:06 Grinnz_ sri: never heard of them
20:06 jberger this little mess stopped me the first time, but plicease built that for me at YAPC::NA
20:06 sri Grinnz_: (more mlehmann modules without alternatives)
20:07 mst those are small enough we can probably fork them if we have to
20:08 Grinnz_ jberger: what am i looking at
20:08 sri IO::AIO actually includes libeio, i very much doubt there's a lot of people who could maintain a fork
20:08 jberger Grinnz_: how to get the type id for the different handle types
20:09 jberger that's needed to get to other useful bits like allocation size via FFI
20:09 Grinnz_ ok, that's way ahead of what i know about FFI :P
20:09 sri we are already seeing it with EV, there is a perfectly viable alternative with libuv, but nobody wants to maintain it
20:09 Grinnz_ i can take perl code and make it work with other perl code
20:09 Grinnz_ C, not so much
20:10 jberger Grinnz_: libuv claims to have ffi capable helper functions, and yet it has an enum macro which you have to parse out in order to use them
20:10 Grinnz_ sri: and libuv is being worked on constantly
20:10 sri sad truth is, mlehmann ware is here to stay, and we'll have to deal with it
20:10 Grinnz_ sri: even JSON::XS is being phased out
20:10 sri Grinnz_: you mean only JSON::XS
20:10 jberger what sri said
20:10 Grinnz_ i mean the most popular mlehmann module
20:10 sri because a company decided to pay for a fork
20:11 Grinnz_ true
20:11 jberger AnyEvent is arguably too
20:11 Grinnz_ the problem is strictly viable alternatives
20:11 sri what AnyEvent fork?
20:11 Grinnz_ no, because we have 3 viable alternatives to AnyEvent :P
20:11 jberger not fork, but other modules which allow crossing of event loops
20:11 Grinnz_ all with great ecosystems
20:11 jberger what Grinnz_ said :-P
20:12 jberger Coro will never have an alternative
20:12 jberger that seems certain
20:14 genio so much   "new Foo" syntax in the Coro docs.
20:15 Grinnz_ didn't you know, this is Java!
20:16 jberger http://cdn.meme.am/instances/500x/59625168.jpg
20:18 Grinnz_ that site is choking for me :(
20:18 sri i'm so tired of this topic... we keep repeating how awesome a proper UV module would be... and then nothing happens for a few months and the topic comes up again
20:18 * sri bans libuv talk
20:18 nicomen what is required for it to happen?
20:19 Grinnz_ someone writing it
20:19 nicomen like would a simple wrapper do it, or does one need to do heavy duty c/XS stuff?
20:19 jberger nicomen: that is what I was hoping for with FFI, otherwise, yes heavy duty c/xs
20:20 sri also pthread hacks like Net::DNS::Native does
20:20 sri because libuv uses threads for stuff, and will just segfault a lot
20:21 nicomen those suck
20:21 nicomen to implement correctly
20:21 jberger perl -MAcme::Boom -E 1
20:21 sri so realistically, we will not be getting an EV alternative unless some company decides to fund it
20:22 sri and i don't see that happening any time soon
20:22 Grinnz_ i think realistically, it's a good thing the Poll reactor is really fast now
20:22 jberger or a TPF grant, but that would still need a willing/available author
20:23 jberger another handy thing about an FFI port would be that there are already FFI bindings for other languages which could be ported much more easily than C/XS bindings
20:23 sri Oleg might be the only one with the know how to do it atm.
20:24 jberger the pthreads hacks, yeah probablys
20:24 sri anyway, it's not going to happen
20:24 genio how terrible is https://metacpan.org/pod/UV ?
20:25 sri very
20:25 sri unusable actually
20:30 jzawodn PSA: http://www.meetup.com/San-Francisco-Perl-Mongers/events/223265033/ -- I'm giving my scrubbed YAPC::NA Mojolicious/Craigslist talk tomorrow night in SF
20:33 jzawodn jberger and/or sri: a TPF grant is an interesting idea.  We've given to TPF in the past and I might be able to steer some $$$ in that direction if there's a concrete proposal
20:35 mudler joined #mojo
20:35 jberger jzawodn += 2
20:36 jberger jzawodn: I was very sad to hear that you weren't at YAPC::NA (I was more sad to find out about it on stage ;-) )
20:36 jzawodn doh
20:36 jzawodn yeah, sudden family medical emergency things rarely come at "good" times :-(
20:37 jberger if the videos for YAPC::NA were watchable it would be there for all to see
20:37 jberger jzawodn: eeps! is your family ok?
20:38 jzawodn well, sort of.  my dad died about a month later but it was not unexecpted.  that weekend ended up being our "fly home ot say goodbye" trip.  and I'm glad we had some advance notice at least
20:38 jzawodn much sufferring is now over
20:38 jberger jzawodn: ah, indeed, well I'm very sorry to hear about it all the same
20:38 jzawodn thanks
20:39 jberger jzawodn: back to a lighter topic, do you know if your talk will be streamed/recorded? I would love to see it
20:40 jberger tell my new friend vm I want to see it :D
20:43 jzawodn hmm
20:43 jzawodn we used to record and post on the Internet Archive, but she moved and we haven't recorded since then.  however, I'm repeating the talk for the South Bay perl mongers in a couple weeks and they may record.  I'll see what we can do.
20:43 jzawodn vm moved to Portland, iirc... a few months back?
20:44 jberger oh, right, I saw her on the meetup and forgot that she moved
20:44 jberger yeah portland
20:45 jberger jzawodn: wow, your sponsor list (cl included) is awesome!
20:45 jberger your == sf.pm
20:45 jberger I guess that's to be expected, but I'm so jealous
20:46 jberger the financial houses in chicago won't admit to using perl and they rarely even send attendees let alone sponsor things
20:54 jzawodn doh
20:55 jzawodn who was it, years ago, ... hm.  somone spoke at OSCON or the Perl Conference (maybe from Mogran Stanley) about their use a Perl
20:55 jzawodn yikes, I just dated myself: http://www.perlmonks.org/?node_id=125543
20:55 jzawodn that was 2001
20:55 pink_mist did you at least show yourself a good time? :P
20:56 jzawodn honestly, hosting Perl Mongers has been our single best recruiting tactic
20:56 jzawodn pink_mist: of course :-)
20:58 jberger jzawodn: if only I was in cali ...
21:00 ribasushi jberger: ZR is hiring >.>
21:00 ribasushi jberger: so is tilt IIRC
21:00 jberger do either use Mojo?
21:01 jberger I'm working at a Mojo shop now
21:01 ribasushi no idea
21:11 lluad joined #mojo
21:14 sri joined #mojo
21:23 jzawodn jberger: understood.  I'm working [slowly] on getting the 'remote employees' door to open more, but it's slow going
21:24 jberger well, its my fault for being so attached to chicago
21:25 jberger but I do enjoy where I'm at now (remotely), so for now I'm doing fine
21:27 sri jzawodn: i vaguely remember you saying the same like a year ago ;p
21:32 mattastrophe joined #mojo
21:32 sri surprisingly few perl companies hiring in europe atm
21:33 sri aside from booking.com
21:34 stephan joined #mojo
21:35 jzawodn sri: yeah, like I said, it's a slow process. :-(
21:36 sri oh, startsiden is hiring too
21:46 sri wish we had more startups in the community
21:50 absolut_todd joined #mojo
21:52 jontaylor joined #mojo
21:58 * jzawodn wishes Perl didn't have a stigma is some circles.  rectuiting/hiring would be easier
21:58 Grinnz_ spread the word, perl is cool again ;)
22:04 jberger I had a discussion at YAPC::NA with some well known perlers, I don't think Perl 6 should want the name Perl
22:04 jberger I think they will do better without it
22:04 Grinnz_ i think if that was an option it would have already been taken :/
22:05 jberger but for the BDFL I think it would be, or would at least be being discussed
22:05 Grinnz_ but i agree... they should have a new, hip name
22:06 jberger "From the mind of Larry Wall, the man who brought you Perl ... comes the next great language X"
22:06 Grinnz_ make it a verb, that's what the cool kids do
22:06 lluad Perl 5 is cool again. Perl 6 is a PR problem. :/
22:06 jberger oh, play on the development time, call it "vapor"
22:07 Grinnz_ hah
22:07 Grinnz_ too negative :P
22:07 jberger too on the nose?
22:07 jberger well whatever it is called, I think it will benefit from not being Perl
22:08 lluad "Perl Forever". Worked for Duke Nukem.
22:08 Grinnz_ lol
22:08 jberger people worried for too long about calling a Perl 5 release Perl 7 without any major features, because it would "look desperate". I think that Perl 6 might just go unnoticed
22:08 jberger the opposite reaction
22:09 jberger oh, its just a new version of Perl, nothing to see here, move along
22:09 Grinnz_ i don't think perl 7 is doable unless perl 6 avoids the perl name
22:09 jberger Grinnz_: that wasn't really my point
22:11 Grinnz_ well i was just thinking about that since you brought it up
22:11 Grinnz_ if they did pick a different name, we could call a new release of perl5 7
22:11 Grinnz_ pull a windows, essentially
22:11 pink_mist perl XP
22:11 Grinnz_ haha
22:12 Grinnz_ i guess "pull a java" would also work
22:12 lluad Pull an apple, release Perl V 22.0.
22:13 Grinnz_ V v22?
22:13 lluad . o O ( Get the perl 6 people to rename to Perl Vista )
22:13 Grinnz_ oh god lol
22:13 pink_mist at least it's not Perl Me
22:15 Grinnz_ Perl You
22:15 purl Perl You are he mongodb of irc bots
22:15 Grinnz_ wat
22:16 Grinnz_ purl: forget Perl You
22:16 purl Grinnz_: I forgot perl you
22:20 * sri wonders if minion should have a task event that gets emitted whenever a task is added
22:20 sri it could allow for tasks to be wrapped easily
22:28 jberger sri: when a task is added or job?
22:29 jberger I guess you said task twice
22:29 jberger what would wrapping a task look like
22:29 jberger ?
22:42 punter joined #mojo
22:42 sri $minion->on(task => sub { my ($minion, $name) = @_; my $old = $minion->tasks->{$name}; $minion->tasks->{$name} = sub { $old->(@_) };  });
22:42 sri something like that
22:42 purl something like that is totally possible
22:43 sri so a mojolicious plugin could actually change all tasks
22:44 sri plugin 'Minion'; plugin 'MinionTasksWithLiveNotifications';
22:44 Grinnz_ plugin 'LazyMinions'
22:45 human39 joined #mojo
22:45 sri plugin Fire => 'Grinnz';
22:45 sri (that's actually invalid... but i guess nobody noticed)
22:46 Grinnz_ lo
22:46 Grinnz_ lol
22:47 jberger Can't use string ("Grinnz") as a HASH ref while "strict refs" in use
22:51 bpmedley http://thorsen.pm/perl/programming/2015/07/10/a-restful-backend.html <-- batman++  .. you should look into React Native to consume the backend api.. :)
22:52 Grinnz_ only if it goes OM NOM NOM
23:04 bpmedley sri: Would you detail a few use cases for the minion task emitter?
23:11 mattastrophe1 joined #mojo
23:13 howitdo joined #mojo

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