00:03:03 -!- Sgeo has joined.
00:41:44 <esolangs> [[Special:Log/newusers]] create * Microbyte * New user account
00:44:22 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=120521&oldid=120467 * Microbyte * (+142)
00:44:45 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=120522&oldid=120521 * Microbyte * (+0)
00:59:07 <zzo38> How should I implement probability calculation using big integers in C that it does have any rounding errors (and that can use as big integers as necessary)? Bitwise operations are probably not needed, but addition, subtraction, multiplication, and converting a fraction into floating point (once the calculation is completed) might be useful.
00:59:21 <esolangs> [[BallisticScript]] N https://esolangs.org/w/index.php?oldid=120523 * Microbyte * (+1576) Created page with "BallisticScript is a language created by [[User:Microbyte|Microbyte]] that is based on using a cannon to fire at the memory field to influence it. == Features == You use a cannon to fire at a field of memory, and the impact angle acts as the command. There is
01:00:41 <esolangs> [[BallisticScript]] https://esolangs.org/w/index.php?diff=120524&oldid=120523 * Microbyte * (+50)
01:01:01 <esolangs> [[BallisticScript]] https://esolangs.org/w/index.php?diff=120525&oldid=120524 * Microbyte * (+15)
01:38:17 <esolangs> [[Talk:Esoteric programming language]] https://esolangs.org/w/index.php?diff=120526&oldid=120519 * Ais523 * (+238) /* How do you pronounce "esolang"? */ it depends on which version of English you're using.
03:08:14 <int-e> b_jonas: Phew, I think I've finally settled on an encoding for shape recipes that actually covers all cases: https://int-e.eu/~bf3/tmp/shapez-recipe.png (basically the shape is decomposed into parts that only use two adjacent quadrants, and the top shape encodes a tiny bit of information about how they should be stacked to make up the whole shape. It's not obvious that all shapes can be made...
03:08:20 <int-e> ...that way but brute force shows that it works out)
03:09:31 <int-e> So /maybe/ I can actually finish this this year.
03:14:26 <int-e> (What remains is relatively straightforward. Picking an encoding was tough because there are so many possibilities and I wanted something that's convenient to decode and has few exceptional cases.)
03:24:00 <int-e> Hmm, there's still room for some tweaks :) For one, I can unify the star/circle cases.
03:28:59 -!- wpa has joined.
04:38:31 <int-e> (Done with tweaking for now; I've updated the screenshot. The top shape encodes whehter the red part comes in from above or below; the other shapes encode information about putting an auxiliary slice on top before stacking)
04:46:03 -!- ais523 has quit (Quit: quit).
04:59:14 -!- chiselfuse has quit (Read error: Connection reset by peer).
04:59:30 -!- chiselfuse has joined.
05:38:38 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=120527&oldid=120446 * Esolanger12345 * (+136)
05:39:09 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=120528&oldid=120527 * Esolanger12345 * (+2)
05:40:40 <esolangs> [[Bullshit]] https://esolangs.org/w/index.php?diff=120529&oldid=109898 * Ashli Katt * (+52) /* Examples */
05:41:55 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=120530&oldid=120528 * Esolanger12345 * (+3)
06:44:26 -!- tromp has joined.
06:55:57 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
07:29:14 -!- tromp has joined.
07:42:47 <esolangs> [[Morse code]] N https://esolangs.org/w/index.php?oldid=120531 * Kiken * (+4486) Created page with "{{lowercase}} '''morse code''' is an [[esolang]] created by [[User:kiken|kiken]] in 2023 (sort of) based on [https://en.wikipedia.org/wiki/Morse_code morse code]. {{infobox proglang |name=morse code |author=[[User:kiken]] |paradigms=[[:Category:String-rewriting parad
07:43:19 <esolangs> [[Morse code]] M https://esolangs.org/w/index.php?diff=120532&oldid=120531 * Kiken * (-1) formatting
07:46:38 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=120533&oldid=120414 * Kiken * (+17) /* M */ morse code
07:51:03 <esolangs> [[Morse code]] M https://esolangs.org/w/index.php?diff=120534&oldid=120532 * Kiken * (+20) adding
07:56:56 <esolangs> [[Morse code]] M https://esolangs.org/w/index.php?diff=120535&oldid=120534 * Kiken * (+17) /* Implementations */ fixing the interpreter
07:57:16 <esolangs> [[Morse code]] M https://esolangs.org/w/index.php?diff=120536&oldid=120535 * Kiken * (+16) /* Implementations */ fixing the interpreter
07:57:38 <esolangs> [[Morse code]] M https://esolangs.org/w/index.php?diff=120537&oldid=120536 * Kiken * (+9) /* Implementations */ output only
08:17:52 <esolangs> [[User:Kiken]] https://esolangs.org/w/index.php?diff=120538&oldid=120357 * Kiken * (+116)
08:25:30 <b_jonas> zzo38: sorry, do you mean it *doesn't* have any rounding errors, so you just want a big integers library?
08:26:24 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=120539&oldid=120530 * Kiken * (+168) /* Play Area (Don't clear after use!) */
08:37:11 <b_jonas> zzo38: if you want a big integer library, there are many but some choices are the following. the ones that are highly optimized for large numbers are GMP https://gmplib.org/ and its fork MPIR https://github.com/wbhart/mpir . the one that's more educational and less optimized is the libtom libraries https://www.libtom.net/ . then there's Boost Multiprecision library
08:37:16 <b_jonas> https://www.boost.org/doc/libs/1_84_0/libs/multiprecision/doc/html/index.html which both has its own backend or use one of the previous two as backends. and there's Fabrice Bellard's https://bellard.org/libbf/ .
08:37:39 <esolangs> [[Morse code]] M https://esolangs.org/w/index.php?diff=120540&oldid=120537 * Kiken * (+134) /* Implementations */ keyerror
08:40:31 <esolangs> [[Morse code]] M https://esolangs.org/w/index.php?diff=120541&oldid=120540 * Kiken * (+126) /* Implementations */ impoving
08:42:45 <esolangs> [[Morse-code]] N https://esolangs.org/w/index.php?oldid=120542 * Kiken * (+24) redirect to morse code, hyphen is optional
08:54:02 <b_jonas> int-e: so you're really going with the ROM idea rather than some hand-made logic?
08:54:37 <esolangs> [[Special:Log/newusers]] create * Ac.virga * New user account
08:57:02 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
08:59:15 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=120543&oldid=120522 * Kiken * (+97)
09:03:34 -!- Lord_of_Life has quit (Ping timeout: 276 seconds).
09:05:26 <b_jonas> zzo38: wait, you said in C. if that's a requirement then boost Multiprecision won't work easily because it only has a C++ interface.
09:07:50 <b_jonas> I'll note that boost multiprecision works particularly well if you need fixed-size unsigned integers that are larger than machine precision, like 192 or 256 bit ones.
09:16:00 <esolangs> [[User:Kiken/vector.js]] N https://esolangs.org/w/index.php?oldid=120544 * Kiken * (+245) Created page with "btn = document.createElement('button'); btn.style.position = 'fixed'; btn.style.left = '19em'; btn.style.top = '19em'; btn.innerText = 'the button of annoyance'; btn.onclick = 'alert("ya")'; document.body.appendChild(btn);"
09:21:04 <esolangs> [[User:Kiken/vector.js]] https://esolangs.org/w/index.php?diff=120545&oldid=120544 * Kiken * (+2965) improving the code and making it more annoying
09:21:21 -!- Lord_of_Life has joined.
09:23:39 <esolangs> [[User:Kiken]] https://esolangs.org/w/index.php?diff=120546&oldid=120538 * Kiken * (+93)
09:25:22 -!- Koen_ has joined.
09:42:28 -!- Sgeo has quit (Read error: Connection reset by peer).
09:57:49 -!- wpa has quit (Quit: Connection closed for inactivity).
10:06:07 <esolangs> [[Talk:Esoteric programming language]] https://esolangs.org/w/index.php?diff=120547&oldid=120526 * None1 * (+88) /* How do you pronounce "esolang"? */
10:13:38 -!- Thelie has joined.
10:16:39 -!- tromp has joined.
10:17:33 <esolangs> [[Esoteric programming language]] M https://esolangs.org/w/index.php?diff=120548&oldid=108562 * None1 * (-4) /* History */ Unlink as page does not exist
10:27:12 <esolangs> [[Timeline of esoteric programming languages]] M https://esolangs.org/w/index.php?diff=120549&oldid=108697 * None1 * (-4) /* 1972 */
10:34:44 -!- Koen_ has quit (Remote host closed the connection).
10:39:08 -!- Thelie has quit (Ping timeout: 268 seconds).
10:49:05 <esolangs> [[Timeline of esoteric programming languages]] https://esolangs.org/w/index.php?diff=120550&oldid=120549 * None1 * (+188) /* 2011 */
10:53:40 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
10:59:29 -!- Koen_ has joined.
10:59:58 <esolangs> [[Timeline of esoteric programming languages]] M https://esolangs.org/w/index.php?diff=120551&oldid=120550 * None1 * (+0) /* 2023 */
11:02:12 -!- tromp has joined.
11:03:20 -!- __monty__ has joined.
11:20:55 -!- Thelie has joined.
11:28:21 -!- Thelie has quit (Ping timeout: 260 seconds).
11:33:19 -!- Thelie has joined.
12:10:33 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:35:03 -!- Koen_ has quit (Remote host closed the connection).
13:35:04 -!- Thelie has quit (Ping timeout: 246 seconds).
13:35:49 -!- tromp has joined.
13:38:24 <fizzie> Just realized despite being more than half over, AoC this year hasn't really had any "esolang" style puzzles. Even if it isn't an "half the puzzles are about Intcode" year, there's usually at least something with an "assembly language".
14:13:12 <esolangs> [[User:Kiken/vector.js]] M https://esolangs.org/w/index.php?diff=120552&oldid=120545 * Kiken * (-49) test
14:13:38 -!- Thelie has joined.
14:16:33 <esolangs> [[User:Kiken/vector.js]] M https://esolangs.org/w/index.php?diff=120553&oldid=120552 * Kiken * (+0) wrong quotes
14:37:03 -!- Sgeo has joined.
14:40:28 <int-e> b_jonas: I wanted to use just a ROM initially but that would destroy my tick rate so what I'm going to do now is have some logic to a) check all four rotations of the requested shape and b) recognize the special case of a shape that can be constructed from a left half and a right half. Then the ROM only has to cover about 6k values, and that I can actually afford.
14:41:18 <int-e> I do have code to populate one kind of ROM (the row/column one), I should also write code for the associative version.
14:56:52 -!- FreeFull has quit.
15:07:55 -!- wib_jonas has joined.
15:09:36 <wib_jonas> int-e: by stacking the left half with the right half? is that more shapes than the ones that you can construct layer by layer?
15:13:41 <int-e> wib_jonas: Hmm. No, it's a bit less (22k shapes vs 28k), but it would require a completely separate assembly infrastructure.
15:13:55 <wib_jonas> eg. RRRR:RR--:RRRR can't be combined from a left half and right half, but can be built layer by layer, whereas the logo shape can be combined from two halves but can't be built layer by layer
15:14:31 <int-e> wib_jonas: Uh yes it can. My "halves" include stuff like R---:-R--:R---:-R--
15:15:12 <int-e> wib_jonas: Well, you're right
15:15:13 <wib_jonas> oh! right, you can make that from halves if you rotate it
15:15:27 <int-e> but I will also check the rotation RRRR:R--R:RRRR
15:16:06 <wib_jonas> "a completely separate assembly infrastructure" => but most of that infrastructure is producing 16 arbitrary quadrants, which you'll need anyway for your machine, plus you probably already have a freeplay machine that you can copy
15:16:18 <int-e> Those "halves" are just a very convenient starting point because they cover everything that you can get as output from a cutter.
15:16:47 <wib_jonas> yeah, the halves is probably a good idae
15:17:14 <int-e> So from down there it's only rotations and stacking, and adding the occasional "hat" to help with the stacking.
15:18:31 <int-e> I don't think that the quarter machinery is going to be the biggest part of this.
15:18:43 <int-e> And yes I'm absolutely taking that from my MAM
15:18:54 <wib_jonas> of course not, the stackers always take up the most space because they're so slow
15:19:11 <wib_jonas> and you need a lot of stackers here
15:19:34 <esolangs> [[Esolang:Sandbox]] M https://esolangs.org/w/index.php?diff=120554&oldid=120539 * NameGoesThere * (+163) /* 1 < 0 */
15:19:55 <int-e> Sure. And I'll have 32 quarter lanes rather than 16. It simplifies the routing *a lot*.
15:21:10 <int-e> Anyway, that's the main thing with the stacking-slices "simple case" - it doesn't fit into the fairly uniform workflow that I want.
15:22:28 <esolangs> [[Esolang:Sandbox]] M https://esolangs.org/w/index.php?diff=120555&oldid=120554 * NameGoesThere * (+87) /* 1 < 0 */
15:22:51 <int-e> I'll have 18*8 stackers I think.
15:23:51 <wib_jonas> 18 blocks of stackers, so just 3 more than the 15 stackers that you need for easy shapes
15:24:21 -!- Thelie has quit (Ping timeout: 268 seconds).
15:24:32 <wib_jonas> and you aren't reusing any of those stackers for multiple shapes for any one goal, right?
15:24:59 <int-e> Yeah that can't be right... I forgot that I need 4*8 extra stackers very early on.
15:25:55 <int-e> So 34*8. More believable.
15:26:13 <int-e> And yeah, I'm not reusing stackers for a single shape.
15:26:19 <wib_jonas> if you're crafting left halves only at the start then you can save a bunch of stackers by making it on both the left and right side in parallel then cutting it
15:26:32 <wib_jonas> saves half of them and even saves cutters
15:26:40 <int-e> I need the other half to aid with the stacking.
15:27:00 <int-e> that's how you get things like R---:-R--
15:27:01 <wib_jonas> sure, but I mean in the first phase where you're just making the left half shapes
15:27:17 <wib_jonas> right, you have to be able to make the left half of the logo
15:27:24 <wib_jonas> that still counts as a cutter output
15:49:57 -!- wib_jonas has quit (Quit: Client closed).
16:03:39 <esolangs> [[BallisticScript]] M https://esolangs.org/w/index.php?diff=120556&oldid=120525 * PythonshellDebugwindow * (+89) Categories
16:06:36 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:07:15 -!- tromp has joined.
16:07:30 <esolangs> [[BALAE]] M https://esolangs.org/w/index.php?diff=120557&oldid=83319 * PythonshellDebugwindow * (+132) Categories
16:13:20 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=120558&oldid=120533 * PythonshellDebugwindow * (+34) /* B */ add
16:17:59 <esolangs> [[Morse code]] https://esolangs.org/w/index.php?diff=120559&oldid=120541 * Hakerh400 * (+10) Add "stub" because the language specification is unclear and the implementation is buggy
16:34:04 <esolangs> [[Timeline of esoteric programming languages]] M https://esolangs.org/w/index.php?diff=120560&oldid=120551 * PythonshellDebugwindow * (+5) /* 2023 */
16:57:06 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:04:33 <esolangs> [[Talk:JamogusLamogusAmogus]] N https://esolangs.org/w/index.php?oldid=120561 * NameGoesThere * (+209) Created page with "This is the discussion page for the very "sussy" esoteric programing language "JamogusLamogusAmogus".<br> --~~~~"
17:09:43 <esolangs> [[Timeline of esoteric programming languages]] M https://esolangs.org/w/index.php?diff=120562&oldid=120560 * NameGoesThere * (+226) /* 2038 */
17:10:02 <esolangs> [[Timeline of esoteric programming languages]] M https://esolangs.org/w/index.php?diff=120563&oldid=120562 * NameGoesThere * (+5) /* 2038 */
17:10:23 -!- tromp has joined.
17:11:12 -!- Thelie has joined.
17:13:08 <esolangs> [[Ultimate Golfing Simulator 3000]] M https://esolangs.org/w/index.php?diff=120564&oldid=120512 * Rdococ * (-14) /* Computational Class */
17:13:31 <esolangs> [[Ultimate Golfing Simulator 3000]] M https://esolangs.org/w/index.php?diff=120565&oldid=120564 * Rdococ * (+2) /* Computational Class */
17:16:48 -!- ais523 has joined.
17:34:50 -!- Thelie has quit (Ping timeout: 252 seconds).
18:07:10 -!- Koen_ has joined.
18:17:30 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
18:18:33 -!- Thelie has joined.
18:27:30 -!- Thelie has quit (Ping timeout: 268 seconds).
18:32:16 -!- Thelie has joined.
18:44:24 <esolangs> [[User:Squidmanescape]] https://esolangs.org/w/index.php?diff=120566&oldid=119456 * Squidmanescape * (+122)
18:45:01 -!- Thelie has quit (Ping timeout: 255 seconds).
18:49:43 -!- ais523 has quit (Quit: quit).
18:50:11 -!- zzo38 has quit (Ping timeout: 252 seconds).
18:55:58 -!- tromp has joined.
19:03:05 -!- Koen_ has quit (Remote host closed the connection).
19:06:17 -!- zzo38 has joined.
19:09:06 <zzo38> Yes I do mean so it does not have rounding errors. Possibly I could make my own big integer code if necessary; I had thought of using a probability distribution structure like: struct { Value bias[8]; Value count[8]; Size nparts; BigPart*data; } Where data[0] up to data[nparts-1] will be the total, data[nparts] up to data[2*nparts-1] will be the probability for (bias[0],bias[1],...,bias[7]), etc.
19:09:16 -!- Koen_ has joined.
19:09:25 <zzo38> (Value, Size, and BigPart are integer types; Value is signed although this is only needed for bias and not for count, actually)
19:11:18 <zzo38> Do you think that this will work?
19:12:03 <zzo38> Also, possibly lcm might also be helpful, in case of using one uniform distribution to select between several others (which might or might not be uniform).
19:16:30 <b_jonas> I don't know, I don't see why I'd make my own big integer code since there are so many good libraries out there
19:29:21 <esolangs> [[User:Squidmanescape]] https://esolangs.org/w/index.php?diff=120567&oldid=120566 * Squidmanescape * (+30)
19:39:35 <zzo38> I would think that (although I don't actually know) that most would require to make separate allocations for each number or to use a fixed size of numbers, and neither seems good enough to me
19:46:08 -!- Thelie has joined.
19:47:27 -!- Thelie has quit (Client Quit).
20:09:17 <b_jonas> zzo38: those are the easiest modes, though (1) you can of course supply your own allocator, (2) boost multiprecision has direct support to only allocate when the number grows bigger than the fixed-size buffer and you can choose the size of that one, and (3) gmp/mpir has a low-level API that lets you handle where you store the digits but then you have to handle all the other high-level stuff as well
20:12:17 <b_jonas> and of course all of these libraries are open source so you can modify them in weird custom ways if you really need to
20:37:22 -!- FreeFull has joined.
20:45:18 <zzo38> What I mean is if it seems a reasonable way to store the digits for this specific kind of program. There might be other considerations. However, it seems that addition and multiplication would be easily enough to be implemented. The lcm might also be needed; as far as I know the other functions (e.g. conversion to decimal, exponents, etc) are not needed, I think?
21:14:35 <esolangs> [[Minitree]] https://esolangs.org/w/index.php?diff=120568&oldid=119706 * Squidmanescape * (+1993) /* Version 3 */
21:16:49 <esolangs> [[Minitree]] https://esolangs.org/w/index.php?diff=120569&oldid=120568 * Squidmanescape * (-10648)
21:17:54 <esolangs> [[Minitree]] https://esolangs.org/w/index.php?diff=120570&oldid=120569 * Squidmanescape * (+3) I forgot to fix this until it was too late.
21:32:59 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:46:13 -!- tromp has joined.
21:51:34 <fizzie> `blsq ".O..O.#..O.O.O..##.O" XX {'#==}gB{J-]'#!={{'O==}pt}if}m[FL \[ " pleasantly short part 1 in Burlesque, here's the 'core' "vv
21:52:41 <int-e> hmm, is pt partition?
21:52:49 <fizzie> ".O..O.#..O.O.O..##.O" → {".O..O." "#" "..O.O.O.." "##" ".O"} → {{"OO" "...."} "#" {"OOO" "....."} "##" {"O" "."}} → "OO....#OOO......##O."
21:53:06 * int-e got enamoured with using `sort`
21:53:42 <fizzie> Could be shorter, no need to provide the predicate.
21:53:48 <int-e> and then went about it in a less than optimal way... remapping characters instead of reversing the lists
21:54:10 <fizzie> Also, I guess the partitioning doesn't need to be in an `if` because it's a no-op for "##".
21:55:01 <fizzie> `blsq ".O..O.#..O.O.O..##.O" XX {'#==}gB{{'O==}pt}m[FL \[ " yeah "vv
21:56:27 <fizzie> `blsq ".O..O.#..O.O.O..##.O" XX {'#==}gB{><<-}m[FL \[ " sorting's shorter, true "vv
21:59:27 <fizzie> Actually, wasn't there a sort-reversed builtin...
21:59:42 <fizzie> `blsq ".O..O.#..O.O.O..##.O" XX {'#==}gB{<>}m[FL \[ " yes there was "vv
21:59:53 <fizzie> Easy to remember, >< vs <>.
21:59:55 <int-e> fizzie: you could reverse the (lines of the) input
22:00:10 <int-e> fizzie: which if the scoring involves zipping with indices, will pay off then
22:00:44 <int-e> this is all stuff I only did in my post-mortem
22:01:16 <int-e> I made quite a mess initially, many small decisions that were all suboptimal
22:01:56 <int-e> "scoring" - I mean computing the load
22:24:19 <fizzie> Yeah, it involved a <-zi (reverse, zip with indices), I guess I could just move that <- earlier.
22:37:58 <fizzie> After some tweaks, here's the whole thing: ln)XXtp{{'#==}gB)<>\[<-{'O==}fI?i++}ms
22:38:01 <fizzie> Opted to keep reversing to the end since <->< vs. <><- doesn't really make a size difference.
22:38:45 <int-e> right, I didn't know that reverse sorting was an option when I wrote that
22:38:48 <fizzie> Shame about the )XX, if they'd said "west" instead of "north" it wouldn't be needed because the rest works fine for strings, but tp doesn't transpose a block of strings.
22:39:25 <b_jonas> wait, are both of you writing solutions in burlesque, or are you just analyzing fizzie's solutions?
22:39:34 <fizzie> I think int-e's doing Haskell.
22:40:25 <int-e> but Burlesque borrows a lot of primitives from Data.List and the Haskell Prelude.
22:41:22 <int-e> With twists and turns but often recognizable. So when you can use those effectively for a problem, those ideas tend to transfer.
22:42:22 <fizzie> I'm also doing Go (as a "primary" language), but that's generally a lot more... imperative.
22:43:21 <fizzie> 23 milliseconds for today, which is again longest for the year. :/
22:43:46 <b_jonas> the runtime doesn't really matter until it's much higher, unless you're a really fast developer
22:44:31 <b_jonas> but yeah, you already know that
22:44:49 <int-e> I did a manual calculation for part 2. Not sure whether that saved time, espcially since I got it wrong the first time for a stupid reason.
22:45:55 <int-e> It wasn't a good day for me by my standards :)
22:46:08 <int-e> But it's entirely my fault, the problem was nice.
22:46:25 <fizzie> I'm happy to not even try do them fast in wall-clock sense.
22:46:45 <fizzie> Just like to keep the CPU time low so that it's fast to `go test ./...` to verify a change doesn't break any past solution.
22:48:07 <int-e> I find that it's an interesting balance between moving fast, finding simple (and efficient enough) approaches to solving the problems, and not making mistakes. Can't always get it right :)
22:48:42 <fizzie> https://0x0.st/HYX3.txt -- okay, realistically the "run all tests" thing hasn't been a practical issue either.
22:50:32 <fizzie> I was wondering if the input today would be such that it'd get stuck in a length-1 cycle, but apparently it wasn't.
22:51:13 <int-e> . o O ( length minus one, huh? ... ... ... oh, it's a hyphen )
22:51:48 <int-e> fizzie: it wasn't but they also didn't do the crazy thing where the input has several independent compartments all of coprime lengths
22:52:47 <int-e> I don't know whether you can get long cycles without that kind of independence.
22:53:17 <int-e> Do you remember your cycle length? Mine was 28.
22:55:53 <fizzie> Mine was 18, from 121 -> 139.
23:02:53 <fizzie> I guess you could get a cycle that's proportional in length to the area of the platform, by having one rock that takes a space-filling curve all around it.
23:03:57 <fizzie> Well, a jaggy enough one, anyway. I don't know if that'd work.
23:06:26 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:08:47 <int-e> fizzie: You can build cycles of arbitrary length with a single rock: https://paste.debian.net/1301145/
23:09:09 <int-e> And then have cycles of length 2,3,5,7,11,13,17,etc. all in a relatively small space
23:11:08 <fizzie> Right, I was just thinking about the "long cycle without that sort of independence" part.
23:11:35 <int-e> I have no intuition for what happens with more than one rock.
23:12:11 <int-e> maybe there's a way to have mostly independent cycles but once every blue moon two rocks collide
23:12:40 <int-e> maybe allowing them to swap places
23:12:52 <int-e> very vague idea there
23:13:26 <fizzie> Apparently the number of segments in a Hilbert curve is A015521. (Mostly tangential.)
23:15:52 <int-e> heck even the single rock variant has a challenge... find the smallest region (area? smallest containing square?) that has a cycle of length n.
23:22:02 <esolangs> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=120571&oldid=120555 * None1 * (+103) /* 1 < 0 */
23:22:23 <esolangs> [[Esolang:Sandbox]] M https://esolangs.org/w/index.php?diff=120572&oldid=120571 * None1 * (+4) /* 1=0 */
23:27:18 <esolangs> [[Talk:Timeline of esoteric programming languages]] https://esolangs.org/w/index.php?diff=120573&oldid=100387 * None1 * (+333) /* WTF? is that?! */ new section
23:31:57 -!- rdococ has joined.
23:32:09 <int-e> fizzie: you may get to use Hilbert curves if you want to: https://paste.debian.net/1301147/
23:33:57 <int-e> (The main point of that sketch is that it shows that the area grows linearly with the cycle length.)
23:37:43 -!- rdococ has quit (Quit: Leaving).
23:38:42 <int-e> Heck, maybe you can simulate Langton's ant with this if you make a unit cell with a single rock that travels on one of two cycles, and then an additional rock for the ant that interacts with the rock in such a cell.
23:39:54 <int-e> (And if that can be done, maybe one can also do game of life... yay, another distraction.)