Time |
Nick |
Message |
00:08 |
|
Stefan joined #mojo |
00:16 |
|
GabrielV_ joined #mojo |
00:18 |
czinczar |
so out of the LAMMP stack mojo provides like the A part? |
00:29 |
|
Adura joined #mojo |
00:29 |
|
jack joined #mojo |
00:32 |
jberger_ |
And the p |
00:33 |
czinczar |
ah haaaa |
00:33 |
|
jberger_ joined #mojo |
00:34 |
|
marty joined #mojo |
00:35 |
czinczar |
my goal is to make my own dynamic website on free software in 3 months |
00:39 |
czinczar |
:) |
00:40 |
|
GabrielVieira joined #mojo |
00:44 |
sri |
ok, we are running out of version numbers again, time to freeze mojolicious for a bit :p |
00:44 |
sri |
no new features! |
00:44 |
|
aggrolite joined #mojo |
00:50 |
|
GabrielV_ joined #mojo |
00:52 |
sri |
if anyone got a spare atom.io invite, please send it my way! |
00:55 |
jberger_ |
MOAR FEETUREZ |
00:56 |
* jberger |
shows up on this nick now |
00:56 |
|
GabrielVieira joined #mojo |
00:56 |
czinczar |
lol |
00:56 |
czinczar |
what kinda sites are you guys making with mojo? |
00:57 |
* tianon |
plugs http://liveperl.us/ for bpmedley |
00:57 |
bpmedley |
tianon: Thanks! batman did a lot of work, as well, on it. |
00:57 |
tianon |
check out also Convos: https://github.com/Nordaaker/convos |
00:57 |
sri |
i think "what kinda sites are you guys not making with mojolicious?" would have been the easier question |
00:57 |
tianon |
sri++ |
00:58 |
tianon |
MOJOLICIOUS ALL THE THINGS |
00:58 |
* jberger |
mostly makes other tools out of Mojo* stuff |
00:58 |
bpmedley |
We're not making python and ada sites.. :-0 |
00:59 |
sri |
MACGYVER ALL THE THINGS |
00:59 |
czinczar |
lol |
00:59 |
jberger |
btw: this is the kind of thing that Mandel lets you do: https://github.com/jberger/MojoForum/blob/master/lib/MojoForum/Helpers.pm |
01:00 |
czinczar |
I wish chat would come back liek aol style, 100s chat rooms n stuff, without beign IRC, just webchat |
01:00 |
bpmedley |
tianon: Convos does look cool. I downloaded it and had some deployment issues becuase I use the Mount plugin (I'm guessing that's why). |
01:00 |
* jberger |
is using Convos right now :D |
01:00 |
czinczar |
what is all that code under helpers.pm |
01:00 |
jberger |
czinczar: its essentially shared model logic |
01:01 |
jberger |
easy to package into a helper plugin |
01:01 |
|
GabrielV_ joined #mojo |
01:01 |
czinczar |
whats that mean |
01:01 |
jberger |
that way I don't have to muddy up my startup method: https://github.com/jberger/MojoForum/blob/master/lib/MojoForum.pm#L10 |
01:02 |
jberger |
helpers are available as methods on the app instance and all controller instances and are available as functions in the templates |
01:02 |
jberger |
czinczar: it was you who inspired me to look at what it would take to make a Mojolicious-based forum |
01:03 |
czinczar |
:) |
01:03 |
czinczar |
forums rule |
01:03 |
* jberger |
sucks at front-end design, but the backend is coming together nicely |
01:04 |
|
ka2u joined #mojo |
01:04 |
jberger |
at this point a table to display the threads and another to display the posts in a thread and a few editing boxes and you have a skeletal forum |
01:04 |
* sri |
wonders if die in steps is an exception handling pattern we should encourage |
01:05 |
sri |
those can simply be caught in ->on(error => sub {...}) |
01:06 |
czinczar |
:) |
01:06 |
czinczar |
I can kinda imagine it in shell, but not perl, posts just being dated entried in a folder with a topicpost |
01:06 |
czinczar |
but in perl |
01:06 |
czinczar |
boom head explodes |
01:07 |
jberger |
czinczar: ? |
01:08 |
jberger |
posts are not dated entries in a folder |
01:08 |
jberger |
posts are documents in a mongo db |
01:08 |
czinczar |
oh ok |
01:08 |
jberger |
where did you get that idea? |
01:08 |
czinczar |
interesting |
01:08 |
czinczar |
well I only know shell |
01:09 |
* jberger |
moves back to the other nick |
01:10 |
|
jberger__ joined #mojo |
01:10 |
|
ka2u joined #mojo |
01:11 |
sri |
hmm, one aspect of producing promises we forgot is exception handling i think... |
01:12 |
sri |
since custom methods pruce their own they have total control over what constitutes an exception |
01:12 |
sri |
that can be pretty nice |
01:12 |
sri |
with delays we have to cope with different conventions, like $err first and ->error methods on result objects |
01:14 |
sri |
looking through mojoforum i realize that jberger doesn't handle his exceptions |
01:24 |
czinczar |
savagery! |
01:24 |
* sri |
shines a bright light into jberger's face and starts interrogating him about why he doesn't handle his exceptions |
01:35 |
sri |
oh shit... node.js drama time... get your popcorn! http://blog.nodejitsu.com/protecting-npm/ |
01:35 |
|
ka2u joined #mojo |
01:39 |
czinczar |
whats npm anyhow? |
01:39 |
purl |
npm is, like, implemented in node, but the resulting libs are perfectly usable via regular JS |
01:39 |
czinczar |
npm |
01:42 |
Adura |
They're comparing Firefox to a package manager? |
01:43 |
|
d4rkie joined #mojo |
01:44 |
czinczar |
somehow someone wants to liek license something, not sure waht |
01:56 |
|
chansen joined #mojo |
02:03 |
BenGoldberg |
They're about liscencing the name and the logo... and has nothing at all to do with the software itself. |
02:03 |
BenGoldberg |
Not very exciting/dramatic stuff. |
02:10 |
|
Stefan joined #mojo |
02:17 |
sri |
https://gist.github.com/mikeal/9242748 # it's really quite dramatic actually |
02:20 |
sri |
nodejitsu actually raised like $200k for running the npm registry, and now they're blowing the money on lawyers to take over npm |
02:21 |
sri |
raised via crowdfunding from node.js users on top of that |
02:21 |
|
laouji joined #mojo |
02:22 |
sri |
because you know... protecting the node.js users from the tyranny of npm inc |
02:25 |
sri |
of course npm inc did send nodejitsu a legal thread first to make them not use the official npm logo |
02:25 |
|
Stefan joined #mojo |
02:28 |
|
Stefan joined #mojo |
02:36 |
|
Stefan joined #mojo |
02:37 |
|
sujithm_ joined #mojo |
02:38 |
|
Stefan joined #mojo |
02:41 |
czinczar |
funky |
02:41 |
czinczar |
sounds like not a very free software project |
02:41 |
czinczar |
but bunch of cannibals |
02:46 |
|
ka2u joined #mojo |
02:48 |
|
klapperl joined #mojo |
02:49 |
czinczar |
whats npm again? |
02:49 |
czinczar |
what marekt are they trying corner? |
02:51 |
jberger |
please note that I have no tests in MojoForum either, and hence the title "A toy project using Mandel" |
02:52 |
jberger |
the big problem with node is ... it's still javascript, no matter how you package it |
02:53 |
|
Stefan joined #mojo |
02:54 |
|
Stefan joined #mojo |
02:57 |
|
Stefan joined #mojo |
02:58 |
sri |
i was about to compare it to exception handling in convos... but Mojo::Redis is really awkward in that regard |
02:59 |
sri |
it emits an error event, so you can't know which operation actually failed |
03:00 |
sri |
so... i guess you could say it has no exception handling either |
03:01 |
jberger |
in MojoForum case, basically, error handling would be passing the errors of earlier steps to the outer callback, skipping all remaining steps in the process right? |
03:02 |
sri |
one way to do it |
03:02 |
purl |
one way to do it is to include LWP :) or to stfu |
03:02 |
|
aggrolite joined #mojo |
03:03 |
sri |
i'm starting to get a little worried... since i've not found a module that handles exceptions with delays correctly |
03:06 |
sri |
Mandel is the first to get it right |
03:06 |
sri |
https://github.com/jhthorsen/mandel/blob/master/lib/Mandel/Relationship/BelongsTo.pm#L78 |
03:06 |
|
jb360 joined #mojo |
03:07 |
sri |
NOOOOOO!!!! |
03:07 |
sri |
and it fails too https://github.com/jhthorsen/mandel/blob/master/lib/Mandel/Relationship/HasOne.pm#L71 |
03:10 |
jberger |
so the idiom for handling errors in earlier steps would basically be `return $delay->pass($err) if $err` |
03:10 |
jberger |
correct? |
03:10 |
sri |
it depends |
03:10 |
* jberger |
is updating Mojolicious to get pass |
03:11 |
sri |
you're assuming the first argument is always $err |
03:11 |
jberger |
when it is |
03:11 |
sri |
you could also die $err and ->on(error => sub {...handle it...}) |
03:12 |
jberger |
yeah, but that's not so nice with nested delays |
03:12 |
sri |
or return $upper_level_cb->($err) |
03:12 |
sri |
there are multiple possible idioms |
03:12 |
jberger |
if they are in the same method that's fine, but see how most of the MojoForum delays start with a call to find_user |
03:13 |
sri |
just to be clear, i'm not blaming anyone here... not having a blessed exception handling idiom is a design flaw in mojolicious |
03:14 |
jberger |
no, I get that, I'm just trying to do it right |
03:15 |
jberger |
actually, maybe dying is easier |
03:15 |
jberger |
I'm trying it on the MojoForum helpers |
03:15 |
sri |
it all seems very clumsy |
03:16 |
|
l3l1p joined #mojo |
03:16 |
jberger |
if promises make error handling easier, that would be the best argument I've heard in their favor over delays |
03:16 |
sri |
something like $delay->begin_with_error that dies automatically when the first argument is defined would be more elegant |
03:16 |
sri |
which is basically what promises give you |
03:18 |
sri |
even with promises we get in trouble, since the callbacks we have now don't follow the $err as first argument calling convention |
03:19 |
sri |
in mojo and mango it's not too bad, but 3rd party modules are the wild west... it starts with Mojo::Redis not having errors at all |
03:19 |
sri |
you couldn't actually hack promises into Mojo::Redis |
03:20 |
sri |
promises done right would solve this problem... but we would have to intentionally kill off all existing 3rd party modules and enforce use of promises to make it really work |
03:22 |
* sri |
shrugs |
03:22 |
sri |
this is not fixable in the community i believe |
03:22 |
|
russum joined #mojo |
03:23 |
sri |
btw. one way to do exception handling right https://github.com/kraih/mango/blob/master/lib/Mango/GridFS/Writer.pm#L38 |
03:29 |
sri |
i wish $err as first argument was a convention everyone picked up :/ |
03:29 |
sri |
then we at least had a starting point |
03:29 |
jberger |
sri: https://github.com/jberger/MojoForum/commit/8fd420bffe829f1a37b73177654dd652272c8496 |
03:30 |
sri |
you don't actually have to handle it with ->on(error => sub {...}) btw |
03:30 |
sri |
it will propagate to the upper level if unhandled |
03:31 |
jberger |
oh, and one bug |
03:32 |
|
bowtie joined #mojo |
03:39 |
jberger |
there, that should be better: https://github.com/jberger/MojoForum/compare/5c722f00d3fcd4a6a10b10dcd3eef98e8f95c8cd...master |
03:40 |
jberger |
note also that populate is really only used in command-line eval right now, and hence the "say" |
03:41 |
|
l3l1p joined #mojo |
03:46 |
* jberger |
is really liking pass |
03:47 |
|
btyler joined #mojo |
03:49 |
* jberger |
hugs github compare view |
03:52 |
|
l3l1p joined #mojo |
03:53 |
jberger |
bpmedley: how does liveperl.us know what route to request from my script? |
03:53 |
jberger |
is it always / |
03:53 |
jberger |
? |
03:54 |
jberger |
could there be a single line field across the top of the right side for request? |
03:54 |
jberger |
possibly two fields, request and post body |
04:00 |
jberger |
bpmedley: also, if you have a restful api for posting to pearls, I could add it to Mojolcious::Command::nopaste |
04:01 |
sri |
hmm, guess i'll use $delay->pass($err) too |
04:01 |
jberger |
dying on error is nice for the hairier ones, like create_thread |
04:01 |
jberger |
but when there is only one more step anyway |
04:08 |
jberger |
ye gods how I wish I could use git at $work |
04:11 |
|
arpadszasz_ joined #mojo |
04:18 |
* sri |
uses the idiom in mango too now https://github.com/kraih/mango/commit/fdd72fa9953942fdb12d38076408a5ca4e81a784 |
04:19 |
jberger |
\o/ |
04:21 |
jberger |
I was going to say you have to bump the mojolicious version dependency, but I see you already got there ... yesterday :-P |
04:23 |
|
priodev joined #mojo |
04:24 |
|
jnbek^dt joined #mojo |
04:26 |
|
sivoais joined #mojo |
04:28 |
|
l3l1p joined #mojo |
04:29 |
|
laouji joined #mojo |
04:32 |
|
donk joined #mojo |
04:34 |
* sri |
is still unhappy with the exception handling situation though |
04:35 |
sri |
maybe we should discourage the use of 3rd party modules that don't follow the $err as first argument convention |
04:37 |
sri |
i'm not going to recommend Mojo::Redis anymore, exception handling there is totally broken |
04:37 |
jberger |
so what happens when say Mojo::Redis encounters an error, it just throws? |
04:37 |
sri |
it emits an error event |
04:38 |
sri |
without a connection to the operation that caused it |
04:39 |
sri |
sadly that also makes convos a bad example |
04:53 |
jberger |
the best thing to do I guess is to provide good examples |
04:55 |
jberger |
sri: is emitting an error event the right thing to do here? https://github.com/jberger/Mojo-FriendFeed/blob/master/lib/Mojo/FriendFeed.pm#L47 |
04:55 |
sri |
best should be mango i guess, we don't have too much in core |
04:55 |
jberger |
its a very different use-case |
04:56 |
sri |
do you have concurrent operations? |
04:56 |
|
l3l1p joined #mojo |
04:56 |
jberger |
no, its a recurring callback (via __SUB__) |
04:56 |
sri |
then an event seems fine |
04:57 |
jberger |
cool, just wanted to ask |
04:57 |
jberger |
its my first CPAN module which requires 5.16 |
04:57 |
jberger |
<<squeee> |
04:57 |
sri |
once you have concurrent operations i believe your errors should be raised individually, not wholesale |
04:58 |
jberger |
gotcha, that makes sense |
04:58 |
|
priodev joined #mojo |
04:58 |
|
jnbek joined #mojo |
04:58 |
sri |
Mojo::UserAgent is not the best example either |
04:58 |
jberger |
then again, you still kinda have to pick one to win out |
04:59 |
sri |
since errors there are transaction state, and not raised at all |
04:59 |
jberger |
https://github.com/jberger/MojoForum/blob/master/lib/MojoForum/Helpers.pm#L89-L90 |
05:02 |
|
gnephiak joined #mojo |
05:03 |
jberger |
batman, it would be nice if convos changed the tab (document) title when there is a mention, maybe even repeatedly changing back and forth to catch the eye |
05:04 |
jberger |
... maybe |
05:05 |
* jberger |
heads to be |
05:05 |
jberger |
gnight all ye perlers |
05:06 |
* jberger |
still marvels at the europeans, being 6+ hours ahead of him, and that they still stay awake after he goes to bed |
05:07 |
donk |
g'night |
05:13 |
|
russum joined #mojo |
05:27 |
|
jzawodn joined #mojo |
05:28 |
|
dotandimet joined #mojo |
05:37 |
|
ka2u joined #mojo |
05:55 |
|
ka2u joined #mojo |
06:02 |
|
GabrielVieira joined #mojo |
06:14 |
|
GabrielVieira joined #mojo |
06:16 |
|
hrupp joined #mojo |
06:30 |
|
dod joined #mojo |
06:39 |
|
dod joined #mojo |
06:52 |
|
GabrielV_ joined #mojo |
06:55 |
* sri |
still can't let go of the promises topic... |
06:55 |
|
sujithm joined #mojo |
06:55 |
bpmedley |
jberger: I assume you're referring to the tutorial and routes? If so, yes, it always displays "/" - we hope to fix that soon. Also, I"ll add a feature enhancement request for a nopaste api. |
06:56 |
bpmedley |
sri: Do you have an example for what you want code to look like? |
06:57 |
sri |
Mojo::IOLoop->all($ua->aget('mojolicio.us'), $ua->aget('metacpan.org'))->then(sub { say $_->res->dom->at('title')->text for @_ })->wait; |
06:58 |
sri |
my main interest is shifting towards exception handling though |
06:59 |
sri |
Mojo::IOLoop->all($ua->aget('mojolicio.us'), $ua->aget('metacpan.org'))->then(sub { say $_->res->dom->at('title')->text for @_ }, sub { say 'Well, this failed' })->wait; |
07:00 |
sri |
->then() following the usual ->then($success, $fail) convention |
07:00 |
bc547 |
sri: thanks for the performance comparison between perl versions. Is there any functionality difference besides performance? Or are you planning to drop perl 5.10.1 support in the near future? |
07:00 |
sri |
yes we do plan to let go of 5.10.1 |
07:01 |
bpmedley |
So, all would accept a set of callbacks; then would do something when they're all done; and wait wouldn't go on until everything is finished? |
07:01 |
|
dotandimet joined #mojo |
07:01 |
sri |
5.20 will be a pretty big release, and maybe with 5.22 we can depend on the new features it brings us |
07:02 |
sri |
bpmedley: no, ->all() accepts a list of promises and returns a new promise combining the two |
07:02 |
bpmedley |
Ok, I see. |
07:02 |
bc547 |
sri: ok.. can I assume 5.16 will be supported for some time? (since rhel7, centos7 is perl 5.16) |
07:03 |
sri |
bc547: you can only assume the last two stable versions will be supported |
07:03 |
sri |
for anything else there's a backport https://github.com/jamadam/mojo-legacy |
07:04 |
bc547 |
sri: oh.. didn't know about the backport |
07:04 |
bc547 |
sri: tnx! |
07:06 |
sri |
i really really want perl 5.20 subroutine signatures in mojolicious core, so odds are we will use them when 5.22 gets released |
07:08 |
bc547 |
sri: :-) |
07:10 |
sri |
bpmedley: if you want to understand promises, the jquery tutorials are generally pretty good http://www.bitstorm.org/weblog/2012-1/Deferred_and_promise_in_jQuery.html |
07:11 |
bpmedley |
I've actually been reading about them off and on for a while. I try to follow what's current from node and a few other places. |
07:11 |
sri |
the fact that promises according to promises/a+ propagate exceptions through a ->then chain makes them very appealing to me |
07:13 |
sri |
$ua->aget('mojolicio.us')->then(sub { $ua->aget(shift->res->dom->at('a')->{href}) })->then(sub { say shift->res->body }, sub { say 'Well, this failed somewhere' }); |
07:13 |
sri |
stuff like that |
07:14 |
sri |
doesn't matter which aget failed, it propagates through the chain |
07:15 |
sri |
you put one exception handler at the end and you're good to go |
07:16 |
buu |
sri: Have you seen this: http://blogs.atlassian.com/2013/11/harmony-generators-and-promises-for-node-js-async-fun-and-profit/ |
07:17 |
sri |
buu: nope, which part of it should i know about? |
07:18 |
buu |
sri: The combination of coroutines and promises! |
07:18 |
buu |
Makes very very pretty async code |
07:18 |
sri |
i cry for proper coroutines in perl at least once a day :( |
07:19 |
sri |
although promises are mostly a waste if you have them... this stuff is better https://github.com/visionmedia/co |
07:20 |
sri |
and before you bring up Coro... been there... done that... https://gist.github.com/kraih/6082061 |
07:20 |
buu |
I was just looking to see if coro was as awful as I remembered |
07:20 |
sri |
but i'm not going to bet the whole project on an mlehmann module |
07:21 |
buu |
sri: That /co link does basically the same thing, combining promises and generators |
07:21 |
sri |
no point dreaming about it |
07:22 |
sri |
realistically... we have the choice between good old continuation passing style and promises |
07:22 |
buu |
Haha https://metacpan.org/pod/coroutine0 |
07:24 |
buu |
Sad days |
07:25 |
sri |
haha |
07:26 |
|
Stefan joined #mojo |
07:28 |
sri |
the problem with promises is that we would need a new separate method for every method that accepts a callback now |
07:28 |
sri |
$ua->get(... => sub {...}) -> $ua->aget(...) |
07:31 |
sri |
from $ua->adelete('mojolicio.us') to $loop->atimer(5) |
07:38 |
|
Vandal joined #mojo |
07:41 |
|
webart joined #mojo |
07:44 |
sri |
which brings up new problems... such as should we support two non-blocking APIs or get rid of ->get(... => sub {...}) afterwards |
07:45 |
sri |
and did anyone notice that i made a memory leak in my last promise example? |
07:46 |
buu |
I did but it leaked out |
07:47 |
sri |
that's weak |
07:49 |
sri |
and while you're thinking of more puns... i'm also interested in new ideas for making exception handling with delays more elegant... here's a real world example https://github.com/kraih/mango/blob/master/lib/Mango/GridFS/Writer.pm#L37 |
07:53 |
|
dod joined #mojo |
07:53 |
* sri |
really likes ->pass() too btw. |
07:54 |
|
jnbek^dt joined #mojo |
07:54 |
|
priodev joined #mojo |
08:00 |
|
eseyman joined #mojo |
08:04 |
|
sivoais joined #mojo |
08:20 |
bpmedley |
sri: How far off is this: http://pastie.org/8800732 (please don't laugh) .. :) |
08:24 |
|
arpadszasz_ joined #mojo |
08:28 |
|
odc joined #mojo |
08:30 |
|
trone joined #mojo |
08:48 |
|
trone joined #mojo |
08:51 |
|
genio joined #mojo |
08:56 |
|
mire__ joined #mojo |
09:00 |
|
arthas joined #mojo |
09:02 |
|
kwa joined #mojo |
09:06 |
|
Jonneh joined #mojo |
09:10 |
|
Jonneh joined #mojo |
09:17 |
|
D4RK-PH0ENiX joined #mojo |
09:21 |
|
basiliscos joined #mojo |
09:21 |
|
denisboyun joined #mojo |
09:24 |
|
sujithm joined #mojo |
09:27 |
|
Adura joined #mojo |
09:44 |
|
entro joined #mojo |
09:57 |
|
denisboyun joined #mojo |
10:16 |
|
ver joined #mojo |
10:21 |
|
bowtie_ joined #mojo |
10:26 |
|
tholen42 joined #mojo |
10:27 |
|
arpadszasz_ joined #mojo |
10:31 |
|
marty joined #mojo |
10:32 |
|
marty joined #mojo |
10:41 |
|
meshl joined #mojo |
10:43 |
|
tl joined #mojo |
10:48 |
|
malikai joined #mojo |
10:49 |
batman |
jberger: we're already doing that. at least my chrome tab was blinking like crazy since you said "batman: ..." earlier. |
10:49 |
malikai |
1) jberger, you're awesome.. Mojo::IOLoop::ForkCall is a lifesaver |
10:50 |
malikai |
2) wtf is wrong with me? i can't find a way to kill a websocket client.. is there one? |
10:52 |
batman |
malikai: $c->finish; |
10:52 |
malikai |
3) i have been insulted everywhere.. a couple days ago i saw "chicago style pizza" in Hong Kong.. it was nothing of the sort! |
10:53 |
malikai |
i saw chicago style pizza in london as well.. it had baby corn on it! |
10:54 |
malikai |
batman, many thanks :) |
10:55 |
malikai |
i would commit serious violence against someone for a piece of lou malnottis right now |
10:56 |
|
arpadszasz_ joined #mojo |
11:00 |
|
sujithm joined #mojo |
11:09 |
|
denisboyun joined #mojo |
11:15 |
|
plenum joined #mojo |
11:45 |
|
jberger_ joined #mojo |
11:47 |
|
dsteinbrunner joined #mojo |
11:47 |
|
sujithm joined #mojo |
11:47 |
* jberger_ |
blushes |
11:48 |
jberger_ |
malikai: sadly http://www.tastesofchicago.com doesn't ship internationally |
11:48 |
|
skullbocks joined #mojo |
11:54 |
|
sujithm joined #mojo |
12:11 |
odc |
it looks like a mix between a quiche and a pizza :3 |
12:21 |
|
d4rkie joined #mojo |
12:28 |
* lb |
decides he's a fan of $self->plugins->namespaces([]); |
12:28 |
|
Stefan joined #mojo |
12:29 |
batman |
lb: why? |
12:29 |
lb |
I was wondering whether to push or unshift MyApp unto the list, when it occured to me that either is just a bug waiting to happen |
12:30 |
batman |
lb: do you know you can use a fqn with plugin() ? like $app->plugin('My::Plugon |
12:30 |
batman |
oops! |
12:30 |
lb |
yes |
12:30 |
lb |
so now i've enforced that |
12:30 |
batman |
lb: do you know you can use a fqn with plugin() ? like $app->plugin('My::Plugin'); instead of just $app->plugin('plugin'); |
12:30 |
batman |
weird. but whatever works for you. |
12:32 |
lb |
not sure why it's weird - if it searches in more than a single namespace, it's just a matter of time until some of the other dirs get a Config.pm or Session.pm or whatever |
12:32 |
batman |
do you also do $app->renderer->paths([]) and $app->routes->namespaces([]) ? |
12:32 |
lb |
and we're not talking a lot of saved typing all over the place |
12:33 |
lb |
not yet ;) |
12:33 |
batman |
it's the same thing. also...things don't just "drop in" you (or a plugin) have to actually modify those attributes |
12:35 |
malikai |
jberger_: just gives me an excuse to go home again soon.. maybe i won't have to hurt anyone to get my lou malnottis |
12:37 |
malikai |
(or buona beef) |
12:39 |
cpan_mojo |
Mojo-IOLoop-ForkCall 0.060_001 by Joel Berger - http://metacpan.org/release/JBERGER/Mojo-IOLoop-ForkCall-0.060_001 |
12:40 |
jberger |
Chicago style pizza is about peace not violence (oh and its about cheese too) |
12:40 |
lb |
it's weird to call a caserole a pizza |
12:41 |
* jberger |
suspects that lb is from new york and/or watches "The Daily Show" |
12:41 |
* lb |
suspects that jberger might be correct in one of those things |
12:42 |
|
d4rkie joined #mojo |
12:42 |
jberger |
call it a casserole if you want, but its a damn good casserole :D |
12:43 |
lb |
sure, it's cheese |
12:44 |
jberger |
and crust and tomatoes and toppings and ... well ... you know ... pizza |
12:44 |
lb |
in a casserole |
12:44 |
* lb |
runs |
12:44 |
mikegrb |
mmm pizza casserole |
12:44 |
* jberger |
chases lb with a rolling pin |
12:55 |
jberger |
if anyone using cygwin (and native windows for that matter) could attempt to test Mojo::IOLoop::ForkCall 0.060_001 that would be very useful |
12:55 |
malikai |
lol calling lou malnottis a casserole |
12:56 |
malikai |
you want to see a casserole? buy a "pizza" anywhere in china |
12:59 |
jberger |
re the node drama: I love how once again, Perl is quietly doing things right, set up a foundation that protects the community's IP |
13:01 |
malikai |
heh.. still drama in node land? is that whole episode with the random guy's pull request still flaring? |
13:03 |
|
ka2u joined #mojo |
13:05 |
|
jb360 joined #mojo |
13:05 |
jberger |
no, various companies are trying to trademark npm |
13:06 |
* jberger |
is reading http://www.colorglare.com/2014/02/03/to-close-or-not-to-close.html and I think Mojo::DOM should support SGML and its lovely Null End Tags! |
13:06 |
* jberger |
ducks |
13:09 |
malikai |
not surprised re node |
13:11 |
malikai |
i'm getting sick and tired of seeing >2gbit NTP flows to random cable/dsl subscribers |
13:12 |
malikai |
it's pointless: you can shut your average cable/dsl subscriber down with 200mbit.. it makes no sense to waste 2gbit worth of reflectors for such a puny target.. |
13:13 |
malikai |
anyway.. gamerz be gamerz |
13:14 |
jberger |
hahaha, Tor is in GSOC: https://blog.torproject.org/blog/tor-google-summer-code-2014 |
13:14 |
jberger |
man, its been that kind of year! |
13:16 |
malikai |
for all the crap dished out.. it just means the next few years will be the response to it all |
13:16 |
malikai |
hopefully some good solutions will come about |
13:17 |
malikai |
although, google themselves are damaged goods |
13:18 |
lb |
from Don't be Evil to Don't get Caught in a decade |
13:19 |
jberger |
DDG FTW! |
13:21 |
mikegrb |
I'm getting sick of seeing > 20 gbit NTP flows to customers :< |
13:21 |
mikegrb |
they can resume on tuesday, when I'm not secondary on call any more |
13:21 |
bc547 |
mikegrb: unplug the cable! :-) |
13:21 |
lb |
gosh, i miss doing operations, he lied |
13:22 |
mikegrb |
null route all the things |
13:24 |
malikai |
biggest i've seen so far is 17gig |
13:24 |
malikai |
i'll bet those huawei boxes are selling like hotcakes right now because of all this nonsense |
13:25 |
jberger |
anyway, time to work a half day, then escape this wintery hell-hole for a warm weather weekend! |
13:28 |
malikai |
one of our downstream customers got about 170gig combined on all their ix ports.. the target was one of their BG routers |
13:28 |
malikai |
i'm sure that was a bad day |
13:35 |
|
zivester joined #mojo |
13:45 |
|
plenum joined #mojo |
13:54 |
|
arthas_ joined #mojo |
13:58 |
|
sujithm joined #mojo |
14:13 |
|
Jonneh joined #mojo |
14:19 |
|
sh4 joined #mojo |
14:26 |
|
GabrielVieira joined #mojo |
14:33 |
|
btyler joined #mojo |
14:34 |
|
mire__ joined #mojo |
14:43 |
|
plenum joined #mojo |
14:44 |
batman |
i don't get this: http://p.thorsen.pm/0310842a2f96 # trying to hot reload convos with a different port, and then afterwards the backend listens to the previous port..? |
14:44 |
batman |
sri: convos use fork+exec to start the backend ^ |
14:45 |
batman |
any idea how the backend *suddenly* listens to the old port? |
14:50 |
batman |
running linux 3.11 btw... |
14:58 |
|
Stefan joined #mojo |
15:02 |
|
asarch joined #mojo |
15:05 |
|
Stefan joined #mojo |
15:12 |
|
jnbek^dt joined #mojo |
15:12 |
|
priodev joined #mojo |
15:16 |
|
sivoais joined #mojo |
15:17 |
|
Stefan joined #mojo |
15:24 |
nic_ |
(which is significantly better than windows 3.11) |
15:24 |
|
gryphon joined #mojo |
15:26 |
* Coke |
backlogs and bets sri would really like perl 6 if it were "done". :) |
15:26 |
webart |
:-) |
15:27 |
* webart |
notices each time he compiles rakudo it seems *massively* faster .... |
15:28 |
webart |
then I use perl5 for some task and realize it's all relative ... |
15:28 |
webart |
Coke: to be done it just needs to be a little bit faster and have CPAN :-D |
15:29 |
|
Stefan joined #mojo |
15:32 |
Coke |
webart: yah, working on it. |
15:32 |
webart |
hmm just realized perl5 is not done either :-) |
15:34 |
|
bjakubski joined #mojo |
15:34 |
|
GabrielV_ joined #mojo |
15:36 |
webart |
w/ perl6 folks can haz "extra" features one day (i.e. seamlessly run perl5, tcl, javascript, lua .... from a perl6 that runs on jvm, rakudo, moar, haskell, .net ... on phones, spaceshuttles, mainframes, desktops, browsers/javascript, tablets, laptops, wearables ...) |
15:37 |
webart |
... and all that on Mars ... |
15:37 |
webart |
"not done" is a good thing ... :-) |
15:42 |
tempire |
webart: http://www.youtube.com/watch?feature=player_detailpage&v=tCel6lpDTZI#t=162 |
15:48 |
webart |
zat's my favourite ... :-) |
15:48 |
|
sujithm joined #mojo |
15:50 |
sri |
lb: don't forget to @INC = () |
15:50 |
sri |
;p |
15:50 |
|
skullbocks joined #mojo |
15:51 |
sri |
maybe also $ENV{PATH} = '' |
15:51 |
sri |
not like we invented multiple search paths :) |
15:52 |
sri |
and where's my atom.io invite? :( |
15:53 |
Coke |
webart++ |
15:53 |
Coke |
sri: seriously. I asked for mine like a whole 18 hours ago |
15:53 |
Coke |
SeRiously. |
15:53 |
purl |
I'm totally freaking serious. |
15:56 |
sri |
seriously |
15:56 |
purl |
is that for real? |
15:57 |
webart |
tempire: I probably won't be doing big projects that would force me to learn perl6 the way I learned perl5 (hope I'm wrong ...) so I like it when the mental stretch to doing something in perl6 is not too big ... for me the sweet spot now is oneliners :-) ... |
15:58 |
webart |
http://blogs.perl.org/users/jhannah_mutation_grid/2010/09/one-liner-xmlperljson.html :-) |
15:58 |
webart |
but I totally see how a booking.com or some other huge project could start small and then cut over ... p6 is very productive. There could be an avalanche/tipping point that shows up and surprises everyone. |
16:00 |
sri |
don't forget craigslist, which has hired timtoady to work on perl6 |
16:01 |
|
marty joined #mojo |
16:03 |
* lb |
spanks sri |
16:03 |
|
rem_lex| joined #mojo |
16:09 |
|
aggrolite joined #mojo |
16:16 |
genio |
sri++ #Mojo is making my life better |
16:22 |
|
fhelmber_ joined #mojo |
16:51 |
sri |
hmm, i guess in the end correctly used delays don't look so bad https://github.com/kraih/mango/blob/master/lib/Mango/GridFS/Writer.pm#L37 |
16:51 |
|
beyondcreed joined #mojo |
16:52 |
|
dsteinbrunner_ joined #mojo |
16:57 |
|
dsteinbrunner joined #mojo |
16:59 |
jberger_ |
sri++ |
17:00 |
|
dsteinbrunner_ joined #mojo |
17:01 |
sri |
but i didn't do anything! |
17:01 |
|
Stefan joined #mojo |
17:02 |
donk |
morgen |
17:09 |
|
Stefan joined #mojo |
17:10 |
|
punter joined #mojo |
17:12 |
|
dsteinbrunner joined #mojo |
17:19 |
|
jberger__ joined #mojo |
17:23 |
|
dsteinbrunner_ joined #mojo |
17:28 |
|
Stefan joined #mojo |
17:30 |
|
jberger_ joined #mojo |
17:36 |
|
jberger__ joined #mojo |
17:36 |
|
jberger_ joined #mojo |
17:37 |
|
jberger__ joined #mojo |
17:38 |
davido_ |
Interesting: http://perlmonks.org/?node_id=1076424 |
17:41 |
|
Stefan joined #mojo |
17:44 |
|
Jonneh joined #mojo |
17:48 |
|
dod joined #mojo |
17:54 |
|
sujithm joined #mojo |
17:58 |
sri |
most people are so oblivious when it comes to non-blocking |
18:04 |
marcus |
sri: https://github.com/Nordaaker/convos/blob/master/lib/Convos/Core.pm#L215 |
18:05 |
sri |
marcus: that's horrible |
18:06 |
marcus |
sri: why? |
18:06 |
sri |
you have no exception handling at all |
18:07 |
sri |
like i said earlier, imo Mojo::Redis exception handling is broken |
18:09 |
|
Stefan joined #mojo |
18:10 |
sri |
and yes, i'm aware that you're at least logging the error events |
18:10 |
sri |
but they have no connection to the actual operation whatsoever |
18:11 |
marcus |
well, I think if redis is down/broken, there's not much we can do to recover other than fail anyways |
18:11 |
|
davido_ joined #mojo |
18:11 |
sri |
you're assuming redis will never ever report any other errors |
18:12 |
sri |
and you'll never have more than one redis connection |
18:16 |
sri |
an error event is for exceptions that can't be connected to a specific operation |
18:16 |
sri |
exceptions for an operation should be passed to the callback |
18:16 |
sri |
the node.js redis client gets that very right |
18:17 |
batman |
sri: i'm planning to do an optional ($err, $res) response, since it's pretty annoying when you need to do error handling based on $res == undef |
18:17 |
sri |
https://github.com/mranney/node_redis |
18:17 |
batman |
but adding that to the existing api will break back compat |
18:17 |
sri |
batman: yes, that's what i would have expected |
18:17 |
batman |
but i totally agree. |
18:17 |
batman |
too bad i discovered that too late. |
18:17 |
sri |
mandel mostly gets it right, but i found an error there too |
18:17 |
batman |
we do error detection through $redis->on(error => sub {}) now |
18:18 |
sri |
let me see... linked to it earlier |
18:18 |
marcus |
yeah, sri mentioned that already. |
18:18 |
batman |
sri: i would appreciate if you could tell me about the error instead of just discovering it :P |
18:18 |
marcus |
Guess we lifted this design from MojoX::Redis |
18:18 |
sri |
https://github.com/jhthorsen/mandel/blob/master/lib/Mandel/Relationship/HasOne.pm#L71 |
18:18 |
sri |
@err is unhandled |
18:19 |
batman |
sri: the good thing is that (currently) there's no redis error that is not "global". at least from what i know |
18:19 |
batman |
sri: oh! that's terrible. |
18:19 |
batman |
could you file a bug report on that line? |
18:20 |
batman |
i need to take a break again... (still sick) |
18:20 |
sri |
a return $delay->pass(@err) if @err; would be enough |
18:20 |
batman |
yeah |
18:22 |
sri |
https://github.com/jhthorsen/mandel/issues/7 |
18:22 |
sri |
hmm... linking to master is kinda sloppy |
18:24 |
sri |
ah, i can edit my issue :) |
18:25 |
|
plenum joined #mojo |
18:26 |
marcus |
sri: I just got something that will make you jealous ;) |
18:27 |
sri |
don't say atom.io |
18:27 |
marcus |
https://www.evernote.com/shard/s22/sh/c9b8f8fb-8a06-442d-bbb9-e5afea9e2299/c256e653875776ac2b92e28e6e1e2254/deep/0/Nordaaker----oslo.pm-on-magnet.png |
18:27 |
sri |
!@#$%^& |
18:27 |
sri |
if you don't send me your first invite i hate you! |
18:28 |
|
bluescreen joined #mojo |
18:29 |
|
ka2u joined #mojo |
18:29 |
marcus |
sri: Which email? :) |
18:30 |
sri |
batman: btw. there's at least "operation not permitted" errors in redis |
18:30 |
sri |
marcus: sri cpan.org |
18:30 |
marcus |
sent. Can't have you going around hating me. |
18:30 |
sri |
\o/ |
18:30 |
Coke |
what if I promise to hate you? |
18:31 |
sri |
WOOT! it's downloading |
18:34 |
sri |
icon is kinda ugly |
18:36 |
* jberger__ |
wants one too, but won't be able to use it until Monday, so defers |
18:36 |
marcus |
I agree about the icon. |
18:36 |
marcus |
jberger__: you're a mac too? |
18:37 |
jberger__ |
Oh is it only Mac? |
18:37 |
marcus |
yes |
18:37 |
marcus |
for now |
18:38 |
* jberger__ |
now irrationally hates atom.io and will pretend to speak ill of it |
18:39 |
Coke |
I have a mac! ;) |
18:39 |
* Coke |
doesn't even know marcus, and will stop pestering him now. :) |
18:39 |
marcus |
Coke: Who are you? :p |
18:40 |
marcus |
I'll send you an invite if you come to mojoconf ;-) |
18:40 |
sri |
hmm, it's better than i expected |
18:41 |
marcus |
Yeah, they seem to have been working on it |
18:41 |
|
mire_ joined #mojo |
18:41 |
sri |
no perltidy yet though, so impossible for to get any work done :p |
18:41 |
sri |
*me |
18:42 |
marcus |
I guess I can use it for ruby :p |
18:42 |
marcus |
We actually have a perltidy commit hook in convos now :) |
18:42 |
marcus |
After me driving batman crazy for a while |
18:43 |
tianon |
marcus: that reminds me, sorry for not getting back with that Dockerfile PR - it wasn't starting up after my changes and I haven't gotten around to seeing if it was starting up before my changes to debug it - don't wanna send you a half-assed PR :) |
18:43 |
sri |
git integration is neat, coloring the changed files and all |
18:44 |
Coke |
marcus: I'm on the grants committee, hack on perl6. |
18:44 |
Coke |
marcus: oslo's a bit of a stretch, sorry. :| |
18:44 |
sri |
Coke: what's your email address? i'll send you an invite |
18:46 |
sri |
sent |
18:46 |
sri |
batman: also stumbled over "(error) ERR Operation against a key holding the wrong kind of value" |
18:47 |
marcus |
tianon: that's ok, I'd rather wait for you to send a full-asset pull request |
18:47 |
sri |
so there are certainly operation specific errors |
18:47 |
tianon |
:D |
18:50 |
|
dotandimet joined #mojo |
19:00 |
|
Stefan joined #mojo |
19:02 |
|
Jonneh joined #mojo |
19:04 |
genio |
What does atom.io get right that Sublime Text doesn't? |
19:07 |
tempire |
I'm coming to mojoconf! |
19:07 |
tempire |
I want an invite! |
19:07 |
tempire |
!!!!!!!!!!! |
19:07 |
sri |
which email? |
19:08 |
sri |
sent |
19:13 |
|
dotandimet joined #mojo |
19:13 |
genio |
ah. nevermind my question, I'm reading their blog info on atom.io now |
19:13 |
sri |
atom is sooooo hackable |
19:14 |
sri |
think it could actually win me over |
19:14 |
sri |
find in project is not amazing... but good enough... just need perltidy now :) |
19:15 |
sri |
mojolicious plugin needs to be converted too |
19:18 |
|
plenum joined #mojo |
19:22 |
tempire |
huh |
19:23 |
tempire |
I didn't know you could create deployable chrome apps |
19:23 |
marcus |
Oh, tempire was hooked up already |
19:23 |
marcus |
I like it too, sri. |
19:23 |
sri |
you don't notice it's built on chromium |
19:24 |
marcus |
sri: Except when you open the debugger by accident like I did ;) |
19:24 |
sri |
haha, yea |
19:24 |
sri |
it's insane how hackable that makes it |
19:25 |
tempire |
I envision mojolicious plugins with live demos in the side |
19:25 |
sri |
you build fricking editor extensions with jquery! |
19:25 |
* jberger__ |
feels left out |
19:26 |
|
disputin joined #mojo |
19:26 |
* tempire |
wants to go to google io now |
19:26 |
sri |
i'm almost certain atom.io will explode in popularity, considering how easy extension writing is |
19:27 |
marcus |
Looks like they plan to charge for it? |
19:27 |
Coke |
I need to figure out how to add language support... |
19:27 |
Coke |
free "for now" |
19:29 |
marcus |
Pretty much everything in the editor is an extension, so nice. |
19:29 |
sri |
yea, the core might end up being commercial |
19:30 |
tempire |
If the price is reasonable, it would be worth it |
19:30 |
tempire |
people paid for textmate without a problem |
19:30 |
sri |
and sublime text |
19:30 |
purl |
sublime text is a $59 text editor similar to TextMate that runs on all major operating systems. Sublime Text 2 is in public beta (as of 12/2011) http://www.sublimetext.com |
19:31 |
tempire |
yeah but you don't actually have to pay for sublime text |
19:31 |
marcus |
I actually paid for both of them already :) |
19:31 |
marcus |
*and* I'm using vim atm :p |
19:31 |
tempire |
I doubt anything could replace my vim |
19:31 |
tempire |
but I'm open to it |
19:31 |
* sri |
still uses TM2 |
19:32 |
marcus |
Love the git gutter diff btw |
19:33 |
sri |
yea, that rocks |
19:34 |
marcus |
sri: I guess writing a perltidy extension shouldn't be very hard. |
19:34 |
Coke |
I love vim, but am not a power user. being able to extend in JS would be verrry nice. |
19:36 |
* jberger__ |
wishes Farabi would progress |
19:39 |
|
dotandimet joined #mojo |
19:39 |
|
basiliscos joined #mojo |
19:55 |
|
ka2u joined #mojo |
20:01 |
dsteinbrunner |
I'm still rocking bbedit |
20:03 |
|
denis_boyun joined #mojo |
20:12 |
|
drift joined #mojo |
20:12 |
marcus |
dsteinbrunner: old school. |
20:12 |
purl |
get off darkuncle's damn lawn or I'll beat you with a vampire tap |
20:13 |
cfedde |
I'll stuff your AUI cable in the MAU. |
20:20 |
|
mire_ joined #mojo |
20:28 |
|
lukep joined #mojo |
20:29 |
|
basiliscos joined #mojo |
20:38 |
|
dotandimet joined #mojo |
20:59 |
sri |
hahaha... now i can sound all pretentious too! haskell patterns applied to promises http://bartoszmilewski.com/2014/02/26/c17-i-see-a-monad-in-your-future/ |
20:59 |
sri |
that's actually surprisingly readable |
21:01 |
|
dotandimet joined #mojo |
21:07 |
|
Andy2 joined #mojo |
21:24 |
|
Andy2 joined #mojo |
21:48 |
|
jnbek^dt joined #mojo |
21:48 |
|
dod joined #mojo |
21:48 |
cfedde |
good ideas are obvious onece you know them. |
21:50 |
Coke |
camelize doesn't touch the string if it /begins/ with a capital? |
21:50 |
|
jnbek^dt joined #mojo |
22:25 |
|
BenGoldberg joined #mojo |
22:25 |
|
jnbek^dt joined #mojo |
22:28 |
|
gottreu joined #mojo |
22:31 |
|
jnbek^dt joined #mojo |
22:32 |
|
zackiv31 joined #mojo |
22:37 |
|
Stefan joined #mojo |
22:37 |
|
GabrielVieira joined #mojo |
22:38 |
|
jnbek^dt joined #mojo |
22:44 |
|
Stefan joined #mojo |
22:45 |
|
Stefan joined #mojo |
22:48 |
sri |
interesting, the atom core is mostly javascript, not coffee |
22:50 |
|
al joined #mojo |
22:52 |
|
hummeleBop joined #mojo |
22:52 |
|
Stefan joined #mojo |
22:53 |
|
Stefan joined #mojo |
22:59 |
|
Stefan joined #mojo |
23:00 |
|
al joined #mojo |
23:01 |
|
Stefan joined #mojo |
23:04 |
|
punter joined #mojo |
23:09 |
|
skullbocks joined #mojo |
23:09 |
|
Stefan joined #mojo |
23:21 |
|
marty joined #mojo |
23:21 |
|
skullbocks joined #mojo |
23:27 |
|
jnbek^dt joined #mojo |
23:36 |
|
marty joined #mojo |
23:37 |
|
Stefan joined #mojo |
23:38 |
|
marty joined #mojo |
23:41 |
|
jnbek^dt joined #mojo |
23:56 |
|
cstamas joined #mojo |