< 1587254435 392260 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :OK < 1587254449 55514 :Umbrage!ca9a9b1a@202-154-155-26.ubs-dynamic.connections.net.nz PRIVMSG #esoteric :O.K. < 1587254483 455812 :Umbrage!ca9a9b1a@202-154-155-26.ubs-dynamic.connections.net.nz PRIVMSG #esoteric :For simplicity, XOR is [ A NAND ( A NAND B ) ] NAND < 1587254493 368410 :Umbrage!ca9a9b1a@202-154-155-26.ubs-dynamic.connections.net.nz PRIVMSG #esoteric :NAND logic and all that. < 1587254506 450523 :Umbrage!ca9a9b1a@202-154-155-26.ubs-dynamic.connections.net.nz PRIVMSG #esoteric :I think it's turing complete. < 1587254527 563961 :heroux!sandroco@gateway/shell/insomnia247/x-lfureqhxxlxpmzkf QUIT :Ping timeout: 258 seconds < 1587254537 977198 :Umbrage!ca9a9b1a@202-154-155-26.ubs-dynamic.connections.net.nz PRIVMSG #esoteric :I can prove turing completeness for half of all computable problems, but I don't have a proof of the others. < 1587254567 349758 :Umbrage!ca9a9b1a@202-154-155-26.ubs-dynamic.connections.net.nz PRIVMSG #esoteric :Specifically, problems with odd numbers of instructions are the issue. < 1587254574 669556 :Umbrage!ca9a9b1a@202-154-155-26.ubs-dynamic.connections.net.nz PRIVMSG #esoteric :Any ideas on how to prove it? < 1587254644 641219 :Umbrage!ca9a9b1a@202-154-155-26.ubs-dynamic.connections.net.nz QUIT :Remote host closed the connection < 1587255538 218269 :heroux!sandroco@gateway/shell/insomnia247/x-dwywmxfdvivmzkev JOIN :#esoteric < 1587258265 793437 :heroux!sandroco@gateway/shell/insomnia247/x-dwywmxfdvivmzkev QUIT :Ping timeout: 264 seconds < 1587258647 924129 :heroux!sandroco@gateway/shell/insomnia247/x-gaqpstbjbamwsosv JOIN :#esoteric < 1587259010 111845 :heroux!sandroco@gateway/shell/insomnia247/x-gaqpstbjbamwsosv QUIT :Ping timeout: 265 seconds < 1587259355 948407 :heroux!sandroco@gateway/shell/insomnia247/x-phsdpxjhezmvazjv JOIN :#esoteric < 1587261674 881372 :Phantom___Hoover!~phantomho@82.27.195.88 JOIN :#esoteric < 1587262546 813685 :craigo!~craigo@144.136.206.168 JOIN :#esoteric < 1587263439 519119 :LKoen!~LKoen@lstlambert-657-1-123-43.w92-154.abo.wanadoo.fr QUIT :Read error: Connection reset by peer < 1587263470 231660 :LKoen!~LKoen@81.255.219.130 JOIN :#esoteric < 1587264672 74980 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Why is the Adobe font metric format not like a PostScript format? I think the TeX font format is better. Some people say that METAFONT doesn't do outline fonts or hinting, but actually it does both. The mainly problem with TeX fornat is the limits, and the kerning/ligature programs can't look ahead more than one character, but the Adobe format seems to be similarly limited from what I can see. < 1587264733 36201 :LKoen!~LKoen@81.255.219.130 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.” < 1587265522 897270 :Phantom___Hoover!~phantomho@82.27.195.88 QUIT :Ping timeout: 256 seconds < 1587265773 87608 :tromp!~tromp@2a02:a210:ca3:2800:91cd:1330:4171:a115 QUIT :Remote host closed the connection < 1587270530 41049 :MDude!~MDude@74.5.130.30 QUIT :Ping timeout: 256 seconds < 1587272333 87724 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :This is the Magic: the Gathering major template for TeXnicard so far: http://zzo38computer.org/fossil/texnicard.ui/dir?ci=tip&name=templates/magic Do you have any comments/complaints of it please? < 1587275534 875082 :tromp!~tromp@2a02:a210:ca3:2800:8d4e:d35a:4988:7053 JOIN :#esoteric < 1587275816 865859 :tromp!~tromp@2a02:a210:ca3:2800:8d4e:d35a:4988:7053 QUIT :Ping timeout: 246 seconds < 1587276811 252703 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-fxmbgdseweobncjt QUIT :*.net *.split < 1587276811 567147 :APic!apic@apic.name QUIT :*.net *.split < 1587276922 546571 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-fxmbgdseweobncjt JOIN :#esoteric < 1587276922 546640 :APic!apic@apic.name JOIN :#esoteric < 1587277151 892181 :batman_nair!~batman_na@103.228.221.83 JOIN :#esoteric < 1587277271 327940 :batman_nair!~batman_na@103.228.221.83 QUIT :Remote host closed the connection > 1587278509 307683 PRIVMSG #esoteric :14[[07Truth-machine14]]4 10 02https://esolangs.org/w/index.php?diff=71227&oldid=71181 5* 03YamTokTpaFa 5* (+112) 10/* Pxem */ < 1587278804 334628 :tromp!~tromp@2a02:a210:ca3:2800:8d4e:d35a:4988:7053 JOIN :#esoteric < 1587279073 316586 :tromp!~tromp@2a02:a210:ca3:2800:8d4e:d35a:4988:7053 QUIT :Ping timeout: 272 seconds < 1587280227 984285 :tromp!~tromp@2a02:a210:ca3:2800:8d4e:d35a:4988:7053 JOIN :#esoteric < 1587281807 374566 :user24!~user24@2a02:810a:1440:7304:41eb:e44f:bad7:2bce JOIN :#esoteric < 1587283382 494601 :kspalaiologos!~kspalaiol@176.221.122.71 JOIN :#esoteric > 1587284741 867926 PRIVMSG #esoteric :14[[07Functasy14]]4 10 02https://esolangs.org/w/index.php?diff=71228&oldid=65706 5* 03Hakerh400 5* (+7289) 10Add better highlighting < 1587285110 335887 :heroux!sandroco@gateway/shell/insomnia247/x-phsdpxjhezmvazjv QUIT :Ping timeout: 265 seconds < 1587285501 66212 :heroux!sandroco@gateway/shell/insomnia247/x-ysbhnnoftdnfejso JOIN :#esoteric > 1587286875 507171 PRIVMSG #esoteric :14[[07Ral14]]4 10 02https://esolangs.org/w/index.php?diff=71229&oldid=68419 5* 03Herman-L 5* (+1436) 10 < 1587286945 459755 :batman_nair!~batman_na@103.228.221.83 JOIN :#esoteric < 1587288523 285472 :heroux!sandroco@gateway/shell/insomnia247/x-ysbhnnoftdnfejso QUIT :Read error: Connection reset by peer < 1587288574 591375 :heroux!sandroco@gateway/shell/insomnia247/x-vsgpvmyctwcawavq JOIN :#esoteric < 1587289050 232066 :heroux!sandroco@gateway/shell/insomnia247/x-vsgpvmyctwcawavq QUIT :Read error: Connection reset by peer < 1587289501 983994 :heroux!sandroco@gateway/shell/insomnia247/x-mpapssivhpvmqamg JOIN :#esoteric < 1587289730 862755 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 256 seconds < 1587289829 435482 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric > 1587290427 37083 PRIVMSG #esoteric :14[[07Babalang14]]4 10 02https://esolangs.org/w/index.php?diff=71230&oldid=71119 5* 03RocketRace 5* (+2291) 10Document GROUP > 1587290596 787911 PRIVMSG #esoteric :14[[07User talk:RocketRace14]]4 M10 02https://esolangs.org/w/index.php?diff=71231&oldid=71105 5* 03RocketRace 5* (+161) 10 < 1587290605 71004 :Phantom___Hoover!~phantomho@82.27.195.88 JOIN :#esoteric < 1587290615 89162 :rain1!~debian@unaffiliated/rain1 JOIN :#esoteric < 1587291373 532177 :batman_nair!~batman_na@103.228.221.83 QUIT :Quit: Leaving < 1587291379 308738 :imode!~linear@unaffiliated/imode QUIT :Ping timeout: 260 seconds < 1587292307 376618 :mra90!Martin@nat/intel/x-cfjznfrnqplsfvwi PART #esoteric :"Leaving" > 1587293640 201428 PRIVMSG #esoteric :14[[07Babalang14]]4 10 02https://esolangs.org/w/index.php?diff=71232&oldid=71230 5* 03RocketRace 5* (+4447) 10Document LEVEL and IMAGE > 1587293820 961967 PRIVMSG #esoteric :14[[07Babalang14]]4 10 02https://esolangs.org/w/index.php?diff=71233&oldid=71232 5* 03RocketRace 5* (+225) 10Document EMPTY < 1587293873 349366 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Hah @xkcd. < 1587293904 756219 :int-e!~noone@int-e.eu PRIVMSG #esoteric :. o O ( So... statistics is the art of refining garbage into something resembling reliable data. ) < 1587293907 760997 :int-e!~noone@int-e.eu PRIVMSG #esoteric :`? statistics < 1587293910 374632 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :statistics? ¯\(°​_o)/¯ < 1587294081 627604 :rain1!~debian@unaffiliated/rain1 PRIVMSG #esoteric :hi < 1587294305 450211 :int-e!~noone@int-e.eu PRIVMSG #esoteric :`lear Statistics is the art of refining garbage into data. < 1587294308 429505 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :lear? No such file or directory < 1587294308 595546 :int-e!~noone@int-e.eu PRIVMSG #esoteric :`learn Statistics is the art of refining garbage into data. < 1587294314 225802 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :Learned 'statistic': Statistics is the art of refining garbage into data. < 1587294325 659890 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(I think it's passable. Feel free to improve.) < 1587294339 45648 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Or would that be s/improve/refine/ ;-) < 1587294770 833880 :LKoen!~LKoen@81.255.219.130 JOIN :#esoteric < 1587295407 403856 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :fungot, what kind of video games do you play? < 1587295407 545347 :fungot!~fungot@unaffiliated/fizzie/bot/fungot PRIVMSG #esoteric :b_jonas: are any of you have a copy? < 1587295414 964796 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :fungot: a copy of what? < 1587295415 136595 :fungot!~fungot@unaffiliated/fizzie/bot/fungot PRIVMSG #esoteric :b_jonas: to, even. doesn't that count for something. < 1587295541 23933 :int-e!~noone@int-e.eu PRIVMSG #esoteric :fungot: it it's even it may be two. < 1587295541 111186 :fungot!~fungot@unaffiliated/fizzie/bot/fungot PRIVMSG #esoteric :int-e: that's just wrong. < 1587295552 237405 :int-e!~noone@int-e.eu PRIVMSG #esoteric :fungot: I'm sorry you think that. < 1587295552 379794 :fungot!~fungot@unaffiliated/fizzie/bot/fungot PRIVMSG #esoteric :int-e: that only accepts a bf interpreter that takes i/ o < 1587295957 820776 :heroux!sandroco@gateway/shell/insomnia247/x-mpapssivhpvmqamg QUIT :Ping timeout: 264 seconds > 1587297674 200000 PRIVMSG #esoteric :14[[07Babalang14]]4 10 02https://esolangs.org/w/index.php?diff=71234&oldid=71233 5* 03RocketRace 5* (+8156) 10Document the entire god damn runtime > 1587298055 527568 PRIVMSG #esoteric :14[[07Babalang14]]4 10 02https://esolangs.org/w/index.php?diff=71235&oldid=71234 5* 03RocketRace 5* (+8199) 10Add examples (oh no......) > 1587298142 39657 PRIVMSG #esoteric :14[[07Language list14]]4 M10 02https://esolangs.org/w/index.php?diff=71236&oldid=71191 5* 03RocketRace 5* (+15) 10Add Babalang > 1587298335 112024 PRIVMSG #esoteric :14[[07Babalang14]]4 10 02https://esolangs.org/w/index.php?diff=71237&oldid=71235 5* 03RocketRace 5* (+100) 10Categorize the page > 1587298372 221101 PRIVMSG #esoteric :14[[07Babalang14]]4 M10 02https://esolangs.org/w/index.php?diff=71238&oldid=71237 5* 03RocketRace 5* (-8) 10Change wording in description > 1587298390 954294 PRIVMSG #esoteric :14[[07Babalang14]]4 M10 02https://esolangs.org/w/index.php?diff=71239&oldid=71238 5* 03RocketRace 5* (-4) 10Fix broken link > 1587299632 677536 PRIVMSG #esoteric :14[[07User:PythonshellDebugwindow/Cmt14]]4 M10 02https://esolangs.org/w/index.php?diff=71240&oldid=71222 5* 03PythonshellDebugwindow 5* (+19) 10 < 1587301226 828381 :arseniiv!~arseniiv@136.169.207.19 JOIN :#esoteric > 1587302809 700346 PRIVMSG #esoteric :14[[07Welcome To...14]]4 N10 02https://esolangs.org/w/index.php?oldid=71241 5* 03PythonshellDebugwindow 5* (+2108) 10Work in progress < 1587303531 221771 :heroux!~heroux@507082E8.static.ziggozakelijk.nl JOIN :#esoteric < 1587304417 807065 :heroux!~heroux@507082E8.static.ziggozakelijk.nl QUIT :Ping timeout: 264 seconds < 1587304446 822263 :kspalaiologos!~kspalaiol@176.221.122.71 QUIT :Quit: Leaving < 1587304451 15152 :heroux!sandroco@gateway/shell/insomnia247/x-hrqklbeiopcoyhlk JOIN :#esoteric < 1587308283 836817 :Elderberry!bc4a4017@188.74.64.23 JOIN :#esoteric < 1587308297 169639 :Elderberry!bc4a4017@188.74.64.23 PRIVMSG #esoteric :Anyone online? < 1587308378 979026 :rain1!~debian@unaffiliated/rain1 PRIVMSG #esoteric :yeah < 1587308395 119888 :rain1!~debian@unaffiliated/rain1 QUIT :Quit: Lost terminal < 1587310929 570648 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com QUIT :Remote host closed the connection < 1587311139 49432 :Cale!~cale@2607:fea8:9960:35:d1e4:94fc:5e34:251a JOIN :#esoteric > 1587312274 70610 PRIVMSG #esoteric :14[[07User:Willicoder14]]4 10 02https://esolangs.org/w/index.php?diff=71242&oldid=71148 5* 03Willicoder 5* (+265) 10 < 1587312484 120744 :Elderberry!bc4a4017@188.74.64.23 QUIT :Remote host closed the connection > 1587312513 727076 PRIVMSG #esoteric :14[[07Functasy14]]4 10 02https://esolangs.org/w/index.php?diff=71243&oldid=71228 5* 03Hakerh400 5* (+25) 10Fix typo in the code < 1587313633 332605 :imode!~linear@unaffiliated/imode JOIN :#esoteric < 1587314286 337816 :rain1!~debian@unaffiliated/rain1 JOIN :#esoteric < 1587315354 811165 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1587315381 393567 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :for everyone who doesn't know how UTF-7 works: all of ASCII encodes itself apart from the "+" character, which is encoded in UTF-7 as "+-" < 1587315388 715425 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and then sequences starting with + are used for non-ASCII characters < 1587315442 387769 :APic!apic@apic.name PRIVMSG #esoteric :Thanks for the Explanation! < 1587315443 923424 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm not 100% sure on the encoding after the +, but if I'm remembering correctly, it's just UTF-16 written in hexadecimal < 1587315467 422191 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(terminated by - if the next character is a hexadecimal character or -, or with no explicit terminator if it's outside the hexadecimal range) < 1587315507 94814 :int-e!~noone@int-e.eu PRIVMSG #esoteric :that sounds really inefficient < 1587315517 339489 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that's probably why it didn't catch on < 1587315557 515321 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the main design goal appears to have been that a recipient could guess what it meant even if they didn't know the format, but that possibly isn't a useful design goal < 1587315613 826163 :craigo!~craigo@144.136.206.168 QUIT :Ping timeout: 264 seconds < 1587315642 352697 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ah no, it isn't hexadecimal, it must be something more efficient than that < 1587315648 78553 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :maybe base64'd utf-16? < 1587315663 835160 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I just encoded a BOM into utf-7, it encoded as +/v8- < 1587315681 795832 :int-e!~noone@int-e.eu PRIVMSG #esoteric :it's a base64 variant wedeged between + and -. < 1587315681 918126 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :`` echo '/v8' | base64 -d | od -t x1z < 1587315683 523220 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :base64: invalid input \ 0000000 fe ff >..< \ 0000002 < 1587315689 786201 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yes, that looks like base64 to me < 1587315708 85506 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(With the +- exception that maps to + as you said) < 1587315733 460648 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :base64 is still a bit inefficient but it isn't as inefficient as base16 < 1587315775 223392 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :now I wonder how many editors will interpret files as UTF-7 if they start +/v8 followed by - or a non-base-64 character < 1587315779 11667 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :probably not many < 1587315809 700841 :int-e!~noone@int-e.eu PRIVMSG #esoteric :'Older versions of Internet Explorer can be tricked into interpreting the page as UTF-7. This can be used for a cross-site scripting attack as the < and > marks can be encoded as +ADw- and +AD4- in UTF-7, which most validators let through as simple text.' < 1587315822 542080 :int-e!~noone@int-e.eu PRIVMSG #esoteric :So it did have serious applications :P < 1587315838 382153 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oh right, IE < 1587315848 153750 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I seem to remember someone managing an XSS attack against the #esoteric logs < 1587315857 232464 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :because IE was so permissive with encodings and MIME types < 1587315884 57776 :int-e!~noone@int-e.eu PRIVMSG #esoteric :And yes, it stacks on top of UTF-16. What a mess. < 1587315956 151248 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I still think that, in a way, it's a pity that UTF-1 didn't catch on < 1587315992 972159 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the rise of UTF-8 caused serious standards incompatibility problems, because UTF-8 uses C1 control codes for purposes other than their assigned meanings < 1587316048 610394 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although, given that a C1 control code cannot appear in UTF-8 except immediately after a G1 character, this ambiguity should be fixable, but nobody I know of but me actually tries to fix it < 1587316159 23559 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I guess part of the problem is that many of the C1 control codes are kind-of silly < 1587316312 636180 :tromp!~tromp@2a02:a210:ca3:2800:8d4e:d35a:4988:7053 QUIT :Remote host closed the connection < 1587317461 469051 :tromp!~tromp@2a02:a210:ca3:2800:69ba:5b75:fffe:29aa JOIN :#esoteric < 1587317607 531030 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Read error: Connection reset by peer < 1587317634 291863 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1587317757 334745 :tromp!~tromp@2a02:a210:ca3:2800:69ba:5b75:fffe:29aa QUIT :Ping timeout: 272 seconds < 1587319295 780445 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :oh nice. that's like the XSS attacks when a browser guesses that something is HTML even though the HTTP response header Content-Type says text/plain < 1587319953 338034 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :This encoding is a bit inefficient but it seems OK. < 1587319963 939732 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The one that I don't get is Punycode. What's with that? It seems so complicated. < 1587320199 869152 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Yeah, Punycode is pretty awful. It seems to be designed for a language like German where words are mostly ASCII with maybe one or two non-ASCII characters. < 1587320249 881827 :int-e!~noone@int-e.eu PRIVMSG #esoteric :"Punycode is a simple and efficient transfer encoding syntax [...]" < 1587320250 462756 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But even so, it seems completely unreadable by humans. < 1587320279 328343 :FireFly!znc@freenode/staff/firefly PRIVMSG #esoteric :unreadable by humans, annoying to implement.. < 1587320287 742133 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I don't agree with this use of the word "simple". < 1587320332 907191 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`` python -c 'print([s.encode("punycode") for s in ["aaa", "aaaλ", "aaaaλ", "aaaλbbb"]])' < 1587320333 867319 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :​['aaa-', 'aaa-3ga8g', 'aaaa-tia7i', 'aaabbb-5la5m'] < 1587320351 918402 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :thunycode < 1587320365 384395 :int-e!~noone@int-e.eu PRIVMSG #esoteric :shachaf: Well one can kind of guess what "Mnchen-3ya" stands for. < 1587320381 753477 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But not by knowing anything about the string "3ya"! < 1587320393 551357 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Sure. < 1587320396 860528 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Welcome back btw. < 1587320410 61974 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :You might as well write "M�nchen". < 1587320433 524203 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :(Except it doesn't even tell you where the replacement character is.) < 1587320444 402048 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :You might not have to implement Punycode, at least. < 1587320454 890418 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'm probably only sort of back? Hard to say. < 1587320469 686791 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :How do you meant only sort of back? < 1587320472 671254 :int-e!~noone@int-e.eu PRIVMSG #esoteric :The only good thing about punycode is that you generally don't see it in encoded form. < 1587320547 229977 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :How about this Punycode replacement: You write "m-nchen--fc.com" for "münchen.com". < 1587320597 869773 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Each code point above 127 and - gets encoded as a -, and then they're listen in order in hexadecimal after the -- < 1587320602 908520 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That's probably not very good. < 1587320609 935810 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Too verbose. < 1587320637 695852 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`` python -c 'print([s.encode("punycode") for s in ["привет"]])' < 1587320638 346116 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :It helps since you can write domain names purely in the ASCII form. You can disable non-ASCII domain names and then it will still work, and avoid the homoglyph problems and missing fonts and so on, too. < 1587320638 667918 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :​['ae7lman4b1hcbbfh'] < 1587320711 230454 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :However, I should think they should not have needed support for domain names containing any characters not already valid in domain names anyways < 1587320786 919432 :int-e!~noone@int-e.eu PRIVMSG #esoteric :shachaf: I guess there's one advantage to punycode that's easy to miss: some character set restrictions (like domain names not containing dots) can be enforced on punycode encoded strings without decoding them < 1587320807 93369 :int-e!~noone@int-e.eu PRIVMSG #esoteric :But overall it doesn't seem very nice. < 1587320828 34440 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :How does that work? < 1587320901 809049 :int-e!~noone@int-e.eu PRIVMSG #esoteric :the . would become part of the unencoded base character sequence before the final minus sign < 1587321008 3591 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(This is assuming that base characters can't be encoded in the final encoded part, which I believe is the case.) < 1587321025 679780 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :So you mean it doesn't have an equivalent of overlong encodings of ASCII characters. < 1587321033 766577 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Right. < 1587321042 259551 :tromp!~tromp@2a02:a210:ca3:2800:69ba:5b75:fffe:29aa JOIN :#esoteric < 1587321078 326261 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But you can still have encoding errors, right? Overlong encodings are already an error in UTF-8. < 1587321170 938580 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I suppose so < 1587321174 845988 :tromp_!~tromp@2a02:a210:ca3:2800:c48c:bbb2:381c:59f3 JOIN :#esoteric < 1587321192 543552 :int-e!~noone@int-e.eu PRIVMSG #esoteric :But I don't know for sure. < 1587321208 659551 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(I'm not interested enough to check this in detail.) < 1587321257 462965 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'm now reading about how Punycode actually works and it's kind of ridiculous. < 1587321270 855772 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`` python -c 'print([s.encode("punycode") for s in ["München"]])' < 1587321271 903203 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :​['Mnchen-bma9c'] < 1587321405 310805 :tromp!~tromp@2a02:a210:ca3:2800:69ba:5b75:fffe:29aa QUIT :Ping timeout: 272 seconds < 1587321442 71212 :int-e!~noone@int-e.eu PRIVMSG #esoteric :It is kind of neat if you like arithmetic coding. > 1587321446 679167 PRIVMSG #esoteric :14[[07User:PythonshellDebugwindow/Stub14]]4 N10 02https://esolangs.org/w/index.php?oldid=71244 5* 03PythonshellDebugwindow 5* (+26) 10Created page with "Leave this page as a stub." < 1587321487 642186 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I guess it's pretty efficient, at least. > 1587321511 902777 PRIVMSG #esoteric :14[[07Esolang:Sandbox14]]4 M10 02https://esolangs.org/w/index.php?diff=71245&oldid=70695 5* 03PythonshellDebugwindow 5* (+228) 10 > 1587321804 109273 PRIVMSG #esoteric :14[[07A14]]4 M10 02https://esolangs.org/w/index.php?diff=71246&oldid=68569 5* 03PythonshellDebugwindow 5* (+153) 10/* External links */ < 1587321809 967982 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`` python -c 'print([s.encode("punycode") for s in ["bücher"]])' < 1587321810 928561 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :​['bcher-lka2c'] < 1587321825 812168 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What' going on there? Is it normalizing the Unicode into two characters before encoding or something? < 1587321844 278770 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`` python -c 'print([s.encode("punycode") for s in ["bücher"]])' < 1587321846 921355 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :​['bucher-xba75c'] > 1587321862 263473 PRIVMSG #esoteric :14[[07Ellipsis14]]4 M10 02https://esolangs.org/w/index.php?diff=71247&oldid=63411 5* 03PythonshellDebugwindow 5* (+76) 10cats < 1587321883 810511 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, of course it's not. < 1587321916 622826 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, it's a Python 2 thing, isn't it. < 1587321935 773232 :arseniiv!~arseniiv@136.169.207.19 PRIVMSG #esoteric :`` py < 1587321936 627291 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :​/hackenv/bin/`: line 5: py: command not found < 1587321941 186285 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`` python3 -c 'print([s.encode("punycode") for s in [u"bücher"]])' < 1587321942 178497 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :​[b'bcher-kva'] < 1587322030 317365 :arseniiv!~arseniiv@136.169.207.19 PRIVMSG #esoteric :`` python3 -c 'print([s.encode("punycode") for s in ["ü"]])' < 1587322031 402942 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :​[b'tda'] < 1587322045 821257 :arseniiv!~arseniiv@136.169.207.19 PRIVMSG #esoteric :okay I don’t get punycode at all < 1587322073 240001 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :> foldr (\x y -> x + y * 36) 0 $ map (\d -> fromJust $ elemIndex d (['a'..'z'] ++ ['0'..'9'])) "tda" < 1587322075 375759 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 127 < 1587322086 825003 :arseniiv!~arseniiv@136.169.207.19 PRIVMSG #esoteric :ah, and I think I first thought that’s the same as what urlencode does < 1587322121 656290 :arseniiv!~arseniiv@136.169.207.19 PRIVMSG #esoteric :`` python3 -c 'print([s.encode("punycode") for s in ["ü"]])' < 1587322122 720182 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :​[b'u-ccb'] < 1587322158 285808 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :> text [chr (127 + 125)] < 1587322160 651596 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : ü < 1587322189 568968 :arseniiv!~arseniiv@136.169.207.19 PRIVMSG #esoteric :ah, so it seeingly first prefixes all ASCII codepoints from the string, if any, and then base-something-encoded string in full < 1587322201 566892 :arseniiv!~arseniiv@136.169.207.19 PRIVMSG #esoteric :though I might have read about it already somewhere < 1587322250 265378 :arseniiv!~arseniiv@136.169.207.19 PRIVMSG #esoteric :`` python3 -c 'print([s.encode("punycode") for s in ["aμb⚁cъd"]])' < 1587322251 298184 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :​[b'abcd-lnd86f056o'] < 1587322323 450732 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It encodes the code points and positions in base 36. < 1587322596 792226 :arseniiv!~arseniiv@136.169.207.19 PRIVMSG #esoteric :ah, now I have read a part of discussion above too :D should have done that earlier < 1587323219 810385 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :ais523: also that's why we don't allow overlong encodings in UTF-8 < 1587324281 590658 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :For some applications, overlong encodings in UTF-8 is useful < 1587324341 28665 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Exploiting buggy software, for instance? < 1587324577 921954 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Maybe, although that isn't what I meant. < 1587325921 193141 :tromp_!~tromp@2a02:a210:ca3:2800:c48c:bbb2:381c:59f3 QUIT :Remote host closed the connection < 1587326658 987356 :tromp!~tromp@2a02:a210:ca3:2800:c48c:bbb2:381c:59f3 JOIN :#esoteric < 1587326775 736125 :rain1!~debian@unaffiliated/rain1 QUIT :Quit: Lost terminal > 1587326862 950856 PRIVMSG #esoteric :14[[07Fish14]]4 M10 02https://esolangs.org/w/index.php?diff=71248&oldid=59315 5* 03PythonshellDebugwindow 5* (+4) 10/* FizzBuzz */ add link > 1587326909 656765 PRIVMSG #esoteric :14[[07User:Hakerh40014]]4 M10 02https://esolangs.org/w/index.php?diff=71249&oldid=70998 5* 03Hakerh400 5* (+0) 10Reorder sections < 1587327077 73240 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :b_jonas: I think encoding NUL as 00 in UTF-8 was a mistake < 1587327093 769081 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :ais523: why? < 1587327102 276518 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I would prefer an encoding of C0 80, to allow an "out-of-band" string termination character < 1587327132 333859 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :In some applications you can use C0 80 to encode a null character in a UTF-8 string, to use 00 as a string termination. But in other cases you don't do that. < 1587327163 861859 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :ais523: you can always define a custom escaping transform, that should be independent of the encoding itself. you can even use 0x80 or 0x81 < 1587327206 774516 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :ais523: I don't usually trust that strings that claim to be utf-8 are really valid utf-8 anyway, so I wouldn't trust that they don't have a 0x00 or 0x80 or whatever < 1587327218 436550 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :b_jonas: I would also prefer that C1 control codes are encoded as themselves, but that's more controversial (the encoding is still self-synchronizing but to a lesser extent) < 1587327266 432035 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Maybe programs I write I design to use ASCII and not Unicode, anyways < 1587327345 213758 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, that reminds me, I came up with a binary format that has similar purposes to JSON, in which all strings encoded themselves (in UTF-8), and all nonstrings used invalid UTF-8 sequences < 1587327377 835494 :arseniiv_!~arseniiv@136.169.239.249 JOIN :#esoteric < 1587327564 252007 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Can you encode surrogates if needed? < 1587327568 783125 :arseniiv!~arseniiv@136.169.207.19 QUIT :Ping timeout: 256 seconds < 1587327586 872859 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :(You might need it if the data isn't Unicode, for example.) < 1587327670 354516 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :And then, what about characters beyond the range of Unicode? < 1587327756 553074 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Do you have the documentation for your format? < 1587327806 119667 :LKoen!~LKoen@81.255.219.130 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.” < 1587327869 339269 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :zzo38: http://nethack4.org/pastebin/gsap.txt < 1587327945 139243 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think out-of-range characters and surrogates can be encoded in the format, but the format is meant to disallow them because strings are meant to be Unicode only < 1587327961 423708 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if you have a string of character-like things that is not Unicode, it should probably be stored as an array of bytes < 1587328045 656420 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also I think there's a missing " in the example near the start < 1587328048 445369 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I haven't looked at this file for ages < 1587328272 140131 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :I do not see anything about byte arrays; also, it doesn't seems to be able to use lists of exactly one element when dynamic types are used, from what I can tell. < 1587328316 940977 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :a list of one element is equivalent to the element itself < 1587328326 589234 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and a byte array would be represented as a nonliteral containing the bytes as arguments < 1587328339 514729 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :e.g. (bytes 2 12 255 0 255) < 1587328359 806102 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this is intended for use with schemas / strong typing, so you can always distinguish a singleton list from an element < 1587328374 55548 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Yes, that is what I thought about a list of one element, but if a distinction is needed between lists and non-lists then that won't work when dynamic types are used. < 1587328417 128850 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :It says the format can be either statically or dynamically typed. With static types what you say will work, for the reason you mention, but that won't work so well for dynamic types, I think. < 1587328488 88799 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well, there are two ways to think about dynamic typing < 1587328516 347100 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :IMO in a dynamically typed language, you should just treat the data as whatever type you're expecting it to have, and not care about what type it actually has < 1587328526 101194 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Also, the byte arrays done in the way like you mention does not seem to be efficient. < 1587328627 435879 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :ais523: that's perl typing or dwim scalars < 1587328673 950154 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :zzo38: yes, but this is a very uncommon use case < 1587328697 229316 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :b_jonas: yes, it's the only sensible way to do dynamic typing I think < 1587328702 530593 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :the other method is to write programs sort of like in a strongly typed language, except you omit some enum constructors in favor of storing multiple types and checking for them, mostly with a nul type versus other types, or an array versus a number < 1587328716 988789 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :and I prefer that style < 1587328721 928788 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well, that and stringly typing, where everything is stored as a string (or else in some format that isn't a string but acts like one) < 1587328734 948373 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :yes, there's that too < 1587328749 529025 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :b_jonas: I think that style is kind-of terrible unless you have a huge supply of enum constructors that can just be used anywhere < 1587328759 939521 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and do in fact use them everywhere < 1587328779 669502 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :"this function takes a string or an integer" is horrible in terms of self-documentation, and can't easily be modified into taking a string or a different type of string < 1587328814 90918 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :For storing structured data which does not need to be parsed into other data structures after it is read, I like the format http://fileformats.archiveteam.org/wiki/PostScript_binary_object_format but it has the disadvantage that, unlike your format, it does not support streaming writing, and will require two passes to write. < 1587328862 766102 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :ais523: what do you call the kind of typing that x86 machine language or forth does, which isn't dynamic typing because there are no type tags in data, but also no type information at compile time? < 1587328901 478899 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :b_jonas: "everything is just bits" < 1587328906 447249 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm not sure if it has a proper name beyond that < 1587328945 692615 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, actually I think this conversation has helped me clarify my understanding: type tags in data that just store the type rather than the meaning are about as useful as Hungarian notation that just stores the type rather than the meaning < 1587328979 279960 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :occasionally it helps, but only in programs where each type can only have one possible meaning, which is rare < 1587329000 307247 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Another format is RELOAD, which also supports efficient byte arrays like PostScript does, but that is with another different use. In RELOAD, all names are indicated by numbers, and which names correspond to which numbers is listed at the end. Although it requires parsing, it allows a program to write out using its own numbers, while when reading it can efficiently create a table mapping the file's numbers to its internal numbers. < 1587329120 404471 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the gsap format I linked, the main motivation was to be able to implement most parser-like operations using only a single stack, + an append-only output < 1587329133 719607 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :to make the best possible use of memory bandwidth and cache < 1587329141 150156 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :ais523: is it "everything is just bits" even if you aren't manipulating bytes or fixed-size words, but nonnegative bignums such as in Amicus? < 1587329160 340744 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :b_jonas: well, the bignum is also just bits < 1587329167 595660 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you have to know it's a bignum some other way to be able to operate on it correctly < 1587329176 145512 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :ais523: Yes, it does have those advantages at least. < 1587329230 250686 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :ais523: well it is manipulated in binary < 1587329353 203804 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :ais523: meaning of the data => yes, which is some modern dynamically typed languages are object-oriented. < 1587329435 26716 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :anyway I find that in practice, Python or JavaScript programs nearly always are only meant to allow one type in each function argument / variable < 1587329457 482198 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and this has to be documented and verified to always be the case by humans (or via some sort of typing extension to the language) < 1587329480 965339 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so the dynamic typing mostly just serves to increase the risk of bugs and increase the amount of manual effort < 1587329483 523860 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :I quite like python's type system: objects have a class, which you can imagine as if all objects (except maybe small integers) have a class pointer in them, and the class determines the representation of the rest of that object, as in what fields it has for normal objects, or whether it's a variable sized object like tuple or bytes or str that has an variable sized array allocated inside the object (so < 1587329489 529818 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :it can't be resized). < 1587329509 134497 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :whereas if you're using Perl-style typing, it's very hard to get wrong because you can't accidentally pass a string rather than an integer or the like < 1587329517 435798 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :the actual representation could differ, this is just the notion < 1587329528 706327 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :ais523: There are some exceptions though, sometimes I do use support for multiple types in a variable/argument although usually it is only one type. Especially if it accepts null in addition to another type. < 1587329535 210642 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the basical problem here is to do with references, which are a fundamentally different thing from strings and integers < 1587329552 821829 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :and you can define new classes, and either you tell what fields they have, or you inherit from a class with one of those special variable sized representation. < 1587329553 325799 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Another case in JavaScript is sometimes a function might accept either a string or a byte array; this is used in Node.js to represent file names, for example. < 1587329574 495504 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :zzo38: "null or X" arguments have been a huge source of bugs historically, though; most modern programming languages use some techniques to ensure that nullability is always clear, and that the null case is handled if it could happen < 1587329596 472247 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's very easy to write a function where some input could be null but the programmer didn't realise it while writing the function < 1587329644 14268 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :ais523: Yes; if you are using Haskell then you can use Maybe, although in JavaScript programs at least, I write it the way I need and it still works anyways. < 1587329688 539328 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :in any case, you can use python's class-object system to write programs where your functions accept many different types if you want < 1587329911 220130 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :I am now trying to write a specification of a change set format for TeXnicard, which is intended to be readable ASCII text which can be included in netnews articles. < 1587330030 909812 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Do you have any comments about doing such a thing? < 1587331071 991136 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Well, do it 20 years ago... < 1587331210 306861 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :I can't do it 20 years ago; I will do it now. It won't be useful to do it before TeXnicard is written, anyways. < 1587331289 154418 :b_jonas!~x@catv-176-63-12-50.catv.broadband.hu PRIVMSG #esoteric :zzo38: do TeXnicard 20 years ago too < 1587331356 450151 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Well, I cannot do that, so I will have to do it now, instead. < 1587331626 168678 :Phantom___Hoover!~phantomho@82.27.195.88 QUIT :Ping timeout: 265 seconds < 1587332048 984422 :tromp!~tromp@2a02:a210:ca3:2800:c48c:bbb2:381c:59f3 PRIVMSG #esoteric :int-e: TODOs at 36 completed manually. so BB(36) = Church 2^256 is proven modulo bugs in BB.lhs < 1587332146 695594 :tromp!~tromp@2a02:a210:ca3:2800:c48c:bbb2:381c:59f3 PRIVMSG #esoteric :some TODOs could be eliminated if we can have H ::= □ | \v. H | H T | freeV H and B^V ::= W^V X^V | \v. B^V | B^V T | freeV B^V < 1587332397 960350 :user24!~user24@2a02:810a:1440:7304:41eb:e44f:bad7:2bce QUIT :Quit: Leaving < 1587332639 615893 :int-e!~noone@int-e.eu PRIVMSG #esoteric :tromp: that's probably fine < 1587332695 25929 :tromp!~tromp@2a02:a210:ca3:2800:c48c:bbb2:381c:59f3 PRIVMSG #esoteric :thanks for probable blessing:-) < 1587332985 417606 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1587333055 290170 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 250 seconds < 1587333131 273368 :int-e!~noone@int-e.eu PRIVMSG #esoteric :tromp: you can generalize that a bit further to freeV T^* H < 1587333155 630099 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 NICK :Lord_of_Life < 1587333162 243360 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(that * is replication, not function iteration) < 1587333182 3084 :tromp_!~tromp@2a02:a210:ca3:2800:15b2:7525:15fa:f922 JOIN :#esoteric < 1587333315 977572 :tromp_!~tromp@2a02:a210:ca3:2800:15b2:7525:15fa:f922 PRIVMSG #esoteric :oh, good point, a normal form normalizes all arguments of a free variable < 1587333405 983350 :tromp!~tromp@2a02:a210:ca3:2800:c48c:bbb2:381c:59f3 QUIT :Ping timeout: 265 seconds < 1587334153 861221 :zzo38!~zzo38@host-24-207-48-139.public.eastlink.ca PRIVMSG #esoteric :Here is my document for TeXnicard change set format: http://zzo38computer.org/fossil/texnicard.ui/artifact/7fd7e8d9db30a7ca or http://zzo38computer.org/fossil/texnicard.ui/raw/changeset.doc?name=7fd7e8d9db30a7ca2cb46cc5b0e3c03e064f7173 Now you can see if it is good or not, and what comment you have of it. < 1587340229 590764 :arseniiv_!~arseniiv@136.169.239.249 NICK :arseniiv < 1587340231 263697 :imode!~linear@unaffiliated/imode QUIT :Ping timeout: 250 seconds < 1587340522 782592 :arseniiv!~arseniiv@136.169.239.249 QUIT :Ping timeout: 256 seconds