2019-06-01: 00:59:18 -!- Phantom___Hoover has quit (Quit: Leaving). 01:32:31 Arguably, *every* program "just does whatever it wants". 01:32:48 It just so happens that "whatever it wants" is determined by a relatively simple set of rules. 01:33:22 i keep thinking the z in zzo38 stands for zermelo 01:34:06 There are two "z"s and the letters and numbers do not stand for anything. 01:34:25 both of them 01:34:57 Zulu zulu oscar three eight. 01:35:18 So I just learned about "Unary Except Every Zero Is Replaced with the Title of This Programming Language or, Alternately, Is Replaced with the Smallest Counter-Example to the Goldbach Conjecture. Compilers and Interpreters Only Have to Implement the Former Option". 01:35:30 (I hope that message didn't send with wonky formatting, because I saw wonky formatting on my end.) 01:35:46 tswett[m]: I think the bold is not properly terminated 01:35:57 Let me try that again. 01:36:21 So I just learned about "Unary Except Every Zero Is Replaced with the Title of This Programming Language or, Alternately, Is Replaced with the Smallest Counter-Example to the Goldbach Conjecture. Compilers and Interpreters Only Have to Implement the Former Option". 01:36:29 (There, much better.) 01:36:52 OK 01:37:19 It's actually pretty straightforward to implement the Goldbach option, right? 01:37:41 There's a simple algorithm for determining whether or not a given number is the smallest counterexample to the Goldbach conjecture. 01:37:49 yes, just time-consumiing 01:37:52 to execute 01:37:58 (If the Goldbach Conjecture is valid, then presumably the one that implements only the former option is complete anyways.) 01:38:02 Namely: check whether or not it's a counterexample, and also check whether or not any smaller number is a counterexample. 01:38:18 And, yes, I agree I think you are correct about determining if it is the smallest counterexample 01:38:19 there's a bit of additional complexity because even if you can tell that the program is made entirely out of repeats of a number, it might be ambiguous what that number is 01:38:35 Oh right, interesting. 01:38:38 e.g. is 333333 six repeats of 3, three repeats of 33, two repeats of 333, or one repeat of 333333? 01:38:44 Right. 01:38:50 What's the encoding of the counterexample? 01:39:04 Looking at the reference implementation, there's nothing delineating the title from the rest of the text. 01:39:08 Yes, unless it needs to be delimited somehow 01:39:09 the title doesn't say, but big-endian decimal encoded as ASCII is a reasonable guess 01:39:26 Maybe it's in unary, encoded with zeros. 01:39:36 Or even in unary, encoded with the title of the programming language. 01:39:43 ais523: Yes, that is what I thought too 01:40:05 shachaf: that would be ambiguous 01:40:16 Non-title text is a comment in the reference implementation. 01:40:34 So 333333 could also be 33333 followed by a 3, if 33333 was the smallest counterexample. 01:41:08 hi schachaf. wondering, earlier were you saying only one symbol is needed in the slashes esolang, or, one symbol is all that is needed generally for Turing completeness in some given system, 01:41:29 or did i misunderstand entirely lol 01:41:31 perhaps we have to find the largest number in the program and search for Goldbach counterexamples up to that number? 01:41:31 please address me by my full and proper name, schachachf 01:41:35 shachaf: Ooh, good point. That makes it trickier. 01:41:44 uhh apologies schachachf 01:41:58 Well, in order to do anything Turing-complete-y in ///, you need / and \, and you don't need anything else. 01:42:26 I don't know how slashes works, so I probably wasn't commenting on it. 01:42:51 `unidecode /⁄∕ 01:42:51 ​[U+002F SOLIDUS] [U+2044 FRACTION SLASH] [U+2215 DIVISION SLASH] 01:42:53 oh ok 01:43:16 `unidecode ⧸🙼 01:43:17 ​[U+29F8 BIG SOLIDUS] [U+1F67C VERY HEAVY SOLIDUS] 01:43:22 Another variant for Unary would be that the data doesn't matter only the file size is important. And then, you can use sparse files and don't waste disk space. 01:43:31 yeah there's unary programming languages but the binary ones while still being turing tarpits sometimes, seem to work just a liiitle more efficiently still 01:43:33 it is with a very heavy solidus that i write to inform you that unicode has too many code points 01:43:38 (If you are using a file system that supports sparse files.) 01:43:56 zzo38: https://esolangs.org/wiki/Lenguage 01:44:09 > ransomNote "very heavy solidus" 01:44:12 𝖁𝐞🅁𝑦 𝗁𝘌🄰𝚟Y 𝘚O𝓵i𝗱𝒖𝖘 01:44:15 although oddly, the Lenguage interpreter does in fact attempt to read the whole file into memory even though it doesn't care about the length 01:44:26 *even though it only cares about the length 01:44:36 shachaf: Yes, and the way they are put together is also messy 01:44:36 > ransomNote "if you want to see your code points again..." 01:44:39 𝕚𝗳 𝓨𝓞𝒖 Ⓦ𝐚𝕹𝑡 𝑇𝙊 𝐬𝓮🅴 𝙔𝓞𝐔𝗥 𝙘𝙊𝘋𝕰 Ⓟ𝔬𝕚𝑵𝗍𝘴 🄰𝕲𝗮ℑ🄽... 01:45:03 sparse files hmm interesting 01:45:15 > cycle "la " 01:45:18 "la la la la la la la la la la la la la la la la la la la la la la la la la ... 01:45:36 > ransomNote (cycle "again and ") 01:45:44 mueval: ExitFailure 1 01:45:50 Boo. 01:46:05 > ransomNote (take 200 (cycle "again and ")) 01:46:08 🅰⒢Ⓐ𝖎𝑵 𝖺𝐧⒟ 🅰𝓰𝖠i𝘯 🅐𝓝Ⓓ 𝓐g𝙖𝘐n 𝔞𝐧D 𝘢𝒈𝖠𝖎𝑛 𝚊𝓝𝖉 𝓐𝐺𝘼𝚒𝑁 𝐴⒩𝔡 𝘈𝓖𝖆𝔦𝙣 𝑎𝗻𝔡 𝘢𝙂 01:46:08 𝘈𝑰ℕ 𝙰⒩𝕯 𝐴𝙂🅰𝙄𝐧 ... 01:46:09 > ransomNote . take 1000 . cycle $ "again and " 01:46:12 🅐𝐺𝘈I🄽 𝗮𝓝𝘿 𝕬🄶𝙖I𝒏 a𝚗D 𝒂𝔤𝖠𝕚𝑛 𝚊𝗻𝑫 𝓐𝙂🅰𝗶𝔑 𝙖𝘯d 𝗮𝙂𝐚𝙄𝖓 𝓪🅝𝘥 𝕬𝓖𝔞𝒊𝐧 𝑨𝖭𝕕 01:46:12 ⒜𝕘𝕬𝙄🄽 𝘢𝗇𝙳 𝔸𝘎🄐𝐢N ... 01:46:27 As y'all can see, I haven't matured any in the past 13 years. :D 01:47:02 with my 2TB hard drive, i can hold a whopping 3 byte unary program for free, nice 01:47:37 There are probably file systems that support larger files than will fit on the disk with some copy-on-write trickery. 01:47:51 xylochoron[m]: You will still need a directory entry though, isn't it? 01:47:53 They might still be limited to 2^64 or 2^128 bytes. 01:49:32 2^64, now we're talking exabytes 01:49:33 > ransomNote "ransomNote" 01:49:35 🆁𝕒𝑛𝕾𝘰𝙢N𝓸𝑻𝔢 01:49:38 (Although three bytes long isn't a valid Unary program anyways, I think; it needs to be at least eight, isn't it?) 01:49:53 So I'm trying to do "bottomless category theory". 01:50:00 I'm doing category theory without admitting any foundational axioms. 01:50:41 Don't you need the definition of a category at least? 01:51:07 wait wat 01:51:08 "Every set has a power set"? Nah. "Given two sets, there exists a set containing both of them"? Nope. "There exists at least one set"? Hell no. 01:51:28 Yes, you do. And I did, in fact, write down the definition of a category. 01:51:52 But I'm simply treating the definition of a category as a string of symbols in a particular language, rather than assuming that it actually defines anything. 01:51:58 What do sets have to do with categories? 01:52:32 My understanding is that some category theorists consider a foundational set theory to be useful. 01:52:53 But most interesting categories aren't small anyway. 01:53:17 That's true. 01:53:21 If people are being formal don't they usually define categories as a first-order theory? 01:53:32 isnt all coding and proofs "strings containing symbols of a particular language" in the end or smthng 01:53:40 I have no idea, actually. 01:53:42 @quote SaulGorn 01:53:42 SaulGorn says: A formalist is one who cannot understand a theory unless it is meaningless. 01:54:27 Even if it isn't small, it must be small enough to fit in whatever it is fitting in 01:54:34 define meaning :-P 01:54:34 xylochoron: Yup, absolutely. The "conventional" way to do formal mathematics is to take a collection of axioms and discover proofs which follow from those axioms. 01:54:50 I'm not doing that. 01:54:58 If you want to be precise, I'm studying... what are they called. 01:55:11 Presentations of categories with finite limits. 01:55:33 How can do you do with the definition of a category if it does not define anything? 01:55:40 oh i just realized that's a quote bot who said that 01:55:55 probably this Saul Gorn guy has tried to define meaning or something :-P 01:56:13 zzo38: Well, I guess I'm planning to figure that out as I go along. :D 01:56:52 OK 01:58:28 do you other people know enough about category theory to follow what this person's trying to do cuz i don't but it sounds interesting oh well 01:59:22 I think this person[m] is just doing things the regular way or something. 01:59:59 Sounds like some kind of first-order theory. 02:00:03 k 02:00:34 > ransomNote "zalgo" 02:00:36 𝘻𝑨𝖫g𝐨 02:00:41 `zalgo pooches 02:00:41 p͎͒oͭ̊o͑̊ċ͜h̑͡e̗͟s̔͊ 02:00:49 `zalgo 𝘻𝑨𝖫g𝐨 02:00:50 ​𝘻̛̓𝑨̼̏𝖫̑҉gͤ͞𝐨̡́ 02:13:06 I oughta finish writing up Al dente. 02:24:14 Apparently I capitalized it. Al Dente. 02:24:24 Also I see that somebody's written some more Al Dente code. That's cool. :D 02:24:24 https://esolangs.org/wiki/Al_Dente_examples 02:24:34 I'm trying to figure out how their "copier" class works. 02:29:36 Let's see. Every Copier has another Copier as a tail, thus producing an infinite chain of Copiers. A Copier has a "copy" event. It also has two Numbers, "in" and "out". The numbers of the tail have to be the tails of the numbers. 02:29:58 If "copy" is false, then it must also be false in the entire chain of copiers, but there are no other constraints. 02:31:39 But if "copy" is true, then "in" and "out" must be the same number. 02:34:34 -!- TellsTogo has joined. 02:37:41 Okay, I gotta say. 02:37:55 You know how in most programming languages, you write code that causes stuff to happen? 02:38:10 I love how in Al Dente, you can't do that; you can only write code that *prevents* stuff from happening. 02:41:16 ...I just noticed that an implementation of Al Dente is not required to do anything. 02:43:20 -!- ineiros has joined. 02:48:58 That's pretty great, actually. 03:04:11 -!- MDude has quit (Ping timeout: 258 seconds). 03:10:14 An optional extension could be a "main" command, that for example you could write "main Add(in1 in2 -> out);" 03:11:03 -!- ais523 has quit (Quit: quit). 03:31:21 -!- TellsTogo has quit (Ping timeout: 256 seconds). 03:39:21 -!- Hooloovo0 has quit (Quit: Temporarily refracted into a free-standing prism.). 03:44:10 -!- Hooloovo0 has joined. 03:47:48 -!- MDude has joined. 04:10:03 -!- arseniiv has joined. 04:24:09 Some keyword abilities in Magic: the Gathering they only use on some types of cards, and sometimes only in some circumstances. But I think there is other uses for them too. Such as, you could add retrace on any castable card, lifelink or infect on any card that can deal damage, graft and modular and persist and undying on any permanent card (even a Aura), dash on noncreatures, etc 04:27:25 Huh, I thought there was an instant or sorcery with lifelink, but I guess not. 04:27:38 I don't know; I haven't checked 04:29:02 -!- arseniiv has quit (Ping timeout: 272 seconds). 04:29:24 zzo38: Why do you say SIMD is not needed on MMIX? 04:29:26 I have a paper I made up some cards that have only keyword abilities, some of which are creatures and some aren't. One noncreature artifact has "graft 1", "undying", and "echo {0}". 04:29:41 shachaf: I do not remember. 04:29:59 (I think I wrote that message, but I am not sure. I also do not remember.) 04:34:05 -!- ProofTechnique has quit (Read error: Connection reset by peer). 04:34:42 -!- lynn has quit (Read error: Connection reset by peer). 04:35:03 -!- xvnvx- has quit (Read error: Connection reset by peer). 04:40:23 -!- FreeFull has quit. 04:46:25 Another extension for Al Dente could be comments and macros (supporting parameterized classes, traits, and others); it can be compiled into the version without comments and macros. 04:52:23 -!- lynn has joined. 04:55:38 -!- ProofTechnique has joined. 05:34:14 -!- xvnvx has joined. 05:44:41 Another thing about Magic: the Gathering I thought about overload ability. I would prefer to use a different way based on the AST rather than the words. For example, [:damage 3; :to [:target :damageable]] would be written in English as "~ deals 3 damage to any target", but "any each" is wrong, but overload should still work. Also considering for example "change the target of target spell". 05:45:29 (I didn't mention ":from :this" but it is implied, presumably.) 06:21:22 -!- S_Gautam has joined. 07:01:42 -!- whtspc has joined. 07:01:59 -!- whtspc has quit (Client Quit). 07:07:02 Hmm, "any target" is a pretty new phrasing, I wonder if the rules people actually encountered that issue 07:08:24 I guess "~ deals three damage to target player, planeswalker, or creature" works? 07:11:07 "any target" includes yourself, and until Modern Horizons they've avoided overloads with downsides 07:21:06 Yes, although I don't really like "any target" (for a few reasons), so I invented "damageable"; "any target" is the same as "target damageable" (although you can also use "damageable" in other contexts too). 07:22:38 (And even without "any target", there is the other issue I mentioned.) 07:27:51 -!- adu has quit (Quit: adu). 07:49:55 -!- Sgeo__ has joined. 07:50:30 -!- hakatashi has quit (Remote host closed the connection). 07:50:49 -!- hakatashi has joined. 07:53:16 -!- Sgeo_ has quit (Ping timeout: 268 seconds). 07:56:13 -!- AnotherTest has joined. 08:18:55 -!- Sgeo_ has joined. 08:22:44 -!- Sgeo__ has quit (Ping timeout: 272 seconds). 08:47:26 -!- Sgeo__ has joined. 08:50:22 -!- Sgeo_ has quit (Ping timeout: 246 seconds). 08:52:42 -!- AnotherTest has quit (Ping timeout: 258 seconds). 09:14:51 So I finally have a paper proof, with some help by a computer: https://int-e.eu/~bf3/tmp/sdd.pdf It really doesn't look all that hard now. 09:15:10 (this is for the self-dual characterization of a distributive lattice) 09:17:03 Not speaking of which, I have no feel for what exponentials mean in a lattice. 09:17:13 I'm pretty sure I should know. Is the answer obvious? 09:18:02 exponentials? 09:18:36 I mean in the category sense. 09:18:55 ah. <-- stops caring 09:19:14 OK, I'll stop calling it exponential because it has a different name in order theory. 09:19:27 https://en.wikipedia.org/wiki/Complete_Heyting_algebra calls it "implication". 09:20:38 Or maybe https://en.wikipedia.org/wiki/Heyting_algebra 09:20:54 "equipped with a binary operation a → b of implication such that c ∧ a ≤ b is equivalent to c ≤ a → b" 09:23:37 that infinite distributive law is something that I can get behind 09:25:28 It's a good law. 09:25:45 I'm more used to frames, which are like complete Heyting algebras except frame homomorphisms don't preserve implication. 09:26:04 myname: see the above link (in answer to your "why" question yesterday) 09:26:28 myname: (my link, not shachaf's) 09:31:29 Hm, every modular lattice is distributive, and every distributive lattice is modular? 09:31:31 Scott continuity is something I should understand (and at least I can see that unfolding the definition gets me that infinite distributive law from the finite one, modulo some twiddling to obtain a minimal directed set from S) 09:31:40 Oh, no. 09:31:53 no, moldularity is weaker than distributivity 09:31:55 Distributivity is stronger. 09:31:57 Right. 09:32:09 optimist! 09:32:33 That's only optimism if you assume that the lattice is your friend rather than your enemy. 09:32:56 . o O ( when you have modularity (huh, I had that extra 'l' again in there... but this time I noticed), the distributivity glass is still half empty. ) 09:33:22 Hmm. Is a half-empty glass of poison better than a half-full one? 09:33:40 (It may depend on who drank that half...) 09:34:02 Man, the free complete lattice on three elements is too large to be a set. 09:34:03 What a joke. 09:34:51 completeness is just too strong unless things collapse (as they do for real numbers)... I was surprised at first, but I think that fact is fairly intuitive after all. 09:35:51 I guess I'll stick to free complete semilattices, which by coincidence are also complete lattices. 09:36:16 I mean "intuitive" in a weak sense. It "makes sense", but I can fit a whole proof into my head. 09:36:37 *can't* 09:37:16 Because that would entail actually proving the lack of collapse I alluded to. 09:37:25 So this duality property of yours doesn't hold for every distributive lattice, right? 09:38:04 Hmm? That (1) holds in any distributive lattice as I showed on here the other day. 09:38:10 (two days ago now, I believe) 09:38:36 Oh, right, and that one is actually very simple. 09:38:45 So I'm just saying all sorts of silly things today. 09:38:52 But I struggled a lot with the converse. 09:39:22 And in the end I reconstructed a computer's proof, simplifying it along the way. 09:41:55 I *believe* that somebody who has a bit of experience with / intuition for modular lattices would recognize the fact that x \/ ((y \/ z) /\ (x \/ y) /\ (x \/ z)) has the x-s all in the right places for applying modularity and simplifying it down to (x \/ y) /\ (x \/ z). But I've never studied modular lattices. 09:42:39 -!- b_jonas has joined. 09:43:51 You can run any sorting network in a lattice instead of total order, right? Do you get anything interesting? 09:44:42 hmm, let me ponder that for 10 minutes 09:49:49 First of all, there's https://en.wikipedia.org/wiki/Birkhoff%27s_representation_theorem so you get something well-defined for distributive lattices (and a nice justification of the 0-1 principle for sorting networks: a sorting network is correct if it sorts all possible input sequences consisting only of 0s and 1s correctly). So what I would like to do is to see that distributivity follows from... 09:49:55 ...(1 2) (2 3) (1 2) and (2 3) (1 2) (2 3) giving the same results. 09:54:08 that may be false though... 09:56:24 -!- Sgeo_ has joined. 09:57:21 In fact this property may be something between lattices and modular lattices. (The property in question is (x /\ y) \/ (z /\ (x \/ y)) = (x \/ y) /\ (z \/ (x /\ y))) 09:58:32 Of course there are bigger sorting networks to consider as well. 09:59:57 -!- Sgeo__ has quit (Ping timeout: 244 seconds). 10:02:13 wait a second, I messed this up; I should swap x and z on the right. 10:03:41 And then distributivity follows (don't ask me how, the computer says so). Yay. 10:05:29 Dsitributivity follows from those two networks being equal? 10:07:11 Ah I was too fast there, once again... 10:07:53 I had snuck a modularity axiom in there. 10:08:52 So... in a *modular* lattice, equivalence of those two sorting networks implies distributivity. But it looks like the same isn't true for non-modular lattices (no proof, just lack of a proof that's easy for the computer.) 10:11:23 Oh. No, it was all true anyway. 10:12:44 I'm suspecting that it's true because the middle term ends up computing the median the two different ways that you were proving things about, more or less. 10:13:08 I mean the middle element of the list. 10:13:35 Uh, maybe not. 10:14:17 yeah, that was my intuition. but it's only "more or less" since the sides differ from the self-dual one by an application distributivity each. 10:14:31 *of distributivity 10:14:37 So the first network gives you (a∧b) ∨ ((a∨b)∧c) 10:14:48 And the second network gives you (b∨c) ∧ ((b∧c)∨a) 10:15:09 ...Which is what you just said. 10:18:02 I wonder whether there's a fancy sorting network variant that'll give you [a∧b∧c, ???, ab∨c] 10:18:16 I mean [a∧b∧c, ???, a∨b∨c] 10:18:23 -!- Sgeo__ has joined. 10:18:55 -!- Lord_of_Life has quit (Ping timeout: 252 seconds). 10:19:39 The benefit is that the depth for the first and last elements is only 2 so you get it one step earlier. 10:20:01 But I think you have to do more comparisons overall. 10:20:29 -!- Lord_of_Life has joined. 10:20:52 http://paste.debian.net/1085364/ is what I did and why I don't know how the proof goes. 10:21:48 -!- Sgeo_ has quit (Ping timeout: 272 seconds). 10:21:49 shachaf: well (x /\ y) /\ (x \/ y) /\ z simplifies to x /\ y /\ z in any lattice. 10:22:20 Sure. 10:24:54 No I don't think you can get [a∧b∧c, ???, a∨b∨c] directly. You can satisfy one end using (1 3) (1 2) (2 3) (and its dual). 10:27:38 I guess the constraint here is that you only have three slots to store items in. 10:31:18 Yeah maybe 3 is an exception... So, it works for n=2. (1 2) (3 4) (2 4) (1 3) (2 3) does it for n = 4... 10:31:51 Well, I'd prefer to have optimal depth for every slot, or something. 10:32:45 well, then you want a minimum depth sorting network? 10:33:14 Maybe with something that's well approximated by minimum size as a secondary optimization criterion. 10:33:26 "minimum depth" is about the time to complete the entire network. 10:33:41 But for a 3-item network the depth of the min and max is only 2, and the depth of the median is 3. 10:34:09 *actually* there may be an odd/even phenomenon for the generalized [a∧b∧c, ???, a∨b∨c] question... Hmm. 10:34:10 Anyway I'm not sure I actually care that much about this, I was just curious. 10:34:21 What's the generalized question? 10:35:02 whether we can simultaneously have the infimum and the supremum of all inputs as the top and bottom results of the sorting network. 10:35:03 In my file I'm writing & for ∧ and | for ∨. Maybe I'll use this notation from now on. 10:35:20 I guess it's ambiguous because people usually mean a different lattice by those operators. 10:37:05 I have this start: 10:37:06 : a b c d e 10:37:06 : a&b a|b c d&e d|e 10:37:30 and it occured to me that whatever I use for c next will inevitably lead to terms mixing | and &. 10:37:40 Right. 10:38:06 What if you had some extra space? 10:38:27 well, for even numbers of inputs I can combine the inputs in pairs 10:38:30 I imagine a constant number of slots doesn't help beyond a constant number of outputs. 10:38:53 and then work on the resulting _ & _ and _ | _ terms separately, leading to the infimum and supremum. 10:39:37 I see what you mean. 10:39:55 So, generally: do (1 2) (3 4) ... (2n-1 2n), followed by (1 3) (1 5) ... (1 2n-1) and the reflected version thereof. 10:40:12 But you can't keep them separated for very long. 10:40:41 long enough to make the ends meet and join. 10:40:59 Sure, but I care about the all the elements, not just the ends. 10:41:17 The depth of the first and last element is always n. 10:41:26 What's the depth of the second element? 10:42:22 hmm? no 10:42:34 Er, no, not n 10:42:36 log n 10:42:42 You can arrange the computation in a tree. So yeah, log n. 10:42:58 We can assume power of 2 networks, I guess. 10:43:05 So it's exactly log n. 10:45:23 Batcher's sort gives an upper bound of log(n)^2/2 on the depth, I think. 10:45:41 (+ O(log(n))...) 10:47:03 "It is also possible, in theory, to construct networks of logarithmic depth for arbitrary size, using a construction called the AKS network" 10:47:31 TIL: There's another AKS result of little practical importance. 10:48:23 These are not the same AKS, though. 10:48:45 (The polynomial time primality test is newer, but I heard about it when it was discovered.) 10:49:54 Anyway, I really think that existing research on minimum (and small) depth sorting networks largely covers your question. 10:50:05 Probably. 10:50:40 I finally read the thing about deterministic O(n) median calculation the other day. 10:50:51 That seems to be another algorithm of little practical importance. 10:51:09 But it's surprising that it works. 10:51:42 The median of medians thing... yeah, amazing. It's instructive, too. 10:52:13 What's the instruction? 10:52:41 Hmm, doesn't Knuth also invesitage networks for extracting k-th elements? 10:53:41 Does he? I never read TAOCP (as you can probably tell). 10:53:53 What's instructive is the clever use of transitivity. Oh and the fact that just because something doesn't work for n=3, it might still work for n=5 ;) 10:54:46 That's an obvious prank from the universe. 10:54:57 We already know that numbers greater than 2 don't really exist. 10:55:12 Now we're expected to believe in 5? 10:55:15 "selection network" is the keyword. (bad google term, but it's okay if you add "sorting") 10:56:08 "There aren't enough small numbers to meet the many demands made of them." 10:57:27 I'm still curious about what a sorting network means in a lattice. 10:58:00 I remember we talked about how you can sort computable reals since you only require the result to be extensionally a permutation of the input, not intensionally. 11:00:30 shachaf: Birkhoff's theorem (mentioned above) is the only handle I have on this. 11:01:10 basic intuition: decompose the (distributive) lattice into a cartesian product of totally ordered sets. sort component-wise. 11:01:11 "any spherically symmetric solution of the vacuum field equations must be static and asymptotically flat" 11:01:15 makes sense tdh 11:02:26 I think I see what you mean, though. 11:02:26 With Birkhoffs theorem you get that, except that you may also be carving out a subset that is closed under infimum and supremum. 11:03:50 (and in particular it reduces anything to totally ordered sets of size 2, because you can carve out any chain from its powerset using ideals) 11:04:51 for example, 1 <= 2 <= ... <= n can be mapped to {1}, {1,2}, ..., {1,..,n} ordered by the subset relation. 11:07:27 to be precise, s/ideal/filter/ 11:07:56 nah 11:08:29 Sorry, ideal is actually correct. (But at least now I also remember the dual term.) 11:10:17 `leаrn schachaf is short for schachachf 11:10:18 ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: leаrn: not found 11:11:16 `" 11:11:16 640) monqy: it's only... ascii porn... the unicode bits stay covered \ 1100) "Well, that was fun" -- Taneb "atriq" Ngevd 11:11:55 > ransomNote "learn" 11:11:57 𝘭𝑬𝖠r𝐧 11:12:07 `𝘭𝑬𝖠r𝐧 schachaf 11:12:52 `? star 11:12:53 star? ¯\(°​_o)/¯ 11:13:00 `? * 11:13:01 Twinkle, twinkle, little star! 11:13:15 (having trouble remembering my own entries) 11:14:33 `? int-e 11:14:34 int-e är inte svensk. Hen kommer att spränga solen. Hen står för sig själv. Hen gillar inte färger, men han gillar dissonans. Er hat ein Hipster-Spiel gekauft. 11:15:12 `learn_append int-e He could never remember his own entries so he put them here for convenience. 11:15:15 `5 bin/star* 5 11:15:17 1/1:Cassian Andor \ Jan Dodonna \ Jyn Erso \ BB-9E \ Oola \ Bodhi Rook \ BB-8 \ Darth Maul \ Darth Vader \ Ortugg \ Supreme Leader Snoke \ Doctor Cornelius Evazan \ Rose Tico \ BB-8 \ Jyn Erso \ BB-8 \ Salacious Crumb \ R2-D2 \ Conan Antonio Motti \ Captain Phasma \ Nien Nunb \ Doctor Cornelius Evazan \ General Armitage Hux \ Captain Panaka \ Poe Dameron 11:15:33 `` grep '' bin/star* 11:15:33 ​#!/usr/bin/perl \ @c=split/\|/,"Admiral Crix Madine|Admiral Firmus Piett|Anakin Skywalker|BB-8|BB-9E|Bail Organa|Baze Malbus|Beru Lars|Bib Fortuna|Biggs Darklighter|Boba Fett|Bodhi Rook|Boss Nass|C-3PO|Captain Panaka|Captain Phasma|Cassian Andor|Chancellor Valorum|Chewbacca|Chief Jawa|Chirrut \x{ce}mwe|Cliegg Lars|Conan Antonio Motti|DJ|Darth Bane|Darth Maul|Darth Plagueis|Darth Vader|Doctor Cornelius Evazan|Count Dooku|Emperor Palpatine|Finn|Galen Erso 11:15:41 yikes 11:15:46 `` echo bin/star* 11:15:47 bin/starwars 11:16:03 I forgot about that. 11:16:10 `? BB-8 11:16:12 BB-8? ¯\(°​_o)/¯ 11:16:25 My trick of using `grep ''` to print files preceded by file name doesn't work when only given one file. 11:16:35 oh. 11:16:38 admittedly my trick is bad. but so is unix tdnh 11:16:46 `` echo bin/star* 11:16:47 bin/starwars 11:17:02 `starwars 11:17:03 Luke Skywalker 11:19:44 So quickselect has to mutate the input it's given, right? 11:20:28 Is there a bound on how much space median selection needs if it can't mutate the input? 11:20:34 I'm going to sleep. 11:33:55 " I love how in Al Dente, you can't do that; you can only write code that *prevents* stuff from happening." => try https://esolangs.org/wiki/90 11:38:56 shachaf: you may be thinking of Soulfire Grand Master, Firesong and Sunspeaker, or Puncture Blast 11:41:32 `? lettuce 11:41:33 Lettuce is a vegetable with two dressings, join and meet. 11:41:34 `? lattuce 11:41:35 lattuce? ¯\(°​_o)/¯ 11:41:35 `? lattice 11:41:36 Lattices are healthy ingredients that join your sandwiches together. 11:46:34 "read the thing about deterministic O(n) median calculation" => which thing? the Cormen, Leiserson, Rivest, Stein book? 11:48:25 Hmm do you need a particular source for that? https://en.wikipedia.org/wiki/Median_of_medians 11:49:31 And I thought Knuth has it as well (TAoCP)... 11:49:50 shachaf: you can use grep -h for that 11:50:06 or tail -v 11:52:08 -!- sebbu2 has joined. 11:56:12 -!- sebbu has quit (Ping timeout: 244 seconds). 12:35:22 -!- arseniiv has joined. 12:44:54 -!- Phantom_Hoover has joined. 13:58:15 -!- AnotherTest has joined. 14:11:20 ski: eww I want to unsee https://en.wikipedia.org/wiki/Densely_packed_decimal 14:11:34 (prompted by your comment on #haskell) 14:13:03 -!- FreeFull has joined. 14:16:36 ohh, never seen 14:21:02 -!- int-exile has joined. 14:21:53 -!- int-exile has changed nick to int-e_. 14:23:52 -!- int-e has quit (Ping timeout: 276 seconds). 14:24:15 oh right, the logs are down too... 14:25:24 int-e: the tunes logs work 14:25:32 ski: anyway, that page is linked from the IEEE 754 page (IEEE 754 does specify decimal floating point numbers; the main point(sic!) isn't that the representation should be decimal, but that the mantissa/exponent are decimal. The FPU might use any representation it likes. 14:25:56 * ski was just about to say what b_jonas said 14:26:29 FSV of "work"... can't display in browser... 14:26:54 works here 14:27:27 you mean that the exponent is wrt base `10' ? 14:27:28 despite the "Open in Browser" plugin?! how does that fail... 14:27:55 ski: meaning the number is multiplied by 10^[decoded e] 14:28:01 rather than 2^[decoded e] 14:28:14 right 14:28:33 ("Open in Browser" plugin ?) 14:28:42 -!- int-e has joined. 14:29:19 rather than 2^[decoded e] right ("Open in Browser" plugin ?) 14:29:35 I'm still here ;-) 14:29:43 I don't trust the VPS just yet. 14:30:08 oh, i'm seeing double, then 14:30:59 -!- int-e__ has joined. 14:31:45 now it's getting weird. 14:32:23 -!- int-e has quit (Client Quit). 14:34:29 -!- MDude has quit (Ping timeout: 252 seconds). 14:34:36 -!- int-e__ has quit (Client Quit). 14:34:43 -!- int-e has joined. 14:36:55 Okay, that was stupid. I thought the VPS had a reboot, but it just had a network hickup and my old screen session was still around. Hopefully back for good... 14:36:56 -!- int-e_ has quit (Quit: leaving). 14:38:15 * ski screens the sessions 14:38:54 good idea. 14:41:47 @botsnack 14:41:47 :) 14:41:55 (different VPS ;-) ) 14:46:03 different ? 14:47:01 lambdabot's on a VPS. My IRC client is on a VPS. These two VPSs are not the same. 14:47:45 ah, ic 15:06:20 -!- sebbu2 has changed nick to sebbu. 15:08:24 -!- Sgeo_ has joined. 15:11:45 -!- Sgeo__ has quit (Ping timeout: 258 seconds). 15:17:20 -!- nfd9001 has quit (Ping timeout: 248 seconds). 15:44:43 -!- unlimiter has joined. 15:53:45 ski: re: Open in Browser: It's this plugin, https://addons.mozilla.org/en-US/firefox/addon/open-in-browser/ which is supposed to allow me to override what FF does with a link... one of the options being "open in browser as text". But it doesn't work in this case. 15:54:23 and that's despite the server properly declaring it as Content-Type: text/plain :-/ 15:54:58 * int-e blames software complexity. 15:56:02 -!- unlimiter has quit (Quit: WeeChat 2.4). 15:57:15 (disabling the addon (that's what FF calls it) doesn't help either) 15:58:09 Everything sucks. Chrome is breaking Ad blockers, FF is breaking simpler things like X11 selections. 16:00:10 oic. used W3m here 16:00:55 -!- atehwa has quit (Remote host closed the connection). 16:07:17 hello 16:34:27 -!- adu has joined. 16:43:20 hail rain1 16:43:41 (I'm sure that was *very* original) 16:44:14 `grwp precipation 16:44:15 No output. 16:44:28 `quote precipation 16:44:29 No output. 16:44:41 `quote weather 16:44:41 889) Usually I'd use Rankine, but the fucking weather doesn't support it. 16:45:43 `complain Nobody's talking about the weather here, despite metasepia's best efforts! 16:45:45 Complaint filed. Thank you. 16:45:50 int-e: I don't really understand what Firefox does with it. I assumed the server was just sending the wrong Content-Type or Content-Disposition for the logs, but that's not the case 16:46:00 anyway, you can still download the logs, or view in another browser 16:46:18 I know but it's inconvenient. 16:46:44 (I'm a potted plant. FEED ME!) 16:47:07 I was wondering if it depended on whether it's valid utf-8 or something, but that doesn't seem to be the problem either 16:47:25 Try prefixing "view-source:" to the URL 16:50:52 `? ot 16:50:53 ot? ¯\(°​_o)/¯ 16:51:20 maybe it doesn't like LF instead of CRLF or something 16:51:49 like, firefox assumes that text/plains files should have crlf in them, which is what they often have when webserverers serve them 16:52:16 If prefixing "view-source:" doesn't work, try using curl and less, perhaps 16:52:50 no, that's not it either 16:53:00 I don't know then 16:54:44 b_jonas: it somehow falls back on guessing the file type from the extension. which is quite stupid... 16:57:08 but you're probably right that it has to do with the contents 16:58:25 but it's unclear what it is that it doesn't like... unicode symbols or stray ^Os perhaps? 16:59:35 * int-e notes that the server does not specify an encoding. that may be a problem. 17:07:24 int-e: oh, that could be it 17:07:52 but that shouldn't be a problem, should it? 17:08:18 I mean, the web used to be full of html files that didn't specify an encoding back in the 2000s, which is why changing the encoding is still in the firefox menu 17:08:28 well if FF then runs statistics on the input and sees 1% invalid characters... 17:08:42 in the View menu of Firefox 17:09:11 int-e: yes, but the last few days' worth of logs are actually valid utf-8 17:09:13 aren't they? 17:09:49 FF tends to default to ISO8859-1 for me. 17:10:02 which... hmm... pokes a hole into my reasoning. 17:10:10 Sometimes I do need to change the encoding in the View menu (not always to UTF-8, although sometimes this is the case, and sometimes not); this is more for files that aren't HTML, though, I found. 17:10:12 since that doesn't have invalid encodings at all :) 17:10:28 int-e: definitely not. browsers never even use iso-8859-1 encoding, even if you tell them 17:10:51 they use cp1252, because the web was also full of cp1252 html files declared to be iso-8859-1 back in the 2000s 17:11:20 If you think Chrome and Firefox is no good, do you think http://zzo38computer.org/textfile/miscellaneous/web_browser is good? Presumably also if used on X then it won't break selections either 17:11:23 and cp1252 has twelve invalid characters, or five if you call MS's updated version of cp1252 with the same name 17:14:33 yeah, maybe. (cp437 forever!) 17:51:20 -!- adu has quit (Quit: adu). 17:51:47 -!- adu has joined. 18:01:58 problem is it's hard to make a web browser 18:30:21 problem is, no one can define what a web browser is 18:31:45 that's not the problem 18:32:26 rain1: so make let's make it simpler then 18:32:29 is it HTML5? SVG? MathML? Canvas2D? WebGL? WebAsm? Workers? 18:32:58 I think web browsers should be scribble based 18:34:08 https://docs.racket-lang.org/scribble/getting-started.html#%28part._first-example%29 18:46:23 -!- nfd9001 has joined. 18:53:03 yay another markup language 18:53:48 and not a pretty one either 18:54:51 I guess it's also a templating language so perhaps there's some justification for its existence. 18:57:37 well gopher is good 18:57:49 i think you could do something good that's between gopher and web 18:58:42 HTML (you know, the markup language) plus CSS minus animations. 19:00:18 (CSS needs a closer look, it carries quite some baggage by now) 19:02:38 And none of this will happen anyway. We'll just keep adding stuff to the pile. Some parts like Flash will slowly fall into disuse and fade away. 19:09:05 TLAs should be banned from all communications. 19:12:22 I wrote a C header file for WebAssembly, but it is not implemented (as far as I know). 19:26:58 -!- Sgeo__ has joined. 19:30:01 -!- Sgeo_ has quit (Ping timeout: 252 seconds). 19:43:24 -!- Sgeo_ has joined. 19:46:40 -!- Sgeo__ has quit (Ping timeout: 248 seconds). 19:53:57 -!- AnotherTest has quit (Ping timeout: 258 seconds). 19:55:08 zzo38: well I expect no less of you; you are the god of vaporware 19:55:42 Is there a implementation of WebAssembly to use with C rather than JavaScript? 19:56:01 zzo38: I think clang has one, but I'm not sure 19:57:09 I'm not sure what niche that is supposed to fill, really. OpenCL / SPIR-V may be more relevant here. 19:57:28 LLVM too 19:59:57 I know LLVM can compile into WebAssembly code, but what I meant is a program to execute WebAssembly codes from a C program. 20:00:13 b_jonas: Ah, probably. At least the first two? I don't see the last one having to do with lifelink. 20:00:30 grep -h for what? 20:00:53 shachaf: it doesn't, it's just another of those cases where you have an ability that's usually on creatures, like lifelink, deathtouch, infect, but get it on a noncreature 20:01:00 shachaf: grep -h to print the filename even if there's only one file 20:01:13 ``` grep -h ^ bin/star* 20:01:14 ​#!/usr/bin/perl \ @c=split/\|/,"Admiral Crix Madine|Admiral Firmus Piett|Anakin Skywalker|BB-8|BB-9E|Bail Organa|Baze Malbus|Beru Lars|Bib Fortuna|Biggs Darklighter|Boba Fett|Bodhi Rook|Boss Nass|C-3PO|Captain Panaka|Captain Phasma|Cassian Andor|Chancellor Valorum|Chewbacca|Chief Jawa|Chirrut \x{ce}mwe|Cliegg Lars|Conan Antonio Motti|DJ|Darth Bane|Darth Maul|Darth Plagueis|Darth Vader|Doctor Cornelius Evazan|Count Dooku|Emperor Palpatine|Finn|Galen Erso 20:01:17 hmm 20:01:20 ``` grep -H ^ bin/star* 20:01:20 bin/starwars:#!/usr/bin/perl \ bin/starwars:@c=split/\|/,"Admiral Crix Madine|Admiral Firmus Piett|Anakin Skywalker|BB-8|BB-9E|Bail Organa|Baze Malbus|Beru Lars|Bib Fortuna|Biggs Darklighter|Boba Fett|Bodhi Rook|Boss Nass|C-3PO|Captain Panaka|Captain Phasma|Cassian Andor|Chancellor Valorum|Chewbacca|Chief Jawa|Chirrut \x{ce}mwe|Cliegg Lars|Conan Antonio Motti|DJ|Darth Bane|Darth Maul|Darth Plagueis|Darth Vader|Doctor Cornelius Evazan|Count Dooku|Emperor Pa 20:01:21 sorry 20:01:21 Ah. 20:01:24 backwards 20:01:35 cat -v is considered harmful, I hear. 20:01:36 -h omits the filename even if there's multiple files, -H puts them in even for one file 20:01:46 ``` grep -h ion wisdom/* 20:01:47 grep: wisdom/8: Is a directory \ ! is a syntax used in Haskell and Prolog for solving evaluation order problems. \ #esoteric is the only channel that exists. After monqy left it became slightly off-centër. It's a 7-codimensional hyperenchilada about 30 m (100 ft) across. oerjan seems to be making a lawn in the northern part, but it keeps getting dug up by free ranging moons. Currently located in the Atlantis Exclusion Zone. \ 01 is an abbreviation that 01 20:01:56 ``` grep -qh ion wisdom/* 20:01:56 No output. 20:01:59 ``` grep -sh ion wisdom/* 20:02:00 ​! is a syntax used in Haskell and Prolog for solving evaluation order problems. \ #esoteric is the only channel that exists. After monqy left it became slightly off-centër. It's a 7-codimensional hyperenchilada about 30 m (100 ft) across. oerjan seems to be making a lawn in the northern part, but it keeps getting dug up by free ranging moons. Currently located in the Atlantis Exclusion Zone. \ 01 is an abbreviation that 01 understands. \ The 1 is just 20:02:24 shachaf: I don't think it's harmful, but I said head -v 20:02:33 I use cat -v or cat -A a lot 20:06:18 You said tail -v 20:06:54 oh 20:06:58 sorry 20:09:50 the real point is, unix is scow 20:10:00 yeah 20:10:53 It's such a scow that it's so difficult to make correct software out of unix pipelines and shells. 20:11:04 Almost impossible, and certainly not the norm. 20:16:13 -!- arseniiv has quit (Ping timeout: 252 seconds). 20:34:34 `? set 20:34:35 set? ¯\(°​_o)/¯ 20:34:45 how come this doesn't have an "is just" wisdom? 20:35:30 Because no one wrote it. Which might be because the average "is just" wisdom is p. bad. 21:05:34 -!- DrKnuser has joined. 21:34:08 -!- laerling has joined. 21:43:35 -!- DrKnuser has quit (Quit: Quit). 22:19:30 -!- Lord_of_Life_ has joined. 22:20:00 -!- Lord_of_Life has quit (Ping timeout: 272 seconds). 22:20:38 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 22:25:27 Of my idea of RDF-based coding for Magic: the Gathering cards, there would be many parts (some of which are applicable to some cards only), such as :name :manacost :type :abilities :power :toughness :handmod :lifemod :split :flipped :transformed :melded :multiverseid 22:26:28 what is multiverseid? 22:27:21 It is used only for searching and has no effect on the game. A card definition may specify multiple IDs in case there are multiple versions printed. It can also be used for finding pictures and stuff if needed 22:27:45 is that the name of a database? 22:28:25 I don't know, but Wizards of the Coast has a database of Magic: the Gathering cards and they are indexed by the Multiverse ID number. 22:28:49 ah 22:29:52 A name identifies the card for game play purposes, while the Multiverse ID number identifies one specific printed version of the card. 22:36:50 -!- moei has quit (Quit: Leaving...). 22:37:12 my MTG database is a cardboard box 22:44:17 I mentioned other examples of my ideas here too, and maybe a document should be written with the ideas. A computer program to implement rules of Magic: the Gathering could then use this data to possibly convert into some other code. This also allows text-changing effects to work (some implementations do not implement text-changing effects). 23:10:41 -!- S_Gautam has quit (Quit: Connection closed for inactivity). 23:51:14 the IOCCC website says it's planning to release source code on 2019-06-02. do you think they will? 2019-06-02: 00:07:48 IO☭ 00:22:02 -!- laerling has quit (Remote host closed the connection). 00:25:04 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds). 01:09:23 I would expect that they will, although I don't know what time or what timezone. 01:09:59 it's always 2019-06-02 somewhere 01:12:34 I should want that a Free software program would compile the RDF codes into native codes, taking into account everything to determine what cases the compiled program needs to consider, such as what text-changing effects are used in the cards so that it can know what text can be overridden in what ways. 01:52:22 -!- nfd has joined. 01:56:07 -!- nfd9001 has quit (Ping timeout: 252 seconds). 02:04:18 -!- oerjan has joined. 02:11:39 -!- adu has quit (Quit: adu). 02:12:24 @messages-loud 02:12:25 int-e said 3d 16h 33m 1s ago: oh no, now things may be going horribly right in the long term 02:12:59 yeah someone's likely to be coming back at the worst possible moment. 02:15:05 `quote 558 02:15:06 558) Ngevd:. i'm so kind, even to assholes! anmaster no not markov anmaster no not markov anmaster no not markov anmaster no not markov anmaster no not markov 02:15:16 is the markov in there really accurate 02:15:29 i recall that repeating pattern without it. 02:54:56 shachaf: I have not had so many problem with UNIX pipelines; some software is not designed to do that but I usually do design it to do that. 02:55:35 zzo38: How? 02:58:43 For example, my Farbfeld Utilities software is entirely intended to be worked by pipes. Some other programs allow you to specify a command with a pipe where a filename is expected, and Heirloom-mailx is one that does, and I often use that when dealing with attachments. You can also pipe through external programs with vim, and I use that too. 03:02:10 (It is also useful with curl, you can send the output to other programs, such as less and zcat) 03:03:44 (And, in fact, "curl | zcat" is like what I use when downloading Amiga Preservation music.) 03:20:01 rain1: the symbol doesn't always tell you if a solution exists <-- it is the basis of an algorithm which does, though. 03:21:38 basically check each prime factor the modulus separately, with some complication for powers of 2. 03:21:42 *of the 03:22:57 well, approximately. 03:23:20 What is called, the technique when you look through two lists both of which are sorted and contain no duplicates, in order to find items that match? 04:47:54 -!- FreeFull has quit. 05:21:10 Do you like a global enchantment card with "graft 2" and "dash {G}" that is not a creature? 05:21:49 Do you like a non-creature artifact with "graft 1" and "undying" and "echo {0}"? 05:34:56 @tell ais523 e.g. is 333333 six repeats of 3, three repeats of 33, two repeats of 333, or one repeat of 333333? <-- a number that is a repetition of another non-1 number cannot be prime, though. 05:34:56 Consider it noted. 05:35:52 @tell ais523 although there might be more than one of the form 11...1. 05:35:52 Consider it noted. 05:36:40 :t isPrime 05:36:41 error: 05:36:41 • Variable not in scope: isPrime 05:36:41 • Perhaps you meant ‘isPrint’ (imported from Data.Char) 05:39:41 @tell ais523 apparently there are conjectured to be infinitely many https://en.wikipedia.org/wiki/Repunit#Decimal_repunit_primes 05:39:41 Consider it noted. 05:45:13 -!- b_jonas has quit (Remote host closed the connection). 05:45:27 -!- b_jonas has joined. 05:46:04 `addquote `unidecode ⧸🙼 ​[U+29F8 BIG SOLIDUS] [U+1F67C VERY HEAVY SOLIDUS] it is with a very heavy solidus that i write to inform you that unicode has too many code points 05:46:08 1334) `unidecode ⧸🙼 ​[U+29F8 BIG SOLIDUS] [U+1F67C VERY HEAVY SOLIDUS] it is with a very heavy solidus that i write to inform you that unicode has too many code points 05:46:42 `` allquotes |tail -2 05:46:43 1333) #define __NR_oldolduname 59 fungot: what's your old old name? olsner: they decided not to waste any brain cells storing obscure unix silliness). \ 1334) `unidecode ⧸🙼 ​[U+29F8 BIG SOLIDUS] [U+1F67C VERY HEAVY SOLIDUS] it is with a very heavy solidus that i write to inform you that unicode has too many code points 05:47:50 `doag share/quotes 05:47:52 No output. 05:47:55 `doag quotes 05:47:57 11825:2019-06-02 addquote `unidecode \xe2\xa7\xb8\xf0\x9f\x99\xbc \xe2\x80\x8b[U+29F8 BIG SOLIDUS] [U+1F67C VERY HEAVY SOLIDUS] it is with a very heavy solidus that i write to inform you that unicode has too many code points \ 11790:2019-04-17 sled quotes//1333s, <, <,g \ 11789:2019-04-16 addquote #define __NR_oldolduname 59 fungot: what\'s your old old name? quote frequency is p. low huh 05:48:40 `` doag quotes | grep addquote | awk '{print $1}' | xargs 05:48:42 11825:2019-06-02 11789:2019-04-16 11746:2019-02-25 11736:2019-02-17 11735:2019-02-15 11667:2018-12-08 11662:2018-12-05 11628:2018-10-06 11610:2018-08-22 11589:2018-08-08 11585:2018-07-21 11580:2018-07-01 11551:2018-05-08 11523:2018-04-23 11439:2018-03-03 11348:2018-02-21 11346:2018-02-19 11316:2018-01-13 11315:2018-01-12 11255:2017-12-07 11252:2017-12-06 11197:2017-09-26 11173:2017-08-30 11096:2017-07-19 11062:2017-06-30 11060:2017-06-30 10876:2017-05-09 1 05:49:00 shocking 05:49:09 maybe fizzie will make a fancy graph of when quotes are added 05:50:12 :t ransomNote 05:50:14 error: Variable not in scope: ransomNote 05:50:33 what a @letdown 05:50:59 𝔦𝓕 y⒪𝖴 🅦𝙰𝐍𝕥 🆃𝗢 s𝑬𝚎 @🅡𝗔𝘕𝙎Ⓞ𝓶𝗻🄾𝙩𝘌 𝔸𝓖𝐀🅸𝘕... 05:52:04 sparse files hmm interesting <-- if someone does that we need to invent double unary to force them to implement sparse file lengths hth 06:13:45 `ls bin/learn 06:13:46 bin/learn 06:30:41 int-e: yes, but the last few days' worth of logs are actually valid utf-8 <-- ironically that's probably because esowiki is gone 06:31:30 Does esowiki emit invalid UTF-8? 06:32:32 it emits color codes 06:33:04 which may not actually be invalid, but certainly are what tends to confuse my browser 06:34:23 Aren't they all octets smaller than 128? 06:35:05 An octet should be made of 12 bits, like an octave. 06:35:12 Well, I suppose an octave is only 1 bit. 06:42:25 that makes no sense, "octave" is latin for 8th (m. voc. sg.) hth 06:43:00 so -3 bits? 06:43:09 MAYBE 06:46:03 fortunately fake esowiki bot saved us all 06:48:36 -!- AnotherTest has joined. 06:53:17 -!- AnotherTest has quit (Ping timeout: 258 seconds). 08:27:23 schlock mercenary's current arc is getting creepy 08:28:15 * oerjan is reading it in parallel with his binge, which is still back in 2011 08:29:12 (and also creepy.) 08:32:50 -!- laerling has joined. 09:15:04 -!- oerjan has quit (Quit: Later). 09:49:54 -!- arseniiv has joined. 10:05:52 -!- adu has joined. 10:11:08 wow. still thunderstorm warnings for today and the three days after 10:11:45 -!- AnotherTest has joined. 10:12:19 -!- nfd9001 has joined. 10:15:03 -!- nfd has quit (Ping timeout: 245 seconds). 10:20:44 -!- Lord_of_Life has quit (Ping timeout: 272 seconds). 10:23:09 -!- Lord_of_Life has joined. 10:26:09 -!- AnotherTest has quit (Ping timeout: 252 seconds). 10:36:47 -!- b_jonas has quit (Quit: leaving). 10:42:22 -!- Phantom_Hoover has joined. 11:45:42 -!- rodgort has quit (Quit: Leaving). 11:45:58 -!- Sgeo_ has quit (Read error: Connection reset by peer). 11:46:29 -!- Sgeo_ has joined. 12:08:35 -!- S_Gautam has joined. 12:44:46 -!- FreeFull has joined. 12:55:51 -!- laerling has quit (Remote host closed the connection). 14:31:28 Man, I wanna run neural nets on #esoteric logs again. 14:32:24 I wonder if I should do char-rnn or GPT-2. 14:54:59 -!- ais523 has joined. 14:57:29 !tell oerjan counterexamples to the Goldbach conjecture aren't prime anyway (although they can't end in 3, so the example was dubious in another way) 14:57:35 @message oerjan counterexamples to the Goldbach conjecture aren't prime anyway (although they can't end in 3, so the example was dubious in another way) 14:57:35 Maybe you meant: messages messages-loud messages? 14:57:38 @tell oerjan counterexamples to the Goldbach conjecture aren't prime anyway (although they can't end in 3, so the example was dubious in another way) 14:57:38 Consider it noted. 14:57:44 too many messagebots 16:00:03 -!- AnotherTest has joined. 16:08:59 -!- AnotherTest has quit (Ping timeout: 252 seconds). 16:33:49 -!- moei has joined. 16:38:40 -!- john_metcalf has joined. 16:43:23 -!- john_metcalf has quit (Quit: john_metcalf). 16:56:30 `? password 16:56:31 The password of the month has been replaced with a security key for protection against advanced persistent threats. 16:59:36 -!- contrapumpkin has joined. 17:02:24 -!- copumpkin has quit (Ping timeout: 248 seconds). 17:11:18 `learn The password of the month has been erroneously sent to the NSA. We apologize for the inconvenience. 17:11:20 Relearned 'password': The password of the month has been erroneously sent to the NSA. We apologize for the inconvenience. 17:12:55 . o O ( Master Yoda is part of the New Word Order. ) 17:14:55 Oh "is fighting for" would work better :) 17:40:55 -!- tromp has quit (Read error: Connection reset by peer). 17:46:50 -!- ais523 has quit (Quit: quit). 17:47:31 -!- unlimiter has joined. 17:47:56 -!- unlimiter has quit (Client Quit). 18:17:16 -!- tromp has joined. 18:34:45 -!- LKoen has joined. 18:44:14 -!- LKoen has quit (Remote host closed the connection). 18:44:24 -!- adu has quit (Quit: adu). 18:51:09 -!- LKoen has joined. 19:02:56 int-e: Wait, what's the deal with those passwords? 19:03:17 it's June. 19:03:26 I thought the whole joke behind wisdom/password was that you'd say "The password of the month is X" and X could be interpreted as both a password and a grammatical sentence. 19:03:52 But if you say "password of the month has X" that defeats the joke, doesn't it? 19:04:17 maybe the joke's on you for having expectations 19:04:41 The temperature sensors for my computer say: temp1: +84.0 C (high = +100.0 C, crit = +110.0 C) CPU Temperature: +30.5 C (high = +60.0 C, crit = +95.0 C) MB Temperature: +23.0 C (high = +45.0 C, crit = +95.0 C) These are higher than usual, but at least it isn't close to the "high" numbers. 19:04:48 oerjan: Wasn't that the joke? I'm very confusil. 19:04:59 Have I been misreading these password entries all these years? 19:05:34 What is supposed to be done if it does reach the "high" numbers, and how should be consideration of the temperature? Also, what do of hard drive temperature (which has no high/crit)? It is also higher than usual, but I don't know how much is too high 19:05:39 shachaf: we followed that pattern for a long time 19:05:51 * int-e shrugs 19:05:58 I know, but was that pattern the joke or was I misreading it? 19:06:18 It's up to you I think. 19:06:41 Do you know much about computer temperatures? 19:08:10 shachaf: The password of the month is evolving. 19:08:11 ;-) 19:08:21 zzo38: The other day I disassembled my laptop and removed the dust. Now the tempereature is lower. 19:08:24 Do you like this? 19:08:31 -!- tromp has quit (Remote host closed the connection). 19:09:31 I also have a graph of the temperature, sampled at each sensor every 10 seconds for the last two weeks. 19:10:44 -!- tromp has joined. 19:17:27 -!- 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.”). 19:25:32 show the graph\ 19:37:37 -!- tromp has quit (Remote host closed the connection). 19:37:47 -!- b_jonas has joined. 19:48:57 Would it help to put the computer on top of cement blocks? I don't have any cement blocks, but I seem to remember I read somewhere that suggestion. 19:50:45 -!- rain2 has joined. 19:52:33 -!- rain1 has quit (Ping timeout: 245 seconds). 19:52:38 computer 19:52:39 /********/ 19:53:27 shachaf: no cement. 19:53:32 close enough hth 19:53:48 I *was* humoring you. 19:54:06 oh, i get it 19:54:53 `grwp subtle 19:54:55 ​`run:`run is HackEgo's builtin for running a command with full shell syntax. These days most use the user-made `` or ``` shortcuts instead, although all of the three have subtle differences, with `run being the most plain option (also, unlike the rest it cannot be called from other commands.) \ subtle:The 'b' sound is pronounced in 'subtle', it's just difficult to hear. 20:15:22 `? `! 20:15:23 ​`! emulates the ! command of our former bot EgoBot. You write `! then the name of the language then a program, and it runs the program you give and returns the result. We used to use it to test out esoprograms in-channel all the time, but the set of included esolangs is fairly old now and so it's rarely used. 20:15:25 `! `? 20:15:25 ​/hackenv/bin/!: line 4: /hackenv/ibin/`?: No such file or directory 20:18:20 `? `? 20:18:21 ​​`? ¯\(°​_o)/¯ 20:18:26 hmm 20:18:29 `? ? 20:18:30 ​? is wisdom 20:30:05 -!- ais523 has joined. 20:35:05 -!- ais523 has quit (Remote host closed the connection). 20:35:22 -!- ais523 has joined. 20:46:14 -!- john_metcalf has joined. 20:47:41 -!- AnotherTest has joined. 20:51:22 wtf 20:51:43 ?metar CYVR 20:51:45 CYVR 022000Z 16005G15KT 130V240 30SM FEW040 FEW070 FEW220 BKN250 22/13 A2988 RMK CU1AC1CI2CS4 CU TR AC TR SLP121 DENSITY ALT 900FT 20:51:53 so the "HP Pavilion" is a brand name of notebook computers? is that what hppavilion[0] got their name of? 20:51:58 I didn't know 20:57:42 -!- AnotherTest has quit (Ping timeout: 258 seconds). 21:08:16 -!- tromp has joined. 21:18:15 b_jonas: yes 21:18:18 to both parts 21:24:22 There is also a pavilion. 21:24:39 Oh, apparently it's been renamed. 21:40:52 Now is it good? http://esolangs.org/wiki/User:Zzo38/Untitled_2 21:42:45 -!- tromp has quit (Remote host closed the connection). 21:50:18 -!- LKoen has joined. 21:55:15 -!- LKoen has quit (Remote host closed the connection). 21:56:26 -!- LKoen has joined. 21:56:44 -!- ais523 has quit (Quit: quit). 21:58:59 -!- moei has quit (Quit: Leaving...). 21:59:29 -!- tromp has joined. 22:01:56 -!- tromp has quit (Read error: Connection reset by peer). 22:02:33 -!- tromp has joined. 22:07:09 -!- tromp has quit (Ping timeout: 258 seconds). 22:10:11 -!- LKoen has quit (Remote host closed the connection). 22:16:03 -!- LKoen has joined. 22:18:25 -!- Lord_of_Life_ has joined. 22:22:06 -!- Lord_of_Life has quit (Ping timeout: 272 seconds). 22:22:31 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 22:44:05 -!- LKoen has quit (Remote host closed the connection). 22:44:24 -!- LKoen has joined. 23:16:16 -!- S_Gautam has quit (Quit: Connection closed for inactivity). 23:17:37 -!- Phantom_Hoover has quit (Ping timeout: 252 seconds). 23:36:51 -!- tromp has joined. 23:40:16 -!- arseniiv has quit (Ping timeout: 248 seconds). 23:41:05 -!- tromp has quit (Ping timeout: 252 seconds). 23:42:05 -!- adu has joined. 23:46:27 -!- MDude has joined. 2019-06-03: 00:15:31 man, how 'bout that #haskell, huh 00:19:43 <3 monads 00:23:07 I wrote a official fan-game/fan-story policy for my "xyzabcde" game series. It is found at: http://zzo38computer.org/xyzabcde/fangame.txt Do you think it is OK? 00:32:20 -!- 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.”). 00:34:16 Is there any language that does non-global GC effectively? 00:34:25 I think Erlang is the closest I know of. 00:38:46 I don't know. 00:50:56 As Saul Gorn said: "Tomorrow, which isn’t even here yet, will never be the day after tomorrow again." 01:21:01 -!- tromp has joined. 01:23:42 -!- tromp_ has joined. 01:25:35 -!- tromp has quit (Ping timeout: 252 seconds). 01:27:19 -!- FreeFull has quit. 01:28:09 -!- tromp_ has quit (Ping timeout: 252 seconds). 02:05:59 I don't know if LLVM does, either, but you can try to look maybe 02:46:40 So I'm retraining GPT-2 on #esoteric logs. :D 02:46:49 It's producing a lot of messages from "shashmaf". 02:47:36 * tswett[m] sent a long message: < https://matrix.org/_matrix/media/v1/download/matrix.org/aEBBWmuCSCXCSseeazmVRhta > 02:48:22 I'm killing it. :D 02:49:07 I was using too high a learning rate anyway. The starting point is a model that knows English really well, but the aggressive training caused it to forget all that. 02:49:49 And there is a timestamp with five pieces, too, it look like 03:11:42 -!- tromp has joined. 03:13:42 Yup. 03:13:52 One of the samples consisted entirely of a single humongous timestamp. 03:14:15 Well, that's not quite right. 03:14:20 I'll go ahead and paste the entire sample. 03:14:22 * tswett[m] sent a long message: < https://matrix.org/_matrix/media/v1/download/matrix.org/EgJPeXoVAePQqlqemMKxktil > 03:16:07 -!- tromp has quit (Ping timeout: 258 seconds). 03:42:57 Now the model has said... 03:42:58 "Language-bound variables are treated as if they were bound to variable length. To test whether a variable-length variable has some fixed-length state, let x be the bound variable of x, and let y be a variable of variable-length state, such that it has a variable-length binding that is one of the two variable-length bindings of the variable-length variable." 03:44:43 shachaf: what did #haskell do now 03:46:19 I think it was just the usual monad nonsense. 03:47:48 speaking of nonsense, is rust trying to take every bad idea from npm/nodejs 03:47:56 that's what it seems like 03:48:11 what'd they do now 03:48:14 Which bad ideas is that? 03:49:04 I just saw some Cargo packages and they seemed inspired by the npm ideal of "do one thing and do it poorly". 03:49:35 lol 03:49:36 And also written by JavaScript people I think. 03:49:40 yeah 03:49:45 I should think it depends on the package. There are a lot of packages isn't so good. 03:49:47 they seem hellbent on ruining a great systems language 03:50:03 and this is true, 90% of everything is crap (being generous) 03:50:59 Yes, so that is going to do, regardless of the programming language in use. Just avoid to use the packages that is no good. The existence of it should not require you to use them if it is not applicable for your program 03:51:01 shachaf: did you see that the rust-lang.org design was so disastrous that the entire website team resigned / was deposed after massive negative feedback from the community 03:51:13 imo bring back my bullet points 03:52:06 * efficient c bindings 03:54:12 and there's going to be some kind of postmortem about the whole cock-up 03:54:14 which is delayed 03:59:37 fortunately all sorts of people are working on systems languages now 04:04:31 o 04:04:31 k 04:04:36 any cool ones i should know about? 04:12:51 not sure 04:12:59 what do you want from a systems language 04:18:31 Hey, it finally generated something that looks like a chat log. :D 04:19:19 Ethan_Gestapo has a conversation with Koenig and GangstaR about writing about dying. 04:20:29 Here it is. https://pastebin.com/H2dVTRuF 04:21:55 You know what's particularly weird? It generated chat logs—but not in the style of the chat logs I'm training on. 04:22:05 It added brackets around the timestamps. The training data doesn't have those. 04:22:25 Presumably, GPT-2's original corpus has some chat logs similar to that. 04:23:08 So my fine-tuned model has learned that it should generate chat logs, but it hasn't learned that it shouldn't put brackets around the timestamps. 04:24:17 Also, the timestamps happen to all have 28 as the hour. 04:29:41 I am the queen of the 28th hour 04:31:49 -!- nfd has joined. 04:35:37 -!- nfd9001 has quit (Ping timeout: 250 seconds). 04:41:30 -!- adu has quit (Quit: adu). 04:44:17 We've never had a person here named esowiki, right? 04:44:30 Because it just generated a long monologue by someone named esowiki. 04:45:00 -!- S_Gautam has joined. 04:45:09 esowiki was a bot, and also a person pretending to be that bot. 04:45:19 Aha. 04:45:22 Did it generate a long, stream-of-consciousness by tswett[m]? 04:45:26 That would be realistic. 04:45:34 Sure would. :D 04:45:34 monologue 04:45:46 I don't think I delivered very many of my famous monologues in 2018, though. 04:45:50 That's the training data I'm using. 04:52:20 -!- sebbu3 has joined. 04:56:06 -!- sebbu has quit (Ping timeout: 258 seconds). 04:59:46 -!- tromp has joined. 05:04:07 -!- tromp has quit (Ping timeout: 252 seconds). 05:08:03 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net). 05:11:18 kmc: also c99 is tg 05:11:36 and c11 is ok? 05:11:47 did you see my ridiculous c11 fmt macro 05:14:13 -!- nfd9001 has joined. 05:16:13 -!- nfd has quit (Ping timeout: 252 seconds). 05:17:00 maybe 05:20:38 Now the model has created somebody named "int_jonas". 05:21:56 11:50:50 Phantom: Phantom isn't Phantom, Phantom was Phantom's thought, Phantom is Phantom's thought 05:22:12 In this sample, every message has "Phantom" once every two or three words. 05:22:23 Okay, enough of this nonsense, I'm going to bed. 05:22:26 Night, everyone. :D 05:35:39 -!- Melvar has quit (Quit: thunderstorm). 05:47:35 oh is esowiki deat? 05:47:37 *dead 05:47:38 F 06:04:31 I don't think so? 06:14:25 `quote 06:14:26 1016) http://www.amazon.com/Someone-Cuttlefish-Shapeshifter-Erotica-ebook/dp/B0087PTMW2 i hope you know this is going to /fuck up/ my amazon recs 06:38:38 -!- sprocklem has quit (Read error: Connection reset by peer). 06:40:13 -!- sprocklem has joined. 06:46:21 -!- tromp has joined. 06:47:42 -!- tromp_ has joined. 06:50:49 -!- tromp has quit (Ping timeout: 252 seconds). 06:51:55 -!- tromp_ has quit (Ping timeout: 252 seconds). 07:13:10 That might have been a reference to the bot. 07:13:39 Which is temporarily dead. 07:20:30 I've managed to diagnose it to the fact that it's statically linked; for whatevere reason that makes it segfault in std::thread::detach(). When I remove features = ["fully_static_link"] from the BUILD file it starts to work again. 07:20:36 Unfortunately that was a necessary workaround for the fact that GCC on the machine it's running on isn't new enough to compile the code. If they'd just go on and release Debian 10... 07:20:40 In the meanwhile, I'm not sure how to work around the workaround. 07:21:18 static linking is the best 07:21:28 if your program doesn't work with static linking it's broken hth 07:21:53 Well, I mean, glibc doesn't even support static linking for programs that call getaddrinfo. 07:22:08 external/fi_zem_bracket/event/socket.cc:258: warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking 07:22:51 I don't think the breakage is necessary related to that, though, since it segfaults the same way even on the same machine it's built on nowadays. 07:23:11 getaddrinfo is kind of a scow api anyway 07:24:05 What does musl do? 07:26:23 I don't know. But I don't want to start figuring out how to make Bazel build for that. Although apparently it's maybe been done. 07:26:56 is there any excuse for these things to be complicated instead of simple 07:27:48 -!- nfd has joined. 07:30:53 I guess it's hard to make complex things simple. 07:31:50 -!- nfd9001 has quit (Ping timeout: 272 seconds). 07:32:54 but why is it complex in the first place 07:33:07 scow 07:35:53 shachaf: Cargo packages have been doing that for a while, as in, CPAN-like dependency hell. you don't have to use those packages. 07:37:25 -!- tromp has joined. 07:38:47 fizzie: you could install a newer gcc then. it doesn't have many dependencies. 07:40:05 -!- APic_ has joined. 07:41:57 -!- nfd has quit (*.net *.split). 07:41:59 -!- uplime has quit (*.net *.split). 07:45:46 -!- john_metcalf has quit (Ping timeout: 272 seconds). 07:47:44 -!- wmww has quit (*.net *.split). 07:47:46 -!- APic has quit (*.net *.split). 07:47:46 -!- olsner has quit (*.net *.split). 07:52:43 -!- wmww has joined. 07:52:43 -!- olsner has joined. 07:53:19 -!- nfd has joined. 07:53:19 -!- uplime has joined. 08:10:47 -!- Phantom_Hoover has joined. 08:23:23 -!- b_jonas has quit (Quit: leaving). 08:39:33 That might be plausible. It's taking a long time to build though. 09:02:04 -!- tromp has quit (Remote host closed the connection). 09:13:47 -!- tromp has joined. 09:16:36 (Maybe I should've done --disable-bootstrap.) 09:30:06 -!- AnotherTest has joined. 09:34:18 -!- wob_jonas has joined. 09:35:03 fizzie: yes; what can speed it down a lot is if you configure it with --enable-languages=c,c++,fortran or the like, so that it doesn't try to compile the java and golang and ada and objective c and whatever else it has now standard libraries 09:45:06 and yes, you shouldn't disable bootstrap unless you're cross-compiling 09:45:24 onto some unusual architecture where you can't native compile gcc 09:55:54 oh nice, it works now 10:03:00 -!- APic_ has changed nick to apic. 10:03:04 -!- apic has changed nick to APic. 10:12:56 fizzie: thank you for spending time to maintain those tools though, they're very useful 10:20:28 -!- Lord_of_Life has quit (Ping timeout: 246 seconds). 10:22:14 I did --enable-languages=c,c++, which should be enough. Now I'll be out for the day, but in the evening I'll hopefully be able to bring things back up. 10:24:14 -!- Lord_of_Life has joined. 10:25:28 thansk 10:34:54 -!- oklopol has joined. 10:39:55 -!- atslash has quit (Quit: Leaving). 11:01:09 -!- S_Gautam has quit (Quit: Connection closed for inactivity). 11:41:43 -!- S_Gautam has joined. 11:42:30 -!- AnotherTest has quit (Ping timeout: 258 seconds). 12:29:25 -!- sebbu3 has changed nick to sebbu. 12:38:38 -!- Melvar has joined. 12:39:51 -!- arseniiv has joined. 13:17:57 -!- AnotherTest has joined. 13:20:36 -!- rain1 has joined. 13:22:03 -!- rain2 has quit (Ping timeout: 252 seconds). 13:23:51 -!- AnotherTest has quit (Ping timeout: 250 seconds). 13:26:27 -!- ^[ has quit (Ping timeout: 250 seconds). 13:28:34 -!- ^[ has joined. 14:20:09 -!- rodgort has joined. 14:39:49 -!- oklopol has quit (Ping timeout: 246 seconds). 14:43:31 -!- AnotherTest has joined. 14:51:07 -!- AnotherTest has quit (Ping timeout: 248 seconds). 15:30:40 -!- LKoen has joined. 15:48:43 -!- wob_jonas has quit (Remote host closed the connection). 16:08:54 -!- AnotherTest has joined. 16:21:12 -!- FreeFull has joined. 16:21:16 `? ski 16:21:17 ski? ¯\(°​_o)/¯ 16:24:31 -!- sleepnap has joined. 16:42:50 ? 16:44:22 ski: We have such entries for many regulars. I was wondering if this one says anything about a crusade against abstraction... or perhaps some other silly thing. But no such luck. 16:45:51 -!- b_jonas has joined. 16:48:27 -!- Sgeo__ has joined. 16:50:19 -!- AnotherTest has quit (Ping timeout: 252 seconds). 16:50:30 . 16:52:06 -!- AnotherTest has joined. 16:52:09 -!- Sgeo_ has quit (Ping timeout: 252 seconds). 16:56:07 yet another new mulligan rule for M:tG? wtf 16:58:40 -!- AnotherTest has quit (Ping timeout: 272 seconds). 17:17:58 -!- sleepnap has quit (Ping timeout: 268 seconds). 17:28:38 -!- LKoen has quit (Remote host closed the connection). 17:34:45 -!- LKoen has joined. 18:30:54 -!- sleepnap has joined. 18:41:09 -!- S_Gautam has quit (Quit: Connection closed for inactivity). 18:44:05 Blah. Now it says "null context when constructing CivetServer. Possible problem binding to port." 18:44:09 Well, at least that's an error message, instead of a mysterious segfault. 18:45:08 -!- esowiki has joined. 18:45:17 Oh, there was just an instance running in gdb from previous testing. 19:04:17 -!- arseniiv_ has joined. 19:04:43 we. 19:04:46 welcome back, esowiki 19:06:14 relcome 19:06:21 -!- arseniiv has quit (Ping timeout: 252 seconds). 19:13:06 civets? 19:13:23 -!- Sgeo_ has joined. 19:16:37 -!- Sgeo__ has quit (Ping timeout: 252 seconds). 19:17:58 -!- Sgeo__ has joined. 19:21:17 -!- Sgeo_ has quit (Ping timeout: 258 seconds). 20:06:22 -!- nfd9001 has joined. 20:10:18 -!- uplime^ has joined. 20:15:09 -!- nfd has quit (*.net *.split). 20:15:10 -!- uplime has quit (*.net *.split). 20:18:08 -!- lynn has quit (Ping timeout: 248 seconds). 20:19:05 -!- lynn_ has joined. 20:20:51 -!- AnotherTest has joined. 20:25:11 -!- AnotherTest has quit (Ping timeout: 252 seconds). 20:31:37 -!- sleepnap has quit (Quit: Leaving.). 20:32:43 -!- sleepnap has joined. 20:51:21 CivetWeb is an embedded web server thing, I use it for metrics (and in another binary, for serving the logs). 21:14:30 civit poo coffee 21:16:54 -!- uplime^ has changed nick to uplime. 21:28:03 -!- aloril_ has joined. 21:32:02 -!- aloril has quit (Ping timeout: 268 seconds). 21:37:54 -!- 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.”). 21:42:55 -!- FreeFull has quit (Ping timeout: 252 seconds). 21:43:53 -!- FreeFull has joined. 21:54:23 -!- arseniiv_ has changed nick to arseniiv. 22:19:44 -!- tromp has quit (Remote host closed the connection). 22:20:16 -!- Lord_of_Life_ has joined. 22:20:48 -!- Lord_of_Life has quit (Ping timeout: 248 seconds). 22:21:24 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 22:24:51 -!- sleepnap has quit (Quit: Leaving.). 22:51:23 -!- b_jonas has quit (Quit: leaving). 22:53:57 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 23:49:25 I'm looking at a piece of code to convert opaque internal stuff into euler rotations, and I need to reverse it, and it should be easy, but my brain just hates me 23:50:34 euler rotations? i just met 'er hth 23:51:23 I don't want to need pen and paper to do math 23:52:21 -!- arseniiv has quit (Ping timeout: 252 seconds). 2019-06-04: 00:06:57 -!- Sgeo_ has joined. 00:10:53 -!- Sgeo__ has quit (Ping timeout: 245 seconds). 00:11:50 -!- tromp has joined. 00:13:25 -!- tromp_ has joined. 00:15:16 hmm, fancy: https://clang.llvm.org/docs/BlockLanguageSpec.html#block-literal-expressions 00:15:42 (every sufficiently advanced programming language invents a closure type?) 00:16:10 mm 00:16:17 (I encountered this because it made its way into OpenCL) 00:16:31 -!- tromp has quit (Ping timeout: 258 seconds). 00:16:31 int-e: Oh, they took Objective C's block syntax. I think I've seen this before. 00:16:32 blocks have a complictaed abi https://clang.llvm.org/docs/Block-ABI-Apple.html 00:16:43 and are mainly meant to work with the objc / apple runtime 00:16:47 "OpenCL C 2.0 adds support for the clang block syntax." 00:17:03 C++ lambdas are a lot more elegant 00:17:06 kmc: did you know you can typedef function types in c, not just function pointer types? 00:17:11 since they are ~zero cost~ 00:17:14 shachaf: I think so 00:17:25 it seems nicer 00:17:28 . o O ( You do *not* use "C++" and "elegant" in a sentence. ) 00:17:31 but i always saw people do it the other way 00:17:39 -!- tromp_ has quit (Ping timeout: 252 seconds). 00:17:47 I think lambdas are among the most reasonable of C++ features in the past decade. 00:18:11 * int-e tries to remember where he heard this "You do not use ... in a sentence." for the first time... 00:18:37 Though they could have been more reasonable if the language had been designed with them in mind from the beginning. 00:19:45 the same is true of most C++11 features 00:19:48 -!- budonyc has joined. 00:19:58 well, a lot of them are just unreasonable 00:20:10 man 00:20:17 c++ templates are such a joke 00:20:35 how do they keep making them more complicated 00:20:47 it's the most ridiculous local maximum 00:21:44 c++ templates can't even be parsed 00:23:59 kmc: I would hope that most of that ABI is avoided by inlining. 00:35:27 -!- Sgeo__ has joined. 00:38:15 -!- adu has joined. 00:39:06 -!- Sgeo_ has quit (Ping timeout: 272 seconds). 01:28:38 -!- FreeFull has quit. 01:31:59 -!- Sgeo__ has quit (Read error: Connection reset by peer). 01:32:25 -!- Sgeo__ has joined. 01:57:10 zzo38, what do you think about the London Mulligan, if you have an opinion about it? 02:09:30 -!- budonyc has quit (Quit: Leaving). 03:01:57 -!- kallisti has joined. 03:03:05 -!- kallisti has quit (Remote host closed the connection). 03:13:34 -!- Sgeo__ has quit (Read error: Connection reset by peer). 03:13:56 -!- Sgeo__ has joined. 03:25:27 -!- tromp has joined. 03:30:06 -!- tromp has quit (Ping timeout: 258 seconds). 03:55:06 -!- contrapumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…). 04:07:28 -!- S_Gautam has joined. 04:50:00 -!- tromp has joined. 04:52:25 -!- sebbu3 has joined. 04:54:29 -!- tromp has quit (Ping timeout: 252 seconds). 04:56:00 -!- sebbu has quit (Ping timeout: 244 seconds). 05:30:07 -!- Sgeo__ has quit (Read error: Connection reset by peer). 05:32:46 -!- Sgeo has joined. 05:52:20 -!- AnotherTest has joined. 05:56:49 -!- AnotherTest has quit (Ping timeout: 252 seconds). 06:38:18 -!- tromp has joined. 06:42:39 -!- tromp has quit (Ping timeout: 252 seconds). 06:44:32 -!- adu has quit (Quit: adu). 06:47:41 -!- tromp has joined. 07:22:05 [[Talk:EnScript]] N https://esolangs.org/w/index.php?oldid=63049 * JonoCode9374 * (+692) Just want some clarification about the ENC command 07:22:39 [[Talk:EnScript]] M https://esolangs.org/w/index.php?diff=63050&oldid=63049 * JonoCode9374 * (+93) Added tag 07:33:06 [[Talk:EnScript]] https://esolangs.org/w/index.php?diff=63051&oldid=63050 * JonoCode9374 * (+238) /* The ENC Command */ 07:42:45 [[Talk:EnScript]] https://esolangs.org/w/index.php?diff=63052&oldid=63051 * JonoCode9374 * (+369) /* The CHS Command */ new section 07:50:17 -!- b_jonas has joined. 07:52:05 [[Deadfish "self-interpreter"]] https://esolangs.org/w/index.php?diff=63053&oldid=63013 * JonoCode9374 * (+849) Added python interpreter for this esolang 07:57:00 `? quotefmt 07:57:01 quotefmt? ¯\(°​_o)/¯ 07:57:05 `? quoteformat 07:57:06 quoteformat is: message; * nick action; two spaces between messages; all elisions marked with [...] other than irrelevant intervening messages; for messages separated by elision, one space on each side, not two. 07:57:14 `quote fizzie after 07:57:14 13) Finally I have found some actually useful purpose for it. 07:57:31 are old quotes excloded from quoteformat? or should we amend them? 08:26:45 -!- b_jonas has quit (Quit: leaving). 08:34:49 hmm, doesn't CL_DEVICE_MAX_COMPUTE_UNITS = 10 (0xa) indicate that I should be able to subdivide the device using clCreateSubDevices ... 08:36:27 int-e: are you making an md5 collision 08:36:27 twh 08:36:50 Ah, no. 08:37:04 There's also this: CL_DEVICE_PARTITION_MAX_SUB_DEVICES = 1 08:37:55 shachaf: I intend to make a partial one. 80 bits, maybe 96. 08:38:55 Maybe I should use OpenCL. 08:38:57 The point is really to do *something* with OpenCL. 08:39:13 Or maybe OpenGL compute shaders, since I was doing some other OpenGL things? 08:40:03 (I have a single GTX 1060. It's good for about 5GH/s, for this rainbow-like application.) 08:40:21 5GHHz 08:40:45 I guess the right way to do this is the parallel rho algorithm? 08:41:00 (So in addition to computing MD5, it's also taking the previous hash and constructing a message from that.) 08:41:11 Yes. 08:42:23 So you need to encode the hash in a GHC identifier, I guess. 08:42:28 Assuming that's what you're going for. 08:43:40 Yeah. I'm targeting the unicode range 0x20000 -- 0x27FFF, since those are all valid in ids. 08:44:25 > map chr [0x20000, 0x27fff] 08:44:28 "\131072\163839" 08:44:32 > text $ map chr [0x20000, 0x27fff] 08:44:34 𠀀𧿿 08:44:44 `unidecode 𠀀𧿿 08:44:45 ​[U+20000 CJK UNIFIED IDEOGRAPH-20000] [U+27FFF CJK UNIFIED IDEOGRAPH-27FFF] 08:44:48 Right 08:45:21 (it's a consecutive range and covers 30% of all the valid characters for identifiers) 08:45:36 > let 𠀀𧿿 = 42 in 𠀀𧿿 08:45:39 42 08:45:40 > map (generalCategory . chr) [0x20000, 0x27fff, 0x28000] 08:45:42 [OtherLetter,OtherLetter,OtherLetter] 08:46:25 it's actually complicated: http://paste.debian.net/1085969/ 08:46:33 > unwords $ [printf "%x" x | x <- 0x28000, generalCategory (chr x) /= OtherLetter] 08:46:35 error: 08:46:35 • No instance for (Num [Int]) arising from the literal ‘0x28000’ 08:46:35 • In the expression: 0x28000 08:46:40 > unwords $ [printf "%x" x | x <- [0x28000..], generalCategory (chr x) /= OtherLetter] 08:46:42 "2a6d7 2a6d8 2a6d9 2a6da 2a6db 2a6dc 2a6dd 2a6de 2a6df 2a6e0 2a6e1 2a6e2 2a6... 08:47:19 > map (generalCategory . chr) [0x2a6d7] 08:47:21 [NotAssigned] 08:51:14 > map length . sortBy (compare `on` negate . length) . filter (\x -> generalCategory (head x) `elem` [UppercaseLetter, LowercaseLetter, TitlecaseLetter, ModifierLetter, OtherLetter, NonSpacingMark, DecimalNumber, OtherNumber]) . groupBy ((==) `on` generalCategory) $ ['\0'..] 08:51:17 [42711,20941,11172,6582,4149,1143,1071,921,620,569,542,366,363,332,311,268,2... 08:51:45 > map (\(x:_) -> printf "%x" x :: String) . sortBy (compare `on` negate . length) . filter (\x -> generalCategory (head x) `elem` [UppercaseLetter, LowercaseLetter, TitlecaseLetter, ModifierLetter, OtherLetter, NonSpacingMark, DecimalNumber, OtherNumber]) . groupBy ((==) `on` generalCategory) $ ['\0'..] 08:51:48 ["20000","4e00","ac00","3400","2a700","a016","13000","12000","1401","16800",... 08:52:09 netcraft confirms it 08:52:41 > length $ filter (\x -> generalCategory (head x) `elem` [UppercaseLetter, LowercaseLetter, TitlecaseLetter, ModifierLetter, OtherLetter, NonSpacingMark, DecimalNumber, OtherNumber]) . groupBy ((==) `on` generalCategory) $ ['\0'..] 08:52:43 2087 08:52:48 Well, what I did isn't quite correct, for two reasons. But still. 08:53:14 > length $ filter (\x -> generalCategory x `elem` [UppercaseLetter, LowercaseLetter, TitlecaseLetter, ModifierLetter, OtherLetter, NonSpacingMark, DecimalNumber, OtherNumber]) $ ['\0'..] 08:53:17 105253 08:53:34 > 32768 / (105253+2) 08:53:36 0.3113201273098665 08:53:43 that's the 30% figure 08:53:45 @let reasonableCodepoint x = x `elem` [UppercaseLetter, LowercaseLetter, TitlecaseLetter, ModifierLetter, OtherLetter, NonSpacingMark, DecimalNumber, OtherNumber] 08:53:47 Defined. 08:54:13 "for two reasons" was nice. 08:54:31 Hmm? 08:54:37 It might be more than two reasons, but I thought of two. 08:54:48 I thought you meant ' and _. 08:55:14 Oh, no. Three reasons. 08:55:37 I meant that if you have OtherLetter next to UppercaseLetter or something they should count as one contiguous valid block. 08:55:54 Oh. 08:56:01 And that surrogate code units and so on don't show up in ['\0'..] so it's not really contiguous. 08:56:16 yeah the whole grouping-by-category-first is a bit weird to my mind. 08:56:19 Or do they? 08:56:25 I guess they do. 08:56:32 > '\xd800' `elem` ['\0'..] 08:56:35 True 08:57:31 @undef 08:57:31 Undefined. 08:57:53 @let reasonableCodepoint x = generalCategory x `elem` [UppercaseLetter, LowercaseLetter, TitlecaseLetter, ModifierLetter, OtherLetter, NonSpacingMark, DecimalNumber, OtherNumber] 08:57:54 Defined. 08:58:07 > (length ['\0'..], fromEnum (last ['\0'..])) 08:58:08 > map (\(x:_) -> printf "%x" x :: String) . sortBy (compare `on` negate . length) . filter (\(x:_) -> reasonableCodepoint x) . groupBy ((==) `on` reasonableCodepoint) $ ['\0'..] 08:58:09 (1114112,1114111) 08:58:13 ["20000","4e00","ac00","3400","2a700","a000","13000","12000","1401","16800",... 08:58:17 no gaps ^^ 08:58:25 > map length . sortBy (compare `on` negate . length) . filter (\(x:_) -> reasonableCodepoint x) . groupBy ((==) `on` reasonableCodepoint) $ ['\0'..] 08:58:30 [42711,20941,11172,6582,4149,1165,1071,921,620,569,542,458,366,363,340,333,3... 08:58:45 oh I see what you're really doing there. 08:58:46 I must've been thinking of Data.Text. 08:59:35 > reverse . sort . map length . group . zipWith (-) [0..] . map fromEnum . filter reasonableCodepoint $ ['\0'..] 08:59:41 [42711,20941,11172,6582,4149,1165,1071,921,620,569,542,458,366,363,340,333,3... 09:01:47 zipWith (-) [0..] is a bit odd 09:02:14 @undef 09:02:15 Undefined. 09:02:32 @let reasonableCodepoint x = generalCategory x `elem` [UppercaseLetter, LowercaseLetter, TitlecaseLetter, ModifierLetter, OtherLetter, NonSpacingMark, DecimalNumber, OtherNumber] || x == '\'' || x == '_' 09:02:33 Defined. 09:02:45 zipWith (-) [0..] maps each consecutive range to a constant. 09:03:07 Right. 09:03:07 [[Deadfish "self-interpreter"]] https://esolangs.org/w/index.php?diff=63054&oldid=63053 * JonoCode9374 * (-4) Looks like I forgot how to use html 09:03:09 (but makes it hard to reconstruct the original values... so the proper way would be to construct a pair instead) 09:03:37 :t groupBy 09:03:38 (a -> a -> Bool) -> [a] -> [[a]] 09:04:27 That zipWith may be a bit too clever for its own good. 09:05:00 If you just want the numbers you can do something simpler. 09:05:12 -!- lifthrasiir has quit (Quit: No Ping reply in 180 seconds.). 09:05:53 > reverse . sort . map length . filter (id . head) . group . map reasonableCodepoint $ ['\0'..] 09:05:58 [42711,20941,11172,6582,4149,1165,1071,921,620,569,542,458,366,363,340,333,3... 09:06:21 good luck reconstructing the original values now hth 09:06:41 -!- lifthrasiir has joined. 09:06:50 lifthrasiir: hifthrasiir 09:07:13 well, same thing... keep the old values around 09:07:20 "id ." is... fun. 09:07:43 (did you have a "fst" there?) 09:07:44 gotta make sure you get the identity of the value 09:07:49 I had "filter id" 09:07:57 @let papers = id 09:07:59 Defined. 09:07:59 And then I remembered it was a list. 09:09:12 anyway you gotta do it on the gpu. lambdabot is too slow. 09:28:13 -!- AnotherTest has joined. 09:40:39 -!- wob_jonas has joined. 09:43:24 shachaf: I think it's technically even more complicated, because the middle dot is also valid inside identifier, plus there's a small set of extra identifier characters that are that only for legacy compatibility reasons (I don't know if Haskell follows that, but that's the unicode recommendation) 10:02:52 shachaf: ah, hi 10:02:59 (was afk for an hour) 10:17:57 -!- nfd has joined. 10:18:48 -!- nfd9001 has quit (Ping timeout: 252 seconds). 10:21:57 wob_jonas: I was following what GHC does, which int-e posted earlier. 10:22:14 Unicode is in no position to dictate to languages what is or isn't an identifier. 10:22:20 sure 10:22:53 it jsut gives them a reasonable default about which characters are identifier start chars and which ones are identifier continue chars, and libraries provide an implementation with that, 10:22:56 -!- Lord_of_Life has quit (Ping timeout: 248 seconds). 10:23:27 and since that sort of thing is easy to mess up, and you need it on your computer anyway for stuff like parsing xml, it's often best to use it 10:24:04 I would be much happier if my computer never parsed any XML. 10:24:04 of course some languages modify the rules, like allowing hyphens, allowing apostrophes, reserving some keywords or reserving some forms of identifiers for library macros, etc 10:24:40 -!- Lord_of_Life has joined. 10:24:41 shachaf: I don't like XML, but there are lots of existing data available as an XML that I want to parse because I want the contained data 10:25:08 and yes, some languages count uppercase and lowercase identifiers differently 10:25:11 including haskell and prolog 10:27:40 what is OpenCL's excuse for not having something like http://paste.debian.net/1085993/ ;-) (or did I miss it...) 10:29:00 int-e: what is c's excuse for not having that 10:29:09 There's a certain kind of esolang of which I'd like to know if it exists, and if not, whether it's possible to make it. I'll probably think more about whether it's possible, but let me ask about it because someone else might already know about it. 10:29:34 shachaf: Well, Posix has strerror at least. 10:29:44 The esolang I'd want is a sort of djinn esolang, a functional language where you never write function bodies, but only the types of functions you define, plus data type definitions. 10:29:51 By the way, I have a C macro I couldn't figure out how to make fake-varargs 10:30:19 The compiler then derives the body of each function, where what the body can contain is seriously constrained by langauge rules. 10:30:29 #define ShowEnumVal3(val, e1, e2, e3) ((val) == (e1) ? #e1 : (val) == (e2) ? #e2 : (val) == (e3) ? #e3 : "UNKNOWN") 10:30:36 I have one of those for every k up to 8. 10:30:50 (I mean, ideally each of these errors should come with a human readable description...) 10:30:58 But the usual cpp foreach trickery doesn't work here. 10:31:02 Only I want it to be elegant too, which includes that adding new declarations can make the program invalid because of ambiguity, but mustn't make the program valid but with a different meaning; 10:31:17 and obviously I also want the language to be powerful enough to express any program. 10:31:29 Does an esolang like this already exist? 10:32:53 This is used as e.g. «char *name = ShowEnumVal3(e.xmapping.request, MappingModifier, MappingKeyboard, MappingPointer);» 10:33:17 I think what I need is a real macro system instead of string substitution. 10:34:03 shachaf: also, annoyingly, those values are not defined in an enum, so your macro wouldn't even help 10:34:23 My macro doesn't rely on enums. 10:34:34 hmm 10:34:35 (In fact most uses of it are for #defines.) 10:34:49 (Which is why the usual trick doesn't work.) 10:35:55 Oh, so it does work... Hmm. Where did I go wrong earlier... 10:36:14 Can you believe that in the year 2019 people still write #define str(x) str2(x) and #define str2(x) #x ? 10:36:45 Yes. 10:37:21 anyway cpp is the best 10:37:27 I posted my fmt macro in here, right? 10:37:45 Yes. 10:37:48 How bad of an idiom is sizeof(err)/sizeof(*err) ? 10:37:51 shachaf: no of course not. we don't define such things, we include hundred megabyte large libraries to get such a macro with a long prefixed name instead. 10:37:55 yes you did 10:38:13 because don't reinvent the wheel 10:38:33 I have a numof() macro that checks that the type of the argument is array rather than pointer. 10:38:39 that wheel thing 10:38:45 wheels have been reinvented numerous times 10:38:50 and that's a good thing 10:38:59 The check only works with gcc/clang but the macro can fall back to the standard behavior. 10:39:16 shachaf: #define str BOOST_PP_STRINGIZE 10:40:01 tdnh 10:41:08 there's probably one smewhere in the P99 library too 10:42:50 or the G_STRINGIFY macro from glib 10:43:08 see, there's no need to define yet another one 10:43:27 -!- xvnvx has quit (Quit: ZNC 1.7.1 - https://znc.in). 10:43:33 The point is not the overhead of defining it. 10:44:36 -!- xvnvx has joined. 10:44:41 incidentally, do I understand it correctly that the "g" in the name of "glib" comes from "gtk" and that comes from "gimp" and that comes from "gnu"? 10:45:01 I think "gtk" originally stood for "gimp toolkit" 10:45:16 and "gimp" stands for "GNU image manipulation program" 10:45:25 but I don't really know where the "glib" name comes from 10:46:47 glib stands for glib library 10:46:51 and gtk stands for gtk toolkit 10:46:55 and so on 10:47:01 g never stands for anything 10:47:51 -!- xvnvx has quit (Excess Flood). 10:48:41 -!- Cale has quit (Ping timeout: 250 seconds). 10:49:18 -!- arseniiv has joined. 10:50:08 [[Talk:EnScript]] M https://esolangs.org/w/index.php?diff=63055&oldid=63052 * A * (+994) Specify 10:50:28 [[Talk:EnScript]] M https://esolangs.org/w/index.php?diff=63056&oldid=63055 * A * (+4) /* The ENC Command */ : Cosmetics 10:50:32 -!- xvnvx has joined. 10:55:55 [[Talk:EnScript]] M https://esolangs.org/w/index.php?diff=63057&oldid=63056 * A * (+479) /* The ENC Command */ 10:58:20 [[Talk:EnScript]] M https://esolangs.org/w/index.php?diff=63058&oldid=63057 * A * (+263) /* The ENC Command */ 10:59:29 [[Talk:EnScript]] M https://esolangs.org/w/index.php?diff=63059&oldid=63058 * A * (+62) /* The ENC Command */ 10:59:58 [[Talk:EnScript]] M https://esolangs.org/w/index.php?diff=63060&oldid=63059 * A * (-1) /* The ENC Command */ Bad English 11:00:51 GPS stands for GPS positioning system 11:01:28 Taneb invented it. 11:01:44 -!- Cale has joined. 11:01:48 `` cd wisdom; echo g* 11:01:49 galaxy gamemanj gaspacho gaspasjo gaspatsjo gaszpacho gazpacho gazspaczo gblh gene ray gentlebeing gey ghci ghoti ghoul ginorst glados glass glogbot glumgot gnimmargorp go goat god's number golf gonad goofix google gopher gostak grace period graham's number grammar gray greater gregor grimmargorp ground water group grue guarantee guillible 11:02:21 y'all went overboard with the gajpako 11:02:23 [[Talk:EnScript]] M https://esolangs.org/w/index.php?diff=63061&oldid=63060 * A * (+334) /* The CHS Command */ 11:02:25 `? gray 11:02:26 Gray is e common misspalling of grey. 11:02:28 `? grey 11:02:29 grey? ¯\(°​_o)/¯ 11:02:47 -!- xvnvx has quit (Quit: ZNC 1.7.1 - https://znc.in). 11:02:50 `? guillible 11:02:51 A guillible person is someone who can be fooled with a Scheme script. 11:02:56 [[Talk:EnScript]] M https://esolangs.org/w/index.php?diff=63062&oldid=63061 * A * (+73) /* The CHS Command */ Add 11:02:56 -!- xvnvx has joined. 11:03:13 `? god's number 11:03:14 God's number is the maximum number of moves a Rubik's cube can require to solve. It is equal to 20. No, really. Look it up. 11:03:40 `dowg god's number 11:03:42 8411:2016-06-08 le/rn God\'s Number/God\'s number is the maximum number of moves a Rubik\'s cube can require to solve. It is equal to 20. No, really. Look it up. 11:03:52 `? greater 11:03:53 A greater than sign instructs the shell to send the output of the command to a file. Not very mnemonic, but a grater is the closest thing to a file that ASCII has. 11:04:06 oh right, that one's mine too 11:04:13 gene ray is mine obviously 11:04:16 `? go 11:04:17 Go is a common irregular verbal game programming language invented by the Germanic Taneb tribes catching monsters in the strategic territories of East Asia. 11:04:28 the pen is greater than the sword 11:04:41 `? gey 11:04:42 I know nothing about Gey, sir. 11:04:57 Taneb: Do you like digital signal processing? 11:05:05 Not hugely, I'm afraid 11:05:14 Although I haven't done it much 11:05:27 I agree with you, analog signal processing is better. 11:05:37 Do you like garbage collectors? 11:05:50 gc stands for gc collector presumably 11:06:17 No, they didn't collect my landfill garbage properly the other week, they left half of it in the wheelie bin 11:07:00 [[Talk:EnScript]] M https://esolangs.org/w/index.php?diff=63063&oldid=63062 * A * (+144) /* The ENC Command */ Add 11:07:05 you do wheelies with bins? 11:07:25 most people use bicycles or motorcycles 11:10:06 [[Talk:EnScript]] M https://esolangs.org/w/index.php?diff=63064&oldid=63063 * A * (-5) 11:14:17 shachaf: except for tom7 of course 11:14:44 [[EnScript]] M https://esolangs.org/w/index.php?diff=63065&oldid=63048 * A * (+44) /* ENC */ That is impossible 11:19:41 [[Collide]] N https://esolangs.org/w/index.php?oldid=63066 * A * (+177) Created page with "[[Collide]] is an [[esoteric programming language]] that features balls inside a sandbox that maps its edges. [[Category:Languages]] [[Category:2019]] [[Category:Unimplemented]]" 11:21:58 -!- sebbu3 has changed nick to sebbu. 11:23:50 [[Collide]] M https://esolangs.org/w/index.php?diff=63067&oldid=63066 * A * (+435) Example program 11:31:54 [[Collide]] https://esolangs.org/w/index.php?diff=63068&oldid=63067 * A * (+393) /* Example source code (this is not yet documented) */ 11:33:15 [[Collide]] M https://esolangs.org/w/index.php?diff=63069&oldid=63068 * A * (+115) /* Partial syntax */ 11:33:26 [[Collide]] M https://esolangs.org/w/index.php?diff=63070&oldid=63069 * A * (-8) /* Partial syntax */ 11:34:40 [[Collide]] M https://esolangs.org/w/index.php?diff=63071&oldid=63070 * A * (+305) /* Syntax */ 11:35:02 [[Collide]] M https://esolangs.org/w/index.php?diff=63072&oldid=63071 * A * (+1) /* Example source code (this is not yet documented) */ 11:36:40 [[Collide]] https://esolangs.org/w/index.php?diff=63073&oldid=63072 * A * (+188) /* Syntax */ 11:37:33 [[Collide]] M https://esolangs.org/w/index.php?diff=63074&oldid=63073 * A * (+85) /* Syntax */ 11:38:28 -!- copumpkin has joined. 11:41:08 Backfilled the logs. 12:03:23 [[Talk:EnScript]] https://esolangs.org/w/index.php?diff=63075&oldid=63064 * JonoCode9374 * (+220) /* The ENC Command */ 12:20:14 @let import GHC.Fingerprint 12:20:15 Defined. 12:21:07 > map fingerprintString ["T\153831\150310\131091\149266\154351\131093\131072\131072\131072","T\143618\144507\156283\135458\133470\131097\131072\131072\131072"] 12:21:10 [7afb892b07b256865b1116e31478f2bf,7afb892b07b256865b11353481ce648e] 12:21:21 shachaf: ^^ 80 bit collision 12:36:44 Now crunching a 96 bit collision at 5GH/s. So it'll be a while, but should finish within a day. 12:36:48 or two. 12:37:51 int-e: are you just using a dumb birthday attack, or something specific about md5? 12:39:23 dumb birthday attack, according to those numbers 12:47:59 wob_jonas: I'm doing the dumb birthday attack indeed 12:48:19 wob_jonas: and I know that it's (almost) impractical to scale it up to a full collision. 12:49:03 But it's unclear how to apply the differential paths based techniques when about half of the bits of the input are fixed. 12:54:07 int-e: ok. are you using those optimized cycle-based methods that let you get away with much less than a table of 2**48 hashes? 12:54:51 I found those quite interesting, and because you don't have enough RAM for 2**48 entries, but may have enough for a smaller table, it could be faster too 12:55:11 hmm, not really cycle based... but based on distinguished elements (the rainbow table trick) 12:55:23 yeah, that 12:55:36 not cycle based, but computing deterministic chains that you can reproduce 12:56:04 and once you find two chains intersecting, you can compute them again from an earlier stage to find the first collision, 12:56:07 2^48/2^30 is what I'm aiming for. 12:56:39 2^48/2^30 what? 12:56:41 which is probably not the best memory/time trade-off for my hardware, but who cares. 12:57:00 2^30 entries in memory? 12:57:08 I'm only storing hashes with the 30 lowest bits zero. 12:57:12 oh 12:57:18 yeah, that may be too strong, but whatever 12:57:43 it fits my naive approach... I'm not actually storing those in memory but in a file, because I'm lazy. 12:57:43 that means you have to recompute a 2^30 long chain. how fast can you do that, since you don't have parallelism then? 12:58:10 storing them in a file is fine because the OS can cache the file in RAM 12:58:35 the point is not to have such a large database to have to spin the disk up for every access 12:59:59 it'll take a couple of minutes 13:00:29 on the CPU I get about 10MH/s sequentially. 13:00:52 seems workable 13:01:35 (with plain C code) 13:02:34 wob_jonas: I'm storing them in a text file... so sort | uniq works ;-) 13:07:07 ok 13:09:17 -!- Sgeo_ has joined. 13:09:59 hi Sgeo 13:10:40 int-e: so what was the context for this? why did you want haskell identifiers and md5 in particular? is it md5 because of git? 13:10:55 no wait, git uses sha-1, right? 13:12:46 -!- Sgeo has quit (Ping timeout: 272 seconds). 13:16:28 > map (\s -> map ord) ["T\153831\150310\131091\149266\154351\131093\131072\131072\131072","T\143618\144507\156283\135458\133470\131097\131072\131072\131072"] 13:16:30 [<[Char] -> [Int]>,<[Char] -> [Int]>] 13:16:34 how do string escapes work? 13:16:48 > map (\s -> map ord s) ["T\153831\150310\131091\149266\154351\131093\131072\131072\131072","T\143618\144507\156283\135458\133470\131097\131072\131072\131072"] 13:16:50 [[84,153831,150310,131091,149266,154351,131093,131072,131072,131072],[84,143... 13:17:17 > "\84\%123" 13:17:19 :1:6: error: 13:17:19 lexical error in string/character literal at character '%' 13:17:24 > "\84\&123" 13:17:26 "T123" 13:17:31 that was the wrong magic character. 13:17:42 no, I just wanted to decode those strings you typed 13:17:55 > text "T\153831\150310\131091\149266\154351\131093\131072\131072\131072" 13:17:58 T𥣧𤬦𠀓𤜒𥫯𠀕𠀀𠀀𠀀 13:17:58 because I didn't remember the haskell syntax 13:18:17 um, I don't much care about the particular kanji, more like the code points 13:18:28 but lambdabot's answer gave those 13:19:11 I used printf("\"%c\\%d\\%d\\%d\\%d\\%d\\%d\\%d\\%d\\%d\"\n", to generate those strings ;-) 13:21:04 wob_jonas: the context is GHC. 13:22:07 A collision would break the type safety of Data.Typeable. 13:22:14 their digests don't seem to match for me, how do you encode them? 13:22:40 as big endian 32 bit unicode points. 13:22:46 I tried utf-8, utf-16be, and utf16-le 13:22:51 ah, so utf-32be 13:23:22 so that's why you said that almost half of the bits were fixed 13:23:39 I said about... 13:25:07 yeah, I can reproduce that, the first 10 bytes of the digest match 13:25:45 and you'd need a full 128 bit collision to break Typeable? 13:26:03 and you can use just identifiers with no prefix, not even a package name? 13:26:51 it would seem strange if it didn't use a package name 13:27:06 (would it also have to be two valid identifiers?) 13:27:07 yeah the package, module, and type name are hashed separately, then combined. 13:27:14 oh 13:27:22 fingerprintTyCon tc = 13:27:22 fingerprintFingerprints [ 13:27:22 fingerprintString (tyConPackage tc), 13:27:22 fingerprintString (tyConModule tc), 13:27:22 fingerprintString (tyConName tc) 13:27:24 ] 13:27:28 Taneb: these are valid identifiers 13:27:33 they're made of mostly kanji 13:27:37 or at least int-e said so 13:27:40 Ah, right 13:27:41 let me see 13:27:54 @let data T𥣧𤬦𠀓𤜒𥫯𠀕𠀀𠀀𠀀 = T𥣧𤬦𠀓𤜒𥫯𠀕𠀀𠀀𠀀 13:27:55 Defined. 13:29:47 The "valid identifier" restriction is also the reason for that "T", because more precisely, it has to be a valid constructor name 13:30:07 and there are no upper case kanjis, somehow :) 13:31:27 I was wondering if this is perhaps solved by the internet somehow, but apparently no sane people hash utf-32 strings 13:31:39 utf-8 strings, sure, you can find collisions with a google search 13:32:01 ah 13:32:01 https://gitlab.haskell.org/ghc/ghc/issues/7634 13:32:20 a bug ticket for ghc 13:34:59 [[User talk:A]] M https://esolangs.org/w/index.php?diff=63076&oldid=62864 * A * (+188) /* Write some nonsense here */ Nonsense 13:36:48 int-e: that ticket tells the hashing works differently though: it seems to think that the package name, module name, and typename are combined before they're md5-hashed 13:38:01 it changed 13:38:36 ah 13:38:40 I don't know when exactly, whether it was ghc-8.0 or ghc-8.2. We have ghc-8.8 now. 13:48:03 [[Esolang:Featured languages/Candidates]] https://esolangs.org/w/index.php?diff=63077&oldid=62865 * A * (+310) /* List of candidates */ Add a lot of info 13:50:48 [[User talk:A]] M https://esolangs.org/w/index.php?diff=63078&oldid=63076 * A * (+193) Add some nonsense(just for fun) 13:53:24 [[User talk:A]] M https://esolangs.org/w/index.php?diff=63079&oldid=63078 * A * (+15) 14:07:23 -!- Lord_of_Life has quit (Ping timeout: 248 seconds). 14:09:01 -!- Lord_of_Life has joined. 14:22:45 [[Bitch]] M https://esolangs.org/w/index.php?diff=63080&oldid=62948 * A * (+93) /* References */ 14:52:39 are ε and ℩ interdefinable? εxA = «an x such that A, if it exists (or some garbage if it doesn’t, and terms aren’t allowed to be undefined)», ℩xA = «the only x such that A (or likewise blah blah)» 14:53:46 they say ∀ and ∃ are definable through any of them, though ε is in some sense more powerful; and I don’t remember about ℩ 14:55:07 for ε, ∃xA ≡ A[εxA / x] and ∀xA ≡ A[εx(¬A) / x] 14:57:48 ℩ seems less powerful 14:58:21 I’m suddenly into formal semantics of natural languages 15:02:05 for example, I think the section [1] is somewhat garbage-y, and I sympathize with the text at [2], but I don’t know what level the unambiguous translation mentioned there should be, and ever at least what it should look like 15:02:06 [1] https://en.wikipedia.org/wiki/De_dicto_and_de_re#Representing_de_dicto_and_de_re_in_modal_logic 15:02:06 [2] https://en.wikipedia.org/wiki/Theory_of_descriptions#Saul_Kripke 15:06:21 -!- Sgeo__ has joined. 15:09:37 -!- Sgeo_ has quit (Ping timeout: 258 seconds). 15:19:57 also, regarding formulas in [1], I’m not only worried they miss the point, I’m also don’t quite get what should be meant by a formula □A with free variables. So I’ve read about approaches to first-order modal logics and now I’m still unsure ∃x□A is sensible 15:20:40 about [1 15:20:45 oh sorry 15:25:07 about [1], I’ve come to think the difference shouldn’t be forced to be expressed free of speech context and that the focus is not a different translation of the syntax per se, but a different denotation of a phrase (designator, is it?) in question. In de dicto case, it isn’t bound to something in context, and in de re case, it is but a name of a thing from the context, its identity established ear 15:26:50 fungot, are you forced to expressed free of context speech and that the focus is not a different translation of syntax per se? 15:26:51 wob_jonas: social contract. i think he will agree with fnord of common sense reasons? no; the question is, whether for war or trade; when i bring before my view the number of men in power, he holds his crown in contempt of the opinion of the intellectual eye which gives us to contemplate the fall of wise ministers and of the purity and integrity of the empire, and who serves to carry on with vigour the work of his successor, an 15:27:17 heh 15:30:11 so maybe it is just a plain restatement of what is already known about this phenomenon—maybe in not so different fashion, either—but I do think it shouldn’t match something too low-level. There IS speech context, and it IS being used to disambiguate the cases, so it makes sense this situation should be formalized using a formalization of this context, and not some clever transposition of ∃x and □ (or I just hope that entry is 15:30:11 an unqualified one by someone who understands even less than me) 15:30:41 wob_jonas: fungot: :D 15:30:41 arseniiv: vii. second reading of the bill which concerns my trade. i will only observe, in reference to this sphere of legislative action, with stars on his shoulders and his fnord is embittered into acrimony, strength fnord into fnord, or brissot, or fnord conventional messenger from the clouds, to firm ground and clear light. let us imitate him. our countrymen have always, even in that fugitive span he may either do some good 15:32:13 (vii, oh my) 15:35:18 https://esolangs.org/logs/2019-06-01.html#lUb " do you other people know enough about category theory to follow what this person's trying to do cuz i don't but it sounds interesting oh well" 15:36:28 I was wondering if I should tell xylochoron[m] that if he hangs out enough on this channel, not only will he understand the category theoretic formulation, but he'll find it natural and find the more elementary phrasings of those problems unnecessarily cumbersome, but frankly I don't understand what you guys are talking about either 15:36:30 I sit with a copy of Categories for the Working Mathematician on my desk. I should probably read it more 15:50:39 fungot: how do you think are deontological self-actualization and ontological self-deactualization dual? 15:50:39 arseniiv: this great work at once became fnord which everybody still knows by fnord these chiefly lay the oratorical power both of chatham and of mirabeau. there have been famous orators whose speeches we may read for the beauty of the garden, the nurture of all living things. 15:51:25 agree about the garden 15:55:51 re tswett[m] discussion: presentations of categories with finite limits, is it really that simple? I should look into that someday! 15:57:28 though a presentation could turn out an elaborate and complex thing which is hard to understand 15:59:00 arseniiv: You can do a ton with just presentations of categories with finite limits. 15:59:09 They're... not particularly simple. 15:59:12 (…as it is with group presentations, it really really is no doubt) 15:59:20 But they're much simpler than, say, Lua. 15:59:51 But they're much simpler than, say, Lua. 16:00:07 In particular, pretty much any kind of algebraic object can be defined by giving a presentation of a category with finite limits. 16:00:13 -!- wob_jonas has quit (Remote host closed the connection). 16:00:26 But they're much simpler than, say, Lua. => ah, then you got me 16:00:57 Including—and this is the fun part—categories with finite limits. 16:01:42 a categorical self-indertion 16:01:52 self-insertion* 16:01:53 Well, I shouldn't say "pretty much any kind", but you can define monoids, groups, categories, rings... 16:02:03 Probably not fields. 16:02:05 You can *almost* define topoi. 16:02:39 are fields undefinable because of 1 ≠ 0 constraint? I think I heard something in that regard maybe 16:03:37 That, and the fact that division is defined everywhere except 0. 16:03:58 Now, you can define a concept that's *almost* the concept of a topos. 16:04:24 tswett[m]: hm also do these presentations come with a nice internal language or what it’s called? 16:05:07 The difference is that in the definition of a topos, the word "monomorphism" is replaced with "M-morphism", where an "M-morphism" is a morphism satisfying an undefined predicate. You can assert that all M-morphisms are monomorphisms, but you cannot assert that all monomorphisms are M-morphisms. 16:05:20 I... think so. 16:06:10 Though the internal language is missing coproducts (sum types) and the initial object (the empty type). 16:06:36 Not to mention exponentials (function types). 16:35:17 -!- LKoen has joined. 16:51:12 > map fingerprintString ["T\132596\149647\150416\152631\158821\150114\131116\131072\131072","T\140399\149685\144161\143085\148849\152119\131204\131072\131072"] -- <-- shachaf, wob_jonas: I got quite lucky. GPU time: 4h, CPU time: 20m 16:51:15 [9317f8f6f091ac50e1f49feb057f3098,9317f8f6f091ac50e1f49febea88f23a] 16:52:19 (Expected GPU time was around 15h.) 16:58:07 -!- tromp has quit (Remote host closed the connection). 17:20:19 -!- moei has joined. 17:24:46 -!- LKoen has quit (Remote host closed the connection). 17:28:47 [[Talk:Pointless]] N https://esolangs.org/w/index.php?oldid=63081 * Ais523 * (+513) the pointer instructions aren't useful because the cell values are limited 17:32:18 -!- sleepnap has joined. 17:41:15 -!- unlimiter has joined. 17:53:48 [[Talk:Pointless]] https://esolangs.org/w/index.php?diff=63082&oldid=63081 * Int-e * (+462) translate from Smallfuck 17:58:07 -!- unlimiter has quit (Quit: WeeChat 2.4). 18:00:46 -!- LKoen has joined. 18:22:28 -!- sleepnap has quit (Ping timeout: 272 seconds). 18:30:48 -!- tromp has joined. 18:35:05 -!- tromp has quit (Ping timeout: 252 seconds). 18:44:52 -!- budonyc has joined. 19:07:36 -!- adu has joined. 19:14:15 -!- b_jonas has joined. 19:25:37 -!- sleepnap has joined. 19:33:40 -!- Phantom_Hoover has joined. 19:37:41 -!- FreeFull has joined. 19:57:37 shachaf: the best thing is that the md5 implementation can be shared between OpenCL and C. https://github.com/int-e/opencl-playground/blob/master/md5_impl.h ... 19:59:02 (It appears that the OpenCL compiler takes care of vectorizing that thing, which keeps the code plain and simple.) 20:00:09 wow an md5 hash collision! 20:00:24 rain1: only 96 bits 20:01:13 I don't want to wait nor pay for ~2^64 md5 hashes :) 2^48 was just fine though. 20:01:48 Especially since I got away with just 2^46 of them... 20:04:23 So 1/4 sqrt(N)... which suffices only 3% of the time, I think... 20:04:49 > 1 - exp(-(1/4)^2/2) -- should be close 20:04:52 3.076676552365587e-2 20:19:04 -!- tromp has joined. 20:23:38 -!- tromp has quit (Ping timeout: 258 seconds). 20:32:22 -!- sleepnap has quit (Quit: Leaving.). 20:45:43 for something completely different, maybe someone remembers when I mused about a Metamath-like system (metavariables! disjointness constraints!) with solid syntax soundness base (terms with more or less simple types, basically an enriched λ-calculus where this λ core is used solely for representing substitutions, and application to user-defined term constructors is intentionally not core λ-term application), so one can then define t 20:45:43 he language and the rules and the system would check if some proof is correct, including of course checking typeability of all terms 20:48:55 -!- AnotherTest has quit (Ping timeout: 252 seconds). 20:53:49 then I needed an algorithm to check it there is a substitution σ such that A ≡ Bσ for given terms A, B with FV(A) ∩ FV(B) = ∅, and is there a unique smallest σ (how do they call such σ?) 20:53:49 and I was sad to find I don’t know how to check it in case B ≡ CD (λ application here), as I have thought it’s sensible to think (λx. z = x)y equivalent—for this system—to y = x: and now how can I decide how many β-reductions there could be in that CD term before it would be mapped by σ to A? 20:53:49 so I was stuck and left the thing alone and one day had an idea to make reductions a core inference rule for users to mention explicitly. It would not be a smooth UX, but at least I could write the thing and see if it’s any good at all. And then I forgot, and remembered only a hour ago 20:54:06 maybe it would be clearer to give an example: 20:55:40 Axiom: X = Y ∧ Φ[X] → Φ[Y] 20:55:40 Given: x = y ∧ x = x → y = x 20:55:40 ↑ this isn’t well-prepared, it should be un-β-reduced explicitly by the user to 20:55:40 Given′: x = y ∧ (z.z = x)[x] → (z.z = x)[y] 20:55:40 then the system could show easily that Given′ ≡ Axiom[x/X, y/Y, z.z = x/Φ] without the need to decide when exactly (x = x, x = y) ≡ (Φ[X], Φ[Y])σ and is there a unique smallest σ at all 20:59:47 so maybe I’m just dumb and there is no need to test someone’s patience in writing extra things like Given’ and one could write a unifier for a general case A = (CD)σ and not fall into depths of e. g. nontermination (I hope, as all terms should be typeable, could it be enough to simplify things?..) 21:00:56 oh, I forgot to make my syntax less obscure again 21:02:01 in the example, X, Y, Φ, x, y, z are metavariables, =, ∧ and → are user-defined term constructors, Φ[X] is ΦX and (z.z = x) is (λz. z = x) 21:02:48 very fortunately, this example doesn’t mention disjointness constraints 21:04:38 they can be part of the rules and proofs, as a type of premise (other type of premises is terms, and rule conclusion can be only a term too) 21:08:57 > let f = 85375/2^18 in 1 - exp (f^2/2) 21:08:58 -5.446513701917932e-2 21:09:04 > let f = 85375/2^18 in 1 - exp (-f^2/2) 21:09:06 5.165190873274805e-2 21:10:25 5% is still quite lucky :) 21:11:44 you really squandered your luck there hth 21:14:08 Nah, I don't believe in luck being used up. 21:16:18 -!- tromp has joined. 21:19:17 your dice are pre-rolled 21:32:39 "IntelliCode uses open source GitHub projects with 100 stars or more to generate recommendations for your code." 21:32:46 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 21:33:10 . o O ( What could possibly go wrong... ) 21:33:22 . o O ( This may also explain why MS bought github? ) 21:36:59 -!- sleepnap has joined. 21:38:08 -!- Phantom_Hoover has joined. 21:38:08 -!- Phantom_Hoover has quit (Changing host). 21:38:08 -!- Phantom_Hoover has joined. 21:41:05 Ironically I have learned little about OpenCL... no out-of-order execution, no fancy atomic operations or shared CPU/GPU memory, no subtle memory model (yes, there is a memory model...) interactions, no pipes, no kernels spawning kernels on the OpenCL side, and no interaction with OpenGL. 21:41:52 int-e: well sure, you just want to compute a lot of md5 checksums, surely that's something someone else has already coded, so you don't need to write any of the parallel code 21:41:58 you only need the driver that chooses the strings etc 21:42:17 (Instead I have a fairly long-running kernel so that the overhead of communicating with the CPU is negligible anyway. And each work item works on a couple of hundred bytes of data, all completely local.) 21:42:26 I mean sure, that has to run in the gpu too 21:42:30 but it's not very complicated 21:42:40 int-e: exactly 21:42:44 very easy to parallelize 21:42:52 yes, int-e, didn't you notice the thing where instead of doing any programing you just downloaded and ran someone else's program 21:42:59 -!- budonyc has quit (Quit: Leaving). 21:43:14 b_jonas: hashcat has an md5 implementation... but it seems to be specially tuned for password cracking, which surprisingly allows a few small shortcuts. 21:43:15 that's the reason you didn't learn anything 21:43:58 shachaf: condescension: 10, helpfulness: 0. 21:44:20 i was just making a joke about how the thing b_jonas said made no sense :'( 21:44:35 (hashcat reports 11.5MH/s in its benchmark mode on the same GPU, so I thought my 5.something was decent.) 21:44:39 while generally I think GPU programming is overhyped these days (partly because "blockchain" and "deep learning" are fashionable ways to sell anything), but this is exactly the sort of thing where GPU is useful 21:44:54 shachaf: ah, I didn't connect it to that context. 21:45:05 . o O ( communication 1 : int-e 0. ) 21:45:17 since obviously you did write a program so the fact that other people have written md5 implementations is irrelevant 21:45:36 um 21:46:47 shachaf: Obviously I still had to do some basic stuff. create an OpenCL context, a command queue, a buffer, a program, a kernel... it's just that there's so much more that I didn't touch at all. 21:47:05 Yes. 21:48:19 Doing the rho thing with distinguished points is presumably a little different from trying to find preimages. 21:49:17 hashcat exploits the fact that when enumerating passwords, only a small part of the message changes... so the first half dozen values can be precomputed and never change while iterating over the last one or two chracters. 21:49:55 I imagine that only saves a small amount of work? 21:50:01 And IIRC it has a trick for stopping early too. I forgot. 21:50:23 well saving 10 out of 64 rounds (or even 5) is still a speedup. 21:50:56 You can compute 10 rounds without the last one or two characters? 21:51:43 I think it was about 4 at the beginning and 4 in the end. Let me check something 21:55:29 There's stuff like this: If you only change the 3rd word of the message in your search, then you know the message words for the last 10 rounds. And I think you can actually invert those then. 21:56:49 (look at this: A = B + rotl(R(B, C, D) + A + K + m[j], s) -- you know the resulting A, and B,C,D,K and m[j]. So you do rotr(A - B, s) - K - m[j] - R(B,C,D)) to find the previous A. 21:56:54 ) 21:57:16 s/3rd/4th/ 21:57:49 And, uh, why don't we do that with the first word... then we can reverse the last 15 rounds. 21:59:38 > maximum [(elemIndex i [0..15] + elemIndex i (reverse [0,7,14,5,12,3,10,1,8,15,6,13,4,11,2,9]), i) | i <- [0..15]] 21:59:40 error: 21:59:40 • Could not deduce (Num (Maybe Int)) arising from a use of ‘+’ 21:59:40 from the context: (Num b, Enum b, Ord b) 21:59:47 meh 22:00:19 > maximum [(fromJust (elemIndex i [0..15]) + fromJust (elemIndex i (reverse [0,7,14,5,12,3,10,1,8,15,6,13,4,11,2,9])), i) | i <- [0..15]] 22:00:22 (27,14) 22:00:53 > reverse $ sort [(fromJust (elemIndex i [0..15]) + fromJust (elemIndex i (reverse [0,7,14,5,12,3,10,1,8,15,6,13,4,11,2,9])), i) | i <- [0..15]] 22:00:56 [(27,14),(23,12),(21,15),(21,7),(19,10),(17,13),(17,5),(15,8),(15,0),(13,11)... 22:02:46 So for the password cracking application, it's the last 15 rounds that you can reasonably expect to skip. The better indices are a tad too large. 22:03:48 -!- sleepnap has quit (Ping timeout: 245 seconds). 22:10:32 -!- Phantom_Hoover has quit (Remote host closed the connection). 22:10:45 and you can skip 3 more rounds if you only verify 32 bits instead of all the 128 bits. 22:12:52 what else is there... for password cracking you tend to have a lot of message words that are known to be 0. That should also yield a minor but noticable improvement. 22:20:54 -!- tromp has quit (Remote host closed the connection). 22:21:29 -!- tromp has joined. 22:29:39 -!- sleepnap has joined. 22:30:05 -!- sleepnap has left. 22:39:15 `? pencil 22:39:16 pencil? ¯\(°​_o)/¯ 22:39:37 A pencil is an abridged antibiotic. 22:40:15 -!- 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:21 (I guess it works by stabbing bacteria.) 22:40:49 yeah 22:53:07 -!- arseniiv_ has joined. 22:53:47 -!- arseniiv has quit (Ping timeout: 248 seconds). 22:58:16 -!- moei has quit (Quit: Leaving...). 23:01:42 -!- arseniiv_ has changed nick to arseniiv. 23:31:07 -!- Soni has quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.). 23:32:25 -!- Soni has joined. 23:36:48 -!- b_jonas has quit (Quit: leaving). 23:44:59 -!- arseniiv has quit (Ping timeout: 248 seconds). 23:46:26 -!- S_Gautam has quit (Quit: Connection closed for inactivity). 2019-06-05: 00:00:59 > let eea _ xa xb 0 _ _ = (xa, xb); eea x xa xb y ya yb = (let s = x `mod` y in eea y ya yb (y - s * x, ya - s * xa, yb - s * xb) in eea 314 1 0 100 0 1 00:01:01 :1:129: error: parse error on input ‘in’ 00:01:20 > let eea _ xa xb 0 _ _ = (xa, xb); eea x xa xb y ya yb = (let s = x `mod` y in eea y ya yb (y - s * x, ya - s * xa, yb - s * xb)) in eea 314 1 0 100 0 1 00:01:22 error: 00:01:22 • Couldn't match type ‘c -> c -> (c, c)’ with ‘(c, c)’ 00:01:22 Expected type: c -> c -> c -> (c, c, c) -> (c, c) 00:01:49 > let eea _ xa xb 0 _ _ = (xa, xb); eea x xa xb y ya yb = (let s = x `mod` y in eea y ya yb (y - s * x) (ya - s * xa) (yb - s * xb)) in eea 314 1 0 100 0 1 00:01:56 mueval: ExitFailure 1 00:02:19 🤔 00:03:48 > let eGCD 0 b = (b, 0, 1); eGCD a b = (let (g, s, t) = eGCD (b `mod` a) a in (g, t - (b `div` a) * s, s)) in eGCD 314 100 00:03:50 (2,-7,22) 00:05:06 > let eGCD (_, 0, b) = (b, 0, 1); eGCD (_, a, b) = (let (g, s, t) = eGCD (undefined, (b `mod` a), a) in (g, t - (b `div` a) * s, s)) in iterate eGCD (undefined, 314, 100) 00:05:10 [(*Exception: Prelude.undefined 00:05:23 > let eGCD (_, 0, b) = (b, 0, 1); eGCD (_, a, b) = (let (g, s, t) = eGCD (undefined, (b `mod` a), a) in (g, t - (b `div` a) * s, s)) in iterate eGCD (123456789, 314, 100) 00:05:26 [(123456789,314,100),(2,-7,22),(-1,-3,-1),(-1,0,1),(1,0,1),(1,0,1),(1,0,1),(... 00:06:10 I conclude that 314/100 is approximately 22/7. 00:08:41 tswett[m]: you seem to be an approximately rational person 00:09:01 Thank you, more or less. 00:09:14 Can you name a number that is not approximately another number? 00:12:56 shachaf: let's be discrete... 00:13:25 But I guess you'll say that 42 is approximately 0. 00:15:22 I wasn't making any claims. 00:15:45 But I suppose that, for example, an infinite hyperreal isn't approximately equal to any finite number. 00:17:05 I did consider mentioning \omega. But then that's approximately \omega + 1, if we allowed 0 to be approximately 1. 00:18:56 OTOH hyperreals give you better-than-rational approximations. 00:24:07 -!- zhiayang has joined. 00:28:56 hello, not entirely sure if this fits, but: say i'm targeting a limited stack vm as a backend for a compiler, and the vm only has the constants 0-9 (so to get 20 i'd need 4 5 *). so, how do i do relocations, given that the "size" of each relocation is not fixed? 00:30:03 perhaps something like this https://www.sifive.com/blog/all-aboard-part-3-linker-relaxation-in-riscv-toolchain 00:31:18 int-e: Oh, well, I meant "do there exist x,y such that x is not approximately y" 00:31:30 Not "does there exist x such that for all y, x is not approximately y" 00:33:42 kmc: hm, the thing is most of these places have an "upper bound" for the address/offset 00:33:50 like i can 100% say it will either be 32-bits or less 00:34:25 whereas if my offset happens to be some prime number or something, the number of instructions i need to generate it might be unpredictably large 00:34:32 so it's hard to reserve a set amount of space for it 00:35:43 I was reading about fancy assemblers that try to optimize the number of bytes used for jump instructions. 00:35:51 In some cases you need a lot of passes. 00:35:52 hmm 00:36:12 zhiayang: you can set a maximum, and anything bigger gets turned into a function call to a function created by the linker 00:36:33 Don't functions have the same issue? 00:36:46 I guess the linker could place them at a particular place. 00:36:59 or depending on your memory instructions you could place them in a data section http://www.keil.com/support/man/docs/armasm/armasm_dom1359731147760.htm 00:37:10 You could maybe have some nops around jump targets, which gives you more leeway in avoiding prime numbers. 00:37:11 ah, there's nothing as fancy as a linker here, tbh 00:37:23 i'm currently going from IR -> vm opcodes 00:37:28 (which is just text) 00:39:17 ahttps://board.flatassembler.net/topic.php?t=20249 is the post I was thinking of. 00:39:23 s/a// 00:39:35 Not really relevant to you. 00:39:40 [[Special:Log/newusers]] create * Aquirel * New user account 00:42:54 interesting read, nontheless 00:44:25 also, to read from the data section would require the same kind of shennanigans, so i don't think it might be useful 00:44:45 i might just set an upper limit of 32 and complain if it's exceeded 00:47:15 kmc: did you ever see http://slbkbs.org/serp.html 00:47:50 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=63083&oldid=62922 * Aquirel * (+114) 00:50:52 yes 00:51:03 still works 00:51:22 i guess browser people don't care 00:53:54 [[ABCR]] https://esolangs.org/w/index.php?diff=63084&oldid=50392 * Aquirel * (+237) 01:04:39 -!- unlimiter has joined. 01:11:38 -!- unlimiter has quit (Quit: WeeChat 2.4). 01:15:14 ais523: https://secretgeek.github.io/html_wysiwyg/html.html is arguably different from the types of quines we talked about. 01:15:24 Though I think you can classify it as cheating. 01:18:32 that's cute 01:18:34 > The only other style that is special is "style" itself, which has to include an escape character to avoid being taken literally. I like to think that may be a parser bug created by browser developers who did not suspect that people would engage in such an atrocity. 01:18:36 :1:55: error: parse error on input ‘,’ 01:18:39 it's not really a bug 01:18:43 it's a consequence of nesting parsers 01:18:59 or perhaps nesting tokenizers within parsers 01:19:01 I remember a capture the flag thing we both did that uesd that bug. 01:19:11 Though I think I used it and you used some other method. 01:19:15 I mean, that non-bug. 01:19:24 where you sneak a inside a string in a