00:53:38 -!- Ginger has joined.
01:13:27 <HackEso> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <https://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
01:13:27 <fizzie> Don't get much use out of the welcomes these days.
01:13:55 <Ginger> I have come from Code Golf Stack Exchange to observe this chatroom
01:15:32 <fizzie> It's mostly a feed of edits to the wiki, interspersed with maybe a conversation every couple of days. Uh, spoiler warning, I guess.
01:17:45 <int-e> Well, there are logs to peruse
01:18:13 <int-e> Going way way back into busier times if you feel like browsing
01:18:45 -!- chiselfuse has quit (Read error: Connection reset by peer).
01:19:42 -!- chiselfuse has joined.
01:20:53 <fizzie> Speaking of the logs, I guess it might be about time to remove the "recently migrated" note from the root page.
01:21:18 <Ginger> I just came here to look around
01:21:46 <Ginger> does markdown work here? I doubt it
01:24:04 <fizzie> Not unless either your IRC client translates it to "traditional" IRC formatting markup (which uses the control characters in the [1, 31] range) or the recipient's IRC client does something to it.
01:24:35 <Ginger> if you ever want to do some code golf we here at CGCC are always looking for more users :b
01:25:42 <fizzie> I think it's relatively common to put some formatting emphasis on *words* and maybe also _words_ though normally the *s and _s are still left visible in place too. That's about as far as it usually goes.
01:25:53 <int-e> fizzie: It could move to the two 2021 pages maybe? Not sure how awkward that would be to hack in.
01:26:01 <fizzie> Maybe "common" is too much said. "Not uncommon", maybe.
01:26:14 <fizzie> Is there even a difference between "common" and "not uncommon"?
01:26:20 <int-e> fizzie: considering that the overlap is exclusive to that year
01:26:44 <int-e> I agree, common is stronger
01:26:56 <Ginger> ok, I'm gonna leave now
01:27:41 <Ginger> in case you care for some reason here's CGCC's main chatroom: https://chat.stackexchange.com/rooms/240/the-nineteenth-byte
01:27:47 -!- Ginger has quit (Quit: Leaving).
01:27:54 <int-e> (the difference becomes smaller the more I try to rationalize it though :P)
01:30:03 <int-e> I feel that there's a gap between uncommon and common where neither term would be used; purely logically that makes no sense.
01:32:44 <int-e> I guess there's also a general principle that double negations have a weakening effect.
01:34:09 <fizzie> It wouldn't take much to make a per-year note, but it would take a code change. Right now there's an `announce` field in the config file that's just dropped as-is to all the index pages (that's used for the "we have moved" note on all the Freenode pages), I'd probably just complement it with a [year, note] map as well.
01:37:35 -!- razetime has joined.
01:39:14 <int-e> fizzie: The minimal change is probably to replace "We have recently" by "In 2021, we"
02:49:33 <esolangs> [[Smalc]] https://esolangs.org/w/index.php?diff=104636&oldid=103942 * Joe * (+1)
03:31:08 <esolangs> [[Smalc]] https://esolangs.org/w/index.php?diff=104637&oldid=104636 * Joe * (+182)
04:00:39 -!- razetime has quit (Ping timeout: 260 seconds).
04:31:59 -!- razetime has joined.
05:26:52 -!- Lord_of_Life has quit (Ping timeout: 252 seconds).
05:27:34 -!- Lord_of_Life has joined.
05:30:07 -!- sprout has quit (Ping timeout: 268 seconds).
05:30:45 -!- sprout has joined.
05:58:33 -!- slavfox has quit (Quit: ZNC 1.8.2 - https://znc.in).
06:06:08 -!- slavfox has joined.
06:33:09 <esolangs> [[Falsish]] https://esolangs.org/w/index.php?diff=104638&oldid=104572 * McChuck * (+23) /* Stack */
06:34:41 -!- bgs has joined.
07:00:53 -!- Sgeo has quit (Read error: Connection reset by peer).
07:04:26 -!- tromp has joined.
07:14:31 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
07:29:12 <esolangs> [[Falsish]] https://esolangs.org/w/index.php?diff=104639&oldid=104638 * McChuck * (+79) /* Stack */
07:33:43 <esolangs> [[Talk:Falsish]] M https://esolangs.org/w/index.php?diff=104640&oldid=104553 * McChuck * (+121) /* Turing completeness */
07:43:07 -!- tromp has joined.
07:53:04 <esolangs> [[Falsish]] https://esolangs.org/w/index.php?diff=104641&oldid=104639 * McChuck * (+0) /* Stack */
08:29:47 <esolangs> [[Falsish]] https://esolangs.org/w/index.php?diff=104642&oldid=104641 * McChuck * (+0) /* Stack */
08:36:34 <esolangs> [[Falsish]] https://esolangs.org/w/index.php?diff=104643&oldid=104642 * McChuck * (+55) /* Stack */
08:48:44 <esolangs> [[Falsish]] https://esolangs.org/w/index.php?diff=104644&oldid=104643 * McChuck * (+84) /* Lambda and Flow control */
08:49:17 <esolangs> [[Falsish]] M https://esolangs.org/w/index.php?diff=104645&oldid=104644 * McChuck * (+2) /* Lambda and Flow control */
08:49:59 <esolangs> [[Falsish]] M https://esolangs.org/w/index.php?diff=104646&oldid=104645 * McChuck * (+2) /* Lambda and Flow control */
08:56:46 <esolangs> [[Falsish]] M https://esolangs.org/w/index.php?diff=104647&oldid=104646 * McChuck * (+88) /* Lambda and Flow control */
08:57:46 <esolangs> [[Falsish]] M https://esolangs.org/w/index.php?diff=104648&oldid=104647 * McChuck * (+39) /* Falsish: a FALSE variant inspired by fish > */
08:59:34 <esolangs> [[Falsish]] https://esolangs.org/w/index.php?diff=104649&oldid=104648 * McChuck * (+112) /* Falsish: a FALSE variant inspired by fish > */
09:01:03 <esolangs> [[Falsish]] M https://esolangs.org/w/index.php?diff=104650&oldid=104649 * McChuck * (+36) /* Falsish: a FALSE variant inspired by fish > */
09:01:20 -!- wib_jonas has joined.
09:07:05 <wib_jonas> int-e: I don't think there's a gap between common and uncommon, rather they even overlap. The golden age of Magic was around the three-set block structure, when the third set was drafted for a much shorter time and less multiplicity than the first and second set, so commons from the third sets are in fact less frequent than uncommons from the first
09:11:18 <wib_jonas> "a per-year note" => hmm. once per year, the First Regular of the community would give a keynote address speech, at a podium with multiple microphones from different television channels. There'd be a screaming crowd in front of them and a two meter tall drapery with a logo hung behind them. Two other regulars would stand on their sides in clothing
09:11:19 <wib_jonas> just as formal as the First Regular's, to show that he's not speaking alone but as a representative of the esolangs community.
09:11:57 <wib_jonas> Or maybe it would be the general secretary rather than the First Regular.
09:13:58 <shachaf> If I have an instruction to multiply in GF(2^n) with one reduction polynomial, and I want to use a different polynomial, how much does it help?
09:15:05 <shachaf> I can probably do a change-of-basis thing back and forth and maybe come out ahead, but can I do anything better?
09:15:33 <shachaf> For example does multiplication by a constant in one thing translate to a multiplication by a different constant in the other thing?
09:15:59 <wib_jonas> shachaf: I think if you had an instruction to multiple GF(2^(2n)) with any reduction polynomial, you could use that to carryless multiply two n-bit words, and use that plus three shifts and three xors to do a GF(2^n) multiplication.
09:17:11 <shachaf> Hmm, I think x86 has carryless multiplication directly.
09:17:35 <shachaf> But what do you mean about the three shifts and three xors?
09:22:41 <wib_jonas> shachaf: the three shifts and three xors are to handle the carries, assuming the reduction polynomial has three nonzero coeffs
09:22:41 -!- razetime has quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.).
09:23:40 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
09:24:56 <wib_jonas> if you have only GF(2^n) multiply then I think you need like four of those carryless multiplies plus a lot of extra operations to get a n-bit carryless multiply, at which point it's probably not worth for n=8 (I think all three Intel instructions work with n=8)
09:27:00 <wib_jonas> on the plus side, the x86 instruction PCLMULQDQ carryless-multiplies two 32-bit inputs to a 64-bit output, so that's probably better to use than the wrong GF(2^8) multiplication
09:27:46 <wib_jonas> but I don't know how many CPUs actually have each of the instructions natively
09:30:45 <shachaf> Well, if you have an isomorphism F, and you want to compute [A B C D] * [w x y z], you can compute F^-1(F([A B C D]) * F([w x y z])), right?
09:31:06 <shachaf> If the capital letters are constants, that's only two operations to move back and forth.
09:31:22 <shachaf> And I think you can compute the isomorphism with GF2P8AFFINEQB
09:34:33 <wib_jonas> shachaf: but do you often multiply with constants, other than for CRC?
09:37:44 <shachaf> You often do for RS encoding.
10:06:50 -!- razetime has joined.
10:11:54 <wib_jonas> I don't quite understand how this conversion works. Is this like radix conversion, where there are ways to convert numbers from one radix to another by doing multiplication in either radix at your choice, only here you get the choice to do calculations in the representation of your choice?
10:14:32 -!- razetime_ has joined.
10:14:34 -!- razetime has quit (Ping timeout: 260 seconds).
10:15:55 <wib_jonas> I mean F is an isomorphism but it's not an automorphism, it changes representation between two different fields
10:16:11 -!- Thedarkb-Desktop has quit (Ping timeout: 248 seconds).
10:17:41 <wib_jonas> I don't see hwo this "two operations" thing makes sense
10:33:22 -!- tromp has joined.
10:56:08 -!- __monty__ has joined.
11:00:31 -!- wib_jonas has quit (Quit: Client closed).
11:03:17 -!- wib_jonas has joined.
12:22:39 <int-e> wib_jonas: you had me interested right until "The golden age of Magic"
12:24:40 <wib_jonas> well you have to consider only golden age, rather than point to every nonsense that they did later
12:27:56 <int-e> jargon often plays fast and loose with natural language semantics, leading to absurdities like most lambda terms not being normal
12:30:02 <int-e> Or the idea that Googol is a natural number.
12:31:46 <wib_jonas> that's because "normal" stands for "normalized" there, as opposed to some full measure set
12:32:21 <wib_jonas> "Googol is a natural number" => that's very true, it's a reasonable approximation for how large our universe is in volume
12:32:39 <wib_jonas> so it's a number you naturally consider
12:33:18 <int-e> first, that's a matter of units, secondly, that volume will not be modelled as a natural number.
12:33:25 <wib_jonas> I mean the linear size of the universe, as in the longest thing you'll consider divided by the smallest thing you consider is 2**100, so if you take the cube of that you get 10**90. 10**100 is close enough to that.
12:33:37 <wib_jonas> so it's a number that does come up in reasonable calculations.
12:34:35 <int-e> and finally, the mathematical "natural" numbers are not approximations.
12:46:11 -!- wib_jonas has quit (Quit: Client closed).
13:05:55 -!- razetime_ has changed nick to razetime.
13:25:59 <esolangs> [[CTFuck]] https://esolangs.org/w/index.php?diff=104651&oldid=104521 * Pro465 * (-28) /* Turing Completeness */
13:26:49 <esolangs> [[CTFuck]] https://esolangs.org/w/index.php?diff=104652&oldid=104651 * Pro465 * (+3) /* Cat */
13:28:23 <esolangs> [[CTFuck]] https://esolangs.org/w/index.php?diff=104653&oldid=104652 * Pro465 * (-25) /* Truth Machine */
13:32:22 <esolangs> [[CTFuck]] https://esolangs.org/w/index.php?diff=104654&oldid=104653 * Pro465 * (-113) /* The [if_num|else_num] command */
13:32:42 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
13:32:58 <esolangs> [[CTFuck]] https://esolangs.org/w/index.php?diff=104655&oldid=104654 * Pro465 * (+0) /* Halting */
13:33:48 <esolangs> [[CTFuck]] M https://esolangs.org/w/index.php?diff=104656&oldid=104655 * Pro465 * (+6) /* Halting */
13:35:33 -!- tromp has joined.
14:12:13 -!- tech_exorcist has joined.
14:26:42 -!- tech_exorcist has quit (Remote host closed the connection).
14:27:13 -!- tech_exorcist has joined.
14:33:34 -!- tech_exorcist has quit (Remote host closed the connection).
14:34:04 -!- tech_exorcist has joined.
14:38:07 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:39:54 -!- tech_exorcist has quit (Remote host closed the connection).
14:40:34 -!- tech_exorcist has joined.
14:51:54 -!- razetime has quit (Quit: No Ping reply in 180 seconds.).
14:53:18 -!- razetime has joined.
15:09:07 -!- Sgeo has joined.
15:29:54 <esolangs> [[Falsish]] https://esolangs.org/w/index.php?diff=104657&oldid=104650 * McChuck * (+48) /* Falsish: a FALSE variant inspired by fish > */
15:35:56 <esolangs> [[ABPLWNL but with stack]] https://esolangs.org/w/index.php?diff=104658&oldid=104150 * Mario0Fan * (+75)
15:36:05 <esolangs> [[ABPLWNL but with stack]] M https://esolangs.org/w/index.php?diff=104659&oldid=104658 * Mario0Fan * (+1) /* Implementations */
15:37:26 <esolangs> [[Falsish]] https://esolangs.org/w/index.php?diff=104660&oldid=104657 * McChuck * (+76) /* Lambda and Flow control */
15:39:09 <esolangs> [[Nyank]] N https://esolangs.org/w/index.php?oldid=104661 * Idomdavis * (+2694) Created page with "'''Nyank''' is a [[Joke language list | joke]] [[esoteric programming language]] created by [http://domdavis.com Dom Davis]. It is identical to [[Brainfuck]], except that the instructions are constructed of variations of the made up word "Nyank". It represents another i
16:14:39 -!- tromp has joined.
16:42:33 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:05:56 -!- tromp has joined.
17:07:08 -!- tromp has quit (Client Quit).
17:14:51 <esolangs> [[User:Mario0Fan]] https://esolangs.org/w/index.php?diff=104662&oldid=104496 * Mario0Fan * (+39)
17:15:04 <esolangs> [[User:Mario0Fan]] https://esolangs.org/w/index.php?diff=104663&oldid=104662 * Mario0Fan * (+1)
17:15:33 -!- razetime has quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.).
17:18:01 -!- tromp has joined.
17:39:44 <esolangs> [[I am sure this is the shortest code for 99 bottles of beer]] https://esolangs.org/w/index.php?diff=104664&oldid=102616 * Mario0Fan * (+545) interpreter in C
17:51:42 -!- breck has joined.
17:52:03 <breck> is there a language like whitespace but instead of whitespace just semicolons?
17:52:27 <breck> forgot to add URGENT (im blocked on a funny tweet idea)
17:55:01 <breck> https://esolangs.org/wiki/Semicolon. amazing how a good URL structure eliminates the need for a search engine
17:57:05 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:00:24 -!- breck has quit (Quit: Client closed).
18:08:45 -!- tromp has joined.
18:18:49 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:48:54 <imode> what're some compact ways of storing strings in a dyck language? just unlabeled trees.
18:50:47 <int-e> rooted? ordered? binary?
18:51:50 <imode> I guess technically rooted?
18:52:12 <imode> ()()() has 3 nodes that need a root somewhere, so it'd be implicit.
18:52:59 <int-e> the unambiguous grammar D ::= epsilon | ( D ) D makes those rooted, ordered, binary trees.
18:53:52 <imode> yeah, I'm just wondering if there's an alternative encoding method that saves on that space.
18:54:24 <imode> apart from a form of RLE.
18:55:07 <sprout> nice idea, a one-character language
18:55:07 <imode> thought of storing the transition points as a "heightmap" but recovering the tree from that seems complicated.
18:55:16 <int-e> you enumerate some 256 trees and then use a linked list of that (with nil = epsilon)?
18:55:50 <imode> sounds a little like hash consing.
18:55:56 <int-e> With that grammar, the list is actually pretty: [a,b,c] = (a)(b)(c)
18:56:32 <int-e> <[]> = epsilon, <a:as> = (<a>)<as>
18:56:50 <imode> right. I'm just searching for a shorter encoding. there aren't any symbols, it's just ( and ).
18:57:02 <int-e> so you asked the wrong question?
18:57:14 <int-e> you want to encode dyck words as srings?
18:58:19 -!- [ has quit (Ping timeout: 248 seconds).
18:58:34 <imode> let me rephrase: I can encode unlabeled rooted trees as words from a dyck language. I'm wondering if there's a compact way of storing those words rather than the full bracketed representation or that representation + RLE.
18:58:58 <imode> or representing the brackets as bits.
18:59:13 <int-e> representing brackets as bits is pretty good
18:59:50 <imode> I was thinking of representing the words as a 'heightmap', where we'd only need to store the heights of the various 'peaks' (transition points).
19:00:21 <imode> and then RLE on top of that.
19:00:45 -!- Noisytoot has joined.
19:02:50 <int-e> there are ~ 4^n/(sqrt(pi)n^(3/2)) Dyck words of length 2n, so that's 4n bits to represnt 2^(4n - 3/2 log_2(n) + O(1)) possibilities
19:02:57 <int-e> It's really quite efficient.
19:03:02 <imode> so the string (((()))()()(()))() would have a heightmap of 4 2 2 3 1.
19:04:07 <int-e> (cf. https://en.wikipedia.org/wiki/Catalan_number)
19:06:02 <imode> that heightmap encoding, assuming you use unary, saves on a single bit.
19:06:27 <int-e> right, but you can leave off the final ) from any non-empty Dyck word.
19:06:52 <imode> ah, because you're assuming it'll be terminated/matched.
19:07:01 <int-e> I'm just assuming that you're not interested in miniscule savings.
19:07:14 <imode> no, just interested whether they translate into macro-scale savings.
19:07:31 <imode> gonna be working with some large strings.
19:07:34 <int-e> you can also *pad* a Dyck word with extra )s, so storing bits in bytes is not an issue even if you can't store a bit length.
19:09:00 <imode> there is some savings if you use bytes for your heights if your strings are large, I'd think. (((((((((((((((()))))))))))))))) gets shrunk down to 8 bits.
19:09:42 <int-e> So I think if you sample binary trees with n leafs uniformly, Dyck words are kind of the gold standard (you /can/ save those O(log(n)) bits but it'll probably cost you in decodability.
19:10:03 <int-e> If your trees have *structure*, you have the usual data compression opportunities.
19:10:11 <imode> they can be arbitrary, unfortunately.
19:10:44 <int-e> (we routinely compress binary data after all; this isn't so much different)
19:11:05 <int-e> well, at a high level.
19:11:30 <int-e> Data compression *algorithms* tend to work on strings.
19:15:11 -!- tromp has joined.
19:22:28 <b_jonas> it's not that hard to compress them perfectly, as in figure out the index of any rooted unlabeled tree on n nodes among all those trees in some canonical order. you can definitely do it in O(n**(2+epsilon)) time, very likely in O(n**(1+epsilon)) time too. you just need to add numbers from one of these fancy matrices that you can compute with a recursion, or two of those matrices.
19:22:38 <b_jonas> sort of like how you can encode a permutation
19:23:16 <b_jonas> you can probably get a fast enough approximate solution in O(n**(1+epsilon)) at least
19:41:54 -!- tech_exorcist has quit (Remote host closed the connection).
19:43:03 -!- tech_exorcist has joined.
19:54:05 -!- Koen has joined.
19:56:25 -!- tech_exorcist has quit (Remote host closed the connection).
19:56:53 -!- tech_exorcist has joined.
20:09:25 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:11:41 -!- tech_exorcist has quit (Quit: Disconnecting).
20:21:39 <imode> well, I did a brute force thing. unary heightmaps win out against the binary representation a significant amount of time.
20:22:14 <imode> considering you're discarding like, at least half the bits.
20:26:01 -!- tech_exorcist has joined.
20:26:22 -!- tech_exorcist has quit (Remote host closed the connection).
20:26:50 -!- tech_exorcist has joined.
20:27:15 -!- tech_exorcist has quit (Remote host closed the connection).
20:27:50 -!- tech_exorcist has joined.
20:36:12 -!- tech_exorcist has quit (Remote host closed the connection).
20:37:28 -!- tech_exorcist has joined.
20:47:12 -!- tromp has joined.
21:26:49 -!- bgs has quit (Remote host closed the connection).
21:38:22 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:46:31 -!- tromp has joined.
21:47:53 -!- Koen has quit (Quit: Leaving...).
22:02:17 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
22:11:56 -!- tech_exorcist has quit (Quit: Disconnecting).
22:25:38 <b_jonas> fungot, please summarize Darth Vader's move AI and how best to manipulate to avoid him
22:25:38 <fungot> b_jonas: not really. he's far north, and 41 degrees, 3 minutes east!!! i hefe-a un essoomeble mortgege!!!
22:26:39 <int-e> 41 degrees isn't far north
22:29:24 <fizzie> No, it was far north and 41 degrees east.
22:36:02 -!- __monty__ has quit (Quit: leaving).
23:33:38 -!- ManDeJan has joined.
23:34:06 -!- leah2 has joined.
23:35:46 -!- iovoid has quit (Quit: iovoid has quit!).
23:35:46 -!- Bowserinator has quit (Quit: Blame iczero something happened).
23:35:51 -!- dbohdan has joined.
23:35:55 -!- [iovoid] has joined.
23:36:03 -!- Bowserinator has joined.
23:36:50 -!- [iovoid] has changed nick to iovoid.
23:42:14 <esolangs> [[Falsish]] https://esolangs.org/w/index.php?diff=104665&oldid=104660 * McChuck * (+157) /* Falsish: a FALSE variant inspired by fish > */
23:45:13 -!- Cale has joined.
23:46:52 <esolangs> [[Falsish]] https://esolangs.org/w/index.php?diff=104666&oldid=104665 * McChuck * (+388) /* Variables */
23:47:25 <esolangs> [[Falsish]] https://esolangs.org/w/index.php?diff=104667&oldid=104666 * McChuck * (+5) /* Variables */
23:47:37 <esolangs> [[Falsish]] M https://esolangs.org/w/index.php?diff=104668&oldid=104667 * McChuck * (-2) /* Variables */
23:48:51 <esolangs> [[Falsish]] M https://esolangs.org/w/index.php?diff=104669&oldid=104668 * McChuck * (+0) /* Example programs */
23:51:29 <esolangs> [[Falsish]] https://esolangs.org/w/index.php?diff=104670&oldid=104669 * McChuck * (+120) /* Example programs */
23:51:58 <esolangs> [[Falsish]] M https://esolangs.org/w/index.php?diff=104671&oldid=104670 * McChuck * (-5) /* Example programs */