00:00:12 <elliott> kmc: that kind of thing should just exist in an unsafe module
00:00:17 <elliott> and be standard in the REPL
00:00:19 <olsner> not the desert quote I was looking for though
00:00:39 <kmc> that's a good quote tho
00:00:43 <kmc> @quote oasis
00:00:43 <lambdabot> chromatic says: My productivity increased when Autrijus told me about Haskell's trace function. He called it a refreshing desert in the oasis of referential transparency.
00:02:23 <olsner> neat, looks like chrome will actually keep allocating all available memory when you feed it infinite iframes
00:03:16 <Sgeo> kmc: _any_ value?
00:04:09 <kmc> believe so... fmt!("{:?}", x)
00:04:22 <olsner> beautiful syntax there
00:04:46 <kmc> it's not always /useful/ but it at least pulls apart structs, enums, etc
00:05:00 -!- Sprocklem has quit (Remote host closed the connection).
00:05:44 <kmc> olsner: the format string syntax is close to Python's iirc (the newer syntax not the old printf-style one)
00:06:18 <kmc> I used to rant so much about how format strings are terrible but I've sort of come around because of how important they are to internationalization
00:06:36 -!- Sprocklem has joined.
00:07:00 <kmc> and that includes things like reordering parameters, which printf-style can't do (or can it, there's some scary shit in there)
00:08:46 <olsner> I think gettext has something like that, %$1s or whatever the syntax was
00:09:25 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/wisdom/
00:09:37 <boily> good existential-Gregor evening!
00:10:14 <kmc> olsner: ah
00:10:32 -!- metasepia has joined.
00:14:18 <boily> fizzie: fizziello. what were the emotions I was supposed to suffer from the other day?
00:27:06 -!- impomatic has quit (Quit: impomatic).
00:27:59 -!- MoALTz_ has quit (Quit: Leaving).
00:30:36 <Sgeo> I assume bitcoins are at a low these days?
00:30:49 <Sgeo> WOnder if they'll recover. Almost tempting to buy a bit
00:31:51 <olsner> what would /r/bitcoin do?
00:33:39 <kmc> Sgeo: me too
00:33:46 <kmc> olsner: mortgage their houses to buy more bitcoins
00:34:11 <Sgeo> Although, guess buying from Mt.Gox isn't really an option
00:34:24 <kmc> there are other exchanges though
00:34:34 <kmc> it's already recovered a lot from yesterday's crash
00:34:41 <kmc> http://bitcoinity.org/markets
00:35:03 <zzo38> I can find some information about some string searching algorithms in Wikipedia, but some of them don't give enough details.
00:35:04 <Sgeo> http://www.reddit.com/r/lolphp/comments/1yvm6v/php_can_do_anything_what_about_some_ssh_mtgox/
00:37:40 -!- JWinslow23 has joined.
00:39:32 <JWinslow23> Do you wanna hear acapella music I made?
00:40:05 <boily> I'm currently on the phone with my mom, but I could listen to it later.
00:40:26 <JWinslow23> Just bookmark http://www.mediafire.com/listen/a7hjyi1ifocas27/FamilyGuyJosiahW.wav for later.
00:42:21 <Sgeo> Hmm. Maybe I shouldn't trust any exchanges with CC info
00:44:11 <JWinslow23> Whaddaya think of "Avoid the Pink"? http://js1k.com/2014-dragons/demo/1698
00:44:38 <JWinslow23> There's no laggin' with "Flappy Dragon"! http://js1k.com/2014-dragons/demo/1659
00:45:10 <Sgeo> It's difficult
00:45:36 <JWinslow23> I'm trying to rhyme the names all the time.
00:45:48 <Sgeo> Also, I could swear there were a million Flappy Bird like games before Flappy Bird, just with more connected tunnel
00:46:44 <zzo38> Sgeo: I believe you
00:48:23 <zzo38> Well, possibly, not quite one million.
00:49:48 <JWinslow23> Well, there were tunnel games beforehand.
00:52:24 <Sgeo> So why is everyone obsessed with this one particular one?
00:54:37 <JWinslow23> It existed a year before it became popular.
00:55:21 <Sgeo> kmc: why is this MTG person talkijng about you?
00:55:22 <Sgeo> "double sleeve, kmc perfect fits, kmc hyper mattes. deckbox or ultra pro sideloading binder."
00:55:34 <Sgeo> http://www.reddit.com/r/magicTCG/comments/1ywtxp/people_with_p9_and_other_expensive_cards_how_do/cfogm7v
00:55:51 <JWinslow23> If the exterior a product the disposition and the specification is changed...
01:02:53 * boily is still on the phone, but with a friend.
01:03:07 <boily> and chatting with two other people at the same time, and being on IRC too.
01:03:12 <boily> I AM TOO SOCIAL! AAAAAAAARGH!
01:10:38 <JWinslow23> I'll try to make a Flappy Bird clone for Atari.
01:11:27 <zzo38> Can you make up the clone for Famicom?
01:14:55 <JWinslow23> I dunno a language that compiles for Famicom. :p
01:16:08 <zzo38> I use a variation of MagicKit.
01:16:26 <boily> JWinslow23: it's 6502 assembly, slightly reduced.
01:16:37 <zzo38> Decimal mode doesn't work.
01:17:09 <boily> JWinslow23: it is knowable. inhale the Knowledge. ask Someone who made actual assembly programs. (ie. not me.)
01:17:28 <zzo38> There is a BASIC interpreter for Famicom too
01:18:58 <boily> whenever someone says «OK», I read it as «O KAY», while hearing it in my head with oerjan's voice.
01:21:36 <boily> he he he. that's a subtle one :D
01:22:30 <boily> @tell oerjan you are not a Spanish ear. rest assured.
01:22:48 -!- yorick has quit (Remote host closed the connection).
01:31:39 -!- JWinslow23 has quit (Quit: Page closed).
01:54:31 -!- boily has quit (Quit: CYS-HIS-ILE-CYS-LYS-GLU-ASN).
01:54:33 -!- metasepia has quit (Remote host closed the connection).
01:55:57 <zzo38> Do you know if GCC supports declaring anonymous unions at top-level code?
01:56:57 <zzo38> It would be a useful thing to have.
01:59:48 <zzo38> Unfortunately it doesn't work properly.
02:00:48 <zzo38> It does not define an anonymous global variable. I want to do it so that it is like a union { ... } which is defined inside of a struct { ... } so it defines global variables that share memory with other ones.
02:01:01 <zzo38> Specifically, an array.
02:01:43 <zzo38> I also get a "expected specifier-qualifier-list before 'static'" error message.
02:07:40 -!- tertu has joined.
02:11:57 -!- filo3sofie has changed nick to vagabondo.
02:12:08 -!- vagabondo has left ("Leaving").
02:15:04 <Sgeo> I should try to wrap my mind around Idris
02:15:31 <Sgeo> I think I kind of get the oh/so True/choose thing
02:17:40 <Sgeo> Although it only really clicked after reading mailing list posts
02:17:50 -!- matrice64 has joined.
02:17:51 <Sgeo> Which isn't to say that it actually clicked fully
02:18:07 <Bike> is there not a regex for "the same character, twice"
02:19:25 -!- matrice64 has left.
02:20:03 <Sgeo> Bike: wonder if that would make it able to process some not regular languages
02:20:11 <Sgeo> So, possibly an extension of the usual regex syntax?
02:20:21 <Bike> welll you can do it with backtracking obviously
02:20:27 <Bike> but i'm thinking about actual regular languages
02:21:05 <Bike> i think it's regular? i mean aa is obviously a regex, and so's bb, and so's (aa)|(bb), and you then just extend it to all characters of the alphabet.
02:21:41 <zzo38> Then it won't work if the alphabet is infinite
02:21:52 <Sgeo> the the function is interesting, in the sense that it's a function where Haskell would use syntax
02:21:57 -!- tertu has quit (Disconnected by services).
02:21:57 -!- ter2 has joined.
02:53:05 -!- itsy has quit (Read error: Connection reset by peer).
02:53:38 -!- nisstyre_ has joined.
02:54:34 -!- Phantom_Hoover has joined.
02:57:13 <zzo38> Can it be made a chess variant (or other games) like that one? http://www.chessvariants.org/404.jpg
02:58:25 -!- nisstyre_ has quit (Client Quit).
02:58:38 -!- nisstyre has quit (Quit: WeeChat 0.4.3).
02:58:48 -!- nisstyre has joined.
02:59:46 <kmc> zzo38: so you want two global variables which occupy the same space?
03:00:16 <Bike> stupid puzzle, making me wish i had a phrase dictionary to grep
03:00:28 <Sgeo> zzo38: how many 404 are in there. There's the dice + O, which I find amusing
03:02:52 <zzo38> Sgeo: The black and white stones near the top make 404 in binary numbers
03:02:56 <Sgeo> oh god i was thinking of a union-like thing and somehow was thinking cobol instead of c does this mean c is bad if a c feature made me think cobol
03:03:21 <kmc> c is bad, so yes
03:03:42 <zzo38> The stones on the bottom spell "ERROR" in Morse code.
03:04:00 <Sgeo> zzo38: neat (at both)
03:04:27 <zzo38> (I just noticed these things now, actually)
03:08:31 <kmc> zzo38: so where are anonymous unions allowed? only within other structs/unions?
03:09:12 <zzo38> kmc: Yes, inside of other structs/unions they are allowed, and can be useful, even if they are empty, which is also allowed.
03:09:26 <kmc> how useful empty?
03:09:59 <zzo38> They aren't usually useful empty, but it can sometimes be used if you just want the type but no data.
03:10:10 <zzo38> Or if you need to put data but none is needed.
03:10:31 <zzo38> Sometimes you may want a zero-length type for whatever reason.
03:11:44 <kmc> you can do something like this maybe https://gist.github.com/kmcallister/9222833
03:12:05 <kmc> i don't know if this violates GCC's aliasing rules or whatever else
03:12:34 <kmc> oh in fact it doesn't work with -O2 ;P
03:12:42 <zzo38> OK, but I need variables of different sizes, some of which are arrays, and some of which also contain structures. (Well, I *don't* need any such things, but I do have uses for such things.)
03:21:14 -!- ter2 has quit (Ping timeout: 264 seconds).
03:23:40 <zzo38> Anonymous structures are also allowed in other structs/unions.
03:23:52 <zzo38> Sometimes I have them nested struct/union/struct/union/etc
03:24:01 <zzo38> (Although usually not that much!)
03:31:41 -!- tertu has joined.
03:36:47 <kmc> what is the point of an anonymous struct inside a struct?
03:38:40 <kmc> today I got into a discussion about C++ and I claimed that exceptions require far more runtime support than any other C++ feature, but is it true?
03:39:12 <kmc> you can compile exceptions in a way that doesn't require much runtime support but it slows down your code everywhere, which is also unlike most C++ features
03:39:19 <pikhq> What other features require nontrivial runtime support beyond what's in libc?
03:39:54 <pikhq> I mean, there *are* global initializers, but that's quite simple to support.
03:42:43 <pikhq> Well, you can still assign to/from an entire anonymous struct?
03:42:44 <zzo38> kmc: Well, generally you alternate between structs and unions inside of each other.
03:42:54 <pikhq> Oh, wait. Anonymous. Right.
03:43:07 <pikhq> Really weird alignment shenanigans?
03:44:46 * kmc thinks about whether RTTI requires anything nontrivial at runtime
03:44:55 <kmc> I think it's usually just accessing tables output by the compiler
03:45:59 <kmc> new[] / delete[] require the allocator to keep track of the number of elements somewhere
03:46:36 <pikhq> I'd call that pretty trivial though.
03:47:36 <pikhq> As in "literally just a matter of having operator new[] allocate space for an extra size_t"
03:50:57 <kmc> although the C++ FAQ claims that some compilers store the count in a separate hashtable instead http://www.parashift.com/c++-faq/num-elems-in-new-array-assocarray.html
03:51:11 <pikhq> I... but... why?!?
03:51:22 <kmc> makes it less bad to mix up delete and delete[] I guess
03:52:46 <pikhq> You could solve this by making operator new/delete do the same. :)
03:53:06 <kmc> store the count? sure, that wastes a word per allocatoun though
03:53:32 <pikhq> Of course then mixing up malloc/free and new/delete is dangerous, unless libc and libc++ cooperate.
03:54:07 <pikhq> If libc and libc++ cooperate then it probably doesn't. (it's pretty likely malloc already does just that)
03:54:14 * kmc imagines an implementation where objects allocated with new get an (address/required_alignment) which is even and objects allocated with new[] get an odd one
03:54:30 <kmc> pikhq: already stores the size?
03:54:33 <pikhq> (alternately C++ could implement its own allocator rather than using C's.)
03:55:10 <kmc> well you can also overload operator new etc., which is part of why mixing them up is bad
03:55:36 <kmc> maybe you have an object where individual allocations come from a pool and arrays don't
03:55:47 <kmc> C++ is on-topic in the esolangs channel, right?
03:55:53 <pikhq> Some mallocs do actually store the exact size.
03:56:08 -!- shikhin has quit (Quit: Leaving).
03:56:12 <pikhq> I think on Linux it's more common to not though...
03:56:13 <kmc> the size requested by the application?
03:56:25 <pikhq> Hrm, no, it would almost never be that.
03:56:37 <pikhq> Size actually used by the allocation, sure, but not that.
03:56:48 -!- tertu has quit (Ping timeout: 244 seconds).
03:56:54 <pikhq> word-per-alloc is probably not a huge cost though.
03:57:05 <kmc> I'm not sure...
03:57:06 -!- tertu has joined.
03:57:14 <kmc> definitely the C++ designers felt it was unacceptable to impose this cost
03:57:46 <pikhq> Well, obviously. Otherwise they would have had delete work on new[]'d things.
03:58:51 * kmc has written C++ for a machine with 64 bytes of RAM
03:58:55 <kmc> but I wasn't using new/delete...
03:59:22 <kmc> continuous chess-boxing
03:59:37 <pikhq> kmc: Course, at that point you're really writing a really weird dialect of C. :P
03:59:55 <pikhq> Well. I would hope.
04:00:09 <pikhq> Technically you still have a lot of C++'s goodies, like templates and such.
04:00:25 <kmc> I don't think I came up with an excuse to use templates
04:01:05 <pikhq> And you could probably manage to have an object or two.
04:01:18 <pikhq> (global, of course)
04:01:19 <kmc> yeah, I did (no virtual methods though)
04:01:32 <kmc> or on the stack, if they're small enough
04:01:34 <pikhq> (... or on the stack, *shrug*)
04:02:07 -!- Phantom_Hoover has quit (Quit: Leaving).
04:02:21 <kmc> hm, you need special instructions to read/write data from flash; perhaps that would be a compelling use case for a smart pointer class template
04:02:41 <kmc> (and similar for arrays)
04:02:47 <zzo38> C and C++ have some bad features compared to BLISS.
04:02:54 <kmc> ^_____________^
04:04:14 <kmc> (well, reading anyway; supporting writing that way is probably a bad idea)
04:04:17 <pikhq> For any language, some feature of C or C++ is notably worse than in that language. :P
04:05:14 <kmc> it's weird how e.g. you don't get to overload operator[] separately for reads and writes; rather you have to return a reference or some kind of object with an operator= and the right kind of implicit conversion
04:05:41 <zzo38> Although C does have some good features too. Unfortunately I cannot find a BLISS compiler.
04:05:57 <kmc> one of the good features of C is that you can get compilers for it
04:06:05 <kmc> although this is also the cause of a lot of problems in the world
04:08:46 <pikhq> Yep. C runs everywhere.
04:08:54 <pikhq> For certain notions of "C".
04:08:55 <kmc> straight into walls
04:10:10 <zzo38> kmc: Yes, it is good that there is a lot of C compiler, so it help, to write C programs running on many computer.
04:11:37 <kmc> `addquote <zzo38> C and C++ have some bad features compared to BLISS. <zzo38> Although C does have some good features too. Unfortunately I cannot find a BLISS compiler.
04:11:39 <HackEgo> 1169) <zzo38> C and C++ have some bad features compared to BLISS. <zzo38> Although C does have some good features too. Unfortunately I cannot find a BLISS compiler.
04:12:14 <zzo38> But I have a documentation of BLISS; it looks to have some very good features which nobody has ever implemented in any newer programming languages.
04:12:47 -!- tertu has quit (Read error: Connection reset by peer).
04:13:04 -!- tertu has joined.
04:14:27 <zzo38> Have you ever looked at it at all?
04:14:32 <zzo38> Wikipedia also has a article about it.
04:21:38 <zzo38> https://en.wikipedia.org/wiki/BLISS_(programming_language)
04:22:11 -!- HackEgo has quit (Ping timeout: 272 seconds).
04:22:49 -!- HackEgo has joined.
04:22:52 <kmc> what are the best features?
04:24:16 <zzo38> O, I found a BLISS compiler that targets LLVM.
04:26:10 <zzo38> kmc: Macros, and the way the assignment syntax works seems to make a lot more sense, as well as its implementation of structures, literals, and I think you are allowed to put statements inside of expressions.
04:26:20 <kmc> statements in expressions is nice
04:27:30 <zzo38> However it does lack some things, such as data types.
04:28:14 -!- Sorella has quit (Quit: It is tiem!).
04:30:50 <zzo38> BLISS-M is a modern compiler, although it seems to be not quite the complete version yet.
04:30:53 <kmc> another weird thing about C++ is that operator overloading isn't just sugar for human consumption; it's also how you make your "smart" things usable in place of plain C constructs within templates
04:31:42 <kmc> the iterator "concept" is designed around operator* and operator[] and operator!= so that plain C pointers are usable as iterators
04:32:57 -!- tertu has quit (Ping timeout: 272 seconds).
04:33:57 <zzo38> kmc: Do you have an example of that?
04:34:52 -!- tertu has joined.
04:35:45 <kmc> well an idiomatic C++ loop (pre-C++11) is: for (foo::iterator it = obj.begin(); it != obj.end(); it++)
04:35:58 <kmc> and this will work even if foo::iterator is a typedef for a plain C pointer
04:37:17 <zzo38> And what exactly happens if it isn't a plain C pointer?
04:37:32 -!- password2 has joined.
04:38:40 <kmc> then the functions operator++ and operator!= are called on whatever type foo::iterator is
04:39:07 <kmc> oh, if you really want this to work properly then you use free functions begin(obj) and end(obj) instead of obj.begin() and obj.end()
04:39:19 <kmc> and those are overloaded to work on arrays as well as fancier container types
04:39:38 <zzo38> Yes, I can understand how it is working, now.
04:39:41 <kmc> (one of the few weird things C++ does *not* allow is adding methods to existing primitive types)
04:41:24 <kmc> I wonder if SFINAE means you can write a single template<typename T, typename I> I begin(const T &x) { return x.begin(); }
04:41:51 <zzo38> Did you try it to see if it work?
04:46:34 <zzo38> Then you should implement it as a macro if it helps.
04:53:36 <kmc> yes; it appears you can do begin(x) -> x.begin() generically http://codepad.org/x2QL4ISp
04:56:13 <kmc> i'm not sure how this is supposed to work without 'auto'
05:00:38 <zzo38> Is there a typeof command in C++?
05:00:57 <kmc> there is typeid()
05:02:41 <kmc> returns an object with some information about a type
05:03:14 <kmc> i suppose one way to do the above without auto would be: template<typename T> struct const_iterator { typedef typename T::const_iterator ty; }; template<typename T, size_t n> struct const_iterator<T [n]> { typedef const T* ty; };
05:04:37 -!- password2 has quit (Ping timeout: 272 seconds).
05:05:06 -!- tromp has joined.
05:07:05 -!- HackEgo has quit (Ping timeout: 244 seconds).
05:08:50 -!- HackEgo has joined.
05:19:15 <HackEgo> miintecoin nandocoin taligacoin zephawcoin sendercoin infucoin anemcoin oracoin whittcoin yencoin pbfcoin crangcoin halthnolateftitcoin rnacoin uriecoin lesznycoin niccoin lo'reravecoin cirtcoin hanibcoin
05:23:46 -!- oerjan has joined.
05:25:59 <oerjan> <fizzie> (I guess the latter is explained by oerjan sneakily sneaking out in the meanwhile.) <-- *MWA DE HA*
05:34:40 <fizzie> @tell boily I don't know what you meant at all SORRY
05:39:00 -!- impomatic has joined.
05:40:04 <lambdabot> boily said 4h 17m 34s ago: you are not a Spanish ear. rest assured.
05:42:16 <zzo38> Now I am trying to implement Aho-Corasick. I don't need to match proper suffixes, so I can omit that part.
05:46:55 -!- Sprocklem has quit (Quit: Leaving).
05:47:07 <zzo38> It is part of a compiler to target Z-machine.
05:50:47 -!- Sprocklem has joined.
05:57:45 -!- nisstyre has quit (Quit: WeeChat 0.4.3).
06:11:56 -!- tertu has quit (Read error: Connection reset by peer).
06:12:13 -!- tertu has joined.
06:32:24 -!- password2 has joined.
07:13:37 <oerjan> (i mean, synchronicity)
07:13:45 <oerjan> (i just /whois'ed you)
07:14:22 <oerjan> WHY ARE YOU STILL HERE THEN
07:15:01 <oerjan> IF YOU HAVE TWO IPS, GIVE ONE TO THE POOR
07:21:56 -!- ais523 has joined.
07:29:22 -!- tertu has quit (Read error: Connection reset by peer).
07:29:26 -!- ter2 has joined.
07:44:02 -!- ter2 has quit (Ping timeout: 264 seconds).
07:47:14 -!- oklopol has joined.
07:59:18 <ion> A crazy way to convert a 600mil DIP to 300mil. [LPC1114] http://youtu.be/n5LEEoskiaM
08:02:42 -!- MoALTz has joined.
08:42:39 <oerjan> @ask boily <boily> whenever someone says «OK», I read it as «O KAY», while hearing it in my head with oerjan's voice. <-- wtf did you hear my voice
08:43:07 <oerjan> the voice of fridge logic
08:58:35 -!- Tritonio has joined.
09:01:55 -!- FreeFull has quit.
09:02:33 -!- Phantom_Hoover has joined.
09:07:19 -!- impomatic has quit (Ping timeout: 244 seconds).
09:55:35 -!- MoALTz has quit (Read error: Connection reset by peer).
10:15:35 -!- Phantom_Hoover has quit (Ping timeout: 272 seconds).
10:31:38 -!- MoALTz has joined.
10:39:27 -!- budweiserz has joined.
10:43:40 -!- conehead has quit (Quit: Computer has gone to sleep.).
10:51:09 -!- budweiserz has quit (Quit: This computer has gone to sleep).
11:08:58 -!- budweiserz has joined.
11:08:59 -!- budweiserz has quit (Client Quit).
11:21:29 -!- boily has joined.
11:31:27 <oerjan> quintopia: yo http://oerjan.nvg.org/esoteric/resplicate/TagResPair.hs
11:34:41 -!- test_pidgin has joined.
11:36:14 -!- test_pidgin has quit (Client Quit).
11:42:59 -!- tromp has quit (Ping timeout: 272 seconds).
11:52:59 -!- yorick has joined.
11:54:22 <lambdabot> fizzie said 6h 19m 41s ago: I don't know what you meant at all SORRY
11:54:22 <lambdabot> oerjan asked 3h 11m 42s ago: <boily> whenever someone says «OK», I read it as «O KAY», while hearing it in my head with oerjan's voice. <-- wtf did you hear my voice
11:55:28 <boily> oerjan: I never heard your real voice, but I know it is yours.
12:01:22 -!- boily has quit (Quit: The Mystery of Ørjan's Voice).
12:09:06 -!- Sorella has joined.
12:32:48 -!- oerjan has quit (Quit: leaving).
12:39:41 -!- MindlessDrone has joined.
12:45:03 -!- password2 has quit (Ping timeout: 272 seconds).
13:03:57 -!- Sorella has quit (Ping timeout: 244 seconds).
13:30:29 -!- Sgeo has quit (Read error: Connection reset by peer).
13:34:13 -!- shikhin has joined.
13:56:40 -!- Tritonio has quit (Remote host closed the connection).
14:06:51 -!- Tritonio has joined.
14:13:36 -!- ter2 has joined.
14:15:28 <fizzie> "The Centre of Excellence in Intersubjectivity in Interaction --" quite a name.
14:36:38 -!- Jafet has quit (Quit: Quit).
14:37:10 -!- Phantom_Hoover has joined.
14:37:14 -!- Jafet has joined.
14:39:51 -!- FreeFull has joined.
14:51:25 -!- Sprocklem has quit (Ping timeout: 244 seconds).
15:20:01 -!- shikhin has changed nick to a.
15:20:07 -!- a has changed nick to shikhin.
15:20:52 <Phantom_Hoover> there must be a 3-character one, and probably there are leftover 2-character ones
15:21:53 <tromp_> the shortest is a 0-character one
15:22:23 <ais523> [431] ais523 No nickname given
15:22:34 <ais523> 431 says that isn't a nick
15:23:36 -!- int-e has changed nick to [.
15:23:50 <ais523> there may be unclaimed two-character nicks where one of them is a punctuation mark
15:23:51 <[> registered ... but currently unused.
15:23:53 -!- [ has changed nick to int-e.
15:31:03 -!- Phantom_Hoover has changed nick to [`.
15:32:02 <ais523> [`: I thought there'd be one
15:32:18 <ais523> are you going to register it now?
15:32:56 <[`> THE CYCLE CONTINUES
15:33:24 <ais523> will it be your default nick?
15:33:37 <int-e> it's so unbalanced.
15:33:55 <int-e> oerjan will be peeved.
15:34:47 -!- Tritonio has quit (Ping timeout: 272 seconds).
15:35:03 -!- ais523 has changed nick to `].
15:35:08 <`]> will this help?
15:35:12 <`]> (this nick isn't registered either)
15:36:18 -!- ter2 has quit (Read error: Connection reset by peer).
15:36:24 <`]> btw, oerjan just proved respairaite TC
15:36:26 -!- nortti has changed nick to ^^.
15:36:33 -!- `] has changed nick to ais523.
15:36:37 -!- ^^ has changed nick to nortti.
15:44:21 -!- Sprocklem has joined.
15:44:54 -!- conehead has joined.
15:54:09 -!- Sorella has joined.
16:02:54 <[`> whats respairaite
16:03:37 <ais523> ResPlicate with the repeat count capped at 2
16:03:51 <ais523> and a few syntax changes
16:04:04 <ais523> also the lengths are forced to be even
16:04:12 <ais523> so that what's a repeat count and what's a length can be statically verified
16:10:26 <ais523> I did feel like there was too much power in resplicate, and that a tarpit version might be possible
16:12:49 <int-e> is there any cap on the length field?
16:15:38 <ais523> I guess that's the next step
16:15:40 <ais523> anyway, time to go home
16:15:46 -!- ais523 has quit.
16:35:36 -!- Slereah has joined.
16:38:25 -!- Slereah__ has joined.
16:39:44 -!- Slereah has quit (Ping timeout: 246 seconds).
16:50:51 -!- JWinslow23 has joined.
16:51:17 <JWinslow23> Anyone interested in Flappy Bird Atari?
16:52:56 -!- JWinslow23 has quit (Client Quit).
17:05:05 -!- nooodl has joined.
17:19:52 <fizzie> @tell ais523 Having [` and `] will only help if the people involved are careful in coordinating their comments hth
17:20:56 <[`> don't worry, it can still be balanced in the future
17:21:40 <fizzie> Perhaps there could be a `balance command that'd make HackEgo run through the logs and output the correct number of brackets.
17:25:39 -!- Slereah__ has quit (Remote host closed the connection).
17:25:56 -!- Slereah has joined.
17:32:38 <zzo38> Does this look a correct implementation of Aho-Corasick? http://sprunge.us/VSQi
17:39:31 -!- Slereah__ has joined.
17:41:24 -!- Slereah has quit (Ping timeout: 244 seconds).
18:15:37 -!- [` has quit (Quit: Page closed).
18:24:16 <quintopia> @tell oerjan i sort of kind of get the construction. I recognize the methods at least. I'll have to study it a while to fully grok it (so as to figure out how to get rid of the m=1 pairs :P)
18:30:30 -!- MoALTz_ has joined.
18:30:59 -!- MoALTz has quit (Write error: Connection reset by peer).
18:31:48 -!- oerjan has joined.
18:33:00 <lambdabot> quintopia said 8m 44s ago: i sort of kind of get the construction. I recognize the methods at least. I'll have to study it a while to fully grok it (so as to figure out how to get rid of the m=1 pairs :P)
18:35:28 <quintopia> to be more specific, the only part that's not completely clear is the "anatomy of a core" part... and of course the haskell code since i don't speak haskell
18:35:53 <quintopia> but i'm sure it's just a matter of time and thought...your explanation seems solid
18:36:40 <zzo38> Do you know this Aho-Corasick? I found some slide-presentation and I want to know if you think it is correct.
18:36:58 <kmc> zzo38: write a test suite, maybe? QuickCheck?
18:38:49 <zzo38> kmc: Yes, I can test it once I write the rest of the program but first I just ask if other people think it looks to be OK.
18:39:21 <oerjan> quintopia: it had to be haskell... ais523's eval hack was _screaming_ to be replaced by lazy evaluation :)
18:41:30 <quintopia> oerjan: well i am able to read it well enough to see that it should output ResPlicate directly...but the convert function is all greek.
18:41:39 <fizzie> @tell Vorpal Look, a macroSD card: http://zem.fi/2014-02-26-macrosd
18:43:16 <quintopia> fizzie: i didn't know you=photography
18:43:58 <fizzie> I don't (much) do "actual" photography, I just like these silly fringe things.
18:44:30 <fizzie> Stitched panoramas, time-lapse things, and as a latest thing this macro stuff.
18:44:52 <quintopia> "Whale slaps Nova Scotia woman in the face" should i read this news y/n?
18:46:18 <kmc> fizzie: nice!
18:46:36 <kmc> have you seen bunnie's posts about microSD cards?
18:46:52 <fizzie> kmc: I had no idea the surface was like that, since it looks just textured-but-smooth to the eye.
18:47:41 <fizzie> Apparently I have. (I didn't recognize the name, but I did see at least this one run-arbitrary-code-on-the-card post.)
18:47:47 <kmc> http://www.bunniestudios.com/blog/?p=3554 http://www.bunniestudios.com/blog/?p=918
18:48:04 <fizzie> The second one I hadn't read.
18:48:15 <kmc> http://www.bunniestudios.com/blog/?p=2946 is neat too
18:48:23 <kmc> also the whole rest of the blog
18:49:38 <oerjan> quintopia: i suppose my design layout section doesn't describe precisely how all the offsets are calculated, just putting ? in most spots. it _should_ be possible to grasp what's needed without reading the haskell code, but still...
18:51:26 <oerjan> of course i am accepting further questions.
18:59:14 <HackEgo> /hackenv/bin/log: 2: cd: can't cd to /var/irclogs/_esoteric \ grep: ????-??-??.txt: No such file or directory
19:00:04 <HackEgo> 98076 \ a \ app.sh \ bdsmreclist \ bin \ canary \ cat \ complaints \ :-D \ dog \ etc \ factor \ fb \ fb.c \ head \ hello \ hello.c \ ibin \ index.html \ interps \ lib \ paste \ paste.1014 \ paste.11282 \ paste.11437 \ paste.12235 \ paste.12391 \ paste.12738 \ paste.13150 \ paste.13287 \ paste.1368 \ paste.14273 \ paste.14276 \ paste.14992 \ paste.1
19:00:06 <fizzie> `run ls paste.* | wc -l
19:00:40 <fizzie> I don't think pastes are supposed to go *there*.
19:00:49 -!- Slereah has joined.
19:00:51 <oerjan> indeed, what has happened. to the repository.
19:01:44 <oerjan> oh hm i suddenly have a hunch
19:03:09 <oerjan> fizzie: it was my `undo command, which is buggy about directories :(
19:03:20 <HackEgo> #!/bin/sh \ hg diff -c "$@" | patch -R
19:03:33 -!- Slereah__ has quit (Ping timeout: 244 seconds).
19:03:50 <fizzie> oerjan: hg is a hard mistress.
19:04:33 <oerjan> (well it's not my command, but my use of it had that effect.)
19:08:09 <oerjan> also, why didn't the change to quotes get reverted. sigh.
19:08:10 * kmc thinks about how to exploit the standard C memory vulnerabilites in Emscripten-compiled code
19:08:32 <kmc> e.g. if my Emscripten app has a vulnerable libpng and loads a malicious png, the attacker could get XSS-like powers in the hosting page
19:09:42 <HackEgo> 98076 \ a \ app.sh \ bdsmreclist \ bin \ canary \ cat \ complaints \ :-D \ dog \ etc \ factor \ fb \ fb.c \ head \ hello \ hello.c \ ibin \ index.html \ interps \ lib \ paste \ pref \ prefs \ quines \ quotes \ share \ src \ test \ Test \ Test.hi \ Test.hs \ UNPA \ wisdom \ wisdom.pdf
19:10:09 <oerjan> those pastes were all of the quotes database, anyhow.
19:10:30 <HackEgo> ls: cannot access bin/cat: No such file or directory
19:10:45 <FireFly> er, there is a file called :-D in ~
19:11:16 <HackEgo> -rw-r--r-- 1 5000 5000 373 Feb 17 03:23 98076
19:12:28 <oerjan> fizzie: i suddenly have this vague recall that bugs in `undo have been previously discussed - if only `pastelogs worked.
19:15:28 <oerjan> elliott: hey you made bin/undo and it hasn't been changed. do you know why it might wrongly dump things into the top directory? and also miss some files.
19:16:59 <HackEgo> #!/bin/sh \ hg diff -c "$@" | patch -R
19:17:13 <elliott> I suggest looking at the hg diff output when it breaks.
19:17:19 <elliott> that, and reading man patch
19:17:28 <kmc> shachaf: I think things like http://research.microsoft.com/pubs/73104/usenix05data_attack.pdf should still work, and maybe return-to-libc-style attacks, but not ROP (because there's no way to jump to the middle of a function, unless the JS engine has a bug)
19:17:49 <kmc> I'm not sure why that's a "shachaf: ", maybe because I think you sent me that paper, but maybe you didn't?
19:17:55 <oerjan> `run hg diff -c 4468 | paste
19:18:00 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.30692
19:19:12 <oerjan> `run mv paste/paste.30692 paste/paste-30692.txt
19:19:20 <olsner> I discovered nested content-encodings today, turns out at least opera and chrome support it (up to obscene nesting depths)
19:20:10 <oerjan> this seems to be crashing IE D:
19:22:18 <oerjan> `ls -l paste/paste.30692
19:22:20 <HackEgo> ls: invalid option -- ' ' \ Try `ls --help' for more information.
19:22:24 <oerjan> `run ls -l paste/paste.30692
19:22:25 <HackEgo> -rw-r--r-- 1 5000 5000 7586437 Feb 26 19:21 paste/paste.30692
19:24:56 <fizzie> Seems to be a lot of pastes and a single quotes change.
19:29:02 <oerjan> `run hg diff -c 4468 | patch --dry-run -R | paste
19:29:07 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.26081
19:29:24 <fizzie> I'm not sure why patch -R would put those in root when they're clearly in the "paste" subdir, though.
19:30:13 <oerjan> `run mv paste/paste.26081{,.txt}
19:30:48 <fizzie> That's what it seems to do, though.
19:31:30 <oerjan> `file paste/paste.26081.txt
19:31:31 <HackEgo> paste/paste.26081.txt: ASCII text
19:32:04 <oerjan> Gregor: why doesn't it get shown as text in browser :(
19:33:04 <fizzie> I think it's some weirdness in patch -R when the "new" file is /dev/null, like it is for deletions.
19:33:10 <oerjan> oh right the lines in quotes were deleted entirely later, so there's nothing to revert there.
19:34:36 <elliott> maybe hg has something that can do undo by itself
19:34:54 -!- shikhout has joined.
19:35:17 <fizzie> FWIW, explicitly specifying the correct path stripping by adding a -p1 to patch -R makes at least that patch work.
19:35:31 <fizzie> (Can't guarantee if that's the case for any and all hg diff outputs.)
19:36:30 <fizzie> (Where "work" means creating the paste.X files in paste/ instead of ., nothing more.)
19:37:54 -!- shikhin has quit (Ping timeout: 250 seconds).
19:37:56 -!- shikhout has changed nick to shikhin.
19:38:39 -!- nooodl_ has joined.
19:40:48 -!- yorick_ has joined.
19:40:58 <kmc> Emscripten C supports "inline JS" a la inline ASM
19:42:16 <olsner> hmm, not actual inline asm that accepts javascript?
19:42:24 -!- chaiomanot_ has joined.
19:42:37 <fizzie> olsner: It's pretty much that.
19:42:52 <fizzie> Even the macro to include those is called EM_ASM.
19:43:11 <fizzie> I think I used that for something.
19:44:25 <kmc> what have you used emscripten for?
19:45:17 <fizzie> I compiled kissfft with it, and used it for an in-the-browser "turn an audio file to magnitude spectrogram image" and "turn a magnitude spectrogram image to an audio signal" wizard thing.
19:45:41 <fizzie> Except it's stuck being 90% done after I got sidetracked with other things.
19:46:02 <fizzie> The idea was that you could use that if you wanted to, say, draw on your sound in Gimp or something.
19:46:10 <quintopia> oerjan: i just assumed the ? would be filled in on the fly the same way the unknowns were in ais's. most of them seem to correspond to a linear function in c.
19:46:13 <kmc> olsner: well it works by processing the LLVM output of unmodified (?) clang; I don't know exactly how inline ASM is propagated through LLVM but it might upset clang
19:46:41 -!- Speed`` has joined.
19:47:11 <kmc> looks like EM_ASM(2+2) => emscripten_asm_const("2+2") and the LLVM-reading backend will turn that function call back into JS
19:47:22 <kmc> this all counts as esoprogramming right?
19:47:36 -!- Slereah has quit (*.net *.split).
19:47:37 -!- nooodl has quit (*.net *.split).
19:47:38 -!- Sorella has quit (*.net *.split).
19:47:40 -!- yorick has quit (*.net *.split).
19:47:42 -!- chaiomanot has quit (*.net *.split).
19:47:44 -!- sebbu has quit (*.net *.split).
19:47:45 -!- Speed` has quit (*.net *.split).
19:47:46 * Bike reads last three lines in isolation. yes, yes it does
19:48:05 <kmc> I always thought of Emscripten as a really clever and amusing esoprogramming hack and so I was kind of terrified when I learned that Mozilla is nearly betting the company on it
19:48:29 <kmc> but (with asm.js) it works far, far better than it has any right to
19:48:35 <fizzie> I was about to say that you might be hurting the feelings of the emscripten folks by calling it esoprogramming.
19:48:43 <elliott> kmc: how is it nearly betting the company on it?
19:49:00 -!- yorick_ has changed nick to yorick.
19:49:40 <kmc> as in, you can get a million line commercial AAA game engine running with good performance in a week
19:49:57 -!- impomatic has joined.
19:51:31 <kmc> elliott: well moving more kinds of content to the web platform is a major goal
19:51:52 <oerjan> quintopia: being haskell, they're filled out lazily. and yes the functions are linear, somewhat in c but also in i, the current state index.
19:51:54 <kmc> and Emscripten+asm.js is the approach for doing this for high performance graphics-intensive "native" apps, i.e. games
19:52:18 -!- ski has quit (Quit: Lost terminal).
19:52:18 <kmc> without expecting game publishers to do a ton of work
19:53:19 <elliott> kmc: how does shumway fit into that picture?
19:53:27 <kmc> the goal is that porting a game to run in Firefox is no harder than porting it to another console / mobile OS
19:53:34 <elliott> what if you just emscriptenned lightspark or something :3
19:53:37 <kmc> (which is especially important now that Firefox is a mobile OS)
19:54:12 <kmc> elliott: ha well that's how I got to thinking about exploits; what if we could just get Adobe to give us the source to Flash (as they have for Google and apparently Microsoft) and we compile it to JS
19:54:26 <kmc> but fuck that, Shumway is much cooler
19:54:30 <elliott> can't you just write an x86 -> asm.js compiler
19:54:41 -!- Sorella has joined.
19:56:33 <kmc> can't we just use http://bellard.org/jslinux/
19:56:46 <kmc> FABRICE BELLARD HAS A POSSE
19:59:17 <elliott> I'm actually kinda serious
19:59:24 <elliott> like that could be a nacl type dealie
19:59:39 <elliott> if you can do C -> asm.js it's probably feasible to do x86 -> asm.js to some degree?
20:00:25 <elliott> but: flash is way too slow anyway, I don't see even emscripten with the source code as viable??
20:00:32 <elliott> especially for video decoding
20:00:59 <kmc> yeah I don't know how Shumway handles / will handle video
20:01:04 -!- Bike_ has joined.
20:01:05 <kmc> that seems like an important use case
20:01:16 <kmc> YouTube may embrace HTML5 but there is a long tail of video sites that don't give a shit
20:01:29 -!- zzo38 has quit (Ping timeout: 272 seconds).
20:01:30 -!- Sorella has quit (Ping timeout: 272 seconds).
20:01:30 -!- impomatic has quit (Ping timeout: 272 seconds).
20:01:31 -!- FreeFull has quit (Ping timeout: 272 seconds).
20:01:32 -!- JZTech101 has quit (Ping timeout: 272 seconds).
20:01:34 -!- yorick has quit (Ping timeout: 272 seconds).
20:01:35 -!- Bike has quit (Ping timeout: 272 seconds).
20:01:40 -!- FreeFull has joined.
20:01:43 <kmc> especially the ones providing the kind of... video content that has historically played a huge role in technology adoption
20:01:46 -!- FreeFull has quit (Changing host).
20:01:46 -!- FreeFull has joined.
20:01:59 <elliott> I'm sure some porn site has advertised HTML5 support.
20:02:16 <elliott> well, firefox can do H.264 and stuff now because of binary blobs, right?
20:02:26 <elliott> probably *faster* than flash can -_-
20:02:45 <kmc> oh I guess all the sites that support iOS will have a non-Flash version
20:02:52 -!- Guest23510 has joined.
20:02:53 -!- zzo38 has joined.
20:03:18 -!- yorick has joined.
20:03:20 -!- Sorella has joined.
20:03:21 -!- yorick has quit (Read error: Connection reset by peer).
20:05:31 -!- Sorella has quit (Client Quit).
20:06:21 -!- yorick has joined.
20:09:51 -!- Guest23510 has changed nick to JZTech101.
20:09:52 -!- JZTech101 has quit (Changing host).
20:09:52 -!- JZTech101 has joined.
20:12:14 -!- augur has quit (Remote host closed the connection).
20:18:08 <oerjan> quintopia: mind you, it's not as on the fly as it _could_ have been, i do use explicit formulas for stuff. but before i realized anything else was overkill, at one point i considered making a label-tracking monad.
20:18:48 -!- Sprocklem has quit (*.net *.split).
20:19:48 -!- Sprocklem has joined.
20:23:36 <fizzie> YouTube's "embracing" of HTML5 seems p. flaky.
20:24:01 <fizzie> Anecdotally speaking, I've been getting a lot more Flash videos than HTML5 videos lately, even having opted-in.
20:24:38 <fizzie> (It's easy to notice, because Flash defullscreens when I move focus to another monitor, while the HTML5 player doesn't.)
20:27:39 -!- impomatic has joined.
20:31:14 <impomatic> Does anyone live near Nottingham, UK? http://geekup.org/events/385/
20:31:29 <impomatic> "Peter Cooper presents a quick tour of the long history of robot-based programming games"
20:34:06 <Bike_> fizzie: same. they've had this beta for what, months
20:34:26 -!- Sprocklem has quit (Ping timeout: 264 seconds).
20:35:08 <kmc> the hams hex and notting
20:35:20 <fizzie> Bike_: http://youtube-global.blogspot.fi/2010/01/introducing-youtube-html5-supported.html -- four years and a bit.
20:35:57 <fizzie> Better safe than sorry, y'see.
20:36:09 -!- Bike_ has changed nick to Bike.
20:36:16 <Bike> I was going to say "years" but i figured i must be exaggreating
20:37:25 <oerjan> kmc: don't forget birming
20:38:35 -!- sebbu has joined.
20:39:12 -!- sebbu has quit (Changing host).
20:39:12 -!- sebbu has joined.
20:41:10 <kmc> are there #esotericans in the ham of birming?
20:42:15 <olsner> how many hams are there?
20:42:42 <kmc> a lot http://en.wikipedia.org/wiki/List_of_generic_forms_in_place_names_in_the_United_Kingdom_and_Ireland
20:43:20 -!- Phantom_Hoover has joined.
20:43:21 <kmc> it's an old english word meaning "farm" or "homestead"
20:43:28 -!- clog has quit (Ping timeout: 252 seconds).
20:43:28 <kmc> i suppose that the modern word "hamlet" is related
20:43:36 -!- clog has joined.
20:43:44 <olsner> hamlet sounds like it means small ham
20:44:44 <olsner> that or a port or harbour
20:49:34 <Bike> are you telling me you're not a sham
20:49:37 <Bike> i feel... betrayed
20:50:01 <newsham> just a n00b in the shire, i'm afraid
20:50:15 <Bike> is the sham that you're not a sham
20:54:59 <Taneb> kmc> the hams hex and notting Well, dur
20:58:23 -!- Sprocklem has joined.
20:58:50 <newsham> try standing on your head and reading it upsdie down
20:59:14 -!- augur has joined.
21:02:29 <oerjan> btw i was speaking to Taneb hth
21:04:50 <Taneb> You know, I don't think I know anyone actually from York
21:06:37 <oerjan> maybe there aren't any.
21:06:53 <oerjan> perhaps everyone in york is from elsewhere.
21:07:15 <kmc> fun fact: York used to be known as Amsterdam
21:08:54 <oerjan> i think ic what you did there, except on the incredibly unlikely chance that it's literally true.
21:09:14 <Taneb> (oerjan, it is not literally true)
21:09:25 <Taneb> (York was known as Eboracum, then later Jorvik)
21:10:23 <olsner> oerjan: if so, it wouldn't be a fun fact
21:11:11 <HackEgo> fun fact 0 = 1 | fact n = n * fact (n - 1)
21:11:50 <olsner> This sentence is (not?) a fun fact when preceded by fun fact.
21:12:03 <Taneb> `learn York used to be known as Amsterdam.
21:12:40 <newsham> what was portishead known as before?
21:12:57 <newsham> "even old new york was once new amsterdam"
21:18:18 -!- jix has joined.
21:20:34 -!- jix_ has quit (Read error: Operation timed out).
21:20:35 -!- ggherdov has quit (Ping timeout: 252 seconds).
21:20:36 -!- myname has quit (Ping timeout: 252 seconds).
21:24:21 -!- myname has joined.
21:25:02 -!- oerjan has quit (Quit: That's nobody's business but the Turks).
21:33:02 -!- ggherdov has joined.
21:35:25 -!- lifthrasiir has joined.
21:35:46 -!- lifthras1ir has quit (Ping timeout: 252 seconds).
21:36:16 -!- Gregor has quit (Ping timeout: 252 seconds).
21:36:23 -!- Gregor has joined.
21:54:35 -!- augur has quit (Remote host closed the connection).
22:00:47 -!- augur has joined.
22:01:58 -!- mm_ has joined.
22:02:41 -!- mm_ has quit (Client Quit).
22:20:06 -!- Sprocklem has quit (Ping timeout: 265 seconds).
22:20:13 -!- augur has quit (Remote host closed the connection).
22:20:50 -!- augur has joined.
22:21:43 <fungot> FireFly: you are using mit scheme. :) for me,
22:21:59 <FireFly> fungot: I actually haven't tried MIT Scheme
22:21:59 <fungot> FireFly: interesting comparison :) congradulations." --olin shivers' original papers on scsh, so that *it* gets the job done
22:24:29 -!- augur_ has joined.
22:24:41 -!- augur has quit (Read error: Connection reset by peer).
22:25:49 <fizzie> FireFly: I think fungot's implying you should.
22:25:50 <fungot> fizzie: say hello, world!" looks like thorn. he's also my advisor... i'm fucked))
22:26:11 -!- zzo38 has quit (Remote host closed the connection).
22:27:54 -!- augur_ has quit (Remote host closed the connection).
22:47:05 <impomatic> If anyone is in Vienna, there's a Core War workshop at Metalab on Friday :-)
23:09:25 -!- augur has joined.
23:11:39 -!- nisstyre has joined.
23:13:37 -!- augur has quit (Remote host closed the connection).
23:17:01 -!- augur has joined.
23:18:12 -!- augur has quit (Remote host closed the connection).
23:33:12 -!- Frooxius has quit (Ping timeout: 240 seconds).
23:34:25 <HackEgo> lircoin bridictagcoin merecoin smatiocoin sorycoin bryotcoin basecomcoin oracoin inecoin reverdenitumcoin ischecoin bubbllcoin lakadeliuacoin mosteputrcoin vcoin netinuscoin gotcoin pooncoin mempocoin falcoin
23:37:25 <kmc> http://www.adampetersen.se/articles/fizzbuzz.htm
23:40:55 -!- augur has joined.
23:42:45 <Bike> nice n practical
23:45:33 -!- augur has quit (Ping timeout: 252 seconds).
23:49:27 -!- nooodl_ has quit (Quit: Ik ga weg).
23:59:16 -!- Sprocklem has joined.