Time |
Nick |
Message |
00:29 |
|
rem_lex joined #mojo |
01:05 |
jberger |
Akron: thanks |
01:05 |
jberger |
sri: it really is |
01:45 |
|
woz joined #mojo |
01:55 |
|
jb360 joined #mojo |
02:20 |
|
klapperl_ joined #mojo |
02:27 |
|
bc547 joined #mojo |
02:59 |
|
s1037989 joined #mojo |
03:04 |
jberger |
hahaha |
03:05 |
* jberger |
just discovered that Mojolicious supports HTTP status 418 |
03:05 |
* jberger |
proposes full RFC 2324 support |
03:10 |
sri |
no ;p |
03:10 |
jberger |
freegeoip.net is frustratingly unreliable |
03:12 |
|
asarch joined #mojo |
03:26 |
|
jb360 left #mojo |
03:34 |
|
woz joined #mojo |
04:06 |
|
basic6 joined #mojo |
04:14 |
jberger |
sri: I'm at my wits end |
04:14 |
jberger |
http://pastie.org/9731410 |
04:15 |
jberger |
when you run that like: perl -Ilib -MMojo::WebService::FreeGeoIP -MDDP -E 'Mojo::WebService::FreeGeoIP->new->locate(nowhere => sub { p @_ })' |
04:16 |
jberger |
since nowhere isn't valid you get a 404 but the error callback slot is an empty string |
04:16 |
jberger |
but |
04:16 |
jberger |
when you use Data::Printer and p $tx (as in the comment) the error shows up! |
04:37 |
|
zivester joined #mojo |
04:41 |
jberger |
purl: mongolian cluster fuck |
04:41 |
purl |
chainsaws someone random |
04:48 |
garu_ |
jberger: is it possible that when DDP is traversing the data structures something gets done? I've seen it before when something was overloaded I think |
04:48 |
jberger |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
04:48 |
garu_ |
I'm assuming that's a "yes"? : ) |
04:48 |
* jberger |
hangs head |
04:49 |
jberger |
simply making the callback sub { say $_[1] } is sufficient |
04:49 |
jberger |
somehow p @_ happens out of order? |
04:50 |
jberger |
well, its an hour I won't get back, but I did manage to find a new idiom I like |
04:57 |
jberger |
http://pastie.org/9731462#37-54 |
04:57 |
jberger |
the $check "method" dies if it is not satisfied returns the transaction if it is |
04:58 |
jberger |
then I call the handler $h on the transaction CHAINED |
04:58 |
jberger |
this works in both the blocking and nonblocking forms essentially identically |
04:58 |
jberger |
that has to be the most code reuse I have gotten out of blocking and nonblocking branches |
05:01 |
jberger |
I guess $check could just call $h on $tx |
05:02 |
jberger |
oooh, that gets my blocking branch to one line! |
05:03 |
jberger |
http://pastie.org/9731472 |
05:03 |
jberger |
ok I'll stop now |
05:09 |
jberger |
garu_: I really liked using p @_ add a callback for testing nonblocking on the command line :( |
05:10 |
jberger |
s/add/as/ |
05:23 |
|
woz joined #mojo |
05:27 |
jberger |
garu_: it was only the string argument that was wrong, could it be related to COW somehow |
05:27 |
jberger |
? |
05:45 |
sri |
hmmmm... i think i've seen those 3 fails before http://www.cpantesters.org/distro/M/Mojolicious.html?oncpan=1&distmat=1&version=5.62 |
05:45 |
sri |
would be cool if someone could track them down |
05:51 |
|
sujithm joined #mojo |
05:54 |
|
sujithm joined #mojo |
06:01 |
|
d4rkie joined #mojo |
06:01 |
franzkafka |
sri, I believe I encountered something similar with a squid proxy that did not support HTTP/1.1 |
06:02 |
franzkafka |
I should test that again. |
06:27 |
|
irq joined #mojo |
06:43 |
|
rem_lex joined #mojo |
06:57 |
|
dod joined #mojo |
07:12 |
|
woz joined #mojo |
07:24 |
|
Vandal joined #mojo |
07:49 |
|
dotandimet joined #mojo |
08:14 |
|
sugar joined #mojo |
08:20 |
|
sugar_ joined #mojo |
08:30 |
|
trone joined #mojo |
08:37 |
|
basiliscos joined #mojo |
08:41 |
|
dp_ joined #mojo |
08:58 |
Insane |
hi there... in my mojo classic app I have AppName folder with many .pm in it (there are controllers, helpers, and commands). If I will move all controllers .pm how should I change routes definitions and package names in .pm? |
09:00 |
Insane |
or how could I tell mojo to lookup controllers into AppName/Controllers and not just in AppName/ ? |
09:01 |
|
woz joined #mojo |
09:13 |
|
vytas joined #mojo |
09:24 |
|
neyasov joined #mojo |
09:31 |
|
fhelmber_ joined #mojo |
09:34 |
|
Shaeto joined #mojo |
09:40 |
|
irq joined #mojo |
10:07 |
|
sugar__ joined #mojo |
10:31 |
|
sugar joined #mojo |
10:32 |
batman |
Insane: you can just move all the controllers into App/Controller/ and it will just work |
10:33 |
batman |
(remember to rename the "package ...;" statement) |
10:38 |
|
jkramer joined #mojo |
10:38 |
jkramer |
Ahoy! |
10:38 |
jkramer |
Are the client-side cookies of mojolicious considered secure? |
10:39 |
jkramer |
I'd like to use service-side cookies instead, but can't find a good plugin, and now I'm wondering if it's even neccessary. |
10:39 |
crab |
secure against what? |
10:40 |
bpmedley |
jkramer: http://mojolicio.us/perldoc/Mojolicious/Sessions#DESCRIPTION |
10:40 |
jkramer |
Against manipulation by the user. For example I'd store the ID of the logged in user in the session. Then of course it would be uncool if the user could simply replace the ID in his session with the one of another user. |
10:42 |
moritz |
jkramer: you can use signed cookies; those are secure against manipulation |
10:44 |
jkramer |
Aren't they signed by default? |
10:44 |
jkramer |
"Mojolicious::Sessions manages simple signed cookie based sessions for Mojolicious. All data gets serialized with Mojo::JSON and stored Base64 encoded on the client-side, but is protected from unwanted changes with a HMAC-SHA1 signature." |
10:46 |
jkramer |
It sounds like it's somehow secured, but I don't understand whether it's just protected against "unwanted manipulation" as in transmission errors, or against unwanted manipulation as in "the user is evil and tries stuff" |
10:48 |
moritz |
jkramer: the latter |
10:48 |
purl |
the latter is better |
10:48 |
moritz |
jkramer: you give mojolicious a secret; it uses that secret to sign the cookies |
10:49 |
moritz |
jkramer: and upon reading, it validates the signature, again using the secret |
10:49 |
batman |
jkramer: the session() will set a cookie which cannot be manipulated by the user --- unless the user knows the app->secrets([...]) |
10:49 |
batman |
or if sha1 is cracked |
10:50 |
batman |
this means that you should make sure you set app->secrets to something that can't be guessed by the user |
10:57 |
jkramer |
Thanks, looks like I'm fine then :) |
11:03 |
batman |
cool :) |
11:05 |
crab |
sha1 would have to be cracked in a very particular way that would allow people to forge hmac signatures (which i mention because that's typically not how hash functions are cracked). |
11:06 |
crab |
i don't think it's possible to crack sha1 that way |
11:14 |
bc547 |
a hashing algorithm is considered cryptographically weak if an attacker can generate collisions (input that results in the same hash value) more efficiently than brute-force. |
11:16 |
|
Lee joined #mojo |
11:22 |
|
sugar_ joined #mojo |
11:34 |
|
sugar__ joined #mojo |
11:39 |
|
neyasov joined #mojo |
11:39 |
|
neyasov joined #mojo |
11:40 |
|
sugar joined #mojo |
11:55 |
|
neyasov_ joined #mojo |
12:38 |
|
woz joined #mojo |
13:07 |
|
human39 joined #mojo |
13:18 |
garu_ |
jberger: any idea how I can make this better? I just remembered the issue I was having, it was when I was dumping a DBIC resultset. When DDP was traversing the object, asking for array sizes was issuing a count(*) on the database |
13:27 |
oetiker |
when looking at POST requests coming from IE, I find that length($c->req->build_body) is 2 bytes smaller than $c->req->headers->content_length indicates |
13:27 |
oetiker |
is this a known behaviour ? |
13:30 |
oetiker |
I misspoke |
13:30 |
oetiker |
not only IE |
13:30 |
oetiker |
it seems to be a general thing |
13:48 |
|
rocinante joined #mojo |
13:49 |
|
ignacio_ joined #mojo |
13:49 |
|
lipizzan joined #mojo |
13:50 |
oetiker |
I think I found the reason ... the POST body gets parsed and then re-assembled via build_body ... how would I access the original body as it was in the request ? |
13:51 |
hernan604 |
get_body_chunk?: |
13:51 |
hernan604 |
req->content->get_body_chunk i think |
13:52 |
oetiker |
neat |
13:53 |
oetiker |
get_body_chunk will get me complete body ? |
13:54 |
dabudabu |
Can you specify the gender? |
13:55 |
hernan604 |
he wants to use his mojo to get complete body |
13:55 |
hernan604 |
oetiker: yes, is it missing any parts now ? |
13:56 |
oetiker |
no :-) |
13:56 |
oetiker |
not in my example case |
13:57 |
hernan604 |
content->is_chunked |
13:59 |
oetiker |
I ran into this problem because I am writing a reverse proxy. I forward requests with Mojo::Transaction::HTTP->new(req =>$c->req->clone) |
13:59 |
oetiker |
and I found that in post requests the content_size header does not match the size of the actual content |
14:02 |
oetiker |
so it might be more efficient to use get_header_chunk and get_body_chunk from the original request and build the new one using this as input |
14:13 |
|
zivester joined #mojo |
14:24 |
|
ignacio_ joined #mojo |
14:25 |
|
ignacio_ joined #mojo |
14:27 |
|
woz joined #mojo |
14:32 |
sri |
oetiker: the content-length header is not supposed to be wrong |
14:33 |
sri |
oetiker: make a failing test case |
14:35 |
|
neilhwatson joined #mojo |
14:46 |
sri |
oh well... if you're not interested in actually trying to figure this out... |
14:53 |
|
KCL_ joined #mojo |
15:06 |
oetiker |
sri: the content-size header, I think is whatever the client sent. But when I am using build_body to see the content of the POST request sent by the client, the resulting data is 2 byte less ... so I assume build_body is re-assembling the body from a parsed form |
15:08 |
sri |
what you're saying makes no sense, there is no such thing as a content-size header |
15:08 |
sri |
whatever that is, you made it up |
15:12 |
sri |
anyway, you've lost my attention until you show something we can actually replicate |
15:31 |
oetiker |
sri: sorry content-length |
15:33 |
|
davido_lt joined #mojo |
15:34 |
|
Nei joined #mojo |
15:35 |
Nei |
does "(in cleanup) Can't call method "res" on an undefined value at Mojo/Transaction/WebSocket.pm line 213 during global destruction" ring a bell with anyone? during (or rather, at the end of) Test::Mojo |
15:37 |
mst |
Nei: what's wrong with the obvious explanation? |
15:38 |
mst |
you have *something* calling ->res on a WS txn obj |
15:38 |
mst |
during global destruction |
15:38 |
mst |
since that's provixed to $self->handshake |
15:38 |
mst |
and that value already got GD'ed |
15:38 |
mst |
it's not there, so an exception is thrown |
15:38 |
mst |
what you need to do now, is use Devel::Confess or Carp::Always to get yourself a stack trace |
15:38 |
mst |
so you can figure out whose destructor is at fault |
15:42 |
moritz |
so global. Such fun. |
15:43 |
|
sh4 joined #mojo |
15:47 |
Nei |
segmentation fault perl -d:Confess ./00compile.t ;( |
15:48 |
Nei |
fwiw, Carp::Always doesn't give me any stack trace for that global destruction error |
15:48 |
|
denny joined #mojo |
15:50 |
Nei |
Devel::Confess seems to be stuck in some endless look resulting in that segfault |
15:52 |
* sri |
still can't get over he fact that the failraptor shirt is the one selling best |
15:53 |
Nei |
seems kinda obvious :) |
15:53 |
|
Ptolemarch joined #mojo |
15:58 |
Nei |
and I cant reproduce it on debian's 5.14 :x |
16:04 |
doby |
sri: thats the one i bought |
16:04 |
mst |
Nei: monkeypatch res() to 'warn Carp::longmess;' then |
16:04 |
doby |
supposed to be delivered today |
16:15 |
|
disputin joined #mojo |
16:16 |
|
woz joined #mojo |
16:27 |
|
fhelmber_ joined #mojo |
16:38 |
|
thowe joined #mojo |
17:02 |
Grinnz_ |
how can i check in my after_dispatch hook so that i don't fire it for static files? |
17:07 |
thowe |
So, I'm trying to figure out what Minion is for... Is it for running processes outside of your Mojo app? Or... What? Is there a real example someone can point me to? |
17:09 |
thowe |
The documentation isn't suggesting to me what I would use it for... |
17:12 |
mst |
thowe: it's for running stuff when you don't want to run stuff in-line in the request handler |
17:14 |
Nei |
thanks mst. that got me to http://paste.scsys.co.uk/443856 |
17:15 |
Nei |
the error doesnt occur on every test run either. mhm. I think I'm too stupid for this shit |
17:15 |
mst |
global destruction is unordered |
17:16 |
mst |
BINGO |
17:16 |
Grinnz_ |
my after_dispatch hook seems to be firing even when it's an entirely static file from my $app->static->paths ... :/ |
17:16 |
thowe |
mst, to prevent it from blcking some other request? Is it onlty for things that you don't need to use the data it returns? |
17:16 |
mst |
Nei: sec |
17:16 |
thowe |
It was looking to me like you are throwing resquests for things to happen over a wall and not paying any attention to what happens to them. What if I need data back from something that takes a long time to run? |
17:16 |
Grinnz_ |
thowe: i would guess the stuff i'm currently running a separate POE process to handle |
17:17 |
Grinnz_ |
thowe: HTTP requests aren't going to wait around anyway, if you want the data back from it you'll need ot have something check back (database etc) |
17:17 |
Grinnz_ |
(assuming we're talking about such long-running processes) |
17:17 |
Nei |
the whole mess is hidden in files I didnt throw on the paste; it may very well be my fault. I didnt explicitly touch the streams as far as I am aware though |
17:17 |
mst |
thowe: then you should check for a job having completed and written its output |
17:17 |
thowe |
Well, I was wondering if I could use it to go get some data I need vie SNMP, but I don't see how I get the returned data. |
17:18 |
thowe |
s/vie/via/ |
17:19 |
thowe |
I think there is some implied context that I am just not in on that the cods/examples doesn't feel is worth mentioning. |
17:19 |
thowe |
s/cods/docs/ |
17:20 |
|
rocinante joined #mojo |
17:20 |
mst |
Nei: basically, once you're already in global destruction the entire thing is futile |
17:20 |
mst |
Moo(se) use Devel::GlobalDestruction to test it and just skip out of the relevant code |
17:20 |
mst |
if you look at Stream's DESTROY, it does a couple of 'return unless' guards |
17:21 |
mst |
but then the emit -> close goes into code that doesn't know to handle that |
17:22 |
Nei |
unfortunately I have to go now. thank you so much for helping me here |
17:22 |
Grinnz_ |
thowe: if you want the browser to wait around for the response you can probably just do it in the request |
17:22 |
mst |
Nei: so, that's why the exception's happening |
17:22 |
mst |
exactly what to do about it, I don't have an immediate plan |
17:23 |
mst |
sri: ^^ the above is kinda interesting |
17:23 |
Grinnz_ |
thowe: otherwise you'll need something to return it to (like a database) |
17:23 |
thowe |
So this is for firing off stuff that isn't expected to return any data any time soon? |
17:23 |
mst |
thowe: sending emails, thumbnailing images, etc. etc. |
17:23 |
Grinnz_ |
i haven't looked into it specifically but that's how i use similar functionality |
17:23 |
thowe |
I don't want to block other requests, but maybe Minion isn't the way to prevent that.. |
17:23 |
mst |
basically "I need to offload this from my web processes to somewhere else, and fork() would be stupid" |
17:24 |
Grinnz_ |
thowe: mojo does async stuff that can still return to the browser |
17:24 |
thowe |
mst, ah. OK... |
17:24 |
mst |
thowe: I feel like you're overthinking this :) |
17:24 |
Grinnz_ |
thowe: simple example: https://metacpan.org/pod/Mojolicious::Controller#render_later |
17:25 |
thowe |
I just couldn't make heads or tails out of what Minion even IS from the minion page. |
17:25 |
Grinnz_ |
thowe: you'll need something that can run async, though |
17:31 |
|
tencendur joined #mojo |
17:36 |
sri |
mst: i've looked into that a few months back, but it's just global destruction... so... meh |
17:38 |
sri |
oetiker: this is easy to exploit for a DoS attack https://metacpan.org/source/OETIKER/Mojolicious-Plugin-ReverseProxy-0.5/lib/Mojolicious/Plugin/ReverseProxy.pm#L34 |
17:38 |
mst |
sri: or you could rip the PP code from Devel::GlobalDestruction into a Mojo::Util routine and have your DESTROY methods use that |
17:39 |
sri |
mst: meh |
17:43 |
Grinnz_ |
sri: what can i do about static files? i'm using after_dispatch to set a cookie but I don't want it set for static files, is there a better way to do this? google just turning up docs and outdated blogs... |
17:44 |
|
damaya joined #mojo |
17:52 |
batman |
thowe: use Mojo::SNMP |
17:53 |
batman |
It has a non-blocking API, like Mojo::UserAgent |
17:53 |
batman |
Feedback wanted :) |
18:04 |
sri |
thowe: that should answer the question https://github.com/kraih/minion/commit/3009d115af8629b8299b16177bce1a14c357bd94 |
18:05 |
|
woz joined #mojo |
18:10 |
thowe |
whoa, that's a thing? I will try to use it. Or rip it off. |
18:11 |
batman |
Rip what off? |
18:11 |
purl |
i heard Ripoff was distinguished from a scam in that a scam involves wrongdoing such as fraud. |
18:11 |
thowe |
Mojo::SNMP |
18:12 |
batman |
I hope you don't. I would rather get your feedback, so I can improve it... |
18:12 |
batman |
Made it for someone at work. Haven't really used it myself :/ |
18:12 |
thowe |
:( |
18:12 |
batman |
But the LICENSE makes it rip-able :) |
18:13 |
batman |
Why ":(" ? |
18:14 |
thowe |
untested |
18:15 |
genio |
Well, I see lots of tests here: https://metacpan.org/source/JHTHORSEN/Mojo-SNMP-0.06/t |
18:15 |
thowe |
This syntax of passing anonymous subs still doesn't quite mesh in my head... I need to start using it. |
18:15 |
batman |
Why do you say it's untested? It has tests and it's used in production |
18:15 |
thowe |
"$snmp->on(response => sub" *head explodes* |
18:15 |
genio |
heh |
18:15 |
hernan604 |
thowe: its just a reference to a method |
18:16 |
thowe |
"Haven't really used it myself" |
18:16 |
thowe |
I'm super excited it exists. I think I will use it. I will provide feedback. |
18:17 |
avenj |
I've written lots of stuff I haven't really used myself |
18:17 |
batman |
thowe: that is not the same as it's not tested :) |
18:17 |
batman |
Me to. Mojo::TFTP. It still has quite some tests :) |
18:17 |
thowe |
batman, yeah, I get that. I saw the "haven't use myself" and my fingers typed a frowny faster than my brain worked. |
18:18 |
batman |
Ok. Good. |
18:19 |
thowe |
My current perl snmp stuff scans my entire network and feeds my nagios config, but this looks much better as it is at the same time. \o/ |
18:20 |
thowe |
I also want to provide a "green board" for stuff I don't send notifications about. |
18:20 |
thowe |
I have the classic network where everything is taped together with Perl scripts nobody knows about. |
18:21 |
thowe |
My current strategy is to give them web interfaces so people know they exist and can look at the blinky flashy stuff. |
18:21 |
Grinnz_ |
13:15:20 <thowe> This syntax of passing anonymous subs still doesn't quite mesh in my head... I need to start using it. |
18:22 |
Grinnz_ |
i take it you haven't done much javascript programming ;) |
18:23 |
thowe |
Not much, no. A little bit mostly for my IPAM, but I understand that this is part of the functional paradigm that I want to understand. I just don't get to spend my time programming. I've learned to do it on the odd free weekend. |
18:23 |
Grinnz_ |
it's a common paradigm in async programming |
18:24 |
batman |
thowe: the reason why Mojo::SMMP exists, is because of the non-blocking API. We use it as a REST to SNMP proxy. |
18:24 |
batman |
And we don't want to block the webserver with slow SNMP walks |
18:25 |
thowe |
batman, cool. This is how I want to change our stuff at work, as it is nasty and old. I'm having trouble getting people onboard. |
18:26 |
thowe |
what little js I have done I figured out for this: https://github.com/thowe/PieNg |
18:27 |
thowe |
I want to make that a Mojo app. |
18:28 |
thowe |
All the hard stuff is in the model, so it should be that tough. |
18:31 |
thowe |
n't |
18:40 |
batman |
Mojo::Pg + Mojo::SNMP + Mojolicious = non-blocking fun :) |
18:40 |
batman |
(there's also Mojo::mysql, if you need non-blocking mysql) |
18:41 |
genio |
although you should kick that nasty MySQL habit and Pg it up |
18:41 |
Grinnz_ |
you don't know how much i wish that were feasible ;) |
18:42 |
thowe |
Yeah... I think I kicked my MySQL habit when I stopped using OS/2. |
18:42 |
|
zackiv31 joined #mojo |
18:44 |
thowe |
I noticed I still have my volunteer shirt from Warpstock '98 in my closet. =| |
18:45 |
thowe |
misspent youth |
18:46 |
thowe |
How hard would it be to have a non-blocking DBIC module? |
18:46 |
thowe |
Does handling transactions make that weird? |
18:48 |
batman |
Both Mojo::MySQL and ::Pg support transactions |
18:49 |
batman |
i thinks it would be very difficult to make dbic non-blocking |
18:50 |
batman |
I started on Mad::Mapper, which is a poor-mans ORM. Doesn't support relations yet. |
18:51 |
batman |
https://github.com/jhthorsen/mad-mapper |
18:52 |
batman |
Only selling point is that it's objects, and it's non blocking, hehe |
18:52 |
thowe |
that's a start, but DBIC has my love |
18:54 |
batman |
I use dbic at work. Try to avoid blocking modules on my spare time |
18:58 |
|
asarch joined #mojo |
19:09 |
|
Ptolemarch joined #mojo |
19:27 |
|
neilhwatson joined #mojo |
19:37 |
|
KCL_ joined #mojo |
19:46 |
sri |
description good enough now? http://mojolicio.us/perldoc/Minion#DESCRIPTION |
19:47 |
|
tencendur joined #mojo |
19:48 |
mst |
batman: shame nobody will actually describe an async DBIC interface; riba's been asking for somebody to tell him what they want for years |
19:48 |
mst |
thowe: we're pretty sure we know how to do it. nobody will ever explain what 'it' they want :P |
19:49 |
sri |
they don't know |
19:53 |
sri |
i'd be surprised if more than a few people actually understood how non-blocking DBI actually works, designing a hybrid dbic api would be pretty tough |
19:54 |
|
woz joined #mojo |
19:55 |
|
marcus joined #mojo |
19:56 |
marcus |
wow, crab's back <3 |
19:57 |
marcus |
(reading some backlog, sorry about my lack of irc precence lately) |
19:59 |
* marcus |
has been reading DBIx::SearchBuilder source code this week. Now I need some hard alcohol. |
19:59 |
|
Jonis joined #mojo |
19:59 |
genio |
If you find yourself in the mountains of GA next week, I'll have plenty of bourbon |
20:00 |
marcus |
genio: that seems unlikely somehow, but it would be a pleasant surprise I guess. |
20:01 |
|
neyasov_ joined #mojo |
20:01 |
genio |
mmmmm. bourbon |
20:02 |
genio |
I'm looking at DBIx::SearchBuilder and... CamelCaseIsReallySucky |
20:03 |
mst |
it's older than even Class::DBI, IIRC |
20:03 |
mst |
obra reprented of his sins later |
20:03 |
marcus |
https://metacpan.org/source/ALEXMV/DBIx-SearchBuilder-1.66/lib/DBIx/SearchBuilder.pm#L501 this was the one that got me |
20:03 |
mst |
as can be seen in Jifty::DBI |
20:03 |
mst |
which was actually quite cute in its own way |
20:03 |
marcus |
mst: I've recently taken over a large installation of RT. |
20:04 |
mst |
marcus: RT is horrible. But everything equivalent I've ever worked with has been even more horrible. |
20:04 |
mst |
I told the core team that, and they said "yeah, for a ticket system, that's about the highest compliment you'll ever get. thanks." |
20:04 |
genio |
I'm in charge of moving our RT installation to Jira now. I'm not sure I like Jira any better |
20:04 |
marcus |
mst: yes. Actually a lot of it is quite sane. |
20:04 |
marcus |
mst: but the sql generation could be improved. |
20:06 |
marcus |
The default user homepage for our installation generates 1040 sql queries :) |
20:07 |
mst |
... |
20:07 |
marcus |
genio: jira is not better |
20:07 |
Grinnz_ |
thats a... few queries |
20:08 |
marcus |
a lot of it is the permission checking. We have a lot of queues and a lot of groups (university) |
20:08 |
genio |
the service desk doesn't seem horrible at the moment... We haven't actually started using it yet though. We've only done some initial testing |
20:09 |
Grinnz_ |
yeah... i'm glad my permissions checking is mostly self written so i can optimize it db-wise... |
20:09 |
genio |
ah, with that many users nothing beats RT solely due to licensing cost. shit's expensive out there |
20:17 |
|
asarch joined #mojo |
20:23 |
hernan604 |
hi! /win 5 |
20:26 |
|
doby joined #mojo |
20:35 |
* Grinnz_ |
is still trying to figure out a good way to only set a cookie for dynamic responses... |
20:36 |
mst |
let the web server serve the static files? |
20:36 |
Grinnz_ |
i could do that, but then i'd lose the benefit i was hoping for, of not having to configure apache anymore ;) |
20:37 |
mst |
I like keeping static and dynamic serving separate anyway |
20:37 |
mst |
otherwise they get intertwingled and you lose the chance to do certain optimisations, which may turn out to be worthwhile later |
20:38 |
Grinnz_ |
perhaps.. |
20:38 |
purl |
then again, perhaps not |
20:38 |
Grinnz_ |
<_< |
20:38 |
* mst |
shrugs |
20:38 |
Grinnz_ |
i'm guessing thats a bot |
20:38 |
mst |
yes |
20:39 |
mst |
unpicking static versus dynamic file serving is actually something I'm probably going to have to help a customer with shortly |
20:39 |
mst |
because it's completely fucked their scalability along certain axes |
20:39 |
Grinnz_ |
either way, there shoudl be *some* way to distinguish if a request is dynamic or static in the hooks... |
20:40 |
mst |
does whatever static serving plugin you use not set a value somewhere? |
20:40 |
mst |
if not, why not? |
20:40 |
Grinnz_ |
i'm using either ->reply->static or letting mojo serve it itself, which i think ends up as the same thing |
20:41 |
mst |
since there's no 'reply' or 'static' method in lib/ of Mojolicious |
20:41 |
mst |
I'm confused |
20:41 |
Grinnz_ |
it's in default helpers |
20:41 |
Grinnz_ |
it calls controller->static->serve iirc |
20:42 |
mst |
aha |
20:42 |
mst |
so, if the Mojolicious::Static stuff passes dispatch |
20:42 |
mst |
it sets $stash->{'mojo.static'} |
20:43 |
mst |
calling serve directly doesn't |
20:43 |
Grinnz_ |
hrm |
20:43 |
Grinnz_ |
well, i can check both that, and a custom var when i call serve, thats not a problem |
20:43 |
Grinnz_ |
but that works |
20:44 |
|
zackiv31 joined #mojo |
20:49 |
|
alnewkirk joined #mojo |
20:49 |
Grinnz_ |
success! you da man mst |
20:50 |
mst |
one you gave me 'serve' as a method name |
20:50 |
mst |
ack 'sub serve' lib/ in a Mojo tarball |
20:50 |
mst |
told me which class to look at |
20:50 |
sri |
mst: mojo.* values are considered private |
20:50 |
mst |
I've got most of a decade's practice at reading sri's source code |
20:50 |
sri |
they will change without warning |
20:50 |
mst |
sri: well, what would be best practice instead then? |
20:51 |
Grinnz_ |
yeah i figured. |
20:51 |
sri |
you set your own value |
20:51 |
mst |
how does he manage to wrap Mojolicious::Static's dispatch() method? |
20:52 |
sri |
http://mojolicio.us/perldoc/Mojolicious#after_static |
20:52 |
Grinnz_ |
after_static? as long as that only fires when that happens |
20:53 |
Grinnz_ |
will that be guaranteed to happen before after_dispatch? |
20:56 |
Grinnz_ |
yeah, that doesn't work |
20:58 |
|
sugar_ joined #mojo |
21:01 |
|
disputin joined #mojo |
21:10 |
|
sugar__ joined #mojo |
21:23 |
|
basiliscos joined #mojo |
21:28 |
|
dotandimet joined #mojo |
21:30 |
|
KCL_ joined #mojo |
21:34 |
|
rem_lex|pivo joined #mojo |
21:40 |
|
irq joined #mojo |
21:43 |
|
woz joined #mojo |
22:15 |
|
woz joined #mojo |
22:20 |
|
dotandimet joined #mojo |
22:28 |
|
General-Narcotic joined #mojo |
22:30 |
|
General-Narcotic left #mojo |
22:31 |
marcus |
Grinnz_: or you could use a under at the top to set your cookie, I guess. |
22:31 |
|
neyasov_ joined #mojo |
22:32 |
Grinnz_ |
under '/'? |
22:40 |
Grinnz_ |
that actually... might just work |
22:45 |
Grinnz_ |
seems it does! thanks marcus |
22:52 |
marcus |
Grinnz_: \o/ |
23:01 |
|
dotandimet joined #mojo |
23:39 |
|
Averna joined #mojo |
23:48 |
|
asarch joined #mojo |