00:03:29 -!- mtm has quit (Ping timeout: 268 seconds).
00:05:59 -!- mtm has joined.
00:22:51 <ais523> hmm, I wonder if the "different IP address for every request" is exploitable somehow – perhaps by putting up an interstitial if an access is made from an IP address that hasn't accessed recently and isn't accessing the home page (or other pages that would be likely to be accessed directly)
00:28:03 <zzo38> I did think of that. (I also considered limiting that to HTML, and possibly also limited to user-agents with "Mozilla")
00:39:06 <zzo38> However, any of these things will not prevent clients from trying to access them, although it does prevent dynamic files from being accessed (which often will cost more, so it can help a bit, if the filter to prevent access doesn't cost more, I suppose). I was also wondering if there is a way to confuse the botnets or whatever they are (someone said they might be botnets).
00:44:51 -!- molson_ has quit (Ping timeout: 246 seconds).
00:45:23 <esolangs> [[16 bits, 256 bytes]] M https://esolangs.org/w/index.php?diff=154355&oldid=154098 * PrySigneToFry * (+0)
00:47:22 <b_jonas> ais523: I think that would be hard to make not annoying for legitimate users
00:53:02 <ais523> lots of sites are using Cloudflare interstitials to try to stop the AI bots
00:53:45 <ais523> and it is a bit annoying
00:54:33 <JAA> Ah, another community battling with the LLM bots.
00:55:29 <ais523> I think the entire Internet is at the moment
00:59:05 <zzo38> Currently, I have disabled my HTTP server although the other protocols are still available.
00:59:07 <JAA> I wonder what they do with meta refreshes.
00:59:09 <ais523> oddly most of my access logs appear to be vulnerability scans (presumably black hat, although I can't tell from the logs)
00:59:33 <ais523> I think it may be because my website doesn't have very many different pages, so the AI bots can scrape it fairly quickly
01:00:22 <JAA> Ah, yeah. I'm running a code forge, so there are virtually infinitely many deep rabbit holes they can hunt.
01:01:41 <ais523> I wonder whether I should try to set up some sort of fail2ban on 404s
01:02:31 <zzo38> I had seen an article in 2600 about vulnerability scans, that is saying that the people who write the vulnerability scanners should not make it access all of the files several times, since many of the accesses are redundant and are unnecessary.
01:02:41 <ais523> although my webserver doesn't have CGI or anything similar enabled so it is unlikely to find any actual exploits, the speed at which it's attempting them could potentially be problematic for CPU load (although I think it's run out of things to try by now, another bot might later try the same thing)
01:05:33 <zzo38> I have what seems to be vulnerability scans in my logs as well, although I also have what seems to be attempts to connect to port 80 using TLS (but I do not currently have servers with TLS, on any port).
01:09:55 <zzo38> I have version control repositories, although most of these are mirrored on GitHub, that does not help if you want to use Fossil instead.
01:14:44 <zzo38> Another thing I use the Fossil wiki for though is recording what happens in the GURPS game I play. (These are publicly available (when the HTTP server is running), although only those who are involved with the GURPS campaign are allowed to edit it.)
01:17:39 <zzo38> So, due to this, it is sometimes necessary for the server to be available for this purpose. I could change it to work differently, but it will be necessary to be compatible with iPad, as well as computers with Windows and Linux. I do make a archive file of all of the text that can be downloaded and used without an internet connection, but you still need to connect to the server to download it.
01:23:04 <zzo38> I also received the request "t3 12.1.2" (which is not a valid HTTP request); do you know what that is? I received the same request on the Scorpion server (port 1517; it is not a valid request there, either). They are on different dates from different IP addresses.
01:27:57 <zzo38> Also, my HTTP server has some internal stuff which is only used on my computer. I suppose I could configure it to block the port temporarily, so that it will still work locally.
01:31:50 <zzo38> I also receive HTTP requests on my SMTP sometimes, for some reason.
01:38:03 -!- amby has quit (Quit: so long suckers! i rev up my motorcylce and create a huge cloud of smoke. when the cloud dissipates im lying completely dead on the pavement).
02:15:55 <esolangs> [[Zudjn]] https://esolangs.org/w/index.php?diff=154356&oldid=152575 * DevThatCodes * (+3) /* syntax */
02:16:48 <esolangs> [[Zudjn]] https://esolangs.org/w/index.php?diff=154357&oldid=154356 * DevThatCodes * (+24) /* syntax */
02:19:32 <esolangs> [[Yugoslavic]] N https://esolangs.org/w/index.php?oldid=154358 * PrySigneToFry * (+8874) Created page with "{{WIP}} Yugoslavic() is a pseudo-natural programming language designed by PSTF, based on Srpski and [[LOLCODE]]. There are two variant of Srpski: One is Cyrillic and another is Latin. We use Cyrillic variant. There are six variant of this language: Srpski(Se
02:21:36 <esolangs> [[Yugoslavic]] https://esolangs.org/w/index.php?diff=154359&oldid=154358 * PrySigneToFry * (+225)
02:22:11 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=154360&oldid=154335 * PrySigneToFry * (+17)
02:23:08 <esolangs> [[Talk:Yugoslavic]] N https://esolangs.org/w/index.php?oldid=154361 * PrySigneToFry * (+955) Created page with "Are there any users from Serbia? ? --[[User:PrySigneToFry|<span style="color:blue;background:yellow;"></span>]]User talk:PrySigneToFry|<span style="color:aqua;background:red;"></..."
02:28:52 <esolangs> [[Talk:Braindrunk]] https://esolangs.org/w/index.php?diff=154362&oldid=154331 * PrySigneToFry * (+16838) /* The partial output of 99 bottles of beers on my computer */ new section
02:29:24 <esolangs> [[Talk:Braindrunk]] https://esolangs.org/w/index.php?diff=154363&oldid=154362 * PrySigneToFry * (+17)
03:05:04 -!- op_4 has quit (Remote host closed the connection).
03:05:35 -!- op_4 has joined.
03:35:54 <int-e> b_jonas: conditional moves can be worse: they can be an XOR, followed by masking, followed by another XOR
03:38:05 <int-e> (Not completely unlike the XOR swap pattern, but I'd agree that no compiler is likely to ever use that.)
03:40:46 <int-e> What's worse about this is that it produces intermediate values that are meaningless (in context: not capabilities nor an easy constant that's all-0 or all-1).
03:49:24 <korvo> ais523, int-e, tromp: Have y'all had a chance to look at Sammy yet? I was going to hold off on pinging until I'd fleshed out the article, but right now it looks like I might be busy delivering value to clients for a few weeks.
03:49:40 <korvo> Any other Kolmogorov complexity enjoyers?
03:52:44 <zzo38> f the compiler does that, that would be a problem, since my idea was that it would be an error to produce such intermediate values that are otherwise meaningless (even if those values are never used). However, I also had the idea (before you mentioned this but after I thought about it initially, but that I did not mention yet), that AND, OR, or XOR of a capability with itself would be valid.
03:53:52 <zzo38> (the result will be the capability for AND and OR, and will be zero in the case of XOR; this zero is not a capability, so it would clear the capability bit from the register that the result is written to in the case of XOR)
03:55:16 <zzo38> If it is necessary, then I suppose it is also possible to make it allow AND and OR of a capability with either 0 or -1, and XOR with 0 (but not with -1).
04:00:27 <zzo38> (Although it would be possible to allow meaningless intermediate values, it would be too complicated, so it is best not to allow it, I think.)
04:06:08 <int-e> korvo: I've decided not to care about Sammy. I.e., I'm not going to unravel the category lingo and translate it into something I actually understand.
04:08:10 <int-e> (No offense intended to you or anybody else.)
04:08:17 <korvo> int-e: That's fair. Would it help if I wrote out decategorifications in Set or maybe Pos (partial orders & monotone functions)? By folklore, we could talk about constructions in set theory.
04:09:37 <korvo> No worries, I'm not hurt. I'm mostly vindicated because this gives us a reason to care about the names of categories. One of the nLab admins once said that naming categories is like counting sand on the beach, which makes sense if you don't have an uncomputable Sand -> N measuring some complexity, etc.
04:12:20 <int-e> korvo: I'd look at such a decatogorisation. I can't promise that I can actually do anything with it, obviously.
04:14:14 <korvo> No worries. It's good enough to have a hint of what to work on next time.
04:15:42 <int-e> Ironically I really liked the categorical algebra/coalgebra constructions (with types as initial algebras and final coalgebras). But that's ultimately concrete.
04:15:52 <korvo> I need to figure out how computable a type-checker would be, and also how uncomputable a Kan extension really is. I know that the decategorification to Set is computable because there's a book explaining how to do it in SML: https://www.cs.man.ac.uk/~david/categories/book/book.pdf
04:20:08 <korvo> Also, if it sounds more tractable, I can put a measure onto *Cammy* (my language) using Yanofsky's approach. Cammy's combinators include bicartesian-closed categories, whose rewrites are known to not be finitely axiomatizable, so we should get an interesting complexity measure.
04:35:29 -!- LKoen has quit (Ping timeout: 244 seconds).
04:54:12 <esolangs> [[Fi (Archived)]] M https://esolangs.org/w/index.php?diff=154364&oldid=105771 * Rdococ * (+1264) I may as well try to do a thing with this
04:54:36 <esolangs> [[Special:Log/move]] move_redir * Rdococ * moved [[Fi (Archived)]] to [[Fi]] over redirect
04:54:36 <esolangs> [[Special:Log/move]] move_redir * Rdococ * moved [[Talk:Fi (Archived)]] to [[Talk:Fi]] over redirect
04:54:36 <esolangs> [[Special:Log/delete]] delete_redir * Rdococ * Rdococ deleted redirect [[Fi]] by overwriting: Deleted to make way for move from "[[Fi (Archived)]]"
04:54:36 <esolangs> [[Special:Log/delete]] delete_redir * Rdococ * Rdococ deleted redirect [[Talk:Fi]] by overwriting: Deleted to make way for move from "[[Talk:Fi (Archived)]]"
04:55:22 <Sgeo> I think my brain broke. I put 'second derivative of signum(x)' into Wolfram Alpha and it said something about the Dirac function. I googled it earlier and assumed the mention I saw was some AI hallucination, but... I guess not?
04:55:40 <esolangs> [[User:Rdococ]] M https://esolangs.org/w/index.php?diff=154369&oldid=148595 * Rdococ * (+90)
04:56:40 <Sgeo> And I thought the first derivative would be undefined at x=0
04:59:52 <Sgeo> Wikipedia says the dirac function isn't a function, and differentiating sign function at x=0 requires a more expansive than usual definition of derivative
05:04:13 <korvo> IIRC it's a function over the reals iff equality over the reals is available. It's not a feature of constructive maths.
05:12:19 <int-e> Dirac delta is not a real-valued function.
05:13:41 <int-e> (but you can still model it as a function that takes on a specific infinite value at 0)
05:32:18 <ais523> korvo: I already struggle with thinking about category theory as my brain tends to blur the various levels of abstraction, and Sammy adds an extra level and thus makes things worse
05:32:31 <ais523> I don't think I'm at all likely to get into the right mental state to understand it
05:33:17 <ais523> it is definitely very esoteric, though
05:37:28 <ais523> Sgeo: https://en.wikipedia.org/wiki/Dirac_delta_function#Derivatives seems to be the specific function-like thing you were looking at
05:39:03 <ais523> it's one of those things that seems to have lots of properties of the same nature as the properties that functions have, but is missing some important ones such as actually being able to evaluate it
05:43:11 <ais523> I am reminded of how many properties of odd perfect numbers we know…
05:51:07 <zzo38> My own thinking about category theory, tends to be different from how they are commonly described, in my opinion. A category is commonly described as generalizations of sets, groups, etc; to me it looks like a generalization of monoids, that instead of putting any two elements together they must match and the objects tell you which ones match, and matrix multiplication is an obvious example.
05:51:46 <zzo38> (Most other explanations of category theory don't usually mention monoids and matrix multiplication right away, as far as I can tell.) This is just as valid but is a different way of how you would think about category theory, it seems.
05:58:04 <korvo> ais523: Oh, I'm struggling too. Kan extensions are famously hard to conceptualize because *every* structural concept can be expressed as a Kan extension. I'm going to have to write a type-checker in order to actually hack out any interesting programs.
05:58:46 <ais523> we can have Malbolge, so I don't see why we can't have this too :-)
05:59:32 <ais523> (although it has a somewhat different reason behind the difficulty of programming)
06:00:30 -!- ais523 has quit (Quit: quit).
07:14:29 -!- Lord_of_Life_ has joined.
07:14:57 -!- Lord_of_Life has quit (Ping timeout: 248 seconds).
07:15:49 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
07:18:15 <esolangs> [[]] https://esolangs.org/w/index.php?diff=154370&oldid=153248 * PrySigneToFry * (+2097)
07:23:35 <esolangs> [[]] https://esolangs.org/w/index.php?diff=154371&oldid=154370 * PrySigneToFry * (+636)
07:24:03 -!- tromp has joined.
07:56:58 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
07:59:00 -!- tromp has joined.
08:51:43 -!- FreeFull has quit (Quit: Lost terminal).
09:03:19 -!- Sgeo has quit (Read error: Connection reset by peer).
09:56:59 -!- Ae` has joined.
10:34:46 <esolangs> [[]] https://esolangs.org/w/index.php?diff=154372&oldid=154371 * PrySigneToFry * (+1)
10:36:46 <esolangs> [[Amethyst/Standard Library]] N https://esolangs.org/w/index.php?oldid=154373 * PrySigneToFry * (+64) Created page with "{{Back|Amethyst}} Amethyst supports several standard libraries."
10:41:48 <esolangs> [[Amethyst/Standard Library/Math]] N https://esolangs.org/w/index.php?oldid=154374 * PrySigneToFry * (+5605) Created page with "{{Back|Amethyst/Standard Library}} <pre> NAME math DESCRIPTION This module is always available. It provides access to the mathematical functions defined by the C standard. FUNCTIONS acos(x, /) Return the arc cosin
10:42:21 <esolangs> [[Amethyst/Standard Library]] https://esolangs.org/w/index.php?diff=154375&oldid=154373 * PrySigneToFry * (+37)
10:45:42 <esolangs> [[Amethyst/Standard Library/Random]] N https://esolangs.org/w/index.php?oldid=154376 * PrySigneToFry * (+6896) Created page with "{{Back|Amethyst/Standard Library}} <pre> NAME random - Random variable generators. DESCRIPTION integers -------- uniform within range sequences --------- pick random eleme
10:48:13 <esolangs> [[Amethyst/Standard Library]] https://esolangs.org/w/index.php?diff=154377&oldid=154375 * PrySigneToFry * (+39)
10:49:01 <esolangs> [[Amethyst]] https://esolangs.org/w/index.php?diff=154378&oldid=154320 * PrySigneToFry * (+56)
11:18:48 <b_jonas> int-e: right, so you want to do a conditional move from b to s like if (f < 0) s = b; the compiler had a bad day so it compiles that as s += b - s & f >> 63; then even if b was a capability and s can end up with its value, zzo38's processor can lose track of that and s will be a plain integer (assuming s was nonzero)
11:19:38 <b_jonas> and this could happen with wordwise operations where s, b, f are multiword vectors
12:04:00 -!- mtm has quit (Ping timeout: 252 seconds).
12:07:38 -!- mtm has joined.
12:14:01 <esolangs> [[Woodchuck/Implementation]] M https://esolangs.org/w/index.php?diff=154379&oldid=117969 * Rdococ * (+125) updat's
12:16:05 <esolangs> [[Woodchuck]] M https://esolangs.org/w/index.php?diff=154380&oldid=116711 * Rdococ * (-46)
12:23:33 -!- amby has joined.
12:28:42 <int-e> Hmm optimizing Sea Magic is hard even with known scores to aim for... but I've obtained my 18th box. https://int-e.eu/~bf3/tmp/seamagic.png
12:29:59 <int-e> (the best known scores I've collected add up to 19250 points, and only 5 of my level solutions match the corresponding best known score...)
12:30:26 <b_jonas> hmm, does #esoteric play Veggie quest, the puzzle game where you have to build mazes that take many steps to solve
12:32:06 -!- drwiz has joined.
12:32:17 -!- drwiz has left.
12:32:54 <int-e> Oh ais523 commented on https://int-e.eu/~bf3/tmp/seamin.png asking about a true minimal score... I suspect that's boring: you finish ice 2 with 115 points, move 1 and slide 1 with 40 points, and 5 more levels without boxes, at which point you have exactly 1000 points and 4 levels left to solve, so you can have all levels solved at 1004 points.
12:33:54 <int-e> (I did improve the ice 2 minimal score since the last time I shared that link)
12:35:17 <int-e> I had not even heard of Veggie Quest
14:19:54 <esolangs> [[User:Cycwin]] https://esolangs.org/w/index.php?diff=154381&oldid=151862 * Cycwin * (+20)
14:20:45 <esolangs> [[User:Cycwin]] https://esolangs.org/w/index.php?diff=154382&oldid=154381 * Cycwin * (+16)
14:22:38 <esolangs> [[User talk:I am islptng]] https://esolangs.org/w/index.php?diff=154383&oldid=154294 * Cycwin * (+76) /* PLZ HLP MI */ new section
14:30:29 <esolangs> [[DeadPig]] https://esolangs.org/w/index.php?diff=154384&oldid=101567 * PrySigneToFry * (+0)
14:37:39 <esolangs> [[User talk:Cycwin]] https://esolangs.org/w/index.php?diff=154385&oldid=151344 * I am islptng * (+216)
14:41:18 <esolangs> [[User talk:Cycwin]] https://esolangs.org/w/index.php?diff=154386&oldid=154385 * Cycwin * (+139)
14:44:11 <esolangs> [[User talk:Cycwin]] https://esolangs.org/w/index.php?diff=154387&oldid=154386 * Cycwin * (+17) /* Just some weird words */
14:51:33 <esolangs> [[User:Cycwin]] https://esolangs.org/w/index.php?diff=154388&oldid=154382 * Cycwin * (+99)
14:59:38 <esolangs> [[PAL]] https://esolangs.org/w/index.php?diff=154389&oldid=154295 * Cycwin * (+239)
15:04:22 -!- FreeFull has joined.
15:05:06 <esolangs> [[PAL]] https://esolangs.org/w/index.php?diff=154390&oldid=154389 * Cycwin * (+73) /* All Functions */
16:56:53 <korvo> https://www.youtube.com/watch?v=RcVA8Nj6HEo Quite nice animations of Tromp diagrams.
17:05:21 -!- ais523 has joined.
17:10:37 <esolangs> [[Reflecto]] https://esolangs.org/w/index.php?diff=154391&oldid=153531 * QuantumV * (+90) add register
17:21:46 <korvo> Hm, I haven't worked it out, but I just noticed that lambda calculus can't encode *the* natural numbers on the nose, because there isn't an associated DDS (dynamical discrete system, IIRC?) for them.
17:22:26 <korvo> The best DDS for the nats has one object and one non-trivial arrow; intuitively, the encoding ignores the arrow, traverses it once, traverses twice, etc.
17:23:26 <korvo> But it should also be possible to go around infinitely many times. There should be a way to use a fixed-point combinator to make a Church numeral that loops forever.
17:24:07 <korvo> And since Church numerals are the initial such encoding, all encodings of the natural numbers have a version of this extra infinite number.
17:31:31 <esolangs> [[Funciton]] https://esolangs.org/w/index.php?diff=154392&oldid=154284 * Timwi * (+6833) Regular expression functionality https://www.youtube.com/watch?v=ImzcTmB0m0k
17:32:41 <esolangs> [[Funciton]] M https://esolangs.org/w/index.php?diff=154393&oldid=154392 * Timwi * (+0) rearrange
17:34:09 <esolangs> [[Funciton]] M https://esolangs.org/w/index.php?diff=154394&oldid=154393 * Timwi * (-2) fix wrong heading size
17:39:41 <esolangs> [[Funciton]] M https://esolangs.org/w/index.php?diff=154395&oldid=154394 * Timwi * (+0) minor fix
18:13:07 -!- Sgeo has joined.
18:18:05 <ais523> korvo: so the lambda calculus can encode an infinite loop, which isn't a natural number – but it can also encode lots of other things that aren't natural numbers
18:18:54 <korvo> ais523: Even with a type system, we can't exclude an omega term.
18:18:56 <ais523> both typed and untyped lambda calculi seem to have their own issues here
18:19:17 <ais523> I'm not sure either allow you to express "the type of a natural number" without adding it as a primitive
18:20:14 <esolangs> [[Frackit]] https://esolangs.org/w/index.php?diff=154396&oldid=151355 * Stkptr * (+2406) Turing complete
18:20:18 <korvo> ais523: Bauer explains why the type I've given before (forall X, (X -> X) -> (X -> X)) is the right one: https://cstheory.stackexchange.com/a/30924
18:20:52 <korvo> They also hint that this happens for other models, and that the right way to think of it is as a "weak" initiality.
18:20:59 <ais523> ah right, a generic typed lambda calculus
18:21:33 <ais523> hmm, doesn't call/cc have a type of that shape?
18:21:45 <korvo> Interestingly, there's a topological object that has more-or-less the set of these lambda terms as its points! It's N∞ the one-point compactification of nats.
18:21:52 <ais523> ah no, that's ((X -> X) -> Y) -> X
18:22:04 <ais523> err, no, I think I have that wrong
18:22:30 <korvo> And it's known that N∞ ≈ N + 1 only iff LEM, which isn't the case on a computer.
18:22:45 <korvo> Er, LPO, not LEM? I should find that cite.
18:22:52 <ais523> korvo: on the wiki recently we noticed that "the rationals but the denominator can be 0" is an interesting set of numbers
18:23:18 <korvo> Oh, found it, from Past Corbin being a dumbass: https://langdev.stackexchange.com/a/3941
18:23:40 <ais523> because you can cancel numerator and denominator, it's basically Q + 1/0 and 0/0, but 1/0 and 0/0 don't seem meaningfully distinguishable (you have to treat them as the same in order for all the identities you'd want to hold)
18:24:20 <ais523> there is one missing field axiom, though, you don't get x * 0 = x
18:24:57 <esolangs> [[Onesharp]] https://esolangs.org/w/index.php?diff=154397&oldid=151350 * Stkptr * (+105)
18:25:06 <korvo> Fun. I was recently playing with possibly-empty fields, which have similar issues because they might lack 0 but always require 1.
18:25:32 <korvo> Those don't behave like fields of fractions, but like groups of units which embed into finite fields.
18:27:39 <esolangs> [[NB]] https://esolangs.org/w/index.php?diff=154398&oldid=151115 * Stkptr * (+5) Not high level, but surely TC
18:56:22 <ais523> apparently the current mathematical consensus is that it evaluates to 1 if the 0 in the exponent is an integer, but is undefined if the 0 in the exponent is a real number
19:10:16 <esolangs> [[Church numeral]] https://esolangs.org/w/index.php?diff=154399&oldid=150245 * Corbin * (+2462) Had a thought, chatted on IRC, did some research. Consolidated sources somewhat.
19:28:03 <korvo> It is also 1 in the natural numbers via decategorification of Set (counting arrows 0 → 0), and as a consequence I'm not sure it *can't* be 1 in a semiring
19:28:44 <korvo> I recall reading a paper about how 0⁰ converges to 1 but with branch points; can't recall the title though.
19:32:11 <korvo> > let { zero f x = x; exp b c = c b } in exp zero zero ("."++) []
19:32:54 <korvo> > let { three f x = f $ f $ f x; exp b c = c b } in exp three three ("."++) [] -- checking that it's really exponentiation
19:33:02 <ais523> 0⁰ is obviously 1 in Church numerals because if you raise 0 to the power of something, that thing doesn't even get evaluated
19:34:05 <ais523> ^ul (::**)(::**)^(+)~^S
19:34:05 <fungot> +++++++++++++++++++++++++++
19:34:19 <korvo> > let { three f x = f $ f $ f x; exp b c = c . b } in exp three three ("."++) [] -- found it
19:35:04 <korvo> > let { zero f x = x; exp b c = c . b } in exp zero zero ("."++) [] -- and this is why I shouldn't live-code
19:36:03 <korvo> Okay there we go. So that's kind of a weird outcome. This shows that the way that we're embedding the nats into e.g. Church numerals *isn't* an embedding of semirings preserving exponentiation.
19:36:40 <korvo> But it does preserve addition and multiplication, more or less. Weird, right? I don't know if this is a side-effect of Tannenbaum or something else.
19:37:37 <korvo> ...Wait, I think I'm talking gibberish. Curses.
19:37:58 <esolangs> [[Church numeral]] https://esolangs.org/w/index.php?diff=154400&oldid=154399 * Corbin * (+30) Fixed conventions and grammar. Gave it an out-loud test.
19:38:28 <korvo> Ignore me as I do not know anything about numbers.
19:38:45 <ais523> korvo: I think, above, you defined a multiplication function named "exp"
19:39:04 <korvo> ais523: I think so, yeah. I'm pretty bad at Haskell.
19:39:21 <ais523> that's why I was doing the same thing in Underload, which I'm very used to
19:39:39 <ais523> I'm not great at Haskell and was mentally translating into Underload to verify it
19:46:15 <korvo> Yeah, it was right the first time. Moreover it's got a cool hint of the underlying categorification; `exp zero zero` hand-reduces to id.
19:47:57 <fungot> rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr ...too much output!
19:49:37 <b_jonas> unlambda would be easier to write in a readable way if it had the rule that whitespace is a no-op statement like in brainfuck
19:49:51 <b_jonas> so you don't need to ( )! to write a comment
19:50:55 <korvo> I'm used to Nix, for which there's not a bot. Something like `let three = f: x: f (f (f x)); exp = b: c: c b; in exp three three`
19:54:42 <b_jonas> this Nex? https://esolangs.org/wiki/Nix
19:54:49 <b_jonas> doesn't look like what you're referring to
19:55:24 <korvo> Nix is a sort of mix of Haskell and JSON. Its reference implementation is equipped with capability-aware storage. It's used to build packages for GNU/Linux systems, mostly.
19:56:17 <korvo> https://en.wikipedia.org/wiki/Nix_(package_manager) I think that this could use an eso-first treatment. People have written arithmetic, text tools, parsers, etc. in pure Nix.
19:56:34 <ais523> is the product of two single-precision IEEE floats always exactly representable as a double-precision IEEE float?
19:56:50 <ais523> korvo: I was aware of Nix the package manager but didn't realise it was an esolang
19:56:52 <korvo> I broke ground on a fast JIT-oriented version of Nix but got zero community buy-in.
19:56:58 <ais523> it does make sense, though, given the Sudoku solver in apt
19:57:21 <korvo> ais523: Perhaps you've heard folks mention "NEL" or "Nix expression language".
19:57:48 <ais523> (which isn't even really an abuse of apt – apt's entire job, other than downloading packages from the Internet, is to resolve dependencies and conflicts, and that's pretty much what Sudoku is)
19:58:27 <ais523> korvo: no, I've only seen it mentioned as a package manager
19:58:42 <korvo> It's basically an ML! It tastes like Haskell but without custom operators. It's not like HCL, the language in Packer or Terraform, which is not really up to general-purpose computation.
19:58:50 <b_jonas> ^ul (((d)S)((b)S))(( )S~:^*a~^^a*~:^):^( strings with Fibonacci lengths )!
19:58:50 <fungot> b d db dbd dbddb dbddbdbd dbddbdbddbddb dbddbdbddbddbdbddbdbd dbddbdbddbddbdbddbdbddbddbdbddbddb dbddbdbddbddbdbddbdbddbddbdbddbddbdbddbdbddbddbdbddbdbd dbddbdbddbddbdbddbdbddbddbdbddbddbdbddbdbddbddbdbddbdbddbddbdbddbddbdbddbdbddbddbdbddbddb dbddbdbddbddbdbddbdbddbddbdbddbddbdbddbdbddbddbdbddbdbddbddbdbddbddbdbddbdbddbdd ...too much output!
20:01:19 <korvo> https://github.com/milahu/nix-yaml/blob/main/from-yaml.nix is a decent example of what folks get up to when they're still trying to be productive. Nix has JSON import and export but not YAML.
20:02:18 <b_jonas> ais523: good question about the floating point, that might actually be true
20:04:40 <zzo38> I think JSON and YAML both have some problems and are not really the best kind of formats. It would depend what you are doing with it, but generally they aren't very good, I think.
20:04:46 <zzo38> I had heard of NixOS before, though.
20:04:55 <korvo> ais523: Curiously, we (nixpkgs) don't really use constraint-solving or other search. Instead, we work manually to holistically curate sets of packages which work together. Kind of like generalized Stackage or locked crates.
20:05:21 <korvo> TBH we don't do much computation at all. It's an open secret that Nix is only slow to evaluate because the reference implementation is a C++ tree-walking interpreter.
20:06:57 <korvo> zzo38: Nix mostly has it for configuring packages that are going to be built. It also can write XML, but not read it; Nix needs to be able to instruct Maven but not load from it.
20:11:15 <zzo38> XML is usually worse (but there are some things that XML is better for). Still, some programs will need to use JSON, XML, and other formats. (I think YAML is a superset of JSON; if that is how it works then it should not be necessary to write YAML unless you need extensible data types other than those in JSON.)
20:11:49 <zzo38> (I think YAML isn't really very good either though, actually)
20:12:04 <korvo> Sadly, no: https://john-millikin.com/json-is-not-a-yaml-subset
20:12:45 <korvo> YAML should be avoided. If an endpoint accepts both JSON and YAML, set application/json and read their docs; this helps with generating configuration for e.g. k8s.
20:13:06 <ais523> I vaguely remember changes that were made to YAML in an attempt to make it a true JSON superset, but they may not have been successful
20:13:24 <zzo38> O, now I see the problem, with "1e2".
20:14:08 <ais523> ah, the article you linked says that you need a declaration to use the strict-superset mode (for backwards compatibility) but JSON documents won't have it
20:14:52 <ais523> I guess there could be an API that defines its input as "YAML 1.2 without the header" – such an API would probably accept JSON too
20:15:04 <zzo38> Another variant would be PostScript notation. However, the binary format of PostScript does not have numbers longer than 32-bits and cannot store key/value lists (these are not problems with using the text format).
20:15:42 <ais523> fwiw, for YAMLish text formats, I think the best approach is probably for unquoted identifiers to be treated as enum variants (and you could plausibly define bool as an enum of true and false)
20:15:49 <ais523> although, that would probably need a schema to work well
20:17:02 <zzo38> Something I use in some of my programs more recently (since I wrote a library to use it) is DER (actually it is a minor variant that adds a few new types and does not use some of the standard types, but this does not affect the framing at all and is still compatible with X.509 and other existing schemas). This is a binary format; for text I invented the format TER which can be converted to DER.
20:18:13 <b_jonas> (if I want to write underload more complicated than that I'd probably have to write a compiler)
20:18:15 <ais523> I think there are basically two types of format that are useful for this sort of thing: interchange formats which should probably be binary, and text formats designed for humans to read and write
20:19:16 <ais523> and both benefit from a schema – the former because it allows the format to take up fewer bytes, and the latter to catch usage errors
20:20:12 <zzo38> (In PostScript, the binary format and the text format are actually the same format, so they can be mixed together in the same file.)
20:22:18 <zzo38> I do believe you that text formats and binary formats are both useful, for such purposes (and others).
20:23:42 <ais523> I am not sure that a good solution for linking documents to schemas has been invented, yet
20:23:57 <ais523> XML uses an URL near the start of the document, but this has lead to problems and is probably not a good solution
20:24:24 <ais523> hmm, I wonder if using the hash of a schema might make sense? especially if the schema format is such that only one sequence of bytes can describe any given schema
20:29:15 <zzo38> Possibly, if it has a canonical format. DER is already canonical format though, while canonical JSON is more complicated.
20:33:45 <ais523> it would need to be canonical not just in the encoding, but in the way it was represented (e.g. if there is a list whose order does not matter, it would need to be sorted)
20:33:47 <zzo38> (One problem with JSON and many other formats is their expectation to use Unicode; this means that non-Unicode data must be encoded as base64 or something else like that and just makes it less efficient, and can make it difficult. There is also a problem with numbers, but that depends on the implementation.)
20:34:22 <zzo38> ais523: DER already specifies that if there a list whose order does not matter (called a "set", although it is actually more like a multiset), then it is sorted.
20:37:02 <ais523> ah, I was wondering how this related to ASN.1, but it turns out to be a subset of it
20:43:09 <zzo38> If my variant of DER is used, then it can actually store a superset of the data that JSON can store (my variant adds a key/value list type), although this is not really the best way to use DER, it at least demonstrates that it is possible. I wrote a program to do this conversion (although it does not fully validate it).
20:43:46 <ais523> what tag class is your key/value list?
20:43:46 <b_jonas> python3 has dictionaries that preserve insertion order of the elements and you can iterate them in that order. that's often very convenient for sets whose order don't matter, resulting in an order that's easy to understand when I inspect results. at other times I need an explicit sort for a convenient order, and I have written custom sort functions for that.
20:44:12 <ais523> b_jonas: quite a few languages have order-preserving dictionaries, I think
20:44:28 <b_jonas> perhaps for the same reason
20:44:32 <ais523> it strikes me as a bit of an awkward type, it's storing extra data it usually doesn't need to
20:45:28 <ais523> it would make sense for a golfing language, though, I guess
20:45:33 <zzo38> ais523: Universal, which isn't really supposed to be used unless ITU does it, but this is deliberately nonstandard ASN.1 which adds some new universal types (starting at 64 to make it unlikely to conflict).
20:45:33 <ais523> especially as you can type-pun it with a list of pairs
20:46:01 <ais523> zzo38: I think if I were doing something similar I would encode it as private
20:46:05 <zzo38> The program is https://raw.githubusercontent.com/zzo38/scorpion/refs/heads/trunk/asn1/jsontoder.c and if you use a program such as "dumpasn1" or "openssl asn1parse -inform der" then it will be able to read the output of that program. It cannot recognize the key/value list type but would still be able to display the contents of he key/value list.
20:46:27 <ais523> with terminal control code encodings, some of the private-use encodings have become de-facto standards but are still in the private-use range
20:52:09 -!- molson has joined.
20:52:22 <zzo38> Yes, I know that is the case with terminal control codes.
20:58:09 -!- molson has quit (Remote host closed the connection).
20:58:11 <zzo38> (A problem I had seen in many libraries for dealing with DER (although not my own one) is the insistence of converting OIDs to decimal even when doing so is unnecessary (and it usually is unnecessary). If you merely want to validate it, this can be done more efficiently.)
21:00:35 <korvo> ais523, b_jonas: You won't hear the history of Python ordered dicts from the CPython community.
21:02:07 <korvo> They were first prototyped in PyPy, and they were only ordered as a side-effect of the implementation. The main goals were to be smaller and faster than standard hash tables.
21:02:46 <korvo> fijal explains better than I can: https://pypy.org/posts/2015/01/faster-more-memory-efficient-and-more-4096950404745375390.html
21:02:52 <ais523> one thing I hate is how that in practice, hash tables often spend so much time hashing that they negate the benefit form actually being a hash table
21:03:11 <ais523> I normally use B+ trees in practice unless I know that the table is likely to get very large
21:05:06 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=154401&oldid=154360 * Buckets * (+29)
21:05:10 <korvo> If it gets to that, I normally reach for something that can do stream processing. SQLite usually, sometimes jq.
21:05:18 <ais523> although, PyPy's dictionaries are a bit interesting – they're basically a normal hash table where the entries are boxed using a bump allocator, so you can determine the insertion order via looking at the addresses they were allocated at
21:05:38 <ais523> and the tradeoff is that deletion becomes amortized O(1) rather than true O(1)
21:05:50 <esolangs> [[User:Buckets]] M https://esolangs.org/w/index.php?diff=154402&oldid=154336 * Buckets * (+11)
21:06:05 <esolangs> [[MemeS]] N https://esolangs.org/w/index.php?oldid=154403 * Buckets * (+1056) Created page with "MemeS is an Esoteric programming language created by [[User:Buckets]] in 2021. MemeS has no fixed Commands, They would Automatically change to The Most relevant memes at that time Of Year, month, day, hour, Minute, second, femtosecond. {| class="wikitable" |- ! Commands
21:06:08 <korvo> I like that analogy. It's totally a bump allocator.
21:07:40 <ais523> I think it's different from a typical ordered dictionary in that if you update a value without changing the key, the order doesn't change
21:09:52 <korvo> Yeah. In that sense, the capability to iterate over an ordered dict can be used to gain knowledge about the dict and provoke non-deterministic behavior, and it's actually kind of problematic compared to e.g. a weak-value mapping without iteration (JS "WeakMap").
21:15:02 <zzo38> For making trees in C, there is tsearch and the related functions, but it does not seem to have the way to take advantage of the existing tree structure when you want to read the tree from a file or write the tree to a file (in order to avoid having to reconstruct the tree from the start again when reading it back).
21:16:26 <zzo38> (Another issue is with the examples, that they will make a heap allocation and then free it if the record already exists, but I think it seems better to make a stack allocation and then replace it with a heap allocation if the record does not already exist, which seems like it would be more efficient, to me. My own programs do use a stack allocation like that.)
21:16:39 <esolangs> [[Esorn]] M https://esolangs.org/w/index.php?diff=154404&oldid=154339 * Buckets * (+2)
22:18:16 <esolangs> [[Zudjn]] https://esolangs.org/w/index.php?diff=154405&oldid=154357 * Stkptr * (+19) It has no loops and finite memory
22:58:55 <esolangs> [[NOR Machine]] https://esolangs.org/w/index.php?diff=154406&oldid=150840 * Stkptr * (+19)
23:31:50 -!- chiselfuse has quit (Remote host closed the connection).
23:32:05 -!- chiselfuse has joined.
23:35:39 <esolangs> [[PAL]] https://esolangs.org/w/index.php?diff=154407&oldid=154390 * I am islptng * (-313)
23:38:48 <esolangs> [[Fontmess]] M https://esolangs.org/w/index.php?diff=154408&oldid=154316 * Buckets * (-364)
23:58:31 <esolangs> [[Neucomp]] https://esolangs.org/w/index.php?diff=154409&oldid=127696 * Kaveh Yousefi * (+763) Rectified the cat program and Truth Machine examples, introduced as a further example a looping counter, rectified several orthographic mistakes, and improved the formatting.