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

IRC log for #mojo, 2014-11-20

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

All times shown according to UTC.

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

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