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

IRC log for #mojo, 2016-08-26

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

All times shown according to UTC.

Time Nick Message
00:24 Pierre joined #mojo
00:41 Vandal16455 joined #mojo
01:15 meshl joined #mojo
01:55 lluad joined #mojo
02:03 Pierre joined #mojo
02:47 noganex_ joined #mojo
03:00 deserted joined #mojo
03:12 bossert ladies and gents.  I have a question:  I am writing an application that parses news articles from RSS feeds and then does some analytics on the text…I am having issues with SSL certificate errors for some of the sites which host the articles…They are easy enough to bypass by not checking the certificates…but this makes me cringe.  The reality is that I could certainly skip those news feeds/sites that have bad certificates…but then I am missing
03:12 bossert crucial articles that I want to be able to parse and analyze…Does anyone have some advice on how to handle this?
03:15 bossert I guess this is really more of a philosophical question than a technical one…but please indulge me...
04:30 amphibulus joined #mojo
04:38 prajith joined #mojo
04:40 jberger bossert: i would ask, what is failing about them?
04:40 jberger Do they not check out or is there some other technical glitch?
04:40 bossert its usually a mismatch between the domain names...
04:41 jberger Then the whole point of checking the certs is that you can't say fir sure that that content is valid
04:41 bossert for example, I have seen a few that seem to have a wordpress certificate, but the actual domain name is different…such as datanami.com and such
04:42 jberger If you go ahead and use the data anyway then you are opening yourself up to accepting malicious information
04:42 bossert correct…totally agree…but since I cannot talk to each provider and tell them to fix their cert…then my only recourse is to skip that site…or just deal with it…
04:42 jberger I'm not sure what to tell you
04:43 bossert unfortunately, some of the sites that I really want to grab content from seem to have this issue…
04:43 jberger You seem to know the interpretations
04:43 jberger You can just accept that they are as vulnerable to mitm as non ssl sites
04:43 bossert yeah, I know…it really is a judgement call…just thought maybe someone here had wrestled with this and might have a better perspective
04:44 jberger Or worse that they are being actively mitm now
04:44 jberger Nope, the whole point is trust and you can't trust those certs
04:44 jberger It's up to the hosts to correct them
04:45 jberger Or ignore them and chance it
04:45 jberger Sad but true
04:45 jberger Especially if the host names don't match
04:45 bossert that and I have to be able to support adding arbitrary (from the users) feeds…which will lead to all kinds of complaining if I tell them I can’t add their desired feed due to a cert mismatch
04:46 jberger Every now and again, a few days expired happens and then I'm willing to consider it
04:46 jberger But that still is vulnerable for all kinds of reasons
04:46 bossert so, riddle me this: many of the sites are http only, I would say somewhere south of 15-20% are using SSL at all…Am I really adding that much risk as compared to the http sites I am pulling from?
04:46 jberger Then you accept the content but display it to the user with a warning
04:47 mauke left #mojo
04:47 jberger Well not really, but consider this
04:48 jberger The host attempted to assure you that the data was securly transmitted and you know that it might not be
04:48 jberger Rather than just transmitting in the clear
04:49 jberger Like you said it's all value judgements
04:49 jberger How important is it that that communication be private?
04:49 jberger How important is it that that content not be alerted
04:50 jberger ?
04:50 bossert so, I am not displaying the content directly ever…what I am doing is parsing the HTML using HTML::FormatText::Lynx (better visually than any of the other parsers I have tried) and then running it through a keyword extractor and also a bayesian classifier…the majority of what users actually see would be the statistics associated with the feeds in aggregate, though they can get text for each feed that makes up any given visualization...
04:50 jberger It if the answer is "not very important" then maybe you proceed with an asterisk
04:51 bossert privacy is not that much of a concern because these are public RSS feeds from 3rd parties…all I am doing is parsing the articles and doing analytics on them////
04:52 jberger It feels to me like you want someone to give you permission to ignore cert errors
04:52 bossert It would be pretty easy to tag the articles that come from sites with bad certs and have that available to the user if they look at an individual article…not a big deal for me to implement that.
04:52 jberger I'm not going to do that
04:52 jberger But you can Mahe the value judgement for yourself
04:52 jberger Errr make
04:53 bossert Fair enough…You make a good point…Not really looking for permission…rather a sanity check from someone else...
04:53 jberger I mean is probably ok like you say
04:54 jberger But then again, something is known to be wrong with the thing that is supposed to guarantee who is sending you data and that no one else is watching our manipulating the data
04:55 jberger ¯\_(ツ)_/¯
04:55 bossert so, the upshot, in your opinion is that I can either be strict and just skip any site with bad certs at the cost of potentially useful data…or risk that the content is malicious at worst and at least not able to be certain it is actually coming from who I think it is.  On the paranoid side, if someone knew that I was using the data for analytics, they could intentionally mess with the analytics by providing bogus source data...
04:55 jberger Right
04:55 jberger Or see which feeds you are scraping
04:56 jberger Etc
04:56 bossert which is a risk for all the feeds that I am scraping that are http only…
04:56 jberger Yep
04:56 bossert which is as high as 70% of what I am already scraping without thinking twice about this…
04:57 jberger Think of it this way
04:57 jberger Imagine you go to an art show and i sell you a painting
04:57 jberger I didn't say i made it and you have no idea
04:57 jberger You just buy it and go away happy
04:58 jberger But at the next counter over there is a guy who claims all the art is his own work
04:58 jberger But the signature on the painting doesn't match the name on his badge
04:58 jberger Could still be fine
04:58 jberger But don't you worry more about that second guy?
04:59 bossert I’m giving myself headaches over nothing.  The real problem here is that there are way too many providers out there that are not doing their jobs.
04:59 jberger Yep
04:59 bossert good point.  The painting analogy is a good one!
04:59 jberger Drop them a note and tell them about letsencrypt
05:00 Pierre joined #mojo
05:01 bossert good point…I had been reading about that.  I have another totally unrelated project where I developed a visualization tool (mojo-based backend, of course) that I ship to customers with a self-signed cert and keep pointing them in that direction when they ask me how to work around a self-signed cert…I smack my forehead and tell them it is pretty easy and as long as you can work with the 90 day thing, it’s a great way to go...
05:02 jberger I have a mojo plugin that make issuance pretty easy
05:02 jberger Still not perfect but easier
05:03 jberger Also there is a python script called acme-tiny which is pretty good too
05:04 bossert would be REALLY interested to see that when/if you are comfortable with it…Unlike the current project, the cert is really important in the vizualization app…since I am dealing with their corporate LDAP creds and sensitive data and such...
05:04 bossert anything I could do to make it more likely for the end-users to actually do it “right” would be of benefit...
05:05 jberger I mean, when it works it just works
05:06 bossert are you planning to publish the plug-in at some point?
05:06 jberger There are a few error conditions that i don't trap well enough and there could always be more tests
05:06 jberger It's published
05:06 bossert gotcha...
05:06 jberger https://metacpan.org/pod/Mojo::ACME
05:07 bossert cool!  looking at it now...
05:08 jberger I also want to make it work standalone better
05:09 jberger The situation i built it for was when you have a site on both 80 and 443
05:09 jberger The acme challenge just gets handled and the cert is issued
05:09 jberger But more often i have nginx redirect 80 to 443
05:10 jberger So what i actually need to do is write another app that can live on 80 and redirect to 443 unless it is a valid challenge
05:10 jberger And you switch your nginx config when you are going to do that
05:11 jberger Or any number of other variants
05:11 jberger Like just doing a dns challenge rather than an http one
05:12 bossert Ah…for my app, I have the luxury of being able to use hypnotoad, so I avoid the addition of Apache or Nginx to the mix…
05:12 jberger Oh i always use hypnotoad
05:12 jberger With nginx as reverse proxy
05:12 bossert gotcha…
05:13 jberger I don't want to run my site as root and capabilities are too much work
05:13 bossert right...
05:14 bossert listen, I really appreciate your perspective on the certificate issue I am wrestling with…Made me think about it a bit differently…
05:15 jberger Cool
05:15 jberger It was an interesting chat
05:16 bossert definitely for me too…Thanks!  Also, glad you told me about the letsencrypt plugin…I will definitely try it out…
05:19 Pierre joined #mojo
05:38 Pierre joined #mojo
05:46 inokenty-w joined #mojo
05:56 Pierre joined #mojo
05:58 kes joined #mojo
06:06 mbudde joined #mojo
06:14 Pierre joined #mojo
06:36 Guest-questX joined #mojo
06:38 dod joined #mojo
06:43 dod joined #mojo
07:03 batman joined #mojo
07:28 AndrewIsh joined #mojo
07:34 dexteruk joined #mojo
07:48 absolut_todd Hey everyone. I have a question.  I have mojo running behind an nginx proxy and i am getting this error in the nginx log 'upstream prematurely closed connection while reading upstream'  when uploading a large file.
07:50 absolut_todd But im not seeing any request being made to mojo.
07:50 absolut_todd Can anyone point me in a direction where i can figure out whats going on?
07:53 osfabibisi joined #mojo
07:59 jasanj left #mojo
08:09 dexteruk joined #mojo
08:12 mpapec1 absolut_todd: perhaps http://mojolicious.org/perldoc/Mojo/Message#max_message_size
08:13 mpapec1 sri: can you comment on this? http://irclog.perlgeek.de/mojo/2016-08-25#i_13086061
08:24 mvorg joined #mojo
08:34 absolut_todd mpapec1: that was it, never spotted that one before.  Thanks!!!
08:56 newbie joined #mojo
09:33 Rags joined #mojo
10:53 umask001 joined #mojo
11:03 tchaves joined #mojo
12:15 sri mpapec1: no, you already got the right answer
12:30 sri oalders: i think you included the wrong link in this tweet https://twitter.com/metacpan/status/769022626333425665
12:33 sri the linked talk might be interesting to some here though, it's about Minion use in MetaCPAN
12:34 sri it's pretty long, so i've only seen smaller parts of it so far, but couldn't agree more about fat models in mvc apps
12:34 sri if you can put logic into the model, always do it
12:37 Jonis oh, I'd like to see the minion talk
12:37 Jonis but I'm on mobile wifi in the country today
12:38 Jonis wat, where is the watch later button on the website?
12:38 Jonis ah, add to -> watch later
12:39 sri oalders: please make a real tweet for that youtube link, i'd love to retweet :)
12:39 logioniz joined #mojo
12:41 logioniz Hi, i want to discuss about this issue https://github.com/kraih/mojo-pg/issues/30
12:41 logioniz With "insert into test values (?::bytea)" not working too
12:45 sri purl: not working?
12:45 purl see "doesn't work"
12:46 sri purl: doesn't work?
12:46 purl Look buddy, doesn't work is a strong statement. Does it sit on the couch all day? Is it making faces at you? Does it want more money? Is it screwing your partner? Please be specific!
12:48 logioniz Yes, doesn't work too
12:51 gizmomathboy joined #mojo
12:52 logioniz May be need to show test output?
12:53 logioniz or show changed code?
12:55 logioniz Test output:
12:55 logioniz not ok 1
12:55 logioniz #   Failed test at 5.pl line 20.
12:55 logioniz #          got: '255044462d312e340a25c393c3b4c38cc3a10a312030206f626a0a3c3c0a2f4372656174696f6e4461746528443a32303136303232303030333135382b30332730302729'
12:55 logioniz #     expected: '255044462d312e340a25d3f4cce10a312030206f626a0a3c3c0a2f4372656174696f6e4461746528443a32303136303232303030333135382b30332730302729'
12:55 pink_mist please use a paste site for that
12:55 logioniz ok 2
12:56 logioniz 1..2
12:56 logioniz # Looks like you failed 1 test of 2.
12:56 logioniz Sorry
12:56 pink_mist is 5.pl a part of the Mojo::Pg test suite? 0_o
12:56 logioniz http://paste.ubuntu.com/23093122/
12:58 logioniz Changed code: http://paste.ubuntu.com/23093124/
13:01 logioniz Oh, my god))
13:09 dod joined #mojo
13:10 sri ?
13:10 logioniz joined #mojo
13:14 sri so, did you figure it out?
13:16 logioniz No, i can't understand what mean pink_mis
13:16 logioniz No, i can't understand what mean pink_mist
13:21 pink_mist you can ignore my question. I already figured out the answer to it, and it is "no".
13:22 pink_mist jberger: gah, I just get "No cert was generated" when trying to generate a cert with Mojo::ACME for my site :( any chance to get some debug output?
13:24 sri oalders: btw. the method name ->enqueue was cargo culted from every other job queue in existence ;p
13:25 logioniz left #mojo
13:36 Pierre joined #mojo
13:43 sri oalders: also interesting question later about rate limits, there is nothing in minion core yet, but i'm interested in adding it
13:47 * sri would be fine with having the sidekiq way https://github.com/mperham/sidekiq/wiki/Ent-Rate-Limiting
13:49 wk joined #mojo
13:53 pink_mist jberger: the documentation says the app should be available on port 80, and it is, via a proxy from apache, but the running hypnotoad (I tried with a pure daemon as well) seems to just report a 404 for the letsencrypt route ... now, it seems like it'd be pure magic to me if the already running hypnotoad managed to find the route, but that's what the documentation seems to imply?
13:58 pink_mist jberger: I mean, I get this in the daemon output: [Fri Aug 26 15:45:07 2016] [debug] GET "/.well-known/acme-challenge/k4iyDmmer8MjxpqB_fdBIhBKwGhKYKQmUtn9LgCyTZY", and it replies with a 404 .. is the daemon actually not supposed to be running or something, so the acme command can serve the route itself? but that won't work behind a proxy since it doesn't have access to port 80 anyway..? I'm lost ... does
13:59 pink_mist it support a -l 'http://127.0.0.1:8002/' argument? not that I can see ... that's for the daemon or hypnotoad...
14:05 mcsnolte joined #mojo
14:16 mpapec1 sri: tnx
14:22 nic pink_mist: You have to use the port in the synopsis or hack the code to use the port you're using.  otherwise it fails silently
14:22 prajith joined #mojo
14:26 sri jberger: been looking at forkcall and am curious why you're accepting arguments for the closure
14:27 jberger compatibility with AE::Util::fork_call
14:27 jberger not necessary in a slimmed down version I suppose
14:27 sri i mean, i can see that you like the ->run(\&whatever, [...], sub {...}) form
14:27 sri but it seems a bit un-mojo-ish
14:27 sri ok
14:27 jberger I wanted to make a drop-in replacement, call it "historical reasons"
14:28 sri pondering Mojo::IOLoop->sub_process(sub { my ($sp) = @_; }, sub { my ($sp. $err, $result) });
14:30 sri actually been looking into event loops in other languages
14:31 sri and perl is really good when it comes to closures and fork
14:31 sri node.js for example has to fight really hard with this stuff
14:31 jberger perl's closures are second to non (that I've found so far)
14:31 jberger none even
14:31 sri seriously
14:31 purl is that for real?
14:31 jberger python's are a joke
14:32 jberger I haven't done enough ruby to say
14:32 jberger nic / pink_mist : I'm not sure what you are experiencing
14:32 jberger there are LOTS of rough edges on that plugin
14:32 sri especially considering they use the pretentious term lambda
14:33 jberger I'm happy to discuss it (possibly in another channel to keep from sidetracking #mojo)
14:33 * jberger started #acme
14:33 jberger sri: the lambdas aren't lambdas for several reasons
14:34 jberger and they also aren't very useful for lots of other reasons
14:34 jberger and pythons "scalars" are immutable when closed over
14:34 jberger so you have to use an array and mutate the first element
14:34 sri Oo
14:34 jberger which is seriously the pattern people use
14:35 jberger lambdas can't contain statements
14:35 jberger so like print
14:36 jberger http://stackoverflow.com/questions/2970858/why-doesnt-print-work-in-a-lambda
14:36 jberger this is just bonkers
14:36 sri yea
14:37 sri imagine it's to enforce the use of named functions
14:37 sri begs the question why have closures at all
14:38 jberger and I know that the whitespace thing is beaten to death
14:38 jberger but when I'm in a class, in a method, (possibly in a control structure, if/for etc) and I have to build a named function to pass as a callback, I start to lose the ability to know where my callbacks end
14:39 jberger which is REALLY important in a language with function scoped variables
14:41 jberger </rant>
14:44 sri anyway, think i'll give simplifying your forkcall module for core a shot today
14:56 dustinm joined #mojo
14:57 asarch joined #mojo
14:58 Mikey joined #mojo
14:58 mpapec joined #mojo
14:59 jberger cool!
15:05 cafe joined #mojo
15:17 disputin joined #mojo
15:30 sri your code covers everything pretty well, already have something that mostly works :)
15:32 sri trying to go as minimalistic as possible https://gist.github.com/anonymous/4d5c89e4132a492f98399bc0febd90cf
15:35 sri jberger: is the syswrite stuff necessary or should a simple print work too?
15:35 sri in my minimal testing it seems fine so far
15:36 sri pipe buffer seems to be around 65k on most platforms, and i'm writing 100k to be sure, and so far no problems
15:36 jberger I see you cut down the kill logic
15:37 jberger I suppose that makes sense without pseudofork
15:37 sri yea, minion doesn't have a sophisticated kill logic either
15:37 sri i copied those parts mostly from it
15:38 sri <3 windows services for linux
15:39 jberger should you close the opposite sides of the pipe in the different processes?
15:39 jberger I don't know if that matters
15:39 sri doubt it, going out of scope should be enough
15:39 jberger and I think if you are going to exit 0 on pseudofork it probably should be on loading the module not at run?
15:40 jberger but maybe it doesn't matter either
15:40 jberger if it were die I don't think it would matter at all
15:40 sri naah, the module will be loaded anyway
15:40 jberger exit 0 is a big hammer though
15:41 sri i'm going to die on pseudofork
15:41 jberger ok
15:41 jberger then yeah, it looks great
15:41 sri if you call Mojo::IOLoop->subprocess(...) on a pseudofork platform it will just die with an error telling you to upgrade
15:42 sri same as the prefork server does
15:42 jberger I see you dropped the finish events too, that's good
15:42 jberger they alway hit me in a YAGNI way, but not quite enough to remove them
15:42 sri i might readd events, but for now going for the absolute minimum
15:43 sri everything besides the absolute basics need use cases :)
15:43 jberger better for it is to use multiple calls and wrap them in a delay which can then provide a more "global" finish event
15:43 jberger separation of concerns
15:43 purl separation of concerns is probably what nxu7 is mostly aiming for
15:43 * sri nods
15:44 jberger seems like purl should have a better factoid for that
15:45 sri this whole thing seems surprisingly solid
15:45 jberger it really hasn't ever given me much trouble
15:45 jberger you might want to look at the few open issues and see what you think of them, they have been a little too hard for me to deal with
15:45 sri link?
15:46 jberger purl, no, separation of concerns is <reply> https://cdn.meme.am/instances/62779549.jpg
15:46 purl okay, jberger.
15:46 jberger there is a real lack of memes about that one
15:46 jberger sri: https://github.com/jberger/Mojo-IOLoop-ForkCall/issues?utf8=%E2%9C%93&amp;q=is%3Aopen%20
15:47 jberger 8 and 9, 5 we are ignoring with pseudofork
15:48 sri not sure those are real concerns
15:49 jberger which is why I've never really had an answer
15:49 sri the timeout is an optimization
15:49 sri it's kinda meh imo
15:50 sri do i really care if the child keeps running after the parent died
15:50 Grinnz_ sri: like that you're keeping the serializer/deserializer attributes, i never liked using storable for that if i have sereal around
15:55 Grinnz_ the hard part is balancing the usual use case of slower processes during requests with the requirements of hot deployment
15:57 sri you could actually manually optimize already
15:57 sri i suppose
15:57 lluad joined #mojo
15:57 sri anyway, for now i'd be fine with keeping an eye on it and optimize if it becomes a problem later
15:57 sri the module and ioloop method will both be labeled experimental
15:58 Grinnz_ just having it in core means more eyes on it at least
15:58 sri yea, we'll take our time to get it right
16:00 Grinnz_ ooh and i could make a module to override serializer and deserializer with sereal somehow
16:01 sri i mostly left the serializer/deserializer attributes so i can easier test serialization failures ;p
16:01 sri but you're welcome! :)
16:02 Grinnz_ when easier testing and easier extending work together everyone wins :P
16:03 kaare joined #mojo
16:04 sri wonder what Mojo::IOLoop->subprocess should return
16:04 sri prolly an instance of Mojo::IOLoop::SubProcess
16:04 jberger does the user have any access to the pid?
16:05 sri and i'll allow getting the pid via $subprocess->pid
16:05 jberger I don't see a spawn event anymore
16:05 Grinnz_ better access to the pid was on my wishlist for ForkCall iirc :P
16:05 jberger oh, and it isn't wrapped in a next_tick, just something to remember
16:05 jberger I guess I'll have to dig back into the history to remember why that was there
16:06 sri i mean, you won't be setting custom serializers if you're using Mojo::IOLoop->subprocess, so returning the pid might make sense too
16:06 sri question is if we want to keep the option for future utility methods
16:06 sri like for stopping the child from the parent and the like
16:06 jberger oh!
16:07 jberger you left out the $$ checking
16:07 Grinnz_ oh yeah, a ->signal or ->kill method
16:07 jberger there was an esoteric case where that was necessary
16:07 sri jberger: looking forward to a test case ;p
16:08 sri also, i'm melting... this heat wave in germany is killing me... HALP
16:08 Grinnz_ probably when you fork a subprocess, then the parent forks, so both parents try to do the callback?
16:09 Grinnz_ i think it was more complicated than that
16:09 jberger Grinnz_: it was something along those lines
16:09 jberger yeah, my test for it sucked
16:09 jberger :S
16:10 sri sounds liek a case that would fail gracefully
16:10 sri i'd be happy with failing gracefully for now
16:11 sri really my only real worry is rogue processes
16:11 sri and zombies
16:11 sri but that seems all handled pretty well with the pipe and waitpid
16:11 Grinnz_ for that we need Mojo::IOLoop::Shotgun
16:12 jberger ok so the next_tick was so that the I could wrap the whole thing in a delay to have a error handler, without the need for the error handler delay, you shouldn't need the next_tick either
16:12 jberger so that checks out
16:12 sri hmm
16:12 sri interesting point actually
16:13 sri a next_tick would allow for the serializers to be changed for Mojo::IOLoop->subprocess
16:13 sri but
16:13 sri error handling gets much harder
16:13 jberger right
16:13 sri since you can't just die
16:14 sri guess i'm fine with people using Mojo::IOLoop::SubProcess if they want to customize
16:22 jberger ok this is the discussion around $$
16:22 jberger http://irclog.perlgeek.de/mojo/2014-07-23#i_9067566
16:27 PryMar56 joined #mojo
16:28 jberger https://gist.github.com/oetiker/bbd3e468b0d25815738c
16:30 jberger the second child as soon as it is forked has the first child's pipe in its process, which is reset and thus closed triggering the error message (or something close to that)
16:31 jberger but the close event happens in the child process of the second fork, so checking if you are the correct $$ early means you never try to deserialize from the worthless close event
16:32 jberger all you are trying to avoid is a useless error message IIRC
16:33 jberger but testing for it is hard because it isn't in the process that is running the tests
16:33 jberger so you can't just trap stderr
16:33 jberger (I don't think)
16:33 jberger this makes my brain hurt
16:42 dod joined #mojo
16:54 sri jberger: can't replicate the problem
16:56 sri no clue if that's good or bad
16:56 sri i like to think it's good ;p
16:58 jberger I assume that means that the close event isn't being triggered in the other process, maybe close or reset got smarter at some point since 2014?
17:02 Grinnz_ hmm so another thing is that the serializer can easily throw an error like if a coderef is returned
17:03 Grinnz_ throw an exception *
17:04 sri already handled
17:07 Grinnz_ i guess those error messages would go to the normal stderr?
17:07 Grinnz_ same with if the first coderef throws an exception
17:08 sri yes, and the second coderef gets an non-zero exit status error message
17:19 prajith joined #mojo
17:23 Grinnz_ i kind of like the exception getting serialized better, but i guess it doesnt make too much of a difference for my current use case
17:24 Grinnz_ it just probably wouldn't show up on the development exception page
17:53 good_news_everyon joined #mojo
17:53 good_news_everyon [mojo] kraih pushed 1 new commit to master: https://git.io/v6xGZ
17:53 good_news_everyon mojo/master 4f38a66 Sebastian Riedel: add EXPERIMENTAL support for performing expensive blocking operations in subprocesses
17:53 good_news_everyon left #mojo
17:58 Grinnz_ you still have the exit 0 on pseudofork
17:58 sri oops
17:58 sri copy pasta error from prefork
17:59 sri now i get what you were saying -.-
18:01 jberger wait, what do you get now?
18:06 sri what you meant earlier
18:06 sri in my mind it was already a croak
18:07 good_news_everyon joined #mojo
18:07 good_news_everyon [mojo] kraih pushed 1 new commit to master: https://git.io/v6xnZ
18:07 good_news_everyon mojo/master 7cc0fb0 Sebastian Riedel: fix a few exceptions and method descriptions
18:07 good_news_everyon left #mojo
18:07 jberger ah gotcha
18:07 jberger I was worried that you got the $$ error
18:10 mpapec joined #mojo
18:10 prajith joined #mojo
18:11 cuechan joined #mojo
18:14 good_news_everyon joined #mojo
18:14 good_news_everyon [mojo] kraih pushed 1 new commit to master: https://git.io/v6xcf
18:14 good_news_everyon mojo/master 6f24a98 Sebastian Riedel: better description for subprocess method
18:14 good_news_everyon left #mojo
18:14 sri yay, batman's mojolicious.org update script works too http://mojolicious.org/perldoc/Mojo/IOLoop#subprocess
18:14 sri allright
18:15 sri now everybody get testing and start fixing all the issues i'm sure will pop up over the next few days ;p
18:16 Grinnz_ sri++ jberger++
18:17 good_news_everyon joined #mojo
18:17 good_news_everyon [mojo] kraih pushed 1 new commit to master: https://git.io/v6xcW
18:17 good_news_everyon mojo/master 99801d0 Sebastian Riedel: fix typo in example
18:17 good_news_everyon left #mojo
18:19 jberger \o/
18:19 jberger sri++
18:19 jberger Grinnz_++ too, he's helped along the way
18:32 prajith joined #mojo
18:44 genio oooh. subprocess \o/
18:58 sri hmm, doing a next_tick before fork does have one more advantage i guess
18:58 sri i bet some folks will try Mojo::IOLoop->subprocess from the startup sub
18:59 sri in the prefork manager process
18:59 sri which of course doesn't quite work
19:00 Grinnz_ hmm maybe
19:00 Grinnz_ would they be surprised when each worker spawns a subprocess then :P
19:01 sri yea
19:01 sri each new worker would get a subprocess with a next_tick
19:02 sri honestly, i have no idea what happens now
19:02 sri the process definitely gets forked by the manager, but after that... ¯\_(ツ)_/¯
19:10 jberger i'm not sure that can be prevented
19:10 jberger oh, nm, I see what you mean
19:11 jberger wait, but that is a problem only IF there is a next_tick before fork
19:11 jberger if there isn't (as is currently in your implementation) then the manager process is the one that forks
20:02 mcsnolte joined #mojo
20:03 good_news_everyon joined #mojo
20:03 good_news_everyon [mojo] kraih pushed 1 new commit to master: https://git.io/v6xwt
20:03 good_news_everyon mojo/master 6baac01 Sebastian Riedel: use a little less code to build HTTP headers
20:03 good_news_everyon left #mojo
20:28 preaction joined #mojo
20:34 sri joined #mojo
20:34 sri test
20:35 sri well, that was fun, irccloud went down
20:35 jberger eep
20:35 jberger sri: I CAN HEAR YOU, CAN YOU HEAR ME TOO
20:35 sri jberger: in case you didn't get the email, that last commit should fix your problem
20:36 jberger yes I did, thanks!
20:36 sri it was a state transition thing after all
20:36 sri it's rather complicated actually
20:36 jberger I'm just glad I was finally able to replicate in small scale
20:36 jberger it was really hard to prove it wasn't my bug
20:36 SmokeMachine joined #mojo
20:37 sri your ->rendered and ->finish calls in the next_tick cause the resume event to be emitted twice
20:37 sri which calls _write in Mojo::Server::Daemon
20:37 sri which grabs the next chunk of data from the transaction, which was stuck in the header state
20:38 sri but reset to the offset 0
20:38 sri so it just restarted there
20:39 jberger ah, that makes sense
20:39 sri the next_tick matters because the resume event does nothing in the normal request handling stage of mojolicious
20:39 jberger in the real code there are several layers of delay checking all kinds of things
20:39 sri it only has a subscriber after the normal request handling is done and we wait for event loop stuff
20:39 jberger some of which cause an early finish
20:40 jberger which is why it was so hard to reduce to small scale
20:43 Lucas1 joined #mojo
20:44 sri time to relax a little with a few matches of overwatch :)
20:44 jberger sri: enjoy!
20:45 sri if anyone wants to group up feel free to add me on battlenet kraih#2445
20:45 * sri promises not to yell too much on voice chat
20:45 mrallen1 joined #mojo
20:48 ajr_ joined #mojo
20:50 ajr_ joined #mojo
20:55 Phil21 sri: add me, I'll blow shit up with you
21:18 tchaves joined #mojo
21:37 mpapec1 batman: dockerized convos; https://gist.github.com/mpapec/edd39fe639bb6ecd862710260c78ca90
21:38 mpapec1 alpine linux/plenv/perl/mojo/convos bundles in 100mb image
21:38 tchaves1 joined #mojo
21:39 mpapec1 bundled*
21:49 chansen joined #mojo
22:29 cpan_mojo Mojo-ACME-0.06 by JBERGER https://metacpan.org/release/JBERGER/Mojo-ACME-0.06
22:29 jberger mpapec1: why don't you just cpanm --installdeps .
22:32 Grinnz_ cpanfiles <3
23:00 laidback_01 joined #mojo
23:05 meshl joined #mojo
23:14 SmokeMachine joined #mojo
23:28 cafe joined #mojo
23:38 PryMar56 joined #mojo
23:42 mcsnolte joined #mojo
23:42 harleypig joined #mojo
23:43 phillipadsmith joined #mojo
23:48 sri joined #mojo
23:49 SmokeMachine joined #mojo
23:49 mpapec1 joined #mojo
23:53 Lucas1 joined #mojo
23:55 marty joined #mojo
23:55 mrallen1 joined #mojo

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