00:02:52 ^ul (x)(y)(z)a~a*:^~a*~^!a~a**S 00:02:52 x(z)(y(z)) 00:03:01 (Not sure if I interpreted the notation correctly.) 00:03:01 fizzie: oh, you were fast 00:03:49 Thanks fizzie! 00:05:20 ^ul (y)(z)a~a*:^~a* 00:05:25 ^ul (y)(z)a~a*:^~a*S 00:05:25 y(z) 00:05:49 http://ix.io/2A9t -- with steps. 00:06:45 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 fizzie: ouch, not writing out the outer parenthesis 00:07:16 So I guess a better way of asking my question would be (z)(y)(x) -> ((z)y)(z)x 00:07:49 orby: ok that's slightly harder 00:08:01 That's the problem with stacks, you never know which way around they are. 00:08:04 yes, I thought it was hard 00:08:06 but you can still compile lambda calculus to underload 00:08:23 fizzie: yeah, though at least in underload they're always the way you took it 00:08:29 (and in Consumer Society too) 00:09:12 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 and I'm trying to document it properly as a minimization of underload 00:10:19 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 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 just a slightly adapted s combinator 00:13:03 orby: it's not obvious at all 00:13:05 neither part is obvious 00:13:15 I still can't wrap my head around how underload works 00:13:30 I mostly think of it as a term rewriting system 00:13:34 I find that easier to think about 00:13:45 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 but I think other people have verified it because it's not that hard with a computer these days 00:14:09 I have a minor fetish for minimization, so I spend a lot of time thinking about reducing these sorts of things 00:14:21 This starts from a slightly different place: 00:14:22 ^ul ((z)a(y)a(x)a)^**:^!~a~*a~^~!~a~**S 00:14:22 ((z)y)(z)x 00:15:27 thanks fizzie! 00:20:14 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 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 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 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 ^ul (z)(y)(x)a~a~*~a~*:^!~a~*a~^~!~a~**S(just for completeness) 00:27:07 ((z)y)(z)x 00:28:42 fizzie: you're still quite fast in this 00:31:02 Thanks for your help friends. 00:31:11 fizzie: it's impressive that there's only one colon in that 00:31:30 (and it's not inside parenthesis) 00:32:50 ^ul (z)(y)(x)a~a*~a*:^a~*a~!~^a~!~**S(now with a little less unnecessary swapping) 00:32:50 ((z)y)(z)x 00:33:04 (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 ohai 00:34:48 normally "write this combinator in Underload" is pretty straightforward if you know what you want the result to look like 00:34:57 it can be done mechanically, if necessary 00:35:06 sometimes you can do it in your head, that's the hard part 00:35:15 ais523: you have read tom7's very apt description of git and the world around it, right? 00:35:30 ais523: Yeah, I need to spend a little more time with Underload 00:35:38 b_jonas: no 00:35:49 I think I understand enough about git to use it, and I still think it's a very good description 00:36:02 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 ais523: frontpage of http://radar.spacebar.org/ right now 00:36:19 ais523: Correct 00:36:31 permalink: http://radar.spacebar.org/f/a/weblog/comment/1/1185 00:36:35 b_jonas: ouch, that's unreadably narrow, and I don't get a reaer mode option 00:37:04 ais523: go complain to tom7 then 00:37:08 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 wow, this site uses tables for layout 00:37:53 and specifies widths as an exact number of pixels 00:38:18 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 basically rewrote it to a newer, incompatible evolution of his own scripting language 00:40:12 there we go 00:40:19 the same scripting language that implements http://snoot.org/ 00:41:52 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 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 ^ul (z)(y)(x)(~a:(~*a)~a*^)~a*^*S 00:44:31 (z)x 00:44:52 what have I done wrong, I wonder? (that was my first attempt done in my head, no helper programs) 00:44:57 oh, nothing 00:44:59 ^ul (z)(y)(x)(~a:(~*a)~a*^)~a*^*SS 00:44:59 (z)x((z)y) 00:45:07 just didn't print out the stack properly 00:45:32 actually, I think I have one level of quoting too much 00:45:56 ^ul (z)(y)(x)(~a:(~*)~a*^)~a*^ 00:46:05 ^ul (z)(y)(x)(~a:(~*)~a*^)~a*^SSS 00:46:05 x(z)(z)y 00:46:14 yep, that looks right 00:46:18 ^ul (z)(y)(x)(~a:(~*)~a*^)~a*^aSaSaS 00:46:18 (x)((z))((z)y) 00:46:24 orby: there you go 00:47:09 or, hmm, (z) is still quoted too much 00:47:14 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 ^ul (z)(y)(x)(~:(a~*)~a*^)~a*^aSaSaS 00:47:20 (x)(z)((z)y) 00:47:20 there's no easy way to make it remember what I think instead of what it guesses. 00:47:29 ^ul (z)(y)(x)(~:(a~*)~a*^)~a*^^ 00:47:29 ...bad insn! 00:47:42 the x in orby's example wasn't in parens, so that runs it 00:47:46 ^ul (z)(y)(SS)(~:(a~*)~a*^)~a*^^ 00:47:46 z(z)y 00:47:51 and svn also does partial checkouts or partial read-only replication. 00:49:00 it's frustrating, I have ideas about how to write a VCS but am unlikely to actually write it 00:49:09 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 one thing I don't like about Mercurial is that branches are expensive 00:49:48 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 some of svn's features, like consecutive revision numbers, seem somewhat incompatible with typical DVCS usage patterns 00:50:27 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 this reminds me about my eso-idea of a git hash bruteforcer 00:50:58 so that the short hashes given to commits were in consecutive numerical order (possibly in decimal rather than hex) 00:51:10 i.e. the first revision is 0000001, the second is 0000002, and so on 00:51:27 yuck :) 00:51:27 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 maybe you could mess with the whitespace 00:52:50 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 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 I mod on a phpBB forum and I will normally edit messages down rather than delete them, for this reason 00:53:46 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 (if the content is inappropriate and needs to be removed) 00:53:51 just mess with the committer name ;-) 00:53:59 -!- delta23 has quit (Ping timeout: 260 seconds). 00:54:16 This message violates site rules and was deleted. — callforjudgement 00:54:27 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 you can avoid deleting, but how do you avoid adding? 00:54:44 do you quote it in a new message? 00:54:58 if a message needs to be repeated elsewhere, yes, quote 00:55:21 the nature of this forum is pretty specialised, though, and messages being posted in the wrong place are very rare 00:55:41 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 "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 [[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 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 all the nybbles are stored internally 00:57:14 ais523: yes, I know 00:57:46 ais523: I even have core.abbrev=16 in my global git settings 00:57:54 which makes it list 16 hexits by default 00:58:02 that's still not all of the hash, but better than 8 00:58:07 and for some purposes I make it list all the hexits 00:58:18 like when it needn't be human-readable, but stored for machines 00:58:23 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 git does that in its internal stuff too obviously, it's not that stupid 00:58:35 ais523: it can be nybble too, sure 00:58:59 hexit is the text format numeral, nybble is the actual number 00:59:26 anyway, an idea I had recently: using algebraic numbers as the internal numerical type for a language 00:59:38 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 ais523: that's actually rather hard to implement 01:00:10 but there are other choices for esoteric number systems that are easier to implement 01:00:15 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 it doesn't seem ridiculously hard to implement, just inefficient 01:00:47 oh if you don't implement < or rootof, then it's much easier 01:00:53 but then it's much harder to use for anything useful 01:01:01 because you can't get one of the square roots in any way 01:01:02 rootof effectively exists within this set of operations 01:01:11 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 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 no, you can only get all the roots of a polynomial nondeterministically, and you can't distingiush among algebraic conjugates 01:01:44 ais523: you can't even distinguish between sqrt(2) and sqrt(-2) 01:01:44 yes, you can't get at any specific root 01:01:51 But yeah, the formats look rather rigid. 01:01:52 ais523: I assume you have 1 as a built-in too, right? 01:02:00 Which is a good thing, of course. 01:02:11 b_jonas: you can distinguish between sqrt(2) and sqrt(-2), the former obeys X * X = 2, the latter doesn't 01:02:14 or... oh heck 01:02:19 you can't distinguish between sqrt(2) and -sqrt(2), though 01:02:22 ais523: yes, sorry, that 01:02:36 (I'm assuming that tree objects must contain entries in byte-based lexicographic order) 01:02:45 maybe you want to generate 1 from some polynomial equations or something, that's possible 01:02:45 unfortunately, you can't just store numbers as an entire set of conjugates 01:02:52 because say you have X * X = 2 and Y * Y = 2 01:03:05 then X + Y could nondeterministically be either 0 or sqrt(8) 01:03:07 later all 01:03:11 which are not conjugate to each other 01:03:13 orby: later 01:04:31 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 you don't actually need rootof as a primitive in a declarative language, if you have < and arithmetic 01:05:17 just assign to an equation 01:05:37 yeah, I guess in a declarative language you don't need it 01:05:46 but the interpreter has to implement it 01:06:14 and it's not rootof that's hard to impelement, it's < 01:06:26 yes 01:06:33 actually, < isn't even very well defined 01:06:40 why? 01:06:43 complex numbers 01:06:45 meh 01:06:51 you need some sort of norm< 01:06:52 I consider only real numbers 01:07:02 then it isn't algebraically closed any more 01:07:21 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 it doesn't have to be algebraically closed 01:07:45 you can simulate complex numbers from real numbers in user space 01:07:56 I mean if you have rootof, not just powers 01:08:19 complex numbers aren't really harder, they just complicate everything 01:08:27 or simplify, depending on which side you're looking form 01:08:28 what's the point of using algebraic numbers, if they don't give you an algebraically closed number system? 01:08:43 complicate if you have to implement stuff, simplify if you want to use it 01:08:53 yes, I guess you're right 01:08:56 so complexes 01:09:03 but then you probably want real part as a primitive too 01:09:13 and I guess i 01:09:19 so you can distinguish between +i and -i 01:09:26 but < might do that anyway 01:09:30 Over the reals you have tools for counting roots in an interval. 01:09:37 yes 01:09:37 How do you do that in the complex numbers? 01:09:45 int-e: there's probably tools for that oo 01:09:47 I was going to say, is there an equivalent for complex numbers? 01:09:49 they're just less elegant 01:09:57 I'm pretty sure root isolation in the complex numbers exists 01:10:03 ais523: probably 01:10:16 real numbers just have a nice elegant algorithm 01:10:20 well, elegant in theory 01:10:25 still a hell to work with 01:10:37 Wikipedia has an article on real-root isolation but not complex-root isolation 01:10:42 I've followed one algebraic number development where root separation was a reason for keeping algebraic numbers real. 01:11:30 (And deal with complex numbers as pairs of real algebraic numbers.) 01:11:35 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 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 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 without cube roots I do know an algorithm that I can explain 01:14:38 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 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 oh, that reminds me 01:16:03 does any of you happen to have a backup of Plouffe's inverter? it fell off the web 01:16:14 I don't need it for anything urgent, it would just be nice to have a backup 01:16:36 the old address was https://isc.carma.newcastle.edu.au/ 01:20:21 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 and I can tell why svn+distributed is hard to make work, but it's not the sequential version numbers 01:22:17 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 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 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 int-e: no, I actually haven't looked there 01:25:36 git was originally intended to be a VCS backend, rather than a VCS 01:25:45 I'm surprised there aren't more VCSes that use it like that 01:26:51 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 git is actually very bad at cherry-picks 01:27:18 ais523: it doesn't work as a backend for what I want, because it doesn't implement modifyable sparse checkouts 01:27:36 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 ais523: yes, svn is better. but it works in the principled environment of linux kernel environment 01:27:49 it often works in practice, but only due to hacks designed to merge two identical-looking changes into one 01:28:15 ais523: yes, that's sort of what I said above about not storing merge metadata 01:29:27 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 specifically svn adds merge tracking in svn 1.5, which was released ... when? 01:30:20 a moment, this is exactly something vcs should be able to tell 01:30:43 released in 2008 01:31:28 back long ago, when svn was not really ready, and the other contenders weren't anywhere, git was revolutionary 01:31:37 it just didn't get developed as much as svn later 01:31:38 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 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 Mercurial and git were developed at almost the same time, for the same reason 01:34:02 I technically used svn in 2008, but not for anything nontrivial, I mostly just checked stuff out 01:34:27 ais523: I admit I don't actually know the history, I'm just telling my impressoin 01:34:40 the Linux kernel used to use a proprietary VCS 01:34:41 -!- Arcorann_ has joined. 01:34:42 I don't know when git gained what features 01:34:59 yeah, I heard that, Linus decided to make his own tools, just like Knuth 01:35:03 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 and the company making it got mad 01:35:25 so there was demand for a replacement VCS in a hurry 01:35:31 because he wasn't satisifed with the existing tools 01:35:43 yeah 01:35:45 not so much "wasn't satisfied" as "was suddenly banned from using" 01:35:57 although, git is better for the Linux kernel than Perforce anyway 01:36:13 ais523: yeah 01:36:22 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 Linux was using BitKeeper, not Perforce. 01:37:08 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 fizzie: ah, OK 01:38:19 -!- Arcorann has quit (Ping timeout: 260 seconds). 01:42:59 huh, apparently BitKeeper ended up as open source 01:43:50 I was wondering what happened to it after the debalce in question 01:44:15 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 and I don't think this is a D&D heritage 01:45:13 there's a spelunky 2? 01:45:16 yes 01:45:18 it was released recently 01:45:33 for Playstation and Windows Steam 01:46:11 a nice game, very faithful to Spelunky HD, from its creator, a worthy sequel and good game 01:46:33 I saw someone on the Internet play Spelunky 2 just recently, and wondered about that. 01:46:47 Looked like it had a bit more branching in the sequence of levels or something. 01:46:50 I've seen much of it on twitch. I'm thoroughly spoiled of the known stuff now. 01:47:11 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 zone 2 is either jungle or volcano, zone 4 is either egypt-themed or water + east asia themed 01:49:40 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 well, four specific artifacts, but one you probably alwyas get anyway 01:50:14 the other three only has this one use 01:50:30 well, it's more complicated 01:50:55 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 it's a pretty nice design 01:51:25 and there are probably some secrets still not discovered, because the game and especially the Windows release is quite new 01:51:51 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 I should probably write a summary of the worlds at some point 01:52:48 mostly to me to understand it 01:52:54 because it's a pretty nice design 01:53:20 it seems surprisingly similar to Spelunky HD, more of an expansion pack than anything 01:53:28 perhaps it's a good thing that people release those as new versions, though 01:53:29 with like eleven different biomes (set of map tiles and enemies) 01:53:41 the old-fashioned way of doing games has been mostly abandoned nowadays 01:54:00 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 and many elements are taken from HD too, like many enemies and items and world themes 01:55:29 I've played the original (not HD) but I'm not all that good at it 01:55:40 I feel like I'd enjoy it more if it were turn-based, even though it's a platformer 01:56:04 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 b_jonas: yes, it's a very old-fashioned way to do a game sequel 01:56:36 I guess 01:56:41 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 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 they succeed, the game becomes a classic that only needs a few tweaks. 02:07:13 Well, many computer games made these days are not as good as before (although there are exceptions). 02:07:40 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 and I don't think so much about all the throwaway old games, only the ones that succeeded to become classics. 02:09:17 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 zzo38: there were many bad games before, too, but people don't remember them as well 02:09:45 (whereas Zelda: Breath of the Wild, which some people hastily declared the best game ever, will be forgotten) 02:09:52 ais523: yeah. 02:10:28 ais523: Yes, that is true. (And it happens with other works too.) 02:13:50 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 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 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 ball out in such a way that the widest glyphs are close to the equator 02:18:04 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 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 some of the details mentioned might be misremembered, but overall they're real typewriters 02:25:09 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 [[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 b_jonas: huh, do you not believe in washing machines? 02:33:59 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 zzo38: do you mean the mainline games like Sword/Shield, or side products like Pokemon Let's Go or Pokemon Go 02:35:22 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 b_jonas: I mean the mainline games; the side products are not separate. 02:37:07 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 by replay value I mostly mean grinding the postgame, rather than playing multiple times 02:38:28 (Also some games will improve some things, and make others worse.) 02:39:01 yes, I think actually every Pokémon game does this 02:39:21 it doesn't help that through much of the series' lifetime, Game Freak would create two Pokémon games in parallel 02:39:41 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 Yes, that it is. 02:46:13 (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 it is much more common for computer games to be too easy than too hard 02:48:23 Yes, it is. 02:55:22 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 or is that just happening to me 02:55:55 (don't have a concrete example right now I'm afraid) 02:56:41 I do not have a example either 02:58:56 But perhaps see https://allthetropes.org/wiki/Difficulty_Spike 03:12:47 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 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 [[!@$%^&*()+/Algorithms]] https://esolangs.org/w/index.php?diff=77889&oldid=77885 * SunnyMoon * (+100) Clarification 07:22:24 [[!@$%^&*()+/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 [[!@$%^&*()+/Algorithms]] https://esolangs.org/w/index.php?diff=77891&oldid=77890 * SunnyMoon * (+16) Clarification 07:34:26 [[!@$%^&*()+/Algorithms]] M https://esolangs.org/w/index.php?diff=77892&oldid=77891 * SunnyMoon * (+0) Capitalization 07:41:19 [[!@$%^&*()+/Algorithms]] https://esolangs.org/w/index.php?diff=77893&oldid=77892 * SunnyMoon * (+136) Added input storage 07:42:00 [[!@$%^&*()+/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 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 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 that phrase is never appropriate, and it's my pet peeve 09:28:59 I am surprised that nobody has mentioned the https://en.wikipedia.org/wiki/Availability_heuristic 09:31:38 -!- arseniiv has joined. 09:42:29 it seems TIME CUBE has some roots: https://en.wikipedia.org/wiki/Cubical_atom 09:43:31 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 all the freemasonry conspiracy theories of today are based on an ancient troll from 200 years ago 09:44:13 well, moreso ~125 years ago 09:44:18 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 ah, wrong channel 09:44:40 sorry 09:45:05 lol 09:45:49 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 noo :( 09:50:30 this is not a coincidence 09:54:22 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 or two glued circles. still with four corners 09:56:01 we shall leave this revelation private to this channel 09:56:50 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 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 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 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 which calendar? 10:02:47 some of the early christians believed in the book of enoch (c. Jude) 10:02:54 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 we need to convert to enoch cal next lol 10:03:05 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 b_jonas: enoch cal had that problem 10:03:41 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 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 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 Roman was never tied to astronomical stuff, pre-Julian it was always ad-hoc 10:06:09 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 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 make a virtual world which runs on a deterministic calendar 10:07:35 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 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 Like the Iranian calendar? 10:08:14 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 Arcorann_: yes, and those attempts can't work, because we can't predict how long days will last accurately enough 10:09:25 they're misguided toys designed by mathematically inclined people who don't understand the astronomical background 10:09:35 Agreed 10:09:44 whereas what I say is misguided for political and societal reasons, not for astronomical reasons 10:10:09 bb in a few hours 10:10:15 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 Year 144 of the Republican calendar 10:16:48 make a calendar w/ 10 days in a week 10:16:51 10 weeks per month 10:16:54 10 months per year 10:16:57 etc. 10:17:53 Someone's probably done that already 10:18:37 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 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 ago the dates mentioned were, which is often impossible because of the imprecise calendar keeping. 11:19:32 Have you read the Stephenson/Morrison/Hohenkirk paper? 11:20:57 [[User:ThisIsTheFoxe]] M https://esolangs.org/w/index.php?diff=77895&oldid=70128 * ThisIsTheFoxe * (+1) typo 11:22:50 *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 wib_jonas: https://academic.oup.com/mnras/article/417/4/2714/1095659 <-- if you want a laugh 11:42:58 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 Oh well 11:44:03 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 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 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 adding today's marketing keywords. 11:46:34 https://royalsocietypublishing.org/doi/10.1098/rspa.2016.0404 <-- anyway, here's the paper I mentioned earlier 11:47:39 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 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 I could probably ramble on for calendar-related topics about some time 12:00:26 Like calendar reform 12:02:00 Arcorann_: have you read these first? https://www.tondering.dk/claus/calendar.html http://www.quadibloc.com/science/calint.htm 12:02:21 Several times 12:02:37 ah good 12:02:50 there was a third one somewhere but I forgot 12:03:30 http://myweb.ecu.edu/mccartyr/calendar-reform.html <-- this, perhaps? 12:03:32 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 Arcorann_: no, I don't think I recall that one, thanks for the link 12:04:53 Hmm, wasn't there something from David Madore about the hebrew calendar too? 12:05:19 http://www.madore.org/~david/misc/calendar.html <-- this? 12:05:34 Wait, that page doesn't really cover Hebrew 12:07:44 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 http://hebrewcalendar.tripod.com <-- feel free to save this then 12:11:20 oh nice, thanks 12:14:06 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 Nice 12:19:29 https://individual.utoronto.ca/kalendis/ <-- if you haven't read this definitely worth saving as well 12:20:37 thanks, doesn't ring a bell either 12:32:40 I'll try to look at all those links later, but now I have some work to do 12:33:24 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 [[Sea]] https://esolangs.org/w/index.php?diff=77896&oldid=77887 * Orby * (+373) Clarifying and updating some simple translations 14:06:23 [[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 Greetings all 14:51:02 [[Sea]] https://esolangs.org/w/index.php?diff=77898&oldid=77896 * Orby * (+170) /* Commands */ 14:51:46 -!- adu has joined. 15:02:56 Hi orby 15:03:40 Hello :) 15:05:51 hm, i was recently pondering slightly on the formula fo Gregorian leap years 15:07:02 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 well, i was just thinking about checking whether a year is a leap year 15:08:15 it's not a complicated check, but was slightly interesting, from a logical point of view 15:09:42 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 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 at least it's much more stable then the fucking holidays and timezones 15:11:51 GregorianLeapYear(y) ⇔ 4 ∣ y ∧ ¬ (100 ∣ y ∧ 400 ∤ y) 15:12:47 ⇔ 4 ∣ y ∧ (100 ∤ y ∨ 400 ∣ y) 15:13:21 ⇔ (4 ∣ y ∧ 100 ∤ y) ∨ 400 ∣ y 15:13:48 ⇔ ¬ (4 ∤ y ∨ 100 ∣ y) ∨ 400 ∣ y 15:15:08 -!- Sgeo has joined. 15:15:38 ⇔ (4 ∣ y → 100 ∣ y) → 400 ∣ y 15:16:45 if we express ⌜A ∧ ¬ B⌝ ("⌜A⌝, but not ⌜B⌝","⌜A⌝, except if ⌜B⌝") as ⌜A ⤚ B⌝, then we can also say 15:17:02 ⇔ 4 ∣ y ⤚ (100 ∣ y ⤚ 400 ∣ y) 15:17:09 (so, it's an exception with an exception) 15:22:24 -!- arseniiv has joined. 15:27:21 (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 [[Sea]] https://esolangs.org/w/index.php?diff=77899&oldid=77898 * Orby * (-1033) Fixing mistakes 16:27:00 ski: you could also uncurry that 16:27:32 er, wait 16:48:32 -!- LKoen has joined. 16:55:10 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 `? mustard watch 17:12:58 `? mapole 17:12:58 A mustard watch is just a classical watch extended with a certain amount of mustard in the mechanism. 17:12:59 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 `? thwackamacallit 17:25:38 A thwackamacallit is like a whatchamacallit, but more painful. See mapole. 17:26:01 `? whatchamacallit 17:26:04 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 [[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 hi 20:50:04 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 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 yea (calculating it wasn't the issue) 22:01:53 Yes, although maybe it is related to the logic 22:28:16 -!- adu has quit (Quit: adu). 22:36:45 ` ? : ' is equivalent to ` ? : ' (modulo side-effects in `') ? 22:36:46 ? No such file or directory 22:38:28 Yes, that is how it works in GNU C (some features of GNU C are also implemented in clang, I think) 23:09:33 ok. i recall seeing it somewhere, but didn't look into the exact semantics 23:09:44 i guess it's like `or' in Scheme, then 23:10:30 -!- aaaaaa has joined. 23:11:31 Or the Perl ||. 23:37:18 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 hello 23:53:34 flower_corpse: hello 23:53:58 i like your name 23:55:53 -!- flower_corpse has left ("WeeChat 2.7.1"). 23:57:38 -!- adu has joined. 23:58:49 flower_corpse: I admire yours