←2020-10-08 2020-10-09 2020-10-10→ ↑2020 ↑all
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: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: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: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: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: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 */
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: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: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: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.
20:23:08 <user3456> hi
20:50:04 <zzo38> Do you like solar hijri calendar?
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: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").