←2020-09 2020-10 2020-11→ ↑2020 ↑all
00:28:13 -!- tromp has joined.
00:32:43 -!- tromp has quit (Ping timeout: 260 seconds).
00:45:43 -!- adu has joined.
01:09:52 -!- adu has quit (Quit: adu).
01:20:41 -!- adu has joined.
01:22:14 -!- tromp has joined.
01:26:35 -!- tromp has quit (Ping timeout: 240 seconds).
02:19:59 -!- tromp has joined.
02:24:25 -!- tromp has quit (Ping timeout: 240 seconds).
03:04:17 -!- Lord_of_Life_ has joined.
03:06:34 -!- Lord_of_Life has quit (Ping timeout: 272 seconds).
03:06:34 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
03:14:32 -!- tromp has joined.
03:19:04 -!- tromp has quit (Ping timeout: 256 seconds).
03:23:22 -!- tromp has joined.
03:27:58 -!- tromp has quit (Ping timeout: 256 seconds).
03:28:08 -!- adu has quit (Quit: adu).
03:56:45 -!- adu has joined.
04:17:50 -!- tromp has joined.
04:21:47 -!- tromp has quit (Ping timeout: 240 seconds).
04:46:27 -!- tromp has joined.
04:51:20 -!- tromp has quit (Ping timeout: 265 seconds).
04:57:12 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
05:40:37 -!- tromp has joined.
05:45:04 -!- tromp has quit (Ping timeout: 246 seconds).
05:59:00 -!- adu has quit (Quit: adu).
06:32:51 -!- tromp has joined.
06:54:35 -!- glowcoil has quit (*.net *.split).
07:00:27 -!- Sgeo has quit (Read error: Connection reset by peer).
08:07:25 -!- glowcoil has joined.
08:09:09 -!- hendursa1 has joined.
08:09:42 -!- cpressey has joined.
08:11:23 -!- hendursaga has quit (Ping timeout: 240 seconds).
08:52:42 -!- glowcoil has quit (*.net *.split).
08:55:45 -!- t20kdc has joined.
09:10:07 -!- glowcoil has joined.
09:14:01 -!- sebbu has quit (Ping timeout: 246 seconds).
09:46:47 -!- imode has quit (Ping timeout: 240 seconds).
10:27:02 -!- wib_jonas has joined.
10:48:16 -!- cpressey has quit (Quit: \o/).
11:02:17 -!- hendursa1 has quit (Remote host closed the connection).
11:03:10 -!- hendursa1 has joined.
11:10:33 -!- sebbu has joined.
11:11:51 -!- arseniiv has joined.
11:39:55 -!- atriq has joined.
11:40:07 -!- Taneb has quit (Ping timeout: 240 seconds).
11:53:10 -!- hendursa1 has quit (Quit: hendursa1).
11:53:27 -!- hendursaga has joined.
12:34:47 -!- atriq has changed nick to Taneb.
13:02:52 -!- xelxebar has quit (Remote host closed the connection).
13:03:39 -!- xelxebar has joined.
14:52:09 -!- Sgeo has joined.
14:53:58 <wib_jonas> `? password
14:54:00 <HackEso> The password of the month is juberous.
14:58:07 <wib_jonas> ``` hg log -l 9 -T '{date(date,"%Y-%m-%dT%H:%M%z")}\n' /hackenv/wisdom/password
14:58:08 <HackEso> 2020-09-01T02:18+0000 \ 2020-07-03T10:20+0000 \ 2020-06-01T00:25+0000 \ 2020-05-30T16:11+0000 \ 2020-04-05T05:35+0000 \ 2020-03-01T00:14+0000 \ 2020-02-12T01:20+0000 \ 2020-02-12T01:19+0000 \ 2020-02-12T01:18+0000
15:01:11 <Arcorann> What's this password thing for anyway?
15:03:36 <myname> a password of the month
15:04:31 <Taneb> You'll know when you need it
15:05:36 -!- Lord_of_Life_ has joined.
15:07:18 -!- Lord_of_Life has quit (Ping timeout: 272 seconds).
15:08:13 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
15:09:21 <wib_jonas> the password for last month, specifically
15:21:48 <wib_jonas> `learn The password of the month is Algol Waterloo Athens aftermath quadrant hydraulic tissue exodus stormy decadence egghead resistor flatfoot escapade newborn recipe
15:21:51 <HackEso> Relearned 'password': The password of the month is Algol Waterloo Athens aftermath quadrant hydraulic tissue exodus stormy decadence egghead resistor flatfoot escapade newborn recipe
15:22:23 <myname> neat one
15:22:46 <myname> very memorable
15:28:27 -!- MDude has joined.
15:37:47 <Arcorann> Is that a passphrase for a Bitcoin wallet?
15:38:31 <esowiki> [[Hanoifuck]] https://esolangs.org/w/index.php?diff=77775&oldid=60363 * Zesterer * (+134) Added reference impl
15:39:09 <esowiki> [[Hanoifuck]] M https://esolangs.org/w/index.php?diff=77776&oldid=77775 * Zesterer * (-3)
15:42:01 <wib_jonas> Arcorann: yes, it's the passphrase for Satoshi's billion dollar bitcoin wallet
15:43:35 <wib_jonas> and you can get the encrypted private key too, you have have to hang throught the ceiling Mission Impossible style in the secret computer room in the bunker under his hidden luxury mansion and copy it to a floppy
15:44:35 <wib_jonas> the laser beams on the head of the moat sharks are harmless, they couldn't get it to act as death rays, because the sharks wouldn't keep the required battery swallowed for a long enough time
15:44:54 -!- wib_jonas has quit (Quit: Connection closed).
15:45:17 <esowiki> [[SCREAMCODE]] M https://esolangs.org/w/index.php?diff=77777&oldid=77556 * Baguette * (+11) Re-formatted example program
15:46:38 <esowiki> [[SCREAMCODE]] M https://esolangs.org/w/index.php?diff=77778&oldid=77777 * Baguette * (+95) Clarifies how instructions are written
15:54:47 -!- imode has joined.
15:54:50 -!- Arcorann has quit (Read error: Connection reset by peer).
15:56:09 -!- arseniiv has quit (Ping timeout: 260 seconds).
16:00:58 -!- arseniiv has joined.
16:20:01 <t20kdc> wib_jonas: what about the implantations
17:40:11 <arseniiv> I downloaded and executed a virus, dumb me :D
17:40:42 <arseniiv> I was too eager
17:40:47 <myname> why would you do that
17:40:51 -!- arseniiv has quit (Quit: gone too far).
17:43:43 <myname> satoshi_wallet.exe?
17:44:12 <imode> totally_real_esolang_interpreter.pdf.exe
17:55:49 -!- LKoen has joined.
18:00:57 -!- glowcoil has quit (*.net *.split).
18:47:26 -!- glowcoil has joined.
19:02:23 -!- xelxebar has quit (Remote host closed the connection).
19:02:48 -!- xelxebar has joined.
19:29:17 -!- zeroed has quit (Quit: ZNC 1.7.2+deb3 - https://znc.in).
19:37:03 -!- admino has joined.
19:37:53 -!- admino has changed nick to zeroed.
20:06:35 <zzo38> Does magnet: URI scheme have a parameter to specify the MIME type of the file? As far as I can tell, it doesn't have. There is the name, length, and hash, but you might want the MIME type too. Application-specific parameters are possible, but the MIME type seems like something that might be common enough that shouldn't need to be an application-specific parameter.
21:26:48 -!- LKoen has quit (Remote host closed the connection).
21:30:39 -!- LKoen has joined.
21:55:04 -!- LKoen has quit (Remote host closed the connection).
21:55:41 <b_jonas> do you suppose the SHA-4 contest will be decided by cryptanalysis and similar practical considerations all the way, or will they use ritual trial by combat among champions representing each finalist hash function?
21:58:16 <zzo38> What is the SHA-4 hash function?
22:01:19 <b_jonas> zzo38: we don't know yet, the contest would be held to decide what hash function it will be, just like the SHA-3 contest
22:02:25 <zzo38> O, well, probably cryptanalysis and stuff like that might be the consideration, I think.
22:05:14 <zzo38> But, I don't know how the contests actually work, so I just guess.
22:28:37 <b_jonas> the cryptanalysis and simliar stuff is always a consideration of course
22:29:53 <b_jonas> I'm just asking what happens in the final when the NIST has to pick one among multiple spotless candidates
22:30:54 <zzo38> O, I don't know.
22:32:08 <t20kdc> Will the trial by combat be recorded? It's important for analysis of the reasoning method. (Popcorn purchase complete.) Ignore that.
22:33:57 <zzo38> Maybe, if there are two that work OK, choose one which is not too complicated to implement.
22:42:09 <b_jonas> t20kdc: yes, the whole point is the transparency of the process, so that NIST doesn't have to choose from among hash functions without clear drawbacks, and they don't want to make it look like they make the choice because they know some secret vulnerability in one of the hash functions
22:42:20 <b_jonas> so the trial by combat has to be documented carefully
22:43:19 * t20kdc nods
22:53:18 -!- Arcorann has joined.
22:54:00 -!- Arcorann has quit (Remote host closed the connection).
22:54:29 -!- Arcorann has joined.
23:17:40 -!- deltaepsilon23 has joined.
23:54:57 -!- glowcoil has quit (*.net *.split).
00:05:48 -!- glowcoil has joined.
00:09:04 -!- t20kdc has quit (Remote host closed the connection).
00:09:19 -!- deltaepsilon23 has quit (Ping timeout: 246 seconds).
00:24:25 -!- deltaepsilon23 has joined.
00:24:42 -!- deltaepsilon23 has quit (Client Quit).
00:27:20 -!- deltaepsilon23 has joined.
00:47:31 -!- aaaaaa has joined.
02:16:05 <shachaf> b_jonas: I hope they standardize an unkeyed permutation instead.
02:17:10 <shachaf> Then you can construct a hash function, stream cipher, block cipher, etc. out of it.
02:24:09 -!- deltaepsilon23 has quit (Quit: Leaving).
02:40:59 -!- adu has joined.
03:05:53 -!- Lord_of_Life has quit (Ping timeout: 258 seconds).
03:06:47 -!- Lord_of_Life has joined.
03:21:09 -!- glowcoil has quit (*.net *.split).
03:49:00 -!- glowcoil has joined.
03:51:09 <esowiki> [[Coeus]] N https://esolangs.org/w/index.php?oldid=77779 * Tetrapyronia * (+829) Created page with "'''Coeus''' is an esolang inspired (loosely) by 3-cell brainf*ck. It uses 4 registers (A-D). A is initially 1 and all others are 0. === Commands === X and Y represent any regi..."
04:01:16 -!- aaaaaa has quit (Quit: leaving).
04:06:04 <esowiki> [[User:Tetrapyronia]] https://esolangs.org/w/index.php?diff=77780&oldid=77673 * Tetrapyronia * (+12)
04:29:55 -!- arseniiv has joined.
05:27:35 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
06:18:26 <esowiki> [[Coeus]] M https://esolangs.org/w/index.php?diff=77781&oldid=77779 * Tetrapyronia * (-2)
06:20:04 -!- adu has quit (Quit: adu).
06:39:41 <zzo38> Does any open source pokemon battle simulator implement a rule the same as or similar to the following: If the opponent's pokemon is Spinda and the generation is III or IV or V, you can see their ability, and unless the generation is V, also their nature.
08:08:51 -!- hendursa1 has joined.
08:11:03 -!- hendursaga has quit (Ping timeout: 240 seconds).
08:12:22 -!- Sgeo has quit (Read error: Connection reset by peer).
08:15:54 -!- sprocklem has quit (Ping timeout: 256 seconds).
08:19:30 -!- cpressey has joined.
08:46:08 -!- dingwat has quit (Quit: Connection closed for inactivity).
09:54:47 -!- imode has quit (Ping timeout: 240 seconds).
10:33:41 -!- wib_jonas has joined.
10:50:02 -!- cpressey has quit (Quit: WeeChat 1.9.1).
11:15:44 <esowiki> [[Grass]] https://esolangs.org/w/index.php?diff=77782&oldid=65950 * YamTokTpaFa * (-48) TODO!
11:29:55 -!- hendursa1 has quit (Quit: hendursa1).
11:30:11 -!- hendursaga has joined.
11:44:15 <esowiki> [[Grass]] https://esolangs.org/w/index.php?diff=77783&oldid=77782 * YamTokTpaFa * (+43)
11:50:56 <esowiki> [[Grass]] https://esolangs.org/w/index.php?diff=77784&oldid=77783 * YamTokTpaFa * (+393) /* Overview */
11:56:46 <esowiki> [[Grass]] https://esolangs.org/w/index.php?diff=77785&oldid=77784 * YamTokTpaFa * (+493) /* Overview */
12:00:49 <esowiki> [[Grass]] https://esolangs.org/w/index.php?diff=77786&oldid=77785 * YamTokTpaFa * (+240) /* Overview */
12:02:45 <esowiki> [[Grass]] https://esolangs.org/w/index.php?diff=77787&oldid=77786 * YamTokTpaFa * (+55) /* Overview */ NO WAIT THIS IS MEDIAWIKI NOT MARKDOWN
12:13:25 -!- cpressey has joined.
12:25:13 -!- adu has joined.
12:55:53 -!- t20kdc has joined.
13:57:23 -!- grumble has changed nick to Spooktober.
14:07:59 -!- arseniiv has quit (Quit: gone too far).
14:15:15 -!- deltaepsilon23 has joined.
14:26:12 -!- adu has quit (Quit: adu).
14:36:41 -!- Sgeo has joined.
14:40:32 -!- glowcoil has quit (*.net *.split).
14:41:50 -!- glowcoil has joined.
14:48:05 -!- dingwat has joined.
14:50:24 -!- cpressey has quit (Ping timeout: 272 seconds).
14:58:43 -!- MDude has joined.
15:02:30 -!- cpressey has joined.
15:07:22 -!- wib_jonas has quit (Quit: Connection closed).
15:08:28 -!- Lord_of_Life has quit (Ping timeout: 258 seconds).
15:11:34 -!- adu has joined.
15:23:08 -!- Arcorann has quit (Read error: Connection reset by peer).
15:45:15 -!- imode has joined.
15:51:48 -!- LKoen has joined.
15:59:47 -!- Lord_of_Life has joined.
16:02:30 -!- cpressey has quit (Quit: WeeChat 1.9.1).
17:00:11 -!- FreeFull has joined.
18:12:02 -!- Remavas has joined.
18:24:20 -!- Remavas has quit (Quit: Leaving).
18:52:54 -!- adu has quit (Quit: adu).
19:25:01 -!- sprocklem has joined.
19:54:07 <esowiki> [[English]] https://esolangs.org/w/index.php?diff=77788&oldid=72674 * Tux1 * (+159)
19:57:10 -!- sftp has quit (Excess Flood).
19:57:28 -!- sftp has joined.
20:50:08 <esowiki> [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=77789&oldid=77626 * Aspwil * (-86) /* Sabdt */
20:56:51 <esowiki> [[Coeus]] M https://esolangs.org/w/index.php?diff=77790&oldid=77781 * Tetrapyronia * (+0)
21:01:42 <esowiki> [[Special:Log/newusers]] create * Olivato * New user account
21:09:31 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=77791&oldid=77759 * Olivato * (+241)
21:36:17 <esowiki> [[Mapfuck]] https://esolangs.org/w/index.php?diff=77792&oldid=77645 * Aspwil * (+1) /* mappings */
22:09:54 -!- t20kdc has quit (Remote host closed the connection).
22:13:00 -!- LKoen has quit (Remote host closed the connection).
22:37:34 <int-e> @metar lowi
22:37:35 <lambdabot> LOWI 022220Z AUTO 06012KT 020V100 9999 FEW036 BKN080 20/07 Q0994
22:38:22 <int-e> what's happening, it has not cooled down this night at all... Föhn (https://en.wikipedia.org/wiki/Foehn_wind) maybe..
22:44:23 <fizzie> @metar EGLL
22:44:24 <lambdabot> EGLL 022220Z AUTO 05008KT 010V080 5000 -RA BKN008/// BKN014/// OVC046/// //////TCU 14/13 Q0989 TEMPO 4000 RA
22:46:28 <int-e> https://www.bergfex.at/tirol/wetter/stationen/innsbruck-flughafen/ has temperature curves going back two weeks... having a flat line after 1pm is pretty unusual :)
22:46:58 <int-e> But Föhn is a real phenomenon here and is the most probable explanation.
22:47:05 <spruit11> @metar ehdl
22:47:06 <lambdabot> EHDL 022225Z AUTO VRB10KT 9999 -DZ OVC093 15/13 Q0991 BLU
23:08:01 -!- FreeFull has quit.
23:18:01 <Sgeo> My browser remembers me visiting newlisp.org but not newsday.com ?
23:46:50 -!- Arcorann has joined.
23:48:21 <shachaf> @metar koak
23:48:22 <lambdabot> KOAK 022253Z 30005KT 3SM FU HZ OVC028 30/16 A2992 RMK AO2 SLP131 FU OVC028 T03000156
23:48:32 <shachaf> I need to decide when to go back to KOAK.
23:48:45 <shachaf> That FU does not make it sound appealing.
00:02:33 -!- aaaaaa has joined.
00:04:28 <int-e> `? password
00:04:29 <HackEso> The password of the month is Algol Waterloo Athens aftermath quadrant hydraulic tissue exodus stormy decadence egghead resistor flatfoot escapade newborn recipe
00:04:52 <int-e> . o O ( Somebody overcompensated for lost opportunities. )
00:16:01 -!- deltaepsilon23 has left ("Leaving").
00:39:49 <int-e> WTF... https://www.lifewire.com/strong-password-examples-2483118 lists "BankLogin!3" as an excellent password...
00:42:36 <shachaf> I think maybe I should ban digits and "special characters" in passwords.
00:42:57 <shachaf> They make passwords harder to remember and probably don't meaningfully increase entropy?
00:43:10 <int-e> They make them quicker to type though
00:43:49 <zzo38> I think you should not ban anything except perhaps null characters and some control characters (depending on the application). However, you should not require digits and "special characters" either. And, please do not set the maximum length too small!
00:43:56 <int-e> And they add some bits of entropy if they're not l33t-derived.
00:44:38 <shachaf> Maybe it should just be a-z
00:44:46 <zzo38> Arbitrary octets should otherwise be allowed in the password.
00:44:47 <shachaf> I guess allowing capital letters is one bit per character.
00:45:00 <shachaf> > logBase 2 26
00:45:06 <lambdabot> 4.700439718141093
00:45:10 <shachaf> > logBase 2 62
00:45:13 <lambdabot> 5.954196310386876
00:45:16 <shachaf> I guess I could've guessed that one.
00:45:37 <int-e> capital letters... I'd imagine for most people they add one bit per word.
00:45:38 <shachaf> > logBase 2 72
00:45:40 <lambdabot> 6.169925001442312
00:45:51 <shachaf> > 15 * logBase 2 26
00:45:54 <lambdabot> 70.50659577211638
00:45:58 <shachaf> Presumably this is a pretty good password.
00:46:20 <int-e> (and yes, people will use words if you let them)
00:46:43 <int-e> I wonder what word list b_jonas used.
00:46:51 <shachaf> Maybe you shouldn't let people choose passwords.
00:46:55 <zzo38> Well, some people will. Some people use numbers instead.
00:47:08 <shachaf> Just generate a 70-bit 15-character password and let them regenerate on demand.
00:47:08 <int-e> (I suspect this is one of his serious entries... so it's bound to be 16 actually random words.)
00:47:49 <zzo38> I think that you should let people choose passwords, but ensure the maximum length is sufficiently long (I suggest at least sixty bytes, probably more). A random password option might be good too, though, maybe.
00:48:03 <int-e> It's not diceware.
00:48:31 <int-e> 60 bytes.
00:48:35 <int-e> Good one, good one.
00:49:00 <Arcorann> 60 bytes would be overkill for random passwords though
00:49:07 <int-e> password123xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
00:49:19 <esowiki> [[Special:Log/newusers]] create * Kosayoda * New user account
00:49:22 <int-e> it's also a pretty useless metric
00:49:24 <zzo38> Arcorann: Yes, but I only specified that as a maximum length, not the minimum or default length.
00:49:31 <int-e> oh
00:49:35 <int-e> my bad, I misread.
00:49:39 <Arcorann> Same...
00:50:10 <int-e> or rather, made an assumption because hardly anybody speaks of maximum password lengths... minimum lengths are all the rage
00:50:13 <zzo38> (If you can, increase the maximum length to more than that.)
00:50:47 <Arcorann> Maximum length restrictions beyond those required to avoid extreme processing times shouldn't be necessary in any sensible password scheme
00:51:09 <shachaf> int-e: That page also says that "BankLogin" is an OK password.
00:51:39 <int-e> shachaf: Yeah, it's wholly embarrassing.
00:51:50 <int-e> Designed to make people feel good about their passwords, I'm sure.
00:52:09 <shachaf> It also says that "kitty" is an OK password.
00:52:24 <shachaf> Despite saying a bit above that such a password is incredibly insecure.
00:52:29 <zzo38> Arcorann: Yes, that is true. (Well, not only time but also memory. And depending on the program, it may display asterisks as it is being typed and there may be limited space on the display, but you can also conceal the password entirely (like traditionally in UNIX-based systems), display on multiple lines, use smaller fonts, etc.)
00:52:30 <shachaf> I guess "OK" is a euphemism?
00:52:34 <int-e> I didn't read it all.
00:52:52 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=77793&oldid=77791 * Kosayoda * (+186) Add introduction
00:53:03 <oren> I have begun using relatively long sentences in conlangs as passwords
00:53:45 <esowiki> [[Chicken]] M https://esolangs.org/w/index.php?diff=77794&oldid=71117 * Kosayoda * (+63) Add a Python implementation of the language.
00:53:46 <Arcorann> Probably shouldn't have called it "OK", but yeah the mechanism of "take a dictionary word and add special characters or numbers" is not great
00:53:55 <shachaf> I think a random word in /[a-z]{15}/ is pretty good.
00:54:08 <shachaf> Do I want more than 70 bits?
00:54:11 <zzo38> oren: Yes, that can work.
00:55:57 <int-e> There's always the battery horse staple thing.
00:56:11 <esowiki> [[Chicken]] M https://esolangs.org/w/index.php?diff=77795&oldid=77794 * Kosayoda * (+19) Add name to linked implementation.
00:56:49 <shachaf> How many bits do you get from that?
00:57:03 <shachaf> If it's a password you type regularly, saving on characters is probably good.
00:57:06 <shachaf> I mean on keystrokes.
00:57:14 <shachaf> Shift is an extra keystroke.
00:57:23 <int-e> https://xkcd.com/936/ said 44 bits
00:57:45 <shachaf> > 10 * logBase 2 26
00:57:48 <lambdabot> 47.00439718141092
00:59:11 <shachaf> `` egrep --text -o '[a-z]' /dev/urandom | tr -d '\n' | head -c10
00:59:12 <HackEso> rmtjeklgfm
00:59:15 <Arcorann> Nowadays I get KeePass to generate my passwords except for a few that I've memorised
01:01:06 <shachaf> 44 bits is presumably OK if you know the password is being stored securely with a fancy KDF.
01:01:17 <shachaf> But if you don't then you probably want more.
01:01:23 <shachaf> Is 70 even enough?
01:03:27 <int-e> 70 is plenty
01:05:19 <int-e> I usually look at this... Bitcoin is at 2^47 hashes per second.
01:06:25 <shachaf> Isn't it way more than that?
01:06:52 <shachaf> https://www.blockchain.com/charts/hash-rate says 140M TH/s
01:07:02 <shachaf> > logBase 2 140e18
01:07:06 <lambdabot> 66.92398872491749
01:07:25 <int-e> Ugh.
01:07:31 <int-e> Okay, fine.
01:07:41 <int-e> I can't do ISO :-(
01:07:54 <shachaf> ISO?
01:07:55 <int-e> Or SI for that matter.
01:08:50 <int-e> Okay, so maybe 70 is only plenty if it's not stored as a plain hash.
01:22:21 <int-e> (Oh well. The SI/ISO mixup isn't new, at least. But getting the prefixes wrong is.)
01:23:07 <shachaf> Oh, the number you gave was 140e12.
01:23:18 <shachaf> I think it's confusilating of them to give numbers in millions of terahashes.
01:23:39 <shachaf> Either give hashes or exashes or something.
02:37:48 -!- hendursaga has quit (Remote host closed the connection).
02:47:32 -!- hendursaga has joined.
03:06:53 -!- Lord_of_Life_ has joined.
03:09:04 -!- Lord_of_Life has quit (Ping timeout: 256 seconds).
03:09:05 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
03:39:55 -!- adu has joined.
03:46:00 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
04:01:40 -!- aaaaaa has quit (Quit: leaving).
04:32:31 <int-e> `` unshare -U true
04:32:32 <HackEso> unshare: unshare failed: Operation not permitted
04:40:54 <int-e> This is confusing me (on my own system; less so for HackEso)... The failing syscall is `unshare`: unshare(CLONE_NEWUSER) = -1 EPERM (Operation not permitted) But according to the `unshare` manpage, unprivileged users are supposed to be able to create a new user namespace, except under fairly specific circumstances... hmm one of which I can't easily check.
04:50:32 <shachaf> Seems to work here.
04:55:06 <int-e> works on none of my (Debian) systems
04:57:51 <int-e> (the thing that I don't know how to check is that EPERM is raised if "the caller's root directory does not match the root directory of the mount namespace"... is this something that a badly designed initrd can mess up forever?)
04:58:27 <shachaf> That seems unlikely.
04:59:36 <int-e> The other condition is for unmapped (effective) user/group ids... but the default maps map *all* 32 bit values to themselves.
05:00:19 <int-e> (cat /proc/self/{g,u}id_map --> 0 0 4294967295, twice (with some more spaces))
05:01:35 <int-e> OTOH it works for root at least.
05:02:12 <shachaf> If it works for root then it doesn't seem like the initrd thing, does it?
05:02:27 <int-e> hmm
05:02:48 <int-e> yes, that seems to be implied.
05:05:15 <shachaf> Is the EPERM coming from https://github.com/torvalds/linux/blob/v5.8/kernel/user_namespace.c#L69 ?
05:06:28 <int-e> I'd assume so.
05:15:59 <zzo38> I see two cases in that function that return EPERM. Do you know which of those it is?
05:24:50 <shachaf> Man, I was trying to create a chroot to test this in and the situation is ridiculous.
05:25:04 <shachaf> /bin/ls depends on libraries in /usr, so what's the point of anything?
05:25:08 <shachaf> What a silly system.
05:26:33 <shachaf> OK, so inside a regular chroot, you can escape easily by e.g. chdir /proc/1/root
05:26:36 <shachaf> (As root.)
05:27:52 <shachaf> int-e: Presumably your /proc/1/root looks identical to your /?
05:30:09 <int-e> yes.
05:30:46 <int-e> root@harpy:/# unshare -U true
05:30:46 <int-e> unshare: unshare failed: Operation not permitted
05:30:51 <int-e> that's inside a chroot, as root.
05:31:25 <int-e> I should've thought of trying to test the positive case... so it's not the chroot check, phew.
05:34:27 <zzo38> The linked program says "Verify that we can not violate the policy of which files may be accessed that is specified by the root directory, by verifing that the root directory is at the root of the mount namespace which allows all files to be accessed."
05:44:13 <int-e> Bah. https://salsa.debian.org/kernel-team/linux/-/blob/master/debian/patches/debian/add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch
05:45:40 <zzo38> Is read permission required if you try to execute a file that has setuid bit but it is ignored? I think that, in addition to requiring execute permission, in order to execute a file, it should require that either the effective user owns the file or the effective user has permission to read the file.
05:45:43 <int-e> So on Debian one needs sysctl kernel.unprivileged_userns_clone=1
05:45:53 <int-e> And then it works.
05:46:49 <shachaf> int-e: Well, so much for my kernel source code reading efforts.
05:47:22 <zzo38> (perhaps only for files with setuid/setgid, although perhaps in other cases too, such as if namespaces have been tampered with in any way at all)
05:47:55 -!- adu has quit (Quit: adu).
05:47:56 <int-e> shachaf: I'm sorry. I went down the same road though... https://elixir.bootlin.com/linux/latest/source/kernel/user_namespace.c#L69 is a useful site for that (it has links for identifiers)
05:48:18 <shachaf> int-e: I was mostly using livegrep.com
05:48:26 <int-e> shachaf: And only then I decided that it's probably something Debian specific.
05:49:06 <int-e> Gotta love the "This is a short-term patch." from 2013.
05:50:02 <shachaf> It says "saucy" -- is it an Ubuntu thing?
05:51:17 <int-e> Well, Ubuntu is based on Debian.
05:51:33 <int-e> So it's no big surprise if patches flow in the other direction as well?
05:51:53 <int-e> Not everything Ubuntu does is stupid ;)
05:57:46 -!- arseniiv has joined.
05:59:03 <int-e> (I'm somewhat divided on whether this is a good patch or a bad patch... what is horrible is discoverability of the feature.)
06:19:52 <shachaf> If only there was more than a numeric error code for system calls to fail with.
06:20:06 <shachaf> I don't know why they even have any error code other than EINVAL, since it covers every use case.
07:05:46 -!- sftp has quit (Ping timeout: 244 seconds).
07:06:00 -!- sftp has joined.
07:18:04 -!- imode has quit (Ping timeout: 260 seconds).
07:19:24 -!- LKoen has joined.
08:08:23 -!- hendursa1 has joined.
08:11:03 -!- hendursaga has quit (Ping timeout: 240 seconds).
08:38:43 -!- dog_star has quit (Ping timeout: 272 seconds).
08:38:54 -!- dog_star has joined.
10:27:09 <esowiki> [[05AB1E]] https://esolangs.org/w/index.php?diff=77796&oldid=77453 * SunnyMoon * (+414) 2sable!
10:35:57 <esowiki> [[Zirconium]] https://esolangs.org/w/index.php?diff=77797&oldid=77773 * RocketRace * (-2) Synthetic station definitions should be postfix, not prefix
10:37:49 <Arcorann> https://sr.ht/~sircmpwn/evilpass/ <-- that's one way of checking password security
10:40:14 <myname> nice
10:42:31 -!- Sgeo has quit (Read error: Connection reset by peer).
10:49:20 <esowiki> [[Special:Log/newusers]] create * SoicBR * New user account
10:55:05 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=77798&oldid=77793 * SoicBR * (+295) /* Introductions */
11:12:21 -!- laerling has quit (Quit: leaving).
11:23:52 -!- t20kdc has joined.
12:19:55 -!- arseniiv has quit (Ping timeout: 240 seconds).
12:21:27 -!- t20kdc has quit (Remote host closed the connection).
12:42:59 -!- sebbu2 has joined.
12:43:36 -!- sebbu has quit (Ping timeout: 256 seconds).
12:46:53 -!- sebbu2 has changed nick to sebbu.
13:05:00 -!- Arcorann_ has joined.
13:07:25 -!- Arcorann has quit (Ping timeout: 240 seconds).
13:38:47 -!- moony has quit (Remote host closed the connection).
13:39:14 -!- ATMunn_ has joined.
13:39:19 -!- ATMunn has quit (Quit: lol rip).
13:39:21 -!- moony has joined.
15:07:17 -!- Lord_of_Life_ has joined.
15:07:56 -!- at-nyc has joined.
15:09:29 <at-nyc> Not sure this is the right place, but I couldn’t believe that esolang.org wasn’t already a redirect to esolangs.org. I bought it and want to donate/transfer the registration. Who do I contact about that?
15:09:45 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
15:09:55 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
15:12:10 <b_jonas> at-nyc: you contact fizzie here
15:13:18 <at-nyc> Excellent — thank you
15:13:25 <fizzie> The problem with domains is, you need to keep paying for them. True, it's not much, but it's the principle of the thing.
15:14:22 -!- at-nyc has quit (Remote host closed the connection).
15:16:52 <b_jonas> fizzie: yeah. so I presume either at-nyc pays for them, or it just goes to resale after they stop paying for them, and is a redirect until that.
15:17:15 <fizzie> That's what would happen if it was transferred to me, at least.
15:17:33 <b_jonas> maybe they don't realize just how old this channel is, and bought it for six years which is basically forever on the internet
15:17:44 <fizzie> I'm not sure our "brand" warrants starting to collect variant domains. Of course if someone else wants to hold esolang.org (either as an alias for esolangs.org, or for any other purpose), I'm fine with that.
15:18:41 <b_jonas> the wiki started in 2005 I think, and the channel before 2002-12
15:19:00 <b_jonas> it's crazy
15:19:33 <b_jonas> "brand" hmm. are we selling T-shirts and such merchandise yet?
15:23:18 <fizzie> Time to set up a CafePress shop, I guess.
15:23:22 <fizzie> (No, we're not.)
15:23:44 <fizzie> I've got a fungot T-shirt for special occasions, but I just got it done at one of those design-your-own places.
15:23:44 <fungot> fizzie: for a while it was frustrating. hb, used his sword into. he went in and killed some powerful monsters with his new hammer to the specibus
15:24:33 -!- hendursa1 has quit (Quit: hendursa1).
15:24:49 -!- hendursaga has joined.
15:28:27 -!- Arcorann_ has quit (Read error: Connection reset by peer).
15:29:23 <b_jonas> I only visit like a handful of internet communities that are this old. perlmonks started in 2000, my user was registered in 2003, but I'm not very active there anymore. Tom7's blog (radar) is active since 2000, but I only found it in 2006 when he organized an ICFP contest. I don't know when I started reading David Madore's blog, but that one started in 2003.
15:30:11 <b_jonas> http://www.madore.org/~david/weblog/d.2003-09-17.0234.html always amazes me: it's a post where David scans some public domain images and hosts them on his webpage. The normal place to host such images would be Wikimedia Commons, but Commons actually didn't exist back then. It's so hard to imagine that now.
15:31:56 <b_jonas> what the. ERICH FRIEDMAN'S MATH MAGIC ENDED?
15:32:41 <b_jonas> it apparently dropped out from its former address http://www2.stetson.edu/~efriedma/mathmagic/archive.html , and there's an archive at https://erich-friedman.github.io/mathmagic/
15:32:52 <b_jonas> that's been going on from 1998 every month
15:33:08 <b_jonas> sad
15:34:47 <b_jonas> that's one of the oldest continuously active website that dropped out of the internet
15:36:16 <b_jonas> not the oldest, because yahoo.com web search started in 1995 and is still active and I have been using it
15:40:52 <fizzie> google.com's been around since 1998, and I'm still using it quite often.
15:41:04 <fizzie> Not exactly a "community" though.
15:43:15 <fizzie> https://www.fidonet.org/genlinfo.html "Accessing Fidonet via BBS is gaining in prominence." :)
15:43:43 <rain1> how come i never heard about erich friedman
15:43:48 -!- mich181189 has quit (Ping timeout: 272 seconds).
15:44:42 -!- ocharles has quit (Ping timeout: 260 seconds).
15:44:53 <myname> neither have i
15:45:13 -!- mich181189 has joined.
15:45:36 <b_jonas> fizzie: yeah.
15:46:31 <fizzie> sieni.us had shut down (well, removed all the content) recently, that's another semi-old (2005) piece of (Finnish) Internet subculture gone. :/
15:47:02 <b_jonas> rain1: I have a link on my homepage. notable parts of his homepage are Math Magic (monthly puzzles posted by Friedmann, optimized by an open community, i.e. anyone can send solutions in email), packing center, puzzle collection, and periodic table of mathematicians (biographies)
15:47:04 -!- ocharles has joined.
15:47:41 <b_jonas> when was en.wikipedia founded? in 2001 apparently
15:48:45 <b_jonas> IOCCC is yearly regular since 1998
15:48:58 <b_jonas> no sorry
15:49:05 <b_jonas> ICFP contest is yearly regular since 1998
15:49:29 <b_jonas> IOCCC is yearly irregular since 1984 WOW
15:49:36 <b_jonas> it's older than me? that's crazy
15:50:06 <b_jonas> I never realized that, despite that its first winner contains machine code for two obsolete CPU architectures
15:50:49 <b_jonas> ioccc/1984/mullender and for VAX-11 and PDP-11
15:51:52 <fizzie> The (probably-)largest-circulation Finnish computer magazine ("MikroBitti") had a BBS system from 1994 onwards, later with some Internet things (email, a ~10-megabyte web page hosting place), and it was still accessible over telnet up to... well, sometime this millennium, anyway.
15:53:47 <fizzie> The BBS had a funny time-keeping system, you were allowed to be connected for up to 60 minutes/day, but you could also save your unused time in the "time bank" I think up to 4 hours or so, which was convenient for some of the larger downloads that would take over an hour.
15:55:45 <b_jonas> fizzie: until what time was it accessible outside the internet?
15:56:55 <fizzie> Apparently only until 2002.
15:57:05 <fizzie> Oh, "outside".
15:57:08 <fizzie> Hmm, not sure.
15:57:34 <fizzie> Maybe they turned off both the internet and phone lines at the same time, in 2002.
15:59:27 <fizzie> https://www.reddit.com/r/IAmA/comments/1m6ift/i_was_the_sysop_of_mbnet_perhaps_the_biggest_bbs/
15:59:57 <b_jonas> I see
16:00:23 <b_jonas> I hope someone has a backup of most of the static content on the web
16:00:46 <b_jonas> (in, like, one small zip on archive.com)
16:15:29 -!- arseniiv has joined.
16:32:32 -!- user24 has joined.
18:02:44 -!- b_jonas has quit (Quit: leaving).
18:04:49 -!- b_jonas has joined.
18:11:50 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=77799&oldid=77748 * Olivato * (+15) /* C */
18:26:41 -!- Remavas has joined.
18:26:59 -!- Remavas has quit (Client Quit).
18:29:43 -!- imode has joined.
18:53:00 <esowiki> [[Complack]] N https://esolangs.org/w/index.php?oldid=77800 * Olivato * (+5013) Created page with "'''Complack''' is a simple, stack-based language created by [[User:Olivato]]. Is based in [[Simplack]] created by [[User:Saka]]. Complack means '''Compl'''ex St'''ack''' is an..."
18:55:16 <esowiki> [[Complack]] https://esolangs.org/w/index.php?diff=77801&oldid=77800 * Olivato * (+36)
18:56:26 <esowiki> [[Complack]] https://esolangs.org/w/index.php?diff=77802&oldid=77801 * Olivato * (-1) /* Fibonacci of the n-th */
18:56:44 <esowiki> [[Complack]] https://esolangs.org/w/index.php?diff=77803&oldid=77802 * Olivato * (-2) /* Subroutine */
18:56:58 <esowiki> [[Complack]] https://esolangs.org/w/index.php?diff=77804&oldid=77803 * Olivato * (-3) /* Using multiple stacks */
18:58:48 <esowiki> [[Simplack]] https://esolangs.org/w/index.php?diff=77805&oldid=56199 * Olivato * (+95)
19:02:40 -!- MDude has joined.
19:08:37 -!- arseniiv has quit (Ping timeout: 258 seconds).
19:10:49 -!- adu has joined.
19:16:13 -!- MDude has quit (Read error: No route to host).
19:31:09 -!- Sgeo has joined.
19:54:43 -!- adu has quit (Quit: adu).
20:02:27 <zzo38> Do you know what software was the MikroBitti BBS system? Was it any common one?
20:03:56 <zzo38> I know a program still being maintained is Synchronet, which now supports JavaScript, although I don't know if it supports typed arrays yet (and other modern JavaScript features).
20:07:35 -!- user24 has quit (Quit: Leaving).
20:33:19 <fizzie> zzo38: It was PCBoard-based, I believe.
20:35:28 <fizzie> I think I set up an instance of BBBS once, just to play around with it, but I don't think I ever had it externally accessible.
20:36:42 <fizzie> Huh, I wonder what's the name of that one Mac OS -oriented BBS system, with a GUI and all.
20:36:48 <fizzie> Oh, right, FirstClass.
20:38:00 <fizzie> The local Mac users' community (fiMUG) had a BBS based on that, I always found it really charming.
20:38:51 <fizzie> https://upload.wikimedia.org/wikipedia/en/1/1c/FirstClass_GLFN_desktop.png
20:39:07 <fizzie> It had these small red flags denoting unread messages.
21:01:13 <b_jonas> fizzie: phpbb can do the small red flags for undread messages in HTML too
21:02:16 <b_jonas> the mnemonic is weird because we never had those kinds of mailboxes here in the city
21:02:26 <b_jonas> I think they only exist in the American country
21:02:43 <b_jonas> with huge fields where you want to see if you got mail from far away
21:05:44 -!- aaaaaa has joined.
23:40:04 <b_jonas> oh great. an advertisment of snack food where the highlighted feature is that the new product is smaller than the previous one of the same brand. smaller. that's it. if they can sell with this, they can sell anything. not that all the spam I get doesn't already prove that they can sell anything.
23:45:50 <fizzie> Is it called "fun-sized"?
23:55:17 <int-e> maybe all the taste is one the surface and all the calories are inside
23:55:24 <int-e> one -> on
23:57:26 <b_jonas> fizzie: no. "mini".
23:57:40 <b_jonas> int-e: it's a snack. calories aren't the point.
23:57:54 <b_jonas> a salty cracker.
23:58:15 <b_jonas> biscuit type, not bread type.
00:05:54 -!- Arcorann_ has joined.
01:25:32 <esowiki> [[05AB1E]] https://esolangs.org/w/index.php?diff=77806&oldid=77796 * TwilightSparkle * (+82) /* 2sable */
01:29:21 <esowiki> [[Talk:SCREAMCODE]] N https://esolangs.org/w/index.php?oldid=77807 * TwilightSparkle * (+227) Created page with "We already had enough of these trivial BF derivatives. When you get bored, please at least do something creative, please! ~~~~"
02:04:52 <esowiki> [[Ecstatic]] https://esolangs.org/w/index.php?diff=77808&oldid=67121 * B jonas * (+54) /* Syntax */
02:10:19 <esowiki> [[Unary]] https://esolangs.org/w/index.php?diff=77809&oldid=75557 * B jonas * (+14) /* See also */
02:16:23 <esowiki> [[Unary]] https://esolangs.org/w/index.php?diff=77810&oldid=77809 * B jonas * (+3) /* See also */
02:26:45 <esowiki> [[Trivial brainfuck substitution]] https://esolangs.org/w/index.php?diff=77811&oldid=69323 * B jonas * (+616) show just how many of these are on the wiki
02:31:25 -!- LKoen has quit (Read error: Connection reset by peer).
02:31:32 -!- LKoen has joined.
03:52:50 <b_jonas> so when I bought four 4TB hard disks with the new machine, planning to have two internal and two that I occasionally plug in to make backups on and swap them so one is off-site all the time, I knew that some of the HDD manufacturers don't tell which of their drives is secretly shingled.
03:54:19 <b_jonas> this is obviously bad, because customers could choose the right HD for the right purpose if they knew which ones are which, eg. I'd buy two non-shingled ones as internal and two shingled ones for the backups; and operating systems could optimize use of shingled drives much better than in the current situation when the firmware just doesn't tell anything about what it's doing and all the OS can do is
03:54:25 <b_jonas> hope that the drive won't lock up for an hour rearranging data.
03:55:18 <b_jonas> and I specifically bought three different types of 4TB drives, from the three different manufacturers. and yes, I admit I bought two of the cheapest of the three types, but still.
03:56:43 <b_jonas> now it turns out that of the four drives that I have bought, Seagate Barracuda ST4000DM004 is definitely shingled, the two Toshiba HDWD240UZSVA P300 are definitely shingled, and Western Digital WD40EZAZ is either not shingled or WD "forgot" to admit because the sysadmins couldn't prove that it's shingled yet
03:58:51 <b_jonas> even not buying two of the cheapest wouldn't have saved me, because the Seagate would have been my second choice for what I'd buy twice (it costs only slightly more than the WD and the main drive in my old computer is WD)
03:59:59 <b_jonas> and when I choose to buy the next hard disk, I'll still only have the choice of buying a years old model, of which sysadmins would have discovered if it was shingled, or buying a new model that may be fake shingled.
04:00:57 <b_jonas> but I hope this will only keep up for a few years, after which hardware manufacturers will go on to another trick because this no longer works.
04:16:59 -!- LKoen has quit (Remote host closed the connection).
06:13:24 -!- aaaaaa has quit (Quit: leaving).
07:43:42 <esowiki> [[05AB1E]] M https://esolangs.org/w/index.php?diff=77812&oldid=77806 * SunnyMoon * (+4) The "citation needed" mark is normally italics on Wikipedia.
07:47:23 -!- sprocklem has quit (Ping timeout: 240 seconds).
07:48:00 <esowiki> [[05AB1E]] M https://esolangs.org/w/index.php?diff=77813&oldid=77812 * SunnyMoon * (+32) Does it make sense?
08:05:38 <esowiki> [[SCREAMCODE]] M https://esolangs.org/w/index.php?diff=77814&oldid=77778 * SunnyMoon * (-8) Please, use swear words only when it is needed.
08:08:47 -!- hendursa1 has joined.
08:11:23 -!- hendursaga has quit (Ping timeout: 240 seconds).
08:42:01 <esowiki> [[Blub]] https://esolangs.org/w/index.php?diff=77815&oldid=53853 * SunnyMoon * (+0) It should be capital. (Modified with ///)
08:52:44 <imode> really. removing a curse word.
08:52:54 <imode> I don't contribute but we're adults.
08:58:20 <imode> you can say fuck on the internet.
09:27:56 -!- sftp has quit (Ping timeout: 240 seconds).
09:29:00 -!- ATMunn_ has quit (Ping timeout: 240 seconds).
09:31:05 -!- ATMunn has joined.
09:31:07 -!- Sgeo_ has joined.
09:33:56 -!- Sgeo has quit (Ping timeout: 240 seconds).
09:34:29 -!- user24 has joined.
09:35:03 -!- sftp has joined.
09:45:45 <esowiki> [[Trivial brainfuck substitution]] M https://esolangs.org/w/index.php?diff=77816&oldid=77811 * SunnyMoon * (+4607) Wikitableified!
09:50:36 -!- Lord_of_Life has quit (Ping timeout: 272 seconds).
09:54:24 -!- LKoen has joined.
09:54:50 -!- LKoen has quit (Read error: Connection reset by peer).
09:55:19 -!- LKoen has joined.
10:14:26 -!- Lord_of_Life has joined.
10:29:49 -!- xelxebar has quit (Remote host closed the connection).
10:30:52 -!- xelxebar has joined.
10:31:24 -!- imode has quit (Ping timeout: 260 seconds).
10:50:54 -!- Sgeo_ has quit (Read error: Connection reset by peer).
11:13:19 -!- kspalaiologos has joined.
11:36:56 <esowiki> [[User:CMinusMinus]] https://esolangs.org/w/index.php?diff=77817&oldid=72049 * CMinusMinus * (+0)
12:25:26 -!- j-bot has quit (Remote host closed the connection).
12:25:41 -!- j-bot has joined.
12:32:20 -!- kspalaiologos has quit (Quit: leaving).
12:35:05 -!- hendursa1 has quit (Quit: hendursa1).
12:35:22 -!- hendursaga has joined.
14:05:57 -!- Arcorann_ has quit (Read error: Connection reset by peer).
14:26:51 -!- laerling has joined.
14:27:55 -!- laerling has quit (Changing host).
14:27:55 -!- laerling has joined.
14:36:56 -!- user24 has quit (Quit: Leaving).
15:11:11 -!- arseniiv has joined.
15:12:59 <esowiki> [[Sabdt]] https://esolangs.org/w/index.php?diff=77818&oldid=77648 * Aspwil * (-15) /* Positive integers addition */
15:24:01 <esowiki> [[Modulous]] M https://esolangs.org/w/index.php?diff=77819&oldid=77599 * Abyxlrz * (+9)
15:33:15 -!- LKoen has quit (Remote host closed the connection).
16:04:02 -!- LKoen has joined.
16:10:39 <esowiki> [[Sabdt]] https://esolangs.org/w/index.php?diff=77820&oldid=77818 * Aspwil * (+998)
16:21:40 <esowiki> [[Sabdt]] https://esolangs.org/w/index.php?diff=77821&oldid=77820 * Aspwil * (+524)
16:30:13 -!- arseniiv has quit (Ping timeout: 264 seconds).
16:34:29 -!- arseniiv has joined.
17:05:53 -!- sprocklem has joined.
17:31:42 <esowiki> [[Sabdt]] https://esolangs.org/w/index.php?diff=77822&oldid=77821 * Aspwil * (+1731) /* Libraries */
17:56:47 <esowiki> [[Special:Log/newusers]] create * Winkula * New user account
18:00:51 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=77823&oldid=77798 * Winkula * (+201) winkula introduces himself
18:03:01 <esowiki> [[BIT]] https://esolangs.org/w/index.php?diff=77824&oldid=30442 * Winkula * (+80) added link to unofficial BIT interpreter
18:03:32 <esowiki> [[Asm2bf]] M https://esolangs.org/w/index.php?diff=77825&oldid=77272 * Palaiologos * (+127)
18:31:52 -!- Cale has quit (Remote host closed the connection).
18:33:44 -!- Cale has joined.
19:02:29 -!- Sgeo has joined.
19:02:35 -!- xelxebar has quit (Remote host closed the connection).
19:02:58 -!- xelxebar has joined.
19:11:35 -!- imode has joined.
19:47:07 -!- FreeFull has joined.
19:49:26 -!- FreeFull has quit (Read error: Connection reset by peer).
20:11:53 -!- FreeFull has joined.
21:21:37 <esowiki> [[Special:Log/newusers]] create * CogitoErgoCode * New user account
21:41:39 -!- sprocklem has quit (Ping timeout: 260 seconds).
22:26:42 -!- xelxebar has quit (Remote host closed the connection).
22:27:03 -!- xelxebar has joined.
22:30:40 -!- FreeFull has quit.
22:33:27 -!- Arcorann_ has joined.
22:53:20 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
00:03:54 * pikhq contemplates doing things that are esoteric-related again
00:16:01 -!- arseniiv has quit (Ping timeout: 246 seconds).
02:32:18 <esowiki> [[Special:Log/newusers]] create * Scratcher * New user account
02:40:52 -!- fungot has quit (Ping timeout: 260 seconds).
02:45:23 -!- fungot has joined.
04:02:26 -!- xelxebar has quit (Remote host closed the connection).
04:02:55 -!- xelxebar has joined.
04:12:19 -!- sprocklem has joined.
04:35:55 <pikhq> been so long though. what even to do...
04:37:19 <imode> join me in shaving the steps off of this RAM ruleset.
05:42:17 <zzo38> Are there standard TeX fonts for unslanted lowercase Greek alphabets?
05:42:45 <zzo38> (It would probably be easy enough to make such fonts, but I want to know if there are standard ones.)
05:55:16 <Arcorann_> There should be as part of whatever packages people use to type Greek
05:59:09 <zzo38> Maybe, but I meant for mathematical typesetting, not for writing Greek words.
07:14:10 -!- sprocklem has quit (Quit: ...).
07:30:08 -!- Sgeo has quit (Read error: Connection reset by peer).
08:08:39 -!- hendursa1 has joined.
08:11:03 -!- hendursaga has quit (Ping timeout: 240 seconds).
08:22:14 -!- imode has quit (Ping timeout: 256 seconds).
08:27:43 -!- hendursa1 has quit (Ping timeout: 240 seconds).
08:29:52 -!- hendursa1 has joined.
09:17:09 <esowiki> [[User:SunnyMoon]] https://esolangs.org/w/index.php?diff=77826&oldid=77591 * SunnyMoon * (+41) 33!
09:25:17 <esowiki> [[User:SunnyMoon]] M https://esolangs.org/w/index.php?diff=77827&oldid=77826 * SunnyMoon * (+63) I am also playing around with TPT!
09:49:08 -!- Lord_of_Life_ has joined.
09:51:27 -!- Lord_of_Life has quit (Ping timeout: 260 seconds).
09:51:27 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
11:28:06 <esowiki> [[Babel]] N https://esolangs.org/w/index.php?oldid=77828 * Sinthorion * (+2598) Created page with "'''Babel''' is an esolang currently developed by [[User:Sinthorion|Sinthorion]], in which the source code may only contain the lowercase letters, whitespace, commas and period..."
12:14:59 -!- arseniiv has joined.
12:25:49 <esowiki> [[User:SoicBR]] N https://esolangs.org/w/index.php?oldid=77829 * SoicBR * (+109) Created page with "User:SoicBR is a hobbyst programmer and game developer. He created the A.R.T.I.C.L.E. programming language."
12:36:59 -!- hendursa1 has quit (Quit: hendursa1).
12:37:16 -!- hendursaga has joined.
13:20:02 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=77830&oldid=77823 * OsmineYT * (+168)
13:34:37 <esowiki> [[A.R.T.I.C.L.E. Lang]] N https://esolangs.org/w/index.php?oldid=77831 * SoicBR * (+9191) Created page with "A.R.T.I.C.L.E. is an esoteric programming language created in 5/10/2020 by [[User:SoicBR]] A.R.T.I.C.L.E. stands for: Apple Random Tower Island Cat Lol Elephant In A.R.T..."
13:44:45 <esowiki> [[A.R.T.I.C.L.E. Lang]] https://esolangs.org/w/index.php?diff=77832&oldid=77831 * SoicBR * (-68) /* Phrases */
13:45:00 <esowiki> [[A.R.T.I.C.L.E. Lang]] https://esolangs.org/w/index.php?diff=77833&oldid=77832 * SoicBR * (-46) /* Phrases */
13:50:05 <esowiki> [[A.R.T.I.C.L.E. Lang]] https://esolangs.org/w/index.php?diff=77834&oldid=77833 * SoicBR * (+91) /* Phrases */
13:51:18 <esowiki> [[A.R.T.I.C.L.E. Lang]] https://esolangs.org/w/index.php?diff=77835&oldid=77834 * SoicBR * (+0)
13:59:25 <esowiki> [[A.R.T.I.C.L.E. Lang]] https://esolangs.org/w/index.php?diff=77836&oldid=77835 * SoicBR * (+91)
14:02:06 <esowiki> [[Truth-machine]] https://esolangs.org/w/index.php?diff=77837&oldid=77637 * SoicBR * (+1496) /* Implementations */
14:05:25 <esowiki> [[Truth-machine]] M https://esolangs.org/w/index.php?diff=77838&oldid=77837 * SoicBR * (+0) /* Implementations */
14:09:51 -!- Sgeo has joined.
14:10:03 <esowiki> [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=77839&oldid=77789 * SoicBR * (+1824)
14:29:59 -!- Arcorann_ has quit (Read error: Connection reset by peer).
14:31:14 <esowiki> [[User:SoicBR]] M https://esolangs.org/w/index.php?diff=77840&oldid=77829 * SoicBR * (+28)
15:03:52 <esowiki> [[A.R.T.I.C.L.E. Lang]] M https://esolangs.org/w/index.php?diff=77841&oldid=77836 * SoicBR * (-4) /* The accumulator(A) */
15:03:53 -!- FreeFull has joined.
15:22:06 -!- uplime has changed nick to Frankenstein.
16:11:34 -!- LKoen has joined.
17:00:13 -!- MDude has joined.
17:21:40 <shachaf> `olist 1216
17:21:42 <HackEso> olist https://www.giantitp.com/comics/oots1216.html: shachaf oerjan Sgeo FireFly boily nortti b_jonas
17:32:04 <b_jonas> `thanks HackEso
17:32:06 <HackEso> Thanks, HackEso. ThackEso.
17:39:10 <int-e> Thacky.
17:56:07 -!- unrooted has joined.
18:14:48 <esowiki> [[2DFuck]] M https://esolangs.org/w/index.php?diff=77842&oldid=77757 * SunnyMoon * (+4) linkify
18:15:45 <esowiki> [[!@$%^&*()+]] M https://esolangs.org/w/index.php?diff=77843&oldid=77767 * SunnyMoon * (+2) linkify
18:18:33 <int-e> . o O ( hmm, bash problem: Wait for a child process that the shell didn't spawn itself. Currently that's the last thing I want to do so I can do exec perl -e "waitpid($PID,0)"... )
18:29:20 -!- imode has joined.
18:54:27 <fizzie> If the shell didn't spawn it, how is it a child of the shell?
18:57:44 <fizzie> Hmm, guess it could have been spawned by the process that exec'd the shell.
18:59:36 <shachaf> Perhaps the shell ptraced it.
19:00:40 <shachaf> Man, ptrace has a bug where it makes epoll_wait (but not poll etc.) fail with EINTR.
19:01:05 -!- trn has quit (Ping timeout: 240 seconds).
19:01:57 <shachaf> The other day I ran into a program where that was actually a problem (it wasn't restarting on EINTR).
19:02:08 -!- hendursaga has quit (Remote host closed the connection).
19:03:06 -!- hendursaga has joined.
19:23:47 <int-e> fizzie: It's spawned by the process that execs the shell.
19:24:51 <int-e> Using clone() with too many flags, so doing *that* in the shell is hardly an option.
19:30:22 <shachaf> Why does the thing exec a shell?
19:30:30 <int-e> because I'm lazy
19:31:25 <int-e> It's more convenient to write a dozen of shell commands than to figure out their C equivalent.
19:32:06 * int-e is playing with namespaces
19:34:52 <int-e> Anyway, I why do I have to explain why on #esoteric :P
19:35:33 <shachaf> Why do I have to explain why you have to explain why on #esoteric?
19:35:41 <int-e> (I know I'm guilty of asking why too.)
19:37:40 <shachaf> One thing about ptrace is, as far as I can tell, you have to be willing to get unknown pids from wait()
19:38:01 <shachaf> Since a process might fork and then you might get an event from the child before you get a fork event from the parent.
19:38:27 <shachaf> Man, fork, what an esoteric bit of nonsense that's in every Unix system.
19:39:38 <int-e> isn't it a really clever hack though
19:42:13 <b_jonas> shachaf: no, not really. firstly, you only start to automatically ptrace child processes if you set the PTRACE_O_TRACEFORK option, which I think isn't default; second you can listen to PTRACE_EVENT_FORK, PTRACE_EVENT_VFORK, PTRACE_EVENT_CLONE messages to find out about those children, without having to decode every system call
19:42:46 <shachaf> b_jonas: Yes, it's true, I meant only if you set TRACE{FORK,CLONE,VFORK}
19:43:11 <shachaf> But you might get the wait results before the PTRACE_EVENT telling you about the new pid.
19:43:59 <shachaf> I suppose you could avoid waitpid(-1) and only give it specific pids that you know about, but that doesn't seem great.
19:44:09 <b_jonas> but waiting for arbitrary pids with waitpid or wait4 is usually the default anyway, unless perhaps you use some "fun" combination of threading and signals to find out about the pids.
19:44:45 <b_jonas> like, if you have just one thread, you might as well call waitpid or wait4 with pid=-1, since you have to handle every wait notification sooner or later anyway
19:44:53 <b_jonas> at worst you store the data for later
19:46:14 <b_jonas> waiting for a specific pid is a shortcut only for very simple programs, and doing a ptrace more or less excludes that
19:46:21 <shachaf> I agree.
19:46:39 <shachaf> But it means you have to handle unknown pids, as far as I can tell.
19:47:14 <shachaf> These are my notes about using ptrace: https://shachaf.net/tmp/ptrace-notes.txt
19:47:39 <b_jonas> ok
19:48:15 <b_jonas> I don't expect to use ptrace directly, it's usually best to leave that to debuggers or strace
19:48:36 <shachaf> I wrote a program which is like a mini-strace.
19:49:02 <b_jonas> ok
20:07:44 <rain1> I wonder if i should switch to qwerty
20:09:25 <myname> from what
20:10:33 <rain1> dvorak
20:10:41 <b_jonas> rain1: depends on what kind of text you usually type
20:10:58 <rain1> the problem is the key caps are different from what they do
20:11:08 <rain1> and programs on my computre are sometimes not acting right because of it
20:11:26 <b_jonas> you could even switch between them for those programs
20:12:33 <b_jonas> I tried dvorak for a few weeks, but decided I don't want it
20:12:43 <b_jonas> might still experiment with some nonstandard layouts some time in the future
20:13:00 <rain1> i do have caps lock for switching
20:14:16 <b_jonas> the keycaps shouldn't matter. just don't look at the keycaps, and perhaps put a layout poster on the wall for a few weeks while you get used to it so you can reference it quickly
20:14:28 <b_jonas> I used a dead-tree poster to learn dvorak
20:16:08 <rain1> ive been using dvorak for many years but i think the keycaps do matter
20:18:14 -!- trn has joined.
20:19:25 <zzo38> Can you use system call emulation to avoid the bug with epoll_wait? (Better would be to fix the bug in the kernel, if it can, though, I suppose)
20:20:23 -!- mich181189_ has joined.
20:21:36 <myname> keycaps don't really matter
20:21:48 <zzo38> I think many programs are designed to be used with qwerty, although in many cases you can customize the key bindings anyways
20:24:18 -!- sprocklem has joined.
20:25:52 -!- mich181189 has quit (Ping timeout: 244 seconds).
20:25:55 -!- mich181189_ has changed nick to mich181189.
20:33:54 <b_jonas> rain1: keycaps matter for the rare keys, like printscreen, I always get confused where that one is; and for learning
20:34:13 <b_jonas> keycaps also matter if you have one of these stupid keyboards that just rearranges the normal layout for no reason
20:34:20 <b_jonas> but I just don't want to buy those
20:34:57 <b_jonas> zzo38: yes, the classic example for that is wordstar, it's definitely designed for qwerty
20:42:22 <zzo38> Yes, and some other DOS programs are designed to use keys similar to Wordstar too
21:02:14 -!- unrooted has quit (Ping timeout: 260 seconds).
21:41:21 -!- Arcorann_ has joined.
21:41:55 -!- Arcorann_ has quit (Remote host closed the connection).
21:42:21 -!- Arcorann_ has joined.
21:51:51 <int-e> . o O ( Turbo Pascal IDE )
22:19:55 -!- ^[_ has quit (Ping timeout: 272 seconds).
22:21:55 -!- ^[_ has joined.
22:24:20 -!- Sgeo_ has joined.
22:27:33 -!- Sgeo has quit (Ping timeout: 258 seconds).
22:34:12 <shachaf> I apt installed Free Pascal the other day.
22:34:27 <shachaf> It has the classic Turbo Pascal look. It's great.
22:34:32 <shachaf> Maybe Pascal is just a good language?
22:45:05 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
22:55:51 <arseniiv> shachaf: does it try to have features like in Scala, C# etc.? I tend to associate Pascal and Delphi with something which is not comfortable to code in because of a squareish type system, lack of closures etc.. I heard Delphi has risen from the earth but I hope Free Pascal would be even better. If it has cool fuctional features surely I’m going to read about it more in the future!
22:56:12 <shachaf> I don't know.
22:56:18 <shachaf> I don't want most of the features in Scala.
22:57:50 <arseniiv> <b_jonas> I used a dead-tree poster to learn dvorak => have you felt it a useful system?
22:58:30 <arseniiv> I type with two index fingers and even can do so blind when the keyboard don’t changes its location too much
22:59:05 <arseniiv> <b_jonas> I tried dvorak for a few weeks, but decided I don't want it => ah, sorry, didn’t read that in time
23:00:28 <arseniiv> shachaf: I don’t know Scala’s features to the full extent so maybe it was a bad example language, yep
23:00:44 <shachaf> Should I use it instead of C, for example?
23:01:10 <arseniiv> don’t changes => oof grammar why don’t you love me
23:01:37 <arseniiv> shachaf: Scala definitely no, or are you about Free pascal?
23:01:48 <shachaf> Free Pascal.
23:02:58 <arseniiv> then I’ll second you on that. If it allows that I would have a big benefit from learning it, to write small self-contained cross-platform utility programs at least
23:03:57 <arseniiv> as I don’t want to touch C even when it’s definitely simpler than C++ and maybe even has less strange quirks
23:04:37 <esowiki> [[A.R.T.I.C.L.E. Lang]] M https://esolangs.org/w/index.php?diff=77844&oldid=77841 * SoicBR * (-2) /* The Stack */
23:04:44 <arseniiv> but if today’s Pascal not strong enough then I’ll try to live without both
23:07:12 -!- FreeFull has quit (Quit: Night).
23:09:23 -!- arseniiv has quit (Ping timeout: 260 seconds).
23:24:26 <b_jonas> arseniiv: I found that it might be useful for English, but I had to type text in Hungarian too, and it doesn't work well for that. the design of dvorak is based on two things: common letters on easy to reach positions, and vowels on one hand while common consonants on the other so you alternate your hands most of the time. you could designe something based on that for Hungarian, but it would have to
23:24:32 <b_jonas> look different from dvorak.
23:24:49 <b_jonas> I do know at least one person who uses a close variant of dvorak for Hungarian too though.
23:25:42 <b_jonas> I type with nine or ten fingers, except if I need to type when I'm eating with my left hand, in which case I type with all five fingers of my right hand.
23:26:01 <b_jonas> or, rarely, all five fingers of my right hand plus my left pinky
23:30:49 <b_jonas> M:tG stuff: so apparently there are three 3/2 creatures for 1G without drawbacks. The first one was Terrain Elemental from Kaladesh, a vanilla; then Kraul Harpooner from Guilds of Ravnica; and now Tajuru Paragon from Zendikar Rising, which is an Elf Warrior. This is the last nail on Elvish Warrior's coffin.
00:26:02 -!- tromp has quit (Read error: Connection reset by peer).
00:26:39 -!- tromp has joined.
01:51:28 <pikhq> poor, poor elvish warrior
02:52:11 -!- adu has joined.
03:24:19 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
03:27:25 -!- MDude has joined.
04:03:25 -!- sprocklem has quit (Ping timeout: 240 seconds).
04:04:16 -!- adu has quit (Quit: adu).
06:05:01 -!- ocharles has quit (*.net *.split).
06:05:02 -!- Soni has quit (*.net *.split).
06:05:02 -!- spruit11 has quit (*.net *.split).
06:05:02 -!- izabera has quit (*.net *.split).
06:05:02 -!- paul2520 has quit (*.net *.split).
06:05:12 -!- Soni has joined.
06:05:15 -!- ocharles has joined.
06:10:12 -!- spruit11 has joined.
06:10:12 -!- izabera has joined.
06:10:12 -!- paul2520 has joined.
06:40:04 <esowiki> [[SCREAMCODE]] M https://esolangs.org/w/index.php?diff=77845&oldid=77814 * Rdebath * (+411) Add TBI link
06:43:19 <esowiki> [[SCREAMCODE]] M https://esolangs.org/w/index.php?diff=77846&oldid=77845 * Rdebath * (+14) Links at top of page
07:55:54 -!- Sgeo_ has quit (Read error: Connection reset by peer).
08:08:52 -!- hendursa1 has joined.
08:11:23 -!- hendursaga has quit (Ping timeout: 240 seconds).
08:23:23 -!- imode has quit (Ping timeout: 240 seconds).
08:24:00 -!- cpressey has joined.
08:26:08 <esowiki> [[Pxem]] https://esolangs.org/w/index.php?diff=77847&oldid=75428 * YamTokTpaFa * (+36)
09:45:25 -!- b_jonas has quit (Ping timeout: 240 seconds).
09:51:55 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
09:52:02 -!- Lord_of_Life_ has joined.
09:53:16 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
09:58:39 <cpressey> int-e: I was playing around with your solitaire game again. I still can't wrap my head around all the parts.
09:58:59 <cpressey> I remember asking if prompt requires that what you give it is a GADT, in order for it to be correct by construction.
09:59:15 <cpressey> I think the answer is "no", because you can always make a GADT that just behaves like a plain ADT anyway.
10:01:27 <cpressey> I had to hunt to find out what "|" in a type class definition means, apparently it introduces a "functional dependency", which seems straightforward, at least on the surface, but maybe it's far more powerful than its most common use cases suggest
10:06:37 <shachaf> What is this thing?
10:07:40 <cpressey> shachaf: https://hackage.haskell.org/package/MonadPrompt-
10:08:13 <shachaf> I know that one.
10:08:32 <shachaf> Hmm, is the question about the Prompt part or the type class part?
10:09:03 <shachaf> FunctionalDependencies are famously tricky in some cases, but this particular use is used by all the monad type classes, like MonadState.
10:09:48 <cpressey> "You can construct a monad very simply with prompt, by putting all of its effects as terms in a GADT, like the following example:" -- my question is basically, does it have to be a GADT?
10:10:54 <shachaf> It can be anything.
10:11:27 <shachaf> Prompt f is a monad for any type constructor f.
10:11:55 <cpressey> Yeah, I vaguely remember going over this now.
10:12:15 <shachaf> In Haskell, "GADT" means a particular syntax, but everything written with the GADT can also be written without, using a couple of extensions (existential quantifiers and type equality).
10:12:32 <cpressey> So it's just that GADTs are really useful for this sort of application, is why they're mentioned specifically?
10:12:34 <shachaf> (And in fact GHC represents GADTs as if you'd written them as regular data types with those features.)
10:15:35 <shachaf> I don't know what this solitaire context is, but I usually think of this Prompt thing as being Free (Coyoneda f).
10:16:06 <shachaf> Oh, they CPS-encode it too, so there are three mostly orthogonal layers to untangle here.
10:33:14 -!- Soni has quit (*.net *.split).
10:33:24 <shachaf> Anyway, you have data Free f a = Leaf a | Branch (f (Free f a)), which is the free monad on a functor f, and also a kind of tree with f-shaped branches.
10:33:57 <shachaf> And you have Coyoneda f a = exists x. (x, x -> f a), which is the free (or cofree? Free, I think) functor on a type constructor.
10:34:39 -!- Soni has joined.
10:34:48 <shachaf> And if you combine them you get data Prompt f a = Leaf a | forall x. Branch x (x -> f (Prompt f a))
10:35:22 <shachaf> And if you Church-or-whatever-encode that you get the type in that file.
10:52:45 -!- wib_jonas has joined.
11:02:31 -!- LKoen has joined.
11:17:53 -!- cpressey has quit (Quit: WeeChat 1.9.1).
11:32:19 <int-e> There's a lot of propaganda against functional dependencies ever since type families entered the arena.
11:33:22 <int-e> It's also worth noting that MonadPrompt is so old that type families didn't exist.
11:33:41 <int-e> (I think.)
11:34:27 <shachaf> I think the propaganda has been there since before type families.
11:34:47 <shachaf> Anyway people tried type families for mtl and no one used it, right?
11:35:46 <shachaf> I think because MonadState s m => ...s... is better than MonadState m => ...(StateType m)..., or something.
11:37:00 -!- arseniiv has joined.
11:37:18 <arseniiv> fungot how’s the weather?
11:37:18 <fungot> arseniiv: john, it appears we have reached an impasse make a man feel totally justified in sporting an unnecessarily elaborate assortment of game setup. he's usually got a lot
11:37:18 <int-e> Yeah I think in the particular case that is a single associated type family, fundeps are more convenient.
11:37:40 <arseniiv> ^style ukparl
11:37:40 <fungot> Selected style: ukparl (UK Parliament debates from brexit referendum to late 2018)
11:38:34 <arseniiv> hi! type families are cool in all their kinds
11:42:01 <int-e> What did I say? Propaganda.
11:49:18 <arseniiv> I’ll need to read the logs it seems :D
11:50:59 <arseniiv> but how could one live a plentiful life without type families
11:51:55 <arseniiv> when I try to write something typing-nontrivial in usual languages I constantly stumble on their absense
11:53:23 <int-e> You'll never appreciate the elegance and frugality of a fundep life, I suppose.
11:53:32 <wib_jonas> but how often do you actually write something typing-nontrivial?
11:53:50 * int-e is writing shellscripts right now.
11:53:54 <int-e> next question!
11:54:04 <wib_jonas> I like that all of fundeps and type families and data families are available, but I don't actually use them all that often
11:54:08 <int-e> oh, wait, negations
11:54:39 <int-e> But I still kind of agree with the sentiment.
11:54:49 <int-e> It's odd :)
11:55:34 <wib_jonas> admittedly I use Eigen to do numeric computations with vectors and matrixes, and it involves what would require rather complicated types if it was written in a typed language
11:55:56 <int-e> wib_jonas: But I imagine an Enterprise Haskell developer will *have* to deal with advanced type system features like type families, constraints a lot simply because many libraries adopt them.
11:57:05 <int-e> (I don't think "Enterprise Haskell" is an established term, but I believe we have long reached the point where it has become applicable.)
11:57:24 <int-e> Or how about "Myopic Haskell" for lens-centric code.
11:57:27 <wib_jonas> Eigen involves a lot of rather weird magic by the way, and you actually have to be careful with it because it's easy to misuse accidentally
11:58:07 <int-e> I've played with Eigen once and it wasn't easy to coerce it into doing what I wanted.
12:00:02 <int-e> (Though my problem wasn't correctness, it was to avoid allocations (through template instantiations) and get the compiler to elide some arithmetic that had no effect. I forgot the details, as usual.)
12:03:12 <wib_jonas> the most tricky part is that if you build it multiple times with different instruction set extensions targeted by the compiler options (most commonly one for AVX and one for SSE2), the different copies can be binary incompatible with each other, unless you define the internal representation explicitly with preprocessor macros.
12:03:29 <arseniiv> <int-e> You'll never appreciate the elegance and frugality of a fundep life, I suppose. => fundeps are okay I guess. I wrote with them a bit
12:03:59 <wib_jonas> This is partly documented in http://eigen.tuxfamily.org/dox/TopicPreprocessorDirectives.html but not all details are documented well.
12:04:40 <wib_jonas> Plus you can sometimes get errors if you use certain older Eigen versions with certain compilers.
12:04:44 <arseniiv> <wib_jonas> but how often do you actually write something typing-nontrivial? => yes. I mean, I usually find a way to interesting typing questions to perfectly bland code, or maybe not perfectly bland
12:05:43 <int-e> (Am I the only one who has been intimidated by `lens` for years and never touched it as a result?)
12:08:39 <arseniiv> int-e: no, there are fables about its great looming height, and personally I used lens once when tried to make a simple Scheme-like interpreter and I was glad for a bunch of operators there, but I never knew all of lens and now I forgot even those bits
12:09:27 <arseniiv> though I want basic lens functionality in mainstream languages, again. They start adopting immutable data but don’t include “immutable setters” and ways to compose all that
12:11:14 <arseniiv> so I think basic `lens` usage is not hard to achieve, but maybe newer lens libraries give even easier life? I haven’t used them; is there a comparison somewhere, from a user’s practical standpoint?
12:19:02 <wib_jonas> isn't "basic lens functionality" stuff like map and reduce?
12:19:31 <wib_jonas> many mainstream languages already have stuff like that
12:45:03 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
12:55:33 -!- cpressey has joined.
13:06:13 -!- hendursa1 has quit (Quit: hendursa1).
13:06:30 -!- hendursaga has joined.
13:09:41 <wib_jonas> oops
13:10:33 <wib_jonas> I made an incorrect change to my program, and suddenly I was getting weird errors from later down the line
13:11:17 <wib_jonas> nondeterministic ones
13:31:29 <esowiki> [[User talk:PythonshellDebugwindow]] https://esolangs.org/w/index.php?diff=77848&oldid=77771 * OsmineYT * (+196) /* Discord account */ new section
13:36:49 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=77849&oldid=77799 * JWinslow23 * (+13) Added Poetic
13:48:48 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
13:51:55 -!- Sgeo has joined.
13:53:08 -!- Lord_of_Life has joined.
14:09:27 <cpressey> My latest compiler project (in Haskell) has stalled because it is clear that it will need to generate better error messages; and in order to do that it will need to keep track of some context, i.e. the current function; and in order to do that it will need to do something more sophisticated than just use the Either monad everywhere.
14:09:50 <cpressey> I could use a monad transformer. I don't want to do that.
14:10:55 <Taneb> What do you want to do
14:11:13 <cpressey> I could maybe use applicative functors; compose a writer applicative with a may-fail applicative. I'd kind of like to do that, but it would mean re-writing all the monadic code I've written so far.
14:12:23 <cpressey> Or I could "roll my own monad" with MonadPrompt (or Operational or Free), which is why I was talking about it this morning.
14:13:14 <cpressey> Leaning towards the latter.
14:15:01 <Taneb> Follow your heart!
14:20:07 -!- arseniiv has quit (Ping timeout: 240 seconds).
14:20:40 -!- Arcorann_ has quit (Read error: Connection reset by peer).
14:42:15 -!- arseniiv has joined.
14:59:49 <int-e> eww
15:00:35 <int-e> (Usually, when your heart is in front of you, things have gone seriously wrong.)
15:05:14 <int-e> Mwhahaha. "There is no NAT with IPv6."
15:14:11 -!- cpressey has quit (Quit: WeeChat 1.9.1).
15:15:24 <int-e> (source: a random person on the internet who felt confident enough to answer a question on serverfault (stackexchange))
15:17:01 -!- arseniiv has quit (Ping timeout: 264 seconds).
15:17:20 <fizzie> Source: an optimist.
15:17:57 <myname> well, technically, you don't _need_ NAT with ipv6
15:18:06 -!- cpressey has joined.
15:34:23 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
15:37:42 <esowiki> [[Computerdeutsch]] https://esolangs.org/w/index.php?diff=77850&oldid=76633 * Orangeyy * (+0)
15:40:02 <fizzie> I looked into NAT with IPv6 briefly, when I had an ISP that just assigned a single /64 for non-business subscribers as their "native IPv6 support". Instead, I think I ended up with something even weirder, like proxy neighbor discovery to claim the addresses. But it was pretty awkward to need separate IPv4 network segments (since there was just the one public IPv4 address) while IPv6 was flat.
15:40:17 <esowiki> [[Computerdeutsch]] M https://esolangs.org/w/index.php?diff=77851&oldid=77850 * Orangeyy * (+4)
15:41:44 <esowiki> [[EWagon]] M https://esolangs.org/w/index.php?diff=77852&oldid=76629 * Orangeyy * (-10)
15:42:24 <fizzie> Fortunately the next two ISPs did assign a /48 (I think) and a /56, respectively.
15:43:15 <wib_jonas> why isn't a /64 enough?
15:43:44 <wib_jonas> that's big enough to subdivide, it's larger than the whole ipv4 space, isn't it?
15:43:52 <fizzie> You can't subdivide a /64.
15:43:57 <fizzie> Or you're not supposed to, anyway.
15:44:13 <fizzie> And the standard autoconfiguration won't work for segments smaller than /64.
15:44:34 <wib_jonas> ah
15:44:48 <wib_jonas> so that's why you nated multiple segments into that?
15:45:55 <fizzie> Further, they didn't really "assign a /64" in the sense that they'd route all traffic for a /64 to you, they just expected to learn about all hosts in a /64 via neighbor discovery.
15:46:48 <wib_jonas> ah
15:47:28 <fizzie> So I looked into NAT because that way it'd at least have been the exact same setup for IPv4 and IPv6 (the router connected to the ISP gets a public address, the LAN uses private addresses, and NAT takes care of allowing other machines to access the public Internet).
15:47:28 <wib_jonas> I never configured ipv6, I don't know how this works
15:48:03 <wib_jonas> well, unless you count "leave everything as defaults and hope the computer and the router figures out something when they talk to each other" or "disable ipv6 on an interface" as configuring ipv6
15:49:47 -!- arseniiv has joined.
15:52:30 <wib_jonas> fizzie: I see
15:52:47 <wib_jonas> and did that work?
15:53:26 <fizzie> If memory serves, it did. But this was 6 years and three ISPs ago.
15:53:49 <fizzie> The current setup I have uses DHCPv6 prefix delegation, which I understand has become relatively common for "consumer" applications. The router is given a prefix (typically a /56), and can then allocate a /64 (or more) for any network(s) it wants to have, and let the final address assignment happen either via stateless (neighbor discovery + router advertisement) or stateful (DHCPv6) autoconfiguration.
15:56:48 <fizzie> Uh, actually... now that I've said that, I went to check, and after the most recent reboot, the router actually *hasn't* gotten an IPv6 address at all. Hmm.
15:57:45 <fizzie> Well, up until now it's been working fine, and I'm sure it'd still do if I wasn't masochistic enough to run a bleeding-edge OpenWRT just because the kind of software you get otherwise is depressing.
16:00:15 -!- cpressey has quit (Quit: WeeChat 1.9.1).
16:02:32 <wib_jonas> so that means you don't have ipv6 connection to the internet?
16:04:14 <fizzie> Yes. I didn't even notice.
16:06:17 <fizzie> Ooh, that probably also explains why the HTTP black-box monitoring I've set up for esolangs.org has been reporting the site as down. (Didn't prioritize looking into that because it seemed to be working fine.)
16:15:51 <wib_jonas> hehe
16:18:32 <esowiki> [[Special:Log/newusers]] create * WhyNot? * New user account
16:19:41 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=77853&oldid=77830 * WhyNot? * (+31)
16:21:26 <esowiki> [[User:WhyNot?]] N https://esolangs.org/w/index.php?oldid=77854 * WhyNot? * (+22) Created page with " print('Hello World!')"
16:23:58 <int-e> https://paste.debian.net/1166119/ <-- see anything odd? :-)
16:25:02 <wib_jonas> int-e: there are suspiciously too few processes. other than that, no.
16:25:17 <wib_jonas> but I usually use ps -H intead of pstree
16:25:23 <int-e> wib_jonas: look at the name of PID 1
16:25:44 <wib_jonas> meh, that just means someone started the machine in single user
16:26:05 <int-e> Oh I guess that would do it.
16:26:21 <int-e> It would also explain the lack of services :)
16:26:41 <wib_jonas> yeah
16:27:19 <int-e> Anyway, this is still me playing with containers. The bash will be there, but the ultimate goal is to do some initialization and then hand things off to a proper init.
16:27:32 <wib_jonas> ok
16:28:22 <int-e> But also, with sshd running this is already pretty usable.
16:28:50 <int-e> So I'm somewhat elated for once. Bbl.
16:33:07 -!- FreeFull has joined.
16:34:24 <fizzie> `` pstree -p | paste
16:34:26 <HackEso> https://hack.esolangs.org/tmp/paste/paste.21095
16:35:36 <fizzie> Hm, well, "init" is a pretty boring name for PID 1.
16:35:53 <wib_jonas> ooh, is that perl running the rnooodl script?
16:35:59 <wib_jonas> I hate that script but I'm too lazy to fix it
16:36:58 <fizzie> Yeah, guess so. And the cat(49) is the cat that makes the output not a terminal.
16:38:19 <fizzie> There aren't *that* many processes in the container one level up either, though a bit more than in int-e's example: http://ix.io/2zUQ
16:40:07 -!- LKoen has joined.
16:45:10 -!- wib_jonas has quit (Quit: Connection closed).
17:24:38 -!- user3456 has joined.
17:29:57 -!- Sgeo_ has joined.
17:32:12 -!- Sgeo has quit (Ping timeout: 260 seconds).
17:47:29 <int-e> oh, socat can fork children? hmm.
17:48:21 -!- user3456 has set topic.
17:48:35 -!- user3456 has set topic: Welcome to the multinational league for esoteric programming proliferation, protection, and protestation! | https://esolangs.org | logs: https://esolangs.org/logs/ http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D https://github.com/kspalaiologos/esologs/.
17:48:55 <user3456> oops
17:49:00 <int-e> (that may be easier than what I'm currently doing for lambdabot)
17:51:16 <int-e> No worries... as long as the gist of it and the links to the logs and wiki are preserved and you don't spam the topic, noone will complain.
17:54:51 <esowiki> [[User:Orangeyy]] M https://esolangs.org/w/index.php?diff=77855&oldid=76628 * Orangeyy * (-26)
17:57:21 <user3456> Does anyone know what happened to the zem.fi hill for BF Joust?
18:00:38 -!- b_jonas has joined.
18:01:09 -!- Sgeo_ has quit (Read error: Connection reset by peer).
18:06:53 -!- Sgeo has joined.
18:30:07 <esowiki> [[Computerdeutsch]] https://esolangs.org/w/index.php?diff=77856&oldid=77851 * Orangeyy * (+212)
19:25:00 <esowiki> [[Filth]] M https://esolangs.org/w/index.php?diff=77857&oldid=77554 * Bananaapple * (-4) optimized examples
19:47:14 -!- arseniiv has quit (Ping timeout: 260 seconds).
19:49:36 -!- TheLie has joined.
19:51:53 -!- sprocklem has joined.
19:53:31 <esowiki> [[User talk:PythonshellDebugwindow]] M https://esolangs.org/w/index.php?diff=77858&oldid=77848 * PythonshellDebugwindow * (+135) /* Discord account */
19:54:55 -!- TheLie has quit (Remote host closed the connection).
20:51:05 <esowiki> [[User talk:PythonshellDebugwindow]] https://esolangs.org/w/index.php?diff=77859&oldid=77858 * OsmineYT * (+82)
20:51:20 <esowiki> [[User talk:PythonshellDebugwindow]] https://esolangs.org/w/index.php?diff=77860&oldid=77859 * OsmineYT * (+113)
21:52:45 -!- Frankenstein has changed nick to Frankenlime.
21:54:29 -!- Arcorann_ has joined.
21:55:00 -!- Arcorann_ has quit (Remote host closed the connection).
21:55:24 -!- Arcorann_ has joined.
22:16:39 <esowiki> [[User talk:SoicBR]] N https://esolangs.org/w/index.php?oldid=77861 * SoicBR * (+2) Created page with "a."
22:20:52 <esowiki> [[User talk:SoicBR]] https://esolangs.org/w/index.php?diff=77862&oldid=77861 * OsmineYT * (+54) /* A new topic */ new section
22:21:11 <esowiki> [[User talk:SoicBR]] https://esolangs.org/w/index.php?diff=77863&oldid=77862 * OsmineYT * (+113)
22:22:29 -!- FreeFull has quit.
22:30:16 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
22:43:38 <fizzie> int-e: The canonical multibot runner script is: while true; do socat TCP4:irc.freenode.net:6667 EXEC:'./multibot '"$NAME"' '"$CHANNEL"' '"$NAME"'.log'; done
22:45:56 <int-e> fizzie: upone reflection it's not applicable. My use of socat is for enabling SSL for lambdabot.
22:46:03 <fizzie> (Also, could not figure out the IPv6 connectivity issues. If I restart the DHCPv6 client, it starts sending solicitations on the interface, but gets no response. Monitoring suggests problems started at 3:40am in the morning, which doesn't coincide with anything I did. Complained to ISP; will see if they come up with anything other than "have you tried restarting your router?".)
22:46:16 <int-e> But lambdabot wants to connect to some port somewhere, so socat is just a proxy.
22:47:14 <int-e> I've had mysterious neighbour discovery problems with lambdabot's host
22:48:27 <int-e> I ended up just adding a permanent neighbour because I never figured out whether the environment was misbehaving, or the local linux kernel.
22:48:53 <int-e> Looking at that, I also have a fixed default route.
22:49:24 <fizzie> I'd do a static config but I think they actually require the DHCPv6 prefix delegation in order to actually start the traffic flowing.
22:49:49 <int-e> well, this one (Ramnode) doesn't.
22:50:03 <int-e> But it's a VPS.
22:50:13 <int-e> So it has a fixed IP and all that.
22:50:20 <fizzie> Yeah, that's kind of different than someone's home.
22:50:36 <fizzie> Though I do in fact have a fixed IP, paying £5/month extra for it.
22:50:54 <int-e> It's probably a completely different problem :) But what you said brought up some memories.
22:50:58 <fizzie> I just think I need to dynamically request my static IP. ;)
22:51:21 <int-e> If it's dialup, the neighbours might not be fixed?
22:51:33 <int-e> But for DSL they might be.
22:51:36 <int-e> Tricky :)
22:52:05 <fizzie> Mhm. Well, it's an Ethernet hole in the wall as far as I'm concerned, I've no idea what happens to it after that.
22:52:30 <fizzie> There's some managed switch shouting it's proprietary management protocols over the wire every now and then.
22:53:08 <fizzie> FWIW, it could be something ND-related, because if I look at any IPv6 traffic, I do see neighbor discovery requests for my router's link-local address, every time repeated three times. My router sends a reply to each, but it doesn't seem to matter.
22:53:42 <fizzie> Normally I'd blame my nftables setup, but I haven't touched it in a while.
23:31:56 <int-e> MEH. foiled by default configuration.
23:32:50 <int-e> (Debian's Apache ships with Alias /icons/ "/usr/share/apache2/icons/" enabled.)
00:41:37 <esowiki> [[User talk:SoicBR]] https://esolangs.org/w/index.php?diff=77864&oldid=77863 * SoicBR * (+75) /* A new topic */
00:47:55 <esowiki> [[User talk:SoicBR]] M https://esolangs.org/w/index.php?diff=77865&oldid=77864 * SoicBR * (+28) /* A new topic */
00:56:23 -!- adu has joined.
01:36:11 -!- adu has quit (Quit: adu).
01:47:36 -!- adu has joined.
01:52:18 <int-e> . o O ( pstree -up; netstat -nap )
01:54:49 <fizzie> Someone told me netstat's obsolete and it's all about ss now.
01:57:08 <int-e> Someone told me that old habits die hard.
01:58:06 <int-e> woah those lines get long
01:58:54 <int-e> but you can do ss -nap if you want to.
02:00:32 <fizzie> That's a lotta chrome's and 443's.
02:01:45 <int-e> The graph on http://calpaterson.com/mozilla.html is great. And sad.
02:09:18 -!- ski has joined.
02:43:37 -!- imode has joined.
02:45:56 <fizzie> Your link sidetracked me to go read about that Wikimedia stuff.
03:07:08 -!- adu has quit (Quit: adu).
04:18:06 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
06:14:18 -!- hendursaga has quit (Write error: Connection reset by peer).
06:14:18 -!- xelxebar has quit (Read error: Connection reset by peer).
06:14:38 -!- xelxebar has joined.
06:15:30 -!- hendursaga has joined.
07:57:35 -!- arseniiv has joined.
08:00:22 -!- imode has quit (Ping timeout: 272 seconds).
08:08:32 -!- hendursa1 has joined.
08:10:10 -!- cpressey has joined.
08:10:23 -!- hendursaga has quit (Ping timeout: 240 seconds).
08:11:32 -!- Sgeo has quit (Read error: Connection reset by peer).
08:19:26 <arseniiv> <wib_jonas> isn't "basic lens functionality" stuff like map and reduce? => sorry, didn’t see that. I meant composable lenses first and foremost, and non-destructive setters as their part, and a good syntax to go with that
08:21:11 <arseniiv> b_jonas: (BTW does the prefixed version of the name ping you when you use the usual one?)
08:46:06 -!- LKoen has joined.
09:52:04 <b_jonas> arseniiv: yes, wib_jonas pings me if I am b_jonsa
09:52:08 <b_jonas> if I am b_jonas
09:56:19 <b_jonas> fizzie: and does ipv4 dhcp get you an ip address that works?
09:57:14 <b_jonas> fizzie: yes, I learned about ss too when I was trying to get a certain information from the kernel from debugging and netstat couldn't do it and I asked on irc. apparently ss is to netstat like ip is to ifconfig
09:57:55 <b_jonas> user3456: ask fizzie
10:13:44 <fizzie> Yep, IPv4 DHCP works.
10:15:14 <esowiki> [[User:RocketRace]] M https://esolangs.org/w/index.php?diff=77866&oldid=77719 * RocketRace * (+143) YYZ
10:15:27 -!- sprocklem has quit (Ping timeout: 240 seconds).
10:40:11 <b_jonas> fizzie: and are you actually paying for ipv6 connectivity in the service, or was that just an experimental free test service that they now changed to offering for extra charge (I know it makes no sense, but some ISPs do charge money for it)
10:44:53 <fizzie> No, I'm not paying for it specifically. The support page says "we're currently in the process of rolling out IPv6 to all our customers free of charge" (unchanged for at least a couple years); the rollout in this location happened sometime in 2018, but I guess it might still be considered experimental.
10:45:15 <b_jonas> I see
10:51:12 <fizzie> user3456: What happened was, it was all done in Ruby, and the linear algebra lib I was using to do the math (for scores) just died. I started doing a rewrite (in some other language) to re-launch it on esolangs.org instead, but never got around to finishing it. Hasn't been much demand for BF Joust, honestly; even in the past, it's been *very* seasonal.
10:52:06 <b_jonas> linear algebra?
10:52:14 <b_jonas> why does it need linear algebra
10:52:22 <b_jonas> I do understand ruby programs breaking regardless though
10:53:06 <b_jonas> they did a lot of incompatible changes between minor versions so you would have to keep updating old scripts from 1.4 to 1.6, 1.6 to 1.8, 1.8 to 1.9, 1.9 to 2.1, etc
10:55:20 -!- cpressey has quit (Quit: WeeChat 1.9.1).
10:57:49 <fizzie> It doesn't *really* need it, but some of the scoring algorithms (especially the "Markov scoring") are marginally easier to express like that (details at http://zem.fi/bfjoust/internals/ still).
11:02:19 <b_jonas> ah
11:02:40 -!- xelxebar has quit (Remote host closed the connection).
11:02:59 -!- xelxebar has joined.
11:03:53 <fizzie> (The rewrite was going to be integrated to the `esowiki` bot for convenience, but I got sort of sidetracked into writing a RPC scheme because I didn't want any instability in the BF Joust parts potentially messing up the more important task of channel logging.)
11:37:06 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
11:55:22 <Taneb> I think I've got an integer sequence that's not in the OEIS but I'm not yet 100% sure it's well-defined
11:56:19 <Taneb> If we take the even Fibonacci numbers, this can be done as 0 => 0, 1 => 2, n + 2 => 4 * (n + 1) + n
11:56:45 <Taneb> Fibonacci numbers that are a multiple of 3, 0 => 0, 1 => 3, n + 2 => 7 * (n + 1) - n
11:57:09 <Taneb> Multiples of 4, 0 => 0, 1 => 8, n + 2 => 18 * (n + 1) - n
11:57:30 <Taneb> Sequence is the coefficient of (n + 1) there
11:57:42 <Taneb> I think it goes 1, 4, 7, 18, 11, 322, 47
11:59:35 <Arcorann_> Why is it n+2?
11:59:53 <Taneb> Because it's in terms of the two preceeding elements
12:01:01 <Arcorann_> Might want to fix your notation then because my brain mentally simplifies the first line to n + 2 => 5 * n + 4
12:01:17 <Taneb> Yeah, my notation there is awful
12:02:25 <Taneb> I think it continues 18, 422, 1364
12:02:56 <Arcorann_> Probably should verify your relations actually work as well
12:05:24 -!- cpressey has joined.
12:33:58 -!- Discordian[m] has quit (Quit: killed).
12:34:07 -!- tswett[m] has quit (Quit: killed).
12:34:13 -!- wmww11 has quit (Quit: killed).
12:43:08 -!- tswett[m] has joined.
12:46:24 <esowiki> [[It's 3D!]] N https://esolangs.org/w/index.php?oldid=77867 * WhyNot? * (+88) Created page with "== It's 3D! == This is a coding language based of [Befunge]. It is created by [WhyNot?]"
12:48:19 <esowiki> [[It's 3D!]] https://esolangs.org/w/index.php?diff=77868&oldid=77867 * WhyNot? * (-11)
12:48:47 <esowiki> [[It's 3D!]] https://esolangs.org/w/index.php?diff=77869&oldid=77868 * WhyNot? * (+5)
13:01:01 <esowiki> [[It's 3D!]] https://esolangs.org/w/index.php?diff=77870&oldid=77869 * WhyNot? * (+368)
13:04:00 -!- arseniiv has quit (*.net *.split).
13:04:00 -!- ski has quit (*.net *.split).
13:04:00 -!- b_jonas has quit (*.net *.split).
13:04:01 -!- spruit11 has quit (*.net *.split).
13:04:01 -!- izabera has quit (*.net *.split).
13:04:01 -!- paul2520 has quit (*.net *.split).
13:04:10 -!- ski has joined.
13:04:27 -!- arseniiv has joined.
13:05:50 <esowiki> [[It's 3D!]] https://esolangs.org/w/index.php?diff=77871&oldid=77870 * WhyNot? * (+150)
13:09:23 -!- b_jonas has joined.
13:09:23 -!- spruit11 has joined.
13:09:23 -!- izabera has joined.
13:09:23 -!- paul2520 has joined.
13:11:20 -!- wmww has joined.
13:11:27 -!- iscordian[m] has joined.
13:20:54 -!- brrrrrrrrrrrr has joined.
13:21:11 <brrrrrrrrrrrr> wat is dis
13:22:24 <Taneb> `welcome brrrrrrrrrrrr
13:22:27 <HackEso> brrrrrrrrrrrr: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <https://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
13:23:21 -!- orangey has joined.
13:23:37 <brrrrrrrrrrrr> ah
13:23:47 -!- brrrrrrrrrrrr has changed nick to lignus.
13:26:29 -!- iscordian[m] has changed nick to Discordian[m].
13:38:57 -!- Arcorann_ has quit (Read error: Connection reset by peer).
13:40:58 <arseniiv> hm we need a xenharmonic esolang, aren’t we?
13:41:13 <arseniiv> unfortunately I’m still not too deep in
13:44:55 <arseniiv> you should use comma puns and depending what commas are punned, different actions may be performed. Loops may be represented as cyclical chord progressions?..
13:45:21 <arseniiv> and they should be valid from some standpoint
14:15:13 -!- lignus has quit (Remote host closed the connection).
14:27:41 -!- Sgeo has joined.
14:58:31 <int-e> How do you pun with a comma? How do you pun, with a comma?
15:00:26 -!- cpressey has quit (Quit: WeeChat 1.9.1).
15:06:03 -!- hendursa1 has quit (Quit: hendursa1).
15:06:20 -!- hendursaga has joined.
15:25:42 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=77872&oldid=77849 * WhyNot? * (+15)
15:25:43 -!- imode has joined.
16:17:02 -!- FreeFull has joined.
16:40:58 -!- orangey has quit (Remote host closed the connection).
16:41:15 -!- orangey has joined.
17:18:58 <arseniiv> int-e: almost exactly like that, yeah: the comma is there but it’s not there modulo temperament. Smaller the comma better the pun works. Famous zero-width comma is punned in many works
17:25:48 -!- arseniiv has quit (Ping timeout: 246 seconds).
17:48:44 -!- LKoen has joined.
19:03:23 -!- MDude has joined.
19:17:52 -!- LKoen has quit (Remote host closed the connection).
19:53:33 -!- sprocklem has joined.
20:05:36 -!- orangey has quit (Remote host closed the connection).
20:30:14 -!- Sgeo_ has joined.
20:31:31 -!- orbitaldecay has quit (Ping timeout: 240 seconds).
20:31:45 -!- iovoid has quit (Quit: iovoid has quit!).
20:31:55 -!- orbitaldecay has joined.
20:33:05 -!- Sgeo has quit (Ping timeout: 240 seconds).
20:33:35 -!- iovoid has joined.
20:44:07 <esowiki> [[Conveyer]] M https://esolangs.org/w/index.php?diff=77873&oldid=77695 * Abbin21 * (-3)
21:01:24 <esowiki> [[Special:Log/newusers]] create * Konfetti * New user account
21:52:25 -!- Arcorann_ has joined.
21:53:29 -!- Arcorann_ has quit (Remote host closed the connection).
21:53:56 -!- Arcorann_ has joined.
22:05:21 -!- V has quit (Remote host closed the connection).
22:06:31 -!- V has joined.
22:06:45 -!- kmc has quit (Ping timeout: 240 seconds).
22:07:47 -!- kmc has joined.
22:27:56 <esowiki> [[Special:Log/newusers]] create * Vpzom * New user account
22:30:05 -!- ineiros has quit (Ping timeout: 260 seconds).
22:47:21 -!- ineiros has joined.
23:10:20 -!- deltaepsilon23 has joined.
23:10:37 -!- deltaepsilon23 has changed nick to delta23.
23:11:01 -!- delta23 has quit (Client Quit).
23:11:18 -!- deltaepsilon23 has joined.
23:11:32 -!- deltaepsilon23 has changed nick to delta23.
23:11:38 -!- delta23 has left.
23:38:01 -!- sftp has quit (Ping timeout: 264 seconds).
23:45:38 -!- FreeFull has quit.
00:14:38 <int-e> wtf is the rationale for renewing SSL certifcates twice a day (certbot default)
00:15:25 <Frankenlime> i gave up on certbot because it was always confusing and never worked for me
00:15:43 <Frankenlime> im not normally a fan of tools made out of shellscripts but dehydrated works so great, especially with dns auth
00:16:23 <fizzie> int-e: It doesn't renew twice a day. Or it shouldn't, anyway.
00:16:38 <fizzie> int-e: It *runs* twice a day, but only renews when there's less than 30 days remaining.
00:16:52 <int-e> Oh. Hmm.
00:17:06 <int-e> Right, that makes more sense.
00:17:37 <int-e> Frankenlime: I've used acme-tiny before.
00:17:51 <Frankenlime> acme-tiny seemed nice
00:18:14 <Frankenlime> i've used acme.sh at work too and its not terrible (although only used it for web auth)
00:18:58 <int-e> Yeah I only need web auth anyway, so far.
00:19:42 <fizzie> I'm using `certbot certonly --config ... --force-renewal` to basically just use certbot as a plain client (with DNS auth), it seems to work.
00:20:23 <int-e> But this time I decided to experience the hammer that is certbot.
00:20:50 <Frankenlime> see certonly and renew (or run?) differences always confused me
00:20:59 <Frankenlime> although to be fair i do get confused easily
00:21:48 <int-e> fizzie: thanks.
00:22:03 <fizzie> AIUI, the 'certonly' part means "just do the stuff related to acquiring certificates, don't try to touch the servers that use the certificate", which is what I want out of it.
00:22:14 <fizzie> (It won't have permissions to do any other actions anyway.)
00:22:19 <int-e> I only looked at the systemd timer and jumped to conclusions.
00:22:33 -!- sftp has joined.
00:22:34 <Frankenlime> oh well, i got it all working in ansible and haven't bothered touching it since
00:39:01 -!- sftp has quit (Ping timeout: 258 seconds).
01:13:48 -!- sftp has joined.
01:53:09 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=77874&oldid=77853 * Vpzom * (+72)
01:58:37 <esowiki> [[Four]] N https://esolangs.org/w/index.php?oldid=77875 * Vpzom * (+2759) Created page with "{{infobox proglang |name=Four |paradigms=[[:Category:Functional paradigm|Functional]] |author=[[user:Vpzom|vpzom]] |majorimpl=https://git.vpzom.click/vpzom/four |files=<code>...."
02:01:11 <esowiki> [[Four]] https://esolangs.org/w/index.php?diff=77876&oldid=77875 * Vpzom * (+30)
02:17:33 -!- sprocklem has quit (Quit: brb).
02:29:14 -!- sprocklem has joined.
02:33:56 -!- adu has joined.
03:07:11 -!- adu has quit (Quit: adu).
03:30:36 -!- adu has joined.
05:00:39 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
05:04:07 -!- spruit11 has quit (Ping timeout: 240 seconds).
05:45:21 -!- spruit11 has joined.
06:16:06 -!- arseniiv has joined.
06:19:47 -!- lignus has joined.
06:24:35 -!- Sgeo_ has quit (Read error: Connection reset by peer).
06:35:30 -!- wmww has quit (Quit: killed).
06:35:42 -!- tswett[m] has quit (Quit: killed).
06:35:46 -!- Discordian[m] has quit (Quit: killed).
06:44:16 -!- tswett[m] has joined.
06:52:58 -!- imode has quit (Ping timeout: 256 seconds).
07:09:25 -!- wmww has joined.
07:09:31 -!- iscordian[m] has joined.
07:15:33 -!- adu has quit (Quit: adu).
07:18:51 -!- sprocklem has quit (Ping timeout: 260 seconds).
07:23:21 -!- iscordian[m] has changed nick to Discordian[m].
07:33:02 -!- arseniiv has quit (*.net *.split).
07:33:02 -!- b_jonas has quit (*.net *.split).
07:33:02 -!- izabera has quit (*.net *.split).
07:33:02 -!- paul2520 has quit (*.net *.split).
07:33:27 -!- arseniiv has joined.
07:38:33 -!- b_jonas has joined.
07:38:33 -!- izabera has joined.
07:38:33 -!- paul2520 has joined.
08:00:00 -!- cpressey has joined.
08:00:59 -!- lignus has quit (Remote host closed the connection).
08:08:34 -!- hendursa1 has joined.
08:10:43 -!- hendursaga has quit (Ping timeout: 240 seconds).
08:11:54 <esowiki> [[User:RubenVerg]] N https://esolangs.org/w/index.php?oldid=77877 * RubenVerg * (+6) Created page with "hello!"
09:25:54 -!- ProofTechnique has quit (Ping timeout: 260 seconds).
09:28:34 -!- ProofTechnique has joined.
09:30:27 -!- t20kdc has joined.
10:07:14 -!- sftp has quit (Ping timeout: 272 seconds).
10:11:57 -!- sftp has joined.
10:19:54 <Taneb> Is there a theorem that for every positive natural, n, the Fibonacci sequence contains infinitely many integer multiples of n?
10:34:55 <cpressey> https://en.wikipedia.org/wiki/Fibonacci_number says "If the members of the Fibonacci sequence are taken mod n, the resulting sequence is periodic with period at most 6n." -- is that equivalent?
10:36:00 <cpressey> I guess it's not quite equivalent, because every 6th positive natural != every positive natural
10:36:22 <cpressey> Closest I could find on that page though
10:36:40 <int-e> Note that F_0 = 0 is divisible by n. So together with periodicity modulo n you get what you want.
10:38:14 <int-e> I have not seen that 6n claim before, interesting.
10:39:57 <cpressey> Also, simply saying "periodic" doesn't imply that F_i mod n = 0 at any time, so far as I'm aware, so, I'm not so sure
10:40:38 <int-e> Periodicity is rather obvious though; there are n^2 possible pairs of consecutive remainders in the sequence, so it's ultimately periodic. But you can also reconstruct the whole sequence from any pair (computing F_n from F_(n+1) and F_(n+2)), so it's fully periodic
10:41:10 <int-e> i=0 works.
10:44:46 <int-e> There's also the related fact that F_n | F_(nk) for all integers n, k.
10:44:54 <cpressey> Yeah OK, I see how F_0 = 0 implies it F_i mod n = 0 for some i, if it's periodic
10:46:03 <fizzie> I'm not sure I followed that periodicity argument, why does having n^2 possible pairs of consecutive remainders mean it's ultimately periodic?
10:47:25 <int-e> fizzie: because you can look at the sequence of pairs FF_n = (F_n, F_(n+1)) and note that there's a relation FF_(n+1) = f(FF_n), to which the standard argument applies.
10:47:54 <int-e> f((x,y)) = (y,x+y)
10:48:33 <int-e> (and f is invertible over any ring)
10:49:25 <int-e> But the 6n bound is interesting, because from that idea, you only get an n^2 bound.
10:54:38 <int-e> (the "standard element" is that by the pigeon-hole principle, *some* element must repeat, and from that point onward, all the elements must repeat because that single element determines all its successors.)
10:55:26 <int-e> (and, if f() is invertible, the predecessors as well, giving full periodicity rather than just ultimate periodicity.)
11:21:42 <int-e> Oh, that's a clever use of the Frobenius automorphism. (https://en.wikipedia.org/wiki/Pisano_period#Properties near the end of the section.)
11:27:10 <int-e> (and that is the main reason why we don't get near the naive n^2 bound)
11:30:54 <int-e> "Any prime p providing a counterexample would necessarily be a Wall-Sun-Sun prime, and such primes are also conjectured not to exist."
11:30:57 <int-e> "In number theory, a Wall–Sun–Sun prime or Fibonacci–Wieferich prime is a certain kind of prime number which is conjectured to exist, although none are known."
11:31:06 <int-e> Source: Wikipedia :-)
11:36:00 <cpressey> Which is not actually a contradiction, if there really are two different mathematicians making two different conjecturs on the existence of these things
11:36:07 <cpressey> But, it does seem a bit unlikely
11:52:40 <cpressey> In other news, I think I now see why MonadPrompt and Operational use GADTs.
11:53:07 <cpressey> :t (>>=)
11:53:09 <lambdabot> Monad m => m a -> (a -> m b) -> m b
11:56:00 <cpressey> The GADT gives you an existential type that can be used for b. If you don't have that, you don't have anything you can use for b.
11:57:53 <cpressey> (That I can see.)
12:01:38 <cpressey> Mmmmmmaybe you could put both a and b in the ADT, like data Program instr a b = ...; I've tried it but I haven't been successful at it, and the error messages aren't very encouraging.
12:01:43 <int-e> Yeah, if you have a constructor of type a -> Foo b in your GADT, then that corresponds to a monadic operation a -> m b.
12:05:40 <int-e> There's a weird existential data F g x = F (forall a. (g a, a -> x)) type that a GADT g into a functor F g that can be used for making a free monad.
12:06:07 <cpressey> Yeah, I'll need to check out how Free works at some point too I reckon.
12:06:13 <int-e> Which I guess is nicer in theory, but as a programmer, I find the GADT describing an interface very appealing.
12:06:16 <shachaf> Do you mean with forall outside the F?
12:06:27 -!- cpressey has quit (Quit: Lunch).
12:06:33 <int-e> shachaf: Uhm. Yes.
12:06:48 <int-e> I should've used GADT syntax :P
12:07:04 <shachaf> I think that type is pretty natural.
12:07:11 <shachaf> Uh, in the non-formal sense of the word.
12:07:35 <int-e> So, properly: data F g x = forall a. F (g a) (a -> x)
12:07:58 <shachaf> Sure. Or Coyoneda f a = exists x. (f x, x -> a)
12:08:01 <int-e> So, properly: data F g a = forall r. F (g r) (r -> a) -- hmm Cont-style naming seems better.
12:08:27 <shachaf> I tend to call the universal one r (for "return" or "result" or something) and the existential one x.
12:08:36 <shachaf> But for sure the one on the outside should be called a.
12:08:37 <int-e> But nope, I don't find it natural at all.
12:09:02 <int-e> But r is a result type here as well :P
12:09:21 <shachaf> OK, imagine you had a type for which fmap was very expensive, so you wanted to minimize fmaps.
12:09:45 <shachaf> The functor laws tell you that instead of fmap f (fmap g x), you can write fmap (f.g) x
12:09:54 <int-e> Yeah I've seen that.
12:10:03 <shachaf> OK, maybe I'm just saying obvious things here.
12:10:31 <int-e> But it's a far stretch from having seen something, and kind of understanding it, to finding it natural.
12:10:49 <shachaf> An alternative thing you can say is that this thing is the free functor on a type constructor, but I bet that wouldn't strike a chord with you.
12:11:03 <int-e> You're making it worse.
12:11:09 <shachaf> I figured.
12:11:29 <shachaf> You can also use the dual: newtype Yoneda f a = Yoneda (forall r. (a -> r) -> f r)
12:11:56 <shachaf> But I find that one less intuitive, just because CPSy things are more complicated.
12:12:07 <int-e> The way I deal with category theory is to translate it back to something more concrete.
12:12:42 <int-e> The deeper you go into category theory, the more work I have to do translating it back. At some point, I get lost. :P
12:13:00 <shachaf> Well, I'm not saying any category theory words here. Except for "free", I suppose, and "dual", and "Yoneda".
12:13:04 <shachaf> But you can just ignore those.
12:13:16 <shachaf> OK, half of what I'm saying is category theory words.
12:13:36 <int-e> So yes, say CPS instead of Yoneda transform, and I'll be a bit happier.
12:13:55 <shachaf> I'm not calling it a Yoneda transform, I just wanted a name for the type that isn't F.
12:28:28 <int-e> Yeah, I'm mixing up terms.
12:28:54 <int-e> And I'm not even unhappy about it :P
12:30:04 <shachaf> @metar koak
12:30:05 <lambdabot> KOAK 081153Z 28007KT 10SM OVC012 17/12 A2992 RMK AO2 SLP132 T01670122 10167 20161 56004
12:31:12 -!- Arcorann_ has quit (Read error: Connection reset by peer).
13:03:16 -!- cpressey has joined.
13:08:20 <cpressey> <cpressey> Mmmmmmaybe you could put both a and b in the ADT, like data Program instr a b = ...; <-- I think I actually got this to work!
13:11:15 -!- hendursa1 has quit (Quit: hendursa1).
13:11:31 -!- hendursaga has joined.
13:12:05 <cpressey> All the instructions have to "return" the same type. The type of `singleton` becomes `instr b -> Program instr b b`
13:14:01 -!- Arcorann_ has joined.
13:17:28 <cpressey> This is exciting! I'm not sure why, but it is. To me.
13:18:59 -!- adu has joined.
13:20:34 <cpressey> https://gist.github.com/cpressey/2ed6aea0c8eb4fc98a5a56e574807721
13:32:02 <int-e> But now `a` is baked into the type, so this is inflexible.
13:32:47 <int-e> You're pretty close to doing this though: https://paste.debian.net/1166344/
13:33:27 * int-e shrugs
13:35:03 <int-e> But maybe you're coming from the other direction. I have not read very far into the backlog.
13:41:18 <int-e> cpressey: If you want to take the GADTs out of operational, you will probably end up with a free monad anyway. The functor is data StackF cnt = Push cnt | Pop Int (Int -> cnt) which can be obtained from unfolding the GADT data StackG a where Push :: Int -> StackG () | Pop :: StackG Int into Coyoneda StackG a.
13:42:52 <int-e> (also using that morally, cnt ~= () -> cnt)
13:44:04 <int-e> But as a programmer, StackF isn't intuitive to me, whereas StackG reads like a signature for a DSL.
13:44:17 <int-e> I really like the GADT version much better.
13:45:35 <int-e> The problem with what you currently have is that there can only ever be a single return type, namely the `a` in Program f a b.
13:45:59 <cpressey> int-e: We have different goals.
14:04:49 -!- Sgeo has joined.
14:22:30 -!- MDude has joined.
14:37:59 <esowiki> [[User:WhyNot?]] https://esolangs.org/w/index.php?diff=77878&oldid=77854 * WhyNot? * (+84)
15:18:23 -!- adu has quit (Quit: adu).
15:21:19 -!- Arcorann_ has quit (Read error: Connection reset by peer).
15:40:10 -!- adu has joined.
15:48:36 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=77879&oldid=77874 * Konfetti * (+134)
15:49:01 <esowiki> [[Talk:RubE On Conveyor Belts/Interpreter]] N https://esolangs.org/w/index.php?oldid=77880 * Eiim * (+685) Added two questions
15:49:40 <esowiki> [[RubE On Conveyor Belts]] M https://esolangs.org/w/index.php?diff=77881&oldid=64380 * Eiim * (+4) noted that interpreter is C++.
15:54:08 <esowiki> [[Talk:RubE On Conveyor Belts/Interpreter]] M https://esolangs.org/w/index.php?diff=77882&oldid=77880 * Eiim * (+267) noted program.out
15:56:30 <esowiki> [[Talk:Hell69]] N https://esolangs.org/w/index.php?oldid=77883 * Konfetti * (+411) Created page with "I think the example is incorrect. 0x41 * 0x69 = 0x1AA9, while 0x41 * 0x45 (which is decimal 69) = 0x1185. I am not sure which version is intended by the creator. The result i..."
16:00:41 -!- cpressey has quit (Quit: WeeChat 1.9.1).
16:05:58 -!- arseniiv has quit (Ping timeout: 256 seconds).
16:09:36 -!- t20kdc has quit (Remote host closed the connection).
16:09:50 -!- t20kdc has joined.
16:10:56 -!- arseniiv has joined.
16:15:33 -!- rain1 has quit (Quit: Leaving).
16:17:52 -!- rain1 has joined.
16:18:42 -!- adu has quit (Quit: adu).
16:21:29 -!- adu has joined.
16:53:15 <esowiki> [[User:Eiim]] N https://esolangs.org/w/index.php?oldid=77884 * Eiim * (+150) Created User:Eiim
17:05:15 <esowiki> [[!@$%^&*()+/Algorithms]] M https://esolangs.org/w/index.php?diff=77885&oldid=76908 * SunnyMoon * (+313) Added a well-earned snippet!
17:12:41 -!- sprocklem has joined.
17:22:35 -!- LKoen has joined.
17:32:02 -!- LKoen has quit (Remote host closed the connection).
17:53:53 -!- adu has quit (Quit: adu).
17:56:17 -!- int-e has quit (Remote host closed the connection).
18:28:05 -!- LKoen has joined.
18:35:47 -!- arseniiv has quit (Ping timeout: 240 seconds).
18:38:48 -!- int-e has joined.
18:44:43 -!- adu has joined.
18:44:53 -!- deltaepsilon23 has joined.
18:45:11 -!- deltaepsilon23 has quit (Remote host closed the connection).
18:45:45 -!- deltaepsilon23 has joined.
18:46:09 <esowiki> [[User:SunnyMoon]] M https://esolangs.org/w/index.php?diff=77886&oldid=77827 * SunnyMoon * (+350) School update.
18:46:16 -!- deltaepsilon23 has changed nick to delta23.
19:03:50 -!- arseniiv has joined.
19:57:26 -!- int-e has quit (Quit: leaving).
19:57:42 -!- int-e has joined.
20:00:36 -!- imode has joined.
20:05:25 -!- DrSoy has joined.
20:05:33 -!- DrSoy has left.
21:16:53 -!- deltaepsilon23 has joined.
21:18:09 -!- delta23 has quit (Ping timeout: 260 seconds).
21:18:19 -!- deltaepsilon23 has changed nick to delta23.
21:44:14 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
22:05:11 -!- adu has quit (Quit: adu).
22:19:47 -!- delta23 has quit (Ping timeout: 240 seconds).
22:25:34 -!- deltaepsilon23 has joined.
22:35:11 -!- deltaepsilon23 has changed nick to delta23.
23:03:08 -!- adu has joined.
23:03:26 -!- adu has quit (Client Quit).
23:51:39 -!- orby has joined.
23:53:18 <orby> I'm trying to construct a specific combinator in Underload, but I'm falling short. Any wizards know how to construct s' where s':(x)(y)(z) -> x(z)(y(z))?
23:53:47 <user3456> Hey look a message! (And sorry I don't know Underload)
23:53:55 <orby> Also, ais523: I've found a 3 command simple translation of Underload.
23:53:58 <orby> Hello!
23:54:00 <user3456> .
23:54:27 <user3456> Sorry accidently pressed my keypad while opening my blinds
23:54:32 <orby> all good
23:54:49 -!- arseniiv has quit (Ping timeout: 264 seconds).
23:57:45 -!- deltaepsilon23 has joined.
23:58:09 -!- delta23 has quit (Disconnected by services).
23:58:15 -!- deltaepsilon23 has changed nick to delta23.
00:02:52 <fizzie> ^ul (x)(y)(z)a~a*:^~a*~^!a~a**S
00:02:52 <fungot> x(z)(y(z))
00:03:01 <fizzie> (Not sure if I interpreted the notation correctly.)
00:03:01 <b_jonas> fizzie: oh, you were fast
00:03:49 <orby> Thanks fizzie!
00:05:20 <b_jonas> ^ul (y)(z)a~a*:^~a*
00:05:25 <b_jonas> ^ul (y)(z)a~a*:^~a*S
00:05:25 <fungot> y(z)
00:05:49 <fizzie> http://ix.io/2A9t -- with steps.
00:06:45 <orby> Actually, I think my notation is backwards. I meant for x to be on top of the stack, not on the bottom
00:06:55 <b_jonas> fizzie: ouch, not writing out the outer parenthesis
00:07:16 <orby> So I guess a better way of asking my question would be (z)(y)(x) -> ((z)y)(z)x
00:07:49 <b_jonas> orby: ok that's slightly harder
00:08:01 <fizzie> That's the problem with stacks, you never know which way around they are.
00:08:04 <orby> yes, I thought it was hard
00:08:06 <b_jonas> but you can still compile lambda calculus to underload
00:08:23 <b_jonas> fizzie: yeah, though at least in underload they're always the way you took it
00:08:29 <b_jonas> (and in Consumer Society too)
00:09:12 <orby> I discovered today that there is a single concatenative combinator that is TC with quoting, a la iota in applicative combinator calculus
00:09:26 <orby> and I'm trying to document it properly as a minimization of underload
00:10:19 <b_jonas> orby: the concatenative thing is a generalization of combinator calculus, isn't it, so that should be true because combinator calculus has a single universal combinator too
00:12:38 <orby> b_jonas: I'd have to think about that. I'm not sure how obviously true it is, but I suspected it was true and went searching. It's actually really close to the construction of iota: let k be (y)(x) -> x, s' be (z)(y)(x) -> ((z)y)(z)x, then the sole sufficient combinator takes (x) -> (k)(s')x
00:12:55 <orby> just a slightly adapted s combinator
00:13:03 <b_jonas> orby: it's not obvious at all
00:13:05 <b_jonas> neither part is obvious
00:13:15 <b_jonas> I still can't wrap my head around how underload works
00:13:30 <orby> I mostly think of it as a term rewriting system
00:13:34 <orby> I find that easier to think about
00:13:45 <b_jonas> as for the single generator for combinator calculus, I never bothered to try to understand that, it seems like a useless bit of trivia to me, hh
00:13:55 <b_jonas> but I think other people have verified it because it's not that hard with a computer these days
00:14:09 <orby> I have a minor fetish for minimization, so I spend a lot of time thinking about reducing these sorts of things
00:14:21 <fizzie> This starts from a slightly different place:
00:14:22 <fizzie> ^ul ((z)a(y)a(x)a)^**:^!~a~*a~^~!~a~**S
00:14:22 <fungot> ((z)y)(z)x
00:15:27 <orby> thanks fizzie!
00:20:14 <user3456> Is there any way I can make this fish code smaller while keeping the string readable? (The \n is a newline, the code was testing on fishlanguage.com) 10"Stick any string here!"r.\n l?!;o
00:20:51 -!- Arcorann_ has joined.
00:23:16 <b_jonas> orby: but the basic recipe is this. you want to do something with (x0)(x1)...(xn) on stack. first apply () ~a~* ... ~a~* ~a~* on it to fold it to one term ((x0)(x1)...(xn)); then L: duplicate or triplicate that with : or ::; then get a single term like (xk) from the top copy with like ^!...! ~!~!...~!~!; then possibly flip and get a single term from the middle one; then do one step of whatever you
00:23:22 <b_jonas> wanted; then fold the result back into the bottom list with a*; then keep repeating this from L until you have every term you need separated inside one long list.
00:23:37 <b_jonas> but there's of course a lot of optimizations you can do on this.
00:24:41 -!- Arcorann has joined.
00:25:59 -!- Arcorann_ has quit (Ping timeout: 260 seconds).
00:27:07 <fizzie> ^ul (z)(y)(x)a~a~*~a~*:^!~a~*a~^~!~a~**S(just for completeness)
00:27:07 <fungot> ((z)y)(z)x
00:28:42 <b_jonas> fizzie: you're still quite fast in this
00:31:02 <orby> Thanks for your help friends.
00:31:11 <b_jonas> fizzie: it's impressive that there's only one colon in that
00:31:30 <b_jonas> (and it's not inside parenthesis)
00:32:50 <fizzie> ^ul (z)(y)(x)a~a*~a*:^a~*a~!~^a~!~**S(now with a little less unnecessary swapping)
00:32:50 <fungot> ((z)y)(z)x
00:33:04 <b_jonas> (though if it's just ONE colon then it doesn't help if it's inside parens. it only helps if there are two.)
00:34:12 -!- ais523 has joined.
00:34:31 <b_jonas> ohai
00:34:48 <ais523> normally "write this combinator in Underload" is pretty straightforward if you know what you want the result to look like
00:34:57 <ais523> it can be done mechanically, if necessary
00:35:06 <ais523> sometimes you can do it in your head, that's the hard part
00:35:15 <b_jonas> ais523: you have read tom7's very apt description of git and the world around it, right?
00:35:30 <orby> ais523: Yeah, I need to spend a little more time with Underload
00:35:38 <ais523> b_jonas: no
00:35:49 <b_jonas> I think I understand enough about git to use it, and I still think it's a very good description
00:36:02 <ais523> orby: let me try this; the problem is to define C such that (z)(y)(x)C is equivalent to ((z)y)(z)x, right?
00:36:13 <b_jonas> ais523: frontpage of http://radar.spacebar.org/ right now
00:36:19 <orby> ais523: Correct
00:36:31 <b_jonas> permalink: http://radar.spacebar.org/f/a/weblog/comment/1/1185
00:36:35 <ais523> b_jonas: ouch, that's unreadably narrow, and I don't get a reaer mode option
00:37:04 <b_jonas> ais523: go complain to tom7 then
00:37:08 <orby> What you are calling C I am calling S' in line with the notation used in "The theory of concatenative combinators" by Brent Kirby
00:37:21 <ais523> wow, this site uses tables for layout
00:37:53 <ais523> and specifies widths as an exact number of pixels
00:38:18 <b_jonas> ais523: yes, it's a blog that has existed continuously since 2000, with a new post every month, and tom7 just rewrote the script that serves it in a second programming language, where both of them are programming languages that he made himself
00:39:07 <b_jonas> basically rewrote it to a newer, incompatible evolution of his own scripting language
00:40:12 <ais523> there we go
00:40:19 <b_jonas> the same scripting language that implements http://snoot.org/
00:41:52 <ais523> I think the problem with git is that it solves a problem in a very simple, elegant, and straightforward way, but unfortunately it isn't the problem that git users actually wanted it to solve
00:43:25 <b_jonas> the table was 546 wide, specified in a plain HTML attribute, no CSS, since 2000 apparently: view-source:https://web.archive.org/web/20001018141700/http://radar.spacebar.org/
00:44:31 <ais523> ^ul (z)(y)(x)(~a:(~*a)~a*^)~a*^*S
00:44:31 <fungot> (z)x
00:44:52 <ais523> what have I done wrong, I wonder? (that was my first attempt done in my head, no helper programs)
00:44:57 <ais523> oh, nothing
00:44:59 <ais523> ^ul (z)(y)(x)(~a:(~*a)~a*^)~a*^*SS
00:44:59 <fungot> (z)x((z)y)
00:45:07 <ais523> just didn't print out the stack properly
00:45:32 <ais523> actually, I think I have one level of quoting too much
00:45:56 <ais523> ^ul (z)(y)(x)(~a:(~*)~a*^)~a*^
00:46:05 <ais523> ^ul (z)(y)(x)(~a:(~*)~a*^)~a*^SSS
00:46:05 <fungot> x(z)(z)y
00:46:14 <ais523> yep, that looks right
00:46:18 <ais523> ^ul (z)(y)(x)(~a:(~*)~a*^)~a*^aSaSaS
00:46:18 <fungot> (x)((z))((z)y)
00:46:24 <ais523> orby: there you go
00:47:09 <ais523> or, hmm, (z) is still quoted too much
00:47:14 <b_jonas> ais523: yeah. in particular, what I want solved is much closer to what svn solves than what git solves. an svn repository explicitly tracks what files in earlier versions are ancestors of a file, and which changes from a branch are merged into it and which aren't, even if I merge later changes from a branch but not merge earlier ones. git stores some of this and guesses about the rest heuristically, and
00:47:20 <ais523> ^ul (z)(y)(x)(~:(a~*)~a*^)~a*^aSaSaS
00:47:20 <fungot> (x)(z)((z)y)
00:47:20 <b_jonas> there's no easy way to make it remember what I think instead of what it guesses.
00:47:29 <ais523> ^ul (z)(y)(x)(~:(a~*)~a*^)~a*^^
00:47:29 <fungot> ...bad insn!
00:47:42 <ais523> the x in orby's example wasn't in parens, so that runs it
00:47:46 <ais523> ^ul (z)(y)(SS)(~:(a~*)~a*^)~a*^^
00:47:46 <fungot> z(z)y
00:47:51 <b_jonas> and svn also does partial checkouts or partial read-only replication.
00:49:00 <ais523> it's frustrating, I have ideas about how to write a VCS but am unlikely to actually write it
00:49:09 <b_jonas> what I'd like is the best of svn but distributed. I should probably learn how the heck mercurial works. I think mercurial is probably better than git in some respects, worse in others, it won't solve all my problems, but at least I could learn something from it about version control.
00:49:38 <ais523> one thing I don't like about Mercurial is that branches are expensive
00:49:48 <b_jonas> ais523: yeah, me too. I'd like to write one that's based on svn, but makes it a distributed version control system. I might try to write something like it, but it won't be working stable enough.
00:50:18 <ais523> some of svn's features, like consecutive revision numbers, seem somewhat incompatible with typical DVCS usage patterns
00:50:27 <b_jonas> ais523: yes. svn does everything that it wants to do inexpensively, but sadly there are a few things that it really doesn't want to do, and those are expensive because you have to work them around.
00:50:43 <ais523> this reminds me about my eso-idea of a git hash bruteforcer
00:50:58 <ais523> so that the short hashes given to commits were in consecutive numerical order (possibly in decimal rather than hex)
00:51:10 <ais523> i.e. the first revision is 0000001, the second is 0000002, and so on
00:51:27 <int-e> yuck :)
00:51:27 <ais523> but it turns out that there actually isn't much you can change to make the hash match, apart from the commit message
00:51:48 <ais523> maybe you could mess with the whitespace
00:52:50 <b_jonas> ais523: yes, but that just means that referring to stuff with version numbers won't be such a good idea anymore. that's not a problem. some web forums (of at least three different engines) have the same problem: in theory they number messages within a thread with consecutive numbers, so people sometimes refer to them by number in replies, but in practice moderation can cause new messages to appear with
00:52:56 <b_jonas> older timestamps or older messages to disappear, such as when messages are moved among threads, in which case those numbers aren't stable, and the replies will be confusing.
00:53:38 <ais523> I mod on a phpBB forum and I will normally edit messages down rather than delete them, for this reason
00:53:46 <b_jonas> specifically this happens on at least one wordpress blog's comment section, most phpbb forums, and http://www.komal.hu/forum which has its own engine
00:53:50 <ais523> (if the content is inappropriate and needs to be removed)
00:53:51 <int-e> just mess with the committer name ;-)
00:53:59 -!- delta23 has quit (Ping timeout: 260 seconds).
00:54:16 <ais523> This message violates site rules and was deleted. — callforjudgement
00:54:27 <b_jonas> ais523: yes, but what do you do with messages that are unnecessarily posted to a new thread even though there's a good existing thread for them?
00:54:39 <b_jonas> you can avoid deleting, but how do you avoid adding?
00:54:44 <b_jonas> do you quote it in a new message?
00:54:58 <ais523> if a message needs to be repeated elsewhere, yes, quote
00:55:21 <ais523> the nature of this forum is pretty specialised, though, and messages being posted in the wrong place are very rare
00:55:41 <ais523> if they were, it would likely be a case of either nothing needing to be done, or a near-banworthy offence, depending on context
00:55:48 -!- deltaepsilon23 has joined.
00:55:56 -!- deltaepsilon23 has changed nick to delta23.
00:56:17 <b_jonas> "git hash bruteforcer" => well yes, using SHA-1 and saying that it's ok because you'll only commit trustable data into the vcs rather than admitting that it's hard to change the hash function is a stupid decision, and using only 7 hexits is another stupid decision, but at least the latter isn't baked into git so I don't care
00:56:33 <esowiki> [[Sea]] https://esolangs.org/w/index.php?diff=77887&oldid=75326 * Orby * (+1159) Introducing Sea: a three command simple translation of Underload
00:56:54 <ais523> b_jonas: the 7 nybble thing is actually not a requirement, it will expand to 8 (and possibly more?) in cases of collision
00:56:59 <ais523> all the nybbles are stored internally
00:57:14 <b_jonas> ais523: yes, I know
00:57:46 <b_jonas> ais523: I even have core.abbrev=16 in my global git settings
00:57:54 <b_jonas> which makes it list 16 hexits by default
00:58:02 <b_jonas> that's still not all of the hash, but better than 8
00:58:07 <b_jonas> and for some purposes I make it list all the hexits
00:58:18 <b_jonas> like when it needn't be human-readable, but stored for machines
00:58:23 <ais523> why do you say "hexit" rather than "nybble"? hmm, maybe people wouldn't refer to a base-256 digit as a "byte"
00:58:26 <b_jonas> git does that in its internal stuff too obviously, it's not that stupid
00:58:35 <b_jonas> ais523: it can be nybble too, sure
00:58:59 <b_jonas> hexit is the text format numeral, nybble is the actual number
00:59:26 <ais523> anyway, an idea I had recently: using algebraic numbers as the internal numerical type for a language
00:59:38 <b_jonas> so "A" is a hexit (except in git which uses lower case, another thing I hate, but at least it's consistent with the rest of the kernel, which also uses lowercase in a lot of debug messages and /proc and /sys text files), 0xA is a nybble
00:59:56 <b_jonas> ais523: that's actually rather hard to implement
01:00:10 <b_jonas> but there are other choices for esoteric number systems that are easier to implement
01:00:15 <ais523> this would be particularly good for declarative languages: if all you have is + - * ÷ ==, everything is fully closed except for division by 0 (which in a declarative language is not an error)
01:00:27 <ais523> it doesn't seem ridiculously hard to implement, just inefficient
01:00:47 <b_jonas> oh if you don't implement < or rootof, then it's much easier
01:00:53 <b_jonas> but then it's much harder to use for anything useful
01:01:01 <b_jonas> because you can't get one of the square roots in any way
01:01:02 <ais523> rootof effectively exists within this set of operations
01:01:11 <int-e> ais523: I guess you could mess with the commit message and disguise it... say, have every commit message end in a weather forecast and a fortune.
01:01:24 <ais523> in a declarative language, you just need to assign, say, X * X = 2 and then X is set to one of the square roots of 2
01:01:29 <b_jonas> no, you can only get all the roots of a polynomial nondeterministically, and you can't distingiush among algebraic conjugates
01:01:44 <b_jonas> ais523: you can't even distinguish between sqrt(2) and sqrt(-2)
01:01:44 <ais523> yes, you can't get at any specific root
01:01:51 <int-e> But yeah, the formats look rather rigid.
01:01:52 <b_jonas> ais523: I assume you have 1 as a built-in too, right?
01:02:00 <int-e> Which is a good thing, of course.
01:02:11 <ais523> b_jonas: you can distinguish between sqrt(2) and sqrt(-2), the former obeys X * X = 2, the latter doesn't
01:02:14 <b_jonas> or... oh heck
01:02:19 <ais523> you can't distinguish between sqrt(2) and -sqrt(2), though
01:02:22 <b_jonas> ais523: yes, sorry, that
01:02:36 <int-e> (I'm assuming that tree objects must contain entries in byte-based lexicographic order)
01:02:45 <b_jonas> maybe you want to generate 1 from some polynomial equations or something, that's possible
01:02:45 <ais523> unfortunately, you can't just store numbers as an entire set of conjugates
01:02:52 <ais523> because say you have X * X = 2 and Y * Y = 2
01:03:05 <ais523> then X + Y could nondeterministically be either 0 or sqrt(8)
01:03:07 <orby> later all
01:03:11 <ais523> which are not conjugate to each other
01:03:13 <ais523> orby: later
01:04:31 <b_jonas> ais523: yes, and that's why you want to have < and <= and rootof as primitives too, where rootof takes a polynomial and an interval, and it returns one of the real roots of the polynomial in that interval.
01:05:06 <ais523> you don't actually need rootof as a primitive in a declarative language, if you have < and arithmetic
01:05:17 <ais523> just assign to an equation
01:05:37 <b_jonas> yeah, I guess in a declarative language you don't need it
01:05:46 <b_jonas> but the interpreter has to implement it
01:06:14 <b_jonas> and it's not rootof that's hard to impelement, it's <
01:06:26 <ais523> yes
01:06:33 <ais523> actually, < isn't even very well defined
01:06:40 <b_jonas> why?
01:06:43 <ais523> complex numbers
01:06:45 <b_jonas> meh
01:06:51 <ais523> you need some sort of norm<
01:06:52 <b_jonas> I consider only real numbers
01:07:02 <ais523> then it isn't algebraically closed any more
01:07:21 <b_jonas> if you want complex numbers, then add real part as a primitive too, and < should compare by real part first then imaginary part
01:07:38 <b_jonas> it doesn't have to be algebraically closed
01:07:45 <b_jonas> you can simulate complex numbers from real numbers in user space
01:07:56 <b_jonas> I mean if you have rootof, not just powers
01:08:19 <b_jonas> complex numbers aren't really harder, they just complicate everything
01:08:27 <b_jonas> or simplify, depending on which side you're looking form
01:08:28 <ais523> what's the point of using algebraic numbers, if they don't give you an algebraically closed number system?
01:08:43 <b_jonas> complicate if you have to implement stuff, simplify if you want to use it
01:08:53 <b_jonas> yes, I guess you're right
01:08:56 <b_jonas> so complexes
01:09:03 <b_jonas> but then you probably want real part as a primitive too
01:09:13 <b_jonas> and I guess i
01:09:19 <b_jonas> so you can distinguish between +i and -i
01:09:26 <b_jonas> but < might do that anyway
01:09:30 <int-e> Over the reals you have tools for counting roots in an interval.
01:09:37 <ais523> yes
01:09:37 <int-e> How do you do that in the complex numbers?
01:09:45 <b_jonas> int-e: there's probably tools for that oo
01:09:47 <ais523> I was going to say, is there an equivalent for complex numbers?
01:09:49 <b_jonas> they're just less elegant
01:09:57 <ais523> I'm pretty sure root isolation in the complex numbers exists
01:10:03 <b_jonas> ais523: probably
01:10:16 <b_jonas> real numbers just have a nice elegant algorithm
01:10:20 <b_jonas> well, elegant in theory
01:10:25 <b_jonas> still a hell to work with
01:10:37 <ais523> Wikipedia has an article on real-root isolation but not complex-root isolation
01:10:42 <int-e> I've followed one algebraic number development where root separation was a reason for keeping algebraic numbers real.
01:11:30 <int-e> (And deal with complex numbers as pairs of real algebraic numbers.)
01:11:35 <b_jonas> ais523: that's because nobody wants to actually implement it in full generality, or even describe it properly in writing. we know it's possible, and Mathematica implements it, let's leave it at that and let the Maxima fanatics deal with it.
01:12:44 <int-e> Of course what I'm alluding to was a formalization effort... so there was also a strong incentive to keep things (relatively) simple.
01:13:31 <b_jonas> I don't even know a simple algorithm for deciding if an expression that contains field ops, real square roots, and real cube roots is negative.
01:13:46 <b_jonas> without cube roots I do know an algorithm that I can explain
01:14:38 <b_jonas> with cube roots, you would need to work with algebraic numbers nonsense like finding a generator polynomial or something. the practical solution is to ask GAP and let it work its magic.
01:15:05 <b_jonas> well the practical solution is to decide using interval arithmetic, but if it's zero, then ask GAP to prove it and let it work its magic
01:15:50 <b_jonas> oh, that reminds me
01:16:03 <b_jonas> does any of you happen to have a backup of Plouffe's inverter? it fell off the web
01:16:14 <b_jonas> I don't need it for anything urgent, it would just be nice to have a backup
01:16:36 <b_jonas> the old address was https://isc.carma.newcastle.edu.au/
01:20:21 <b_jonas> ais523: anyway, branches being expensive is one of those things that kept me away from mercurial
01:20:48 -!- orby has quit (Remote host closed the connection).
01:21:22 <b_jonas> and I can tell why svn+distributed is hard to make work, but it's not the sequential version numbers
01:22:17 <b_jonas> in the model I imagine there's still a good way to refer to a specific revision, or a file or directory in a revision.
01:24:00 <int-e> I suppose you found https://oeis.org/wiki/Plouffe's_Inverter (and the reference to ISC+, which is also down, but points to ISC, which is working but presumably far less powerful)
01:25:08 <b_jonas> the theoretical problem is more like that some operations that I'd expect an ideal distributed vcs should implement efficiently would be implemented rather inefficiently (as in they'd have to rebuild the entire repository); the practical problem is that if I try to code this, it will either never be complete, or it will have so many bugs that can lose you data that the gaps are larger than the features.
01:25:29 <b_jonas> int-e: no, I actually haven't looked there
01:25:36 <ais523> git was originally intended to be a VCS backend, rather than a VCS
01:25:45 <ais523> I'm surprised there aren't more VCSes that use it like that
01:26:51 <b_jonas> ais523: well, it works quite well as a vcs for the special case of developing the linux kernel, which indeed wants to send patches in email, has lots of distributed developers cherry-picking commits from each other, and puts only trusted text source files in the repository
01:27:08 <ais523> git is actually very bad at cherry-picks
01:27:18 <b_jonas> ais523: it doesn't work as a backend for what I want, because it doesn't implement modifyable sparse checkouts
01:27:36 <ais523> cherry-pick from A into B followed by merge from A into B is an operation that git's model simply doesn't implement
01:27:41 <b_jonas> ais523: yes, svn is better. but it works in the principled environment of linux kernel environment
01:27:49 <ais523> it often works in practice, but only due to hacks designed to merge two identical-looking changes into one
01:28:15 <b_jonas> ais523: yes, that's sort of what I said above about not storing merge metadata
01:29:27 <b_jonas> ais523: you should also consider the historical context as an excuse though: git is old, svn only started to get merge tracking in the time that I remember, git had the hacks much before that
01:29:59 <b_jonas> specifically svn adds merge tracking in svn 1.5, which was released ... when?
01:30:20 <b_jonas> a moment, this is exactly something vcs should be able to tell
01:30:43 <b_jonas> released in 2008
01:31:28 <b_jonas> back long ago, when svn was not really ready, and the other contenders weren't anywhere, git was revolutionary
01:31:37 <b_jonas> it just didn't get developed as much as svn later
01:31:38 <zzo38> There is also Fossil, where it is stored as a set of artifacts each with identifiers, but I don't know if there are any implementations of the Fossil format other than Fossil itself.
01:32:05 <b_jonas> and git was what popularized the concept of distributed version control, mercurial and darcs came after that and took the good parts
01:34:00 <ais523> Mercurial and git were developed at almost the same time, for the same reason
01:34:02 <b_jonas> I technically used svn in 2008, but not for anything nontrivial, I mostly just checked stuff out
01:34:27 <b_jonas> ais523: I admit I don't actually know the history, I'm just telling my impressoin
01:34:40 <ais523> the Linux kernel used to use a proprietary VCS
01:34:41 -!- Arcorann_ has joined.
01:34:42 <b_jonas> I don't know when git gained what features
01:34:59 <b_jonas> yeah, I heard that, Linus decided to make his own tools, just like Knuth
01:35:03 <ais523> but someone working on it reverse-engineered part of its internal protocol, so that they could script it more easily or something
01:35:08 <ais523> and the company making it got mad
01:35:25 <ais523> so there was demand for a replacement VCS in a hurry
01:35:31 <b_jonas> because he wasn't satisifed with the existing tools
01:35:43 <b_jonas> yeah
01:35:45 <ais523> not so much "wasn't satisfied" as "was suddenly banned from using"
01:35:57 <ais523> although, git is better for the Linux kernel than Perforce anyway
01:36:13 <b_jonas> ais523: yeah
01:36:22 <ais523> in fact, Perforce's manufacturers probably rather shot themselves in the foot, by inspiring the creation of a free competitor that has outcompeted them quite badly
01:36:41 <fizzie> Linux was using BitKeeper, not Perforce.
01:37:08 <b_jonas> ais523: no, they might be laughing at us that they can point to how bad git is and they're offering an alternative to common people that is more down to earth
01:37:21 <ais523> fizzie: ah, OK
01:38:19 -!- Arcorann has quit (Ping timeout: 260 seconds).
01:42:59 <ais523> huh, apparently BitKeeper ended up as open source
01:43:50 <ais523> I was wondering what happened to it after the debalce in question
01:44:15 <b_jonas> different topic. in Spelunky 2, shopkeepers usually have a skeleton key that you can get if you kill them. skeleton keys are reusable and can open any doors that silver keys can open. this makes absolutely no sense in-game, and I think it comes from nethack. in nethack it makes some sort of sense, because it wants shopkeepers to be able to open locked doors.
01:44:46 <b_jonas> and I don't think this is a D&D heritage
01:45:13 <ais523> there's a spelunky 2?
01:45:16 <b_jonas> yes
01:45:18 <b_jonas> it was released recently
01:45:33 <b_jonas> for Playstation and Windows Steam
01:46:11 <b_jonas> a nice game, very faithful to Spelunky HD, from its creator, a worthy sequel and good game
01:46:33 <fizzie> I saw someone on the Internet play Spelunky 2 just recently, and wondered about that.
01:46:47 <fizzie> Looked like it had a bit more branching in the sequence of levels or something.
01:46:50 <b_jonas> I've seen much of it on twitch. I'm thoroughly spoiled of the known stuff now.
01:47:11 <b_jonas> fizzie: yes, zone 2 and zone 4 has two alternative biomes that you choose by entering one of the two exits of the last level of the previous zone
01:47:40 <b_jonas> zone 2 is either jungle or volcano, zone 4 is either egypt-themed or water + east asia themed
01:49:40 <b_jonas> and there are also optional boss levels that you enter to via secret levels, an optional 7th zone, and SPOILER an optional "infinite" hard postgame area that is quite hard to enter because you need to get there specific artifacts from three zones (in the intended route; you can actually skip one of them but it's harder)
01:50:04 <b_jonas> well, four specific artifacts, but one you probably alwyas get anyway
01:50:14 <b_jonas> the other three only has this one use
01:50:30 <b_jonas> well, it's more complicated
01:50:55 <b_jonas> it's one artifact that lets you into the optional 7th zone, and two that together let you from there to the postgame area
01:51:05 <b_jonas> it's a pretty nice design
01:51:25 <b_jonas> and there are probably some secrets still not discovered, because the game and especially the Windows release is quite new
01:51:51 <b_jonas> even besides this zone stuff, the overall gameplay and movement seems really well thought out, except for one specific common item that many people hate
01:52:42 <b_jonas> I should probably write a summary of the worlds at some point
01:52:48 <b_jonas> mostly to me to understand it
01:52:54 <b_jonas> because it's a pretty nice design
01:53:20 <ais523> it seems surprisingly similar to Spelunky HD, more of an expansion pack than anything
01:53:28 <ais523> perhaps it's a good thing that people release those as new versions, though
01:53:29 <b_jonas> with like eleven different biomes (set of map tiles and enemies)
01:53:41 <ais523> the old-fashioned way of doing games has been mostly abandoned nowadays
01:54:00 <b_jonas> ais523: it's a new game, but very heavily appeals to the fans of Spelunky HD, so much that good Spelunky players can learn it much easier, because the movement and controls are very similar
01:54:23 <b_jonas> and many elements are taken from HD too, like many enemies and items and world themes
01:55:29 <ais523> I've played the original (not HD) but I'm not all that good at it
01:55:40 <ais523> I feel like I'd enjoy it more if it were turn-based, even though it's a platformer
01:56:04 <b_jonas> ais523: think of classic game series like Age of Empires, Warcraft, Settlers. new games, but the good parts of design taken, so easier to learn if you know the previous game.
01:56:26 <ais523> b_jonas: yes, it's a very old-fashioned way to do a game sequel
01:56:36 <b_jonas> I guess
01:56:41 <ais523> nowadays that sort of thing's normally done as DLC rather than a sequel
02:05:31 -!- t20kdc has quit (Read error: Connection reset by peer).
02:06:05 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
02:06:44 <b_jonas> ais523: dunno, to me the contrast is more like that nowadays games are short-lived and gimmicky, they want to sell a new idea that people find fun for a year or two, or for six years in case of the most successful games, but then put away and stop playing, and the manufacturer stops pretending to care about it; old games tried to make a good stable base that you can play for a much longer time, and if
02:06:50 <b_jonas> they succeed, the game becomes a classic that only needs a few tweaks.
02:07:13 <zzo38> Well, many computer games made these days are not as good as before (although there are exceptions).
02:07:40 <b_jonas> but maybe this is entirely just a false nostalgic view, obviously I don't know about games released in the last two years that have become classics and people have been playing them for decades,
02:08:01 <b_jonas> and I don't think so much about all the throwaway old games, only the ones that succeeded to become classics.
02:09:17 <b_jonas> it is quite possible that Super Mario Odyssey will become one of these classics, and it will be speedran even 15 years from now, together with SM64 and Sunshine
02:09:43 <ais523> zzo38: there were many bad games before, too, but people don't remember them as well
02:09:45 <b_jonas> (whereas Zelda: Breath of the Wild, which some people hastily declared the best game ever, will be forgotten)
02:09:52 <b_jonas> ais523: yeah.
02:10:28 <zzo38> ais523: Yes, that is true. (And it happens with other works too.)
02:13:50 <b_jonas> oh by the way, it turns out that the IBM Selectric 1 and 2 really exist, my conspiracy theory that it's war propaganda (or practical joke) spread by Americans about how advanced seemingly impossible technology they had so long ago is false
02:15:02 <b_jonas> it's weird how many old writings mention these typewriters, but there are so few first-hand observations from contactible people who used the machines back when they were new, and so few remaining examinable copies
02:17:29 <b_jonas> I still don't understand how a mechanical typewriter with a single electric motor and no electronics can move that crazy ball-shaped head; how it isn't unusable because the glyphs adjacent on the head to the one you want to stamp leave faint marks; how it has a pure mechnical full lockout mechanism so you can't press two keys at the same time; and how it doesn't even attempt to lay the glyphs on the
02:17:35 <b_jonas> ball out in such a way that the widest glyphs are close to the equator
02:18:04 <b_jonas> so even though it almost certainly exists, to me it's similar to washing machines, it exists but it's supposed to be impossible
02:20:49 <b_jonas> but the last straw against the conspiracy theory is https://www.marklin-users.net/cookee_nz/hobbies/IBM/IBMSelectricAPM-Nov1980.pdf , too detailed, I don't believe it could be faked for a conspiracy
02:21:15 <b_jonas> some of the details mentioned might be misremembered, but overall they're real typewriters
02:25:09 <zzo38> I have seen that some features of Pokemon games are not as good as the previous games. While I agree, this is not specific to Pokemon and occurs with a lot of series.
02:30:57 <esowiki> [[Brainfuck extensions]] https://esolangs.org/w/index.php?diff=77888&oldid=71170 * RocketRace * (+277) Add 5D Brainfuck With Multiverse Time Travel to the appropriate lists
02:31:07 <ais523> b_jonas: huh, do you not believe in washing machines?
02:33:59 <b_jonas> ais523: I do believe in washing machines, but they're magical, I don't see how they can have the practical effectiveness and reliability that they have as measured by practice, given that we basically know what they have (modulo some secrets that the manufacturers have about recent innovations)
02:34:32 <b_jonas> zzo38: do you mean the mainline games like Sword/Shield, or side products like Pokemon Let's Go or Pokemon Go
02:35:22 <b_jonas> ais523: I use a washing machine and commercial washing detergents, and I'm glad that they work so well (admittedly there's some luck here in that I have a model that works well), but I don't understand why they work so well
02:35:30 <zzo38> b_jonas: I mean the mainline games; the side products are not separate.
02:37:07 <ais523> I think the best Pokémon games for replay value are HGSS and B2W2, and BW are best if you are planning to only play through once
02:37:26 <ais523> by replay value I mostly mean grinding the postgame, rather than playing multiple times
02:38:28 <zzo38> (Also some games will improve some things, and make others worse.)
02:39:01 <ais523> yes, I think actually every Pokémon game does this
02:39:21 <ais523> it doesn't help that through much of the series' lifetime, Game Freak would create two Pokémon games in parallel
02:39:41 <ais523> so it was typically the case that a new feature in one game would disappear in the next, and might then reappear in the game after
02:45:37 <zzo38> Yes, that it is.
02:46:13 <zzo38> (A lot of computer games are just made too easy. That happens with everything though, and often they do not even add a difficulty selection menu. However, there are self-imposed challenges, at least.)
02:48:12 <ais523> it is much more common for computer games to be too easy than too hard
02:48:23 <zzo38> Yes, it is.
02:55:22 <int-e> do you ever get a game that starts out very easy and then transitions to nearly impossible with no discernable ramp inbetween?
02:55:28 <int-e> or is that just happening to me
02:55:55 <int-e> (don't have a concrete example right now I'm afraid)
02:56:41 <zzo38> I do not have a example either
02:58:56 <zzo38> But perhaps see https://allthetropes.org/wiki/Difficulty_Spike
03:12:47 <ais523> there are some games which don't have consistent internal mechanics, they're just a case of "guess what the devs are thinking"
03:12:59 <ais523> those can have a ramp like that for some players but not others, when they fail to guess
03:33:57 -!- delta23 has changed nick to BTRider.
03:34:02 -!- BTRider has changed nick to delta23.
03:34:07 -!- delta23 has changed nick to s3423.
03:34:13 -!- s3423 has changed nick to frrrrrr.
03:34:44 -!- frrrrrr has changed nick to deltta.
03:34:46 -!- deltta has changed nick to delta23.
04:38:14 -!- ais523 has quit (Quit: quit).
06:55:24 -!- Sgeo has quit (Read error: Connection reset by peer).
07:21:46 <esowiki> [[!@$%^&*()+/Algorithms]] https://esolangs.org/w/index.php?diff=77889&oldid=77885 * SunnyMoon * (+100) Clarification
07:22:24 <esowiki> [[!@$%^&*()+/Algorithms]] M https://esolangs.org/w/index.php?diff=77890&oldid=77889 * SunnyMoon * (+1) Whole halt
07:25:20 -!- sprocklem has quit (Ping timeout: 256 seconds).
07:33:55 <esowiki> [[!@$%^&*()+/Algorithms]] https://esolangs.org/w/index.php?diff=77891&oldid=77890 * SunnyMoon * (+16) Clarification
07:34:26 <esowiki> [[!@$%^&*()+/Algorithms]] M https://esolangs.org/w/index.php?diff=77892&oldid=77891 * SunnyMoon * (+0) Capitalization
07:41:19 <esowiki> [[!@$%^&*()+/Algorithms]] https://esolangs.org/w/index.php?diff=77893&oldid=77892 * SunnyMoon * (+136) Added input storage
07:42:00 <esowiki> [[!@$%^&*()+/Algorithms]] M https://esolangs.org/w/index.php?diff=77894&oldid=77893 * SunnyMoon * (+1) Prulal, no Plural
08:08:22 -!- hendursa1 has joined.
08:10:03 -!- hendursaga has quit (Ping timeout: 240 seconds).
08:17:54 -!- cpressey has joined.
08:22:34 -!- deltaepsilon23 has joined.
08:23:09 -!- delta23 has quit (Ping timeout: 260 seconds).
08:25:26 -!- deltaepsilon23 has changed nick to delta23.
08:33:08 -!- LKoen has joined.
08:45:38 -!- user24 has joined.
09:00:54 <cpressey> I really hate it when someone's explanation of something includes phrases like "It's easy, really" or "You could have invented it yourself".
09:16:08 -!- imode has quit (Ping timeout: 272 seconds).
09:22:41 <b_jonas> cpressey: the one I hate is posts that start like "I am surprised that nobody has mentioned [...]" in a thread with an open-ended question where you could mention a huge amount of examples, when the thread is clearly not trying to be a comprehensive list, and the post is sometimes posted just a few hours after the thread starts.
09:24:28 <b_jonas> that phrase is never appropriate, and it's my pet peeve
09:28:59 <user24> I am surprised that nobody has mentioned the https://en.wikipedia.org/wiki/Availability_heuristic
09:31:38 -!- arseniiv has joined.
09:42:29 <arseniiv> it seems TIME CUBE has some roots: https://en.wikipedia.org/wiki/Cubical_atom
09:43:31 <delta23> carthorse & everyone else who wants to : read this doc if you have the time : https://freemasonry.bcy.ca/texts/taxil_confessed.html
09:43:50 <delta23> all the freemasonry conspiracy theories of today are based on an ancient troll from 200 years ago
09:44:13 <delta23> well, moreso ~125 years ago
09:44:18 <b_jonas> arseniiv: of course it has roots! Gene Ray doesn't seem to admit it, but he took the idea of the square earth straight from the Bible, as Roger M. Wilcox explains in http://www.rogermwilcox.com/square_earth.html
09:44:39 <delta23> ah, wrong channel
09:44:40 <delta23> sorry
09:45:05 <arseniiv> lol
09:45:49 <b_jonas> hehe, this came out well. arseniiv talks about the roots of Time Cube, then delta23 starts to talk about ancient freemason trolls
09:47:40 <delta23> noo :(
09:50:30 <arseniiv> this is not a coincidence
09:54:22 <arseniiv> that square-earthiness proof is more or less neat but what if the true metric is non-euclidean: then square-nonsquare dichotomy is a bit different and there are also four natural corners, null corners (or four natural side midpoints). In fact Earth then can be the “circle” with four corners
09:55:15 <arseniiv> or two glued circles. still with four corners
09:56:01 <arseniiv> we shall leave this revelation private to this channel
09:56:50 <b_jonas> By the way, have you noticed what a troll the First Council of Nicaea was about the date of Easter? It was well known that Christ was crucified on Pesach and resurrected two days after, and the Council agreed with this.
09:56:57 <b_jonas> We need an agreed upon univeral method for when to celebrate the crucifiction and the resurrection, so that corrupt local clergy can't be bribed as for what the date is, as was usual in those times. So do we celebrate it on Pesach? No, that would be too simple.
09:57:30 <b_jonas> Invent a completely different rule that's just as hard to implement in practice as the version of the Hebrew calendar used back then, that puts Easter vaguely at the same season as Pesach, and would later be forked to like three or four different modern methods for Easter date in schisms. Now we have two problems.
10:01:54 <Arcorann_> All the Council of Nicaea decided for certain is that Christians should celebrate Easter on the same day independently of the Hebrew calendar, if I remember correctly
10:02:30 <delta23> which calendar?
10:02:47 <delta23> some of the early christians believed in the book of enoch (c. Jude)
10:02:54 <Arcorann_> https://en.wikipedia.org/wiki/Easter_controversy <-- this covers most of it but there's nothing about the Gregorian calendar for some reason
10:02:58 <delta23> we need to convert to enoch cal next lol
10:03:05 <b_jonas> Not that it's ever easy to make a good calendar if it must be tied to both Earth days and (at least one of moon phases or seasons), because if you try to make a mathematically deterministic version, you'll run into problems in a few tens of thousand years just because we can't predict Earth's rotation well enough.
10:03:21 <delta23> b_jonas: enoch cal had that problem
10:03:41 <b_jonas> Arcorann_: then who started the habit of Easter always being on Sunday, when Pesach can fall on any of four days of the week?
10:04:56 <Arcorann_> The "final" Julian calendar Easter computations originated in Alexandria, and according to that WP page the Syriac Christians also celebrated on a Sunday
10:05:05 <b_jonas> basically both the hebrew calendar and the roman calendar stared as being tied to the actual astronomical stuff, then later they adopted possibly short-sighted mathematically defined methods, just so the calendars can be predicted infinitely far, and they don't care if it will be out of sync with astronomy in a few ten thousand years (or in the case of the Julian calendar, in just a thousand years)
10:05:33 <Arcorann_> Roman was never tied to astronomical stuff, pre-Julian it was always ad-hoc
10:06:09 <b_jonas> Arcorann_: the Romans did tie it to days and seasons, loosely. it wasn't well-defined enough to follow any rule, like I said about corrupt local clergy.
10:06:22 <b_jonas> Perhaps we should admit why a mathematically deterministic methods can't work for the long term, and not pretend that it's the one deterministic method that will work forever,
10:07:14 <delta23> make a virtual world which runs on a deterministic calendar
10:07:35 <Arcorann_> I've found a couple of people who tried to match leap years to the tropical year by ridiculously long leap cycles, like millions of years
10:07:36 <b_jonas> but instead make the calendar depend on astronomical observations, but no on such a short term as the traditional Hebrew calendar, but predictable for a few thousand years into the future, which would have been good enough for messengers from a central Astronomical authority to get around even in Roman times
10:08:13 <Arcorann_> Like the Iranian calendar?
10:08:14 <b_jonas> admittedly computers and atomic clocks and GPS make it easier, but it's not like the principle was impossible two hundred years ago
10:08:45 <b_jonas> Arcorann_: yes, and those attempts can't work, because we can't predict how long days will last accurately enough
10:09:25 <b_jonas> they're misguided toys designed by mathematically inclined people who don't understand the astronomical background
10:09:35 <Arcorann_> Agreed
10:09:44 <b_jonas> whereas what I say is misguided for political and societal reasons, not for astronomical reasons
10:10:09 <b_jonas> bb in a few hours
10:10:15 <Arcorann_> The people who designed the French Republican calendar wanted the year to start on the equinox, but then they found that one equinox was predicted to be 20 seconds before midnight with an error margin in the tens of minutes
10:10:55 <Arcorann_> Year 144 of the Republican calendar
10:16:48 <delta23> make a calendar w/ 10 days in a week
10:16:51 <delta23> 10 weeks per month
10:16:54 <delta23> 10 months per year
10:16:57 <delta23> etc.
10:17:53 <Arcorann_> Someone's probably done that already
10:18:37 <Arcorann_> It was Donald Knuth --> https://en.wikipedia.org/wiki/Potrzebie#System_of_measurement
10:50:49 -!- cpressey has quit (Quit: WeeChat 1.9.1).
11:02:45 -!- wmww has quit (Quit: killed).
11:02:49 -!- tswett[m] has quit (Quit: killed).
11:02:51 -!- Discordian[m] has quit (Quit: killed).
11:10:29 -!- wib_jonas has joined.
11:11:27 -!- tswett[m] has joined.
11:14:46 <wib_jonas> Arcorann_: we only had atomic clocks for fifty years. anything we know about how the length of the day changed before that are lucky accidents, where some ancient civilization left records of astronomical observations of the year, month, eclipses, Venus phases, and these are usable only in the rare case when we can clearly determine how many days
11:14:47 <wib_jonas> ago the dates mentioned were, which is often impossible because of the imprecise calendar keeping.
11:19:32 <Arcorann_> Have you read the Stephenson/Morrison/Hohenkirk paper?
11:20:57 <esowiki> [[User:ThisIsTheFoxe]] M https://esolangs.org/w/index.php?diff=77895&oldid=70128 * ThisIsTheFoxe * (+1) typo
11:22:50 <Arcorann_> *Hohenkerk
11:29:17 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
11:34:02 -!- deltaepsilon23_ has joined.
11:34:26 -!- delta23 has quit (*.net *.split).
11:34:26 -!- sftp has quit (*.net *.split).
11:34:26 -!- b_jonas has quit (*.net *.split).
11:34:26 -!- izabera has quit (*.net *.split).
11:34:26 -!- paul2520 has quit (*.net *.split).
11:34:29 -!- deltaepsilon23_ has changed nick to deltaepsilon23.
11:34:40 -!- deltaepsilon23 has changed nick to delta23.
11:34:45 -!- sftp has joined.
11:35:52 -!- wmww has joined.
11:35:58 -!- iscordian[m] has joined.
11:40:14 -!- b_jonas has joined.
11:40:14 -!- izabera has joined.
11:40:14 -!- paul2520 has joined.
11:40:38 <Arcorann_> wib_jonas: https://academic.oup.com/mnras/article/417/4/2714/1095659 <-- if you want a laugh
11:42:58 <wib_jonas> Arcorann_: sorry, that's not the sort of topic I can really laugh about, even if I can see the parody. It's more like sad that we got there.
11:43:30 <Arcorann_> Oh well
11:44:03 <wib_jonas> I personally am selling my skills of solving problems the traditional way, by translating common sense rules to a computer program, rather than trying to use machine learning to divine rules from examples.
11:44:53 <wib_jonas> And I find the hype of trying to apply machine learning (and before that, GPU computations, and before that, multithreading, and before that, just in time compiling) even in cases when it makes the problems harder rather sad.
11:46:15 <wib_jonas> I try to learn enough about all those hyped methods to know when they're useful and when you should ask an expert in those topics, which is a lucky case because they're a dime a dozen now, with every college course trying to teach those fashionable topics only and getting rid of more useful research departments that try to make publications without
11:46:16 <wib_jonas> adding today's marketing keywords.
11:46:34 <Arcorann_> https://royalsocietypublishing.org/doi/10.1098/rspa.2016.0404 <-- anyway, here's the paper I mentioned earlier
11:47:39 <wib_jonas> So instead I just understand enough of both mathematics and programming, but only the basics of both, and this combination is apparently rare enough to be worth something as a job skill, despite that it's a natural pairing.
11:48:12 -!- cpressey has joined.
11:48:36 <wib_jonas> Arcorann_; yes, that's the good article, I have seen that one
11:51:27 -!- iscordian[m] has changed nick to Discordian[m].
11:56:15 <Arcorann_> I could probably ramble on for calendar-related topics about some time
12:00:26 <Arcorann_> Like calendar reform
12:02:00 <wib_jonas> Arcorann_: have you read these first? https://www.tondering.dk/claus/calendar.html http://www.quadibloc.com/science/calint.htm
12:02:21 <Arcorann_> Several times
12:02:37 <wib_jonas> ah good
12:02:50 <wib_jonas> there was a third one somewhere but I forgot
12:03:30 <Arcorann_> http://myweb.ecu.edu/mccartyr/calendar-reform.html <-- this, perhaps?
12:03:32 <wib_jonas> then of course http://www.madore.org/~david/misc/calendar.html because I can't have a discussion without pointint out that David Madore already wrote a long writeup about it
12:04:00 <wib_jonas> Arcorann_: no, I don't think I recall that one, thanks for the link
12:04:53 <wib_jonas> Hmm, wasn't there something from David Madore about the hebrew calendar too?
12:05:19 <Arcorann_> http://www.madore.org/~david/misc/calendar.html <-- this?
12:05:34 <Arcorann_> Wait, that page doesn't really cover Hebrew
12:07:44 <wib_jonas> nope, it doesn't look like he wrote anything comprehensive about it, he only mentions it in passing a few times, calling it the Jewish Calendar
12:09:47 <Arcorann_> http://hebrewcalendar.tripod.com <-- feel free to save this then
12:11:20 <wib_jonas> oh nice, thanks
12:14:06 <wib_jonas> in exchange David wrote about the underlying astronomical problems in detail in http://www.madore.org/~david/weblog/d.2012-04-15.2030.rotation-terre.html besides http://www.madore.org/~david/misc/time.html and http://www.madore.org/~david/misc/calendar.html
12:17:50 <Arcorann_> Nice
12:19:29 <Arcorann_> https://individual.utoronto.ca/kalendis/ <-- if you haven't read this definitely worth saving as well
12:20:37 <wib_jonas> thanks, doesn't ring a bell either
12:32:40 <wib_jonas> I'll try to look at all those links later, but now I have some work to do
12:33:24 <Arcorann_> You're welcome
12:35:29 -!- user24_ has joined.
12:35:31 -!- user24 has quit (Ping timeout: 272 seconds).
12:35:50 -!- user24_ has quit (Remote host closed the connection).
12:36:16 -!- user24_ has joined.
12:42:19 -!- user24_ has quit (Quit: Leaving).
12:42:37 -!- MDude has joined.
12:44:26 -!- t20kdc has joined.
12:47:12 -!- hendursa1 has quit (Quit: hendursa1).
12:47:27 -!- hendursaga has joined.
12:56:44 -!- cpressey has quit (Ping timeout: 260 seconds).
13:07:32 -!- cpressey has joined.
13:41:12 -!- wib_jonas57 has joined.
13:41:39 -!- wib_jonas has quit (Disconnected by services).
13:42:38 -!- wib_jonas57 has changed nick to wib_jonas.
13:52:00 -!- t20kdc has quit (Quit: Leaving).
13:57:22 -!- delta23 has quit (Quit: Leaving).
14:05:35 <esowiki> [[Sea]] https://esolangs.org/w/index.php?diff=77896&oldid=77887 * Orby * (+373) Clarifying and updating some simple translations
14:06:23 <esowiki> [[User:Orby]] M https://esolangs.org/w/index.php?diff=77897&oldid=76668 * Orby * (+73) /* Assorted */
14:19:02 -!- Arcorann_ has quit (Read error: Connection reset by peer).
14:39:05 -!- arseniiv has quit (Ping timeout: 258 seconds).
14:48:12 -!- orby has joined.
14:48:16 <orby> Greetings all
14:51:02 <esowiki> [[Sea]] https://esolangs.org/w/index.php?diff=77898&oldid=77896 * Orby * (+170) /* Commands */
14:51:46 -!- adu has joined.
15:02:56 <cpressey> Hi orby
15:03:40 <orby> Hello :)
15:05:51 <ski> hm, i was recently pondering slightly on the formula fo Gregorian leap years
15:07:02 <wib_jonas> ski: some of those links that we mentioned above has the formula. or do you want a software implementation? there are open source implementations I can point to.
15:07:56 <ski> well, i was just thinking about checking whether a year is a leap year
15:08:15 <ski> it's not a complicated check, but was slightly interesting, from a logical point of view
15:09:42 <wib_jonas> but then that formula has only really been experimentally tested for not much more than five hundred cases, so with all the fickle political decisions (as exemplified by the timezone database) at best it's a current plan and best prediction
15:10:49 <wib_jonas> it has a period of 400 years, and has been tested for less than 500 years, so it's hard to take it all that seriously
15:11:33 <wib_jonas> at least it's much more stable then the fucking holidays and timezones
15:11:51 <ski> GregorianLeapYear(y) ⇔ 4 ∣ y ∧ ¬ (100 ∣ y ∧ 400 ∤ y)
15:12:47 <ski> ⇔ 4 ∣ y ∧ (100 ∤ y ∨ 400 ∣ y)
15:13:21 <ski> ⇔ (4 ∣ y ∧ 100 ∤ y) ∨ 400 ∣ y
15:13:48 <ski> ⇔ ¬ (4 ∤ y ∨ 100 ∣ y) ∨ 400 ∣ y
15:15:08 -!- Sgeo has joined.
15:15:38 <ski> ⇔ (4 ∣ y → 100 ∣ y) → 400 ∣ y
15:16:45 <ski> if we express ⌜A ∧ ¬ B⌝ ("⌜A⌝, but not ⌜B⌝","⌜A⌝, except if ⌜B⌝") as ⌜A ⤚ B⌝, then we can also say
15:17:02 <ski> ⇔ 4 ∣ y ⤚ (100 ∣ y ⤚ 400 ∣ y)
15:17:09 <ski> (so, it's an exception with an exception)
15:22:24 -!- arseniiv has joined.
15:27:21 <ski> (hm, there's also something funny going on, with the entailments between the three individual divisibility conditions, here)
15:28:31 -!- wib_jonas has quit (Quit: Connection closed).
15:46:12 -!- adu has quit (Quit: adu).
15:58:56 -!- sprocklem has joined.
16:02:03 -!- cpressey has quit (Quit: WeeChat 1.9.1).
16:03:41 <esowiki> [[Sea]] https://esolangs.org/w/index.php?diff=77899&oldid=77898 * Orby * (-1033) Fixing mistakes
16:27:00 <Cale> ski: you could also uncurry that
16:27:32 <Cale> er, wait
16:48:32 -!- LKoen has joined.
16:55:10 <ski> uncurry what ?
17:05:19 -!- FreeFull has joined.
17:07:02 -!- hendursaga has quit (Remote host closed the connection).
17:07:59 -!- hendursaga has joined.
17:12:54 <b_jonas> `? mustard watch
17:12:58 <b_jonas> `? mapole
17:12:58 <HackEso> A mustard watch is just a classical watch extended with a certain amount of mustard in the mechanism.
17:12:59 <HackEso> A mapole is a thwackamacallit built from maple according to Canadian standards. The army version includes a spork, a corkscrew and a moose whistle. A regulatory mapole measures 6’ by 12 kg, ±0.5 inHg.
17:18:03 -!- evade has joined.
17:22:53 -!- evade has quit (Client Quit).
17:25:37 <user3456> `? thwackamacallit
17:25:38 <HackEso> A thwackamacallit is like a whatchamacallit, but more painful. See mapole.
17:26:01 <user3456> `? whatchamacallit
17:26:04 <HackEso> A whatchamacallit is like a thwackamacallit, but less painful.
17:41:03 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
17:50:15 <esowiki> [[Sea]] https://esolangs.org/w/index.php?diff=77900&oldid=77899 * Orby * (+333)
17:56:37 -!- rain1 has quit (Remote host closed the connection).
17:58:59 -!- rain1 has joined.
18:47:57 -!- adu has joined.
18:55:21 -!- orby has quit (Remote host closed the connection).
18:58:13 -!- arseniiv has quit (Ping timeout: 258 seconds).
19:06:03 -!- imode has joined.
19:42:48 -!- adu has quit (Quit: adu).
20:23:08 <user3456> hi
20:50:04 <zzo38> Do you like solar hijri calendar?
20:53:51 -!- adu has joined.
21:09:38 -!- deltaepsilon23 has joined.
21:09:48 -!- deltaepsilon23 has changed nick to delta23.
21:23:18 -!- hendursa1 has joined.
21:24:03 -!- hendursaga has quit (Ping timeout: 240 seconds).
21:50:29 <zzo38> ski: A simple C code is (!((y%100?:y/100)&3)) or (!((y%100?y:y/100)&3)) to calculate if it is a leap year.
21:51:53 <ski> yea (calculating it wasn't the issue)
22:01:53 <zzo38> Yes, although maybe it is related to the logic
22:28:16 -!- adu has quit (Quit: adu).
22:36:45 <ski> `<condition> ? : <alternate>' is equivalent to `<condition> ? <condition> : <alternate>' (modulo side-effects in `<condition>') ?
22:36:46 <HackEso> ​<condition>? No such file or directory
22:38:28 <zzo38> Yes, that is how it works in GNU C (some features of GNU C are also implemented in clang, I think)
23:09:33 <ski> ok. i recall seeing it somewhere, but didn't look into the exact semantics
23:09:44 <ski> i guess it's like `or' in Scheme, then
23:10:30 -!- aaaaaa has joined.
23:11:31 <fizzie> Or the Perl ||.
23:37:18 <zzo38> Yes, and || in JavaScript also acts like that
23:41:43 -!- FreeFull has quit.
23:44:09 -!- flower_corpse has joined.
23:47:09 -!- flower_corpse has left.
23:47:47 -!- flower_corpse has joined.
23:48:24 <flower_corpse> hello
23:53:34 <aaaaaa> flower_corpse: hello
23:53:58 <flower_corpse> i like your name
23:55:53 -!- flower_corpse has left ("WeeChat 2.7.1").
23:57:38 -!- adu has joined.
23:58:49 <aaaaaa> flower_corpse: I admire yours
00:02:02 -!- Arcorann_ has joined.
01:34:38 -!- delta23 has quit (Quit: Leaving).
01:58:51 -!- deltaepsilon23 has joined.
02:21:57 -!- deltaepsilon23 has changed nick to delta23.
03:48:43 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
04:02:56 -!- aaaaaa has quit (Ping timeout: 258 seconds).
05:25:43 -!- delta23 has quit (Quit: Leaving).
05:35:18 -!- adu has quit (Quit: adu).
06:29:24 -!- spruit11 has quit (Quit: Lost terminal).
06:36:16 -!- spruit11 has joined.
07:33:01 -!- sprocklem has quit (Ping timeout: 246 seconds).
08:08:21 -!- hendursaga has joined.
08:10:43 -!- hendursa1 has quit (Ping timeout: 240 seconds).
09:15:25 <esowiki> [[Special:Log/newusers]] create * Dingolover6969 * New user account
09:19:00 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=77901&oldid=77879 * Dingolover6969 * (+216) /* Introductions */
09:34:29 -!- imode has quit (Ping timeout: 260 seconds).
09:41:30 <esowiki> [[HQ9+]] https://esolangs.org/w/index.php?diff=77902&oldid=75936 * Dingolover6969 * (+151) /* See also */ add HQ9+- and HQ9F+
09:41:32 -!- Sgeo has quit (Read error: Connection reset by peer).
09:45:07 -!- MDude has joined.
09:54:50 <esowiki> [[HQ9+-]] N https://esolangs.org/w/index.php?oldid=77903 * Dingolover6969 * (+666) create page. Note that i restated the specification (except for the quote) so hopefully it is public domain now.
10:56:11 <esowiki> [[HQ9F+]] https://esolangs.org/w/index.php?diff=77904&oldid=76073 * Dingolover6969 * (+13) Harmonize name of links section with rest of wiki ("External resources")
10:59:18 <esowiki> [[FHQ9+-]] N https://esolangs.org/w/index.php?oldid=77905 * Dingolover6969 * (+399) Created page with "An extension of [[HQ9+-]] that adds the F operator to print [[FizzBuzz]] up to 100 by wyattscarpenter. - preceded by an F deferences a null [[pointer]]. == See also == * HQ..."
11:01:00 <esowiki> [[HQ9F+]] https://esolangs.org/w/index.php?diff=77906&oldid=77904 * Dingolover6969 * (+40) Add a see also section to the page.
11:04:07 <esowiki> [[HQ9+-]] https://esolangs.org/w/index.php?diff=77907&oldid=77903 * Dingolover6969 * (-12) Expand see also section
11:06:09 <esowiki> [[HQ9++]] https://esolangs.org/w/index.php?diff=77908&oldid=30189 * Dingolover6969 * (+16) Expand see also section
11:06:47 <esowiki> [[FHQ9+-]] https://esolangs.org/w/index.php?diff=77909&oldid=77905 * Dingolover6969 * (+115) Add categories
11:07:18 <esowiki> [[HQ9+-]] https://esolangs.org/w/index.php?diff=77910&oldid=77907 * Dingolover6969 * (+115) Add categories
11:07:42 <esowiki> [[HQ9+]] https://esolangs.org/w/index.php?diff=77911&oldid=77902 * Dingolover6969 * (+73) /* See also */ add FHQ9+-
11:09:06 <esowiki> [[HQ9+]] M https://esolangs.org/w/index.php?diff=77912&oldid=77911 * Dingolover6969 * (+1) /* See also */ typo in previous edit
11:31:08 -!- t20kdc has joined.
12:45:38 -!- arseniiv has joined.
12:53:28 -!- diverger has quit (Ping timeout: 258 seconds).
13:00:07 <esowiki> [[33]] N https://esolangs.org/w/index.php?oldid=77913 * SunnyMoon * (+8131) Created page with "'''33''' is the name of a simple and original [[esolang]] invented by [https://github.com/TheOnlyMrCat TheOnlyMrCat]. The language has exactly ''33'' alphabetical single-chara..."
13:05:06 <esowiki> [[33]] M https://esolangs.org/w/index.php?diff=77914&oldid=77913 * SunnyMoon * (+19) I accidentally saved. :P
13:05:33 <esowiki> [[33]] M https://esolangs.org/w/index.php?diff=77915&oldid=77914 * SunnyMoon * (+1) Uh oh!
13:07:13 <esowiki> [[33]] https://esolangs.org/w/index.php?diff=77916&oldid=77915 * SunnyMoon * (+17) Does this work?
13:09:32 <esowiki> [[33]] M https://esolangs.org/w/index.php?diff=77917&oldid=77916 * SunnyMoon * (+7) Nothing interesting...
13:12:04 <esowiki> [[33]] M https://esolangs.org/w/index.php?diff=77918&oldid=77917 * SunnyMoon * (+82) Linking works!
13:13:14 <esowiki> [[33]] M https://esolangs.org/w/index.php?diff=77919&oldid=77918 * SunnyMoon * (-12) No it does not!
13:13:57 <esowiki> [[33]] M https://esolangs.org/w/index.php?diff=77920&oldid=77919 * SunnyMoon * (-6) Whoops!
13:19:59 <b_jonas> I told you not to take the axiom of choice, fungot
13:19:59 <fungot> b_jonas: a country that works for the very, very fnord. by march, and that
13:21:00 <esowiki> [[Brainfuck]] M https://esolangs.org/w/index.php?diff=77921&oldid=76716 * SunnyMoon * (+7) If I did something bad, please revert my edits!
13:23:47 <esowiki> [[Brainfuck]] M https://esolangs.org/w/index.php?diff=77922&oldid=77921 * SunnyMoon * (+20) Hmm...
13:28:59 <esowiki> [[33]] M https://esolangs.org/w/index.php?diff=77923&oldid=77920 * SunnyMoon * (+14) dictionaries?
13:31:28 <esowiki> [[33]] M https://esolangs.org/w/index.php?diff=77924&oldid=77923 * SunnyMoon * (-4) Grammar fix!
13:32:09 -!- hendursaga has quit (Quit: hendursaga).
13:32:34 -!- hendursaga has joined.
13:32:56 <esowiki> [[33]] M https://esolangs.org/w/index.php?diff=77925&oldid=77924 * SunnyMoon * (-1) Man, I am bad at grammar stuff.
13:34:32 <esowiki> [[!@$%^&*()+]] M https://esolangs.org/w/index.php?diff=77926&oldid=77843 * SunnyMoon * (+2) AAAH!
13:39:02 <esowiki> [[User:SunnyMoon]] M https://esolangs.org/w/index.php?diff=77927&oldid=77886 * SunnyMoon * (+199) I thought I wrote this earlier
13:39:44 <esowiki> [[User:SunnyMoon]] M https://esolangs.org/w/index.php?diff=77928&oldid=77927 * SunnyMoon * (+13) That was unintentional.
14:10:56 <arseniiv> b_jonas: fungot gave AC to me to add to a hoard of its various equivalent formulations
14:10:56 <fungot> arseniiv: the government have cut the uk credit union legislation and decisions on the future of the country and the people of our country, to the strategy, and to do that.
14:11:12 <arseniiv> ^europarl
14:11:24 <arseniiv> ^style europarl
14:11:24 <fungot> Selected style: europarl (European Parliament speeches during approx. 1996-2006)
14:11:34 <arseniiv> fungot do you feel that still?
14:11:35 <fungot> arseniiv: mr president, there is a simple case of adding together two units. the commission has not provided any clarity, we are left with a report from the commission than is the case now. all the factors needed to become rich and yet today it is necessary to point out that there has never been properly enlightened and has even had a disorientating effect. public funding for research which is of course, is not to correct the r
14:11:58 <arseniiv> there is a simple case of adding together two units => as I said, an AC hoard
14:26:11 -!- Arcorann_ has quit (Read error: Connection reset by peer).
15:08:34 <fizzie> fungot: What was that about public funding for research?
15:08:35 <fungot> fizzie: mr president, i feel that, in case of prolonged standstill of pigs in holdings kept under movement restrictions due to an oversight on my part. i call on the member states but also in many of our citizens is a specifically chechen crime. this plan specifically refers to the med programme which had emphasized the serious irregularities committed by the airline companies, has created the right conditions to enable the com
15:09:12 <fizzie> Better watch those pigs better.
16:55:21 -!- rain1 has quit (Quit: Leaving).
17:04:00 <esowiki> [[Brainfuck]] M https://esolangs.org/w/index.php?diff=77929&oldid=77922 * PythonshellDebugwindow * (+1) Fix a typo (add `s`)
17:39:00 -!- deltaepsilon23 has joined.
17:41:45 -!- deltaepsilon23 has changed nick to delta23.
17:54:04 -!- adu has joined.
18:37:03 -!- imode has joined.
18:37:07 <fizzie> Weird. Bought two regular onions, both looked normal (yellow-brown) on the outside, but inside the other one looks just like a red onion.
18:50:54 -!- sprocklem has joined.
18:53:50 -!- Sgeo has joined.
19:11:19 -!- rain1 has joined.
19:11:42 -!- adu has quit (Quit: adu).
19:17:10 -!- osminee has joined.
19:17:20 <osminee> hello there
19:17:43 -!- osminee has quit (Remote host closed the connection).
20:21:33 -!- delta23 has quit (Quit: Leaving).
21:21:13 -!- arseniiv has quit (Ping timeout: 264 seconds).
22:55:12 -!- t20kdc has quit (Remote host closed the connection).
23:09:17 -!- joast has quit (Ping timeout: 260 seconds).
23:13:06 <esowiki> [[Turing machine]] https://esolangs.org/w/index.php?diff=77930&oldid=72479 * OsmineYT * (+1)
23:31:40 -!- Arcorann_ has joined.
00:06:01 <zzo38> Now I made up a set of macros in TeX to make a table that can span multiple pages, repeating the table heading on each page and adding a note "(Continued on next page)" at the bottom of the page if the table continues. Maybe you fid it useful too; I don't know
00:23:07 -!- sprocklem has quit (Ping timeout: 246 seconds).
01:37:46 -!- sprocklem has joined.
03:30:40 <imode> what would a "homoiconic brainfuck" look like?
03:32:57 <imode> I guess it'd just be one that's self-modifying.. but that's kinda weird.
04:18:50 -!- Lykaina has joined.
04:19:01 <Lykaina> hi
04:19:22 <Lykaina> testing a new client
04:19:49 <Lykaina> can someone respond?
04:20:00 <imode> hi.
04:20:27 <Lykaina> thanks
04:21:34 <imode> any time.
04:21:41 <imode> happy to lend some bytes.
04:21:47 <shikhin> don't take my bytes.
04:22:24 <Lykaina> is Sgeo here?
04:23:22 <imode> seems like they're in the channel, yeah.
04:24:25 <Lykaina> they were my best friend in college
04:24:54 <Lykaina> introduced me to here
04:29:23 <Sgeo> Hi Lykaina
04:30:06 <Lykaina> hi Sgeo
04:47:26 -!- ocharles has quit (Ping timeout: 240 seconds).
04:49:11 -!- ^[_ has quit (Ping timeout: 240 seconds).
04:49:29 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
04:49:29 -!- ocharles has joined.
04:49:37 -!- dog_star_ has joined.
04:49:44 -!- user3456_ has joined.
04:50:36 -!- ^[_ has joined.
04:54:54 -!- user3456 has quit (Ping timeout: 240 seconds).
04:54:54 -!- dog_star has quit (Ping timeout: 240 seconds).
04:54:55 -!- dog_star_ has changed nick to dog_star.
05:09:12 -!- sprocklem has quit (Quit: Lost terminal).
05:10:01 -!- sprocklem has joined.
05:29:06 -!- aaaaaa has joined.
07:21:54 -!- imode has quit (Ping timeout: 272 seconds).
07:39:19 -!- sprocklem has quit (Ping timeout: 260 seconds).
08:07:25 -!- Sgeo has quit (Read error: Connection reset by peer).
08:08:35 -!- hendursa1 has joined.
08:10:43 -!- hendursaga has quit (Ping timeout: 240 seconds).
08:29:00 -!- clog has quit (Ping timeout: 256 seconds).
10:24:43 -!- clog has joined.
10:28:34 -!- FreeFull has joined.
10:57:05 -!- FreeFull has quit (Ping timeout: 240 seconds).
11:01:48 -!- FreeFull has joined.
12:26:20 -!- t20kdc has joined.
12:48:11 -!- arseniiv has joined.
13:16:40 -!- hendursa1 has quit (Quit: hendursa1).
13:16:58 -!- hendursaga has joined.
13:35:02 -!- Lykaina has quit (Quit: -a- IRC for Android 2.1.20).
14:00:12 -!- Arcorann_ has quit (Read error: Connection reset by peer).
14:20:04 -!- arseniiv has quit (Ping timeout: 260 seconds).
14:38:52 -!- Soni has quit (*.net *.split).
14:39:10 -!- Soni has joined.
14:40:56 -!- tswett[m] has quit (Ping timeout: 240 seconds).
14:50:02 -!- tswett[m] has joined.
14:51:32 <esowiki> [[2DFuck]] M https://esolangs.org/w/index.php?diff=77931&oldid=77842 * SunnyMoon * (+71) I found TheWastl's PPCG account on their answer to my question! :D
14:57:03 -!- arseniiv has joined.
14:58:29 -!- MDude has joined.
15:04:05 -!- aaaaaa has quit (Ping timeout: 240 seconds).
15:22:23 -!- user24 has joined.
15:52:35 -!- aaaaaa has joined.
16:10:30 <esowiki> [[EWagon]] M https://esolangs.org/w/index.php?diff=77932&oldid=77852 * Orangeyy * (-6)
16:26:34 -!- aaaaaa has quit (Ping timeout: 272 seconds).
16:28:37 -!- sftp has quit (Quit: leaving).
16:46:42 -!- sftp has joined.
16:47:04 <zzo38> Why aren't interwoven alignment preambles allowed?
16:49:59 <int-e> (guess the context!)
16:59:04 -!- FreeFull has quit (Read error: Connection reset by peer).
17:01:28 -!- FreeFull has joined.
17:03:26 <b_jonas> zzo38: I don't know what that means but it sounds like a TeX thing. if it's vanilla TeX or Plain TeX, then probably the TeXbook or TeX: The Program tells you why.
17:16:46 -!- FreeFull has quit (Quit: rebooting).
17:20:35 -!- user24 has quit (Remote host closed the connection).
17:33:56 -!- FreeFull has joined.
17:40:15 -!- LKoen has joined.
18:19:56 -!- imode has joined.
18:24:37 -!- sprocklem has joined.
18:30:39 -!- deltaepsilon23 has joined.
18:31:04 -!- Sgeo has joined.
18:36:22 <esowiki> [[33]] https://esolangs.org/w/index.php?diff=77933&oldid=77925 * SunnyMoon * (+526) Some example programs
18:41:12 <esowiki> [[33]] https://esolangs.org/w/index.php?diff=77934&oldid=77933 * SunnyMoon * (+288) cat + resources
18:41:18 -!- deltaepsilon23 has changed nick to delta23.
18:42:56 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=77935&oldid=77872 * SunnyMoon * (+9) 33 joins!
18:44:58 <esowiki> [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=77936&oldid=77839 * SunnyMoon * (+30) 33 joins!
18:45:56 <esowiki> [[Truth-machine]] https://esolangs.org/w/index.php?diff=77937&oldid=77838 * SunnyMoon * (+22) 33 joins!
18:46:25 <esowiki> [[Hello world program in esoteric languages]] M https://esolangs.org/w/index.php?diff=77938&oldid=77936 * SunnyMoon * (+1) Oop
20:58:36 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
21:04:47 -!- delta23 has quit (Quit: Leaving).
21:35:02 <shachaf> Is CDCL "just" SMT where your theory is compatibility with your clause database?
21:51:13 -!- Arcorann_ has joined.
21:52:06 -!- Arcorann_ has quit (Remote host closed the connection).
21:52:33 -!- Arcorann_ has joined.
21:52:38 <esowiki> [[User:HDWithZeroes]] https://esolangs.org/w/index.php?diff=77939&oldid=77631 * HDWithZeroes * (+270)
21:53:07 <esowiki> [[User:HDWithZeroes]] https://esolangs.org/w/index.php?diff=77940&oldid=77939 * HDWithZeroes * (+7)
21:53:08 <esowiki> [[3x]] M https://esolangs.org/w/index.php?diff=77941&oldid=77612 * Tetrapyronia * (-1) Spelling fix
22:06:36 -!- deltaepsilon23 has joined.
22:06:59 -!- deltaepsilon23 has left.
22:07:19 -!- joast has joined.
22:09:04 -!- arseniiv has quit (Ping timeout: 260 seconds).
22:16:13 <imode> string rewrite rules aren't that composable.
22:18:57 -!- tromp has quit (Remote host closed the connection).
22:19:15 -!- tromp has joined.
22:25:20 -!- deltaepsilon23 has joined.
22:25:20 <imode> and systems like underload, FALSE and other concatenative languages with quotations have the problem of needing to deal with variable-sized quotations.
22:25:37 -!- deltaepsilon23 has changed nick to delta23.
23:33:12 -!- FreeFull has quit (Quit: Night night).
23:57:12 -!- sprocklem has quit (Ping timeout: 256 seconds).
23:57:28 -!- sprocklem has joined.
00:20:28 -!- t20kdc has quit (Read error: Connection reset by peer).
01:16:05 <esowiki> [[Special:Log/newusers]] create * RioluTheFurry447 * New user account
01:19:37 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=77942&oldid=77901 * RioluTheFurry447 * (+216) /* Introductions */
01:31:21 -!- aaaaaa has joined.
01:41:28 -!- aaaaaa has quit (Ping timeout: 258 seconds).
01:42:08 -!- aaaaaa has joined.
01:47:38 -!- aaaaaa has quit (Ping timeout: 256 seconds).
03:00:00 -!- Taneb has quit (Quit: I seem to have stopped.).
03:01:33 -!- Taneb has joined.
03:34:38 <imode> huh. equipage is interesting. but I wonder how far you'd get if you 1. replaced the stack with a resizable tape (and left/right operations) and 2. removed arithmetic.
03:37:23 <imode> basically just using dup, drop, swap, apply, compose, left and right.
03:41:56 <imode> pick kinda enables `if` though... hm.
03:53:56 <imode> neat, I made an if statement without 'pick'.
03:54:29 <imode> or really I guess I just made true/false.
04:11:52 -!- ski has quit (Ping timeout: 260 seconds).
04:25:56 -!- aaaaaa has joined.
04:58:58 <imode> if you make duplicating and dropping on an empty stack, you could reduce underload to to dup, drop, swap, apply and compose/concatenate.
04:59:13 <imode> s/an empty stack/an empty stack a no-op
04:59:33 <imode> you could just replace an empty paren set with dup drop.
05:02:07 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
05:55:13 <imode> woah that's weird.
06:10:06 <imode> equipage's quotations are all flat.
06:11:52 <imode> how do you form nested structures then...?
06:44:02 -!- delta23 has quit (Remote host closed the connection).
07:10:34 -!- Sgeo has quit (Read error: Connection reset by peer).
07:14:16 -!- sprocklem has quit (Ping timeout: 246 seconds).
07:49:45 -!- cpressey has joined.
07:55:15 <imode> cpressey: can equipage be used to make a `fn` that returns an `fn`? because it seems like when you compose things, you can't form nested structures.
08:06:15 <cpressey> imode: No, it can't. (unless I'm misremembering)
08:08:05 <imode> interesting.
08:09:22 -!- hendursa1 has joined.
08:09:29 <imode> so doing nested conditionals isn't possible then.
08:11:23 -!- hendursaga has quit (Ping timeout: 240 seconds).
08:11:37 <cpressey> There really isn't any "nested" concept in Equipage, no.
08:12:22 <cpressey> But that's true for a lot of e.g. machine code architectures too, isn't it?
08:12:53 <imode> true. curious as to how you'd do two sequential if statements.
08:13:08 <imode> if(foo){if(bar){...}}
08:14:33 <cpressey> I think the overall idea for a conditional was that you get an index and then `pick` a function with that index from the bottom of the stack. If you wanted to do two conditionals, then, the function that you `pick` would also have to `pick` another function itself.
08:15:10 <imode> oh. that's kinda neat.
08:23:32 <cpressey> It's a bit like "trampolined style", I guess, looking back on it, but I don't remember thinking that at the time
08:37:25 -!- imode has quit (Ping timeout: 256 seconds).
10:44:55 -!- sebbu has quit (Quit: reboot).
11:46:59 -!- sebbu has joined.
11:47:33 -!- FreeFull has joined.
11:51:55 -!- sftp has quit (Ping timeout: 240 seconds).
11:59:04 -!- cpressey has quit (Quit: WeeChat 1.9.1).
12:41:52 -!- hendursa1 has quit (Quit: hendursa1).
12:42:08 -!- hendursaga has joined.
13:01:17 -!- cpressey has joined.
13:45:44 -!- sftp has joined.
13:52:03 -!- xelxebar has quit (Ping timeout: 240 seconds).
13:53:09 -!- xelxebar has joined.
13:58:13 -!- arseniiv has joined.
14:17:51 -!- Sgeo has joined.
14:32:03 -!- xelxebar has quit (Ping timeout: 240 seconds).
14:32:49 -!- xelxebar has joined.
14:44:56 -!- ski has joined.
14:56:29 -!- Arcorann_ has quit (Read error: Connection reset by peer).
15:17:55 -!- Sgeo has quit (Read error: Connection reset by peer).
15:20:07 -!- Sgeo has joined.
15:23:20 -!- MDude has joined.
15:27:41 -!- Melvar has quit (Ping timeout: 265 seconds).
15:39:23 -!- LKoen has joined.
15:39:43 -!- LKoen has quit (Read error: Connection reset by peer).
15:39:59 -!- LKoen has joined.
15:41:52 -!- Melvar has joined.
15:59:11 -!- cpressey has quit (Quit: WeeChat 1.9.1).
17:31:07 -!- Spooktober has quit (Quit: Well, would you look at the time. I've almost missed my ambiguous, non-existent appointment that I have scheduled just when I start to lose interest in my current conversation.).
17:39:06 -!- grumboo has joined.
17:44:44 -!- sprocklem has joined.
18:16:54 -!- imode has joined.
19:09:14 -!- user3456_ has changed nick to user3456.
19:16:11 -!- wmww has quit (Quit: killed).
19:16:28 -!- Discordian[m] has quit (Quit: killed).
19:16:31 -!- tswett[m] has quit (Quit: killed).
19:25:53 -!- wmww has joined.
19:42:13 -!- sprocklem has quit (Ping timeout: 246 seconds).
19:48:07 -!- tswett[m] has joined.
19:48:14 -!- iscordian[m] has joined.
20:02:02 -!- iscordian[m] has changed nick to Discordian[m].
20:47:44 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
21:12:28 <imode> purely concatenative languages intrigue me. if you added the ability to nest to equipage you could do some interesting things.
21:33:21 <ski> "nest to equipage" ?
21:36:47 <imode> replacing the compose operator with something like concatenate.
21:37:05 <imode> so you can have functions that contain other functions, but have to be applied.
21:37:36 <esowiki> [[Baz]] https://esolangs.org/w/index.php?diff=77943&oldid=57879 * RioluTheFurry447 * (+89) /* Quine */
21:44:36 <ski> not sure what replacing an operator would have to do with it
21:44:53 <ski> are you thinking of something like quotations, like in Factor ?
21:45:25 <imode> yes, in which quotations can contain other quotations. you can't build nested structures in equipage.
21:45:39 <imode> well, you _can_, but you can't do it via the compose operator.
21:50:25 <ski> hm, "equipage" is a language, then ? (mayhaps, your language)
21:52:17 <imode> not my language. cpressey's.
21:54:51 <esowiki> [[Furcode]] https://esolangs.org/w/index.php?diff=77944&oldid=73442 * RioluTheFurry447 * (+70)
22:07:41 <esowiki> [[Categowy: Joke wanguages]] N https://esolangs.org/w/index.php?oldid=77945 * RioluTheFurry447 * (+44) Redirected page to [[Category:Themed joke languages]]
22:07:56 <esowiki> [[Categowy: Joke wanguages]] https://esolangs.org/w/index.php?diff=77946&oldid=77945 * RioluTheFurry447 * (-7) Changed redirect target from [[Category:Themed joke languages]] to [[Category:Joke languages]]
22:11:53 <ski> ok
22:14:40 <esowiki> [[Computerdeutsch]] M https://esolangs.org/w/index.php?diff=77947&oldid=77856 * Orangeyy * (-126)
22:23:41 <esowiki> [[SHUSH, KAREN.]] N https://esolangs.org/w/index.php?oldid=77948 * RioluTheFurry447 * (+1259) Created page with "SHUSH, KAREN. == SHUSH, KAREN. == === SHUSH, KAREN. === ==== SHUSH, KAREN. ==== ===== SHUSH, KAREN. ===== SHUSH, KAREN. SHUSH, KAREN. ===== SHUSH, KAREN. ===== SHUSH,..."
22:27:38 <esowiki> [[Csub]] https://esolangs.org/w/index.php?diff=77949&oldid=59776 * RioluTheFurry447 * (+491)
22:29:41 <esowiki> [[ThisIsNotARealLanguage]] M https://esolangs.org/w/index.php?diff=77950&oldid=75238 * RioluTheFurry447 * (+0) fixed typo
22:30:01 <esowiki> [[ThisIsNotARealLanguage]] https://esolangs.org/w/index.php?diff=77951&oldid=77950 * RioluTheFurry447 * (+14) Added content
22:36:36 <esowiki> [[User talk:RioluTheFurry447]] N https://esolangs.org/w/index.php?oldid=77952 * RioluTheFurry447 * (+39) Redirected page to [[User:RioluTheFurry447/owo]]
22:37:14 <esowiki> [[User:RioluTheFurry447/uwu]] N https://esolangs.org/w/index.php?oldid=77953 * RioluTheFurry447 * (+42) Created page with "{{Special:Contributions/RioluTheFurry447}}"
22:37:59 <esowiki> [[User:RioluTheFurry447/fursuit]] N https://esolangs.org/w/index.php?oldid=77954 * RioluTheFurry447 * (+49) Created page with "{{Special:DeletedContributions/RioluTheFurry447}}"
22:57:01 <int-e> sigh
22:58:19 <imode> the hell is going on here.
22:58:36 <imode> oh joy, wiki defacement.
23:00:12 <int-e> yeah I don't think there's a single contribution in those edits
23:01:23 <fizzie> The Baz one from earlier is kind of sort of reasonable.
23:01:50 <int-e> Right.
23:01:53 <fizzie> Then it went off the rails.
23:02:26 -!- Arcorann_ has joined.
23:02:36 <int-e> And I guess https://esolangs.org/w/index.php?title=ThisIsNotARealLanguage&curid=2759&diff=77951&oldid=75238 in isolation would not raise too many eyebrows either.
23:02:46 <int-e> All the others are just awful
23:03:04 <user3456> Yea
23:03:23 <user3456> Any wiki mods here?
23:04:05 <int-e> fizzie has the power but doesn't like wielding the tools
23:05:28 <fizzie> I could try to do a temporary (24h?) edit block + reverts + message on a talk page.
23:05:58 <user3456> Yea
23:06:02 <fizzie> (I'm having trouble understanding the point of those last three.)
23:06:12 <user3456> (There is no point)
23:06:14 <int-e> the last three tie with the introduction
23:06:51 <int-e> kind of.
23:07:07 <fizzie> Oh, I see.
23:07:41 <int-e> Hmm "tie in" I guess.
23:08:00 <int-e> english is too difficult :P
23:08:54 <user3456> Kinda want to add a wiki page for User:RioluTheFurry447 with the text "Not much is known about this user, but from what can be seen from the esowiki irc bot this person is nothing more than a furry themed spambot. "
23:09:12 <esowiki> [[Special:Log/block]] block * Fizzie * blocked [[User:RioluTheFurry447]] with an expiration time of 1 day (account creation disabled): Inserting nonsense/gibberish into pages: Temporary (24h) block for breaking things as part of making a joke of some sort.
23:09:44 <fizzie> "Inserting nonsense/gibberish into pages" is one of MediaWiki's default block justifications, though you could argue a lot of our actual content also counts as "nonsense/gibberish".
23:09:57 <imode> structured nonsense/gibberish.
23:10:00 <user3456> yes
23:10:23 <esowiki> [[Furcode]] M https://esolangs.org/w/index.php?diff=77955&oldid=77944 * Fizzie * (-70) Reverted edits by [[Special:Contributions/RioluTheFurry447|RioluTheFurry447]] ([[User talk:RioluTheFurry447|talk]]) to last revision by [[User:PythonshellDebugwindow|PythonshellDebugwindow]]
23:10:54 <int-e> Maybe https://en.wikifur.com/wiki/OwO ... I guess UwU works as a smiley as well
23:11:34 <user3456> I don't see the point of the "SHUSH, KAREN." page
23:11:40 <imode> yeah that's just spam.
23:11:44 <int-e> Oh it's even mentioned on that page.
23:11:46 <fizzie> Actually, I think there's some sort of mass-rollback thing I could've used as well. But there isn't really that much, and I think that still spams every edit as an individual one on the channel, so I think I'll do it the slow way.
23:12:02 <int-e> user3456: Karen-bashing is a modern trend.
23:12:40 <esowiki> [[Csub]] M https://esolangs.org/w/index.php?diff=77956&oldid=77949 * Fizzie * (-491) Reverted edits by [[Special:Contributions/RioluTheFurry447|RioluTheFurry447]] ([[User talk:RioluTheFurry447|talk]]) to last revision by [[User:A|A]]
23:12:41 <int-e> But the esowiki isn't the place for it.
23:14:58 <fizzie> Let's see if I can figure out the right process for the newly created pages.
23:15:32 <shachaf> @metar koak
23:15:32 <lambdabot> KOAK 122253Z 30009KT 10SM SCT200 29/11 A3002 RMK AO2 SLP167 T02890111
23:15:36 <user3456> is there even a way for normal users to delete pages?
23:16:15 <user3456> wait making it blank would have basically the same effect
23:16:21 <int-e> As far as I know, no. You can blank them and hope for one of the admins to delete them.
23:16:27 <user3456> I see
23:17:06 <esowiki> [[Special:Log/delete]] delete * Fizzie * deleted "[[SHUSH, KAREN.]]": Mass deletion of pages added by [[Special:Contributions/RioluTheFurry447|RioluTheFurry447]]
23:17:06 <esowiki> [[Special:Log/delete]] delete * Fizzie * deleted "[[Categowy: Joke wanguages]]": Mass deletion of pages added by [[Special:Contributions/RioluTheFurry447|RioluTheFurry447]]
23:17:39 <shachaf> int-e: Did you see the thing I asked about CDCL as a theory? I'm still wondering whether it makes sense.
23:17:55 <shachaf> In this formulation your "core solver" wouldn't even know about the clause database.
23:18:09 <int-e> no, I didn't
23:18:12 <Arcorann_> Usually there's a delete template that people can put on pages to be deleted
23:18:47 <shachaf> I'm wondering how different this is from a regular SMT theory.
23:19:21 <fizzie> Hmm, I'm not sure whether I should do the talk page comment on the "actual" talk page, or the thing it now redirects to, because I guess if a user wants to mildly rearrange their user page, that's fine; it's just that there's a lot of MediaWiki infrastructure that treats "User talk:Username" kind of special.
23:20:01 <int-e> Arcorann_: most of us are mediawiki amateurs
23:20:06 <user3456> If it may mess with/break the infrastructure its probably better to roll it back
23:20:22 <fizzie> (They also didn't actually create the "owo" subpage the talk page redirects to. So maybe I'll just use the real talk page for now.)
23:21:42 <int-e> tbf, the user talk page isn't created automatically either
23:21:52 <int-e> But meh.
23:22:44 <Arcorann_> https://tetris.wiki/Template:Delete <-- here's an example of a delete template, just use it as a basis for creating one here
23:23:18 <user3456> alright
23:25:07 <esowiki> [[Template:Mbox]] N https://esolangs.org/w/index.php?oldid=77957 * Pipythonmc * (+1166) Basically copy directly from https://tetris.wiki/edit/Template:Mbox
23:25:31 <esowiki> [[Template:Ambox]] N https://esolangs.org/w/index.php?oldid=77958 * Pipythonmc * (+814) Basically copy from https://tetris.wiki/edit/Template:Ambox
23:27:02 <esowiki> [[Special:Log/upload]] upload * Pipythonmc * uploaded "[[File:Ambox delete.png]]": For the Template:Delete page
23:27:31 <esowiki> [[Template:Delete]] N https://esolangs.org/w/index.php?oldid=77960 * Pipythonmc * (+476) Create template page. Icon and layout copied from https://tetris.wiki/edit/Template:Delete
23:27:46 <user3456> Delete template should be set up
23:30:46 <int-e> Uhm, https://tetris.wiki/File:Ambox_delete.png has a CC 3.0 BY license, we can't simply take it for the CC0 esowiki.
23:31:16 <Arcorann_> Well, you don't have to take it. Like I said, a basis
23:33:57 <esowiki> [[User talk:RioluTheFurry447]] https://esolangs.org/w/index.php?diff=77961&oldid=77952 * Fizzie * (+898) Note on recent edits.
23:38:36 <fizzie> Hmm. I think I can remove a revision of a file so that it's no longer visible. But maybe it'd be nice to replace it with a CC0 delete icon, I'm sure one can't be *that* hard to find.
23:39:31 <user3456> Yea, I'm trying to find one right now
23:39:56 -!- aaaaaa has quit (Quit: leaving).
23:40:06 <fizzie> In that case I'll leave it to you, and just deal with the file revision once it's done. :)
23:44:35 <fizzie> Here's one from Wikimedia Commons; maybe not *exactly* the right kind of delete, but could work and is CC0: https://commons.wikimedia.org/wiki/File:Delete_icon.png
23:45:13 <esowiki> [[Special:Log/upload]] overwrite * Pipythonmc * uploaded a new version of "[[File:Ambox delete.png]]": Upload temp file since the original is not under CC0
23:46:03 <int-e> fizzie: Hmm that's actually kind of cute in the esolang context
23:47:00 <int-e> (we often thrive on taking things slightly out of context)
23:49:33 <user3456> The Wikimedia Commons one seems pretty good
23:52:28 -!- FreeFull has quit.
23:53:46 <esowiki> [[Special:Log/upload]] overwrite * Pipythonmc * uploaded a new version of "[[File:Ambox delete.png]]": CC0 Image, will probably be permanent unless a better one is found
23:54:34 <esowiki> [[Special:Log/upload]] upload * Pipythonmc * uploaded "[[File:Missingno.png]]": Alternative Delete Icon
23:55:28 <esowiki> [[Template:AltDelete]] N https://esolangs.org/w/index.php?oldid=77965 * Pipythonmc * (+476) Alternative delete template with different icon
23:55:36 <user3456> I hope this doesn't count as spam
23:55:42 <Arcorann_> Wait, why do you need two?
23:56:48 <user3456> ¯\_(ツ)_/¯
23:58:19 <Arcorann_> I mean, I guess it doesn't matter that much as long as it still has the message and puts the page into the "delete this" category, but you could just use a parameter
23:59:53 <user3456> I don't really know how the MediaWiki system works but I guess I can read the docs
00:17:04 <user3456> I tried reading the docs and couldn't get it to work :/
00:18:05 <Arcorann_> https://www.mediawiki.org/wiki/Help:Templates <-- this?
00:19:29 <Arcorann_> https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions <-- forgot, read this as well
00:19:33 <user3456> oh
00:20:36 <Arcorann_> I was thinking of the #if function, forgot that it was a parser function
00:20:41 <Arcorann_> Well, it's not that important
00:21:13 -!- arseniiv has quit (Ping timeout: 264 seconds).
00:33:25 <user3456> I give up
00:34:04 <user3456> btw fizzie you can delete the non CC0 image of the trash can
00:38:28 <zzo38> I think that if you have a good justification to believe it, "Not much is known about this user, but from what can be seen from the esowiki irc bot this person is nothing more than a furry themed spambot" may be OK; if it is wrong, they can change it by themself, I think.
00:40:38 <int-e> @metar lowi
00:40:38 <lambdabot> LOWI 130020Z AUTO 18002KT 9999 FEW007 SCT010 BKN030 05/04 Q1016
00:46:41 <zzo38> But, yes, delete the non CC0 image of a trash can. If the image is used somewhere significantly, add a public domain one if you have one, I suppose
00:48:47 <esowiki> [[Special:Log/delete]] delete * Fizzie * deleted "[[File:Ambox delete.png]]": Deleted old revision 20201012234513!Ambox_delete.png: Accidental upload of a non-CC0 image
03:53:30 <shachaf> Why does x86 have both "xchg r/m64, r64" and "xchg r64, r/m64" encodings?
03:54:17 <shachaf> Oh, wait, it doesn't.
03:54:48 <shachaf> Or rather they're both listed but they have the same encoding.
04:03:46 -!- sprocklem has joined.
04:31:29 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
05:50:41 -!- adu has joined.
06:12:12 <esowiki> [[Husk]] https://esolangs.org/w/index.php?diff=77966&oldid=69990 * Razetime * (+683)
07:38:21 -!- Sgeo has quit (Read error: Connection reset by peer).
07:46:26 <esowiki> [[HTPL]] N https://esolangs.org/w/index.php?oldid=77967 * ThisIsTheFoxe * (+2727) Proposal for a Hypertext Programming Language (HTPL)
07:48:10 <esowiki> [[HTPL]] M https://esolangs.org/w/index.php?diff=77968&oldid=77967 * ThisIsTheFoxe * (+15)
07:48:13 -!- adu has quit (Quit: adu).
07:48:24 <esowiki> [[HTPL]] https://esolangs.org/w/index.php?diff=77969&oldid=77968 * ThisIsTheFoxe * (-15) /* WIP */
07:52:03 <esowiki> [[HTPL]] M https://esolangs.org/w/index.php?diff=77970&oldid=77969 * ThisIsTheFoxe * (+135) added history
08:08:48 <esowiki> [[HTPF]] N https://esolangs.org/w/index.php?oldid=77971 * ThisIsTheFoxe * (+1708) Proposal for another Brainfuck equivalent
08:09:21 -!- hendursa1 has joined.
08:09:24 <esowiki> [[HTPL]] M https://esolangs.org/w/index.php?diff=77972&oldid=77970 * ThisIsTheFoxe * (+26)
08:11:03 -!- hendursaga has quit (Ping timeout: 240 seconds).
08:28:51 <esowiki> [[User talk:Hppavilion1]] https://esolangs.org/w/index.php?diff=77973&oldid=72237 * ThisIsTheFoxe * (+389) /* HTPL, thoughts? */ new section
08:31:38 <esowiki> [[User talk:ThisIsTheFoxe]] N https://esolangs.org/w/index.php?oldid=77974 * ThisIsTheFoxe * (+216) /* Hi ^-^ */ new section
08:32:55 <esowiki> [[User talk:ThisIsTheFoxe]] M https://esolangs.org/w/index.php?diff=77975&oldid=77974 * ThisIsTheFoxe * (+33) /* Hi ^-^ added email */
08:36:24 -!- sprocklem has quit (Ping timeout: 260 seconds).
08:39:49 -!- S_Gautam has joined.
08:43:05 -!- cpressey has joined.
08:44:58 <esowiki> [[Sabdt]] https://esolangs.org/w/index.php?diff=77976&oldid=77822 * Aspwil * (+10844) /* Positive Int Multiplication */
08:45:47 <esowiki> [[Sabdt]] https://esolangs.org/w/index.php?diff=77977&oldid=77976 * Aspwil * (+25) /* Brainfuck Interpreter */
08:50:04 -!- imode has quit (Ping timeout: 246 seconds).
09:16:36 -!- dingwat has quit (Quit: Connection closed for inactivity).
09:32:56 <esowiki> [[Sabdt]] https://esolangs.org/w/index.php?diff=77978&oldid=77977 * Aspwil * (+773) /* Brainfuck Interpreter (No Nested Loop Support) */
11:02:17 -!- xelxebar has quit (Remote host closed the connection).
11:02:50 -!- xelxebar has joined.
11:50:39 -!- cpressey has quit (Quit: wvw /o/ /o/ /o/).
12:14:40 -!- hendursa1 has quit (Quit: hendursa1).
12:14:56 -!- hendursaga has joined.
12:17:48 -!- t20kdc has joined.
12:20:01 -!- arseniiv has joined.
12:39:17 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
13:51:56 -!- Sgeo has joined.
13:55:31 <esowiki> [[Special:Log/newusers]] create * RedstoneDave * New user account
13:55:34 -!- cpressey has joined.
14:15:48 -!- MDude has joined.
14:20:01 -!- Arcorann_ has quit (Read error: Connection reset by peer).
14:40:18 <cpressey> I'm extremely confused.
14:42:27 <Taneb> You're in the right channel for that
15:08:14 <cpressey> It's not the being confused that's so unpleasant, it's the feeling stupid because of it.
15:17:34 -!- cpressey has quit (Quit: WeeChat 1.9.1).
15:18:20 <rain1> I know that feeling
15:41:41 -!- FreeFull has joined.
15:47:41 -!- LKoen has joined.
15:47:49 -!- LKoen has quit (Read error: Connection reset by peer).
15:48:10 -!- LKoen has joined.
16:10:15 -!- aaaaaa has joined.
16:23:00 -!- Sgeo has quit (Read error: Connection reset by peer).
16:24:43 -!- hendursaga has quit (Ping timeout: 240 seconds).
16:27:55 -!- hendursaga has joined.
16:28:22 <spruit11> Be smart, stay dumb.
16:40:43 -!- Sgeo has joined.
16:46:55 -!- imode has joined.
17:16:27 -!- S_Gautam has joined.
17:27:21 -!- diverger has joined.
17:42:30 <esowiki> [[Talk:Stax]] https://esolangs.org/w/index.php?diff=77979&oldid=76780 * Cameron * (+297) /* Programs I've made with it */ Updated multiplying code, I was so dumb when I made the first one.
18:47:45 -!- clog has quit (Ping timeout: 240 seconds).
18:53:54 <arseniiv> hey do you know what precise relation is between the Fibonacci-base numbering and the golden ratio base?
18:54:57 <arseniiv> they seem to be related and at first I thought they are two different kinds of Ostrowsky numeration for the same number (φ) but the golden base doesn’t seem to be
18:55:51 <arseniiv> I’d be very glad for a treatise on mixed non-integer base numerations
18:59:37 <arseniiv> golden is not(?) a generic non-integer base due to the rule “prefer 100 to 011 and so on” and I can for example come up with a similar silver base system (for χ := √2 − 1) where the rule is “prefer 100 to 021”, and it’s also related to the “Pell base” analogous to Fibonacci base and being a kind of Ostrowsky system again, unlike(?) that silver system
19:01:29 <arseniiv> I want to make sense of the full generality, what can I do and what mixed non-integer bases are able to make unique representations of numbers by adding such linear rules, and how they connect to continued fractions (golden and silver seem to connect)
19:03:25 <arseniiv> ah, not only unique representation but also monotonicity: in silver base, 1 → 10 → 11 → 20 → 100 → 101 → 110 → 111 → 120 → 200 → 201 → 1000 → … is an ascending sequence
19:04:06 <arseniiv> if one picks 021 over 100 and so on, that sequence would not be monotone
19:04:42 <arseniiv> it should be a part of some theory but I’m yet to stumble where to read on it
19:06:17 <arseniiv> btw that the last digit in the sequence doesn’t go up to 2 is analogous to Ostrowsky systems too. There it’s allowed to take one less value than for all other digit positions
19:07:58 <arseniiv> (though that’s not the case for the golden system?.. but both Fibonacci and Pell comply)
19:08:23 <arseniiv> thank you if you know something about all this
19:13:06 <arseniiv> btw you can read about that two Ostrowsky things in Andrew Mansfield Rockett, Peter Szüsz “Continued fractions”, in II.4
19:13:46 <arseniiv> en.wiki article misfused me a lot
19:18:18 <arseniiv> I thought about all that in application to timbre design: harmonics at what ratios to the fundamental can a timbre have to have useful properties, e. g. being sufficiently like “harmonic timbre” ℕ. For example we want for our timbre to not clash with itself when multiplied by φ like harmonic one would, and we want something less boring and spacey than {1, φ, φ², …}
19:19:48 <arseniiv> then I took a golden system and it adviced me to add 1 and φ − 1 consecutively to fill the blanks
19:25:15 <arseniiv> (though now I think it would be better to use 1 and φ and consider an interval between 1 and φ irrelevant). In the same vein one may use a “snake” of adding 2(√2 − 1) and 2 − √2 to √2 to make a timbre which endures multiplication by √2 and is again “not sparse”
19:25:26 <arseniiv> )
19:25:49 <arseniiv> ow I didn’t need to close that
19:33:17 -!- sprocklem has joined.
19:34:01 <b_jonas> two things I hate about clothing and shoes and suchlike is (1) the shops where I buy them suck, and they're in shopping malls that are even worse; (2) the models get replaced too quickly, but they have unpredictable quality and lifetime, so by the time any product is proven to be long-lasting and good, it's too late to buy another copy
19:44:16 <arseniiv> b_jonas: agree
19:45:26 <b_jonas> oh crap
19:45:47 <b_jonas> and one of the jeans that I bought is wrong
19:45:59 <arseniiv> :(
19:46:12 <b_jonas> I might try to return this one since it's unused
19:46:23 <b_jonas> and this store has a return policy
19:48:10 <b_jonas> no darn it
19:48:12 <b_jonas> I just labelled it
19:48:19 <b_jonas> I probably can't return
19:48:24 <arseniiv> dislabelled?
19:48:35 <b_jonas> no, labeled
19:48:55 <b_jonas> as in, I decided I'll at least try to figure out which jeans last longer
19:49:06 <b_jonas> but for that I have to mark them when I bought them so I can identify them
19:49:16 <arseniiv> aah
19:49:42 <b_jonas> so I wrote on its sewn-in washing label in pen, because that's semi-permanent, as in survives a few washing cycles before it fades enough that I have to rewrite it
19:49:52 <b_jonas> and then I noticed that this one has no belt loops
19:50:30 <b_jonas> for more elegant trousers I do check that, because they sometimes come with belt loops for narrow belts only, and I don't wear narrow belts
19:50:47 <arseniiv> don’t worry maybe they’ll accept it back anyway?
19:51:07 <arseniiv> night
19:51:08 <b_jonas> but this is a cheap C&A jeans, and I'm tired, so I didn't think it would have that problem
19:51:12 <b_jonas> dunno, I'll figure that out later
19:51:22 <b_jonas> it
19:51:27 <b_jonas> 's too late for that nonsense today
19:55:25 -!- arseniiv has quit (Ping timeout: 246 seconds).
19:58:02 <esowiki> [[!@$%^&*()+/Algorithms]] https://esolangs.org/w/index.php?diff=77980&oldid=77894 * SunnyMoon * (+113) Parity
20:06:02 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
21:23:31 -!- deltaepsilon23 has joined.
21:23:38 -!- deltaepsilon23 has changed nick to delta23.
21:26:12 -!- fungot has quit (Ping timeout: 256 seconds).
21:30:36 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
21:51:50 -!- fungot has joined.
22:08:13 -!- clog has joined.
22:49:54 -!- aaaaaa has quit (Quit: leaving).
22:55:16 -!- wesleyac has joined.
23:02:03 <fizzie> Can't make heads or tails out of this IPv6 issue. It works on the ISP's supplied router. I've snooped on all outgoing traffic from it (by putting a bridge in-between), and there isn't really much that's different, other than of course the MAC addresses.
23:05:22 <zzo38> I think some routers have MAC address cloning, in case the problem is the MAC addresses
23:08:53 -!- t20kdc has quit (Quit: Leaving).
23:09:32 <b_jonas> fizzie: and you have checked if that router has settings that reveal something?
23:09:39 <b_jonas> as in, settings that you as the end user can configure?
23:11:54 <b_jonas> also isn't some of that traffic encrypted so you can't snoop it with a passive bridg?E?
23:13:22 <esowiki> [[Turing machine]] M https://esolangs.org/w/index.php?diff=77981&oldid=77930 * PythonshellDebugwindow * (-1) Undo revision 77930 by [[Special:Contributions/OsmineYT|OsmineYT]] ([[User talk:OsmineYT|talk]]) (correct grammar)
23:19:31 <b_jonas> I apparently do get ipv6 connectivity from home, with an address that the computer autoconfigs with the ISP's local modem-router
23:24:08 <b_jonas> which, by the way, doesn't get NATed, so I guess that means you can directly connect to some of the listening services on my computer, without having to access the local wifi
23:24:49 -!- RTFM[ChOkO] has quit (Ping timeout: 260 seconds).
23:25:27 -!- RTFM[ChOkO] has joined.
23:26:08 <b_jonas> ssh in particular
23:27:51 <fizzie> Depends on what "that traffic" means, plain IPv6 neighbor discovery and DHCPv6 isn't encrypted in any way.
23:29:07 <b_jonas> fizzie: that isn't, sure, but I wonder if the router has to do authenticate that you're the specific user that pays for the internet service, of if the distant router knows that automatically from which cable the data is coming from
23:29:23 -!- Luciole has quit (Quit: Goodbye).
23:29:49 -!- FireFly has joined.
23:30:23 <fizzie> As far as I know, it should Just Work, and it always has so far. The ISP's (official) attitude towards third-party routers is that they'll provide only very limited support, but they're not going to intentionally break them.
23:30:57 <b_jonas> right. so I just keep their modem+router, even if I may put my own router behind them
23:31:40 <fizzie> I think there's probably something particularly fundamentally wrong, because I don't even get a response for the ICMPv6 neighbor discovery on the link-local addresses, even though the messages are pretty much identical.
23:32:13 <b_jonas> in this case, I don't (yet) have a router behind it, and most of the time I only have one computer behind it so far, the one desktop computer, with occasional guest devices connected through wifi, but in my parent's house there was a system of like a router or two and four switches including two wifi or somesuch
23:33:34 <fizzie> (Also managed to catch the ISP's router doing a firmware update immediately when I plugged it in, which I guess I should've expected.)
23:34:13 -!- Arcorann_ has joined.
23:34:15 <b_jonas> cables pulled to two additional rooms through the attic, plus to a neighbor, and the modem and most of the devices were in the room that my parents used them, where my father often had like six desktop computers connected for reasons of his work. I don't know how it changed these days, but of course there are much more smartphones.
23:47:37 -!- FreeFull has quit.
23:58:01 <b_jonas> I should probably get one of these dynamic dns services so that I can host silly stuff on my home desktop towards the internet. presumably one that does both ipv4 and ipv6, since the isp gives me connectivity through both.
00:37:22 <zzo38> I host stuff on my home computer too, but I don't have version 6 internet.
00:50:47 <b_jonas> "version 6 internet" sounds weird, even if I know that the unixy socket interface calls the required address family AF_INET6
02:53:05 -!- arseniiv has joined.
02:53:30 <arseniiv> hi again world
02:57:22 -!- adu has joined.
03:12:13 <imode> hi arseniiv.
03:12:57 <arseniiv> imode: morning! (from my perspective at least)
03:13:44 <arseniiv> btw at any rate, do you know something about golden base type numerations?
03:16:15 <imode> I do not!
03:16:24 <imode> am interested in what that means though.
03:19:02 <arseniiv> ah, I was rambling about that a small amount the other day at https://esolangs.org/logs/2020-10-13.html#lnb
03:19:02 <arseniiv> I’m in a sense desperate, though I uncovered another bit between dreams. Maybe these *are* just plain non-integer base systems, but as one has identities such as φ² = φ + 1, or χ² = 2χ + 1, or (√2)² = 2, it makes an obvious way to constrain digit strings precisely in such a way to make the numeration ascending
03:19:12 <arseniiv> but I still think there’s more to it
03:21:30 <arseniiv> for example I can’t explain that easily that the restriction to have the last digit ≠ 1 (so, exactly zero) for base φ or ≠ 2 for base χ corresponds to the analogous restriction for base Fibonacci or base Pell
03:22:36 <arseniiv> oh wait, there’s no such restriction for base φ but there is for base χ
03:22:48 <arseniiv> that makes things more confusing
03:23:29 <arseniiv> (I defined χ := √2 + 1 for convenience)
03:24:36 <arseniiv> (the next one would be ψ: ψ² = 3ψ + 1, and maybe I should investigate it and find out that things are even more confusing)
03:31:16 -!- b_jonas has quit (Remote host closed the connection).
03:34:45 -!- sprocklem has quit (Ping timeout: 240 seconds).
03:35:02 -!- sprocklem has joined.
03:59:17 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
04:52:50 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[Template:Delete]]": Copyright violation: content was: "{{Ambox | namespace = main | text = '''This page is a candidate for deletion.''' | style = border: 1px solid #c23446; border-...", and the only contributor was "[[Special:Contributions/Pipythonmc|Pipythonmc]]" ([[User talk:Pipythonmc|talk]])
04:54:10 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[Template:Ambox]]": Copyright violation: the only contributor was "[[Special:Contributions/Pipythonmc|Pipythonmc]]" ([[User talk:Pipythonmc|talk]])
04:54:38 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[Template:AltDelete]]": Copyright violation: the only contributor was "[[Special:Contributions/Pipythonmc|Pipythonmc]]" ([[User talk:Pipythonmc|talk]])
06:16:12 <imode> https://repl.it/repls/ShorttermHumbleCommunication and now to try to bootstrap church numerals in this thing.
06:45:13 -!- sprocklem has quit (Ping timeout: 260 seconds).
07:00:37 -!- adu has quit (Quit: adu).
07:02:09 -!- imode1 has joined.
07:02:52 -!- imode has quit (Ping timeout: 272 seconds).
07:06:41 -!- imode has joined.
07:06:49 -!- imode1 has quit (Ping timeout: 260 seconds).
07:09:36 -!- cpressey has joined.
07:19:57 -!- cpressey has quit (Quit: WeeChat 1.9.1).
07:23:08 -!- Sgeo has quit (Read error: Connection reset by peer).
07:32:18 <imode> church numerals seem easy. just a bunch of compositions over and over again. could have a `number` macro that preserves the two quotations you worked with for later.
07:33:31 -!- delta23 has quit (Remote host closed the connection).
07:57:18 -!- cpressey has joined.
08:07:42 -!- hendursaga has quit (Remote host closed the connection).
08:08:28 -!- hendursaga has joined.
08:12:51 -!- hendursa1 has joined.
08:16:03 -!- hendursaga has quit (Ping timeout: 240 seconds).
08:25:05 -!- LKoen has joined.
08:35:06 -!- rain1 has quit (Quit: Leaving).
09:03:21 <esowiki> [[Stax]] https://esolangs.org/w/index.php?diff=77982&oldid=76776 * JonoCode9374 * (+104)
09:03:30 -!- rain1 has joined.
09:30:02 <cpressey> https://en.wikipedia.org/wiki/Richardson%27s_theorem
09:31:08 <cpressey> Laczkovich's simplified version looks particularly nice
09:31:22 <Taneb> Yesterday I was messing around in Haskell, and implemented regular expressions with "data Regex c a = Regex (Maybe a) (c -> Regex c a)"
09:31:44 <Taneb> I noticed it's possible to implement a Choice instance (from the profunctors library) for this type
09:33:00 <Taneb> I don't know what use this instance would have, however
09:33:47 <Taneb> Here is my code: https://gist.github.com/Taneb/804c57c4563645d933d215470cf3f911
09:38:03 <cpressey> The profunctor docs tell me Choice is "the generalization of Costar of Functor that is strong with respect to Either." I think I'll sit this one out.
09:41:23 <Taneb> cpressey: if I have a regular expression on alphabet c, I can turn it into one on Either c d, which accepts any Right value and otherwise matches what we started with if we ignore the Rights
09:45:26 <cpressey> Taneb: I don't think I follow you. What did we start with?
09:45:53 <Taneb> A regular expression on alphabet c
09:47:10 <cpressey> This is the "what we started with" in the phrase "otherwise matches what we started with"?
09:47:20 <Taneb> Yeah
09:47:48 <Taneb> So left' a*b accepts [Right x, Left a, Left a, Right y, Left b]
09:47:59 <Taneb> Because if we ignore the Rights, we hae aab which a*b accepts
09:50:29 <Taneb> Does this help?
09:51:52 <Taneb> cpressey: also feel free to look at/comment on the rest of the file, too
09:53:23 <cpressey> Is this much or any different from https://hackage.haskell.org/package/base- ?
09:54:32 <Taneb> ...somewhat
10:38:36 -!- cpressey has quit (Quit: WeeChat 1.9.1).
10:49:24 -!- imode has quit (Ping timeout: 256 seconds).
11:09:38 -!- FreeFull has joined.
11:37:45 -!- t20kdc has joined.
12:42:27 -!- hendursa1 has quit (Quit: hendursa1).
12:42:43 -!- hendursaga has joined.
13:53:39 -!- Sgeo has joined.
14:51:11 -!- aaaaaa has joined.
14:57:46 -!- MDude has joined.
15:26:02 -!- b_jonas has joined.
16:56:11 -!- Robdgreat has left.
16:56:24 -!- Arcorann_ has quit (Read error: Connection reset by peer).
17:02:28 -!- imode has joined.
17:29:44 <arseniiv> suppose we have a function `unconst :: (a → b) → Maybe b` which returns `Just x` precisely on functions extensionally equal to `const x`. How many miracles could we make? I suppose we could solve halting problem?
17:31:00 <arseniiv> for this kind of function to be reasonable, it need constraints like (Bounded a, Eq b) or something less strong than Bounded but which means “b is finite and recursively enumerable”
18:58:55 -!- dingwat has joined.
18:59:30 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
19:02:34 -!- arseniiv has quit (Ping timeout: 260 seconds).
19:28:19 -!- sprocklem has joined.
20:33:43 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
20:42:51 -!- deltaepsilon23 has joined.
20:43:00 -!- deltaepsilon23 has changed nick to delta23.
20:58:23 -!- delta23 has quit (Quit: Leaving).
21:51:54 -!- FreeFull has quit (Read error: Connection reset by peer).
22:11:35 -!- j4cbo has quit (Ping timeout: 272 seconds).
22:12:40 -!- relrod has quit (Excess Flood).
22:12:47 -!- relrod has joined.
22:12:50 -!- relrod has quit (Changing host).
22:12:50 -!- relrod has joined.
22:13:51 -!- j4cbo has joined.
22:29:56 -!- FreeFull has joined.
22:56:19 -!- Arcorann_ has joined.
23:01:09 -!- Arcorann_ has quit (Ping timeout: 260 seconds).
23:02:18 -!- aaaaaa has quit (Quit: leaving).
23:22:53 -!- Arcorann has joined.
23:36:50 <esowiki> [[Interstack]] M https://esolangs.org/w/index.php?diff=77983&oldid=77671 * PythonshellDebugwindow * (+3) /* Cat program */ Fix cat program to match description
23:54:39 -!- FreeFull has quit.
23:55:50 -!- stux has joined.
00:02:29 -!- t20kdc has quit (Remote host closed the connection).
00:13:13 -!- deltaepsilon23 has joined.
00:13:23 -!- deltaepsilon23 has changed nick to delta23.
00:59:41 -!- MDude has joined.
00:59:58 -!- stux has left ("Leaving").
01:39:40 <zzo38> I wrote a JavaScript code to read /dev/urandom and use that to make up random numbers, because the built-in one using floating random numbers when you actually want integers, isn't a very good way to do it, I think. The same is true of BASIC.
01:42:56 <shachaf> But the main reason to use JavaScript is to run in web browsers, which don't give you access to /dev/urandom.
01:44:15 <zzo38> Well, JavaScript is one programming language you can use in web pages (the other is WebAssembly), although it is not limited to web browsers. If you are using something that does give you such access (such as Node.js running on Linux), then you can.
01:50:05 <shachaf> You can't write web programs with just WebAssembly, though.
01:50:20 <shachaf> You always need JavaScript.
01:54:16 <zzo38> Well, many web pages should not need any document scripts at all
02:04:18 <Arcorann> 32-bit integers?
02:07:04 <zzo38> Yes, although you might want numbers in a certain range, and if it is not a power of two, then it might take more than one try before you get an acceptable number.
02:07:37 <int-e> If we're enumerating programming languages, GLSL and OpenCL may also work in browsers, depending on available hardware.
02:08:00 <Arcorann> https://github.com/dworthen/prng <-- searching online for javascript PRNGs turns up this
02:09:11 <Arcorann> https://github.com/bryc/code/blob/master/jshash/PRNGs.md <-- also this
02:10:15 <Arcorann> Of course, there's also whether you want cryptographic security or not
02:15:20 -!- delta23 has quit (Quit: Leaving).
02:16:20 -!- dingwat has quit (Quit: Connection closed for inactivity).
02:54:12 -!- vertrex has quit (Ping timeout: 256 seconds).
02:54:25 -!- vertrex has joined.
02:54:25 -!- vertrex has quit (Changing host).
02:54:25 -!- vertrex has joined.
05:13:14 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
05:40:26 <b_jonas> Erich Friedman confirmed that https://erich-friedman.github.io/ is maintained by him, it's not a third-party mirror. good.
06:44:50 -!- sprocklem has quit (Ping timeout: 256 seconds).
06:45:39 -!- Sgeo has quit (Read error: Connection reset by peer).
07:19:23 -!- cpressey has joined.
07:23:59 -!- arseniiv has joined.
07:24:25 <cpressey> Once upon a time there was a language called "Java" that ran in web browsers. There was also something called "Flash"
07:26:29 <imode> is this a horror story.
07:29:36 -!- deltaepsilon23 has joined.
07:30:00 -!- deltaepsilon23 has changed nick to delta23.
07:30:09 <shachaf> The idea of basing your language choice on your target platform is still ridiculous.
07:30:51 <shachaf> Portable high-level languages were invented in the 1950s or thereabouts, so the fact that this idea exists today is just ridiculous.
07:31:07 <cpressey> That's right. You should base your language choice on availability of programmers who will code in it for the lowest possible pay
07:31:49 <shachaf> Java only ever ran badly in web browsers. And neither Java nor Flash did general-purpose things. They just painted onto a special canvas.
07:33:56 <cpressey> I don't think there is such a thing as a general-purpose programming language, but Java can certainly be used in many application areas. Applets are (were) just one of those areas.
08:05:42 <zzo38> I think that different programming languages are suitable for different purposes, although being portable can also be useful. (There is also possibility to target only one VM, but for the VM itself to be portable, which is also useful in some cases. It might also be written for a different system which is then emulated, such as a computer game written for DOS but running on Linux.)
08:05:59 -!- cpressey has quit (Quit: WeeChat 1.9.1).
08:07:10 <zzo38> (Even today some people write computer games for NES/Famicom; they will then work on not only NES/Famicom but also any computer that can emulate it.)
08:08:18 -!- hendursa1 has joined.
08:10:43 -!- hendursaga has quit (Ping timeout: 240 seconds).
08:21:02 -!- cpressey has joined.
08:27:38 -!- aaaaaa has joined.
08:36:01 <shachaf> cpressey: I mean, general-purpose inside a web browser.
08:36:09 <shachaf> I'm talking about the runtime environment, not the language.
08:46:26 <cpressey> Oh, I see. But if it's ridiculous to choose a language based on the platform it targets in the first place, then why does it even matter if some languages target some platforms poorly?
08:51:50 -!- wib_jonas has joined.
08:54:17 <shachaf> I don't follow.
08:54:55 <shachaf> I was saying I didn't like Java applets (the platform) and Flash (the platform) for this reason. I wasn't commenting on the languages except to the extent they target those platforms.
08:55:55 <shachaf> My platform complaints are about web pages (JavaScript etc.), Android (Java), Apple platforms (Swift/Objective C), and so on.
08:56:35 <cpressey> OK.
08:57:01 <shachaf> I also didn't mean to complain more than a couple of linesworth.
08:57:42 <cpressey> OK.
10:19:08 -!- delta23 has quit (Ping timeout: 258 seconds).
10:26:30 -!- t20kdc has joined.
11:07:12 <cpressey> Trying to figure out what Haskell wants is frustrating and makes me feel shitty.
11:07:31 <cpressey> I should probably give up and leave this sort of thing to the people who have aptitude for it.
11:11:44 <wib_jonas> add more type annotations!
11:12:28 <wib_jonas> it's the only way to counter haskell's zealous global type inference
11:19:36 <cpressey> I don't understand what type annotation it wants
11:29:09 <cpressey> This is like playing one of those text adventures where the puzzles have arbitrary solutions
11:29:42 <cpressey> Giving up. Life is too short to be doing something that makes you feel this shitty.
11:40:17 <shachaf> Oh no.
11:41:18 <cpressey> It's only ~1500 lines, I can easily rewrite it in Python.
11:42:35 <Taneb> cpressey: can you share what you've been struggling with?
11:43:35 <cpressey> Taneb: I'd rather not.
11:43:42 <Taneb> OK
11:45:18 <cpressey> If someone else simply tells me what's wrong with it and how to fix it, will I learn anything from that?
11:45:26 <cpressey> I suspect not.
11:46:08 <wib_jonas> hmm, do we have a "the error is in line 42" meme here?
11:48:44 <Taneb> I might learn something about what's impossible
11:49:34 <cpressey> Or, to put it another way, I'd rather not share it because I don't want to feel even shittier still
11:51:08 <wib_jonas> rewriting the whole thing might work
11:51:16 <cpressey> "Thanks to their television-atrophied attention spans, these casual gamers are mentally incapable of spending six hours trying to randomly guess at the absurd dream logic Roberta Williams has applied to the problem of getting the dungeon key out of the bluebird's nest." -- http://www.oldmanmurray.com/features/77.html
11:51:55 <cpressey> (that article extends over 3 pages, it makes more sense if you read them all)
11:54:14 <cpressey> s/makes more sense/is much funnier/
11:55:46 -!- cpressey has quit (Quit: Time to find a new hobby.).
12:11:43 -!- hendursa1 has quit (Quit: hendursa1).
12:12:02 -!- hendursaga has joined.
13:09:19 -!- cpressey has joined.
13:26:27 <cpressey> Oh, I have an even better idea than rewriting this project in Python. I could just not do it at all!
13:44:56 <esowiki> [[User:SunnyMoon/Expirements]] N https://esolangs.org/w/index.php?oldid=77984 * SunnyMoon * (+47) New page!
13:46:15 <esowiki> [[User:SunnyMoon]] https://esolangs.org/w/index.php?diff=77985&oldid=77928 * SunnyMoon * (+119) Expirements...
13:49:30 <esowiki> [[User:SunnyMoon/Expirements/Output in esolangs]] N https://esolangs.org/w/index.php?oldid=77986 * SunnyMoon * (+217) Output? What is that?
13:52:07 -!- Sgeo has joined.
14:23:17 <cpressey> Pissed off and feeling cheated. I want a solution to this.
14:29:05 <cpressey> The fact is that some people are not good at "thinking in types". I am one of them.
14:30:01 <cpressey> And as long as these people exists, languages whose entire culture is based on "thinking in types" can't promote themselves as being for everyone. It's disingenuous.
14:30:27 <myname> no language is for everyone
14:30:51 <cpressey> If the Haskell community was more elitist, it would be more honest of them.
14:31:13 <myname> what's your problem?
14:32:14 <cpressey> My problem is that while I like the bottom 15% of Haskell a lot, I'm not smart enough to work with the top 85% of Haskell.
14:32:22 <Taneb> I can't think in not-types :(
14:32:31 <wib_jonas> myname: doesn't say exactly because he wants to fix it himself, but it's probably still that monad transformer tower thing from a few days ago
14:32:33 <rain1> i think haskell is too complex, it's like C++
14:32:44 <rain1> the basics are really good like data List a = Nil | Cons a (List a)
14:33:12 <rain1> you don't need to use the complex parts, they're kind of ugly
14:33:22 <myname> oof, i wouldn't compare haskell to c+|
14:33:28 <rain1> GHC then
14:33:28 <myname> ++
14:33:42 <myname> huh? ghc makes no sense here
14:33:45 <cpressey> If you don't use the complex parts you're "not really programming in Haskell".
14:34:06 <cpressey> More to the point, you're alienating yourself from the community and libraries.
14:34:07 <rain1> sure but i'm saying that you don't need to use haskell, just use the good parts tm
14:34:22 <rain1> the community alienated themselves by breaking everything
14:34:24 <rain1> tbh
14:35:13 <rain1> haskell was fine you have functors and monads, then they made everything traversible and the language wasn't as nice
14:36:03 <cpressey> Taneb: Which means you're the sort of person who should use Haskell, and that I am the sort of person that should not.
14:36:24 <Taneb> Perhaps!
14:36:35 <Taneb> But I think people should do what they find enjoyable, most of all
14:37:58 <wib_jonas> rain1: do you mean applicable instead of traversible?
14:38:16 <rain1> no applicative is cool
14:38:48 -!- Arcorann has quit (Read error: Connection reset by peer).
14:42:32 <cpressey> Well, I don't enjoy feeling dumb and shitty.
14:42:57 <rain1> was there a specific thing that made you feel dumb?
14:43:26 <rain1> feel free to post your code
14:43:31 <myname> he won't
14:44:23 <cpressey> This isn't about my code.
14:45:41 <cpressey> I'm sure it's some reasonably straightforward problem with existential types, which I don't understand very well.
14:45:57 <rain1> existential are very very hard to use
14:46:03 <rain1> they never really make sense
14:46:12 <cpressey> I'm sure I could spend X amount of time studying existential types and eventually be able to understand the problem and fix it.
14:46:30 <cpressey> One problem is that X is very large, given that I do not "think in types".
14:46:36 <rain1> it would be better to avoid it if possible, there is one pattern of usage thaht is ok (the ST monad) but other than - try to avoid
14:46:55 <cpressey> Oh, but everyone uses GADTs.
14:47:21 <rain1> is there a specific GADT you want to work with
14:47:40 <cpressey> So, yes, I could luddite to Haskell98 with no LANGUAGE pragmas, which is what I have done until now
14:47:49 <rain1> that's the right thing to do imo
14:48:36 <wib_jonas> just rewrite it into a non-lazy language that doesn't require you to think in types
14:48:46 <wib_jonas> a multiparadigm language that doesn't bind your hands
14:49:34 <wib_jonas> one where you can write code by just writing what the computer has to do, instead of having to prove that compiler that it's correct
14:50:02 <cpressey> This isn't about my code.
14:50:03 -!- MDude has joined.
14:50:35 <cpressey> Besides, you don't have to prove your code is correct in Haskell -- you can happily write a monad that doesn't adhere to the monad laws
14:51:05 <rain1> that's why we have coq
14:53:41 <cpressey> Coq has a lot of appeal, but it's also a lot of work, and I would probably still be expected to "think in types" a lot of the time.
14:54:17 <cpressey> I keep saying this isn't about my code -- if anything it's about something in the Haskell community that is hard to pinpoint.
14:54:36 <rain1> in coq it's a bit more like mathematical logic
14:54:43 <rain1> so it can actually make more sense
14:54:46 <myname> writing what the computer has to do is my least favourite style of programming
14:57:22 <cpressey> Basically what I hate is when people who do think in types look down their nose at people who do not think in types.
14:57:45 <rain1> yea that sucks
14:57:51 <rain1> were people being dicks in #haskell or something?
15:00:13 <arseniiv> free hugs!
15:07:35 <cpressey> rain1: Nothing specific to the #haskell channel
15:12:07 -!- wib_jonas has quit (Quit: Connection closed).
15:31:49 -!- adu has joined.
15:43:22 -!- cpressey has quit (Quit: WeeChat 1.9.1).
16:46:40 -!- LKoen has joined.
16:48:19 -!- FreeFull has joined.
18:45:18 -!- adu has quit (Ping timeout: 256 seconds).
18:51:41 -!- adu has joined.
19:23:26 -!- sprocklem has joined.
20:44:08 -!- Sgeo_ has joined.
20:47:40 -!- Sgeo has quit (Ping timeout: 272 seconds).
20:57:17 -!- adu has quit (Quit: adu).
21:08:45 -!- spruit11 has quit (Ping timeout: 240 seconds).
21:09:45 -!- spruit11 has joined.
21:40:17 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
22:10:43 -!- aaaaaa has quit (Quit: leaving).
22:57:02 -!- Arcorann has joined.
23:00:08 -!- FreeFull has quit.
23:01:39 -!- dcristofani has joined.
23:16:24 <esowiki> [[A.R.T.I.C.L.E. Lang]] https://esolangs.org/w/index.php?diff=77987&oldid=77844 * SoicBR * (+399)
23:26:19 -!- t20kdc has quit (Remote host closed the connection).
23:34:06 -!- arseniiv has quit (Quit: gone too far).
23:34:24 <esowiki> [[Muddle]] M https://esolangs.org/w/index.php?diff=77988&oldid=62048 * PythonshellDebugwindow * (+2) Fix wikilink ([Text] -> [[Text]])
00:29:34 -!- dcristofani has quit (Remote host closed the connection).
01:29:10 -!- sprocklem has quit (Ping timeout: 258 seconds).
02:51:47 -!- adu has joined.
03:55:30 -!- sprocklem has joined.
04:15:49 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
04:31:31 -!- adu has quit (Quit: adu).
04:32:42 -!- dcristofani has joined.
04:43:28 <int-e> fungot: Which one do you prefer, the Battle of Donkey Island, or the Secret of Monkey Island?
04:43:28 <fungot> int-e: mr president, like others, expect to ensure that the quantity of employment.
04:43:39 <int-e> ^style irc
04:43:39 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
04:43:56 <int-e> fungot: say anything
04:43:56 <fungot> int-e: pikhq, go! go! gone! waah! my head is that logical?
04:44:06 <pikhq> lol
04:48:40 <int-e> Oh, also, https://www.squakenet.com/game/donkey-island/
04:49:15 <int-e> "The game pretty much takes everything that made the Monkey Island games great, such as clever and inventive puzzles and a delightfully bonkers, but equally clever, sense of humour, and removes it so that what you're left with is an incomprehensible mess."
04:49:46 <int-e> What a wholesome endorsement :)
04:50:31 <int-e> Anyway, so much for that pun.
04:51:18 <int-e> (The aforementioned battle is real; it happened in 2007 as part of one of the Iraq wars.)
05:01:02 <shachaf> Wow, that's quite a rip-off.
05:03:01 <shachaf> So I think my idea for CDCL-as-a-theory nearly works but maybe not entirely.
05:03:17 <shachaf> For example, when you learn a clause, you just need a notion of adding it to the clause database, I think?
05:07:10 -!- sprocklem has quit (Ping timeout: 246 seconds).
05:17:27 -!- sprocklem has joined.
07:04:35 -!- dcristofani has quit (Ping timeout: 258 seconds).
07:09:37 -!- dcristofani has joined.
07:12:30 -!- cpressey has joined.
07:13:16 -!- Sgeo_ has quit (Read error: Connection reset by peer).
07:48:03 -!- cpressey has quit (Quit: WeeChat 1.9.1).
08:08:34 -!- hendursa1 has joined.
08:09:43 -!- cpressey has joined.
08:10:43 -!- hendursaga has quit (Ping timeout: 240 seconds).
08:35:41 -!- deltaepsilon23 has joined.
08:46:26 <cpressey> Hi
08:47:43 <cpressey> As I was trying to say a few days ago, Laczkovich's version of https://en.wikipedia.org/wiki/Richardson%27s_theorem (see "Extensions") looks pretty cute.
08:57:29 -!- deltaepsilon23 has quit (Quit: Leaving).
09:23:01 -!- imode has quit (Ping timeout: 264 seconds).
09:29:12 <shachaf> I still need to understand the whole "first-order theory of the real field is decidable" deal.
09:29:32 <Taneb> Any field whose first order theory isn't decidable must therefore be fake
09:31:22 <shachaf> hi Taneb
09:31:28 <Taneb> Hi shachaf
09:31:37 <shachaf> how's everything in Tanebland
09:31:45 <Taneb> Not so good
09:31:47 <shachaf> see any good cats lately?
09:31:48 <shachaf> oh no
09:31:53 <Taneb> I have not seen any cats lately
09:32:38 <Taneb> And furthermore it looks like I'm going to be unemployed starting mid-next month
09:32:51 <shachaf> oh no
09:33:41 <shachaf> are you in italy?
09:33:50 <Taneb> No :(
09:33:56 <shachaf> triple oh no
09:37:32 -!- sprocklem has quit (Ping timeout: 258 seconds).
09:51:14 -!- spruit11 has quit (Ping timeout: 256 seconds).
09:51:29 -!- spruit11 has joined.
10:12:49 -!- dcristofani has quit (Ping timeout: 260 seconds).
10:16:56 <esowiki> [[A.R.T.I.C.L.E. Lang]] M https://esolangs.org/w/index.php?diff=77989&oldid=77987 * SoicBR * (+5)
10:19:23 -!- aaaaaa has joined.
10:22:45 -!- dcristofani has joined.
10:26:28 <esowiki> [[A.R.T.I.C.L.E. Lang]] https://esolangs.org/w/index.php?diff=77990&oldid=77989 * SoicBR * (+64)
10:29:11 <esowiki> [[A.R.T.I.C.L.E. Lang]] M https://esolangs.org/w/index.php?diff=77991&oldid=77990 * SoicBR * (+22)
10:30:03 <esowiki> [[A.R.T.I.C.L.E. Lang]] M https://esolangs.org/w/index.php?diff=77992&oldid=77991 * SoicBR * (-37)
10:34:25 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=77993&oldid=77935 * SoicBR * (+26) /* A */
11:09:28 -!- t20kdc has joined.
11:10:16 <dcristofani> So I finally ended up writing the tic-tac-toe player in brainfuck that's been on my to-do list forever. http://www.hevanet.com/cristofd/brainfuck/tictactoe.b
11:10:44 <dcristofani> Currently 963 commands long.
11:11:48 <shachaf> Does it play optimally?
11:12:36 <dcristofani> Yeah.
11:13:05 <dcristofani> I mean. in terms of winning. It doesn't care about winning in the shortest number of moves.
11:16:39 <dcristofani> I saved processing time by having it prune branches once it's evaluated a position as a win, rather than looking farther for a shorter win.
11:20:52 <dcristofani> Also, after some feedback from the esolangs Discord, I've made it handle invalid input gracefully.
11:25:25 <shachaf> Oh, sure, I don't think shortest number of moves matters.
11:25:38 <shachaf> Especially since every game of tic-tac-toe is a draw so they all take 9 moves.
11:29:02 <dcristofani> Well, I made this one so it'll grab a win if its opponent slips up.
11:30:10 <shachaf> That reminds me that I should internalize negascot/principal variation search.
11:30:55 -!- cpressey has quit (Quit: Lunch).
11:39:04 <rain1> dcristofani, good
11:39:13 <rain1> Did you know about misere knots and crosses?
11:39:16 <rain1> actuall
11:39:21 <rain1> misere knots?
11:39:24 -!- arseniiv has joined.
11:39:26 <rain1> both players do knots
11:39:30 <rain1> the aim is to lose
11:39:48 <rain1> it can be played on larger boards than 3x3
11:41:00 <arseniiv> btw did you try anticheckers when you can and must eat your own checkers too? In a variety where you may and must eat whole chains of checkers in one move if you’re able
11:41:09 <arseniiv> s/when/where also
11:41:33 <arseniiv> I mean where additionally
11:44:57 <arseniiv> <rain1> the aim is to lose => now upon reading that knots and crosses is a game I actually well know, that seems baffling. Is it to make a draw, or how is it possible to lose then?
11:45:28 <arseniiv> wait or not
11:46:18 -!- wib_jonas has joined.
11:48:21 <wib_jonas> dcristofani: "the tic-tac-toe player in brainfuck that's been on my to-do list forever" => are you kspalaiologos under a different nickname?
11:48:44 <dcristofani> No. Daniel Cristofani.
11:49:07 <wib_jonas> rain1: is that noughts and crosses?
11:50:31 <arseniiv> are you kspalaiologos under a different nickname? => lool
11:51:35 <wib_jonas> arseniiv: I guess I can't accept how popular brainfuck is, and keep thinking only a few people write actual non-helloworld programs in it
11:51:58 <arseniiv> at first I imagined a game when one places some -|- intersecting paths and maybe curvy things like )( rotated 45°, and the aim is to make knot [diagram]s and something
11:52:39 <wib_jonas> dcristofani: does it use the 3x3 magic square encoding of tic-tac-toe at least internally for computations (not necessarily on the interface)?
11:53:43 <arseniiv> wib_jonas: yeah, that was funny is a truthy way, that’s why it was in need to appreciate explicitly :)
11:53:49 <wib_jonas> arseniiv: hmm. I bet searching for "Conway knot game" would find something relevant for that
11:54:11 <dcristofani> You weren't wrong about few people writing in brainfuck. And no, it doesn't. Not that that's a bad idea.
11:56:59 <arseniiv> btw a couple of days ago I realised I can do a Feynmann mug trick almost well enough (I keep checking if the mug is upright enough, and without practice, movements aren’t smooth enough)
11:57:40 <wib_jonas> it seems like there are more brainfuck variants than brainfuck programmers. see https://web.archive.org/web/20190814011410/http://www.bbspot.com/news/2000/4/linux_distros.html
11:57:44 <arseniiv> also I ended up scaring my relatives with it
12:05:27 <arseniiv> if someone uses Jupyter with VS Code, do know it doesn’t support audio playback. I was forced to use the ordinary browser version to hear what I was constructing
12:11:24 <rain1> hi
12:11:31 -!- cpressey has joined.
12:12:08 <rain1> I wrote a brainfuck to C translator in brainfuck
12:12:37 <dcristofani> Me too!
12:13:27 <dcristofani> (A long time ago. http://www.hevanet.com/cristofd/brainfuck/dbf2c.b)
12:14:29 <rain1> nice one!
12:14:42 <rain1> i feel like we did it the same way kinda
12:17:16 <wib_jonas> rain1, dcristofani: link them from https://esolangs.org/wiki/Brainfuck_implementations if appropriate
12:18:37 <wib_jonas> https://esolangs.org/wiki/Brainfuck#Notable_implementations claims that https://esolangs.org/wiki/Brainfuck_implementations is the complete list of brainfuck implementations, so these should be there
12:20:24 <myname> so if i make an implementation and don't publish it, i make the page lie?
12:21:30 <dcristofani> It'd be better to change it so it doesn't make that claim. I don't think any of my seven are on there.
12:21:50 <wib_jonas> myname: no, it's already a lie
12:22:05 <dcristofani> And at least some of them predate the esolangs wiki.
12:22:16 <wib_jonas> seven... yeah, at this point I shouldn't even be surprirsed
12:25:39 <esowiki> [[Brainfuck]] https://esolangs.org/w/index.php?diff=77994&oldid=77929 * DanielCristofani * (-2) /* Notable implementations */
12:53:09 -!- hendursa1 has quit (Remote host closed the connection).
12:53:58 -!- hendursa1 has joined.
13:21:33 -!- Arcorann has quit (Read error: Connection reset by peer).
13:24:19 -!- hendursa1 has quit (Quit: hendursa1).
13:24:57 -!- hendursaga has joined.
13:35:32 -!- dcristofani_ has joined.
13:35:33 -!- dcristofani has quit (Read error: Connection reset by peer).
13:35:42 -!- dcristofani_ has changed nick to dcristofani.
13:47:12 <wib_jonas> I hate these fucking agressive settings. enter the wrong password twice, bang, remote service locks you and your whole country out for a day. great for DOS to those who actually need to access the service.
13:49:27 <arseniiv> agree
13:51:22 <wib_jonas> at least it's symmetric, we have some in our company's mail server, but also at our clients where I have to log in to fix stuff remotely.
13:56:38 <myname> we have the problem that one of our customers seems to be responsible for putting our public ip address on a mailer blacklist. horrible problem to deal with
13:57:03 <esowiki> [[User:SunnyMoon/Expirements/Output in esolangs]] https://esolangs.org/w/index.php?diff=77995&oldid=77986 * SunnyMoon * (+2164) Added all languages I know (now)
13:57:26 <wib_jonas> the office network only has ipv4 and it's an 8 byte wide address range, and most of the workstation computers are turned off on the weekend. I wonder if anyone ever tries to lock out all ip addresses that aren't currently in use, scheduled for sunday night.
13:59:55 <wib_jonas> but it's possible that that lockout rule only triggers for accesses from external internet.
14:06:17 -!- Sgeo has joined.
14:38:55 -!- FreeFull has joined.
14:40:37 -!- MDude has joined.
15:14:54 -!- cpressey has quit (Quit: WeeChat 1.9.1).
15:40:33 -!- cpressey has joined.
15:41:44 <cpressey> Projects tho, amirite
15:41:50 <cpressey> u no i am
16:00:13 -!- wib_jonas has quit (Quit: Connection closed).
16:07:56 -!- dcristofani has quit (Ping timeout: 272 seconds).
16:13:00 -!- LKoen has joined.
16:42:48 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
16:46:32 -!- arseniiv has quit (Ping timeout: 256 seconds).
16:47:22 -!- dingwat has joined.
16:53:20 -!- arseniiv has joined.
16:54:01 <cpressey> projects and learnings
16:59:29 -!- cpressey has quit (Quit: WeeChat 1.9.1).
17:31:51 -!- t20kdc has quit (Read error: Connection reset by peer).
17:33:00 -!- t20kdc has joined.
18:14:27 -!- imode has joined.
18:46:09 -!- imode has quit (Ping timeout: 260 seconds).
20:24:03 -!- sprocklem has joined.
20:52:37 -!- adu has joined.
21:28:36 <esowiki> [[PixelCode]] M https://esolangs.org/w/index.php?diff=77996&oldid=71554 * Voltage2007 * (+251)
21:44:04 -!- t20kdc has quit (Remote host closed the connection).
21:52:16 -!- imode has joined.
22:03:59 -!- aaaaaa has quit (Quit: leaving).
22:15:45 -!- adu has quit (Quit: adu).
23:16:01 -!- arseniiv has quit (Ping timeout: 246 seconds).
23:36:59 -!- dingwat has quit (Quit: Connection closed for inactivity).
00:02:46 -!- dingwat has joined.
00:03:50 -!- Arcorann has joined.
00:15:38 -!- spruit11 has quit (Ping timeout: 260 seconds).
00:17:24 -!- b_jonas has quit (Remote host closed the connection).
00:27:05 -!- FreeFull has quit.
00:31:34 -!- spruit11 has joined.
00:54:52 -!- spruit11 has quit (Ping timeout: 272 seconds).
01:27:31 -!- dcristofani has joined.
01:50:25 -!- dcristofani has quit (Ping timeout: 240 seconds).
01:55:00 -!- dcristofani has joined.
01:56:28 -!- ais523 has joined.
02:05:30 -!- spruit11 has joined.
03:03:50 -!- ais523|telnet has joined.
03:03:57 <ais523> OK, this is ridiculous
03:04:04 <ais523> I can't connect inbound to my server at all
03:04:24 <ais523> so I opened up a serial console (remotely) and telnetted /out/ of it
03:04:29 <ais523> in order to see if the networking worked
03:05:08 <ais523> I'm not sure what sort of issue would cause only outbound connections to work
03:09:52 -!- ais523|telnet has quit (Remote host closed the connection).
03:10:00 <ais523> ooh, that's a good sign
03:10:04 <ais523> was expecting a pingout
03:10:10 <ais523> but the connection did close when I forcibly rebooted it
03:10:15 <ais523> (I lost the connection to the serial console, too)
03:15:09 <ais523> OK, and back up
03:15:22 <ais523> I just needed to find a rebootier sort of reboot :-D
03:34:45 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
04:12:28 -!- dcristofani has quit (Ping timeout: 272 seconds).
04:34:33 -!- dcristofani has joined.
05:01:28 -!- Sgeo has quit (Read error: Connection reset by peer).
05:03:19 -!- Sgeo has joined.
06:21:26 -!- deltaepsilon23 has joined.
06:21:52 -!- deltaepsilon23 has changed nick to delta23.
07:01:00 -!- ais523|telnet has joined.
07:01:19 <ais523> ugh, it happened again, and now even properly rebooting isn't helping
07:01:32 <ais523> this connection to freenode is over IPv6
07:01:42 <ais523> maybe it's just IPv4 that's broken?
07:01:51 -!- ais523|telnet has quit (Client Quit).
07:02:29 <ais523> yep, just IPv4 it seems
07:12:55 <ais523> so the connection to Freenode worked because it used IPv6, when I forced an IPv4 connection it wouldn't
07:15:56 <shachaf> Well, I hear IPv6 is the future. Maybe you're in the future?
07:18:21 <Taneb> Nah, IPv6 is last-century technology
07:28:47 -!- LKoen has joined.
07:45:28 -!- delta23 has quit (Disconnected by services).
07:51:35 -!- dcristofani has quit (Ping timeout: 260 seconds).
08:06:25 -!- imode has quit (Ping timeout: 240 seconds).
08:11:03 -!- hendursaga has quit (Ping timeout: 240 seconds).
08:16:03 -!- dcristofani has joined.
08:22:26 -!- ais523|telnet has joined.
08:22:36 <ais523> IPv4 connection, I think
08:25:24 <ais523|telnet> I'm not sure there's any easy way to tell
08:25:27 -!- ais523|telnet has quit (Client Quit).
08:33:05 -!- dcristofani has quit (Ping timeout: 240 seconds).
08:39:57 -!- dcristofani has joined.
08:47:55 -!- dcristofani has quit (Ping timeout: 246 seconds).
09:13:44 -!- sprocklem has quit (Ping timeout: 256 seconds).
10:06:47 -!- Sgeo has quit (Read error: Connection reset by peer).
10:21:31 -!- aaaaaa has joined.
10:27:20 -!- dcristofani has joined.
10:36:18 -!- b_jonas has joined.
11:06:39 -!- dcristofani has quit (Ping timeout: 260 seconds).
11:08:25 -!- t20kdc has joined.
11:33:06 -!- arseniiv has joined.
11:39:40 -!- dcristofani has joined.
11:56:24 <esowiki> [[3var]] https://esolangs.org/w/index.php?diff=77997&oldid=44843 * SunnyMoon * (+48) What are var
12:03:40 <esowiki> [[3var]] https://esolangs.org/w/index.php?diff=77998&oldid=77997 * SunnyMoon * (+23) How? (Also I accidentally saved in the prev edit)
12:08:18 <esowiki> [[3var]] https://esolangs.org/w/index.php?diff=77999&oldid=77998 * SunnyMoon * (+17) Linkify
12:43:45 <esowiki> [[3var]] M https://esolangs.org/w/index.php?diff=78000&oldid=77999 * PythonshellDebugwindow * (+2) /* Hello, World! */ Make link point to non-redirect
13:03:11 -!- hendursaga has joined.
13:33:39 -!- callforjudgement has joined.
13:33:56 -!- callforjudgement has quit (Client Quit).
13:36:44 -!- ais523 has quit (Ping timeout: 265 seconds).
14:26:34 -!- Arcorann has quit (Read error: Connection reset by peer).
15:00:05 -!- dcristofani has quit (Ping timeout: 240 seconds).
15:34:44 <esowiki> [[4]] M https://esolangs.org/w/index.php?diff=78001&oldid=70930 * SunnyMoon * (-10) They say the "User:" prefix is mandatory...
15:55:22 -!- MDude has joined.
16:28:17 -!- adu has joined.
16:35:57 -!- hendursaga has quit (Remote host closed the connection).
16:37:01 -!- hendursaga has joined.
17:04:12 <esowiki> [[4]] M https://esolangs.org/w/index.php?diff=78002&oldid=78001 * SunnyMoon * (+39) It does not have to necessarily a 10 by 10 grid.
17:13:52 -!- adu has quit (Quit: adu).
17:14:42 <esowiki> [[4]] M https://esolangs.org/w/index.php?diff=78003&oldid=78002 * SunnyMoon * (+1) I like the taste of commas
17:18:49 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
17:20:21 -!- imode has joined.
17:25:36 <esowiki> [[3var]] M https://esolangs.org/w/index.php?diff=78004&oldid=78000 * SunnyMoon * (+34) Esotericness
17:27:30 <esowiki> [[4]] https://esolangs.org/w/index.php?diff=78005&oldid=78003 * SunnyMoon * (-10) Userify
17:33:42 <esowiki> [[4]] https://esolangs.org/w/index.php?diff=78006&oldid=78005 * SunnyMoon * (+0) Heading + Golfed cat program
17:34:02 <esowiki> [[4]] M https://esolangs.org/w/index.php?diff=78007&oldid=78006 * SunnyMoon * (+2) Oop
17:34:52 <esowiki> [[4]] https://esolangs.org/w/index.php?diff=78008&oldid=78007 * SunnyMoon * (-4) Brackets are not needed
17:39:11 <int-e> hmm, fun with socat: socat TCP-LISTEN:4242,reuseaddr EXEC:'"socat TCP:localhost:4243 EXEC:\"\\\"sh -c \\\\\\\"echo from $SOCAT_PEERADDR; exec socat FD:0 FD:1\\\\\\\"\\\"\",fdin=1,nofork",fdout=0,nofork'
17:49:48 <aaaaaa> int-e: what it does?
17:51:13 -!- arseniiv has quit (Ping timeout: 264 seconds).
17:57:58 -!- arseniiv has joined.
17:58:54 <int-e> It forwards a TCP connection with a twist.
18:01:15 <myname> that twist being?
18:12:46 <esowiki> [[4]] https://esolangs.org/w/index.php?diff=78009&oldid=78008 * SunnyMoon * (+147) Truth-machine
18:41:12 -!- Sgeo has joined.
19:08:48 <imode> wondering what the minimal combinator set is for a flat concatenative language, as in you can't form nested quotations of depth > 1.
19:09:05 <imode> you need compose. you'd need apply.
19:10:22 <imode> without a way to simulate a "second stack" by repeatedly quoting everything at the top of it (because you can't form a quotation that pushes quotations without a shim), you need something like `pick` or a whole-stack `rot` in order to be TC.
19:47:22 -!- sprocklem has joined.
19:57:02 -!- FreeFull has joined.
20:07:08 <b_jonas> zzo38: in M:tG, I'm trying to understand the new rules for modal double-faced cards. which rule allows playing a modal double-faced card as a land with its back side up in first place? I don't see it in 711 or 116.2a, and 711.4a plus 711.9 seems to prohibit it.
20:10:35 <zzo38> b_jonas: Yes, that does seem to be the case; maybe the rule writers made a mistake.
20:11:35 <b_jonas> zzo38: nah, there's probably some tricky rule combination hidden in there
20:11:40 <b_jonas> I just can't see it yet
20:12:24 <zzo38> Maybe; I don't see it either
20:12:58 <b_jonas> zzo38: and the release notes does seem to say that you can play as a land
20:14:11 <zzo38> Yes, clearly it is supposed to be allowed, although I don't know what rule allows it.
20:17:03 <b_jonas> I'm trying to figure out how it interacts with effects like that of Shelldock Isle
20:17:09 <esowiki> [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=78010&oldid=77530 * OsmineYT * (+82)
20:17:12 -!- FAKTOR7 has joined.
20:25:51 <esowiki> [[User talk:Orby]] https://esolangs.org/w/index.php?diff=78011&oldid=51611 * OsmineYT * (+171)
20:30:34 <esowiki> [[User talk:PythonshellDebugwindow]] https://esolangs.org/w/index.php?diff=78012&oldid=77860 * OsmineYT * (+121)
20:56:51 <b_jonas> well I asked the MTG Salvation forum. the Wizards forum had a nice place to ask these kinds of rules theory questions, one that even Wizards employees frequented, but they shut that forum down.
21:05:51 <b_jonas> they point me to https://www.mtgsalvation.com/forums/magic-fundamentals/magic-rulings/819228-radha-mdfc which says that the Comprehensive Rules are indeed very buggy
21:06:52 <esowiki> [[User talk:PythonshellDebugwindow]] https://esolangs.org/w/index.php?diff=78013&oldid=78012 * SunnyMoon * (+199) By the way, I do not have discord either if you REALLY want to know...
21:10:44 -!- ais523 has joined.
21:11:32 <ais523> <imode> wondering what the minimal combinator set is for a flat concatenative language, as in you can't form nested quotations of depth > 1 ← you mean, they can't be created even at runtime, rather than simply being inexpressible in the source file?
21:12:16 <ais523> if you can create them at runtime, then you don't need many (I think 2 are enough if one of them is very complex)
21:12:28 <ais523> if you can't, then I think you might run into definitional problems
21:13:13 <ais523> for example, https://esolangs.org/wiki/7 doesn't really have a concept of nested quotations, and is entirely flat in terms of its internal storage
21:13:27 <ais523> but the definition of the 6 command is very complex and basically introduces nested quotations by "cheating"
21:13:57 <ais523> given that it scans a string for substrings with correctly matched "parentheses"
21:14:43 <b_jonas> right, there are many ways to cheat if you don't insist on combinators from ordinary combinator calculus
21:14:55 <imode> yeah, nested quotations aren't allowed at runtime or in the source file.
21:16:05 <b_jonas> like if you have one quotation and a function that compiles and evaluates the quoted program in fortran or basic, perhaps you can get away with it without having quotations inside the fortran or basic program.
21:16:10 <imode> the basis I have now is dup, drop, swap, left, right, compose, apply, and pre-quoted versions of all of those.
21:16:36 <ais523> how do left/right/compose work?
21:16:40 <imode> left and right take the bottom of the stack and put it on top, and take the top of the stack and put it on the bottom.
21:16:49 <ais523> ah, I see
21:16:59 <imode> so x y z ... n left -> n x y z ...
21:17:04 <ais523> I'm not convinced that's a combinator operation (although of course concatenative languages don't need to be based on combinators)
21:17:23 <imode> and x y z ... n right -> y z ... n x
21:17:37 <ais523> and compose is just Underload *, I take it
21:17:51 <imode> compose behaves more like list concatenation if anything.
21:18:04 <ais523> well so does Underload *
21:18:15 <ais523> although, hmm
21:19:21 <imode> you can think of compose as "take two commands, "unquote them", and enquote their concatenation, and push that concatenation."
21:19:40 <imode> so in quotation-speak, it's... [a] [b] compose -> [a b]
21:20:04 <imode> I'm borrowing semantics from equipage.
21:20:56 <imode> and as for the combinatory stuff, yeah, the problem is I think you need _some way_ to access deeper levels within the stack.
21:21:17 <ais523> I assume there's no way for anything that isn't enclosed in exactly one pair of square brackets to get onto the stack
21:21:19 <imode> so you need something that reorders the _whole stack_ to get to any arbitrary element.
21:21:21 <b_jonas> perhaps one of those small one-tape turing machines help
21:21:53 <imode> ais523: if I understand you correctly, yeah. you can't make a quotation that makes quotations, because anything in a quotation gets interpreted directly.
21:22:08 <imode> you can't form [[dup]] for example.
21:22:13 <imode> but you can form [dup].
21:22:23 <ais523> but you can't form dup either, at least not on the stack
21:22:36 <ais523> just [dup] or [dup dup] or whatever
21:22:39 <imode> correct. all things are quoted, then apply unquotes them and adds them to the program.
21:22:53 <imode> I have an interpreter if you wanna play around.
21:24:15 <imode> https://repl.it/repls/UpbeatScalyRoutes#main.py
21:24:45 <imode> the thing is, if you have a "palette" of quoted commands, you can write a quotation that _makes_ another quotation just by virtue of duplicating it, swapping it, etc.
21:25:32 <imode> i.e if you have a stack of [dup], [drop], [swap], [left], [right], [compose], [apply] and a quotation that selectively picked and grabbed these commands, you could form another quotation out of it.
21:25:40 <ais523> slightly offtopic, but "routes" is a terribly choice of word for a word-based URL, no matter how you pronounce it it's confusable with either "routs" or "roots" which are both real words
21:26:04 <imode> it couldn't be nested, but you could form sequences of quotations that "point" to eachother ala left and right.
21:26:54 <imode> the question is can you do something similar without having commands that affect the entire stack.
21:27:10 <ais523> imode: well, the hard part is just to avoid the PDAness of a single stack
21:27:18 <imode> yeah..
21:27:32 <imode> equipage gets around this via having `pick`.
21:28:00 <b_jonas> .oO(and "router" is pronounced differently if it's for woodworking than if it's for computer networks)
21:28:21 <imode> oxcart gets around this by having a tape of stacks. wagon gets around it by having whole-stack effects.
21:28:42 <imode> and languages that allow runtime nesting of quotations can use this to simulate a secondary stack at-will.
21:28:44 <ais523> the thing is, because you can build arbitrary long quotations, the model we're working in is not actually a PDA
21:29:01 <imode> yeah, I don't know _what_ class it is..
21:29:40 -!- t20kdc has quit (Remote host closed the connection).
21:29:44 <ais523> actually… Underload is TC with just ():^! (you don't need ! either but we can handle it easily without quotations)
21:29:46 <imode> you can't exactly "slurp up" portions of the stack and re-order them, because applying the quotation you used to "slurp up" that portion of the stack will be _immediately applied_.
21:29:47 <ais523> that doesn't contain a
21:30:04 <ais523> this means that there must be a finite number of combinators that works, with no full-stack effects
21:30:18 <b_jonas> ais523: yes, but it needs at least two levels of quotations, probably more
21:30:19 <ais523> because a ():^! program can only form a finite number of different stack elements during its lifetime, so you could just make them all combinators
21:30:22 <ais523> individually
21:30:37 <imode> what b_jonas said. you need the ability to double-nest quotations.
21:30:59 <b_jonas> if you allow more complicated combinators as built-ins, then you could encode a small turing-machine with exactly two levels
21:31:00 <ais523> yes, but I mean, say your program contains ((:^):), you just add ((:^):) and (:^) as combinators
21:31:06 <b_jonas> but one level is just terrible
21:31:15 <b_jonas> ais523: wait, is one level enough really? hmm
21:31:28 <b_jonas> oh yeah
21:31:31 <ais523> now there is no nesting, because your combinators are [pushdupapplytwice] and [dupapply]
21:31:57 <b_jonas> ais523 is right, a single level of nesting is enough
21:32:28 <ais523> wait, how is this not just a PDA though? it doesn't have *
21:32:53 <imode> so your combinators are [[dup apply] dup] and [dup apply]?
21:32:58 <ais523> oh, two stacks, one is program, one is stack
21:33:03 <ais523> imode: right
21:33:08 <ais523> in that example
21:33:33 <imode> hm.
21:33:47 <ais523> what I mean is, we can get a universal turing machine, translate it to the ~:!()^ subset of Underload
21:33:59 <ais523> then take every single quotation inside the program, at any nesting level, and make it a combinator of its own
21:34:30 <ais523> then we have a (very complex) combinator set that implements a TC concatenative language without quoting, full-tape effects, or cheating
21:35:07 <imode> how isn't that cheating, though? you still have two layers of nesting, you just represent them as a single command.
21:35:35 <imode> moreover how are you getting rid of garbage?
21:35:46 <ais523> actually this is basically just https://esolangs.org/wiki/The_Subtyping_Machine
21:35:50 <b_jonas> imode: you use the ! combinator to get rid of garbage
21:36:02 <ais523> in the subset without !, garbage is removed by executing it in a context where all the commands end up cancelling each other out
21:36:29 <imode> so your combinator set is apply, dup, [dup apply], [[dup apply] dup]?
21:36:42 <imode> or is it just those three.
21:37:05 <ais523> imode: well, that was just a random example
21:37:17 <b_jonas> ais523: actually if you allow any built-in combinators, then it's even simpler than the Underload construction, because you don't need to use : at all, instead just have combinators that push parenthesized list of combinators such that if you tried to expand them to underload you'd get cyclically listed and so infinite source code
21:37:46 <imode> I still consider this cheating because you're able to build larger nested structures, only they're in the form of a single command.
21:37:58 <b_jonas> you only need ~! to pick an element from a parenthisized list of combinators,
21:38:43 <b_jonas> either pick the element from a list indexed by states when the head is moving to the left, or from a list indenex by symbols when the head is moving to the right
21:39:08 <b_jonas> using ^ !!...! ~!~!...~! to keep just one element from a list
21:39:18 <ais523> I guess there are degenerate cases that work, e.g. you have an imperative stack based language that isn't concatenative, and make it concatenative by having a command that looks at the top stack element as a program and lower stack elements as the stack it operates on, then pushes itself back onto the program
21:39:21 <b_jonas> and then do nothing to execute that one combinator
21:39:59 <ais523> b_jonas: this is basically just the universal construction for minimalizing any number of combinators down to two
21:40:13 <ais523> if your combinators are 1, 2, 3, 4, 5, etc.
21:40:30 <ais523> then you minimalize them to (~)(1)(2)(3)(4)(5)(!!!!!!!) and ^
21:40:49 <imode> yeah, "select any set of combinators, re-order them, compose, done"
21:41:59 <ais523> (the number of ! is one more than the the number of preceding quotations, so if you do the monster combinator followed by ^ twice, you get a ! effect; the monster combinator + ! obviously gives you (~) and thus ~, and with the monster combinator, ~ and !, you can get any of 1, 2, 3, 4, 5)
21:42:22 <b_jonas> ais523: hmm. that's not how I was thinking of it, but maybe
21:42:42 <ais523> of course, this has a lot of intermediate combinators
21:42:57 <imode> quite a few. I think the point is simplifying from the data side, not the program side.
21:43:12 <imode> like, I can form all lists with the `quote` and `compose` operator.
21:43:16 <ais523> if you think about SK combinator calculus, there are basically five combinator families involved: K, K1, S, S1, S2 (K1, S1, S2 are parameterized by the argument that was curried into them)
21:43:39 <ais523> but you can't use `quote` in a language like this
21:43:49 <b_jonas> ais523: yeah
21:44:54 <imode> I'm back to thinking you need arbitrary stack effects.
21:45:15 <b_jonas> I should think about it this way, with a system of unparametrized stack-based combinators. That view is relevant for Consumer Society and its brother language, but I always thought of it as just the special case of implementing a turing-machine, and interfacing that with the full language on entry and exit
21:45:18 <imode> you need them unless you're willing to go with a command set that can push quotations.
21:45:33 <b_jonas> one-tape turing machine
21:46:27 <b_jonas> or really any two-stack finite control machine, it doesn't have to move symbols one to one
21:51:56 <imode> either way there needs to be some kind of nesting.
21:52:03 <imode> of levels > 1.
21:53:07 <b_jonas> imode: no, I think ais523 is right, one level of nesting, namely predetermined lists of combinators, is enough to implement a two-stack machine
21:53:42 <imode> right, but those lists of combinators need to include arbitrary stack effects, unless I'm missing something.
21:54:36 <imode> the underload two-command minimization, for example, can construct a concatenation of two quotations.
21:54:59 <imode> because you already have them on the stack, you just need to drop the ones you don't care about and concatenate the ones you do.
21:56:08 <imode> either there's an upper bound for the amount of nesting you do or you need arbitrary nesting. a third option is treating the stack like a tape.
21:56:19 <imode> I don't know what that upper bound is.
21:58:13 <ais523> the best way to think about it is that the stack + program basically are a tape already
21:59:24 <ais523> you can view a Turing machine like that; represent the left of the tape as the stack, the state of the Turing machine as a special element on top of the stack, and the tape head and elements to its right as commands
21:59:45 <imode> so assume that you only have dup, drop, swap, compose and apply, along with single-quoted versions of all of those. would that be enough?
22:00:24 <ais523> each command looks at the top two stack elements, modifies or pops them if necessary, then "executes" an appropriate number of commands to add elements to its right
22:00:30 <ais523> including the new tape headd
22:00:55 <ais523> I'm not sure whether it's possible to build something like this out of :!~*^
22:01:18 <ais523> and their single-quoted versions
22:01:41 <ais523> this may come down to the old issue of "where do you store the lookup table?" which is often an issue in proving simple languages TC
22:01:50 <ais523> there is nearly always a lookup table, or some sort of equivalent, somewhere
22:02:14 <imode> definitely that issue. in the TM construction in the article you need at least 3 levels of nesting, I think.
22:03:16 <ais523> I think you can probably store it in the top stack element, though, or maybe interspersed between adjacent stack elements
22:04:18 <ais523> or, ooh, I get what the problem is: the problem is that you have no way to construct the single-quoted versions at runtime
22:04:22 <ais523> so you have to copy them around
22:04:34 <imode> yup.
22:04:55 <ais523> if you have some way to construct the single-quoted versions in terms of the unquoted versions then you're good, and that is what the lookup table is needed for
22:05:31 <imode> so if you were to build a quotation that builds quotations, you'd need to select from an already given palette. then you'd build something that's just a quoted sequence of [dup drop swap left right ...] etc commands that builds another quotation, and then applies it.
22:05:33 <ais523> so the problem here is that there is more than one single-quoted combinator, but you can't store a single-quoted combinator inside a list
22:05:40 <imode> yup.
22:05:42 <ais523> and thus they need to be stored "loose" on the stack
22:05:47 <ais523> and ~ doesn't go deep enough to get past all of them
22:05:52 <imode> eeeexactly.
22:06:17 <ais523> dup, drop, compose, apply, rotate top 6 elements, and single-quoted versions of all those should be enough, I believe
22:06:29 <imode> ooh.
22:06:35 <imode> that's interesting.
22:06:35 <ais523> err, probably needs to be top 7
22:06:50 <ais523> maybe top 6 is enough
22:07:18 <ais523> because the only issue is juggling your single-quoted combinators on the stack, so you need enough juggling power to juggle past them and operate on the data underneath
22:07:20 <imode> you'd probably need top7 because you still need the currently active combinator.
22:07:24 <imode> yeah.
22:07:39 <imode> but what happens when you try to get at the data under that.
22:07:43 <imode> and the data under that.
22:07:57 <ais523> top 7 is enough to juggle 5 combinators and 2 pieces of data
22:08:13 <ais523> or 5 combinators, plus a duplicate of one of the combinators, plus 1 piece of data
22:09:15 <imode> I think there would be some cases where you some operations wouldn't be possible that'd be required. I don't know what a lookup table would look like apart from a sequence of quotations that point to eachother.
22:09:24 <ais523> this basically gives you all of {dup drop compose apply swap} because none of those take more than two arguments, and {push duplicate of single-quoted combinator} because you can just copy one of them and juggle it into place
22:09:27 <imode> relative to their position on the stack.
22:09:38 <ais523> (you can build a swap out of a rotate by dupping a bunch, rotating, and dropping the duplicates)
22:10:05 <ais523> the lookup table is literally just [dup][drop][compose][apply][rotate] on top of the stack, as 5 loose elements
22:10:14 -!- arseniiv has quit (Ping timeout: 256 seconds).
22:10:24 <imode> sorry, I misspoke: a TM's lookup table.
22:10:24 <ais523> you leave it there the entire program execution, except temporarily to operate on the elements beneath it
22:10:44 <ais523> oh, a TM's lookup table is the (color, state) → (color, state, movement) map
22:10:56 <imode> right, but forming that map.
22:11:01 <imode> within this language.
22:11:52 <ais523> you'd use enum values like !!!!!!!~!~!~!~!~!~! to store colors and states
22:12:58 <ais523> actually, even better, you use a construction where a color/state is just !!!…!!!!^ and the element that's executed contains the remanining ! to get rid of the elements that weren't popped or executed
22:13:35 <ais523> that way it composes easily, a color can be, say, ! or !! or !!!, a state can be some multiple of !!! followed by ^
22:13:48 <imode> how would you preserve the rest of the table? you need to make a state transition more than once.
22:13:50 <ais523> then, composing color with state gives you the appropriate accessor for the lookup table
22:14:01 <ais523> simulated nested quoting
22:14:10 <ais523> because you're juggling single-quoted combinators
22:14:20 <ais523> you can effectively produce a nested list by writing the appropriate list of juggling commands
22:14:39 <imode> iiiinteresting.
22:14:40 <ais523> like, you can't write [[dup swap][apply rotate]] directly, but you can create a command that produces the elements [dup swap][apply rotate] when executed
22:15:24 <ais523> beacuse you just need to write the list of commands that juggles your combinators appropriately to produce those two elements, and that list of commands is flat
22:15:25 <imode> so you apply the current color to the table to get a quotation that you can apply to do the state transition, which constructs the state table _again_.
22:15:32 <ais523> yes
22:15:36 <imode> while also performing the actions on the tape.
22:15:42 <imode> that is absolutely brilliant.
22:15:47 <ais523> at this point it's basically just standard Underload behaviour, except that there is no way to implement a
22:15:54 <ais523> but you don't need a to write a Turing machine
22:16:07 <imode> this was on the tip of my tongue for the past 5 days lmao.
22:17:13 -!- ais523 has quit (Read error: Connection reset by peer).
22:18:12 <imode> so the core command set is just {dup drop swap compose apply rot7} and quoted versions, leading to a total of 12 commands.
22:18:14 -!- ais523 has joined.
22:18:20 <imode> so the core command set is just {dup drop swap compose apply rot7} and quoted versions, leading to a total of 12 commands.
22:18:23 <imode> shoot, sorry.
22:19:21 <b_jonas> zzo38: right now I'm trying to figure out what happens if I have Vastvood Fortification exiled to Isochron Scepter, and I try to cast the back side as a spell without paying its mana cost. normally you can't cast lands because they don't have a mana cost so you can't pay the cost, Dryad Arbor has a mana cost but 305.9 specifically forbids it, and abilities that instruct to cast without mana cost are
22:19:27 <b_jonas> carefully phrased as "play" instead of "cast" when a land could be used, in which case 601.1a makes it so you'll play it.
22:19:34 <imode> thanks for the help ais523.
22:25:13 <b_jonas> 711.7 (a rule that doesn't even normally work until future sets are released because the back face never has mana cost) says I can choose the back face, nothing seem to prohibit it, and there's now rule 111.11 that says what happens when the back face up copy resolves.
22:25:19 <b_jonas> or the copy of the back face really
22:29:54 <b_jonas> ais523: do we happen to know what are the smallest two-stack finite control machines, as opposed to the smallest from the more restricted class of Turing machines?
22:30:09 <b_jonas> perhaps you looked at that for StackFlow
22:42:32 -!- asie has joined.
22:43:55 <b_jonas> "color" in a Turing machine as tape symbols? that would be weird
22:54:31 <zzo38> I think that you can't cast the back face, since it is a land, it would seem.
22:55:22 <asie> hello
22:58:53 <zzo38> Hello
23:07:02 -!- callforjudgement has joined.
23:07:31 -!- dcristofani has joined.
23:08:59 -!- ais523 has quit (Read error: Connection reset by peer).
23:18:45 -!- Arcorann has joined.
23:28:40 -!- callforjudgement has changed nick to ais523.
23:40:25 -!- dcristofani has quit (Ping timeout: 246 seconds).
23:59:16 <esowiki> [[MangularJS]] M https://esolangs.org/w/index.php?diff=78014&oldid=75209 * PythonshellDebugwindow * (+1) /* Hello, World! */ Fix example to work properly
23:59:34 -!- tromp has quit (Remote host closed the connection).
00:02:46 <b_jonas> zzo38: yes, but where's the rule that says you can't cast a land?
00:03:02 <b_jonas> it looks like there's none, though this may get fixed in the next update
00:08:53 <zzo38> Rule 305.9 says a land that is also another type can't be cast as a spell, but that doesn't say if it is only one. That seems to be a mistake, but I suppose that for now, it would seem to be allowed even if it isn't supposed to be allowed.
00:17:31 -!- ais523 has quit (Read error: Connection reset by peer).
00:18:09 -!- ais523 has joined.
00:19:18 <ais523> if you have a card with no types, can you cast it?
00:19:27 <ais523> (assuming it's in your hand and has a mana cost)
00:20:34 <ais523> bear in mind that I'm not convinced the situation can ever arise, but the situation of casting a land on the back of an MDFC seems comparable (except that it doesn't have a mana cost, so you'd need Omniscience or the like)
00:23:17 <zzo38> I don't know.
00:25:53 <b_jonas> ais523: I don't think there's a way to have a card with no types outside the battlefield
00:26:52 <b_jonas> but the rules are weird about that, if you could get to cast such a thing, it would not enter the battlefield, because it wouldn't count as a permanent spell, it would try to resolve like a sorcery but not quite count as a sorcery in all respects
00:27:45 <b_jonas> ais523: but I don't think there's anything to stop you from casting it from your hand if it has a mana cost
00:28:02 <zzo38> The rules say a object with instant or sorcery type cannot enter the battlefield, but I don't know about other ones
00:28:57 <b_jonas> hmm wait
00:29:01 <b_jonas> I don't know what would happen
00:30:09 -!- tromp has joined.
00:30:09 <b_jonas> the relevant rule is 608.3, that's what moves the spell to the battlefield, but only if it's a "permanent spell", which is defined in 110.4b, which says "an artifact, creature, enchantment, or planeswalker spell"
00:31:48 <b_jonas> 608.2k says that an instant or sorcery spell moves to the owner's graveyard when it resolves, after it has done all the other steps for resolving
00:32:04 <b_jonas> and 608.2k also talks about resolving abilities
00:32:17 <b_jonas> combat damage on stack no longer exists
00:33:01 <b_jonas> there are of course some replacement abilities that can make a spell move to exile instead of the graveyard when resolving
00:33:42 <b_jonas> I can't find what happens with a typeless spell, so if there's no specific rule, it would remain on the stack and try to resolve again after everyone passes
00:34:02 <b_jonas> but I don't think this can happen in first place
00:35:01 -!- tromp has quit (Ping timeout: 244 seconds).
00:37:22 <zzo38> Yes, that would seem to be, although it isn't very good and I thought it might make more sense to unify the rules, to change them so that, in general: An resolving object's spell abilities are done first, and then it moves to the battlefield; if it doesn't, it moves to the graveyard; if it still doesn't, it is exiled; and if even then it still doesn't, it ceases to exist.
00:37:32 <ais523> the same thing would happen with a land spell, wouldn't it?
00:37:41 <ais523> instant draw, unless someone chooses to counterspell it
00:38:31 <zzo38> ais523: Yes, I think so, unless it is a land with another type, I suppose (although lands with other types cannot be cast anyways, due to 305.9, so it would have to change while on the stack)
00:38:39 <ais523> Netrunner fixes this problem by having playing events/operations (non-permanents), and installing hardware/programs/resources/ice/assets/upgrades/agenda (permanents), being two unrelated actions
00:39:29 <ais523> so there's never any problem about how to remove them from the play area after they resolve
00:40:01 <b_jonas> there also doesn't seem to be a rule specific for what happens with a copy of a spell if it's not a permanent spell, but the same rules as for a spell that's a card applies to them: if it's an instant or sorcery it goes to the graveyard (and later gets cleaned up), otherwise ?? but that's probably not possible
00:40:18 <b_jonas> because the type gets copied from the original spell
00:40:20 <ais523> (although, Netrunner also doesn't have counterspells in the traditional sense, to counter someone's install you destroy the thing they installed after it arrives)
00:40:43 <b_jonas> ais523: hmm. you have a point about the land spell
00:41:59 <zzo38> See a puzzle I made up some time ago, for another point of view about typeless cards outside of the battlefield (although you will not generally get a chance to cast them, nor will they get a chance to resolve, in the specific situation that I did)
00:42:36 <ais523> that said, Netrunner also doesn't have a problem with just leaving things in the play area, over multiple turns if necessary
00:43:10 <ais523> you can think of events/operations as having triggered abilities that trigger on them being played, causing them to resolve and be trashed
00:43:24 <ais523> if something goes wrong with the ability, they just kind-of sit there until something happens to them
00:43:41 <ais523> this wouldn't work in Magic, because you can counter triggered abilities there
00:43:48 <ais523> but it's a clever way to avoid having both spells and abilities on the stack
00:45:01 <ais523> and it's sometimes used to make operations that take multiple turns to resolve
00:45:30 <b_jonas> zzo38: well, I personally think the rule should be that if a spell isn't a sorcery or instant or conspiracy or emblem or plane or phenomenon or scheme or vanguard or contraption then it etb as it resolves.
00:46:41 <ais523> the really controversial option would be to have a unified list of subtypes (i.e. not needing tribal), and mark artifact and enchantment into permanent subtypes
00:46:48 <zzo38> b_jonas: The rule I suggested has the same effect that you mentioned I think anyways (although emblem isn't a type at all but a kind, and Contraption is a subtype)
00:46:56 <ais523> (land is more of a keyword ability, and creatures and planeswalkers have a lot of rules of their own)
00:46:59 <b_jonas> ais523: yes, but we want to have effects printed on cards that let you cast or play sorceries and creatures uniformly
00:47:12 <b_jonas> ais523: and keywords like suspend
00:47:19 <ais523> b_jonas: Netrunner has plentry of the former, they just say "play or install"
00:48:01 <zzo38> I think that a good way to fix it is with the unified rule I mentioned, together with fixing rule 305.9 so that it says that any object with the type "land" cannot be cast, rather than only saying if it has another type as well as land.
00:49:49 <ais523> and suspend in Netrunner would be worded as "Place 3 power counters on this event rather than trashing it as it resolves. Remove 1 counter at the start of your turn. When it has no counters, trash it and do X"
00:50:10 <ais523> (I don't think it'd be modal, Netrunner doesn't do modal effects very often, so it'd just have the suspend cost")
00:50:34 <ais523> actually that wouldn't work for suspend permanents, those would be awkward
00:50:56 <ais523> but also there wouldn't be much reason to not just have them installed normally and not do anything for a few turns, other than being counted
00:53:24 -!- FreeFull has quit.
00:54:30 <b_jonas> ais523: ok, but in M:tG it's not easy to make creatures "not do anything" for a few turns, because there used to be so many costs payed by sacrificing a creature
00:54:50 <zzo38> I suppose the other place to ask is rec.games.trading-cards.magic.rules but that newsgroup doesn't seem to be much in use.
00:55:18 <b_jonas> those work even if they're Arrested and Turned to Frog
00:56:41 <ais523> yes
00:56:44 <b_jonas> also I'm pointed to https://twitter.com/WotC_Matt/status/1310740942182178817 , where re a bug about a land getting cast as a spell, Matt Tabak says "You shouldn’t be able to play a land because the instruction is to cast. The team tells me this is known and a fix is coming soon." but "fix" refers to the Arena software, not the Comp Rules
00:57:08 <ais523> it wouldn't surprise me if the Arena programmers just read the rules and implemented them as written
00:57:38 <ais523> actually I suspect the reverse has happened in some cases, with cards that don't work within the rules being errata'ed based on the implementation on jinteki.net
00:57:42 <b_jonas> that said, Matt Tabak might look at the Comp Rules anyway, plus he already knows that there are problems with the basic rules for modal double-faced cards so he'll fix them,
00:57:53 <zzo38> They should fix the Comp Rules too, I should think. I have suggested before to actually write the rules as a literate computer program (perhaps inventing a programming language for that purpose), as that would make the rules more clearly.
00:58:28 <b_jonas> plus there will probably be more modal double-faced cards in near future sets, for which he'll look at the rules too
00:58:43 <b_jonas> so I'll just have to wait for the next update and then read what the rules say again
01:04:36 <b_jonas> lol! today's SMBC is great https://www.smbc-comics.com/comic/nudge
01:05:13 <b_jonas> that's a take on Allosaurus president plus asteroid defense mission that didn't come up in Irregular
01:08:24 <b_jonas> as for the xkcd, I was thinking about why the road traffic rules mention that the middle light of car traffic lights is amber colored. everyone else except the weird formal texts either calls it yellow, or calls it yellow but notes that it looks more like orange, but the rules and teaching material says amber. but I haven't heard anything else described as being amber colored. I have no other reference
01:08:30 <b_jonas> to amber color than those lights used as signals for road traffic.
01:12:39 -!- aaaaaa has quit (Quit: leaving).
01:29:52 -!- adu has joined.
01:42:20 -!- tromp has joined.
02:02:20 -!- adu has quit (Quit: adu).
02:15:57 -!- dcristofani has joined.
02:35:58 -!- dcristofani has quit (Ping timeout: 260 seconds).
02:51:02 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
03:11:09 -!- adu has joined.
03:15:28 -!- Sgeo has quit (Read error: Connection reset by peer).
03:19:43 -!- Sgeo has joined.
03:24:15 <int-e> Oh there's a dprintf() for printing to fds, interesting.
03:26:16 <int-e> (in POSIX, since 2008)
03:31:11 -!- dcristofani has joined.
03:38:54 <shachaf> My formatting API lets you printf into a fixed-size buffer. It would be nice if sprintf did that.
03:39:18 <shachaf> As it is you can't implement fprintf in terms of sprintf or vice versa.
03:43:50 -!- deltaepsilon23 has joined.
03:48:57 <int-e> . o O ( fork off a thread and fprintf to a pipe )
03:51:08 <int-e> (But I get what you mean.)
03:52:01 -!- deltaepsilon23 has changed nick to deltadoge23.
03:59:48 <shachaf> https://shachaf.net/tmp/fmt/fmt.h
04:00:04 <shachaf> I think C varargs makes this pretty tricky for printf, though.
04:00:11 <int-e> I also still remember that you've worked on this.
04:00:25 <shachaf> Oh no, do I just post the same things in here over and over again?
04:01:16 <shachaf> Anyway, C varargs are invalidated as soon as the function returns, which makes it harder.
04:01:46 <shachaf> I guess you could scan over the format string once to copy the varargs values? But I'm not sure you'd want to.
04:03:32 <zzo38> There is fmemopen and open_memstream, and all of the printf variants return the length of the result, in case those things are needed.
04:04:22 <zzo38> Although there is that problem with varargs that you mention.
04:04:43 <shachaf> Yes, but that still needs you to have enough memory for the result at once, I suppose.
04:05:02 <int-e> shachaf: We all have our own little pet topics, I suppose.
04:05:28 <shachaf> musl libc uses a FILE * with a write callback argument for vfprintf.
04:06:21 <shachaf> Oh, maybe glibc does something similar.
04:06:32 <shachaf> int-e: I did change the API since last time I mentioned it, I think.
04:08:28 <int-e> Oh poking in FILE * interna, hmm.
04:09:02 <int-e> ah. fopencookie
04:09:18 <int-e> what a fun name...
04:09:31 <shachaf> Oh, I didn't know that.
04:09:36 <shachaf> Well, it's a GNU extension.
04:09:56 -!- ais523 has quit (Read error: Connection reset by peer).
04:10:02 -!- callforjudgement has joined.
04:10:39 <int-e> Yes, it is. And it's still a funny name.
04:12:20 <int-e> It's too bad that this isn't standardized so you get reimplementations like https://wiki.openssl.org/index.php/BIO
04:12:35 <int-e> where nothing ever fits with anything else
04:15:05 <shachaf> It's too bad libc mixes "language" convenience things (that maybe ought to just be a regular library statically linked into your program) with "OS" things.
04:28:30 -!- dcristofani has quit (Ping timeout: 272 seconds).
04:33:53 <int-e> shachaf: I guess you wouldn't really like fopencookie anyway... because it allocates from the heap.
04:34:11 <shachaf> Do I hate all heap allocations?
04:34:39 <shachaf> When you're interacting with libc things like FILE * functions it seems too far gone to worry about things like that.
04:34:44 <int-e> Not quite, just the not strictly necessary ones.
04:34:50 <shachaf> It probably calls malloc 20 times before breakfast.
04:38:39 <int-e> but it leads to things like FILE *f = fopencookie(s, "a", cb); if (!f) { errno = ENOMEM; return -1; }
04:39:01 <shachaf> Oh, sure, that seems annoying.
04:40:18 <shachaf> Certainly it seems entirely gratuitous when an API makes you do that many times for no reason, like posix_spawn.
04:42:48 <int-e> Oh well. It seems to work... https://paste.debian.net/1167655/
04:43:17 <shachaf> Good thing malloc failures never happen.
04:43:23 <shachaf> At least on Linux.
04:43:42 <int-e> that's an entirely different pet peeve :P
04:44:24 <zzo38> I often use a macro to check for memory allocation errors
04:44:37 <shachaf> Of course, if you're OK with GNU extensions + allocation, you could use asprintf.
04:44:40 <int-e> But whatever, I need some fresh air, and then I can figure out how to wrap up this toy program.
04:45:06 <int-e> shachaf: Which would be perfectly okay for my use, but less interesting :P
04:45:07 <shachaf> The allocation is theoretically variable-sized but maybe it's fine in practice for all uses of printf.
04:45:39 <int-e> (no attacker controlled format strings or format lengths or string sizes)
04:46:33 <int-e> But now that I have already written that code... what's the point in using asprintf :)
04:48:08 <zzo38> If your program uses SQLite for whatever reason, you can use the SQL printf function if you need safe dynamic printf. (If not, you can still copy the printf implementation from SQLite into your own program, and modify it to work with your program rather than SQLite.)
04:48:38 <int-e> not happening
04:50:11 <shachaf> What is this toy program?
04:51:44 <callforjudgement> <shachaf> It's too bad libc mixes "language" convenience things (that maybe ought to just be a regular library statically linked into your program) with "OS" things. ← it's unclear what should be an "OS" thing anyway, just system calls?
04:51:59 <callforjudgement> part of the reason libcs exist is that some things are system calls on some OSes but library functions on others
04:52:10 <callforjudgement> MS-DOS has malloc as a system call, for example (not sbrk)
04:52:55 <callforjudgement> also, I think you can get a lot of efficiency out of MMU abuse nowadays
04:53:12 <zzo38> Glulx has both (although you cannot use both at the same time).
04:53:44 <callforjudgement> I wonder how fast a queue implementation is that just writes through address space continuously, freeing the back of the queue when getting close to memory exhaustion
04:53:58 <shachaf> I think it's very reasonable for programs to include their own malloc implementation rather than defer to libc.
04:54:13 <callforjudgement> with a 2⁶⁴ address space you never run out
04:54:38 <shachaf> I saw this post about that mentioned it (among other things) the other day: https://tratt.net/laurie/blog/entries/why_arent_more_users_more_happy_with_our_vms_part_1.html
04:54:42 <callforjudgement> I wrote a malloc of my own for fun a while back, it seemed to have decent performance in benchmarks (although I could only find one malloc benchmarker)
04:54:44 <shachaf> (Search for "binary trees", I think.)
04:54:54 <callforjudgement> also was async-signal-safe, which is useful for some purposes
04:55:21 <callforjudgement> (i.e. you could malloc or free from a signal handler, without causing issues as long as you don't free something that's currently in use)
04:57:46 <shachaf> Hmm, this might be a silly question, but if I have an array [..., a0, a1, a2, b0, b1, ...] and I want to swap the as and bs in-place, is there a good thing to do?
04:58:11 <callforjudgement> swap a0 and b0, then a1 and b1, etc.
04:58:19 <shachaf> I mean, two contiguous subarrays.
04:58:24 <callforjudgement> the most efficient swap algorithm on x86 is probably read, read, write, write
04:58:24 <shachaf> as and bs aren't the same length.
04:58:41 <shachaf> I guess the fact that they're subarrays of a bigger array is irrelevant here.
04:58:42 <callforjudgement> oh, you mean move the bs to before the as
04:58:50 <callforjudgement> so abcdAB becomes ABabcd
04:58:54 <shachaf> Yes, that's right.
04:59:40 <callforjudgement> the hardest case mathematically appears to be the case where one of the arrays is only one element long
04:59:58 <shachaf> I think in my actual case the second array is always either one or two elements long.
04:59:59 <callforjudgement> then you clearly have to store it in temporary storage, move all the elements of the other array one element along, and put that one element back
05:00:11 <zzo38> Glulx has both malloc and sbrk as instructions (not system calls).
05:00:19 <callforjudgement> the other cases all reduce to this one after some silly modular arithmetic
05:00:22 <shachaf> That's a constant amount of temporary storage, though, that's fine.
05:00:34 <callforjudgement> like, you take the gcd of the lengths of the two arrays
05:00:48 <callforjudgement> if it's greater than 1 you operate on every gcdth element independently
05:01:01 <shachaf> You can do everything in-place by moving one element at a time, but I'm hoping there's something better.
05:01:34 <callforjudgement> if the lengths of the two arrays are coprime, then you can move one element at a time, yes
05:01:42 <callforjudgement> but the cache locality of that has to be horrible
05:02:14 <callforjudgement> to be fair, probably the fastest algorithm is just three memcpys
05:02:28 <callforjudgement> (with appropriate caching hints set)
05:02:42 <shachaf> These are arrays of pointers in this case.
05:03:10 <callforjudgement> although caching hints on modern x86_64 aren't very good, you basically have a choice of "I will use the data again soon" and "I will not use this data again soon"
05:03:26 <shachaf> Or what do you mean by three memcpys?
05:04:15 <callforjudgement> memcpy the shorter array to temporary storage, memmove (not memcpy, sorry) the longer array into position, memcpy the shorter array back
05:04:29 <shachaf> OK, sure.
05:04:42 <shachaf> That was probably going to be my default thing.
05:05:07 <callforjudgement> there's also the special case when the arrays are nicely page-aligned, where you just reconfigure the MMU so that the logical memory maps into physical memory in a different way, but that's not going to be very applicable and probably produces hilarious results if you do it repeatedly
05:05:51 <callforjudgement> modern processors are pretty good at block copies of memory, though
05:06:12 <callforjudgement> I did some benchmarking a while back on what the fastest way to write the results of a calculation into memory were
05:06:19 <shachaf> Speaking of which: Is it actually the case that many modern CPU L1 caches are limited to 32 KB because that's the page size times the number of cache ways?
05:06:37 <shachaf> (As opposed to other factors?)
05:07:39 <callforjudgement> that's unlikely to be a limiting factor, the main limiting factor on L1 caches is connecting them to the rest of the CPU
05:07:48 <callforjudgement> in a way that allows the data to get there fast
05:08:19 <shachaf> But what else does a virtually-indexed physically-tagged cache do if not that?
05:09:37 <callforjudgement> making the cache use a different sort of addressing internally would be a pretty minor change, compared to trying to figure out how to connect more memory to the CPU at L1 speeds
05:10:20 <shachaf> I expected that it would be something more like what you're saying, but I heard this claim, and I'm not sure. In practice you do see this kind of limit.
05:11:11 <callforjudgement> it wouldn't surprise me if physical limits on the L1 cache meant that it could only be a certain size, so there was no need to create a caching algorithm that could deal with larger sizes because it wouldn't be useful anyway
05:11:22 <shachaf> It's also not clear to me that it would be a minor change. I think people do it to be able to start the L1 cache lookup earlier, before the TLB lookup, which people say is pretty important to make it fast enough.
05:14:11 <callforjudgement> the existence of the TLB disappoints me
05:14:37 <callforjudgement> or, well, I think that even if you don't prefetch data, it makes a huge amount of sense to prefetch TLB entries
05:15:00 <callforjudgement> to the extent that it could reasonably not even be a cache, just a "prepare to read/write here…read/write here" sequence
05:15:58 <callforjudgement> it would also kind-of make sense to have a manually managed L1 cache (this presumably has to get flushed to at least L2 during a context switch, but the L1 cache rarely survives a context switch anyway)
05:16:40 <callforjudgement> sort-of like zero page on the 6502, as a sort of memory bank that's particularly fast to use
05:46:34 -!- callforjudgement has quit (Quit: quit).
06:32:17 <b_jonas> int-e: libc has functions to open a FILE* that's a stringstream, or one that is attached to a file descriptor but doesn't close it on fclose. the former lets you implement sscanf from fscanf, the latter is more useful, it lets you fprintf to a file descriptor, or more importantly, mix other kinds of file abstractions (eg. C++, perl, python, rust file handles) easily with FILE*.
06:32:27 -!- adu has quit (Quit: adu).
06:32:42 <b_jonas> int-e: but as for formatting to a fixed-sized buffer, that's what snprintf is for
06:33:19 <shachaf> snprintf is for formatting to a buffer that's big enough to print everything all in one go.
06:33:48 <b_jonas> shachaf: yes, glibc also has a way to create a FILE* with custom read/write callbacks
06:33:58 <shachaf> Yes. That is what int-e used.
06:34:24 <b_jonas> has a documented API for it
06:34:32 <shachaf> But my string formatter doesn't need any of those, not even callbacks.
06:34:50 <shachaf> It's resumable so you can format into a buffer, do something with it, and then use it again.
06:44:22 <b_jonas> ais523: "with a 2⁶⁴ address space you never run out" => yes, but (a) sometimes you want to malloc to a smaller arena in order to have multiple buffers each of which you can free at once without iterating on all its blocks (b) or to be able to use 32-bit indexes within an arena; (c) the address space is 47 bits in practice, not 64 bits;
06:45:50 <b_jonas> (d) even aside from those I have the feeling that your malloc has some non-obvious drawbacks, such as using too many page table entries and so making the page table cache (called "translation something buffer" or TLB on x86) inefficient and so slowing all memory access down, even the memory access outside your malloced space, and possibly making the OS work harder to handle the metadata for your address
06:45:56 <b_jonas> space
06:46:55 <b_jonas> shachaf: right, so why isn't snprintf good for you? do you want to be able to continue formatting with the same arguments after your buffer runs out or something? if you want that, that's basically all that a FILE* does, with a few more words of metadata for how to read and seek
06:47:30 <shachaf> Well, FILE * doesn't present this interface at all, in general.
06:47:42 <shachaf> glibc does give you the interface, but it makes you use callbacks.
06:48:16 <b_jonas> shachaf: ok, so why is snprintf not good for what you want?
06:48:27 <b_jonas> or its openbsd variant, if there's one
06:48:40 <shachaf> snprintf requires you to have a buffer that's big enough for the entire output.
06:48:57 <b_jonas> nope, no openbsd variant
06:49:02 <shachaf> You can't write fprintf in terms of snprintf without something like allocation.
06:49:26 <b_jonas> shachaf: right, so what do you want to do if the buffer runs out, other than detecting that condition like snprintf does and possibly getting a prefix?
06:49:53 <shachaf> I want to be able to do something with the buffer (like write it to a file) and then continue where I left off.
06:50:00 -!- sprocklem has quit (Ping timeout: 258 seconds).
06:50:21 <b_jonas> shachaf: ok, but do you want that as a callback, or do you want to call the formatting function back, or something else?
06:50:33 <shachaf> I want to call the formatting function.
06:50:41 <shachaf> That's more flexible than a callback.
06:50:44 <b_jonas> and it has to somehow remember where it stopped?
06:50:54 -!- deltadoge23 has quit (Quit: Leaving).
06:50:57 <shachaf> Yes.
06:51:05 <shachaf> For example the library I linked above does that.
06:51:07 <b_jonas> well that's harder to implement from the formatter side, unless you want to give it a stack so it works as a user-space coroutine
06:51:34 <b_jonas> I don't think I ever wanted such an interface, but if you want that, sure
06:51:52 <shachaf> Yes, it's more work to make flexible general libraries than ones that only work for a particular use.
06:52:08 <b_jonas> because then my code has to remember all the formatting arguments too, and what memory they refer to, and all that
06:52:10 <shachaf> I think a callback alternative would probably be OK, just more annoying to use. But standard C doesn't even give you that.
06:52:27 <shachaf> It's true. Maybe C varargs just aren't up to the task.
06:52:31 <b_jonas> the callback alternative is the FILE*-based one in glibc
06:52:49 <b_jonas> you say it uses a few extra calls of malloc, which is admittedly true
06:52:53 <shachaf> Yes, in glibc you can do it.
06:53:09 <shachaf> No, I wasn't really objecting to that malloc, I think that was someone else.
06:53:23 <b_jonas> well it has to be implemented somewhere first. "it's not standardized" is not an excuse, you start with an implementation for stuff like this, not with a standard.
06:53:53 <b_jonas> and there are similar implementations of custom streams in lots of other libraries
06:55:12 <b_jonas> the C++ standard library has something like that now I think, I think boost had something similar but probably with a worse formatter,
06:55:12 <shachaf> Well, I doubt I'd want the glibc solution to be standardized.
06:55:16 <int-e> shachaf: The toy program is a proxy that provides SSL wrapping for a local service... with the twist that it also tells the local service where the request came from.
06:55:34 <b_jonas> these are based on something like C++ streams
06:55:38 <shachaf> Anyway, I was only saying why I don't want to use the glibc function, not whether it's an excuse or not.
06:56:35 <b_jonas> a moment, there was another non-libc library that may have one but I can't find it
06:56:40 <shachaf> Hmm, TLS with TCP fast open is still not really workable, right?
06:57:10 <int-e> not sure what that is
06:57:26 <shachaf> b_jonas: Anyway, difficulty of standardization is the reason I was saying I don't really want to be using a standardized library for this.
06:57:45 * int-e looks at https://en.wikipedia.org/wiki/TCP_Fast_Open
06:57:53 <shachaf> The thing they do to save a roundtrip establishing a TLS connection. Since normally you have the TCP handshake first, followed by the TLS negotiation.
06:58:26 <shachaf> Oh, now I remember, TCP fast open uses this cookie.
06:58:32 <shachaf> So it's probably not even something you want to use.
06:58:42 <int-e> Yeah, hmm, that's irrelevant for what I'm doing.
07:00:22 <b_jonas> I thought apache APR has something like this, but no
07:00:43 <b_jonas> shachaf: anyway, the hardest part of implementing something like this is that printing and scanning floating-point numbers correctly is crazy hard.
07:00:52 <shachaf> I agree.
07:00:53 <b_jonas> correctly and efficiently, even harder
07:01:10 <int-e> C code always gets so long.
07:01:30 <int-e> This trivial-ish program is 301 lines now.
07:01:39 <int-e> with hardly any comments
07:01:58 <int-e> and nothing to make it user-friendly.
07:02:00 <b_jonas> int-e: that's why I don't write C programs anymore, only C++.
07:02:11 <int-e> ...
07:02:49 <int-e> I guess you can reduce the effect that every 2nd line is for error handling.
07:04:04 <shachaf> Every second line being error handling sounds more like a library problem than a language problem.
07:04:07 <shachaf> I guess it depends on the code.
07:04:50 <int-e> shachaf: every function can potentially fail, and there's no exceptions that would maybe allow to collect several kinds of errors in a single place.
07:05:06 <int-e> (at least for this kind of IO heavy code)
07:05:07 <b_jonas> shachaf: re move one array before the other when they're adjacent, there's a function that does that, https://en.cppreference.com/w/cpp/algorithm/rotate , but usually it's easier if you have a separate buffer that you can move into
07:06:12 <b_jonas> "probably the fastest algorithm is just three memcpys" => basically yes, although one of them should be a memmove unless you're careful
07:06:46 <shachaf> But this is a C++ page. I know: I'll look in /usr/include/c++/ and see if I can figure out what it does.
07:07:50 <b_jonas> ais523: 'you basically have a choice of "I will use the data again soon" and "I will not use this data again soon"' => technically there's also "I'll never use this data again, don't bother flushing it from cache"
07:08:23 <shachaf> How many levels of indirection before finding the implementation?
07:08:59 <shachaf> Oh, only two, very good.
07:10:14 <b_jonas> ais523: "trying to figure out how to connect more memory to the CPU at L1 speeds" => I'm convinced the thing that stops that is the minimum page size, which is 4096 bytes on x86, and can't be increased unless you break compatibility with a lot of existing software, because the L1 cache has to do enough address calculation to know where to start to look before the results from the TLB arrives, so you
07:10:20 <b_jonas> can't have more than 8*4096 bytes of L1 cache (per type (data vs code) and cpu core)
07:10:39 <myname> just rust everything c/c++ :p
07:10:41 <shachaf> b_jonas: That's what I was saying.
07:11:05 <b_jonas> "prefetch TLB entries" => you could do that by prefetching one word from each page
07:11:06 <shachaf> But I'm not sure whether that's really the limiting factor. It seems pretty silly compared to the thing ais523 was saying.
07:11:26 <b_jonas> but I think even then I do want a TLB to exist, and a large one ideally
07:11:30 <b_jonas> I don't see why it disappoints you
07:11:55 <b_jonas> shachaf: yes, it's a C++ page, because it has a C++ interface
07:12:20 -!- FAKTOR7 has quit (Remote host closed the connection).
07:12:52 <b_jonas> shachaf: also be careful when using the actual function, I think it had a bug in older versions of gcc where it wasn't binary compatible between two versions of gcc if you ever called it with zero offset or some such nonsense
07:13:02 <b_jonas> I don't want to look it up now
07:13:11 <shachaf> I'm not using C++ so it doesn't matter.
07:13:47 <b_jonas> shachaf: I think that's the limiting factor *now*. obviously if you increase the minimum page size, there'll be another limiting factor very soon, but even just doubling the L1 cache size would help a lot
07:14:09 <b_jonas> well, it would help a lot for some code, obviously; some code isn't bound by that
07:14:18 <shachaf> b_jonas: Another thing that could help is page coloring, requiring physically adjacent pages to be mapped together.
07:14:30 <shachaf> "physically" adjacent
07:14:41 <b_jonas> shachaf: I don't know what that means
07:14:46 <b_jonas> page coloring?
07:14:55 <shachaf> https://en.wikipedia.org/wiki/Cache_coloring
07:15:41 <shachaf> It's sort of intermediate between the current situation and actually changing the page size.
07:15:43 <b_jonas> color all your hot memory regions red with the blood of your enemies that you sacrifice to the gods thanking them for giving your computer better performance for memory accesses
07:16:14 <b_jonas> and from the blood of sacrifical animals as well
07:16:50 <b_jonas> use their livers for haruspexy to predict near future memory access and prefetch them as well while you're there
07:16:55 <shachaf> For example, require each even page n to be mapped next to page n+1.
07:17:52 <b_jonas> hmm
07:27:21 -!- arseniiv has joined.
07:32:36 -!- hendursaga has quit (Remote host closed the connection).
07:33:41 -!- sprocklem has joined.
07:33:49 -!- hendursaga has joined.
07:36:55 <int-e> oh, cookie write functions are not allowed to return negative values
08:06:23 -!- Sgeo has quit (Read error: Connection reset by peer).
08:08:54 -!- hendursa1 has joined.
08:11:03 -!- hendursaga has quit (Ping timeout: 240 seconds).
08:19:07 -!- M8Crumble has joined.
08:19:22 <M8Crumble> 52*"!dlroW olleH">:# ,# _@
09:08:59 <esowiki> [[7]] M https://esolangs.org/w/index.php?diff=78015&oldid=76480 * SunnyMoon * (+2) Make it into a paragraph so it can be more readable.
09:18:04 -!- imode has quit (Ping timeout: 260 seconds).
10:38:59 -!- M8Crumble has quit (Remote host closed the connection).
10:55:40 -!- t20kdc has joined.
11:06:46 -!- Frater_EST has joined.
11:09:16 -!- LKoen has joined.
11:35:09 -!- tromp has quit.
11:53:30 -!- tromp has joined.
12:00:17 -!- tromp has quit (Remote host closed the connection).
12:29:39 -!- tromp has joined.
12:33:42 -!- FreeFull has joined.
13:07:56 -!- hendursa1 has quit (Quit: hendursa1).
13:08:17 -!- hendursaga has joined.
13:11:16 <esowiki> [[Streetcode]] M https://esolangs.org/w/index.php?diff=78016&oldid=73180 * PythonshellDebugwindow * (-1) /* Ambiguous turns */ Fix a grammar which is the bad grammar
14:05:37 -!- Frater_EST has quit (Read error: Connection reset by peer).
14:22:59 -!- FreeFull has quit.
14:34:38 -!- Arcorann has quit (Read error: Connection reset by peer).
14:45:48 -!- MDude has joined.
14:55:10 -!- FreeFull has joined.
15:16:28 -!- LKoen has quit (Remote host closed the connection).
15:24:18 <esowiki> [[OpenStreetCode]] N https://esolangs.org/w/index.php?oldid=78017 * PythonshellDebugwindow * (+12178) Created page with "{{WIP}} '''OpenStreetCode''' is an esolang by [[User:PythonshellDebugwindow]] based on [https://josm.openstreetmap.de/ JOSM], an editor for [https://www.openstreetmap.org/ Ope..."
15:35:49 <esowiki> [[Talk:Modulous]] M https://esolangs.org/w/index.php?diff=78018&oldid=77131 * Abyxlrz * (+161)
15:36:00 <esowiki> [[Talk:Modulous]] M https://esolangs.org/w/index.php?diff=78019&oldid=78018 * Abyxlrz * (+1)
16:37:52 <esowiki> [[OpenStreetCode]] M https://esolangs.org/w/index.php?diff=78020&oldid=78017 * PythonshellDebugwindow * (+404) /* Use of elements */
16:42:56 <esowiki> [[Special:Log/newusers]] create * Aryantech123 * New user account
16:45:22 <esowiki> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=78021&oldid=77942 * Aryantech123 * (+88)
16:47:15 <esowiki> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=78022&oldid=78021 * Aryantech123 * (+30)
16:52:50 <esowiki> [[Brainflub]] https://esolangs.org/w/index.php?diff=78023&oldid=53136 * Aryantech123 * (+154)
17:01:03 <esowiki> [[OpenStreetCode]] M https://esolangs.org/w/index.php?diff=78024&oldid=78020 * PythonshellDebugwindow * (+10) /* Instruction table */ Fix table and header
17:10:46 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=78025&oldid=77993 * Masldobehere * (+11) /* S */
17:16:56 <esowiki> [[OpenStreetCode]] M https://esolangs.org/w/index.php?diff=78026&oldid=78024 * PythonshellDebugwindow * (+116) /* Instruction table */
17:17:07 <esowiki> [[OpenStreetCode]] M https://esolangs.org/w/index.php?diff=78027&oldid=78026 * PythonshellDebugwindow * (-2) /* Memory */
17:45:49 -!- rain1 has quit (Quit: Leaving).
17:54:58 -!- Sgeo has joined.
18:18:38 -!- aaaaaa has joined.
18:46:26 -!- LKoen has joined.
19:03:08 -!- imode has joined.
19:07:09 -!- Frater_EST has joined.
19:08:19 <esowiki> [[OpenStreetCode]] M https://esolangs.org/w/index.php?diff=78028&oldid=78027 * PythonshellDebugwindow * (+593) /* Use of elements */
19:22:00 <esowiki> [[OpenStreetCode]] M https://esolangs.org/w/index.php?diff=78029&oldid=78028 * PythonshellDebugwindow * (+468) /* Relations */
19:22:30 <esowiki> [[OpenStreetCode]] M https://esolangs.org/w/index.php?diff=78030&oldid=78029 * PythonshellDebugwindow * (-8) No longer WIP
19:23:27 <esowiki> [[User:PythonshellDebugwindow]] M https://esolangs.org/w/index.php?diff=78031&oldid=75825 * PythonshellDebugwindow * (+91)
19:23:46 <esowiki> [[User:PythonshellDebugwindow]] M https://esolangs.org/w/index.php?diff=78032&oldid=78031 * PythonshellDebugwindow * (-2) /* Languages */ fix name
19:24:38 <esowiki> [[Language list]] M https://esolangs.org/w/index.php?diff=78033&oldid=78025 * PythonshellDebugwindow * (+21) /* O */ Add [[OpenStreetCode]]
19:27:17 <esowiki> [[OpenStreetCode]] M https://esolangs.org/w/index.php?diff=78034&oldid=78030 * PythonshellDebugwindow * (+177) /* Use of elements */
19:31:38 <esowiki> [[Owk]] M https://esolangs.org/w/index.php?diff=78035&oldid=66419 * PythonshellDebugwindow * (+10) Fix page formatting
19:46:56 <esowiki> [[Special:Log/upload]] upload * PythonshellDebugwindow * uploaded "[[File:OpenStreetScript print A.png]]": File for an [[OpenStreetScript]] example
19:47:27 <esowiki> [[File:OpenStreetScript print A.png]] M https://esolangs.org/w/index.php?diff=78037&oldid=78036 * PythonshellDebugwindow * (