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

IRC log for #mojo, 2015-09-16

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

All times shown according to UTC.

Time Nick Message
00:01 DaniBunny joined #mojo
00:01 PryMar56 joined #mojo
00:12 Zoffix bpmedley, me
00:12 Zoffix Um, test how? I can run something on my box. I haven't use Minion yet
00:17 bpmedley Zoffix: Let my put the code on Github, then perhaps I can msg you?
00:18 Zoffix bpmedley, OK. Though I think I'll be turning to bed soon :)
00:18 bpmedley Understood.  We can test some other day, that's not today.. :)
00:25 Zoffix Sure :)
00:26 * Grinnz pondered a SQLite minion backend, but hasn't used minion yet
00:33 sri there's already DBM::Deep, so SQLite might be a bit meh
00:34 Grinnz yea, just if you were already using SQLite in a project it might make sense
00:39 bjoernfan joined #mojo
01:11 bowtie joined #mojo
01:15 Zoffix joined #mojo
01:20 meshl joined #mojo
01:31 meshl joined #mojo
01:41 meshl joined #mojo
01:43 kanishka joined #mojo
01:45 kanishka hai
01:45 kanishka is there any plugin to upload a file to s3 ?
01:53 meshl joined #mojo
02:29 bjoernfan joined #mojo
02:38 asm35 joined #mojo
02:51 noganex joined #mojo
02:57 jb360 joined #mojo
02:59 sri wow, guess i just discovered that perl6 is not for me
02:59 sri https://en.wikipedia.org/wiki/Fluent_interface#Perl_6
02:59 sri apparently that is considered good style
03:00 sri that is literally the worst in the entire list!
03:01 preaction how so? i mean, besides that it'd be better to initialize via the constructor?
03:01 sri $employee.name('Sally').surname('Ride').salary(200)
03:01 sri that's what i want to see in a fluent interface
03:02 kaare joined #mojo
03:02 sri not that given {} mess
03:02 preaction ah, okay, that seems more in-line with the other examples
03:03 genio that given {} mess is ugly.  I agree
03:04 meredith that's not awful but it also seems to be a single person's example
03:04 meredith there was a prior revision that showed it method-chained... and the same ip changed it again?
03:04 sri folks in #perl6 seem to support the design decision
03:05 meredith the more than one way to do it sickness if i've ever seen it
03:05 meredith given is a nice way of doing what i occasionally did with for ($thing) {} but very rarely
03:06 meredith but in say, vb, i had to use "with" all the time because it was the least painful way to chain things
03:06 meredith so i hope that doesn't become the -only- style
03:10 meredith yeah, this revision is interesting: https://en.wikipedia.org/w/index.php?title=Fluent_interface&oldid=681159313#Perl_6
03:11 meredith (perl 6 has been another "i'll study it when it's 1.0" thing for me, i know nothing :) )
03:11 sri ouch, that's bad too!
03:11 lluad joined #mojo
03:12 sri what does the backslash mean?
03:13 meredith i was wondering about that too, if that's compulsory in order to continue on the next line for method calls
03:57 theo /win 5
04:15 Zoffix joined #mojo
04:33 irqq joined #mojo
04:38 inokenty-w joined #mojo
04:48 Oleg joined #mojo
05:42 melo joined #mojo
06:14 Onigiri joined #mojo
06:18 panshin joined #mojo
06:19 marcusr joined #mojo
06:28 marcusr joined #mojo
06:29 absolut_todd joined #mojo
06:30 marcusr joined #mojo
06:31 marcusr joined #mojo
06:32 marcusr joined #mojo
06:34 marcusr joined #mojo
06:39 dod joined #mojo
06:43 dod joined #mojo
06:46 absolut_todd joined #mojo
06:49 stephen joined #mojo
06:59 sue joined #mojo
07:04 allenvdross joined #mojo
07:05 Perleone joined #mojo
07:18 trone joined #mojo
07:26 AndrewIsh joined #mojo
08:02 Vandal joined #mojo
08:18 asm35_ joined #mojo
08:35 eseyman joined #mojo
08:52 sue joined #mojo
08:58 panshin joined #mojo
09:03 Andy2 joined #mojo
09:03 Andy2 joined #mojo
09:09 irqq joined #mojo
09:26 dod joined #mojo
09:35 panshin joined #mojo
09:38 melo joined #mojo
10:53 panshin joined #mojo
11:05 melo joined #mojo
11:07 sue_ joined #mojo
11:19 dvinciguerra joined #mojo
12:06 berov joined #mojo
12:30 ashimema joined #mojo
12:45 ajr_ joined #mojo
12:52 mattastrophe joined #mojo
13:11 hernanGOA joined #mojo
13:22 ZoffixWork joined #mojo
13:23 ZoffixWork Yeah, you can't do the -> on the new line without it, like in Perl 5.
13:25 crab_ joined #mojo
13:26 ZoffixWork ...but then.. You got unicode operators and stuff! :)
13:26 crab joined #mojo
13:26 panshin joined #mojo
13:26 asm35 joined #mojo
13:27 * ZoffixWork wonders if they're the only person with Perl 6 repo commit perms who knows nothing about the actual language...
13:37 bpmedley We have one completed job with MySQL Minion backend, hopefully there will be a few more.. :)
13:38 sri because typing unicode operators is so much fun ;p
13:39 ZoffixWork Yeah, I don't get it either. Though I'm yet to actually learn and play with the language, so I'll reserve my complaints until then :P
13:40 sri i think the only valid use of unicode characters in programming is ligatures :) https://github.com/tonsky/FiraCode
13:40 cpan_mojo Minion-Backend-mysql-0.01 by BPMEDLEY https://metacpan.org/release/BPMEDLEY/Minion-Backend-mysql-0.01
13:41 sri bpmedley++
13:41 ZoffixWork \o/
13:41 bpmedley Minion is all the awesome.
13:42 sri maybe a Minion->new(mysql => 'mysql://...') example would make sense
13:42 sri in the synopsis
13:43 bpmedley Hrmm.. That makes sense.
13:48 bpmedley https://github.com/brianmed/Minion-Backend-mysql/commit/fb84bdc05ac10d0ef5677821714b9eb5b9b11db6
13:49 sri this seems a bit odd https://github.com/brianmed/Minion-Backend-mysql/blob/master/lib/Minion/Backend/mysql.pm#L27-L28
13:49 sri doesn't that double the sleep time?
13:49 bpmedley Oh dear.  Debug code.
13:50 sri only reason i start the ioloop is to wait for notifications
13:50 sri without pubsub, i think the File implementation is better for you
13:50 sri https://github.com/kraih/minion/blob/master/lib/Minion/Backend/File.pm#L18
13:51 bpmedley I hope to add the pubsub of Mojo::mysql soon.
13:51 sri i think that only polls anyway
13:52 sri so you might as well just poll
13:52 sri yourself
13:54 sri but of course you can benchmark to make sure
13:54 sri real pubsub is nice because you can avoid latency completely
13:54 bpmedley All good points and I hope dequeue can be improved over time.  The more eyes the merrier.. :)
13:58 cpan_mojo Minion-Backend-mysql-0.02 by BPMEDLEY https://metacpan.org/release/BPMEDLEY/Minion-Backend-mysql-0.02
13:58 batman sri: no. Mojo::mysql doesn't poll for pubsub
14:00 sri Oo
14:00 batman it uses a nifty hack which kills SLEEP queries.
14:00 sri oh, that does sound nifty
14:01 batman i think you've already seen this actually :)
14:01 batman https://metacpan.org/source/HARRYL/Mojo-mysql-0.12/lib/Mojo/mysql/PubSub.pm#L119
14:01 batman and https://metacpan.org/source/HARRYL/Mojo-mysql-0.12/lib/Mojo/mysql/PubSub.pm#L277
14:01 sri i might have forgotten about it :S
14:01 batman yeah. i'm not surprised... i often want to forget about mysql things as well, hehehe
14:07 batman Grinnz: this is weird... my $res = $sqlite->query(....); warn join ",", $res->rows, $res->hash; # "0,HASH(0x31033b0)"
14:07 cfedde I'm not quite sure how it happens but many of our systems have mysql, postgresql, ES, oracle, mongo, and a few diferent caching layers mixedin just for good measure.
14:07 Grinnz batman, https://metacpan.org/pod/Mojo::SQLite::Results#rows
14:07 batman Grinnz: let me dig some more... i don't get how this bug _isnt_ my code :(
14:08 sri cfedde: ALL THE BUZZWORDS!
14:08 batman my query contains "... limit 1"
14:09 Grinnz doesn't matter, the number of rows from the driver only contains the number fetched so far
14:09 cfedde sri: He who has the most wins!
14:10 batman Grinnz: oh. thanks.
14:10 batman thanks :)
14:13 gryphon joined #mojo
14:13 batman Grinnz: this is crazy! by accident i stored Foo::Bar object in :memory: database, and i was able to retrieve the same object...
14:14 batman no....
14:14 * batman need to go home
14:14 batman sorry. i will shut up now.
14:16 Grinnz lol
14:30 batman :)
14:31 CHYC joined #mojo
14:35 PryMar56 joined #mojo
14:36 plicease joined #mojo
14:36 CHYC Hi! Can anyone help explain the following curious behaviour I'm getting in 6.19: http://pastebin.com/Z9HMeyEC ?
14:36 Repaster Repasted text from CHYC: http://fpaste.org/267992/42414199/
14:37 CHYC Is this expected behaviour and I'm reading the Mojo::Pg docs wrong?
14:37 Grinnz no, it doesn't look like that json string got decoded
14:38 Grinnz not sure why
14:38 Grinnz i havent used the json stuff in Mojo::Pg much
14:40 sue joined #mojo
14:41 CHYC Grinnz, thanks for the confimation. Mojo::Pg version 2.09, Postgresql 9.4
14:45 Perleone left #mojo
14:46 eitz joined #mojo
14:49 sri CHYC: that's literally a test case https://github.com/kraih/mojo-pg/blob/master/t/database.t#L125
14:51 CHYC sri: I think I may have something. The _expand method in Mojo::Pg::Results is looking for $self->sth->{pg_type}. This is returning [ qw(unknown) ] for my system. I'm beginning to suspect my DBD::Pg is too old :(
14:51 sri oh
14:52 sri if you find out the right version i'll add a dependency on it
14:54 oohoo joined #mojo
14:56 memowe Hey there! Is there an elegant way to find out (routes, controller, actions) how a request for a given URL would be dispatched inside an action?
14:58 Grinnz_ CHYC: what version do you have?
14:58 Grinnz_ i don't see anything JSON-related in the changelog for DBD::Pg...
14:58 memowe In M::Routes' documentation unter 'dispatch' a match method is mentioned but it doesn't exist anymore.
14:58 CHYC sri: Yup, updating from 2.19.2-2+deb7u1 to 3.5.1 fixes things. I cannot see anything in the Changes file that jumps out at me as "the thing that fixed it" but 3.4.0 looks suspicious.
14:59 memowe (in the documentation)
14:59 Grinnz_ CHYC: you could install each version in between and see when it's fixed :)
15:00 panshin joined #mojo
15:00 CHYC Grinnz: I coouuuld, but it's fixed for me so I'm a happy customer again :)
15:00 Grinnz_ your test case should work well for others to find out, anyway
15:00 PopeFelix memowe, it was put there just to confuse you. ;)
15:01 memowe PopeFelix: that's cool. :P No, it's there, but it's undocumented.
15:01 PopeFelix In all seriousness, memowe, what is it that you're looking for?  Can you maybe sketch up a paste to show what you want?
15:02 Grinnz_ https://metacpan.org/pod/Mojolicious::Routes#match it does exist?
15:02 memowe Whoops.
15:02 memowe My bad. :)
15:03 PopeFelix lol
15:04 PopeFelix memowe, don't feel too bad. I often find myself unable to find a documented thing without asking.
15:04 memowe PopeFelix: I'd love to have something like my ($route_name, $placeholders) = $routes->foo($some_url);
15:05 memowe So that $some_url is the same as $c->url_for($route_name, %$placeholders);
15:05 memowe PopeFelix: thanks. ;)
15:06 memowe Yeah, that's it. The inverse of url_for :)
15:09 memowe So lines 120ff. of t/mojolicious/dispatch.t look promising.
15:12 memowe Something like "get a controller and routes from the app, parse a new request URL and dispatch. Read controller and actions from stash."
15:12 memowe Makes sense?
15:13 memowe Sounds reasonable but not very straightforward.
15:13 sri CHYC: you would help us by finding out
15:13 sri otherwise i'll just bump the requirement to the latest version
15:14 sri hmm, how do you define a DBD::Pg dependency anyway? 3.5.1 is not a valid version
15:15 sri it's defined with qv('3.5.1')
15:16 pink_mist perhaps 3.005001?
15:16 sri is that 3.005001?
15:16 sri heh
15:16 pink_mist =)
15:16 sri i'm not actually familiar with version and qv
15:17 Grinnz_ oh jesus christ, they really used qv?
15:18 Grinnz_ v3.5.1 should work
15:18 Grinnz_ as a string :)
15:18 sri so, is it equivalent to 3.005001?
15:18 pink_mist yes it is
15:18 Grinnz_ when compared as version objects, yes
15:18 sri ok, that's all i need :)
15:20 Grinnz_ https://metacpan.org/pod/CPAN::Meta::Spec#Dotted-integer-versions
15:20 meshl joined #mojo
15:25 cpan_mojo Mojo-Pg-2.10 by SRI https://metacpan.org/release/SRI/Mojo-Pg-2.10
15:32 sri hmmmmm http://stackoverflow.com/questions/32472986/doctype-sniffing-with-css3-and-specifically-with-mojodom
15:33 renormalist joined #mojo
15:33 sri that really shouldn't be done with Mojo::DOM
15:34 sri you need a special charset sniffing parser
15:35 sri i left it out intentionally, because the algorithm is a mess
15:35 sri https://html.spec.whatwg.org/multipage/syntax.html#determining-the-character-encoding
15:43 PopeFelix Would you expect LWP::UserAgent::Mockable to work with Mojo::UserAgent?
15:44 sh4 joined #mojo
15:45 sri i would answer on stackoverflow, but i think that's against the rules :S
15:46 pink_mist 0_o it is?
15:46 sri since it doesn't answer the specific question
15:46 pink_mist oh :/
15:46 pink_mist isn't "use something else" an answer?
15:47 pink_mist you could put it in a comment though
15:47 sri don't i need karma already for that?
15:47 pink_mist I have no idea .. I've never used SO ... but I would find it odd that you would need karma for that
15:48 sri think i do actually, i've only ever answered one or two questions there :/
15:50 * Grinnz_ has never successfully used stackoverflow
15:51 CHYC sri: DBD-Pg 3.0.0 passes; It looks like 2.19 is the most current version that fails the test. 2.20.1_6 on CPAN passes, but is marked as a developer release.
15:52 sri CHYC: makes sense i guess, lots of changes in 3.0.0
15:53 sri latest cpan release of Mojo::Pg now depends on 3.5.1
15:57 CHYC sri: I noticed. Thanks!
15:57 McA joined #mojo
15:59 mojobot17042 joined #mojo
16:00 jberger sri: you can tell me what I should post, I have plenty of karma there
16:00 jberger or post on your own and I'll be sure to upvote so you can get more karma
16:01 mojobot17284 joined #mojo
16:13 dod joined #mojo
16:15 dod joined #mojo
16:19 marcus wow mom
16:20 marcus I just hooked my regulator wide open to a co2 hose with the quick connection to a beer keg closed.
16:20 marcus blew a hole in the hose, and ruined the quick connect to the beer hose
16:21 marcus quite a booom
16:30 melo joined #mojo
16:30 lluad joined #mojo
16:31 bobkare joined #mojo
16:41 Oleg joined #mojo
16:42 mattastrophe joined #mojo
17:01 jberger :o
17:01 jberger marcus: death by beer is a good way to go though
17:03 mishanti1 Smelly though.
17:03 marcus jberger: unfortunately this accident means no beer for me until I get another connection from the regulator to the hose.
17:03 marcus hopefully tomorrow :)
17:04 marcus I think I'm going for something like this http://bryggeland.no/nippel-til-slange-1-2-tom-1-2-tom.html
17:04 marcus more robus than the plastic one I just broke.
17:04 marcus robust
17:43 disputin joined #mojo
18:02 ZoffixWork joined #mojo
18:04 disputin joined #mojo
18:12 irqq joined #mojo
18:29 trone joined #mojo
18:32 jberger sri: if I want to do something like resetting the database and then rebuilding the initial state dynamically
18:33 jberger can I lock the table and then still do migrations?
18:33 jberger then unlock the table later?
18:40 jberger hmm, that seems to deadlock
18:40 jberger well, this will probably be good enough
18:45 panshin joined #mojo
18:56 stephen joined #mojo
19:15 nic joined #mojo
19:15 nic joined #mojo
19:15 nic http://irclog.perlgeek.de/mojo/2015-09-16#i_11228010
19:16 nic please please do use religious references as curses
19:17 nic I find that highly offensive
19:18 nic s/do/do not/
19:19 Grinnz_ sorry
19:20 genio ugh.
19:21 genio thicker skin, people. thicker skin.
19:22 kanishka joined #mojo
19:23 batman genio: https://metacpan.org/pod/distribution/Mojolicious/lib/Mojolicious/Guides/Contributing.pod#CODE-OF-CONDUCT
19:23 genio I'm aware.
19:25 batman then don't say "thicker skin". be respectful
19:25 * batman stops
19:26 genio everything offends someone somewhere
19:28 genio Sorry, just policing logs from 7 hours prior seems like going out of your way to be offended
19:28 DaTa left #mojo
19:30 sri batman is absolutely correct
19:31 batman genio: i got to say something else: not everybody respects everybody everywhere - but we can at least give it a shot.
19:32 genio Alright. I'll just shut up
19:38 sri nic: i do wonder if it really is a curse in that context
19:38 sri i see it more as a statement of astonishment
19:40 batman sri: not sure if that matters.
19:40 sri is "oh my god" offensive?
19:40 genio of course it doesn't.  someone, somewhere found it offensive.
19:41 sri i'm curious
19:41 sue joined #mojo
19:41 genio which is where my rub with this thing lies
19:41 sri genio: please stay out of it
19:42 genio ok. sorry.
19:42 genio left #mojo
19:42 batman i'm thinking about making Mojo::DB which looks at the schema and loads Mojo::Pg, ::mysq or ::SQLite based on it.
19:42 batman comments?
19:43 Grinnz_ what schema?
19:43 lluad Schema? Or connection URL?
19:43 Grinnz_ oh you mean the connection URL?
19:43 Kundun left #mojo
19:43 Ptolemarch joined #mojo
19:44 Grinnz_ could be interesting, but i fear there are too many differences in API
19:44 Grinnz_ but i guess you would account for that in DBI anyway which does the same thing
19:44 lluad Providing a common API, so you don't need to know what the underlying DB is? I can see that being useful occasionally, if the common subset API is big enough to be useful.
19:44 batman i meant "scheme", mysql://example.com/dbname
19:45 Grinnz_ at that point though... i dont really see the use (I never saw the use of DBI->connect rather than DBD::mysql->connect or whatever)
19:45 sri i don't think it makes much sense, there's not much database agnostic about those modules
19:45 Grinnz_ changing databases is just too destructive
19:46 batman i often try to make my code work with SQLite and mysql, since it's easier to test with SQLite...
19:47 batman never gotten around to testing my code in parallell with a real database :/
19:49 asarch joined #mojo
19:54 sri after some googling i can see how mentioning religious figures can be considered offensive, i think it's best to be considerade and avoid that
19:54 sri generic statements like omg should be fine though
19:59 disputin joined #mojo
20:10 sri jberger: i didn't understand a word, but i'm going to assume you figured out your problem ;p
20:10 jberger yeah, I shouldn't do ->migrate(0)->migrate inside an ACCESS EXCLUSIVE lock
20:11 jberger but ->migrate, then lock, then DELETE then reload works
20:11 jberger which is more sane anyway
20:12 sri ah
20:13 sri i guess it would use a secondary connection
20:14 saki joined #mojo
20:14 bpmedley joined #mojo
20:14 sri causing the deadlock
20:15 jberger that's what I assumed too
20:16 sri oh, there's a new book in the architecture of open source applications in the works
20:17 sri http://aosabook.org/en/500L/a-web-crawler-with-asyncio-coroutines.html
20:18 elik left #mojo
20:18 sri i'm not a fan of python, but they handle coroutines pretty nicely
20:21 zackiv31 joined #mojo
20:22 ajr_ joined #mojo
20:29 batman a
20:29 batman oops!
20:30 batman does anyone run "prove -j4" or something with tests using a database?
20:30 jberger gotta be really careful with that
20:30 batman how do you handle migrations? or testing that the db is empty?
20:30 batman in MCT i created one database pr test script, but i have no idea if that scales :/
20:31 gorfel joined #mojo
20:31 jberger I'm only just getting into using Mojo::Pg for real (non minion) work
20:31 jberger like literally today
20:31 jberger so I have no idea ;-P
20:32 batman jberger: you used Mojo::Pg in MCT :)
20:32 jberger but I always ran the tests sequentially
20:32 batman yeah. it was awful :(
20:32 jberger the test suite at $work (mysql/DBI) takes like 10mins
20:33 batman that's too long. as in i-do-not-want-to-test-long :(
20:33 Grinnz_ the SQLite tests will run in parallel fine because they each use their own temporary directory, i made sure ;)
20:34 sri yea, parallel tests with a database are tricky
20:34 Grinnz_ with a database server, it's not as easy
20:34 sri since you usually want to clear the database
20:35 Grinnz_ maybe you could generate a database name and use some locking mechanism...
20:36 sri i think you want to use --rules
20:36 bpmedley Would you consider something like Jenkins to run the tests?
20:36 sri exclude the tests that can't run parallel
20:37 sri https://metacpan.org/pod/distribution/Test-Harness/bin/prove#rules
20:37 batman sri: what about migrations? how can i avoid initialising the db?
20:37 sri don't call ->migrate?
20:38 batman oh. i can call migrate; but not migrate(0) i guess :)
20:38 zackiv31 joined #mojo
20:39 batman when is the --rules tests run? before or after the parallell tests?
20:39 batman *are
20:40 sri that should be irrelevant
20:41 batman i would like if i could run one test first that initialises the database and run tests related to things like "first user logs in"
20:42 sri that sounds pretty bad
20:42 sri imo tests should always work in isolation
20:42 sri as in "prove t/foo.t"
20:43 batman +1
20:43 batman i tend to forget :(
20:44 panshin joined #mojo
20:45 berov1 joined #mojo
20:49 jberger :o
20:49 jberger I'm with sri on this one
21:08 panshin joined #mojo
21:11 meshl joined #mojo
21:39 Adura joined #mojo
21:51 Adura joined #mojo
21:54 marcusr <o>
21:54 marcusr <o><o>
22:02 sri interesting, nginx ships http/2 support only in the commercial version for now
22:04 Grinnz_ makes sense i guess, corporate customers probably demanding it, normal users don't care
22:05 batman Haha http://twitter.com/shwetank/status/644221118073585664
22:09 sri wow, this is a very nice http/2 implementation https://github.com/python-hyper/hyper-h2
22:09 sri most minimalistic i've seen so far
22:24 * sri really would like to play more with http/2 :(
22:44 good_news_everyon joined #mojo
22:44 good_news_everyon [mojo] kraih pushed 1 new commit to master: http://git.io/vZj32
22:44 good_news_everyon mojo/master 11973eb Sebastian Riedel: remove old comment
22:44 good_news_everyon left #mojo
22:47 ajr_ joined #mojo
22:49 good_news_everyon joined #mojo
22:49 good_news_everyon [mojo] kraih tagged v6.20 at 1c8f182: http://git.io/vZjs4
22:49 good_news_everyon left #mojo
22:50 good_news_everyon joined #mojo
22:50 good_news_everyon [mojo] kraih pushed 1 new commit to master: http://git.io/vZjsS
22:50 good_news_everyon mojo/master 63092b3 Sebastian Riedel: bump version
22:50 good_news_everyon left #mojo
22:54 bpmedley joined #mojo
22:55 Zoffix That's how I do it: just have prove t/foo.t that tests what I'm working on and I only run it. So I don't care if ALL the tests take long to run.
22:57 Zoffix sri, I don't speak Hindi, but I think this Temple near my work worships you :) http://i.imgur.com/2tbhLXl.jpg
22:57 * Zoffix points at the sign on the building
22:57 sri :D
22:58 Grinnz_ heh
23:13 ribasushi Zoffix: https://en.wikipedia.org/wiki/Sri
23:14 ribasushi with that in mind:
23:14 ribasushi sri: you should adopt https://en.wikipedia.org/wiki/Sri#/media/File:Shri-symbol.svg somewhere ;)
23:20 Zoffix ribasushi, ah :)
23:22 asarch joined #mojo

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