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

IRC log for #mojo, 2013-12-09

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

All times shown according to UTC.

Time Nick Message
00:51 wsri joined #mojo
00:51 marcus joined #mojo
00:53 btyler joined #mojo
00:58 womble joined #mojo
01:01 womble Can anyone tell me if this is possible? open websocket connection to mojolicious::lite app; send message over websocket; do some long running task; send message over the websocket; close websocket. This would be a Resque job i.e. its own process. Having trouble finding a suitable example to work from, maybe I'm missing something and it's a bad idea.
01:03 laouji joined #mojo
01:16 womble Should I be looking at using Mojo::Transaction::WebSocket directly vs Mojo::UserAgent? It seems that examples using $ua don't "persist" the WS connection. I may be talking gibberish :/
01:17 ka2u joined #mojo
01:25 jovial_chat womble: i know nothing, but i'd think that is entirely possible, if you hold the reference to the websocket object somewhere it should be kept alive
01:25 jovial_chat but worth asking when the channel is less dead
01:26 d4rkie joined #mojo
01:28 womble jovial_chat: Thanks. Another moment of self doubt.. I think I'm working through it. I envy people with colleagues.
01:29 jovial_chat womble: i've hopefully got some time tomorrow
01:29 jovial_chat i'll let you know
01:30 jberger all you should need to do is create a websocket route and connect to some of the websocket handlers
01:32 womble jberger: the route server side is fine, it's the client side I'm shaky on
01:32 meshl joined #mojo
01:33 womble I'm just trying: my $ws = Mojo::Transaction::WebSocket->new; $ws->send(...); do_my_stuff(); $ws->send(...); $ws->finish;
01:34 womble do_my_stuff() updates a database, server checks value set by do_my_stuff() on $ws->finish for a value indicating the "transaction" handled by the Resque job was successful
01:34 womble *checks value in the same database
01:35 womble i.e. I'm using the websocket connection to demarcate a "transaction" in my application's terminology
01:43 womble Appears to work fine, please ignore me.
01:49 sivoais joined #mojo
01:51 meshl failed implementing secure login in my Mojo web app, using piggyback ssl on Heroku...
01:52 meshl what I did: my login form posts to the https url, which processes the login and then sets a $user variable in the mojo session, and finally redirects to the http, non-secure url
01:53 meshl I suspect the session is the culprit, as it does not "pass" through http/https protocol changes...
01:53 meshl anyone has any tip?
01:55 meshl how do I create a "session" that's not affected by protocol changes in Mojolicious?
02:20 meshl found an old log that may help me better understand Mojo's concepts: http://irclog.perlgeek.de/mojo/2012-01-02/text
02:31 jberger womble,
02:31 jberger oope
02:32 jberger womble, I can't say that I've ever used the Transaction class on its own
02:32 jberger its easy enough to use the UserAgent for the client side
02:32 jberger that said, if it is working ...
02:37 womble jberger: It's not. with MOJO_WEBSOCKET_DEBUG=1 I see this: "-- Building frame (1, 0, 0, 0, 1)\n-- Small payload (83)" but the message doesn't appear to be received by the server.
02:38 womble as ever, feel like I'm missing something fundamental here
02:38 jberger you really should connect using the UserAgent
02:39 womble I can't see how to send the message, do something else while the websocket is connected, send another message, close the websocket
02:39 womble My biggest difficulty with Mojolicious in general is not being familiar with things like EV/AnyEvent
02:39 womble concepts that is
02:40 jberger you don't need AnyEvent for this (unless there are other considerations)
02:40 jberger do you mean event-based programming?
02:40 meshl hmmm, I am still not getting what mechanism I could use to maitain my session over both http and https connections... someone has some experience with this?
02:41 womble that's right, I didn't mean to imply that I need to use those modules directly
02:41 jberger meshl, I don't sorry
02:42 crab meshl: don't do sessions over http
02:44 crab after login, switch to https.
02:44 meshl crab: I don't have a choice for now. I need to http -> https (piggyback) -> http
02:44 meshl why is it bad in general to do sessions over http?
02:44 crab why even bother with https then? just send the password in the clear, because you're sending session tokens in the clear.
02:44 crab because the session cookie is an authenticator (i.e. equivalent to the password)
02:44 meshl even though they are encoded?
02:45 crab if you sniff the cookie and replay it, it doesn't matter that you can't sniff the password
02:45 meshl I see...
02:47 meshl I guess I'll have to pay another $20 per month for my app then... that's really not cool!
02:47 crab they're encoded, but (a) that's not encryption, just encoding (if you de-base64 them, you'll see that they're just text), and (b) encryption wouldn't help here because the client doesn't need to encrypt/decrypt it. to the client, it's just a blob that it sends to the server, and (c) because it's a _signed_ token, the server just verifies the signature and accepts the token
02:48 crab meshl: if you don't care about security, then i guess you could dig around and turn off secure => 1 on session cookies. i suspect that's the problem you're seeing. i don't remember how to do that, and i *really* recommend against it.
02:51 meshl I am less ignorant about cookies now, thanks. But I do care about security, that's my issue... do you know any way of having a "secure session-like" mechanism over http?
02:51 crab no.
02:52 meshl thanks
02:53 crab it's a bit... unfortunate, because of the extra costs (but... $20/month? really?). but them's the facts. firesheep made it hard to pretend otherwise.
02:56 meshl on Heroku that's the cost, unless I use their free "piggyback" option, which sucks as it cannot be used on custom domains
03:15 russum joined #mojo
03:18 russum left #mojo
04:17 preflex_ joined #mojo
04:22 jberger womble, this is the best I could do
04:22 jberger https://gist.github.com/jberger/7867359
04:24 jberger sri: it seems that if you block right after $ws->send's drain callback, the message doesn't really get away
04:24 womble jberger: wow, thank you. RE: "not sure its the best idea" - you saw what happened when I made enquiries about using Redis to do this. I angered the Gods.
04:24 keedi joined #mojo
04:24 * womble reads
04:25 jberger :-)
04:25 * jberger has to head to bed tho
04:25 jberger talk to you more about it later
04:25 womble ta, goodnight.
04:26 jberger np
04:26 jberger o/
04:54 * womble reads again... and again.... and again
04:56 ka2u joined #mojo
05:05 crab what are you reading?
05:06 womble jberger's gist
05:07 womble I'm annotating a local copy with ascii art... in vain
05:08 womble finding all the callbacks tough to understand
05:20 laouji joined #mojo
05:22 crab well, it's more or less a straight-through read
05:23 crab Mojo::IOLoop->delay steps between the subs as written
05:28 laouji_ joined #mojo
05:31 womble do you know why line 15 uses $delay->begin whereas 20, 26, 31 use $delay->begin(0)? Each step after the first seems to receive ($delay, $tx)
05:32 womble I guess step 1 creates the $tx, I'm just struggling to see how
05:36 crab $ua->websocket does that
05:36 crab the websocket callback receives the $tx as an argument, etc.
05:38 crab ->begin returns a sub (coderef)
05:39 womble So in the example at the bottom of 'begin' doc - http://search.cpan.org/~sri/Mojolicious-4.58/lib/Mojo/IOLoop/Delay.pm#begin - if '$delay->begin(0)' was '$delay->begin' you could do 'my ($delay, $loop, $err, $stream) = $delay->wait;'
05:39 womble as opposed to the example of 'my ($loop, $err, $stream) = $delay->wait;'
05:41 crab yeah
05:41 womble I guess that's what's confusing me, the doco at link just posted says 'my $without_first_arg = $delay->begin' but in the gist, '$delay->begin' in first step *does* pass $tx to second step
05:42 womble hmmm first_arg == $delay, nevermind
05:43 womble thanks for hand holding
05:44 crab yes, first arg is delay
05:44 crab $delay
05:44 womble my god I'm going backwards and forwards here. why is $delay passed to step 2 if step 1 uses '$delay->begin' as opposed to '$delay->begin(0)'?
05:45 crab i was just going to say that. isn't that wrong?
05:45 womble Maybe, I could always just run it
05:46 crab istm it should be my ($ua, $tx) = @_ in that step
05:46 laouji joined #mojo
05:48 asarch joined #mojo
05:49 womble well unsurprisingly it works as is
05:51 webart joined #mojo
05:53 womble works if I change step 1 to begin(0) and add $ua in between $delay and $tx on line 18
05:54 womble straight swap you suggested doesn't work though, can't use $delay in that case
05:56 crab are you predicting, or did you try it?
05:58 crab i must be missing something in the code.
05:58 womble i tried it
06:00 Lee joined #mojo
06:01 crab so it always gets $delay, but gets $ua only if ->begin is changed to ->begin(0)?
06:01 womble yep
06:02 crab ah, ok. now i understand it.
06:03 crab _step does $self->$cb() not just $cb->() so it'll always get $delay
06:03 womble if I insert this at 18 "say Dumper(join(', ',map { ref $_ } @_));" I get "$VAR1 = 'Mojo::IOLoop::Delay, Mojo::Transaction::WebSocket';" with '$delay->begin'
06:03 crab yep.
06:03 KindTwo joined #mojo
06:04 crab so if you say ->begin, then from whatever arguments the callback gets, the first is discarded. if you say ->begin(0), it'snot.
06:05 crab but inside the callback, $delay is always first, and the remaining ones after keeping or discarding the first follow
06:05 crab ok.
06:07 womble ah... lightbulb moment. thanks
06:10 crab do you understand how to follow the flow of the code now?
06:10 crab do you understand, for example, why you don't just pass ->begin(0) into Mojo::IOLoop->timer() in the third step?
06:12 womble Still shaky, guess it's because you need the $tx in there, which you would lose with ->begin(0)
06:12 womble I haven't used timers either
06:12 crab yep. $ua->websocket() passes a $tx to its callback, and a timer won't, so you have to make a shim to put it in again.
06:12 crab so it sounds like you've got the idea.
06:18 beyondcreed joined #mojo
06:19 Vandal joined #mojo
06:31 womble crab: do you know why jberger used the variable name '$end'? I found that confusing as opposed to '$delay->begin(0)->($tx)'
06:32 crab $delay->begin(0)->($tx) wouldn't work
06:32 crab that calls the result of ->begin(0) immediately, not when the timer wants to
06:33 womble It looks like it's working to me, output is: "Got: About to do stuff", <2 second pause>, "Got: Done"
06:34 womble I think I need to read up about closures
06:35 crab womble: that's from the sleep 3 i suspect
06:35 womble yes, s/2/3
06:35 crab so you're subverting the timer
06:36 womble I don't understand.. how is the behaviour I described not what is intended by the code?
06:37 womble It's supposed to be serial not parallel
06:39 crab you're subverting the timer. whatever the timer is supposed to do (which seems like some sort of dirty hack) isn't getting done if you write the code the way you said.
06:39 crab what the code intends is for ->begin(0) to be called, and then 0.25s later the callback to be executed with $tx as an argument
06:40 womble I've polluted the original code with all sorts of links to doco and ascii arrows so it's hard to pastebin, but...
06:40 womble If I substitute '$end' with '$delay->begin(0)', the behaviour is expected
06:40 crab you're losing the 0.25s delay. whether that does or does not have a negative effect on the remaining code i can't say.
06:41 crab if you substitude the $end with $delay->begin(0), you're doing it wrong. why even have that step then?
06:41 crab you might as well delete the whole thing, it should still work as long as the previous step passes $tx along.
06:41 womble If I comment out the hack step with the .25 delay in addition to that change, the behaviour is as expected without the hack - drain doesn't happen stray away and I get: <3 second pause>, 'Got: About to do stuff', 'Got: Done'
06:42 womble With .25 delay step and swapping out $end, behaviour is expected
06:42 womble Sorry, I'm not trying to be a smart arse, just telling you what I observe
06:42 crab well, i dunno.
06:43 womble Are you saying the reason $end exists is related to closures? If this is a stupid question, again I apologise. I'm trying to understand.
06:43 crab but i can tell you that $delay->begin(0)->($tx) is incontrovertibly not the same as $end = $delay->begin(0) and passing sub { $end->($tx) } as a callback to a timer.
06:44 womble I was doing Dumper($end) and seeing it's a coderef, so I thought it would be interchangeable
06:44 crab well, it's 'related' to closures, i suppose, but that's not the *point*. it's using a closure as a tool, but the point is that the callback should be called when decided by the timer, not immediately.
06:45 crab sub { $end->($tx) } is a sub that calls $end->($tx) *when it's called*.
06:45 crab and $end->($tx) is (thanks to M::I::Delay) a sub that goes on to the next step.
06:46 crab but $delay->begin(0)->($tx) is calling the step-to-next callback immediately.
06:46 womble Ah, I was being a dingbat. The sleep 3 is not anything to do with a timer. I'll experiment by increase 0.25 to say, 5. Are you saying I won't see a wait for 5 and that the .25 is facilitating the WS send but not actually causing a delay?
06:46 womble s/delay/timer to be called
06:46 crab well, i can't say without looking at your actual code (which i don't actually want to do)
06:47 womble the code is exactly the same as the gist with references to $end replaced with $delay->begin(0)
06:47 womble "honest guv"
06:48 crab that can't be literally right, because it means you have my $$delay->begin(0) = $delay->begin(0); ;-)
06:49 crab how about pasting just that one step?
06:50 womble ok... I was cleaning up my crap out of the original but since you asked
06:52 womble http://pastie.org/8538924
06:52 womble step 3 and 4
06:56 crab that's just wrong
06:56 purl Fire and brimstone coming down from the skies. Rivers and seas boiling! Forty years of darkness, earthquakes, volcanos. The dead rising from the grave! Human sacrifice, dogs and cats living together... mass hysteria!
06:57 crab http://pastie.org/8538934
06:57 womble It seems to work http://pastie.org/8538933
06:58 crab it's wrong. if any step fails to increment the event counter, the chain of steps is broken.
06:59 crab see http://pastie.org/8538934 where i compare exactly the same two steps with just that one change
06:59 womble Can you try http://pastie.org/8538933?
07:00 womble Running yours I see the same
07:00 womble as what you see, that is
07:03 womble I have to go for a few hours, I'll check the logs. Thanks again.
07:04 crab when i run yours, it looks like it works.
07:04 crab i can't explain that. but it's wrong. ;-)
07:05 crab well, since you're leaving, i'll think about it later. i'm actually supposed to be doing some work.
07:06 themage joined #mojo
07:18 basiliscos joined #mojo
07:19 trone joined #mojo
07:26 KindOne joined #mojo
07:46 fhelmber_ joined #mojo
07:48 fhelmber_ joined #mojo
07:51 dod joined #mojo
07:53 dod joined #mojo
07:55 highflying joined #mojo
08:04 ka2u joined #mojo
08:19 rem_lex joined #mojo
08:22 dod joined #mojo
08:42 fhelmber_ joined #mojo
08:42 nicolaas joined #mojo
09:06 nicolaas joined #mojo
09:22 denis_boyun joined #mojo
09:23 ryozi joined #mojo
09:39 maxhq joined #mojo
10:06 bayashi joined #mojo
10:08 marty joined #mojo
10:16 dsteinbrunner_ joined #mojo
10:16 mattp joined #mojo
10:19 stig joined #mojo
10:29 howitdo joined #mojo
10:36 mire__ joined #mojo
11:11 denis_boyun joined #mojo
11:35 laouji joined #mojo
11:35 hrupp joined #mojo
12:08 basiliscos joined #mojo
12:24 laouji joined #mojo
12:36 womble joined #mojo
13:10 maxhq joined #mojo
13:23 nicomen when using use Mojo::Base is there some specific way to override construction?
13:25 basiliscos Hello. http://bpaste.net/show/156950/  . How can I specify the content_type of uploaded file. I can't found that in documentation... please help. Thanks!
13:32 denisboyun joined #mojo
13:41 asarch joined #mojo
13:41 fhelmbe__ joined #mojo
13:48 mire__ joined #mojo
13:52 hummeleBop joined #mojo
14:10 gryphon joined #mojo
14:22 bluescreen__ joined #mojo
14:31 marcus_ joined #mojo
14:31 wsri joined #mojo
14:39 Lucas1 joined #mojo
14:39 btyler joined #mojo
14:54 jberger joined #mojo
14:55 jberger crab, womble: looks like you guys had fun
14:56 jberger womble, crab is right, each begin needs to be called in the main body of the step
14:57 jberger Not in a callback
14:57 jberger I have a suspicion about why yours works, and it's really fragile
14:58 crab explain?
14:58 jberger And the 0 does prevent the end callback from stripping the invocant
14:58 jberger o/
14:59 jberger The step will detect if no begin was called
14:59 jberger And wrap the step in a timer 0
15:00 jberger My guess is since nothing else is in the system the callback is the next tick and so it works
15:01 jberger I can't test now, but if I could I would put a frequent recurring into the outer scope
15:01 jberger Say 0.1
15:01 jberger doesn't have to actually do much
15:02 jberger But my guess is that it's presence would break his example
15:06 jberger purl botsnack
15:06 purl thanks jberger :)
15:08 jberger crab I don't suppose any of that makes sense?
15:11 HtbaaPi if I do a url_for('route')->scheme('https')->to_abs the generated url is invalid. It produces https:/localhost:3000/route
15:11 HtbaaPi should be https:// (double slash)
15:11 HtbaaPi also happens with scheme('http')
15:12 HtbaaPi which results in http:/localhost....
15:15 womble joined #mojo
15:18 HtbaaPi ah, ->to_abs->scheme('https') fixes this
15:20 HtbaaPi that order does feel a bit strange though
15:20 sjn joined #mojo
15:27 sh4 joined #mojo
15:33 meshl joined #mojo
15:39 d4rkie joined #mojo
15:40 abra joined #mojo
15:48 Mad_Dud- joined #mojo
16:07 ashleydev joined #mojo
16:09 ashleydev joined #mojo
16:19 bobkare joined #mojo
16:36 dvinciguerra joined #mojo
17:03 human39_ joined #mojo
17:03 fhelmber_ joined #mojo
17:10 denisboyun joined #mojo
17:16 Lee joined #mojo
17:17 hummeleBop joined #mojo
17:19 sh4|2 joined #mojo
17:21 beyondcreed joined #mojo
17:21 sh4|2 joined #mojo
17:27 sh4|2 joined #mojo
17:29 sh4 joined #mojo
17:36 Lee joined #mojo
17:41 Lee_ joined #mojo
17:44 sh4 joined #mojo
17:52 sh4 joined #mojo
18:00 Lee joined #mojo
18:19 stokachu joined #mojo
18:19 lestrrat joined #mojo
18:19 Zmodem joined #mojo
18:19 suy_ joined #mojo
18:19 omega joined #mojo
18:19 DaTa joined #mojo
18:19 moritz joined #mojo
18:19 bd joined #mojo
18:19 akiym joined #mojo
18:19 cottoo joined #mojo
18:19 elvis joined #mojo
18:19 kwa joined #mojo
18:19 cfedde joined #mojo
18:19 bowtie_ joined #mojo
18:19 jzawodn joined #mojo
18:19 bjoernfan joined #mojo
18:19 yko joined #mojo
18:19 KindOne joined #mojo
18:19 howitdo joined #mojo
18:19 marcus joined #mojo
18:19 btyler joined #mojo
18:19 Mad_Dud- joined #mojo
18:19 fhelmber_ joined #mojo
18:19 Lee joined #mojo
18:19 purl joined #mojo
18:19 mtths joined #mojo
18:19 stephan48 joined #mojo
18:19 augensalat joined #mojo
18:19 Gedge joined #mojo
18:19 sycobuny1 joined #mojo
18:19 crab joined #mojo
18:19 dabudabu joined #mojo
18:19 avenj joined #mojo
18:19 groundnuty joined #mojo
18:19 mikegrb joined #mojo
18:19 DaniBunn1 joined #mojo
18:19 rafl joined #mojo
18:19 caeles joined #mojo
18:19 __mkrull joined #mojo
18:19 Mikey joined #mojo
18:19 sawtooth joined #mojo
18:19 wfaulk joined #mojo
18:19 Jonis joined #mojo
18:19 jan joined #mojo
18:19 ivan joined #mojo
18:19 tardisx joined #mojo
18:19 gabiruh joined #mojo
18:19 jmmills_ joined #mojo
18:19 Andreas joined #mojo
18:19 HtbaaPi joined #mojo
18:19 bc547 joined #mojo
18:19 garu joined #mojo
18:19 jwang joined #mojo
18:19 al joined #mojo
18:19 xtetsuji joined #mojo
18:19 jovial_chat joined #mojo
18:19 batman joined #mojo
18:19 zivester joined #mojo
18:19 hesperaux joined #mojo
18:19 Bender joined #mojo
18:19 robinsmidsrod joined #mojo
18:19 alnewkirk joined #mojo
18:19 bpmedley joined #mojo
18:19 plu joined #mojo
18:19 mgrimes joined #mojo
18:19 jamesw joined #mojo
18:19 davido joined #mojo
18:19 espent joined #mojo
18:19 dpetrov_ joined #mojo
18:19 chansen joined #mojo
18:19 d^_^b joined #mojo
18:19 odc joined #mojo
18:19 ascent joined #mojo
18:19 cosimo joined #mojo
18:19 tianon joined #mojo
18:19 Kundun joined #mojo
18:19 inokenty joined #mojo
18:19 Adura joined #mojo
18:19 sivoais joined #mojo
18:19 preflex joined #mojo
18:19 Vandal joined #mojo
18:19 trone joined #mojo
18:19 highflying joined #mojo
18:19 rem_lex joined #mojo
18:19 bayashi joined #mojo
18:19 mattp joined #mojo
18:19 maxhq joined #mojo
18:19 gryphon joined #mojo
18:19 jberger joined #mojo
18:19 sjn joined #mojo
18:19 abra joined #mojo
18:19 bobkare joined #mojo
18:19 dvinciguerra joined #mojo
18:19 human39_ joined #mojo
18:19 denisboyun joined #mojo
18:19 hummeleBop joined #mojo
18:19 beyondcreed joined #mojo
18:19 sh4 joined #mojo
18:19 tl joined #mojo
18:21 stokachu joined #mojo
18:21 lestrrat joined #mojo
18:21 Zmodem joined #mojo
18:21 suy_ joined #mojo
18:21 omega joined #mojo
18:21 DaTa joined #mojo
18:21 moritz joined #mojo
18:21 bd joined #mojo
18:21 akiym joined #mojo
18:21 cottoo joined #mojo
18:21 elvis joined #mojo
18:21 kwa joined #mojo
18:21 cfedde joined #mojo
18:21 bowtie_ joined #mojo
18:21 jzawodn joined #mojo
18:21 bjoernfan joined #mojo
18:21 yko joined #mojo
18:21 KindOne joined #mojo
18:21 howitdo joined #mojo
18:21 marcus joined #mojo
18:21 btyler joined #mojo
18:21 Mad_Dud- joined #mojo
18:21 fhelmber_ joined #mojo
18:21 Lee joined #mojo
18:21 sh4 joined #mojo
18:21 beyondcreed joined #mojo
18:21 hummeleBop joined #mojo
18:21 denisboyun joined #mojo
18:21 human39_ joined #mojo
18:21 dvinciguerra joined #mojo
18:21 bobkare joined #mojo
18:21 abra joined #mojo
18:21 sjn joined #mojo
18:21 jberger joined #mojo
18:21 gryphon joined #mojo
18:21 maxhq joined #mojo
18:21 mattp joined #mojo
18:21 bayashi joined #mojo
18:21 rem_lex joined #mojo
18:21 highflying joined #mojo
18:21 trone joined #mojo
18:21 Vandal joined #mojo
18:21 preflex joined #mojo
18:21 sivoais joined #mojo
18:21 Adura joined #mojo
18:21 inokenty joined #mojo
18:21 Kundun joined #mojo
18:21 tianon joined #mojo
18:21 cosimo joined #mojo
18:21 ascent joined #mojo
18:21 odc joined #mojo
18:21 d^_^b joined #mojo
18:21 chansen joined #mojo
18:21 dpetrov_ joined #mojo
18:21 espent joined #mojo
18:21 davido joined #mojo
18:21 jamesw joined #mojo
18:21 mgrimes joined #mojo
18:21 plu joined #mojo
18:21 bpmedley joined #mojo
18:21 alnewkirk joined #mojo
18:21 robinsmidsrod joined #mojo
18:21 Bender joined #mojo
18:21 hesperaux joined #mojo
18:21 zivester joined #mojo
18:21 batman joined #mojo
18:21 jovial_chat joined #mojo
18:21 xtetsuji joined #mojo
18:21 al joined #mojo
18:21 jwang joined #mojo
18:21 garu joined #mojo
18:21 bc547 joined #mojo
18:21 HtbaaPi joined #mojo
18:21 Andreas joined #mojo
18:21 jmmills_ joined #mojo
18:21 gabiruh joined #mojo
18:21 tardisx joined #mojo
18:21 ivan joined #mojo
18:21 jan joined #mojo
18:21 Jonis joined #mojo
18:21 wfaulk joined #mojo
18:21 sawtooth joined #mojo
18:21 Mikey joined #mojo
18:21 __mkrull joined #mojo
18:21 caeles joined #mojo
18:21 rafl joined #mojo
18:21 DaniBunn1 joined #mojo
18:21 mikegrb joined #mojo
18:21 groundnuty joined #mojo
18:21 avenj joined #mojo
18:21 dabudabu joined #mojo
18:21 crab joined #mojo
18:21 sycobuny1 joined #mojo
18:21 Gedge joined #mojo
18:21 augensalat joined #mojo
18:21 stephan48 joined #mojo
18:21 mtths joined #mojo
18:21 purl joined #mojo
18:22 basiliscos joined #mojo
18:24 tholen42 joined #mojo
18:54 zackiv31 joined #mojo
19:03 abra_ joined #mojo
19:34 mire__ joined #mojo
20:49 denis_boyun__ joined #mojo
20:50 lukep joined #mojo
21:26 meshl joined #mojo
22:37 marcus HtbaaPi: Kinda sounds like a bug, yes.
23:01 cooper joined #mojo
23:16 HtbaaPi ah I thought so too :-)
23:24 basiliscos joined #mojo

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