< 1554511667 406004 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Read error: Connection reset by peer < 1554511696 314460 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1554511826 742210 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 250 seconds < 1554511842 112895 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 NICK :Lord_of_Life < 1554513421 770144 :Essadon!~Essadon@81-225-32-185-no249.tbcn.telia.com QUIT :Quit: Qutting < 1554513828 247133 :arseniiv!~arseniiv@136.169.200.69 QUIT :Ping timeout: 245 seconds < 1554514407 493696 :sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Quit: brb < 1554514513 786496 :sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1554515168 130809 :doesthis!47c1bd98@gateway/web/freenode/ip.71.193.189.152 JOIN :#esoteric < 1554515318 337041 :doesthis!47c1bd98@gateway/web/freenode/ip.71.193.189.152 PRIVMSG #esoteric :hi peeps, so where can I learn about category theory? < 1554515403 890072 :doesthis!47c1bd98@gateway/web/freenode/ip.71.193.189.152 PRIVMSG #esoteric :because today I met someone who said that they like types because of the commuting diagram of fold, and I want to be able to understand what they have in mind < 1554519419 234876 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :doesthis: Well, what kind of background do you have? Usually what I recommend generically is Steve Awodey's book "Category Theory", but while it has almost no prerequisites mathematically, it's definitely written in a style that might be uncomfortable if you're not used to reading mathematics. < 1554519481 771447 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :I'm not sure which commuting diagram that person would have been referring to, but there are some category theoretical approaches to discussing what folds are, via so-called "F-algebras" < 1554519554 933826 :doesthis!47c1bd98@gateway/web/freenode/ip.71.193.189.152 PRIVMSG #esoteric :F algebras look like the kind he had in mind < 1554519575 894222 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :(More precisely, that's a formulation of what "catamorphisms" are -- despite the name, that's a term from computer science and not category theory originally) < 1554519626 974286 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :There are a bunch of things programmers might refer to as folds which are not quite catamorphisms, and a bunch of things which are catamorphisms that most programmers might shy away from calling a fold at first. < 1554519627 496303 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net QUIT :Quit: Packing up computer stuff for moving < 1554519661 878980 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :"catamorphism" is a pointless term, just say "fold" hth < 1554519678 202485 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :haha, fair enough < 1554519678 784217 :doesthis!47c1bd98@gateway/web/freenode/ip.71.193.189.152 PRIVMSG #esoteric :I have great difficulty understanding abstractions unless I can keep in mind a particular instantiation of it < 1554519697 499604 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :What languages are you familiar with? Can I write some Haskell examples? < 1554519705 550799 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That one theorem that every initial F-algebra is an isomorphism is pretty good. < 1554519708 495726 :doesthis!47c1bd98@gateway/web/freenode/ip.71.193.189.152 PRIVMSG #esoteric :Haskell is fine < 1554519719 252511 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :Okay, so suppose we have a type like this: < 1554519749 805477 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :data Nature a = Rock | Stream a (Nature a) | Bush (Nature a) (Nature a) < 1554519780 966051 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :(It's intentionally a bit weird just to give some different cases :) < 1554519822 154332 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :So, one of the most common patterns that comes up in programming with algebraic data types is to just replace each constructor throughout with another specified value < 1554519845 221896 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :So for example, we might usefully provide: < 1554519858 675413 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :foldNature rock stream bush = f < 1554519862 534770 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric : where < 1554519868 246640 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric : f Rock = rock < 1554519883 70907 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric : f (Stream x n) = stream x (f n) < 1554519901 758432 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric : f (Bush n n') = bush (f n) (f n') < 1554519942 986916 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :i.e. the resulting function f will go through a Nature value and replace each occurrence of Rock with rock, Stream with stream, and Bush with bush < 1554519965 910809 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :If we do this thing for lists, that's a (right) fold < 1554520009 384664 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :It replaces each cons in the list with some specified function, and the empty list at the end (if any) with a specified value < 1554520055 986677 :doesthis!47c1bd98@gateway/web/freenode/ip.71.193.189.152 PRIVMSG #esoteric :that sounds like fold < 1554520060 274792 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :yeah < 1554520113 793529 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :These functions, which are uniquely determined by the type in some sense that can be made more precise, are called catamorphisms (or perhaps just folds) < 1554520140 371479 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :But note that this doesn't get us the left fold on the list type, that one is something less natural. < 1554520185 54487 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :and in general, it doesn't immediately get us a way to sequentialise the elements of a type, like some generalised notions people have called "fold" would < 1554520198 684921 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :It's just about substituting structure < 1554520310 43240 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :One idea for getting at this in a more general way is to make the recursion in the data type more explicit < 1554520328 947145 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :We could start with some type which was abstracted over the places where we were going to be recursive: < 1554520350 400161 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :data Nature a n = Rock | Stream a n | Bush n n < 1554520366 500202 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :and then write a type-level fixed point: < 1554520390 834951 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :newtype Fix f = In (f (Fix f)) < 1554520408 664685 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :out :: Fix f -> f (Fix f) < 1554520413 626345 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :out (In x) = x < 1554520439 816751 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :So that now Fix (Nature a) becomes equivalent to our original type < 1554520452 502726 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :(with a lot of noisy In's) < 1554520540 570692 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :Now, think about a function of type Nature a b -> b < 1554520570 915161 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :Such a function is kind of like the specification of our three arguments in the above thing, rock, stream, and bush < 1554520601 120716 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :In particular, if we have some h :: Nature a b -> b < 1554520665 360868 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :Well, let's say it the other way, if we wanted to specify such a function h, we could do it as follows: < 1554520671 335756 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :h Rock = rock < 1554520709 681052 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :h (Stream x n) = stream x n -- no recursion now < 1554520719 922723 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :h (Bush n n') = bush n n' < 1554520740 246353 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :Choosing such a rock, stream, and bush will uniquely determine which function h is. < 1554520752 959500 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :since these generically handle all the cases < 1554520785 981579 :doesthis!47c1bd98@gateway/web/freenode/ip.71.193.189.152 PRIVMSG #esoteric :that makes sense but I'm going to have to spend time on understanding Fix < 1554520795 753079 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :So a single function of type (Nature a b -> b), using this non-recursive version of Nature is a way of capturing all the arguments we would have given to the fold < 1554520863 827443 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :and then there's a way to generically write a fold which will work on types that are expressed in this way (so long as it turns out that the type we're taking the fixed point of is a Functor) < 1554520884 873215 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :Right, let's look at Fix a bit more carefully < 1554520917 121561 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :So, before, we might've written some value like Bush (Stream 1 (Stream 2 Rock)) (Stream 3 Rock) < 1554520975 254810 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :With the Fix version, each "In" gets us another level deeper, basically, so with that approach, the corresponding value would look like: < 1554521013 125564 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :In (Bush (In (Stream 1 (In (Stream 2 (In Rock))))) (In (Stream 3 (In Rock)))) < 1554521050 894991 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric ::: Fix (Nature Integer) < 1554521070 485486 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :(sorry for not naming them differently, I didn't feel like writing primes everywhere today) < 1554521126 685328 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :In :: Nature a (Fix (Nature a)) -> Fix (Nature a) < 1554521135 426676 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :or more generally < 1554521141 709996 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :In :: f (Fix f) -> Fix f < 1554521176 685194 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :So it's possible to write: < 1554521188 18586 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :cata :: Functor f => (f a -> a) -> Fix f -> a < 1554521225 230967 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :nyancata < 1554521239 407265 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :cata h (In x) = h (fmap (cata h) x) < 1554521249 485726 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :or slightly more fancily < 1554521263 240070 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :cata h = h . fmap (cata h) . out < 1554521298 524911 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :So this Functor bit is the category theory creeping its way in a little < 1554521367 998282 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :From a programmer's perspective, the (Functor f) just expresses the constraint that we need a way to take any function, say of type a -> b, and some value of type f a, and obtain a value of type f b < 1554521378 454197 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :i.e. we can turn functions of type a -> b into functions of type f a -> f b < 1554521429 847355 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :You pick any such type f, and then its fixed point has some notion of fold, given by that 'cata' thing < 1554521452 357181 :doesthis!47c1bd98@gateway/web/freenode/ip.71.193.189.152 PRIVMSG #esoteric :ok < 1554521544 579097 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :There's a bit more going on there that you can tease out, but that's really the gist of it < 1554521557 149654 :doesthis!47c1bd98@gateway/web/freenode/ip.71.193.189.152 PRIVMSG #esoteric :thank you < 1554521596 166529 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :Usually when I actually use this stuff, I much prefer the definitions like foldNature to the fully generic thing < 1554521616 940604 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :But having such a function is very often useful < 1554521637 467721 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com PRIVMSG #esoteric :(especially when the type is actually recursive, but sometimes even when it's not!) < 1554521953 150282 :doesthis!47c1bd98@gateway/web/freenode/ip.71.193.189.152 QUIT :Ping timeout: 256 seconds > 1554521955 57226 PRIVMSG #esoteric :14[[07User:YamTokTpaFa/sandbox14]]4 10 02https://esolangs.org/w/index.php?diff=60912&oldid=60909 5* 03YamTokTpaFa 5* (+301) 10/* Specifications */ > 1554521970 885654 PRIVMSG #esoteric :14[[07User:YamTokTpaFa/sandbox14]]4 10 02https://esolangs.org/w/index.php?diff=60913&oldid=60912 5* 03YamTokTpaFa 5* (+1) 10/* = Operating content of file */ < 1554522879 141219 :FreeFull!~freefull@defocus/sausage-lover QUIT : < 1554523106 112412 :sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Quit: Lost terminal < 1554523157 842740 :sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1554539690 255337 :AnotherTest!~turingcom@d51A4B8E1.access.telenet.be JOIN :#esoteric < 1554540052 871078 :LKoen!~LKoen@2a01cb0407597a00d971aa3ecb2e0e1a.ipv6.abo.wanadoo.fr JOIN :#esoteric < 1554541718 876280 :LKoen!~LKoen@2a01cb0407597a00d971aa3ecb2e0e1a.ipv6.abo.wanadoo.fr QUIT :Remote host closed the connection < 1554541890 596578 :b_jonas!~x@catv-176-63-24-182.catv.broadband.hu JOIN :#esoteric < 1554542277 685345 :orbitaldecay!~orbitalde@c-68-33-90-136.hsd1.md.comcast.net JOIN :#esoteric < 1554542452 145984 :orbitaldecay_!~orbitalde@c-68-33-90-152.hsd1.md.comcast.net QUIT :Ping timeout: 245 seconds < 1554543025 57860 :LKoen!~LKoen@2a01cb0407597a00a0cc757476426ab9.ipv6.abo.wanadoo.fr JOIN :#esoteric < 1554543050 265935 :LKoen!~LKoen@2a01cb0407597a00a0cc757476426ab9.ipv6.abo.wanadoo.fr QUIT :Read error: Connection reset by peer < 1554548682 28023 :b_jonas!~x@catv-176-63-24-182.catv.broadband.hu PRIVMSG #esoteric :`? banana < 1554548683 73122 :HackEso!~HackEso@techne.zem.fi PRIVMSG #esoteric :Bananananananana BATMAN! < 1554548685 865391 :b_jonas!~x@catv-176-63-24-182.catv.broadband.hu PRIVMSG #esoteric :`? lens < 1554548687 66358 :HackEso!~HackEso@techne.zem.fi PRIVMSG #esoteric :A lens is just a store comonad coalgebra. < 1554550006 774162 :xkapastel!uid17782@gateway/web/irccloud.com/x-upumxhabldocalmr JOIN :#esoteric < 1554550378 276089 :AnotherTest!~turingcom@d51A4B8E1.access.telenet.be QUIT :Ping timeout: 245 seconds < 1554553534 596590 :arseniiv!~arseniiv@136.169.200.69 JOIN :#esoteric < 1554555006 266927 :Essadon!~Essadon@81-225-32-185-no249.tbcn.telia.com JOIN :#esoteric < 1554555024 219179 :Essadon!~Essadon@81-225-32-185-no249.tbcn.telia.com QUIT :Max SendQ exceeded < 1554555085 816274 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1554555119 139951 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 258 seconds < 1554555153 511173 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 NICK :Lord_of_Life < 1554555937 535189 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric < 1554557791 326749 :xkapastel!uid17782@gateway/web/irccloud.com/x-upumxhabldocalmr QUIT :Quit: Connection closed for inactivity < 1554563360 782222 :zzo38!~zzo38@24-207-15-213.eastlink.ca JOIN :#esoteric < 1554564245 450223 :xkapastel!uid17782@gateway/web/irccloud.com/x-vetqvzzoujwbbltt JOIN :#esoteric < 1554566494 66572 :MDude!~MDude@71.50.54.203 QUIT :Quit: Going offline, see ya! (www.adiirc.com) < 1554569691 765840 :tromp_!~tromp@ip-217-103-3-94.ip.prioritytelecom.net QUIT :Remote host closed the connection < 1554571218 817394 :MDude!~MDude@c-174-55-125-31.hsd1.pa.comcast.net JOIN :#esoteric < 1554571857 278355 :tromp!~tromp@ip-217-103-3-94.ip.prioritytelecom.net JOIN :#esoteric < 1554572122 269575 :tromp!~tromp@ip-217-103-3-94.ip.prioritytelecom.net QUIT :Ping timeout: 246 seconds < 1554572477 752560 :tromp!~tromp@ip-217-103-3-94.ip.prioritytelecom.net JOIN :#esoteric < 1554572628 105913 :int-e!~noone@int-e.eu PRIVMSG #esoteric :shachaf: erghea bs fpravp cbaq was quite good. (I had the right idea for the raqtnzr very soon, but arranging the required bireynl took quite some effort) < 1554573628 509723 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1554574182 174860 :tromp!~tromp@ip-217-103-3-94.ip.prioritytelecom.net QUIT :Remote host closed the connection < 1554574797 20192 :nfd!~nfd9001@c-73-157-90-101.hsd1.wa.comcast.net JOIN :#esoteric < 1554574957 824615 :nfd9001!~nfd9001@c-73-157-90-101.hsd1.wa.comcast.net QUIT :Ping timeout: 268 seconds < 1554575394 938099 :tromp!~tromp@ip-217-103-3-94.ip.prioritytelecom.net JOIN :#esoteric < 1554575571 854534 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :Hello < 1554575741 120635 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :hi < 1554575970 263779 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :Do you like Digi-RGB and IMIDI? < 1554576154 809601 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :no < 1554576159 247233 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :i dont work with anything like that < 1554576250 618982 :tromp!~tromp@ip-217-103-3-94.ip.prioritytelecom.net QUIT :Remote host closed the connection < 1554576475 460344 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :A format could also be made up for transmitting IMIDI messages with infrared signals; in this way the signal is one way (wired IMIDI is two ways), but the infrared can also include a device number, maybe three bits device number. < 1554576819 998127 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :what is IMIDI and Digi-RGB < 1554577201 217391 :AnotherTest!~turingcom@d51A4B8E1.access.telenet.be JOIN :#esoteric < 1554578018 598038 :j-bot!eldis4@firefly.nu JOIN :#esoteric < 1554578432 585702 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :It is something I invented; Digi-RGB is a video signal (one way only), having several balanced pairs, which is clock, vsync, red, green, blue; at first I had four of each red/green/blue so that there are two clock cycles per pixel, but someone suggested making it more serialized to have less pins and more clock cycles per pixel. < 1554578515 74324 :tromp!~tromp@ip-217-103-3-94.ip.prioritytelecom.net JOIN :#esoteric < 1554578516 606099 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :IMIDI is a kind of two way MIDI, and is not only for music it can be used for many kind of stuff including television. Most commands are like MIDI, although the format of SysEx payloads is different (the framing is the same though), and a few other commands for device selection (a device address is a sequence of 7-bit numbers) < 1554578527 134707 :economicsbat!~eb@128.199.111.33 QUIT :Ping timeout: 245 seconds < 1554578624 601733 :economicsbat!~eb@128.199.111.33 JOIN :#esoteric < 1554581983 582763 :FreeFull!~freefull@defocus/sausage-lover QUIT :Read error: Connection reset by peer < 1554582006 540194 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric < 1554582542 192582 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :int-e: It wa pretty clear that you had to use the cevfba trick, but the fact that you had to use it twice (with grkg vf qrsrng) was sneaky. < 1554582628 891934 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :How many clock cycles per pixel do you think should be in Digi-RGB? The more clock cycles per pixel, the slower frame rate it can handle and the more complicated the protocol becomes, but it also makes the cable simpler because it needs less pins. < 1554582703 902318 :int-e!~noone@int-e.eu PRIVMSG #esoteric :shachaf: I think I only used it once in the end. < 1554582733 634628 :int-e!~noone@int-e.eu PRIVMSG #esoteric :ACTION is looking at the tnyyrel now. < 1554582791 109195 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, maybe it was a different solution. < 1554582831 42659 :int-e!~noone@int-e.eu PRIVMSG #esoteric :shachaf: grkg vf qrsrng was definitely involved < 1554582885 513009 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Hmm, maybe I only used it once too. < 1554582988 865321 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :No, I don't think so. I'm not sure what your solution is. < 1554583088 48350 :int-e!~noone@int-e.eu PRIVMSG #esoteric :shachaf: https://int-e.eu/~bf3/tmp/baba-critical{,2}.png is the critical moment (spoiler alert, obviously) < 1554583164 332071 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Those both look like screenshots of the beginning of the level. < 1554583180 84022 :int-e!~noone@int-e.eu PRIVMSG #esoteric :huh. that's strange. let me try that again < 1554583215 382960 :int-e!~noone@int-e.eu PRIVMSG #esoteric :there, fixed. < 1554583266 277199 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'd call that a use of the cevfba trick. < 1554583276 693778 :int-e!~noone@int-e.eu PRIVMSG #esoteric :yeah but it's the only one < 1554583284 571648 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, huh. < 1554583307 126633 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(as usualy you may be counting things differently) < 1554583311 481586 :int-e!~noone@int-e.eu PRIVMSG #esoteric :... usual < 1554583313 4147 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :You didn't do onon vf sybng? < 1554583322 888688 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I get it. < 1554583325 923732 :int-e!~noone@int-e.eu PRIVMSG #esoteric :no. < 1554583360 657253 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I had convinced myself that was impossible. < 1554583369 985069 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Wait, no. How do you get past the skull? < 1554583441 777015 :int-e!~noone@int-e.eu PRIVMSG #esoteric :V chfu xrxr ba gbc bs gur fxhyy, juvpu perngrf obgu xrxr naq onon va gung cynpr; V pna zbir bar hcjneqf gb chfu gur synt qbja naq gur bgure bar fgenvtug gb gur evtug. < 1554583670 483996 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That's quite different from using the float. < 1554583953 597841 :economicsbat!~eb@128.199.111.33 QUIT :Ping timeout: 250 seconds < 1554583969 317184 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Yeah. As I said, I couldn't make that work. Still can't, for that matter. < 1554584097 758233 :economicsbat!~eb@128.199.111.33 JOIN :#esoteric < 1554584616 629862 :int-e!~noone@int-e.eu PRIVMSG #esoteric :shachaf: The thing is, destroying the 'is' on the right is the only way I see to get enough material for setting up any kind of overlay in the first place. < 1554584619 920476 :int-e!~noone@int-e.eu PRIVMSG #esoteric :... < 1554584639 922119 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(I meant to rot13 that) < 1554584659 302495 :AnotherTest!~turingcom@d51A4B8E1.access.telenet.be QUIT :Ping timeout: 246 seconds < 1554584879 647260 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think the trick there is gb chfu nyy gur grkg gb gur evtug, arkg gb gur jnyy. < 1554584902 603774 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I should finish this game, I still have some levels left. < 1554585256 845413 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I have 220/11/3 now. (The /3 has a spoiler in the changelog) < 1554585272 976827 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I'm missing something in zrgn, apparently. < 1554585524 46396 :orbitaldecay_!~orbitalde@c-68-33-90-248.hsd1.md.comcast.net JOIN :#esoteric < 1554585726 683161 :orbitaldecay!~orbitalde@c-68-33-90-136.hsd1.md.comcast.net QUIT :Ping timeout: 264 seconds < 1554586267 712026 :int-e!~noone@int-e.eu PRIVMSG #esoteric :shachaf: ah. got it. tricky solution :) < 1554586315 209913 :int-e!~noone@int-e.eu PRIVMSG #esoteric :("it" being your kind of solution for erghea bs fpravp cbaq) < 1554586430 957667 :xkapastel!uid17782@gateway/web/irccloud.com/x-vetqvzzoujwbbltt QUIT :Quit: Connection closed for inactivity < 1554586952 75818 :MDude!~MDude@c-174-55-125-31.hsd1.pa.comcast.net QUIT :Ping timeout: 245 seconds < 1554587177 305735 :xkapastel!uid17782@gateway/web/irccloud.com/x-ojrciygghnzqhjqw JOIN :#esoteric < 1554587920 50112 :arseniiv!~arseniiv@136.169.200.69 PRIVMSG #esoteric :wow, just have seen a textbook on logic where the author names variables V|V, V||V, V|||V and so on (though no VV—why?..). I guess they wasn’t pleased with more or less standard v, v′, v′′, v′′′… but I think the result is unjustly rough on the reader < 1554587922 953374 :b_jonas!~x@catv-176-63-24-182.catv.broadband.hu PRIVMSG #esoteric :`? master disco < 1554587924 57546 :HackEso!~HackEso@techne.zem.fi PRIVMSG #esoteric :master disco? ¯\(°​_o)/¯ < 1554587984 306232 :moei!~moei@softbank221078042071.bbtec.net JOIN :#esoteric < 1554587988 881670 :arseniiv!~arseniiv@136.169.200.69 PRIVMSG #esoteric :I guess they wanted no variable name contained in any other name, though I don’t see how it will make sufficiently many things sufficiently easier < 1554588054 305870 :b_jonas!~x@catv-176-63-24-182.catv.broadband.hu PRIVMSG #esoteric :that's not enough though if you want full Incident rules < 1554588096 726601 :arseniiv!~arseniiv@136.169.200.69 PRIVMSG #esoteric :I could stand string languages for logic textbooks, but this is too much. One should teach that terms and formulas are trees, and that we aren’t interested in the set of allowed variable names any more than it is recursive enumerable < 1554588161 216354 :arseniiv!~arseniiv@136.169.200.69 PRIVMSG #esoteric :b_jonas: that's not enough though if you want full Incident rules => maybe the reasons are ever less sesible, I didn’t read that book far. This was pretty enough < 1554588659 596316 :arseniiv!~arseniiv@136.169.200.69 QUIT :Ping timeout: 250 seconds < 1554590411 336651 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :I followed a link on a webpage and got this: {"message":"Content not available.","code":"404","raw":"{\"message\":\"Content doesn't exist\",\"code\":404}"} What is the purpose of the raw copy included? < 1554590651 843685 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :(Except the raw isn't quoting 404, and the message is different too, and those thing is seem strange to me) < 1554590740 837380 :b_jonas!~x@catv-176-63-24-182.catv.broadband.hu PRIVMSG #esoteric :> fix (\m -> "{\"message\":\"Content not available.\",\"code\":\"404\",\"raw\":" ++ show m ++ "}") < 1554590742 828633 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : "{\"message\":\"Content not available.\",\"code\":\"404\",\"raw\":\"{\\\"mes... < 1554590752 354925 :b_jonas!~x@catv-176-63-24-182.catv.broadband.hu PRIVMSG #esoteric :> var $ fix (\m -> "{\"message\":\"Content not available.\",\"code\":\"404\",\"raw\":" ++ show m ++ "}") < 1554590754 136206 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : {"message":"Content not available.","code":"404","raw":"{\"message\":\"Conte... < 1554590947 97499 :b_jonas!~x@catv-176-63-24-182.catv.broadband.hu PRIVMSG #esoteric :`perl -e sub w{q/{"message":"Content not available.","code":"404","raw":"/.$_[0]=~s/([\"\\])/\\$1/gr.q/"}/}; $s="";$s=w($s) for 0..8; print$s,"\n"; < 1554590947 779657 :HackEso!~HackEso@techne.zem.fi PRIVMSG #esoteric :​{"message":"Content not available.","code":"404","raw":"{\"message\":\"Content not available.\",\"code\":\"404\",\"raw\":\"{\\\"message\\\":\\\"Content not available.\\\",\\\"code\\\":\\\"404\\\",\\\"raw\\\":\\\"{\\\\\\\"message\\\\\\\":\\\\\\\"Content not available.\\\\\\\",\\\\\\\"code\\\\\\\":\\\\\\\"404\\\\\\\",\\\\\\\"raw\\\\\\\":\\\\\\\"{\\\\\\\\\\\\\\\"message\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"Content not available.\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\ < 1554591011 340623 :b_jonas!~x@catv-176-63-24-182.catv.broadband.hu PRIVMSG #esoteric :`perl -e sub w{q/{"message":"Content not available.","code":"404","raw":"/.$_[0]=~s/"/\\"/gr=~s/\\/\\x5C/gr.q/"}/}; $s="";$s=w($s) for 0..8; print$s,"\n"; < 1554591012 104291 :HackEso!~HackEso@techne.zem.fi PRIVMSG #esoteric :​{"message":"Content not available.","code":"404","raw":"{\x5C"message\x5C":\x5C"Content not available.\x5C",\x5C"code\x5C":\x5C"404\x5C",\x5C"raw\x5C":\x5C"{\x5Cx5C\x5C"message\x5Cx5C\x5C":\x5Cx5C\x5C"Content not available.\x5Cx5C\x5C",\x5Cx5C\x5C"code\x5Cx5C\x5C":\x5Cx5C\x5C"404\x5Cx5C\x5C",\x5Cx5C\x5C"raw\x5Cx5C\x5C":\x5Cx5C\x5C"{\x5Cx5Cx5C\x5Cx5C\x5C"message\x5Cx5Cx5C\x5Cx5C\x5C":\x5Cx5Cx5C\x5Cx5C\x5C"Content not available.\x5Cx5Cx5C\x5Cx5C\x5C",\x5 < 1554591840 3889 :Sgeo__!~Sgeo@ool-18b98dd9.dyn.optonline.net JOIN :#esoteric < 1554592027 81400 :Sgeo_!~Sgeo@ool-18b98dd9.dyn.optonline.net QUIT :Ping timeout: 245 seconds < 1554592039 846512 :b_jonas!~x@catv-176-63-24-182.catv.broadband.hu QUIT :Quit: leaving < 1554592411 326717 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :is everyone excited for the GPS week field rollover in ~47 minutes? < 1554592426 464162 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :midnite UTC < 1554593091 54548 :int-e!~noone@int-e.eu PRIVMSG #esoteric :what's the worst that could happen, hmm < 1554593253 621039 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Oh there's an article in the news warning that old car GPS systems may fail. That's something. < 1554593712 917064 :oerjan!oerjan@sprocket.nvg.ntnu.no JOIN :#esoteric < 1554594271 710312 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Read error: Connection reset by peer < 1554594830 894131 :xkapastel!uid17782@gateway/web/irccloud.com/x-ojrciygghnzqhjqw QUIT :Quit: Connection closed for inactivity < 1554595194 809764 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :ONE MINUTE TILL MIDNIGHT