00:06:34 web.ais523_stealth4: points 10.07, score 33.06, rank 5/47 (+1) 00:12:54 I wonder what's being computed. I hope it's a ray tracer making a beautiful video. 00:19:58 if you're wondering about zemhill, see https://zem.fi/bfjoust/ 00:20:28 fizzie resurrected the bot... today I think. well, yesterday for me. 01:01:17 -!- X-Scale has joined. 01:02:31 [[FLOLCODE]] M https://esolangs.org/w/index.php?diff=142984&oldid=142983 * PythonshellDebugwindow * (+27) Category 01:02:45 -!- amby has quit (Quit: so long suckers! i rev up my motorcylce and create a huge cloud of smoke. when the cloud dissipates im lying completely dead on the pavement). 01:03:37 [[LOLCODE]] M https://esolangs.org/w/index.php?diff=142985&oldid=134041 * PythonshellDebugwindow * (+5) Categories 02:59:59 [[]] M https://esolangs.org/w/index.php?diff=142986&oldid=142785 * ZCX islptng * (+3941) changed the quine, now it's correct 03:02:03 [[User talk:ZCX islptng]] https://esolangs.org/w/index.php?diff=142987&oldid=142940 * ZCX islptng * (+173) 03:09:12 [[V++]] M https://esolangs.org/w/index.php?diff=142988&oldid=142971 * PythonshellDebugwindow * (+31) Wayback 03:48:37 -!- Lord_of_Life has quit (Ping timeout: 248 seconds). 04:05:48 -!- Lord_of_Life has joined. 04:11:30 -!- craigo has quit (Ping timeout: 276 seconds). 04:25:03 -!- riv has quit (Quit: WeeChat 4.3.1). 04:32:23 int-e, fizzie: Cool, thanks. 04:32:48 Probably not a good sign that I've reacted by sketching wave equations for the tape. 04:47:52 [[Special:Log/newusers]] create * H. H. P. M. P. Cole * New user account 04:48:55 [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=142989&oldid=142635 * Yayimhere * (+12) /* esolangs */ 04:49:16 [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=142990&oldid=142989 * Yayimhere * (+2) /* esolangs */ 04:57:03 [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=142991&oldid=142918 * H. H. P. M. P. Cole * (+333) 04:57:45 [[User:H. H. P. M. P. Cole]] N https://esolangs.org/w/index.php?oldid=142992 * H. H. P. M. P. Cole * (+37) Created page with "[[User:H. H. P. M. P. Cole/p (Cole)]]" 04:58:12 [[User:H. H. P. M. P. Cole]] https://esolangs.org/w/index.php?diff=142993&oldid=142992 * H. H. P. M. P. Cole * (+7) 05:00:14 [[User:H. H. P. M. P. Cole/Modulo 2]] N https://esolangs.org/w/index.php?oldid=142994 * H. H. P. M. P. Cole * (+41) Created page with "Alphabet p ' 0 1 + ( ) " 05:03:03 -!- X-Scale has quit (Quit: Client closed). 05:15:26 [[User:H. H. P. M. P. Cole/Modulo 2]] M https://esolangs.org/w/index.php?diff=142995&oldid=142994 * H. H. P. M. P. Cole * (+1281) New page (yay) 05:15:58 [[Translated ORK/None1 again7]] https://esolangs.org/w/index.php?diff=142996&oldid=142793 * MihaiEso * (+1053) 05:17:18 [[User:H. H. P. M. P. Cole/Modulo 2]] M https://esolangs.org/w/index.php?diff=142997&oldid=142995 * H. H. P. M. P. Cole * (-17) 05:18:14 [[User:H. H. P. M. P. Cole/Modulo 2]] M https://esolangs.org/w/index.php?diff=142998&oldid=142997 * H. H. P. M. P. Cole * (-13) 05:21:01 -!- GregorR has quit (Quit: Ping timeout (120 seconds)). 05:22:24 [[User:H. H. P. M. P. Cole/Modulo 2]] M https://esolangs.org/w/index.php?diff=142999&oldid=142998 * H. H. P. M. P. Cole * (+125) 05:22:39 [[Translated ORK/Mihai again7]] N https://esolangs.org/w/index.php?oldid=143000 * MihaiEso * (+1897) Created page with "The future for [[Translated_ORK/None1_Again7]]: 1. Take crappy source:
 2? It is the celebration of high priests and funeral. 2? Zanguang Zhang & lt; 2? Zanguang Zhang First, I was a strange graduate. Zanguang Zhang 
2. Translate: Baid 05:22:53 [[Translated ORK/Mihai again7]] https://esolangs.org/w/index.php?diff=143001&oldid=143000 * MihaiEso * (+0) 05:23:23 -!- GregorR has joined. 05:25:14 [[Joke language list]] https://esolangs.org/w/index.php?diff=143002&oldid=142702 * MihaiEso * (+122) /* Horribly translated variants */ 05:25:55 [[Special:Log/move]] move * MihaiEso * moved [[Translated ORK/Mihai again7]] to [[Translated ORK/Mihai Again7]]: Misspelled title 05:26:10 [[Joke language list]] https://esolangs.org/w/index.php?diff=143005&oldid=143002 * MihaiEso * (+0) /* Horribly translated variants */ 05:26:21 [[Translated ORK/None1 again7]] https://esolangs.org/w/index.php?diff=143006&oldid=142996 * MihaiEso * (+0) /* Contrast */ 05:28:56 [[User:H. H. P. M. P. Cole/Modulo 2]] M https://esolangs.org/w/index.php?diff=143007&oldid=142999 * H. H. P. M. P. Cole * (+312) 05:30:11 -!- Sgeo has quit (Read error: Connection reset by peer). 05:30:12 [[User:H. H. P. M. P. Cole/Modulo 2]] M https://esolangs.org/w/index.php?diff=143008&oldid=143007 * H. H. P. M. P. Cole * (+176) /* All possible small programs */ 05:30:53 [[User:H. H. P. M. P. Cole/Modulo 2]] M https://esolangs.org/w/index.php?diff=143009&oldid=143008 * H. H. P. M. P. Cole * (+0) /* All possible small programs */ 05:59:32 -!- tromp has joined. 06:01:39 -!- Hooloovoo has quit (Ping timeout: 260 seconds). 06:26:47 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 06:29:50 [[Hashell]] https://esolangs.org/w/index.php?diff=143010&oldid=142939 * Yayimhere * (+192) /* operators */ 06:39:30 [[User:ZCX islptng/Sandbox]] M https://esolangs.org/w/index.php?diff=143011&oldid=142925 * ZCX islptng * (+77) uhhhhhhhh 06:40:52 [[User:ZCX islptng/Sandbox]] M https://esolangs.org/w/index.php?diff=143012&oldid=143011 * ZCX islptng * (+13) 06:44:46 [[User:ZCX islptng]] https://esolangs.org/w/index.php?diff=143013&oldid=142906 * ZCX islptng * (+212) 06:45:41 -!- Hooloovoo has joined. 06:50:11 !ztest gauss3 (-----+++----+++++---++++)*5050 06:50:11 korvo.gauss3: points -17.83, score 8.19, rank 47/47 06:56:03 !ztest gauss_pair (>+++--++---+++--++---<-----+++----+++++---++++)*2632 06:56:04 korvo.gauss_pair: points -27.33, score 4.59, rank 47/47 07:04:16 -!- tromp has joined. 07:08:50 [[User talk:ZCX islptng]] https://esolangs.org/w/index.php?diff=143014&oldid=142987 * ZCX islptng * (-173) 07:12:01 [[User talk:None1]] M https://esolangs.org/w/index.php?diff=143015&oldid=142094 * ZCX islptng * (+185) 07:26:12 [[User:Ractangle]] https://esolangs.org/w/index.php?diff=143016&oldid=142966 * Ractangle * (+75) /* Programm forms */ 07:26:42 `addwhatis ztest(1perlbot) compute performance of a bfjoust program against current hill without adding it to the hill 07:26:44 Traceback (most recent call last): \ File "/hackenv/bin/addwhatis", line 21, in \ procnew(arg) \ File "/hackenv/bin/addwhatis", line 17, in procnew \ print("addwhatis: cannot parse input as whatis line or whatis key: %r" % (line,), file = sys.stderr) \ NameError: name 'line' is not defined 07:26:52 huh 07:27:08 oh yeah 07:27:14 `addwhatis ztest(1perlbot) - compute performance of a bfjoust program against current hill without adding it to the hill 07:27:17 addwhatis: added 'ztest(1perlbot)' 07:27:39 `addwhatis zjoust(1perlbot) - add bfjoust program to current hill 07:27:42 addwhatis: added 'zjoust(1perlbot)' 07:27:54 `prefixes 07:27:56 Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ? or > , thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =, velik \. 07:29:04 -!- tromp has quit (Read error: Connection reset by peer). 07:38:58 Huh, my initial theories about defensive plays are not panning out. gauss3 should not do so well compared to gauss3 + some sort of attack. (Not that gauss3 is good.) 07:40:44 [[Esolang:Community portal]] https://esolangs.org/w/index.php?diff=143017&oldid=142666 * B jonas * (+9) 07:40:59 [[Zemhill]] N https://esolangs.org/w/index.php?oldid=143018 * B jonas * (+22) Redirected page to [[BF Joust]] 08:21:17 [[Special:Log/newusers]] create * Pointless * New user account 08:24:20 [[Special:Log/upload]] overwrite * Ractangle * uploaded a new version of "[[File:The dark reader at home.jpg]]" 08:24:48 [[User:H. H. P. M. P. Cole]] M https://esolangs.org/w/index.php?diff=143020&oldid=142993 * H. H. P. M. P. Cole * (+113) 08:27:29 -!- chiselfuse has quit (Read error: Connection reset by peer). 08:27:48 -!- chiselfuse has joined. 08:30:54 [[Till thirty first]] https://esolangs.org/w/index.php?diff=143021&oldid=142973 * Ractangle * (+15) 08:31:02 -!- X-Scale has joined. 08:39:49 -!- X-Scale has quit (Ping timeout: 256 seconds). 08:41:31 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=143022&oldid=142991 * Pointless * (+303) /* Introductions */ 08:41:43 [[Fysh]] N https://esolangs.org/w/index.php?oldid=143023 * Pointless * (+11970) Created page with "'''Fysh''' is an esoteric programming language that embraces creativity and a playful aquatic theme. It uses fish-related symbols and terms to represent programming concepts, making coding a fun and engaging experience. ==Introduction== '''Fysh''' brings a whimsical t 08:46:22 web.test1: points -14.00, score 11.42, rank 47/47 08:55:33 -!- Artea has joined. 08:57:09 -!- chiselfuse has quit (Remote host closed the connection). 08:57:21 -!- chiselfuse has joined. 09:04:07 -!- tromp has joined. 09:15:26 -!- X-Scale has joined. 09:16:01 -!- X-Scale has quit (Client Quit). 09:30:02 [[User:Ractangle]] https://esolangs.org/w/index.php?diff=143024&oldid=143016 * Ractangle * (-24) 09:30:50 [[User:Ractangle]] https://esolangs.org/w/index.php?diff=143025&oldid=143024 * Ractangle * (+24) 09:34:52 One of the things I vaguely recall people said about the existing hill is that it's too competitive, it's hard to rank better than 47/47 unless you're already good at the game. 09:35:24 (Not sure if that's true or not, never gotten into BF Joust beyond the implementation side of things.) 09:35:52 [[Fysh]] https://esolangs.org/w/index.php?diff=143026&oldid=143023 * MihaiEso * (-20) /* Option 2: Using Command Line */ 09:37:20 [[Fysh]] https://esolangs.org/w/index.php?diff=143027&oldid=143026 * MihaiEso * (+59) /* */ 09:44:06 [[OCA]] https://esolangs.org/w/index.php?diff=143028&oldid=142518 * Iddi01 * (-2043) Way too personal and jokey, it probably already misleads lots of people who had visited this page from recent changes. Too bad i cannot fix things at conwaylife.com due to being decidedly inactive there. (Also, why Languages? The [[CA]] page is categorized Computational models.) 09:47:14 I believe it. But also, my existing intuition on BF doesn't help here. In particular, concurrent loop semantics are very different from the standard semantics. 09:54:25 -!- __monty__ has joined. 10:02:33 [[FLOLCODE]] https://esolangs.org/w/index.php?diff=143029&oldid=142984 * MihaiEso * (+0) /* Functions */ 10:03:12 [[FLOLCODE]] https://esolangs.org/w/index.php?diff=143030&oldid=143029 * MihaiEso * (+1) /* Keywords */ 10:04:03 [[FLOLCODE]] https://esolangs.org/w/index.php?diff=143031&oldid=143030 * MihaiEso * (-1) /* Numerical types */ 10:08:25 [[Fysh]] https://esolangs.org/w/index.php?diff=143032&oldid=143027 * Pointless * (+4117) 10:08:45 [[Fuckscript]] https://esolangs.org/w/index.php?diff=143033&oldid=126493 * MihaiEso * (-2) /* Implementation */ Actually implemented. 10:10:10 [[Fysh]] https://esolangs.org/w/index.php?diff=143034&oldid=143032 * Pointless * (+25) /* Optional Visuals */ 10:10:44 [[Fysh]] https://esolangs.org/w/index.php?diff=143035&oldid=143034 * MihaiEso * (+66) Someone deleted the categories, so I restored it. 10:10:45 [[Fysh]] https://esolangs.org/w/index.php?diff=143036&oldid=143035 * Pointless * (-6) /* Increment */ 10:11:01 [[Fysh]] https://esolangs.org/w/index.php?diff=143037&oldid=143036 * Pointless * (-2) /* Integers */ 10:11:25 [[Fysh]] https://esolangs.org/w/index.php?diff=143038&oldid=143037 * Pointless * (-3) /* Arrays and Traversal */ 10:11:40 [[User:Pointless]] N https://esolangs.org/w/index.php?oldid=143039 * MihaiEso * (+26) Created page with "Someone who does [[Fysh]]." 10:11:50 [[Fysh]] https://esolangs.org/w/index.php?diff=143040&oldid=143038 * Pointless * (-3) /* Logical Shift Operations */ 10:13:01 [[Fysh]] https://esolangs.org/w/index.php?diff=143041&oldid=143040 * Pointless * (-1) /* How to Compile and Run Fysh */ 10:13:53 [[Fysh]] https://esolangs.org/w/index.php?diff=143042&oldid=143041 * Pointless * (-6) /* if Statements: The Happy Fysh > */ 10:14:39 [[Fysh]] https://esolangs.org/w/index.php?diff=143043&oldid=143042 * Pointless * (-13) /* Conditional Statements */ 10:19:47 [[Fysh]] M https://esolangs.org/w/index.php?diff=143044&oldid=143043 * Pointless * (+4) added spacing between chapters 10:24:13 [[Fysh]] https://esolangs.org/w/index.php?diff=143045&oldid=143044 * Pointless * (+124) 10:43:26 -!- GregorR has quit (Quit: Ping timeout (120 seconds)). 10:43:47 -!- GregorR has joined. 10:44:26 -!- amby has joined. 10:44:55 [[User talk:PrySigneToFry]] https://esolangs.org/w/index.php?diff=143046&oldid=142982 * None1 * (+323) /* Make Poetic (Mihai Popa) with more examples! */ 10:53:29 [[User talk:PrySigneToFry]] https://esolangs.org/w/index.php?diff=143047&oldid=143046 * None1 * (+286) /* Help contributing/translating/administrating Funcode? */ 11:07:26 -!- wib_jonas has joined. 11:09:09 -!- ais523 has joined. 11:11:03 korvo: there are some programs which attempt to skip over enemy decoys, so if you make no changes to the tape other than to your flag, you get free wins against them 11:11:56 but, most top programs are designed to beat, in one way or another, programs that don't attack at all – those are typically easy to detect, so you can use a customized algorithm when you realise the opponent is acting like that 11:13:16 anyway, I took this opportunity to actually analyse what Sookie is doing, it's an entirely new tactic that originally looks ridiculous, but I now understand why it works 11:15:55 ais523: From studying the dynamics in terms of mechanics, I'm noticing that there's no nemeses, even adaptively. 11:16:45 Mostly this is because observation is very weak. Like, all that can be observed is whether a cell is zero, the only choice for the observer is polarity, and the answer is always yes but with a time delay. And the delay's not measurable either. 11:17:34 there are some programs that do a substantial amount of observation, e.g. anticipation2 (which does work by measuring the delay) 11:18:29 Oh, yeah, of course. They're looking for indirect evidence of their opponent. 11:18:32 [[Fysh]] M https://esolangs.org/w/index.php?diff=143048&oldid=143045 * None1 * (+0) /* Decrement */ Not*, but- 11:19:41 several programs intentionally work by setting a cell to a nonzero value, then waiting there until it becomes zero 11:21:01 Yeah. So, like, what I was doing earlier was considering each jouster as a particle and the tape as a field. I had been trying to simplify the whole polarity situation. 11:21:23 although not all of them do anything with the timing information (I think anticipation2 and smartlock do – and waterfall3 used to, although it's fallen off the hill now 11:23:48 Sure. But it's all measured based on assumptions about access patterns, right? 11:25:02 no – it's based on the win condition 11:25:05 [[Fysh]] M https://esolangs.org/w/index.php?diff=143049&oldid=143048 * None1 * (+22) /* External Resources */ 11:25:16 to win you have to hold the opponent's flag at zero for two cycles before moving on 11:25:47 so, as long as the opponent doesn't make a risky skip of your tripwire cell, you can just wait until it's at zero for two cycles, because you know the opponent has to do that at some point 11:26:10 But you only know that the opponent *was* at the tripwire. 11:26:27 oh, you don't know they're going to move to the right after clearing it, indeed 11:26:41 but, you also don't really care 11:26:47 !zjoust simple_rush (>)*5+++(<(+)*40)*4(>)*7(>[(+)*5[-]])*21 11:26:47 ais523.simple_rush: points -9.02, score 12.91, rank 42/47 11:28:11 [[Fysh]] M https://esolangs.org/w/index.php?diff=143050&oldid=143049 * None1 * (+45) 11:28:20 it is possible to get *somewhere* on the board just by following what have become established BF Joust fundamentals – do something to avoid losing to pokes, set up decoys, and clear 11:28:33 Well, maybe not in the current meta. But how do we know that we haven't overlooked some extremely clever and easy strategy? 11:29:01 [[Fish]] https://esolangs.org/w/index.php?diff=143051&oldid=141375 * None1 * (+31) 11:29:13 Sookie might be an example of that – we thought BF Joust was solved a few years ago, but it specifically beats the strategy that we thought solved it 11:31:16 -!- amby has quit (Ping timeout: 252 seconds). 11:35:10 [[Fysh]] M https://esolangs.org/w/index.php?diff=143052&oldid=143050 * None1 * (+29) /* External Resources */ TC (easy to implement brainfuck) 11:35:24 I don't feel like the current strategies describe a solved game, but maybe I've not thought about it enough. 11:36:57 I was thinking in terms of physics. The jousters are particles, the cells are orientations on a unit circle, the tests are observations. The goal was to understand what a board position is like from the epistemic POV of a jouster. 11:40:13 And like yeah, there's a basic wave function that we can set up, but it's useless. I think it's not possible for a jouster to observe enough about their opponent to always provide a perfect counterplay; there's no adaptive nemesis. 11:40:45 And I also can't see a static pattern which doesn't need knowledge of the opponent, so I think that there's no static nemesis either. Just my opinion of course, but it'd be surprising, right? 11:40:56 well, it is usually possible to counter-build against a specific program if you want to beat that program in particular 11:41:12 e.g. by recognising the decoy setup 11:41:48 that has been done a few times in the past to bump programs up from a 98%ish winrate to a 100% winrate (where a "win" here = winning more than half the individual tape length / polarity combinations) 11:44:12 anyway, I feel like the current state of BF Joust strategy is that there is a basic standard strategy that is generically good, plus a number of less normal strategies that it is possible to take countermeasures against individually, but will beat you if you don't take those countermeasures 11:45:18 As I recall there were also some attempts at auto-generating programs genetic programming style, evaluated for fitness against the then-current hill. 11:45:35 Yeah. My perspective is that current strategies are special cases which bump out because of discreteness and the law of small numbers. They're not bad but they're not indicative of the general solution. 11:45:47 the less normal strategies are a) traditional lock-based defence, b) vibration, c) shudder, d) triplocking, e) very fast rush 11:45:57 -!- wWwwW has joined. 11:46:18 then, there are probabilistic locks which were created to beat the standard strategy, and those are interesting because it isn't clear how to special-case against those, and traditional locks, at the same time 11:46:59 one of the interesting parts of writing an attack loop is that you can usually reliably figure out that the opponent is doing *something* to defend against you, but not what specific defence technique they're using 11:47:27 isnt haskell `\_.`  TC? 11:47:47 wWwwW: no, Haskell is statically typed 11:48:11 wat? 11:48:22 You need some sort of recursion in the names. For Haskell, that comes from `let`, `where`, or top-level bindings. 11:48:47 also isnt . as a lambda expression just...B from BCKW? 11:48:50 wWwwW: untyped lambda calculus is TC, but simply typed lambda calculus isn't on its own 11:48:53 The simply-typeable fragments of a calculus aren't going to yield a TC system. This is, in a certain sense, one of the reasons to *have* simple typing. 11:49:03 ok 11:49:15 wWwwW: oh, you would need parentheses to make that work 11:49:24 ok 11:49:26 also you need -> to even be able to write a syntactically correct lambda 11:49:46 so `\_.()->`? 11:50:09 And yes, Haskell (.) is the B combinator (or maybe its flip?) 11:50:23 since 11:50:38 for f(.)g = f (g x) 11:50:43 where x is the funciton input 11:51:44 I think \_.()-> still has no way to write a fix 11:51:53 ais523: So, like, it's hopefully obvious that a wavefunction approach can generalize probabalistic locks? It just does so in a pessimistic way; clearly we learn nothing about how to defeat them. 11:51:54 fix? 11:51:59 also, a while back oerjan told me that SKI+fix is not TC in a simply typed lambda calculus 11:52:13 wWwwW: like the lambda calculus version of a loop 11:52:20 ok 11:52:30 what if you also have = and variable names 11:52:37 wWwwW: Maybe it's time to pause and understand what TC, recursion, access to names, and fixed-point combinators all *do*. They have something in common. 11:52:51 ik what recusion does 11:53:04 it "loops" 11:53:18 Okay. Do you see why simply-typed calculi don't "loop"? 11:53:31 OOOOOOH 11:53:34 fu- 11:53:40 korvo: so probabilistic locks want to avoid "rerolling" the probability, if they have a lock they don't want to give the other program the opportunity to escape, which means that they want to put the gaps in a consistent place in their schedule 11:54:07 if you want to beat them, therefore, you repeatedly adjust your *own* schedule to change where the gaps are, until one of the gaps hits 0 11:54:07 wWwwW: As a follow-up, have you heard the phrase "infinite type" yet? 11:54:12 [[Fish]] https://esolangs.org/w/index.php?diff=143053&oldid=143051 * Ractangle * (-1) The semicolon is pointless 11:54:14 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 11:54:35 nooooo but i would guess its a type that holds all types? 11:56:18 A type that contains itself. 11:56:35 oh 11:56:38 well 11:56:42 does haskell have that 11:56:46 ? 11:57:28 not by default – there are ways to create them intentionally if you have to, but it'll reject code with an error if it tries to create one without using the syntax to do so 11:57:43 ais523: Sure. And the available modes for doing that are, in my increasingly-strained analogy, like harmonics of a particle which the trap is constraining. 11:57:46 <__monty__> GHC defaults to Type-in-Type now IIRC. 11:58:22 <__monty__> So the default kind contains itself. And kinds are just types of types. 11:58:30 Yeah, and Haskell's long had the more basic W-types. Famously Haskell has infinite lists. 11:59:49 [[User talk:/w/wiki/index.php/Talk:index.php/Main page]] https://esolangs.org/w/index.php?diff=143054&oldid=142810 * None1 * (+231) /* Commands */ 12:00:39 wWwwW: Sets are examples of types. If you're having trouble imagining types, you can imagine sets for now. So, a simply-typed calculus is one where we can give "simple" sets to each variable: the variable's values will always be elements of that set. 12:01:28 [[User talk:/w/wiki/index.php/Talk:index.php/Main page]] M https://esolangs.org/w/index.php?diff=143055&oldid=143054 * None1 * (+4) 12:01:38 And recursion is merely when a set isn't "simple" and the elements of that set can be examined with a "loop". (As you might guess, defining the words in quotes isn't fun.) 12:03:07 Haskell makes this all very muddy because its types *aren't* sets. Again, sets are examples of Haskell types, but Haskell also has some other stuff going on. 12:07:17 ais523: Still analogizing, sorry. The less normal strategies are now (a) laser cooling, (b) non-trivial ground states, (c) time crystals, and (e) cosmic rays. Triplocking is even more interesting now. 12:07:57 I am not sure that these analogies are helpful :-D 12:08:00 maybe they are though 12:08:30 ok 12:08:31 wait 12:08:35 i had an weird idea 12:08:36 what if 12:08:43 for this subset 12:09:01 you had some recursive function that was a type if that makes sense? 12:10:52 Sure. Look at the type of `fix`. IIRC in Haskell it's (A → A) → A. This hints at the idea of a type A which is equivalent to the function type A → A. 12:11:17 ok 12:11:50 This particular kind of infinite type is sometimes called Turing coding. The intuition is that elements of A are programs, and some of them are programs for functions (which operate on programs). 12:12:51 so if you have that predifined 12:12:53 is 12:13:18 .()\_-> then TC? 12:13:26 also 12:13:32 Probably. You'd have to try it and see. 12:13:39 would monads be usefull in this context 12:13:44 like >>= 12:13:47 and >> 12:14:13 Monads would be a way to do I/O. If you haven't yet, look at BLC's I/O too. 12:14:26 ok 12:14:29 BLC? 12:14:40 But if you don't know what a monad is, then don't toss them in without thinking. 12:15:00 yea 12:15:01 Same BLC as the last few times. 12:15:11 isnt if i rember correctly just 12:15:23 if you get an error while doing a function return that function 12:15:27 else return the result 12:16:44 I'm probably not the right person to ask. To me, a monad is fundamentally a functorial concept; you'd need to know what a functor is. 12:17:07 oh ik what a functor is 12:17:24 Like, a monad is what you get from an adjunction of functors. Or a monad is a monoid object in a category of endofunctors (the famous one!) Or a monad is an element of a 2-category. 12:17:42 adjunction? 12:17:49 Oh! Do you know about adjunctions? 12:17:58 no 12:18:16 is that weird(when knwoing about functors) 12:18:36 Nah. But adjunctions are *very* important, so you'll likely see them a lot. It's okay if they don't make sense yet. 12:18:38 korvo: the "monoid in a category of endofunctors" definition was actually helpful for me at one point, although I needed to have some amount of understanding of monads already to get it (and that "endo" is pulling a lot of weight) 12:21:40 ais523: It's definitely the best definition for getting things done once you know your monad's signature. 12:22:04 so what is an adjuction 12:25:33 wWwwW: Okay, so you should look up the definition at some point, but the short idea is that we've got two categories C and D, and we want to connect them. But we don't have an equivalence. 12:25:42 [[User talk:/w/wiki/index.php/Talk:index.php/Main page]] M https://esolangs.org/w/index.php?diff=143056&oldid=143055 * H. H. P. M. P. Cole * (+63) 12:25:49 yes? 12:26:23 Maybe we have parts of equivalences. Like, maybe some of C can be mapped to D such that we can invert the mapping. And maybe we can extend that to a functor from C to D. 12:26:46 yes 12:26:58 And the inverse could be extended to a functor from D to C. So it's not an equivalence, but there's a "center" between them which is an equivalence. 12:27:37 ok, ok 12:28:11 -!- wib_jonas has quit (Ping timeout: 256 seconds). 12:28:41 -!- wib_jonas has joined. 12:28:49 So, that's technically all an adjunction is. It's just the pair of functors. And one of the rules of adjunctions is that, if you compose the functors in one direction, you get a monad. In the other direction, you get a comonad. 12:30:08 Let's put it all together with a "free-forgetful" adjunction. Sets and monoids are adjoint, using the functor that sends a set to its free monoid (which is just the type of *lists* of its elements) and the functor that forgets that a monoid is a monoid (so we just have the *set* of lists of elements). 12:30:28 ok 12:30:46 If we compose these functors, then we get an endofunctor from sets to sets. It's a monad! And it's a familiar one: the list monad, encoding a non-determinism effect. 12:30:47 imma watch the monad vid by a byte of code now 12:31:29 Sure, have fun. Don't worry if it doesn't all come together yet; there's so much to learn. 12:31:41 ok 12:32:39 WAIT 12:32:45 WAITWAITWAITWAITWAIT 12:32:52 MONADS ARE RECURSIVE 12:32:55 EXCUSE ME 12:33:32 also wut 12:33:37 from he video i watched 12:33:46 it looks like a monad is just a function 12:33:53 specificlly for if's or something 12:34:09 wait 12:34:11 so its a type 12:34:21 that works like a 12:34:23 function 12:34:30 holy sh*t 12:34:41 It's a functor with a property, technically. If you think of functors as type constructors, then monads are type constructors too. 12:34:56 ok 12:35:40 (Even more technically, the functor *carries* the monad. And it keeps going: the list type constructor carries two applicative lax functors.) 12:35:52 wait 12:35:53 so isnt 12:36:00 monads TC? 12:36:19 ot atleast TLC with monads 12:37:07 That's literally a category error. A category, not a functor, would have the property of being TC. And most categories we talk about are *not* TC, including the categories we use to talk about programming. 12:37:33 ok 12:38:16 -!- tromp has joined. 12:38:16 That said, you might eventually study Turing categories, which have Turing objects, which are merely things that support that Turing coding from earlier. 12:38:31 ok 12:38:37 also 12:38:42 what is a category error? 12:39:43 The reason we call them "categories" is because a mathematician (Maclane) wanted to mock a philosopher (Aristoteles). That philosopher used "categories" to collect all of the things in the world in distinct ways, so that we wouldn't confuse one thing for another. 12:40:04 lol 12:41:01 In category theory, if we want to relate one thing to another thing structurally, we use a functor. Functors are analogies. 12:41:13 analogies for vat 12:42:45 For whatever you like. One functor you'll encounter eventually is the fundamental group, which is kind of like the analogy that physical objects can have holes. 12:43:01 wait 12:43:03 so i can say 12:43:26 A functor I've recently documented is Conway's law, which is the analogy that a system looks kind of like the people that designed it. 12:43:48 this function M is an analogy for making the category into a haskell program with to parts: a type defintion, and a recursive lambda function 12:44:01 *functor not function 12:44:25 I might need a good cryptography introduction book. I'm not confused by secret key cryptography, which seems to have a maze of a thousand different primitives all alike (I mean the interface for the primitives, not the specific implementations trying to satisfy their requirements). Public key cryptography is even more confusing, but it's clear 12:44:26 enough that I should try to understand secret key cryptography first. 12:44:51 You could do that. You'd have to show that your functor is homomorphic. Usually that means that it acts on each piece indepedently, but the definition varies from category to category. (Can't skip the fundamentals here.) 12:45:07 yea 12:45:53 IIRC homomorphic means that all objects in one "thing" can be mapped to objects in another "thing". in this instancem the firts thing is a category and the second one is the haskell program 12:45:53 You'd also have to deal with the problem that there infamously *isn't* a category of Haskell types. This is a classic sore spot for Haskellers: https://wiki.haskell.org/Hask 12:46:09 why specifically for haskell? 12:48:08 Like, why did they not make it a category? Most programming languages don't give nice categories. Language designers don't really like maths. 12:48:29 [[Special:Log/newusers]] create * Sytra * New user account 12:48:30 unless your a esolang desginer 12:48:33 i think 12:50:17 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=143057&oldid=143022 * Sytra * (+200) 12:50:45 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=143058&oldid=143057 * Sytra * (-1) 12:50:46 korvo: the difficulty seems to be that categories tend to describe total languages, whereas in most cases you want your programming language to be non-total 12:50:48 It's gotten better in the past few years. But you'll see lots of languages that incorporate maths while refusing to acknowledge the limitations proven by maths. 12:51:00 It seems like all the secret key cryptography primitives are similar to entropy extraction, as in they are deterministic functions that take an input and return a short hash that looks like it's pseudorandom as in it was chosen uniformly in the range and independently on any sets of different inputs, except they aren't really but is close enough 12:51:00 that you can pretend they are pseudorandom for practical purposes. Only there are many different variants on this that have restrictions on when exactly you are allowed to pretend that they're pseudorandom, making different assumptions on their input for this etc. So my major problem is that I don't understand why there need to be all those 12:51:01 different restrictions, what the restrictions actually are in specific, and how can you use those primitives safely despite those restrictions. My minor problem is that I don't understand why the primitives seem to only generate short outputs. 12:52:01 i got an horrible esolan idea 12:52:06 ais523: Even in that case, it's only a little bit of effort. Turing categories have Turing codes. Something like f-exprs could be used as those codes. 12:52:14 you have some esolang to proove things bout the esolang itself 12:52:21 but the esolang ALWAYS no matter what 12:52:25 prooves itself wrong 12:52:33 if thats possible 12:52:53 Kernel Lisp is based on f-exprs, and by zero coincidence, its author (Shutt) knew a fair amount of category theory and used it to describe the abstractive limitations of language. 12:53:44 ais523: What really bites about Turing categories is that they don't have working universal properties. Famously: https://james-iry.blogspot.com/2011/05/why-eager-languages-dont-have-products.html 12:55:03 wib_jonas: It's probably zero comfort, but all the rules are cargo-culted. It's an open question whether one-way functions from P to NP exist, let alone whether SHA or AES are examples. 12:55:39 And yeah, you're hitting at the heart of the situation: is pseudorandomness actually computationally hard to examine, or is there a trick to it? 12:56:28 For public key cryptography I don't understand the relation between two different styles: one is public key encryption where you can encrypt data using a public key but you can only decrypt it with the secret key, and can't decrypt knowing just the public key; the other is Diffie-Helman key exchange, where two keypairs are used such that you can 12:56:28 compute the same value from either the first secret key and the second public key or the second secret key and the first public key, but you can't get that value from just the two public keys. 12:56:31 wWwwW: Yes. But you might want to take a step back and think about whether you really want to write a proof language. I don't know if we have any examples on the wiki that would inpsire you. 12:56:44 yea 12:56:54 but like idk how to do it 12:56:57 i would need help 12:56:59 a lot 12:57:09 but i rlly want to do it beforew somebody else does it 12:57:25 also i would name it: "hypocrypt" or however you spell it 12:57:28 you might want to learn a non-esoteric proof language 12:57:41 like 12:57:44 uuuuh 12:57:47 that math mode thing 12:57:52 I think Agda, despite being one of the harder ones to use, is one of the mathematically clearest as to what is going on 12:57:59 korvo: sure, but my question isn't whether the primitives are actually pseudorandom enough, that'd be the cryptanalitic level question. I'd like to understand the user side, which is what goals the primitives are trying to satisfy, and what that implies about how I should use them for higher-level operations. 12:59:00 wib_jonas: Think of the first style as sealing an envelope (classic 80s metaphor) or packing a box (2000s metaphor, used in libsodium). The second style is really a different primitive, key exchange, and it should be compared with stuff like PAKE rather than envelope/box primitives. 12:59:44 wib_jonas: so I think the fundamental problem is that the easiest-to-work-with primitive is the stream cipher, *but* it is quite hard to create secure stream ciphers, so normally the primitive is a block cipher and there's an attempt to convert it to a stream cipher somehow 13:00:03 and there have historically been a lot of attempts to do that that turned out to be incorrect 13:00:29 can you help me korvo? plz(idk) 13:01:21 ais523: ok, but then I probably need a book to tell me what stream cipher and block cipher mean specifically to understand that 13:01:54 wib_jonas: Ah, do you have examples? I can make guesses. Like, hash truncation is usually okay unless the hash is weirdly formatted, as in UUID. Compression happens before encryption but can sometimes weaken it; more generally, there's the Cryptographic Doom Principle, which books don't teach. 13:02:20 wWwwW: I already have a proof language I'm avoiding writing. 13:02:35 so a stream cipher is basically a seeded random number generator – in order to use one of those for (symmetric-key) encryption, you need to seed it with a) a symmetric key and b) a random number (to prevent replay attacks) 13:02:38 for my concept specifically 13:02:40 but also coo 13:02:41 korvo: it seems like for at least some practical things in public key crypto, you can use either public key encryption or DH exchange, but how interchangable or equivalent are the two? 13:02:44 *cool 13:02:58 Also, "before somebody else does it" isn't really inspiring to me. I would *love it* if somebody wrote all the languages and toolchains for me and I didn't have to build any more of them, but that's not gonna happen. 13:03:22 i just mean 13:03:24 but there are various requirements considered important for it to be secure in practice, e.g. you can't predict the key from the output and the random number (which is called the "nonce"), and you can't predict previous output from its current internal state 13:03:28 to elaborate on that sentence 13:03:49 before some body else does it so i seem uncreative to myself and others as ive beemn told my esolang are unoriginal 13:04:23 wib_jonas: It's really hard for me to imagine interchanging them. Often they complement each other, as in TLS or SSH, or more recently in Magic Wormhole (insert PAKE passphrase, transfer file from one computer to another) 13:04:37 I can't remember the full list of requirements and, as korvo says, some of them are probably cargo-cult requiremetns 13:06:18 a block cipher is basically a function from an n-bit input (for some fixed n) to an n-bit output, that behaves like it's either a) randomly generated or b) a randomly generated bijection 13:06:44 and block ciphers have no real advantage other than that they're apparently easier to make than stream ciphers, and a lot of research has gone into how you create a stream cipher from a block cipher 13:07:25 ah no, block ciphers have larger input than output, it's not just an n-bit input but a pair of an n-bit input and a k-bit input 13:07:38 or, hmm 13:07:40 now I'm confused 13:07:45 wWwwW: No worries. You're not expected to be original yet at your level of study. You might find https://plzoo.andrej.com/ interesting. 13:07:48 I think I am confusing the cipher, with the permutation it's built from 13:08:13 ok 13:08:17 ill still make it tho 13:08:18 lol 13:08:22 korvo: fwiw I couldn't do category theory until halfway through my PhD, and even by the end of it I found it hard to think about 13:08:30 I keep getting confused between different levels of abstraction that act similarly 13:08:36 im still 13:08:38 in 13:08:55 public school...and im 13 13:09:07 is it normal for me to be this deep already? 13:09:08 e.g. the exponentiation-like operation in a Cartesian-closed category is quite similar to a function operation, but they aren't the same thing and although I conceptually know how they are different, I get confused when trying to reason about it 13:09:48 ais523: I think you've got it all right. We have one proven way of doing stream ciphering (one-time pads), one proven way of doing block ciphering (Feistel networks), and a series of constructions bridging the two styles. 13:10:47 ais523: I don't think I understood category theory until ekmett explained it to me on the back of a bus at a Google Summer of Code retreat. Even then I didn't understand why mathematicians cared about it until I started on my Russellian Lojban project. 13:11:10 what a moment 13:11:12 XD 13:11:52 wWwwW: There's some things I'd expect, like writing some small programs to help with homework or video games or household tasks. But nah, you're not in that deep yet and you're still learning. 13:12:24 phew 13:12:48 so obviously, if there is a publicly-known random oracle, you can make that into a stream cipher just by giving it the key, nonce and byte position within the output to create a one-time pad 13:13:04 which means that the basic problem of cryptography is to find things that work like random oracles 13:13:27 korvo: 13-year-old me was very overconfident in their programming abilities 13:13:38 lol 13:14:35 korvo: it seems like DH exchange is more powerful than public key encryption, because it seems like to emulate public key encryption, you generate a random keypair, do a DH exchange with your secret key and the recipient's public key, and use the resulting value as entropy to generate a symmetric key, the recipient will be able to reproduce the 13:14:36 same symmetric key from the public key that you have (which you send with the message) and their secret key. http://www.noiseprotocol.org/ does this in its simplest version, which is the N handshake pattern, and its more complex versions also use DH primitives to send secret messages (though also for authentication). 13:14:42 ais523: Well, if you're who I think you are, you made the news. Unlike you or Terry Tao, I only placed like third in the math olympiads, and by the time I was 13, I was merely programming my TI-84 to solve triangles. 13:14:50 Y'all're the professors; I'm a dropout. 13:15:09 korvo: I think I was older than that when I made the news 13:15:18 but I am not going to claim that DH exchange is definitely always more powerful than public key encryption, only that it seems like that from a high-level view, and I may not understand some details that change this 13:15:52 its hell to be even a little bit of a techy/nerd at my age in dnemark 13:15:56 *denmark 13:16:43 wWwwW: no idea, we regulars are old and barely had internet access and certainly did not have Haskell when we were 13 years old 13:17:11 its more of a bullying problem 13:17:12 lol 13:17:21 when I was younger, my main programming languages were first various BASICs, then VBA for Excel 13:17:29 after a while I moved onto "C++" but actually basically C 13:17:30 wib_jonas: Yes! You're totally right. This is a super-subtle nuance. I don't have a good reference, but "Impagliazzo's five worlds" are five different answers to P vs NP, and two of them only differ in whether DH kex is possible. 13:18:02 https://blog.computationalcomplexity.org/2004/06/impagliazzos-five-worlds.html will have to do. 13:18:23 I should write an nLab article about this, maybe. They're still sore at me for the article on Conway's law. 13:19:14 wWwwW: I had that issue too when I was younger – changing from primary to secondary school helped a lot, so did finding a friend group who was happy to just stand around and talk about random things but had sufficient numbers to deter bullies from getting involved 13:19:51 i have no freinds everybody hates me and calls me weird 13:19:57 lol 13:20:27 that was me in primary school, I think? 13:20:40 i cant got out 13:20:44 im very insocial 13:20:52 I AM A HORRIBLE BREED OF BRAIN 13:20:53 l.ol 13:21:10 korvo; HEY! I'm a dropout too, not a professor 13:21:22 I partly solved it by learning about subjects that the other children in school wanted to talk about 13:22:04 i know basically every subject. thats not sport. denmark is very known as "the hooligan nation" i think i dont like football so its just impossible 13:22:22 korvo: re Impagliazzo's five worlds, than you, I'll have to look at that 13:22:24 wWwwW: Look up "tall poppy syndrome" and "law of jante". It's not your fault. 13:22:36 wib_jonas: well, I'm unemployed at the moment – I burned out just before Covid hit, and although I'm gradually recovering, I still have weeks at a time when I don't really feel up to doing anything 13:22:38 it isnt? 13:22:44 -!- impomatic has joined. 13:23:07 it's like I have reserves of concentration which burn out whenever I do anything, and take days to weeks to recover 13:23:18 so I'm scared to get a job in case I find myself unable to do it 13:23:53 korvo re: for tall poppy syndrome i dont think it applies. i try not to brag to the people in my school. i try atleast 13:24:34 people used to ask me random mental arithmetic questions in the corridor all the time, which I think may have been technically a form of bullying? or maybe they were just interested to see if I could do it 13:24:55 I am quite good at mental arithmetic, and am not sure which direction the correlation goes (i.e. whether I learned it because people assumed I was good at it or vice versa) 13:25:23 pope as a joke ask me nonsensical math as a joke 13:25:26 rlly annoys me 13:25:36 wWwwW: "law of jante" would be the right one for Danes. It's not you, it's peer pressure. 13:25:53 ais523: I can understand that, though I'm not quite in the same situation, instead I do have a job but it's not a very technical one, and even with it I feel like I don't have any energy for hobby stuff or learning, but I also wouldn't have energy for hobby without a job because a dayjob that requires me to show up in the office on most workdays 13:25:54 helps a lot with having a regular daily routine. 13:25:56 yes 13:26:09 do note that like 13:26:17 i also have an extreme 13:26:23 autism borhter 13:26:27 *brother 13:26:31 im bullied ofr him 13:26:44 ppl thinks im weird cuz my borhter has a mental condition 13:28:16 "random mental arithmetic questions in the corridor " => that's new to me, I don't remember that specific form of bullying 13:28:59 that was secondary school, after I already had a reputation for being good at maths 13:29:14 unless perhaps you count back when my grandmother tried to drill the multiplication table with me until I finally learned what 7*6 and 7*8 and 7*9 are 13:29:59 to be fair, the basic 100 digit×digit multiplications are one of the few pieces of mathematical facts which are really worth memorising 13:30:37 yes, that's why I don't count as bullying, even if it might not have been the most effective method to teach me 13:30:37 in most cases it is best to learn the underlying rules rather than trying to remember facts individually, but the digit multiplications are so important that learning them by rote as a child is the best way to do it 13:32:18 -!- craigo has joined. 13:35:18 ont eh discussion of is \_(.)-> tc i have a prioblem 13:35:25 wait no i dont 13:36:42 wait i do 13:37:23 [[Deadfish/Implementations (M-Z)]] https://esolangs.org/w/index.php?diff=143059&oldid=142025 * Cocosbeans * (+207) /* Racket */ 13:37:31 aaaaaah 13:47:18 wait 13:47:31 cant you just make a esolang by saying this is the axioms 13:47:38 and typeing out some random bullsh*t 13:47:46 like techically 13:47:52 would it be a *good* esolang, though? 13:48:06 thats bascially what https://esolangs.org/wiki/Post_canonical_system is right? 13:48:11 like, normally esolangs are constructed for some purpose 13:48:13 ais523: simply no 13:48:26 it would bu a stupid joke tho 13:49:30 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine). 13:49:58 -!- Lord_of_Life has joined. 13:51:02 there have been a couple of attempts to make languages whose behaviour changes, e.g., every day 13:51:11 yea ik 13:51:12 which is similar in spirit to a randomly generated esolang 13:51:17 but I don't think any of them worked very well 13:51:20 yes 13:52:44 [[HAHAHA]] N https://esolangs.org/w/index.php?oldid=143060 * Yayimhere * (+392) Created page with "'''HAHAHA''' is a joke esolang by [[User:Yayimhere]] == axioms(only way to do computation == these are the axioms: fdhsatuivjsaiduagjfds gfvsgyutudtyureqwww >>>>>>>>>>>>>>>><>> (.).(.).(.).(''n'')=(.''n'') ''n''[][] ''n''! = ''n'' AAAAAAAAAA''n''''n'' where ''n'' 13:52:52 this is what i tried 13:52:59 complete bullshit but idc 13:53:02 lol 13:53:50 [[HAHAHA]] https://esolangs.org/w/index.php?diff=143061&oldid=143060 * Yayimhere * (+69) /* axioms(only way to do computation */ 13:55:03 [[HAHAHA]] https://esolangs.org/w/index.php?diff=143062&oldid=143061 * Yayimhere * (+5) /* axioms(only way to do computation */ 13:55:41 [[HAHAHA]] https://esolangs.org/w/index.php?diff=143063&oldid=143062 * Yayimhere * (+32) /* axioms(only way to do computation lol) */ 13:55:48 ok 13:55:49 now 13:55:55 how to code anything in this 13:55:56 idk 13:56:04 do you know(lol) 13:56:39 so the problem with these esolangs, is that most people who program esolangs do so because they're looking for interesting or important problems to solve 13:56:48 but randomly generated problems usually aren't interesting to solve 13:56:54 true 13:57:41 [[Joke language list]] https://esolangs.org/w/index.php?diff=143064&oldid=143005 * Yayimhere * (+13) /* General languages */ 13:59:19 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 14:08:13 [[]] N https://esolangs.org/w/index.php?oldid=143065 * Yayimhere * (+444) Created page with "''''''(pronounced true) is an very simple esolang created by [[User:Yayimhere]] which is based on [[HAHAHA]]. it was created since no other esolangs create esolangs from random bullshit == syntax == a program is made up of a python list, full of strings(without quotes) and th 14:08:29 now i made this 14:08:30 ... 14:08:36 theres something wrong with me lol 14:11:38 "behaviour changes, e.g., every day" => I've seen two of these, and they seem like joke, but the kind of joke that's worth to make once just so you know it's possible. One is https://esolangs.org/wiki/2014 , a language that only works until a certain cutoff date, which in that case was just a day after the publication. The other is Acme::Current, a 14:11:39 perl module with a function that tells you the current date, but it just hardcodes that date, and every day a new version is released with the next date hardcoded – though this soon got toned down to just one version that you have to reinstall every day. 14:14:15 theres also TMMLPTEALPAITAFNFAL 14:16:38 I should tell a bit about the motivation for why I'm trying to look at symmetric crypto. Obviously authentication and encryption are important and can matter for me too, but those aren't the only kinds of high-level tasks that I want to do. I was thinking of a seeded video game, with a game world quasi-infinite, i.e. so large that you can't 14:16:39 generate all of it, but can be generated locally, i.e. multiple servers that share a secret seed but can't communicate generate a world consistent among the servers regardless of what order the adversarial players explore it, and the players (who don't have the secret seed) can't predict certain things in the world without asking a server about it. 14:17:44 wib_jonas: NH4 does something similar to that, with each level having its own seed so that they can be generated out of order in seeded games 14:20:09 The primitive under this is a deterministic quasi-random function, which takes the secret seed and a context, and give a number that seems uniform and independent among different contexts to the player who doesn't know the seed. But the actual world needs a layer over this, because nearby locations in the world are not independent, it's just that 14:20:09 each part of the world is close to independent of everything far enough from that location, you effectively generate it by generating some underlying randomness in a large enough environment around the location and compute the location in a way that the underlying randomness farther from what you've taken into account either can't influence the 14:20:10 world at that location, or it's at least exponentially (in the radius that you look at) unlikely that they influence the world at this location. 14:20:15 ais523: right 14:21:18 so libsodium recently added a high-level function that seems to be suitable for this, https://doc.libsodium.org/key_derivation/hkdf#incremental-entropy-extraction 14:22:27 for a video game in practice it's usually simpler to *not* do this, by either having the servers communicate, or by making the world small enough that each server can generate all of it (Spelunky 2 does the latter) 14:23:37 and this probably applies to me as well, as in I can probably use approximations like that, but I'm still interested in how to do this sort of thing well in theory 14:35:48 -!- wWwwW has quit (Quit: Client closed). 14:36:17 -!- wWwwW has joined. 14:36:39 i like weird machines. i did a weird machine for music today 14:38:50 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine). 14:38:52 but 14:39:23 could you make a weird machine in say True 14:39:41 -!- Lord_of_Life has joined. 14:39:55 [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=143066&oldid=142990 * Yayimhere * (+23) /* esolangs */ 14:41:06 [[]] https://esolangs.org/w/index.php?diff=143067&oldid=143065 * Yayimhere * (+163) /* syntax */ 14:50:22 -!- Sgeo has joined. 14:51:43 -!- amby has joined. 14:56:29 [[Special:Log/newusers]] create * Dolphy * New user account 14:59:19 [[FLOLCODE]] https://esolangs.org/w/index.php?diff=143068&oldid=143031 * MihaiEso * (+0) /* STRING */ 15:06:22 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=143069&oldid=143058 * MihaiEso * (-43481) Archived old discussions to clean-up page. 15:06:31 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine). 15:07:20 [[Esolang:Introduce yourself/Archive (01-12-2023 to 31-08-2024)]] N https://esolangs.org/w/index.php?oldid=143070 * MihaiEso * (+43684) Archived old discussions, from 1 December 2023, up to 31 August 2024. From [[Esolang:Introduce yourself]] 15:07:21 -!- Lord_of_Life has joined. 15:09:37 -!- Lord_of_Life has quit (Excess Flood). 15:12:10 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=143071&oldid=143069 * Dolphy * (+129) 15:13:37 -!- Lord_of_Life has joined. 15:35:35 [[FLOLCODE]] https://esolangs.org/w/index.php?diff=143072&oldid=143068 * MihaiEso * (+16) /* Types */ 16:03:51 -!- tromp has joined. 16:13:48 -!- tromp has quit (Read error: Connection reset by peer). 16:14:18 -!- wib_jonas has quit (Quit: Client closed). 16:26:13 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine). 16:30:30 -!- Lord_of_Life has joined. 16:37:23 -!- wWwwW has quit (Quit: Client closed). 16:47:57 -!- wWwwW has joined. 16:56:56 -!- impomatic has quit (Quit: Client closed). 17:01:15 -!- wWwwW has quit (Quit: Client closed). 17:21:36 -!- X-Scale has joined. 17:23:15 -!- impomatic has joined. 17:30:15 -!- wWwwW has joined. 17:54:56 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine). 17:59:41 -!- X-Scale has quit (Ping timeout: 256 seconds). 18:28:06 -!- ais523 has quit (Quit: quit). 18:32:29 -!- Lord_of_Life has joined. 18:40:02 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine). 18:40:35 -!- Lord_of_Life has joined. 18:43:44 -!- Lord_of_Life has quit (Client Quit). 18:44:11 -!- Lord_of_Life has joined. 18:49:52 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine). 18:51:46 -!- Lord_of_Life has joined. 18:53:31 -!- wWwwW has quit (Ping timeout: 256 seconds). 18:54:43 -!- Lord_of_Life has quit (Client Quit). 18:55:12 -!- Lord_of_Life has joined. 19:36:24 -!- impomatic has quit (Quit: Client closed). 19:43:21 [[User:Ractangle]] https://esolangs.org/w/index.php?diff=143073&oldid=143025 * Ractangle * (+22) /* Programm forms */ 20:02:52 [[Fysh]] M https://esolangs.org/w/index.php?diff=143074&oldid=143052 * Pointless * (+20) Change wording from "Our" to "The" 20:03:55 [[Fysh]] M https://esolangs.org/w/index.php?diff=143075&oldid=143074 * Pointless * (+1) Change wording from "Our" to "The" 20:22:51 [[Fysh]] M https://esolangs.org/w/index.php?diff=143076&oldid=143075 * Pointless * (+1) added spacing below option 3: using command line 21:03:10 [[Joke language list]] M https://esolangs.org/w/index.php?diff=143077&oldid=143064 * PythonshellDebugwindow * (+0) /* General languages */ Sort 21:04:20 [[HAHAHA]] M https://esolangs.org/w/index.php?diff=143078&oldid=143063 * PythonshellDebugwindow * (+50) Stub, categories 21:06:28 [[]] M https://esolangs.org/w/index.php?diff=143079&oldid=143067 * PythonshellDebugwindow * (+79) Stub, categories 21:08:17 -!- ais523 has joined. 21:14:25 -!- amby has quit (Remote host closed the connection). 21:37:38 -!- amby has joined. 22:11:31 [[User:H. H. P. M. P. Cole/Modulo 2]] M https://esolangs.org/w/index.php?diff=143080&oldid=143009 * H. H. P. M. P. Cole * (-2) 22:20:04 [[User:H. H. P. M. P. Cole/Modulo 2]] M https://esolangs.org/w/index.php?diff=143081&oldid=143080 * H. H. P. M. P. Cole * (+161) /* All possible small programs */ 22:47:38 -!- ais523 has quit (Quit: quit).