←2024-10-09 2024-10-10 2024-10-11→ ↑2024 ↑all
00:06:34 <zemhill> web.ais523_stealth4: points 10.07, score 33.06, rank 5/47 (+1)
00:12:54 <korvo> I wonder what's being computed. I hope it's a ray tracer making a beautiful video.
00:19:58 <int-e> if you're wondering about zemhill, see https://zem.fi/bfjoust/
00:20:28 <int-e> fizzie resurrected the bot... today I think. well, yesterday for me.
01:01:17 -!- X-Scale has joined.
01:02:31 <esolangs> [[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 <esolangs> [[LOLCODE]] M https://esolangs.org/w/index.php?diff=142985&oldid=134041 * PythonshellDebugwindow * (+5) Categories
02:59:59 <esolangs> [[]] M https://esolangs.org/w/index.php?diff=142986&oldid=142785 * ZCX islptng * (+3941) changed the quine, now it's correct
03:02:03 <esolangs> [[User talk:ZCX islptng]] https://esolangs.org/w/index.php?diff=142987&oldid=142940 * ZCX islptng * (+173)
03:09:12 <esolangs> [[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 <korvo> int-e, fizzie: Cool, thanks.
04:32:48 <korvo> Probably not a good sign that I've reacted by sketching wave equations for the tape.
04:47:52 <esolangs> [[Special:Log/newusers]] create * H. H. P. M. P. Cole * New user account
04:48:55 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=142989&oldid=142635 * Yayimhere * (+12) /* esolangs */
04:49:16 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=142990&oldid=142989 * Yayimhere * (+2) /* esolangs */
04:57:03 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=142991&oldid=142918 * H. H. P. M. P. Cole * (+333)
04:57:45 <esolangs> [[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 <esolangs> [[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 <esolangs> [[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 <code> p ' 0 1 + ( ) </code>"
05:03:03 -!- X-Scale has quit (Quit: Client closed).
05:15:26 <esolangs> [[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 <esolangs> [[Translated ORK/None1 again7]] https://esolangs.org/w/index.php?diff=142996&oldid=142793 * MihaiEso * (+1053)
05:17:18 <esolangs> [[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 <esolangs> [[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 <esolangs> [[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 <esolangs> [[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: <pre> 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 </pre> 2. Translate: Baid
05:22:53 <esolangs> [[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 <esolangs> [[Joke language list]] https://esolangs.org/w/index.php?diff=143002&oldid=142702 * MihaiEso * (+122) /* Horribly translated variants */
05:25:55 <esolangs> [[Special:Log/move]] move * MihaiEso * moved [[Translated ORK/Mihai again7]] to [[Translated ORK/Mihai Again7]]: Misspelled title
05:26:10 <esolangs> [[Joke language list]] https://esolangs.org/w/index.php?diff=143005&oldid=143002 * MihaiEso * (+0) /* Horribly translated variants */
05:26:21 <esolangs> [[Translated ORK/None1 again7]] https://esolangs.org/w/index.php?diff=143006&oldid=142996 * MihaiEso * (+0) /* Contrast */
05:28:56 <esolangs> [[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 <esolangs> [[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 <esolangs> [[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 <esolangs> [[Hashell]] https://esolangs.org/w/index.php?diff=143010&oldid=142939 * Yayimhere * (+192) /* operators */
06:39:30 <esolangs> [[User:ZCX islptng/Sandbox]] M https://esolangs.org/w/index.php?diff=143011&oldid=142925 * ZCX islptng * (+77) uhhhhhhhh
06:40:52 <esolangs> [[User:ZCX islptng/Sandbox]] M https://esolangs.org/w/index.php?diff=143012&oldid=143011 * ZCX islptng * (+13)
06:44:46 <esolangs> [[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 <korvo> !ztest gauss3 (-----+++----+++++---++++)*5050
06:50:11 <zemhill> korvo.gauss3: points -17.83, score 8.19, rank 47/47
06:56:03 <korvo> !ztest gauss_pair (>+++--++---+++--++---<-----+++----+++++---++++)*2632
06:56:04 <zemhill> korvo.gauss_pair: points -27.33, score 4.59, rank 47/47
07:04:16 -!- tromp has joined.
07:08:50 <esolangs> [[User talk:ZCX islptng]] https://esolangs.org/w/index.php?diff=143014&oldid=142987 * ZCX islptng * (-173)
07:12:01 <esolangs> [[User talk:None1]] M https://esolangs.org/w/index.php?diff=143015&oldid=142094 * ZCX islptng * (+185)
07:26:12 <esolangs> [[User:Ractangle]] https://esolangs.org/w/index.php?diff=143016&oldid=142966 * Ractangle * (+75) /* Programm forms */
07:26:42 <b_jonas> `addwhatis ztest(1perlbot) compute performance of a bfjoust program against current hill without adding it to the hill
07:26:44 <HackEso> Traceback (most recent call last): \ File "/hackenv/bin/addwhatis", line 21, in <module> \ 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 <b_jonas> huh
07:27:08 <b_jonas> oh yeah
07:27:14 <b_jonas> `addwhatis ztest(1perlbot) - compute performance of a bfjoust program against current hill without adding it to the hill
07:27:17 <HackEso> addwhatis: added 'ztest(1perlbot)'
07:27:39 <b_jonas> `addwhatis zjoust(1perlbot) - add bfjoust program to current hill
07:27:42 <HackEso> addwhatis: added 'zjoust(1perlbot)'
07:27:54 <b_jonas> `prefixes
07:27:56 <HackEso> 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 <korvo> 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 <esolangs> [[Esolang:Community portal]] https://esolangs.org/w/index.php?diff=143017&oldid=142666 * B jonas * (+9)
07:40:59 <esolangs> [[Zemhill]] N https://esolangs.org/w/index.php?oldid=143018 * B jonas * (+22) Redirected page to [[BF Joust]]
08:21:17 <esolangs> [[Special:Log/newusers]] create * Pointless * New user account
08:24:20 <esolangs> [[Special:Log/upload]] overwrite * Ractangle * uploaded a new version of "[[File:The dark reader at home.jpg]]"
08:24:48 <esolangs> [[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 <esolangs> [[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 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=143022&oldid=142991 * Pointless * (+303) /* Introductions */
08:41:43 <esolangs> [[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 <zemhill> 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 <esolangs> [[User:Ractangle]] https://esolangs.org/w/index.php?diff=143024&oldid=143016 * Ractangle * (-24)
09:30:50 <esolangs> [[User:Ractangle]] https://esolangs.org/w/index.php?diff=143025&oldid=143024 * Ractangle * (+24)
09:34:52 <fizzie> 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 <fizzie> (Not sure if that's true or not, never gotten into BF Joust beyond the implementation side of things.)
09:35:52 <esolangs> [[Fysh]] https://esolangs.org/w/index.php?diff=143026&oldid=143023 * MihaiEso * (-20) /* Option 2: Using Command Line */
09:37:20 <esolangs> [[Fysh]] https://esolangs.org/w/index.php?diff=143027&oldid=143026 * MihaiEso * (+59) /* */
09:44:06 <esolangs> [[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 <korvo> 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 <esolangs> [[FLOLCODE]] https://esolangs.org/w/index.php?diff=143029&oldid=142984 * MihaiEso * (+0) /* Functions */
10:03:12 <esolangs> [[FLOLCODE]] https://esolangs.org/w/index.php?diff=143030&oldid=143029 * MihaiEso * (+1) /* Keywords */
10:04:03 <esolangs> [[FLOLCODE]] https://esolangs.org/w/index.php?diff=143031&oldid=143030 * MihaiEso * (-1) /* Numerical types */
10:08:25 <esolangs> [[Fysh]] https://esolangs.org/w/index.php?diff=143032&oldid=143027 * Pointless * (+4117)
10:08:45 <esolangs> [[Fuckscript]] https://esolangs.org/w/index.php?diff=143033&oldid=126493 * MihaiEso * (-2) /* Implementation */ Actually implemented.
10:10:10 <esolangs> [[Fysh]] https://esolangs.org/w/index.php?diff=143034&oldid=143032 * Pointless * (+25) /* Optional Visuals */
10:10:44 <esolangs> [[Fysh]] https://esolangs.org/w/index.php?diff=143035&oldid=143034 * MihaiEso * (+66) Someone deleted the categories, so I restored it.
10:10:45 <esolangs> [[Fysh]] https://esolangs.org/w/index.php?diff=143036&oldid=143035 * Pointless * (-6) /* Increment */
10:11:01 <esolangs> [[Fysh]] https://esolangs.org/w/index.php?diff=143037&oldid=143036 * Pointless * (-2) /* Integers */
10:11:25 <esolangs> [[Fysh]] https://esolangs.org/w/index.php?diff=143038&oldid=143037 * Pointless * (-3) /* Arrays and Traversal */
10:11:40 <esolangs> [[User:Pointless]] N https://esolangs.org/w/index.php?oldid=143039 * MihaiEso * (+26) Created page with "Someone who does [[Fysh]]."
10:11:50 <esolangs> [[Fysh]] https://esolangs.org/w/index.php?diff=143040&oldid=143038 * Pointless * (-3) /* Logical Shift Operations */
10:13:01 <esolangs> [[Fysh]] https://esolangs.org/w/index.php?diff=143041&oldid=143040 * Pointless * (-1) /* How to Compile and Run Fysh */
10:13:53 <esolangs> [[Fysh]] https://esolangs.org/w/index.php?diff=143042&oldid=143041 * Pointless * (-6) /* if Statements: The Happy Fysh > */
10:14:39 <esolangs> [[Fysh]] https://esolangs.org/w/index.php?diff=143043&oldid=143042 * Pointless * (-13) /* Conditional Statements */
10:19:47 <esolangs> [[Fysh]] M https://esolangs.org/w/index.php?diff=143044&oldid=143043 * Pointless * (+4) added spacing between chapters
10:24:13 <esolangs> [[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 <esolangs> [[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 <esolangs> [[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 <ais523> 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 <ais523> 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 <ais523> 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 <korvo> ais523: From studying the dynamics in terms of mechanics, I'm noticing that there's no nemeses, even adaptively.
11:16:45 <korvo> 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 <ais523> there are some programs that do a substantial amount of observation, e.g. anticipation2 (which does work by measuring the delay)
11:18:29 <korvo> Oh, yeah, of course. They're looking for indirect evidence of their opponent.
11:18:32 <esolangs> [[Fysh]] M https://esolangs.org/w/index.php?diff=143048&oldid=143045 * None1 * (+0) /* Decrement */ Not*, but-
11:19:41 <ais523> several programs intentionally work by setting a cell to a nonzero value, then waiting there until it becomes zero
11:21:01 <korvo> 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 <ais523> 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 <korvo> Sure. But it's all measured based on assumptions about access patterns, right?
11:25:02 <ais523> no – it's based on the win condition
11:25:05 <esolangs> [[Fysh]] M https://esolangs.org/w/index.php?diff=143049&oldid=143048 * None1 * (+22) /* External Resources */
11:25:16 <ais523> to win you have to hold the opponent's flag at zero for two cycles before moving on
11:25:47 <ais523> 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 <korvo> But you only know that the opponent *was* at the tripwire.
11:26:27 <ais523> oh, you don't know they're going to move to the right after clearing it, indeed
11:26:41 <ais523> but, you also don't really care
11:26:47 <ais523> !zjoust simple_rush (>)*5+++(<(+)*40)*4(>)*7(>[(+)*5[-]])*21
11:26:47 <zemhill> ais523.simple_rush: points -9.02, score 12.91, rank 42/47
11:28:11 <esolangs> [[Fysh]] M https://esolangs.org/w/index.php?diff=143050&oldid=143049 * None1 * (+45)
11:28:20 <ais523> 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 <korvo> 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 <esolangs> [[Fish]] https://esolangs.org/w/index.php?diff=143051&oldid=141375 * None1 * (+31)
11:29:13 <ais523> 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 <esolangs> [[Fysh]] M https://esolangs.org/w/index.php?diff=143052&oldid=143050 * None1 * (+29) /* External Resources */ TC (easy to implement brainfuck)
11:35:24 <korvo> I don't feel like the current strategies describe a solved game, but maybe I've not thought about it enough.
11:36:57 <korvo> 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 <korvo> 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 <korvo> 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 <ais523> well, it is usually possible to counter-build against a specific program if you want to beat that program in particular
11:41:12 <ais523> e.g. by recognising the decoy setup
11:41:48 <ais523> 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 <ais523> 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 <fizzie> 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 <korvo> 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 <ais523> 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 <ais523> 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 <ais523> 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 <wWwwW> isnt haskell `\_.`  TC?
11:47:47 <ais523> wWwwW: no, Haskell is statically typed
11:48:11 <wWwwW> wat?
11:48:22 <korvo> You need some sort of recursion in the names. For Haskell, that comes from `let`, `where`, or top-level bindings.
11:48:47 <wWwwW> also isnt . as a lambda expression just...B from BCKW?
11:48:50 <ais523> wWwwW: untyped lambda calculus is TC, but simply typed lambda calculus isn't on its own
11:48:53 <korvo> 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 <wWwwW> ok
11:49:15 <ais523> wWwwW: oh, you would need parentheses to make that work
11:49:24 <wWwwW> ok
11:49:26 <ais523> also you need -> to even be able to write a syntactically correct lambda
11:49:46 <wWwwW> so `\_.()->`?
11:50:09 <korvo> And yes, Haskell (.) is the B combinator (or maybe its flip?)
11:50:23 <wWwwW> since
11:50:38 <wWwwW> for f(.)g = f (g x)
11:50:43 <wWwwW> where x is the funciton input
11:51:44 <ais523> I think \_.()-> still has no way to write a fix
11:51:53 <korvo> 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 <wWwwW> fix?
11:51:59 <ais523> also, a while back oerjan told me that SKI+fix is not TC in a simply typed lambda calculus
11:52:13 <ais523> wWwwW: like the lambda calculus version of a loop
11:52:20 <wWwwW> ok
11:52:30 <wWwwW> what if you also have = and variable names
11:52:37 <korvo> 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 <wWwwW> ik what recusion does
11:53:04 <wWwwW> it "loops"
11:53:18 <korvo> Okay. Do you see why simply-typed calculi don't "loop"?
11:53:31 <wWwwW> OOOOOOH
11:53:34 <wWwwW> fu-
11:53:40 <ais523> 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 <ais523> 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 <korvo> wWwwW: As a follow-up, have you heard the phrase "infinite type" yet?
11:54:12 <esolangs> [[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 <wWwwW> nooooo but i would guess its a type that holds all types?
11:56:18 <korvo> A type that contains itself.
11:56:35 <wWwwW> oh
11:56:38 <wWwwW> well
11:56:42 <wWwwW> does haskell have that
11:56:46 <wWwwW> ?
11:57:28 <ais523> 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 <korvo> 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 <korvo> Yeah, and Haskell's long had the more basic W-types. Famously Haskell has infinite lists.
11:59:49 <esolangs> [[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 <korvo> 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 <esolangs> [[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 <korvo> 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 <korvo> 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 <korvo> 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 <ais523> I am not sure that these analogies are helpful :-D
12:08:00 <ais523> maybe they are though
12:08:30 <wWwwW> ok
12:08:31 <wWwwW> wait
12:08:35 <wWwwW> i had an weird idea
12:08:36 <wWwwW> what if
12:08:43 <wWwwW> for this subset
12:09:01 <wWwwW> you had some recursive function that was a type if that makes sense?
12:10:52 <korvo> 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 <wWwwW> ok
12:11:50 <korvo> 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 <wWwwW> so if you have that predifined
12:12:53 <wWwwW> is
12:13:18 <wWwwW> .()\_-> then TC?
12:13:26 <wWwwW> also
12:13:32 <korvo> Probably. You'd have to try it and see.
12:13:39 <wWwwW> would monads be usefull in this context
12:13:44 <wWwwW> like >>=
12:13:47 <wWwwW> and >>
12:14:13 <korvo> Monads would be a way to do I/O. If you haven't yet, look at BLC's I/O too.
12:14:26 <wWwwW> ok
12:14:29 <wWwwW> BLC?
12:14:40 <korvo> But if you don't know what a monad is, then don't toss them in without thinking.
12:15:00 <wWwwW> yea
12:15:01 <korvo> Same BLC as the last few times.
12:15:11 <wWwwW> isnt if i rember correctly just
12:15:23 <wWwwW> if you get an error while doing a function return that function
12:15:27 <wWwwW> else return the result
12:16:44 <korvo> 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 <wWwwW> oh ik what a functor is
12:17:24 <korvo> 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 <wWwwW> adjunction?
12:17:49 <korvo> Oh! Do you know about adjunctions?
12:17:58 <wWwwW> no
12:18:16 <wWwwW> is that weird(when knwoing about functors)
12:18:36 <korvo> 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 <ais523> 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 <korvo> ais523: It's definitely the best definition for getting things done once you know your monad's signature.
12:22:04 <wWwwW> so what is an adjuction
12:25:33 <korvo> 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 <esolangs> [[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 <wWwwW> yes?
12:26:23 <korvo> 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 <wWwwW> yes
12:26:58 <korvo> 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 <wWwwW> ok, ok
12:28:11 -!- wib_jonas has quit (Ping timeout: 256 seconds).
12:28:41 -!- wib_jonas has joined.
12:28:49 <korvo> 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 <korvo> 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 <wWwwW> ok
12:30:46 <korvo> 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 <wWwwW> imma watch the monad vid by a byte of code now
12:31:29 <korvo> Sure, have fun. Don't worry if it doesn't all come together yet; there's so much to learn.
12:31:41 <wWwwW> ok
12:32:39 <wWwwW> WAIT
12:32:45 <wWwwW> WAITWAITWAITWAITWAIT
12:32:52 <wWwwW> MONADS ARE RECURSIVE
12:32:55 <wWwwW> EXCUSE ME
12:33:32 <wWwwW> also wut
12:33:37 <wWwwW> from he video i watched
12:33:46 <wWwwW> it looks like a monad is just a function
12:33:53 <wWwwW> specificlly for if's or something
12:34:09 <wWwwW> wait
12:34:11 <wWwwW> so its a type
12:34:21 <wWwwW> that works like a
12:34:23 <wWwwW> function
12:34:30 <wWwwW> holy sh*t
12:34:41 <korvo> 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 <wWwwW> ok
12:35:40 <korvo> (Even more technically, the functor *carries* the monad. And it keeps going: the list type constructor carries two applicative lax functors.)
12:35:52 <wWwwW> wait
12:35:53 <wWwwW> so isnt
12:36:00 <wWwwW> monads TC?
12:36:19 <wWwwW> ot atleast TLC with monads
12:37:07 <korvo> 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 <wWwwW> ok
12:38:16 -!- tromp has joined.
12:38:16 <korvo> 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 <wWwwW> ok
12:38:37 <wWwwW> also
12:38:42 <wWwwW> what is a category error?
12:39:43 <korvo> 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 <wWwwW> lol
12:41:01 <korvo> In category theory, if we want to relate one thing to another thing structurally, we use a functor. Functors are analogies.
12:41:13 <wWwwW> analogies for vat
12:42:45 <korvo> 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 <wWwwW> wait
12:43:03 <wWwwW> so i can say
12:43:26 <korvo> 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 <wWwwW> 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 <wWwwW> *functor not function
12:44:25 <wib_jonas> 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 <wib_jonas> enough that I should try to understand secret key cryptography first.
12:44:51 <korvo> 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 <wWwwW> yea
12:45:53 <wWwwW> 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 <korvo> 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 <wWwwW> why specifically for haskell?
12:48:08 <korvo> 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 <esolangs> [[Special:Log/newusers]] create * Sytra * New user account
12:48:30 <wWwwW> unless your a esolang desginer
12:48:33 <wWwwW> i think
12:50:17 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=143057&oldid=143022 * Sytra * (+200)
12:50:45 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=143058&oldid=143057 * Sytra * (-1)
12:50:46 <ais523> 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 <korvo> 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 <wib_jonas> 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 <wib_jonas> 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 <wib_jonas> 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 <wWwwW> i got an horrible esolan idea
12:52:06 <korvo> 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 <wWwwW> you have some esolang to proove things bout the esolang itself
12:52:21 <wWwwW> but the esolang ALWAYS no matter what
12:52:25 <wWwwW> prooves itself wrong
12:52:33 <wWwwW> if thats possible
12:52:53 <korvo> 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 <korvo> 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 <korvo> 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 <korvo> 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 <wib_jonas> 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 <wib_jonas> 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 <korvo> 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 <wWwwW> yea
12:56:54 <wWwwW> but like idk how to do it
12:56:57 <wWwwW> i would need help
12:56:59 <wWwwW> a lot
12:57:09 <wWwwW> but i rlly want to do it beforew somebody else does it
12:57:25 <wWwwW> also i would name it: "hypocrypt" or however you spell it
12:57:28 <ais523> you might want to learn a non-esoteric proof language
12:57:41 <wWwwW> like
12:57:44 <wWwwW> uuuuh
12:57:47 <wWwwW> that math mode thing
12:57:52 <ais523> 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 <wib_jonas> 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 <korvo> 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 <ais523> 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 <ais523> and there have historically been a lot of attempts to do that that turned out to be incorrect
13:00:29 <wWwwW> can you help me korvo? plz(idk)
13:01:21 <wib_jonas> 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 <korvo> 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 <korvo> wWwwW: I already have a proof language I'm avoiding writing.
13:02:35 <ais523> 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 <wWwwW> for my concept specifically
13:02:40 <wWwwW> but also coo
13:02:41 <wib_jonas> 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 <wWwwW> *cool
13:02:58 <korvo> 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 <wWwwW> i just mean
13:03:24 <ais523> 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 <wWwwW> to elaborate on that sentence
13:03:49 <wWwwW> 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 <korvo> 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 <ais523> I can't remember the full list of requirements and, as korvo says, some of them are probably cargo-cult requiremetns
13:06:18 <ais523> 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 <ais523> 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 <ais523> 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 <ais523> or, hmm
13:07:40 <ais523> now I'm confused
13:07:45 <korvo> 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 <ais523> I think I am confusing the cipher, with the permutation it's built from
13:08:13 <wWwwW> ok
13:08:17 <wWwwW> ill still make it tho
13:08:18 <wWwwW> lol
13:08:22 <ais523> 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 <ais523> I keep getting confused between different levels of abstraction that act similarly
13:08:36 <wWwwW> im still
13:08:38 <wWwwW> in
13:08:55 <wWwwW> public school...and im 13
13:09:07 <wWwwW> is it normal for me to be this deep already?
13:09:08 <ais523> 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 <korvo> 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 <korvo> 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 <wWwwW> what a moment
13:11:12 <wWwwW> XD
13:11:52 <korvo> 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 <wWwwW> phew
13:12:48 <ais523> 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 <ais523> which means that the basic problem of cryptography is to find things that work like random oracles
13:13:27 <ais523> korvo: 13-year-old me was very overconfident in their programming abilities
13:13:38 <wWwwW> lol
13:14:35 <wib_jonas> 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 <wib_jonas> 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 <korvo> 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 <korvo> Y'all're the professors; I'm a dropout.
13:15:09 <ais523> korvo: I think I was older than that when I made the news
13:15:18 <wib_jonas> 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 <wWwwW> its hell to be even a little bit of a techy/nerd at my age in dnemark
13:15:56 <wWwwW> *denmark
13:16:43 <wib_jonas> 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 <wWwwW> its more of a bullying problem
13:17:12 <wWwwW> lol
13:17:21 <ais523> when I was younger, my main programming languages were first various BASICs, then VBA for Excel
13:17:29 <ais523> after a while I moved onto "C++" but actually basically C
13:17:30 <korvo> 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 <korvo> https://blog.computationalcomplexity.org/2004/06/impagliazzos-five-worlds.html will have to do.
13:18:23 <korvo> 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 <ais523> 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 <wWwwW> i have no freinds everybody hates me and calls me weird
13:19:57 <wWwwW> lol
13:20:27 <ais523> that was me in primary school, I think?
13:20:40 <wWwwW> i cant got out
13:20:44 <wWwwW> im very insocial
13:20:52 <wWwwW> I AM A HORRIBLE BREED OF BRAIN
13:20:53 <wWwwW> l.ol
13:21:10 <wib_jonas> korvo; HEY! I'm a dropout too, not a professor
13:21:22 <ais523> I partly solved it by learning about subjects that the other children in school wanted to talk about
13:22:04 <wWwwW> 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 <wib_jonas> korvo: re Impagliazzo's five worlds, than you, I'll have to look at that
13:22:24 <korvo> wWwwW: Look up "tall poppy syndrome" and "law of jante". It's not your fault.
13:22:36 <ais523> 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 <wWwwW> it isnt?
13:22:44 -!- impomatic has joined.
13:23:07 <ais523> 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 <ais523> so I'm scared to get a job in case I find myself unable to do it
13:23:53 <wWwwW> 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 <ais523> 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 <ais523> 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 <wWwwW> pope as a joke ask me nonsensical math as a joke
13:25:26 <wWwwW> rlly annoys me
13:25:36 <korvo> wWwwW: "law of jante" would be the right one for Danes. It's not you, it's peer pressure.
13:25:53 <wib_jonas> 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 <wib_jonas> helps a lot with having a regular daily routine.
13:25:56 <wWwwW> yes
13:26:09 <wWwwW> do note that like
13:26:17 <wWwwW> i also have an extreme
13:26:23 <wWwwW> autism borhter
13:26:27 <wWwwW> *brother
13:26:31 <wWwwW> im bullied ofr him
13:26:44 <wWwwW> ppl thinks im weird cuz my borhter has a mental condition
13:28:16 <wib_jonas> "random mental arithmetic questions in the corridor " => that's new to me, I don't remember that specific form of bullying
13:28:59 <ais523> that was secondary school, after I already had a reputation for being good at maths
13:29:14 <wib_jonas> 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 <ais523> 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 <wib_jonas> 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 <ais523> 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 <wWwwW> ont eh discussion of is \_(.)-> tc i have a prioblem
13:35:25 <wWwwW> wait no i dont
13:36:42 <wWwwW> wait i do
13:37:23 <esolangs> [[Deadfish/Implementations (M-Z)]] https://esolangs.org/w/index.php?diff=143059&oldid=142025 * Cocosbeans * (+207) /* Racket */
13:37:31 <wWwwW> aaaaaah
13:47:18 <wWwwW> wait
13:47:31 <wWwwW> cant you just make a esolang by saying this is the axioms
13:47:38 <wWwwW> and typeing out some random bullsh*t
13:47:46 <wWwwW> like techically
13:47:52 <ais523> would it be a *good* esolang, though?
13:48:06 <wWwwW> thats bascially what https://esolangs.org/wiki/Post_canonical_system is right?
13:48:11 <ais523> like, normally esolangs are constructed for some purpose
13:48:13 <wWwwW> ais523: simply no
13:48:26 <wWwwW> 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 <ais523> there have been a couple of attempts to make languages whose behaviour changes, e.g., every day
13:51:11 <wWwwW> yea ik
13:51:12 <ais523> which is similar in spirit to a randomly generated esolang
13:51:17 <ais523> but I don't think any of them worked very well
13:51:20 <wWwwW> yes
13:52:44 <esolangs> [[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 <wWwwW> this is what i tried
13:52:59 <wWwwW> complete bullshit but idc
13:53:02 <wWwwW> lol
13:53:50 <esolangs> [[HAHAHA]] https://esolangs.org/w/index.php?diff=143061&oldid=143060 * Yayimhere * (+69) /* axioms(only way to do computation */
13:55:03 <esolangs> [[HAHAHA]] https://esolangs.org/w/index.php?diff=143062&oldid=143061 * Yayimhere * (+5) /* axioms(only way to do computation */
13:55:41 <esolangs> [[HAHAHA]] https://esolangs.org/w/index.php?diff=143063&oldid=143062 * Yayimhere * (+32) /* axioms(only way to do computation lol) */
13:55:48 <wWwwW> ok
13:55:49 <wWwwW> now
13:55:55 <wWwwW> how to code anything in this
13:55:56 <wWwwW> idk
13:56:04 <wWwwW> do you know(lol)
13:56:39 <ais523> 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 <ais523> but randomly generated problems usually aren't interesting to solve
13:56:54 <wWwwW> true
13:57:41 <esolangs> [[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 <esolangs> [[]] 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 <wWwwW> now i made this
14:08:30 <wWwwW> ...
14:08:36 <wWwwW> theres something wrong with me lol
14:11:38 <wib_jonas> "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 <wib_jonas> 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 <wWwwW> theres also TMMLPTEALPAITAFNFAL
14:16:38 <wib_jonas> 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 <wib_jonas> 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 <ais523> 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 <wib_jonas> 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 <wib_jonas> 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 <wib_jonas> 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 <wib_jonas> ais523: right
14:21:18 <wib_jonas> 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 <wib_jonas> 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 <wib_jonas> 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 <wWwwW> 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 <wWwwW> but
14:39:23 <wWwwW> could you make a weird machine in say True
14:39:41 -!- Lord_of_Life has joined.
14:39:55 <esolangs> [[User:Yayimhere]] https://esolangs.org/w/index.php?diff=143066&oldid=142990 * Yayimhere * (+23) /* esolangs */
14:41:06 <esolangs> [[]] 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 <esolangs> [[Special:Log/newusers]] create * Dolphy * New user account
14:59:19 <esolangs> [[FLOLCODE]] https://esolangs.org/w/index.php?diff=143068&oldid=143031 * MihaiEso * (+0) /* STRING */
15:06:22 <esolangs> [[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 <esolangs> [[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 <esolangs> [[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 <esolangs> [[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 <esolangs> [[User:Ractangle]] https://esolangs.org/w/index.php?diff=143073&oldid=143025 * Ractangle * (+22) /* Programm forms */
20:02:52 <esolangs> [[Fysh]] M https://esolangs.org/w/index.php?diff=143074&oldid=143052 * Pointless * (+20) Change wording from "Our" to "The"
20:03:55 <esolangs> [[Fysh]] M https://esolangs.org/w/index.php?diff=143075&oldid=143074 * Pointless * (+1) Change wording from "Our" to "The"
20:22:51 <esolangs> [[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 <esolangs> [[Joke language list]] M https://esolangs.org/w/index.php?diff=143077&oldid=143064 * PythonshellDebugwindow * (+0) /* General languages */ Sort
21:04:20 <esolangs> [[HAHAHA]] M https://esolangs.org/w/index.php?diff=143078&oldid=143063 * PythonshellDebugwindow * (+50) Stub, categories
21:06:28 <esolangs> [[]] 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 <esolangs> [[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 <esolangs> [[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).
←2024-10-09 2024-10-10 2024-10-11→ ↑2024 ↑all