00:00:06 <b_jonas> I assume the graphics has to read from the RAM quickly
00:00:21 <pikhq> By way of comparison, DDR 1 has a 64-bit bus width.
00:01:36 <pikhq> And the latencies were kinda dumb. PC-800 RAM had a 45 ns latency.
00:02:07 <b_jonas> RAM latencies are always high. they have to be because of the physical distances involved. the signal can't travel faster than light speed.
00:02:23 <pikhq> 45 ns is 4 times higher than DDR.
00:02:42 <pikhq> Or more, if you aren't looking at the _slowest_ variety.
00:04:08 -!- b_jonas has quit (Quit: leaving).
00:04:37 <oerjan> <b_jonas> fizzie: I still don't understand why Hungary can have settlements called Csabaszabadi, Rábaszentandrás, Rábaszentmihály, and Rábaszentmiklós <-- you do realize one has to know hungarian to get anything more than "given the prior discussion there's probably some bad words hidden in there, but i have no idea which ones", right?
00:05:40 -!- FreeFull has quit.
00:06:59 -!- FreeFull has joined.
00:11:03 <oerjan> fantastic timing there
00:11:46 <shachaf> is it just me or is "you do realize ..., right?" a very rude idiom?
00:12:28 <shachaf> usually people say it when they think someone doesn't realize something, but also it's so obvious that they should realize it and feel bad for not having done so
00:13:08 <shachaf> or otherwise accusing them of saying something wrong despite realizing
00:15:20 <oerjan> i should perhaps have rephrased. i was annoyed, and then got _more_ annoyed because it's so awkward to edit long lines in irssi.
00:15:31 <shachaf> I mean, it's also a standard idiom.
00:15:40 <shachaf> I'm just confusil that it's so standard when it seems so rude.
00:15:58 -!- ais523 has quit (Quit: quit).
00:16:01 <oerjan> that's because these days it's standard to be rude hth
00:16:12 <HackEso> Your omnidryad saddle principal ideal golfing toe-obsessed "Darth Ook" oerjan the shifty eldrazi grinch is a punctual expert in minor compaction. Also a Groadep who minces Roald Dahl. He could never remember the word "amortized" so he put it here for convenience. His ark-nemesis is Noah. He twice punned without noticing it.
00:16:42 <oerjan> heck, even "is it just me" has rude connotations.
00:16:55 <oerjan> (to play the ball back)
00:17:08 <shachaf> fight rudeness with rudeness
00:20:37 <kmc> "You do realize that starting a sentence with 'You do realize' makes you sound like a dick, right?"
00:20:45 <kmc> but whatever
00:22:02 <shachaf> it's `c̀ool to be rudé´ on the internet, isn't it
00:22:47 <shachaf> you gotta do it ironically. but on the internet doing something ironically is the same as actually doing it.
00:22:59 <int-e> shachaf: I believe the proper term is "condescending".
00:23:45 * oerjan looks askance at int-e for sending him on a schlock mercenary binge
00:23:49 <zzo38> I think it helps to be clarified though
00:23:50 <int-e> shachaf: You should appreciate the fact that I did not start that sentence with "You do realize that". :-P
00:24:14 <int-e> (But I couldn't help myself.)
00:24:29 <kmc> one of the reasons I stopped using Twitter is that rude / condescending seems to be the norm there
00:24:32 <kmc> of course, it depends who you follow
00:24:40 <kmc> but I found myself doing it too and that sucks
00:24:42 <shachaf> my twitterxperiences seem different from yours
00:25:09 <shachaf> probably because of a superior unfollow policy
00:25:20 <int-e> oerjan: The author's advice is to skip the first couple of years. (That said, I enjoyed those as well.)
00:25:28 <shachaf> where if people said things that made me sad and didn't produce a lot of other value i'd stop reading their things
00:25:33 <kmc> but I think to the degree people talk about politics and stuff, the default is either sarcastic dismissal or condescending mini-lectures
00:25:41 <kmc> which are meant more to get applause from the people who already agree
00:25:49 <int-e> (But the writing and art has imrproved noticably since then.)
00:25:53 <kmc> shachaf: yeah well it helps if you aren't following people who are bad for you out of guilt
00:26:02 <kmc> a happier thing
00:26:09 <kmc> there have been many cats on this trip
00:26:11 <kmc> https://imgur.com/a/LzI4Rlb
00:26:44 <zzo38> They don't give me permission to access /dev/vcsa1 even though I am logged in to that one
00:26:46 <shachaf> cats are pretty reasonable creatures
00:26:55 <oerjan> int-e: i didn't start at the beginning, i googled for "fermi paradox" and am currently in late 2016.
00:26:57 <kmc> I was at another house which had 7 cats, but i didn't see any of them
00:27:07 <kmc> they were hiding from the three dogs and many humans
00:27:49 <shachaf> I visited a place that had two cats but one of them was of the scaredy variety.
00:27:58 <shachaf> It took several days before he even came out of hiding.
00:28:11 <shachaf> But eventually he came and sat on me and purred!
00:28:22 <shachaf> Which is a thing few people can say, apparently.
00:29:31 <shachaf> The other cat was of the same notch.
00:29:45 <shachaf> Come to think of it, I'm hard-pressed to think of any other notch of cat.
00:31:59 <HackEso> Cats are cool, but should be illegal.
00:33:01 <shachaf> Did you know writing C is the best?
00:33:16 <fizzie> Cats are kind of unpredictable. When we got a cat and let it out of the carrying cage at home for the first time, we expected it to do the normal cat thing of finding a corner to hide in and then carefully exploring out, but it just went immediately around every room and in general just behaved as if it had always lived there.
00:33:26 <int-e> I actually wrote some C today. Nothing useful.
00:33:49 <shachaf> They're unpredictable because they're mammals with a brain+personality.
00:33:55 <shachaf> Which is pretty great. I'm a fan of mammals.
00:33:58 <int-e> I wrote more Coq today than that... nothing useful either ;-)
00:34:28 <int-e> (I suppose technically the Coq stuff happened yesterday.)
00:34:47 <oerjan> seems my binge has covered only about a year, and it still ruined my sleep cycle.
00:34:47 <shachaf> Did you see the fancy C printf I did?
00:34:56 <shachaf> http://slbkbs.org/tmp/fmt.txt
00:35:34 <shachaf> Hmm, it's made some kinds of debugging a bit faster.
00:35:51 <shachaf> I think it may be a little too hacky to actually use for real code, but I'm not sure.
00:39:21 <int-e> the CUSTOM_FMT_TYPES probably doesn't scale just like that?
00:39:49 <shachaf> Every argument expands to something that includes _Generic(..., CUSTOM_FMT_TYPES)
00:40:49 <shachaf> So it's probably not a good idea to put any ol' type in it.
00:41:32 <int-e> though I guess you could hack something slightly more robust with a central registry and some __attribute__((constructor)) magic.
00:41:34 <shachaf> But it's nice to put a few standard types in it. So you can outfmt("position is {}", v); rather than printf("position is %f,%f", v.x, v.y);
00:41:50 <shachaf> How would you get the type information?
00:42:29 <fizzie> It's invalid to have two associations that specify compatible types, so I guess that directly rules out custom formatting of anything that appears in the "...".
00:42:59 <shachaf> Sure. But the ... is just a few built-in types.
00:43:10 <zzo38> For structures you define yourself, you can use zero length arrays to determine a type identifier at compile time, at least in GNU C.
00:43:11 <int-e> shachaf: Right, I wouldn't. I missed the point that the format specifiers don't actually describe the type.
00:43:32 <shachaf> If you really cared you could have a flag to take the built-in types out and make everything custom.
00:44:02 <shachaf> Also, some format specifiers just ignore the type. So you can use {:p} to print out a pointer regardless of the type.
00:44:11 <shachaf> Presumably I could make those customizable as well.
00:44:54 <shachaf> outfmt("{:your_thing}", your_thing_value);, where you have to take care to match up your_thing with the type.
00:45:48 <shachaf> But it's sure nice when it's automatic, and you don't have to remember to do %ld or %zu or %"PRIi64" or whatever!
00:46:33 <int-e> The PR* macros do look messy.
00:47:05 <shachaf> I just wish C had a bit of runtime type information for this kind of thing.
00:47:23 <int-e> guess what the surrounding code is doing: printf("%08"PRIx32"%08"PRIx32"%08"PRIx32"%08"PRIx32"\n", bswap_32(H.a), bswap_32(H.b), bswap_32(H.c), bswap_32(H.d));
00:48:12 <zzo38> I think that often you can use compile time type information and you do not need runtime type information.
00:48:18 <int-e> (that line is printing an md5 hash)
00:48:24 <shachaf> zzo38: OK, then I wish C had that.
00:48:32 <fizzie> int-e: I guessed MD5 from the a, b, c, d names and the 128 bits.
00:48:47 <shachaf> Oh, I have a line that prints a sha1 hash.
00:48:49 <int-e> fizzie: yeah, that was the idea.
00:49:02 <shachaf> "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x"
00:49:09 <int-e> fizzie: that one could reasonably infer MD5 from precisely those bits.
00:49:21 <zzo38> shachaf: I mentioned a way in which you can sometimes do it, in GNU C. (GNU C also has some other built-ins which may be helpful for type information too)
00:49:27 <fizzie> It took me too long to look up the RFC to validate the guess, unfortunately.
00:49:33 <int-e> (and maybe the H which is a common abbreviation for hashes)
00:49:54 <fizzie> I think SHA-1 adds an "E".
00:50:03 <int-e> fizzie: I didn't think anyone would seriously take me up on this, so sorry for not waiting longer. :)
00:50:25 <shachaf> Hmm, is this a use of byte swap that doesn't depend on machine endianness?
00:50:39 <int-e> shachaf: because that's the order in which the bytes of the word are usually printed, least significant byte first.
00:50:59 <int-e> But the hash itself is defined by operating on 32 bit words.
00:51:15 <int-e> (four of them at a time)
00:51:33 <shachaf> Oh man, MD5 is specified to be little-endian?
00:51:49 -!- ais523 has joined.
00:51:50 <shachaf> I implemented sha1 a few days ago and it's specified to be big-endian.
00:52:12 <shachaf> Of course nowadays you should use neither of these hashes. But sha1 is by far not the worst part of the thing I was implementing.
00:53:05 <fizzie> I know for sure I've implemented either MD5 or SHA-1 (or both) for *something*, but I have no recollection what it could've been for.
00:53:30 <shachaf> I've implemented sha1 at least twice.
00:53:45 <shachaf> The first time was in Ruby and operating on strings of the characters '0' and '1'
00:53:47 <int-e> shachaf: "The message digest produced as output is A, B, C, D. That is, we begin with the low-order byte of A, and end with the high-order byte of D."
00:53:59 <int-e> So yeah, little endian is specified.
00:53:59 <shachaf> It was for a length extension attack for a capture the flag context. I think kmc did it as well.
00:54:00 * pikhq has implemented a number of cryptographic primitives for shits and giggles
00:54:16 <ais523> the funny thing is that the byte order in cryptohashes is completely arbitrary anyway
00:54:22 <ais523> so it's not even little-endian, it's more like ABCD-endian
00:54:23 <pikhq> Chacha20 is one of the more pleasant ones.
00:54:47 <pikhq> (too dumb to fuck up that hard)
00:55:17 <shachaf> I like the thing Bernstein says about how if people keep not implementing your primitives correctly then you should fix the primitives rather than blame the implementors.
00:55:47 <kmc> how about we do both
00:55:56 <pikhq> I can get behind that one.
00:56:17 <pikhq> Devs should be more rigorous with crypto code, but crypto primitives should tolerate worse programmers than they do currently.
00:56:20 <shachaf> If every single implementor does it wrong?
00:56:29 <ais523> then you have Underload :-D
00:57:01 <int-e> shachaf: you should have a reference implementation? (which may be wrong)
00:57:27 <shachaf> int-e: By "correctly" I include things like being constant time.
00:57:36 <shachaf> Not just the values computed.
00:57:36 <ais523> the only cases which come to mind where a cryptoprimitive may be "too hard" to implement are to do with sidechannels
00:57:44 <ais523> like the timing issues shachaf mentioned
00:57:55 <ais523> I'm not sure constant-time operations are even possible on modern processors
00:58:11 <ais523> given that they're effectively miniature JITs
00:58:19 <int-e> "constant-time" means "distribution of times does not depend on inputs" ;-)
00:58:22 <zzo38> ais523: That is one thing I wanted to make the computer that does have constant-time operations.
00:58:28 <pikhq> They often aren't, but for cryptographic purposes you don't care about being constant-time per se.
00:58:39 <pikhq> You care about having execution time that is not a function of secret data.
00:58:50 <ais523> zzo38: many older processors do, e.g. the 6502 has rigidly defined timing rules for every operation, which can be used to make delays that last a precise number of clock cycles
00:59:02 <zzo38> Yes, I want to do like that.
00:59:11 <pikhq> Constant time is a nice way to get there, but it is strictly more powerful than needed to avoid timing side-channels.
00:59:47 <ais523> the hardware compilers I was working on used constant-time operations where possible in order to choreograph the pipelining
01:00:22 <ais523> (instead of doing things like register forwarding, they used pipelining for parallelism, effectively running a large number of different threads through the implementations of the same instructions; I suspect modern GPUs do something similar)
01:01:02 <pikhq> Of course, if you're the NSA you have a vested interest in getting people to use ciphers that are _hard_ to avoid timing side-channels in.
01:01:04 <ais523> even then, though, power draw would be an obvious alternative side-channel to use
01:01:35 <ais523> I think secure smart-cards do things like storing every bit as a pair of a 0 and a 1 so that the power draw when processing it is approximately constant
01:01:42 <shachaf> Power draw seems much less concerning than timing.
01:02:10 <pikhq> It shouldn't be discounted, but whether or not it matters depends a lot on your threat model.
01:02:59 <pikhq> e.g. are you concerned about leaking secret data to someone in physical proximity to the device, or just someone with access to timing data in some fashion?
01:03:02 <shachaf> I mean that it's much less widely applicable.
01:03:22 <pikhq> You mean to tell me you can't measure power usage over the Internet?
01:04:32 <shachaf> Do you like https://sorting.cr.yp.to/ ?
01:05:22 <ais523> pikhq: there are known side-channel attacks where people have measured power usage over the internet by using it to indirectly affect the room temperature, then determine /that/ from timing attacks
01:05:31 <int-e> shachaf: Oh MD5 actually mixes endianness... 0x80 is the first bit of a byte. (This is visible in the specification because MD5 actually supports bit string messages whose length is not divisible by 8).
01:05:32 <ais523> I think, at least, it's a vague memory from a while ago
01:05:40 <ais523> somehow I doubt that that technique is very accurate :-D
01:05:47 <shachaf> int-e: Ah, right, the padding works by appending a 1 bit.
01:07:25 <pikhq> ais523: This sounds hard to pull off except in some limited cases.
01:08:15 <ais523> you'd probably have to concentrate on trying to magnify the effect of a single bit of the secret data as far as possible, running the same computation billions of times
01:13:07 <ais523> according to https://en.wikipedia.org/wiki/Power_analysis the attack's mainly used by people with physical access, I can see why
01:18:18 <orin> Firefox put out a blog post, which still doesn't adress the root of the problem
01:18:54 <orin> which is that they designed their system such that a single certificate caused all add-ons to be disabled, for everyone, everywhere
01:19:22 <ais523> orin: actually, what worries me more is that they can somehow fix the issue without re-signing every add-on
01:22:56 <orin> the fact that they disabled everyone's adblock is a giant security risk. probably much bigger than allowing unsigned add ons
01:25:31 <orin> the way I see it, they should check the addons when they are installed. but never disable a previously installed add one
01:34:37 <zzo38> They should check them once they are installed, and then warn the user if it is not valid but allow installing it anyways if the user accepts it (the user must accept it even if the certificate is valid, because they might not want to install it), and then don't disable a previously installed add-on (the exception is if the user has enabled automatic updates for that add-on, the add-on has been revoked, and the user hasn't disabled revoking add-on
01:42:59 <pikhq> ais523: I think that's just x509 being a touch weird. You sign things with the secret key associated with a cert, but trust based on the cert itself. So if you get a renewed cert with the same secret key, all those signatures are magically valid when tested against the new cert.
01:56:23 <ais523> apparently there's a remote power usage attack nowadays using FPGAs; presumably you have access to the FPGA on one user account, and are trying to attack data it doesn't have access to side-channel-wise
01:56:35 <ais523> FPGAs are configurable enough that getting one of them to detect power drain seems viable
01:56:56 <ais523> but of course, it's still fairly rare for computers to contain software-configurable FPGA coprocessors (not unheard of, though)
02:00:09 <int-e> https://aws.amazon.com/ec2/instance-types/f1/
02:01:28 <int-e> (cloud servers are a juicy target for side channel attacks)
02:01:57 <ais523> the real problem with FPGA coprocessing is trying to find a task that FPGAs are good at but both CPUs and GPUS are bad at
02:02:08 <ais523> (this is difficult because FPGAs are somewhere between CPUs and GPUs in terms of performance properties)
02:03:28 <int-e> https://www.csail.mit.edu/news/programmers-solve-mits-20-year-old-cryptographic-puzzle may be such a thing - essentially: multiplying large but fixed size numbers (2048 bits in that case).
02:04:36 <ais523> OK, so you use your entire FPGA space to create yourself a combinatorial multiplier, I guess, and use that? CPUs and GPUs will typically have combinatorial multipliers, but not ones 2048 bits wide
02:05:10 <ais523> although I'm not sure if a typical FPGA even has that much logic space; I think some of the really expensive large ones would
02:05:32 <int-e> essentially FPGAs have massive bandwidth
02:05:54 <int-e> while memory bandwidth is limited on CPUs and on GPUs as well.
02:06:05 <ais523> well the "square this number trillions of times" problem doesn't really need bandwidth, just a really fast squaring circuit
02:06:19 <ais523> squaring is probably less space-intensive than multiplication due to symmetry
02:06:41 <int-e> but I'd agree that it's hard to find tasks where using FPGAs pays off.
02:06:47 <ais523> FPGAs are also fairly limited on memory bandwidth but they let you put special-purpose caches in random places, which makes up for it
02:07:51 <int-e> Yeah but you *can* operate on many bits in parallel and also propagate that information to the next functional building block in a massively parallel fashion.
02:08:12 <ais523> int-e: that's what a combinatorial circuit is
02:08:16 <int-e> GPUs can do the former, but fail at the latter.
02:08:26 <ais523> a function as complex as you like, running in just a single clock cycle
02:08:44 <ais523> GPUs are actually fairly good at the propagation, the problem is just that they have to loop through their list of instructions to get there
02:09:03 <ais523> so they're never going to be as fast as the combinatorial solution
02:09:27 <ais523> that said, I hate to think how complex the circuit would have to be to run the clock at all fast when you're trying to multiply 2048 bits per cycle
02:12:24 <int-e> Well from the data in the article, the CPU is taking over a microsecond per modular squaring, 4k clock cycles. You're trying to beat that, so it doesn't have to run in a single clock cycle at all.
02:13:12 <int-e> "Cryptophage can do one 2048 bit modular squaring approximately every 70 nanoseconds. In comparison, a high-end desktop processor would take over 1000 nanoseconds to complete the same operation."
02:20:17 <int-e> I wish they would say what FPGA they used for that... will have to wait.
02:20:41 <int-e> But I should also sleep...
02:24:44 -!- tromp has joined.
02:24:50 <ais523> looking up some statistics on large FPGA multipiers, I'd predict about 40ns per clock cycle for a 2048-bit karatsuba-ofman multiplier (which is combinatorial), space usage seems pretty frightening but should still be well under a million LUTs
02:25:20 <ais523> that said, the FPGA would almost certainly run out of dedicated multiplication circuits unless it were very large, so you'd have to build them out of logic gates
02:29:12 -!- tromp has quit (Ping timeout: 258 seconds).
02:34:17 <zzo38> I get a "Invalid argument" error when trying to use GIO_FONTX to read the font from the screen. Why doesn't it work?
02:35:26 <zzo38> Loading the palette works, and loading the contents of the screen also works, but the font doesn't work.
02:38:23 -!- john_metcalf has quit (Ping timeout: 255 seconds).
02:47:15 -!- Lord_of_Life has quit (Ping timeout: 244 seconds).
02:47:52 -!- Lord_of_Life has joined.
03:03:36 -!- ais523 has quit (Quit: quit).
03:20:42 <zzo38> I found out by looking at other program source codes that KDFONTOP works, so now it works.
03:37:53 <zzo38> Now I made the ff-vccapture program, which works for me, but if it doesn't work on your computer then you should please report it (and if you know how to fix it, report that too).
03:55:19 <zzo38> Now they did something else in the Magic: the Gathering rules: Now there are no line feeds.
03:56:56 -!- weston has joined.
03:57:24 <weston> !ztest name [-][-]+[+]>+++++>>-[+]<[-]--[]>[++]+>>++<+++++++>+>>[+]<<+>++++++++<+[+]+++<+++++++<+[+]+++++++++>+[+]+<+++[+]+>++++++++<+[+]+<++++++++<+<+++++++++>+>+++>+<<+<+>++[+]+<+++++++>+[+]+<+++++++>+>++>[+]+++>++++++++<+[+]+++<++++++++<+<+++++++++>+>++>[+]<<+<+>+<+++++>+>++>[+]<++++>+++++++++++++[+]+<+++++++>+>++>[+]+++>++++++++<+[+]+++<++++++++<+<+++++++++>+>++>[+]<<+<+>+<+++++>+>++>[+]<++++>++++++++<+[+]+++<+++++++<+[+]++++++
03:58:50 -!- S_Gautam has joined.
04:00:31 <weston> !ztest 46a1700 +++[]+++[+]+++++++[-[-]]++++++[[+]-]+++++[+]++++++++>>+>++>[+]++>+++++++++++<+[+]+
04:01:13 <weston> !ztest z <-+>+++[++--]+++[+]+++++++[-[-]]++++++[[+]-]+++++[+]++++++++>>+>++>[+]><+++->++++++++<>+++<+[+]+
04:01:22 <weston> !ztest z -+>+++[++--]+++[+]+++++++[-[-]]++++++[[+]-]+++++[+]++++++++>>+>++>[+]><+++->++++++++<>+++<+[+]+
04:01:48 <weston> !ztest z +++[]+++[+]+++++++[-[-]]++++++[[+]-]+++++[+]++++++++>>+>++>[+]++>+++++++++++<+[+]+
04:02:31 <weston> !ztest z [+>+>+<++>+<+>[+]+++>++++++++<+[+]++>[+]+++>+++++++<+[+]+++++<++>+<[+]+++<[++]++++++>+>++++++++<+[+]+++++++>+>+>++++<+++++++<++>+<+]++++++++<+[+]+++++++>+>+>++++<++++++[++]<+++++++>-[+]++++++++<[+]+++>++++++++<+<[+]+++<+[+]+++++++>+>+<++>+<+>[+]+++>++++++++[+]++>[+]++>+++++++<+[+]+<+[<]+++++++>+>+<++>+<+>[+]+++>++++>>++++++>+>+++++>+++++++<+[+]+++++++++>+>++>[+]<++<<<+>+<+++++++>[+]---->++++++>[+]---->-[-]+++++>[++<+++++++
04:02:31 <zemhill_______> weston: error: parse error: starting [ without a matching ]
04:02:43 <weston> !ztest z [+>+>+<++>+<+>[+]+++>++++++++<+[+]++>[+]+++>+++++++<+[+]+++++<++>+<[+]+++<[++]++++++>+>++++++++<+[+]+++++++>+>+>++++<+++++++<++>+<+]++++++++<+[+]+++++++>+>+>++++<++++++[++]<+++++++>-[+]++++++++<[+]+++>++++++++<+<[+]+++<+[+]+++++++>+>+<++>+<+>[+]+++>++++++++[+]++>[+]++>+++++++<+[+]+<+[<]+++++++>+>+<++>+<+>[+]+++>++++>>++++++>+>+++++>+++++++<+[+]+++++++++>+>++>[+]<++<<<+>+<+++++++>[+]---->++++++>[+]---->-[-]+++++>[++<+++++++
04:02:43 <zemhill_______> weston: error: parse error: starting [ without a matching ]
04:03:34 <weston> !ztest z [+>+>+<++>+<+>[+]+++>++++++++<+[+]++>[+]+++>+++++++<+[+]+++++<++>+<[+]+++<[++]++++++>+>++++++++<+[+]+++++++>+>+>++++<+++++++<++>+<+]++++++++<+[+]+++++++>+>+>++++<++++++[++]<+++++++>-[+]++++++++<[+]+++>++++++++<+<[+]+++<+[+]+++++++>+>+<++>+<+>[+]+++>++++++++[+]++>[+]++>+++++++<+[+]+<+[<]+++++++>+>+<++>+<+>[+]+++>++++>>++++++>+>+++++>+++++++<+[+]+++++++++>+>++>[+]<++<<<+>+<+++++++>[+]---->++++++>[+]---->-[-]+++++>[++<+++++++
04:03:34 <zemhill_______> weston: error: parse error: starting [ without a matching ]
04:03:45 <weston> !ztest z +>+>+<++>+<+>[+]+++>++++++++<+[+]++>[+]+++>+++++++<+[+]+++++<++>+<[+]+++<[++]++++++>+>++++++++<+[+]+++++++>+>+>++++<+++++++<++>+<+]++++++++<+[+]+++++++>+>+>++++<++++++[++]<+++++++>-[+]++++++++<[+]+++>++++++++<+<[+]+++<+[+]+++++++>+>+<++>+<+>[+]+++>++++++++[+]++>[+]++>+++++++<+[+]+<+[<]+++++++>+>+<++>+<+>[+]+++>++++>>++++++>+>+++++>+++++++<+[+]+++++++++>+>++>[+]<++<<<+>+<+++++++>[+]---->++++++>[+]---->-[-]+++++>[++<+++++++<
04:03:45 <zemhill_______> weston: error: parse error: terminating ] without a matching [
04:03:57 <weston> !ztest z [+>+>+<++>+<+>[+]+++>++++++++<+[+]++>[+]+++>+++++++<+[+]+++++<++>+<[+]+++<[++]++++++>+>++++++++<+[+]+++++++>+>+>++++<+++++++<++>+<+]++++++++<+[+]+++++++>+>+>++++<++++++[++]<+++++++>-[+]++++++++<[+]+++>++++++++<+<[+]+++<+[+]+++++++>+>+<++>+<+>[+]+++>++++++++[+]++>[+]++>+++++++<+[+]+<+[<]+++++++>+>+<++>+<+>[+]+++>++++>>++++++>+>+++++>+++++++<+[+]+++++++++>+>++>[+]<++<<<+>+<+++++++>[+]---->++++++>[+]---->-[-]+++++>[++<+++++++
04:03:57 <zemhill_______> weston: error: parse error: starting [ without a matching ]
04:06:27 -!- FreeFull has quit.
04:11:55 -!- weston has quit (Ping timeout: 256 seconds).
04:12:40 -!- tromp has joined.
04:17:18 -!- tromp has quit (Ping timeout: 258 seconds).
04:19:48 <esowiki> [[Keg/Golfing]] M https://esolangs.org/w/index.php?diff=61738&oldid=61725 * JonoCode9374 * (+36) /* Tips that do not seem to fit anywhere but still relate to golfing */ Is this what you meant?
04:20:28 <esowiki> [[Keg/Golfing]] M https://esolangs.org/w/index.php?diff=61739&oldid=61738 * JonoCode9374 * (+2) /* Tips that do not seem to fit anywhere but still relate to golfing */ I cant format
04:24:15 <esowiki> [[Keg]] M https://esolangs.org/w/index.php?diff=61740&oldid=61717 * JonoCode9374 * (-12) /* For Loops */ very minor editing
04:26:36 <esowiki> [[Keg/Golfing]] M https://esolangs.org/w/index.php?diff=61741&oldid=61739 * JonoCode9374 * (-36) /* Problem #1. Golf the Hello, World! program. */ Just some formatting
04:28:38 <esowiki> [[Keg/Golfing]] https://esolangs.org/w/index.php?diff=61742&oldid=61741 * JonoCode9374 * (-42) Just some formatting things.
04:30:11 <esowiki> [[User:JonoCode9374]] M https://esolangs.org/w/index.php?diff=61743&oldid=61732 * JonoCode9374 * (+43) very minor
04:32:52 -!- Lord_of_Life_ has joined.
04:33:23 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
04:34:03 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
05:28:22 <zzo38> My own method of posting NNTP articles is to prepare a "POSTQUIT file" and then to use "nc localhost 119 < article" to send it.
05:33:11 <zzo38> I have seen apparently some software that can display NNTP articles on a webpage will parse the text as markdown. I think that it should not do that unless the article contains a "Content-type: text/markdown" header; that indicates that it is in markdown format, so it is sensible to parse it as markdown in that case.
05:47:52 <shachaf> int-e: Do you think there's any solution for this fmt thing other than _Generic?
05:56:36 -!- imode has quit (Ping timeout: 252 seconds).
05:57:38 <zzo38> What does _Generic mean?
06:06:16 -!- oerjan has quit (Quit: Nite).
06:08:03 <shachaf> zzo38: It's a C99 feature.
06:08:46 <shachaf> _Generic(x, type1: value1, type2: value2: default: value3) will have the value value1 if x's type is type1, and so on.
06:08:57 <shachaf> It's how I made that fmt thing work.
06:54:24 -!- Lord_of_Life has quit (Ping timeout: 258 seconds).
07:00:23 -!- Lord_of_Life has joined.
07:19:13 -!- tromp has joined.
07:40:02 <esowiki> [[User:JonoCode9374]] M https://esolangs.org/w/index.php?diff=61744&oldid=61743 * JonoCode9374 * (-94) Very minor edit here folks.
07:48:13 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
08:00:18 -!- tromp has quit (Remote host closed the connection).
08:07:06 -!- nfd9001 has quit (Quit: Leaving).
08:07:40 -!- AnotherTest has joined.
08:14:47 -!- nfd9001 has joined.
08:20:42 -!- Frater_EST has joined.
08:27:38 -!- tromp has joined.
09:06:29 -!- tromp has quit (Remote host closed the connection).
09:14:33 -!- tromp has joined.
09:15:18 -!- tromp has quit (Remote host closed the connection).
09:18:16 -!- tromp has joined.
09:31:19 -!- tromp has quit (Remote host closed the connection).
10:01:33 -!- tromp has joined.
10:25:55 -!- wob_jonas has joined.
10:26:19 <wob_jonas> "<int-e> https://www.csail.mit.edu/news/programmers-solve-mits-20-year-old-cryptographic-puzzle may be such a thing - essentially: multiplying large but fixed size numbers (2048 bits in that case)." => that link is broken, or my firefox is broken
10:27:28 <wob_jonas> "<oerjan> you do realize one has to know hungarian to get anything more than "given the prior discussion there's probably some bad words hidden in there, but i have no idea which ones", right?" => nah, I've seen people know swearwords in dozens of languages. apparently it's a useful skill for driving a car.
10:27:44 <wob_jonas> so you can insult anyone on the road or something.
10:28:52 <wob_jonas> "<int-e> "constant-time" means "distribution of times does not depend on inputs" ;-)" => I'm not sure that's enough. the distrib also shouldn't depend on process state that the CPU might know about other than the inputs for that one operation too
10:32:07 <wob_jonas> zzo38: reading the font => is it a tty device, on linux, in VGA text mode (as opposed to linux framebuffer text console, which uses graphics mode of the video card)?
10:32:33 <wob_jonas> "<zzo38> Now they did something else in the Magic: the Gathering rules: Now there are no line feeds." => who are they?
10:33:46 <wob_jonas> shachaf: um, you could try to use C++ if you want to dispatch among types.
10:34:01 <wob_jonas> it's usually not too difficult to convert real C programs to C++
10:34:39 <wob_jonas> especially because there's a high amount of binary compatibility and header source compatibility, so you can convert only a subset of compilation units
10:37:46 <shachaf> Also, every real C program is undefined behavior in C++.
10:39:55 <Taneb> Most real C programs are undefined behaviour in C
10:40:49 -!- tromp has quit (Remote host closed the connection).
10:41:42 <int-e> wob_jonas: it comes down to defining "input" properly.
10:44:34 <wob_jonas> and it gets tricky, because not only does your special crypto algorithm have to be constant time, that would be easy, you also mustn't leak information in side channels in all the other non-crypto stuff that you run, unless they're definitely isolated from your secret data,
10:44:36 <int-e> wob_jonas: and maybe I should stress that this should hold in the presence of adverserial workloads (that selectively flush cashes etc.)
10:44:39 <wob_jonas> and in the end it just all gets impossible
10:56:23 <int-e> . o O ( please allow cookies from our site so that we know that you do not want us to track you. )
11:07:23 -!- Frater_EST has quit (Ping timeout: 244 seconds).
11:08:02 -!- Frater_EST has joined.
11:10:53 -!- tromp has joined.
11:12:04 -!- Frater_EST has left.
11:27:36 -!- tromp has quit (Remote host closed the connection).
11:34:00 -!- arseniiv has joined.
12:09:08 -!- AnotherTest has quit (Ping timeout: 252 seconds).
12:33:28 -!- AnotherTest has joined.
12:50:05 -!- imode has joined.
13:08:08 -!- tromp has joined.
13:31:38 <esowiki> [[Keg/Golfing]] M https://esolangs.org/w/index.php?diff=61745&oldid=61742 * A * (+102) Combine the tips into 9 tips
13:34:30 <esowiki> [[Keg/Golfing]] M https://esolangs.org/w/index.php?diff=61746&oldid=61745 * A * (-145) Delete a trivial tip (add it when functions are implemented)
13:36:49 <esowiki> [[Keg/Golfing]] M https://esolangs.org/w/index.php?diff=61747&oldid=61746 * A * (+76) /* Problem #1. Golf the Hello, World! program. */
13:37:32 <esowiki> [[Keg/Golfing]] M https://esolangs.org/w/index.php?diff=61748&oldid=61747 * A * (+2) grm: add subject that the pronoun refers to
13:42:11 <esowiki> [[Keg]] M https://esolangs.org/w/index.php?diff=61749&oldid=61740 * A * (-1) Minor typo
13:46:53 <esowiki> [[Keg/Golfing]] M https://esolangs.org/w/index.php?diff=61750&oldid=61748 * A * (+269) Add a tip that I recently concluded
13:57:52 <esowiki> [[Keg]] M https://esolangs.org/w/index.php?diff=61751&oldid=61749 * A * (-6) Tried my best to golf the Deadfish interpreter again
13:58:17 <esowiki> [[Keg]] M https://esolangs.org/w/index.php?diff=61752&oldid=61751 * A * (+0) /* Deadfish */
14:03:45 <esowiki> [[Keg/Golfing]] M https://esolangs.org/w/index.php?diff=61753&oldid=61750 * A * (+398)
14:04:52 <esowiki> [[Keg/Golfing]] M https://esolangs.org/w/index.php?diff=61754&oldid=61753 * A * (-4) Whoa, I used the same code snippet.
14:05:50 <esowiki> [[Keg/Golfing]] M https://esolangs.org/w/index.php?diff=61755&oldid=61754 * A * (-13) /* Problem #2. Golf the Deadfish interpreter. */
14:11:21 <esowiki> [[Keg]] M https://esolangs.org/w/index.php?diff=61756&oldid=61752 * A * (+163) /* Deadfish */
14:14:35 -!- user24 has joined.
14:14:40 <esowiki> [[Keg/Golfing]] M https://esolangs.org/w/index.php?diff=61757&oldid=61755 * A * (+399) Use my golfing idea(golfs down another byte)
14:16:19 <esowiki> [[Keg]] M https://esolangs.org/w/index.php?diff=61758&oldid=61756 * A * (-163) /* Deadfish */
14:17:40 <esowiki> [[Keg/Golfing]] M https://esolangs.org/w/index.php?diff=61759&oldid=61757 * A * (+77) /* Problem #2. Golf the Deadfish interpreter. */
14:30:44 <esowiki> [[Keg/Golfing]] M https://esolangs.org/w/index.php?diff=61760&oldid=61759 * A * (+238)
14:31:29 <esowiki> [[Keg]] M https://esolangs.org/w/index.php?diff=61761&oldid=61758 * A * (-1) Golfed it even more
14:32:17 <esowiki> [[Deadfish]] M https://esolangs.org/w/index.php?diff=61762&oldid=61685 * A * (-7) Add my golfed program in Keg.
14:35:18 -!- moei has joined.
14:36:00 -!- user24 has quit (Quit: Leaving).
14:38:32 <esowiki> [[Keg]] M https://esolangs.org/w/index.php?diff=61763&oldid=61761 * A * (-2) Slightly golfed it
14:42:57 -!- S_Gautam has joined.
14:46:11 <esowiki> [[Keg/Golfing]] M https://esolangs.org/w/index.php?diff=61764&oldid=61760 * A * (+1) /* Tips that do not seem to fit anywhere but still relate to golfing */
14:46:45 <esowiki> [[Keg/Golfing]] M https://esolangs.org/w/index.php?diff=61765&oldid=61764 * A * (-15) /* Problem #2. Golf the Deadfish interpreter. */
14:47:41 <esowiki> [[Keg/Golfing]] M https://esolangs.org/w/index.php?diff=61766&oldid=61765 * A * (+4) grm
14:50:20 <esowiki> [[Keg/Golfing]] M https://esolangs.org/w/index.php?diff=61767&oldid=61766 * A * (-9) Combine the tips into 9 tips again
14:53:36 <esowiki> [[User:JonoCode9374]] M https://esolangs.org/w/index.php?diff=61768&oldid=61744 * A * (+75) Add my joke post again
14:54:52 <esowiki> [[User:JonoCode9374]] M https://esolangs.org/w/index.php?diff=61769&oldid=61768 * A * (+30) Improve my post
14:56:13 <esowiki> [[User:JonoCode9374]] M https://esolangs.org/w/index.php?diff=61770&oldid=61769 * A * (+18) I am now sure on the subset.
14:58:54 <esowiki> [[User:JonoCode9374]] M https://esolangs.org/w/index.php?diff=61771&oldid=61770 * A * (+56) Add details
14:59:59 <esowiki> [[User:JonoCode9374]] M https://esolangs.org/w/index.php?diff=61772&oldid=61771 * A * (+11) More details
15:00:51 <esowiki> [[User:JonoCode9374]] M https://esolangs.org/w/index.php?diff=61773&oldid=61772 * A * (-30) Sorry for making too many edits...
15:09:44 -!- Sgeo has joined.
15:12:28 -!- Sgeo_ has quit (Ping timeout: 252 seconds).
15:21:28 -!- MDude has quit (Remote host closed the connection).
15:21:54 -!- MDude has joined.
15:33:17 -!- wob_jonas has quit (Remote host closed the connection).
15:35:24 -!- FreeFull has joined.
16:06:47 -!- AnotherTest has quit (Ping timeout: 258 seconds).
16:30:28 -!- lynn_ has joined.
16:33:13 -!- LKoen has joined.
17:18:58 -!- b_jonas has joined.
17:24:11 <orin> I really hope the firefox people learn form this that their system shouldn't be fail-deadly
17:28:33 <fizzie> shachaf: It's a C11 feature, not a C99 feature.
17:29:38 <fizzie> <tgmath.h> was a C99 feature, but there was no way to do similar things yourself.
17:30:15 -!- LKoen has quit (Remote host closed the connection).
17:31:43 <int-e> orin: I wish they do that. But I have little hope :P
17:33:06 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
17:35:28 -!- AnotherTest has joined.
17:50:43 <b_jonas> fizzie: actually, while you can't do something as general as _Generic, I think you can do something similar to the tgmath macros, by checking the sizeof of the arguments
17:54:12 <shachaf> fizzie: I meant "the new one".
17:55:23 <b_jonas> sizeof doesn't evaluate its arguments, so you don't get double evaluation
18:01:58 <fizzie> I guess, but of course there's no guarantee that sizeof (float) != sizeof (double).
18:03:48 <shachaf> I defined a numof() macro that only works on arrays by doing a static assert on __builtin_types_compatible_p
18:03:58 <shachaf> Is that possible in non-__GNUC__?
18:04:29 <fizzie> I remember that being discussed, but I don't remember if anyone had any solution.
18:04:32 <b_jonas> fizzie: sure, it won't be exactly the same, because on systems where double and long double are both 8 byte long, you can't distinguish them, so you can't return the right type
18:04:41 <b_jonas> but it would be something similar, and practically usable
18:08:12 -!- LKoen has joined.
18:10:16 <b_jonas> fizzie: on platforms where double and long double are the same size, such as x86_64 windows, they also have the same representation
18:11:45 -!- Lord_of_Life has quit (Ping timeout: 258 seconds).
18:12:12 <fizzie> shachaf: Reviewing the logs, I don't think anyone came up with a non-__GNUC__ solution. The Linux kernel ARRAY_SIZE uses a GNU solution too.
18:12:16 <fizzie> (Basically __builtin_types_compatible_p(typeof(a), typeof(&a[0])).)
18:12:45 <shachaf> Logs where I asked that or someone else did?
18:13:41 <shachaf> I don't remember discussing this question.
18:14:06 <shachaf> I used typeof(a), typeof(&a[0]) at first, but now I'm using (__builtin_types_compatible_p(__typeof(*(a))[], __typeof(a)))
18:14:33 -!- Lord_of_Life has joined.
18:16:27 <shachaf> Man, my macros #define Case break; case and #define Default break; default are TG.
18:19:10 <int-e> right up there with #define BEGIN {
18:20:43 <shachaf> No way, that one is terrible.
18:22:12 <shachaf> Another good macro is #define Struct(name) typedef struct name name; struct name
18:23:05 <shachaf> Speaking of C99, is it just me [non-rude version?] or does code like foo(&(Type){...}); look pretty sketchy?
18:23:54 <b_jonas> shachaf: I think aggregate constructors look fine
18:24:45 <b_jonas> in fact I think we should have used that syntax for anonymous inner functions, where Type is a function type with the argument names significant, and the braces contain a function body instead of a list of initializers
18:24:46 <shachaf> It's just the address-of thing.
18:52:57 -!- Lord_of_Life_ has joined.
18:55:28 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
18:55:32 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
18:59:44 <esowiki> [[Talk:Bitch]] https://esolangs.org/w/index.php?diff=61774&oldid=61494 * Helen * (+525) /* [Ongoing] Equivalency between bitch and Home Row by User:Helen and User:A */ Problem with Bool Row proof?
19:00:16 <esowiki> [[Talk:Bitch]] M https://esolangs.org/w/index.php?diff=61775&oldid=61774 * Helen * (+521) /* Computational class */ Problem with Bool Row proof
19:17:16 <fizzie> shachaf: It was on ##c.
19:17:51 <fizzie> Also: #define ever (;;)
19:18:26 <shachaf> Whereas the things I'm using are actually useful.
19:19:07 <fizzie> Did you know that Java's adding a new kind of switch, where the syntax is `case -> expression` which has an implicit break.
19:19:16 <fizzie> (And the whole switch can be used as an expression.)
19:20:35 <fizzie> String s = switch (x) { case 4 -> "yay"; default -> "sad :("; };
19:21:50 <fizzie> It's still just a JEP, so maybe "is adding" is a bit of an exaggeration.
19:22:39 <shachaf> Man, garbage collection is kind of scow.
19:22:47 <fizzie> https://openjdk.java.net/jeps/354
19:23:07 <fizzie> (A slightly different form -- https://openjdk.java.net/jeps/325 -- was already available as a preview feature in Java... 12?)
19:23:18 <fizzie> The newest proposal uses "break-with" as a hyphenated keyword.
19:28:12 <b_jonas> fizzie: I think C and C++ chose the right solution given that we're stuck with switch/break anyway: make compilers give a warning on fallthrough after a statement other than a case label, and define a standard attribute instead of magic comments to denote intentional fallthrough
19:28:23 <b_jonas> or a standard attribute in addition to magic comments
19:34:08 -!- AnotherTest_ has joined.
19:38:29 -!- danieljabailey_ has joined.
19:39:24 -!- danieljabailey has quit (Ping timeout: 248 seconds).
19:39:25 -!- imode has quit (Ping timeout: 248 seconds).
19:39:25 -!- AnotherTest has quit (Ping timeout: 248 seconds).
19:39:26 -!- AnotherTest_ has changed nick to AnotherTest.
19:40:02 -!- imode has joined.
19:41:23 -!- joast has quit (Quit: Leaving.).
19:49:15 -!- joast has joined.
20:03:25 <b_jonas> also, I'm going to western Netherlands for vacation the next week
20:15:16 <kmc> b_jonas: what's this attribute?
20:15:58 <kmc> magic comments are bad
20:17:32 <shachaf> __attribute__((fallthrough));
20:17:50 <shachaf> But I just have #define OrCase case and #define OrDefault default
20:17:56 <shachaf> And then I ban "case" and "default" from the code.
20:18:10 <kmc> what does that accomplish?
20:18:24 <shachaf> Well, it goes with #define Case break; case and #define Default break; default that I mentioned before.
20:18:49 <kmc> that's nasty
20:18:50 <shachaf> Then you can just write switch (x) { Case 1: foo(); Case 2: OrCase 3: bar(); Default: vaz(); }
20:31:27 <fizzie> "description = Website https://esolangs.org/ security certificate expires soon (2.589470476999998e+06 seconds)."
20:31:30 <fizzie> I don't know if the formatting of these alerts is the best, readability-wise.
20:33:39 <kmc> I'm going to be 1,000,000,000 seconds old this Halloween
20:34:38 <b_jonas> happy birthgigasecond then
20:34:43 <kmc> unfortunately I don't remember exactly when I was born, I think about 2 AM central time?
20:35:37 <kmc> and then one day you find, ten years have got behind you...
20:35:41 <kmc> or a billion seconds as the case may be
20:37:00 <kmc> i've been married for about 115,000,000 seconds
20:37:03 <kmc> b_jonas: how old are you?
20:38:04 -!- AnotherTest has quit (Ping timeout: 252 seconds).
20:38:07 <kmc> so you're a little older than me
20:39:00 <kmc> i guess I just said how old I am, but "31 years" may be a more useful measurement for most
20:40:12 <kmc> why do you want to be younger?
20:40:25 <fizzie> Relatively soon I'll've been married for 400000000 seconds, is that something people usually celebrate?
20:40:33 <b_jonas> my body was much healthier ten years ago
20:40:47 <b_jonas> and lighter and stronger and more flexible
20:41:01 <b_jonas> and had a better lung capacity
20:41:04 <kmc> fizzie: no, but you could! and congratulations
20:41:07 <kmc> b_jonas: yeah
20:41:11 <kmc> getting old sucks physically
20:41:24 <kmc> in the long run we're all falling apart
20:41:30 <kmc> but I'm in much better health now than I was a year or two years ago
20:41:33 <kmc> physically and mentally
20:41:46 <b_jonas> yeah, but I want to fall apart a thousand times slower
20:41:51 <kmc> I wish I had transitioned earlier, but that's life
20:42:13 <kmc> it's never too late really, it's just that I have a lot of bad feelings to deal with from that period of putting it off :(
20:42:48 <fizzie> In Finland (and in the Netherlands, and probably a few other places) 12.5 years is one of the common celebration milestones, that's pretty close to 400 megaseconds.
20:43:03 <kmc> hm, why's that
20:43:06 <kmc> half of 25?
20:43:13 <kmc> how does one celebrate?
20:43:21 <fizzie> It's 12.5 years for copper, 25 for silver and 50 for gold.
20:43:35 <int-e> why celebrate the progress of time.
20:43:49 <fizzie> And then 1..15, 20, 25, ..., 70, 80 have their own associated labels that I can't possibly remember.
20:44:01 <kmc> I know 1 is paper
20:44:09 <kmc> I don't think I got my wife any paper, but maybe
20:44:30 <kmc> I remember we went out for okonomiyaki
20:44:48 <b_jonas> fizzie: I think 33 years is a good milestone
20:45:20 <kmc> I got her a gift certificate for a bookstore, I guess that counts
20:45:49 <kmc> apparently 4th is "Fruit & Flowers, or Linen & Silk"
20:45:52 <b_jonas> fizzie: https://en.wikipedia.org/wiki/Wedding_anniversary
20:45:56 <kmc> i like those things
20:46:32 <fizzie> There's regional variation in these. The Finnish list has ceramic on 4th.
20:46:49 <int-e> . o O ( is 80 uranium because of the inevitable decay... )
20:46:51 <b_jonas> I don't think you should take those lists seriously
20:46:53 <kmc> anyway perhaps these are silly
20:47:01 <b_jonas> unless of course your spouse takes them seriously
20:47:23 <kmc> which year is ham radio equipment
20:47:48 <b_jonas> which year is a new washing machine?
20:47:50 <fizzie> In the link b_jonas posted, the "modern list" has "Appliances (electrical)" on 4th too.
20:49:30 * kmc woke up at 02:30 (home timezone) today :(
20:49:42 <kmc> I think i'll go home and nap
21:02:37 -!- aloril_ has joined.
21:05:23 -!- aloril has quit (Ping timeout: 268 seconds).
21:10:36 -!- Phantom_Hoover has joined.
21:54:33 -!- tromp has quit (Remote host closed the connection).
22:15:53 -!- imode has quit (Ping timeout: 245 seconds).
22:27:11 -!- tromp has joined.
22:31:43 -!- tromp has quit (Ping timeout: 264 seconds).
22:32:05 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
22:40:40 <esowiki> [[User:JonoCode9374]] M https://esolangs.org/w/index.php?diff=61776&oldid=61773 * JonoCode9374 * (+162) hmmm
22:56:49 -!- b_jonas has quit (Quit: leaving).
23:00:01 -!- nfd9001 has quit (Quit: Leaving).
23:00:20 -!- nfd9001 has joined.
23:06:30 -!- nfd9001 has quit (Quit: Leaving).
23:06:49 -!- nfd9001 has joined.
23:26:53 -!- Sgeo_ has joined.
23:30:02 -!- Sgeo has quit (Ping timeout: 252 seconds).
23:31:41 -!- oerjan has joined.
23:47:58 <int-e> I got my voting material... 40 parties to choose from. Crazy.
23:48:15 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
23:48:18 <int-e> (that's for the upcoming EU election)
23:53:28 -!- weston has joined.
23:54:31 * oerjan skipped ahead to the final mention of "fermi paradox" so now has read the end of SM's current arc. those must be some of the least fearsome dinosaurs ever!
23:55:10 <oerjan> now i just have to decide whether to read the rest of the archive O_o
23:55:15 <weston> !ztest g9500 https://gist.githubusercontent.com/westonal/aac05cc336dfa2bf9a86660b8f9ae7cc/raw/27647ce73885331e31f23d967622c8bc50a3ab76/g9500.bfjoust
23:55:56 <weston> !ztest g9500 https://gist.githubusercontent.com/westonal/aac05cc336dfa2bf9a86660b8f9ae7cc/raw/27647ce73885331e31f23d967622c8bc50a3ab76/g9500.bfjoust
23:56:05 <weston> !ztest g9501 https://gist.githubusercontent.com/westonal/aac05cc336dfa2bf9a86660b8f9ae7cc/raw/27647ce73885331e31f23d967622c8bc50a3ab76/g9500.bfjoust
23:56:25 <weston> !ztest g9500 https://gist.githubusercontent.com/westonal/aac05cc336dfa2bf9a86660b8f9ae7cc/raw/8ea8bb440f350ab2fd5a54a7e76e91fd795eee56/g9500.bfjoust