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

IRC log for #mojo, 2015-07-07

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

All times shown according to UTC.

Time Nick Message
00:02 ajr_ joined #mojo
00:03 ajr_ joined #mojo
00:04 Kogurr joined #mojo
00:13 sri lluad: as in something that validates json ;p
00:14 lluad :)
00:14 sri thing is, it has to fit into the current validation framework though
00:14 sri that was the whole argument behind keeping it generic
00:14 lluad JSON schemas are the only things I've stumbled across that do that in a generic (rather than "write specific code to do it") way.
00:15 lluad Though they're not the simplest things to work with.
00:15 sri there's also model based validation for json input
00:15 sri but that's not an option for us
00:20 sri so far what i've seen is json schema (very ugly), joi.js (pretty but very different from what we do now), and model based validation (we have no model)
00:21 lluad There are a couple of languages (orderly is one) that are equivalent to (and compile to) json schema, but much more readable.
00:22 sri django, rails and phoenix seem to prefer the model based solution
00:22 * sri hates the idea of config files for validation
00:23 lluad Joi looks like an interesting way of doing it.
00:23 sri i like joi too, but we've made a lot of decisions that are not not very compatible with it
00:24 ajr_ joined #mojo
00:29 sri honestly, i think json validation for mojolicious core is more work than anyone would be willing to put into
00:30 sri you'd have to rework all validation internals, and add selectors like ->required('foo[]') for arrays and the like
00:31 sri so, generic extensions are mostly a deadend
00:31 sri specialization with uploads and the like is totally realistic however
00:31 sri patch already exists
00:31 sri which is why i will likely choose that path
00:32 bpmedley What could be done for json is to stringify the result and just do a "eq" match for all possible values.
00:32 sri and core team, there are no +1/-1 votes here, just different paths to take
00:33 sri bpmedley: what?
00:33 bpmedley Bad joke, sorry.
00:33 bpmedley was kicked by sri: bpmedley
00:33 sri :S
00:49 sri jberger: 65 people got shot in chicago just last weekend, get out of there!
00:58 sri laravel also has validation for data structures it seems http://laravel.com/docs/5.1/validation
00:58 sri 'author.name' => 'required',
00:59 sri multiple checks look a bit odd though
00:59 sri 'title' => 'required|unqiue:posts|max:255',
01:00 mst sri: no need to kick people
01:00 mst sri: you're turning into me when I was 21 and angry
01:00 bpmedley joined #mojo
01:00 sri hahaha... 21... i wish
01:00 sri :/
01:01 mst that was the last time I'd've kicked somebody for something that stupid
01:01 hshong joined #mojo
01:02 sri normally i'd set him on fire... but my level of frustration is a bit higher than usual with this validation garbage
01:02 bpmedley Sorry about that everyone and sri.
01:02 mst fair.
01:03 sri bpmedley: please don't hesitate from making silly jokes in the future, that was just my frustration
01:03 sri although, that joke was bad
01:03 bpmedley All my jokes are bad, sadly.
01:03 sri you owe me a laugh
01:07 bpmedley https://www.youtube.com/watch?v=Vhh_GeBPOhs <-- Best I can do on short notice.
01:21 absolut_todd joined #mojo
01:31 absolut_todd joined #mojo
02:02 kaare joined #mojo
02:08 Phil21 is there a Mojo-specific place for posting some contract work to?
02:08 Phil21 have a smallish ($2k and a part-time week or so) job I'd like to find someone who knows mojo for
02:09 bpmedley Phil21: jobs.perl.org?
02:09 purl jobs.perl.org is getting busier. and rejected posts are getting corrected. cool.
02:09 Phil21 bpmedley: yeah, I've used that before with decent luck
02:09 Phil21 but would rather grab a dev here who might want to pick up something on the side :)
02:20 noganex_ joined #mojo
02:23 absolut_todd joined #mojo
02:41 mattastrophe joined #mojo
02:42 sri bpmedley: almost laughed https://i.imgur.com/bUNXwFD.jpg
02:59 Kundun joined #mojo
03:07 absolut_todd joined #mojo
03:13 cpan_mojo Statocles-0.051 by PREACTION https://metacpan.org/release/PREACTION/Statocles-0.051
03:23 absolut_todd joined #mojo
03:27 absolut_todd joined #mojo
03:30 absolut_todd joined #mojo
03:47 absolut_todd joined #mojo
03:50 absolut_todd joined #mojo
03:52 absolut_todd joined #mojo
03:54 sri would have been nice if json validation was as easy as this https://gist.github.com/anonymous/97f7d055a6c450079069
03:55 sri ->required('/foo/bar')->like(qr/\d+/)
03:55 sri but name management is actually rather tricky
03:56 sri for errors, and copying into the output data structure
03:57 absolut_todd joined #mojo
03:57 sri i guess Mojo::JSON::Pointer would need something like JSON Patch support ;p
03:58 sri errors would still be weird though, since they'd be tied to the pointer
03:59 sri i think someone actually proposed a ->set() method for Mojo::JSON::Pointer once
03:59 sri that would work
03:59 sri if you're still out there, this is your core use case!
04:00 sri ->set('/foo/bar', 'some value')
04:00 absolut_todd joined #mojo
04:13 absolut_todd joined #mojo
04:20 absolut_todd joined #mojo
04:23 davido__ joined #mojo
04:27 absolut_todd joined #mojo
04:29 davido___ joined #mojo
04:36 absolut_todd joined #mojo
04:39 absolut_todd joined #mojo
04:57 avkhozov joined #mojo
04:59 absolut_todd joined #mojo
05:11 avkhozov left #mojo
05:15 absolut_todd joined #mojo
05:29 absolut_todd joined #mojo
05:44 batman swagger2 = json validation, using the official json schema 4 draft + sugar on top.
05:45 batman sri: what do you think about this set() method? https://github.com/jhthorsen/mandel/blob/master/lib/Mandel/Document.pm#L384
06:16 melo joined #mojo
06:17 hshong joined #mojo
06:25 Caldrin left #mojo
06:37 marcusr sri: I think I lean towards your view on validation
06:40 marcusr I can see the argument for it being generic tho. #itshard
06:49 dod joined #mojo
06:54 dod joined #mojo
07:00 trone joined #mojo
07:11 Vandal joined #mojo
07:15 AndrewIsh joined #mojo
07:37 ans joined #mojo
07:49 cpan_mojo Swagger2-0.38 by JHTHORSEN https://metacpan.org/release/JHTHORSEN/Swagger2-0.38
08:08 ivan_ joined #mojo
08:10 dod joined #mojo
08:44 absolut_todd joined #mojo
08:50 anielsen joined #mojo
08:57 anielsen Hi! I need to handle (redirect) an old URL containing // but mojo seems to ignore double slashes when setting up the route
08:57 anielsen get '/foo//bar' => sub { shift->render(text => "Hello world"); };
08:57 anielsen perl testapp.pm routes /foo/bar  GET  foobar
08:58 anielsen I get a route handling /foo/bar but not /foo//bar
09:10 jontaylor joined #mojo
09:17 anielsen Anyone knows how to handle this?
09:25 CandyAngel anielsen: I think you need to use wildcard placeholders, to capture the double //
09:25 bin_005 joined #mojo
09:27 CandyAngel get '/foo/*bar' => sub { $_[0]->render(text=>$_[0]->param('bar');};
09:27 CandyAngel ?
09:28 CandyAngel or in the worst case, you could catch it in a fallback route
09:42 hshong joined #mojo
09:45 anielsen I will test it CandyAngel :-)
10:09 dotan joined #mojo
10:16 bpmedley anielsen: https://bitbucket.org/snippets/bpmedley/A4R9B <-- What about something like this, as an alternative?
10:54 icjs joined #mojo
11:12 dod joined #mojo
11:44 eitz joined #mojo
11:54 pete joined #mojo
11:54 pete What's the least hassle way to get / served as public/index.html?
11:54 pete I have /index.html being served correctly
11:55 pete I was going to set up a redirect route, but I don't see a redirect in Mojolicious::Routes
11:58 coolo get('/' => sub { my $c = shift; $c->redirect_to('/index.html') });
11:58 pete how does that translate in to an OO call?
11:59 coolo s,get,$self->routes->get,
11:59 pete simples ,thanks
11:59 coolo (depends on your context, but you should get the idea)
12:04 neilhwatson joined #mojo
12:11 batman coolo: that's not quite the same...
12:11 batman pete: i think you want get('/' => sub { my $c = shift; $c->app->static->serve($c, 'index.html') });
12:11 coolo batman: but now he knows how to redirect too ;)
12:11 batman hehe. true ;)
12:13 pete left #mojo
12:14 batman oh. too late :/
12:17 coolo batman: we should send him a satisfactionary survey :)
12:17 batman or a better irc client
12:28 Dandre joined #mojo
12:33 ajr_ joined #mojo
12:35 Dandre left #mojo
12:36 Dandre joined #mojo
12:46 odc speaking of irc, how do you make Mojo::IRC connect to a server over SSL batman ?
12:46 odc i tried the tls option but it does nothing
12:47 odc i have no error message
12:47 batman odc: works like a charm in convos: https://github.com/Nordaaker/convos/blob/batcode/lib/Convos/Core/Connection/IRC.pm#L89
12:48 odc thx, i'm gonna look at that
12:49 batman odc: $irc->tls({}); # that's it
12:49 batman you need IO::Socket::SSL as well, but either way you should get $err in connect()...
12:49 dod joined #mojo
12:51 batman odc: $irc->tls({})->server("chat.freenode.net:6697")->connect(sub { my ($irc, $err) = @_; warn $err // 'Works like a charm!' });
12:52 odc batman, i can see in the server logs that it connects, but it does not join the room i selected (which works without tls)
12:52 batman ok
12:54 jontaylor joined #mojo
12:56 odc batman, sorry my fault! it seems i wasn't displaying the log messages
12:56 odc >_>
13:00 ashimema batman.. as you were singing the praises of SchemaValidator earlier
13:00 ashimema have you happened to use it with the $ref keyword at all?
13:01 batman ashimema: do you mean Swagger2::SchemaValidator?
13:01 ashimema I'm pretty sure (form testing and reading the code) that i currently ignore the word.. but worse it passes validation without actually validating it it seems
13:01 ashimema yes
13:02 batman ashimema: right. yeah. all the time (i wrote it)
13:02 gryphon joined #mojo
13:03 batman ashimema: the example blog application use it as well: https://github.com/jhthorsen/swagger2/blob/master/t/blog/api.json#L19
13:04 ashimema oops.. thought you were obviose from your nick last time we spoke ;)
13:04 batman sorry. i don't follow.
13:04 ashimema one tic. phone
13:07 ashimema sorry about that.. I'm not very good at multi-tasking
13:07 ashimema right.. I thought your irc nick was jht... so didn't recognise you as one adn the same ;)
13:07 ashimema and.. the $ref keyword..
13:07 ashimema perhaps I'm using it wrong..
13:08 ashimema it doesn't feel like it followed it to me..
13:08 batman :)
13:08 ashimema gonna write another test script to double check ;)
13:08 batman just look at the example
13:11 batman s/just/please/
13:14 ashimema the example looks like I've got ti right..
13:15 ashimema but I'm sure this request should be failing validation..
13:15 ashimema I'm going to mock a smaller one.. see if I can replicate it in a more controlled fashion
13:16 genio joined #mojo
13:20 batman sorry. can't help you without code/spec :(
13:21 ashimema doing some more testing here before putting it in a gist ;)
13:30 mattastrophe1 joined #mojo
13:37 ajr_ joined #mojo
13:41 ashimema batman: https://gist.github.com/mrenvoize/e8a5574429cc7f7211b5
13:42 ashimema tiny test script, accompanied by a pretty basic spec file and the accomanpying json example
13:42 ashimema for me.. that yeilds error without any details of what the errors are
13:42 ashimema would apreciate your thoughts
13:44 batman ashimema: ah! sorry. schemavalidator doesn't know about $ref.
13:44 batman swagger2.pm "flattes" the $ref before passing it on to schemavalidator.
13:44 ashimema aha.. there would be my issue ;)
13:44 ashimema I see.. so it's functionality outside of your validator..
13:45 batman i would take a patch for that, but my head was spinning while trying to "de-ref" without going into an infinite loop :(
13:45 genio and you should probably use Path::Tiny or something instead of File::Slurp
13:45 ashimema it was a quick and dirty test script genio..
13:45 ashimema but your right really of course ;)
13:46 nic joined #mojo
13:46 batman ashimema: i really want to rename Swagger2.pm as well... it doesn't really care about swagger. it's just a json validator with a swagger 2.0 as default schema
13:46 sri can you open a #swagger2?
13:46 sri this is too off topic for me now
13:47 ashimema sorry sri.. didn't mean to go too off topic
13:47 * batman created #swagger
13:47 batman sri: i didn't see any issue when nothing else was going on. sorry about that.
13:47 nic sri: Is there advantage/disadvantage in using a leading / in route patterns, or is it just down to readability?
13:47 nic eg I currently have '' for '/' and 'abc' for '/abc'
13:48 nic but I'm thinking of changing back to improve readability
13:48 sri does anything in the docs not use a leading slash?
13:49 nic I got rid of the leading slashes a long time (years?) ago thinking you were recommending that, but I see all your examples use leading slashes, so I must have misunderstood
14:09 nic hmm, I guess I saw "leading slashes are ignored"
14:11 nic I think having the leading slash iff it's an abs path is the most readable balance
14:19 sri if it's not in the docs it's not supported
14:20 sri looks like #818 is dead already https://github.com/kraih/mojo/issues/818
14:24 stephen joined #mojo
14:36 good_news_everyon joined #mojo
14:36 good_news_everyon [mojo] kraih pushed 1 new commit to master: http://git.io/vq0rV
14:36 good_news_everyon mojo/master fb90277 Sebastian Riedel: mention that issues get closed and reopened quickly
14:36 good_news_everyon left #mojo
14:36 sri does that sound good?
14:36 mst does what sound good?
14:37 genio That blurb sounds good to me, sri
14:37 sri the commit of course
14:38 batman sri: sounds good to me
14:38 batman it's very distracting having "inactive" issues open
14:38 mst oh, right, you're relying on me seeing the github spam bot
14:38 mst and didn't link the commit to the issue
14:38 * mst slow claps
14:47 batman "v"
14:47 batman oops
14:47 batman "spam bot" ?
14:49 sri like who would want to see mojolicious commits announced in a channel about mojolicious...
14:49 batman beats me!
14:50 batman :)
14:50 pink_mist seems completely off topic
14:52 wingfold joined #mojo
14:54 CandyAngel It's just rude, really. The topic clearly says "Cheers", so we are discussing 1980's sitcoms.. right?
14:56 pink_mist well since I came across this today, I guess it's topical to share it: http://www.cracked.com/article_22536_6-tv-spin-off-story-lines-that-ruined-originals.html
14:56 meredith i can see why one would ignore it, esp if following commits somewhere else.
14:58 Grinnz_ given how often sri uses commits to respond to questions, that seems unwise
14:59 lluad joined #mojo
15:10 anielsen Thanks bpmedley and CandyAngel. I ended up using get '/foo/*foo' => [ foo => [qw(/bar)] ] => sub { shift->render(text => "Hello world"); };
15:15 Kogurr joined #mojo
15:19 sri that's creative
15:20 mst it's the join-multiline-spew-part thing that drives me nuts; if it managed to just announce the commit it'd be fine
15:20 mst I'll see if I can adjust my ignores and triggers to make it appear to do that ;)
15:27 sri argh
15:27 * sri accidentally killed his perlbrew :S
15:27 cpan_mojo Test-Clustericious-Cluster-0.21 by PLICEASE https://metacpan.org/release/PLICEASE/Test-Clustericious-Cluster-0.21
15:28 mst sri: ... I am reminded of a quote - http://www.trout.me.uk/quotes.txt and Ctrl-F for usr/bin
15:28 mst (it's four lines so pasting seemed a bit much)
15:29 Grinnz_ hah
15:29 Grinnz_ bugs that erase their own evidence, that's pro
15:30 mst to quote Mickens' The Night Watch: I HAVE NO TOOLS BECAUSE I'VE DESTROYED MY TOOLS WITH MY TOOLS
15:31 sri lol
15:31 mst oddly, that's how vi development ended. bill joy introduced a bug, which caused the dev version to eat its own source code, then realised he didn't have a recent backup
15:32 mst Grinnz_: and two quotes up is the origin of the chainsaw thing
15:32 mst egads. that was in the days DBIx::Class was still using NEXT.pm before quicksilver and I optimised the crap out of Class::C3
15:38 hummeleBop joined #mojo
15:45 ajr_ joined #mojo
16:16 Trelane So, we have a problem with mojo enabling warnings we don't expect to be enabled.  In particular, it's re-enabling experimental warnings
16:16 Trelane https://gist.github.com/2shortplanks/9f423720ce87f6bf1ad7
16:17 Grinnz_ https://metacpan.org/pod/Mojo::Base
16:17 Grinnz_ this is expected
16:18 Trelane I understand that it's expected, but is there a way to not do that?
16:20 Grinnz_ use your importer after?
16:20 Trelane I'm aware that Moose has the same problem.  autarch and rafl are looking at addressing that.
16:20 Grinnz_ Mojo::Base and Mojolicious::Lite are importers, that's what they do
16:21 Trelane We'd have to split it into multiple things - it's what turns on all the safety features
16:21 Trelane The real code has stuff for indirect, mutlidimensional, autodie, features, etc, etc.
16:22 Trelane it really does want to go on at the top of the file
16:22 Trelane Is there any reason that Mojolicious should re-enable warnings for experimental features?
16:23 Grinnz_ it enables all warnings, it's not "re" enabling
16:23 Trelane well, practically it is ;-)
16:23 Trelane How would we feel about a patch that had it explictly enable warnings but not touch the experimental warnings?
16:24 Grinnz_ i would disagree, some experimental warnings are important
16:25 Grinnz_ https://metacpan.org/pod/experimental#Ordering-matters sums it up pretty much
16:26 Trelane Yeah, I agree that ordering matters, but what we have is a legitimate situation where we don't want anything futzing with the warnings settings
16:26 Trelane I believe the original intent was to have warnings turned on as a convenience
16:26 Trelane as no-one could possibly want to run without warnings in their code
16:26 Trelane but I think this is a situation where by we really do want to run without said warnings
16:27 Trelane however, we don't want to move our use ourperl lower as we don't want to run any code without those warnings
16:27 Grinnz_ is there a non-hacky way to know if a warnings category has been explicitly disabled?
16:28 Trelane I don't think so.  You could guess if some warnings were on but not others
16:28 Grinnz_ that would be the only way i could see Mojo::Base being updated to do that
16:28 Trelane That doesn't seem like a good idea
16:29 Grinnz_ yeah that doesn't qualify
16:29 Trelane I'd prefer some sort of explict option to Mojo::XXX to say "and don't futz with warnings"
16:30 mst actually, detecting if warning bits have already been set to non-default and therefore avoiding them is doable
16:30 Grinnz_ "non-hacky"? :P
16:30 Trelane mst: oh, go on?
16:30 purl No, you..
16:30 mst basically, you can check to see if WARNING_BITS has been tweaked
16:33 mst though generally I've always believed that you should basically order your use statements exporters first, then object system, then pragmas
16:33 mst (since an object system often tends to be part-a-pragma)
16:34 Trelane In an ideal world we'd check for some variable in our caller's package that indicated that we didn't want to futz with warnings
16:35 Trelane then you could set that in ourperl to indicate that you don't want that done
16:35 Trelane but I realize there's problems with that too
16:35 mst that would be worse than the status quo.
16:35 mst "yes, let's check for a package global because of a lexically scoped pragma, what could possibly go wrong"
16:35 Trelane Basically what we want is an explict "don't mess with warnings" option to any module that does so
16:36 Trelane use Mojo::Base -withoutstrictures;
16:36 Trelane That, at least, doesn't change any existing behavior nor is something that would surprise someone
16:36 mst right. somebody should talk to the Moose team so we can co-ordinate it with them and Moo
16:37 Trelane That would be me, right?
16:38 mst probably. you might also want to poke haarg specifically since he looked at warnings restoration type stuff
16:41 Trelane I'll ask Dave and/or Florian to do that
16:41 jontaylor joined #mojo
16:43 Grinnz_ even if an option was added to Mojo::Base, Mojolicious::Lite currently takes no options: https://metacpan.org/source/DBOOK/Mojolicious-6.12/lib/Mojolicious/Lite.pm#L56
16:43 mst uh, rafl's not even on the IRC channels anymore and is basically uninvolved
16:44 mst dave doesn't really work on this side of stuff
16:44 mst not sure why you wouldn't just talk to us directly
16:48 dod joined #mojo
16:51 Trelane mst: I think you're missing the fact (because I'm not being clear) that I work with both of them, and they're the ones having the issue
16:51 mst aha
16:51 mst yes, I didn't realise that at all.
16:51 mst I assumed you'd grabbed them because they were Moose-ish people
16:51 mst which they are, just not quite the ones I'd pick to look at this
16:51 Trelane and, if it's not clear, both haarg and I no longer work for OmniTI
16:51 mst I had no idea either of you ever had
16:52 mst I was working on 'community dynamics', I had no idea you now worked with some people and used to work with others when I made my suggestions
16:52 mst so, yeah, in that case, getting rafl to talk to haarg would make sense
16:53 Trelane glad we got that sorted out.  I'm going to walk the dog
16:54 mst I hope you can understand how absent those pieces of information I might have been confused :)
17:10 sri hmm
17:10 sri looking some more into laravel validation, they do the ->size() with different semantics based on value type thing
17:11 sri if value is a string, then it's the length, if value is an uploaded file, it's the file size
17:11 sri and they have special semantics for numerics too
17:12 sri the more i look into it, the more sure i am we should go the specialization route
17:13 mst 'specialization route' in what way?
17:13 mst as in specialized-to-form-handling?
17:13 sri yes
17:14 sri http://irclog.perlgeek.de/mojo/2015-07-06#i_10857518
17:14 mst hmm. yeah. because in a lot of cases, json validation should be expected to pass because the JS should've already done that validation at which point it becomes a different set of constraints
17:15 sri btw. http://laravel.com/docs/5.1/validation#rule-size
17:18 sri i'm pretty sure this is coming back https://github.com/kraih/mojo/commit/260db334b689d9504548085cef0778cc5a254ff5
17:20 sri although, the laravel docs inspired me to change the check descriptions
17:20 sri it seems more sensible to specifically mention strings and Mojo::Upload objects
17:21 * sri really likes laravel, most of it is very clean and pragmatic
17:24 PryMar56 joined #mojo
17:24 berov joined #mojo
17:37 genio have you looked at their Lumen framework?
17:42 fms joined #mojo
17:43 fms left #mojo
17:43 yt7fms joined #mojo
17:46 sri genio: anything specific i should look at?
17:52 genio No, nothing specific.  Just had to use it in a side job and found it more likeable than expected.  The validation seems equivalent to that of Laravel itself.  Your mention of Laravel just sparked the memory, though... ramblings
17:55 sri yea, i don't see any differences to laravel
18:05 ajr_ joined #mojo
18:05 yt7fms Hello world! I have a question. Calling "$self->cookie(..." from a plugin does not set cookie in a browser, but, calling it from a controller it does. What am I missing?
18:06 pink_mist what is $self in this case?
18:06 purl $self in this case is $user
18:07 Grinnz no, purl
18:07 Grinnz it isn't
18:13 yt7fms Well, $self would be a controller object...? However, in a plugin package i have: "sub register { my ($self, $app) = @_; ..."
18:14 mst no, purl, $self in this case is <reply>
18:14 purl okay, mst.
18:14 mst what is $self in this case?
18:14 mst win.
18:18 jontaylor joined #mojo
18:20 Grinnz yt7fms, in a plugin, $self is the plugin object. plugins are not registered in a controller (request) context, they are registered at startup
18:21 Grinnz yt7fms, if you're calling a helper from the request that is set by the plugin, then in the helper method the first argument woould be $c, the controller
18:28 trone joined #mojo
18:49 yt7fms Grinnz, I think I have understood Your explanation. I have now passed controller object to a helper and called "cookie" method on that passed controller object, and, it worked. Is this correct way to do it? Have I understood corecctly? :)
18:49 Grinnz_ yt7fms: yes. generally a plugin adds helper methods, which are then called in a request context
18:50 Grinnz_ i.e. the plugin startup is for the whole application, the helper is specific to one request
18:50 Grinnz_ or rather, one invocation of the helper
18:51 yt7fms OK! Many thanks!! Now, could this be a bad practice perhaps?
18:51 pink_mist depends what exactly you did...
18:58 sri $self is only a naming convention
18:58 sri it has nothing to do with mojolicious, it's just basic perl
19:47 bin_005 joined #mojo
19:56 coolo_ joined #mojo
19:57 neilhwatson joined #mojo
20:07 disputin joined #mojo
20:36 elik joined #mojo
20:49 * lb prefers $selfish
21:11 kaare joined #mojo
21:18 trone_ joined #mojo
22:00 disputin joined #mojo
22:10 disputin joined #mojo
22:22 ajr_ joined #mojo
23:26 Gedge joined #mojo
23:43 PryMar56 joined #mojo
23:43 oalders joined #mojo
23:46 PryMar56 joined #mojo
23:53 disputin joined #mojo
23:59 jontaylor joined #mojo

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