< 1452125024 615217 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric < 1452125149 796968 :hppavilion[1]!~Devourero@58-0-174-206.gci.net JOIN :#esoteric < 1452125152 107467 :hppavilion[1]!~Devourero@58-0-174-206.gci.net PRIVMSG #esoteric :OOh < 1452125162 153859 :hppavilion[1]!~Devourero@58-0-174-206.gci.net PRIVMSG #esoteric :I don't think anyone's made an OO logic language before < 1452125383 490016 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :What do you mean by OO? < 1452125423 133504 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :the logic part is usually immutable, isn't it < 1452125461 95026 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :hm some say Erlang is an OO language in the original sense < 1452125488 894890 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :There's an original sense? < 1452125497 539365 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :Alan Kay's sense, iirc < 1452126672 15272 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :@tell izabera https://en.wikipedia.org/wiki/Befana YOU PEOPLE DON'T HAVE THIS?!? <-- NOPE HTH < 1452126672 212265 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Consider it noted. < 1452126873 426950 :hppavilion[1]!~Devourero@58-0-174-206.gci.net PRIVMSG #esoteric :oerjan: We don't have it here in america < 1452126885 878361 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :i wouldn't expect you to < 1452126886 977708 :hppavilion[1]!~Devourero@58-0-174-206.gci.net PRIVMSG #esoteric :In fact, I don't think we even celebrate Epiphany in the US < 1452126900 43550 :hppavilion[1]!~Devourero@58-0-174-206.gci.net PRIVMSG #esoteric :oerjan: Of course not xD. < 1452126908 294088 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :not in norway either < 1452126931 880633 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :hppavilion[1]: well, unless maybe you were of italian descent < 1452126941 300493 :hppavilion[1]!~Devourero@58-0-174-206.gci.net PRIVMSG #esoteric :oerjan: True < 1452126982 314800 :hppavilion[1]!~Devourero@58-0-174-206.gci.net PRIVMSG #esoteric :oerjan: Where can I find info on OO in the Alan Kay sense? < 1452126985 967980 :hppavilion[1]!~Devourero@58-0-174-206.gci.net PRIVMSG #esoteric :I want to learn about it :) < 1452127007 905693 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :i don't think epiphany is celebrated, although it's traditionally the last day of christmas in parts of norway (some include one more week) < 1452127010 325086 :hppavilion[1]!~Devourero@58-0-174-206.gci.net PRIVMSG #esoteric :Unless it's the typical description of OO, but modern languages /don't/ OO properly < 1452127041 300228 :hppavilion[1]!~Devourero@58-0-174-206.gci.net PRIVMSG #esoteric :Like, they don't implement what Wikipedia talks about < 1452127105 464941 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :hppavilion[1]: well "Actually I made up the term "object-oriented", and I can tell you I did not have C++ in mind." < 1452127124 447776 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :although he probably had something smalltalkish < 1452127134 401759 :hppavilion[1]!~Devourero@58-0-174-206.gci.net PRIVMSG #esoteric :oerjan: Ah. < 1452127140 67452 :hppavilion[1]!~Devourero@58-0-174-206.gci.net PRIVMSG #esoteric :Are you the one who hates OO? < 1452127151 889222 :hppavilion[1]!~Devourero@58-0-174-206.gci.net PRIVMSG #esoteric :Someone on this channel does, one of the o's < 1452127174 869914 :hppavilion[1]!~Devourero@58-0-174-206.gci.net PRIVMSG #esoteric :(People whose names start with "o" are nearly indistinguishable in my memory) < 1452127227 418747 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :hate? not really. i'm almost haskell-monoglottish these days, though. when i even program. < 1452127242 89244 :hppavilion[1]!~Devourero@58-0-174-206.gci.net PRIVMSG #esoteric :Ah. It must be \oren\ then. < 1452127251 439131 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :\oren\ perhaps. he's rather opinionated on some things. < 1452127275 276317 :hppavilion[1]!~Devourero@58-0-174-206.gci.net PRIVMSG #esoteric :oerjan: Yes, I think it was. < 1452127604 693580 :mauris!~mauris@unaffiliated/nooodl JOIN :#esoteric < 1452127802 625775 :mauris!~mauris@unaffiliated/nooodl QUIT :Read error: Connection reset by peer < 1452127966 324801 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :oh right, istr back when i was a kid january 6 was about the time we removed the christmas decorations. < 1452128097 736993 :mauris!~mauris@unaffiliated/nooodl JOIN :#esoteric < 1452128174 250692 :\oren\!~oren@TOROON0949W-LP140-02-1242510803.dsl.bell.ca PRIVMSG #esoteric :I don't like most OO, but only because of the syntax being needlessly complicated < 1452128220 574315 :\oren\!~oren@TOROON0949W-LP140-02-1242510803.dsl.bell.ca PRIVMSG #esoteric :the actual concepts of ADT's and polymorphism, etc are mostly fine < 1452128233 262726 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :ADT's and polymorphism isn't OO < 1452128243 785610 :\oren\!~oren@TOROON0949W-LP140-02-1242510803.dsl.bell.ca PRIVMSG #esoteric :sure it is < 1452128251 645379 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :thats functional programming < 1452128255 438394 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :OO is about message passing and/or classes and instances < 1452128272 679787 :\oren\!~oren@TOROON0949W-LP140-02-1242510803.dsl.bell.ca PRIVMSG #esoteric :classes and instances = ADT's? < 1452128307 439748 :\oren\!~oren@TOROON0949W-LP140-02-1242510803.dsl.bell.ca PRIVMSG #esoteric :well i mean an ADT is like an interface, and then an implemention is a class < 1452128359 787864 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :thats a completely different thing that i ever thought of < 1452128473 466265 :\oren\!~oren@TOROON0949W-LP140-02-1242510803.dsl.bell.ca PRIVMSG #esoteric :anyway basically a lot of the useful parts of OO are functional programming with a stupid syntax < 1452129007 634304 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :ADT has two different meanings hth < 1452129048 10375 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :dependent on whether A is Abstract or Algebraic < 1452129064 875933 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :in an OO context you would say encapsulation < 1452129230 115539 :hppavilion[1]!~Devourero@58-0-174-206.gci.net PRIVMSG #esoteric :vanila: OO need not be classy < 1452130610 738179 :zgrep!~zgrep@zgrep.org PRIVMSG #esoteric :oerjan: What if it's just Average? < 1452131122 619779 :hppavilion[1]!~Devourero@58-0-174-206.gci.net QUIT :Ping timeout: 256 seconds < 1452131369 778335 :mauris!~mauris@unaffiliated/nooodl QUIT :Ping timeout: 255 seconds < 1452132016 974129 :AlexR42!~textual@136.169.242.7 JOIN :#esoteric < 1452132628 940802 :andrew!~andrew@61.141.94.171 JOIN :#esoteric < 1452133978 751988 :jaboja!~jaboja@esb12.neoplus.adsl.tpnet.pl JOIN :#esoteric < 1452134383 777777 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :> 38 * 38 < 1452134385 312895 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 1444 < 1452134411 450668 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :oh wait that's correct < 1452134417 522485 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :> 38^2 < 1452134419 29112 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 1444 < 1452134449 796623 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :amazitng that it has all the 4s < 1452134479 652370 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :38^4 < 1452134485 478208 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :> 38^4 < 1452134487 401076 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 2085136 < 1452134495 747304 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :disappointing, that < 1452134518 272531 :Elronnd!elronnd@znc.dank.ninja PRIVMSG #esoteric :does lambdabot support nested powers or whatever they're called? < 1452134522 62195 :Elronnd!elronnd@znc.dank.ninja PRIVMSG #esoteric :> 2^^2 < 1452134523 917477 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 4.0 < 1452134528 592131 :Elronnd!elronnd@znc.dank.ninja PRIVMSG #esoteric ::( < 1452134543 551073 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric ::t (^^) < 1452134544 963527 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :(Fractional a, Integral b) => a -> b -> a < 1452134564 492268 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric ::t (^) < 1452134565 702928 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :(Integral b, Num a) => a -> b -> a < 1452134568 515962 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric ::t (**) < 1452134569 936461 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Floating a => a -> a -> a < 1452134584 56336 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :> foldr1 (^) [2,2] < 1452134585 657835 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 4 < 1452134599 250710 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :> foldr1 (^) $ replicate 3 2 < 1452134600 908502 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 16 < 1452134608 965740 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :tghere doesn't seem to be any other numbers < 1452134616 71121 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :oerjan, now write it pointfree < 1452134659 84060 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :> (((foldr1 (^).).replicate) 3 2 < 1452134660 352456 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : :1:31: < 1452134660 511119 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : parse error (possibly incorrect indentation or mismatched brackets) < 1452134662 494464 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :oops < 1452134669 391680 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :> ((foldr1 (^).).replicate) 3 2 < 1452134671 972559 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 16 < 1452134873 730323 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Cardinal14]]4 10 02https://esolangs.org/w/index.php?diff=46094&oldid=45357 5* 03Albedo 5* (+310) 10/* External resources */ external source added < 1452135120 594523 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :`? gray < 1452135140 299078 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :gray? ¯\(°​_o)/¯ < 1452135145 953557 :singingboyo!~brandonso@d50-98-172-252.bchsia.telus.net JOIN :#esoteric < 1452135165 18871 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :`learn Gray is e common misspalling of grey. < 1452135169 786790 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :Learned 'gray': Gray is e common misspalling of grey. < 1452135246 385778 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :just chennaling en eltarnetiva univarsa hara < 1452135300 458971 :singingboyo!~brandonso@d50-98-172-252.bchsia.telus.net PRIVMSG #esoteric :oerjan: well those were an odd couple of messages to join to < 1452135314 342106 :Elronnd!elronnd@znc.dank.ninja PRIVMSG #esoteric :`? gray < 1452135316 800249 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :Gray is e common misspalling of grey. < 1452135340 814927 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :singingboyo: okey < 1452135400 114643 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :also i was inspired by some logreading < 1452135453 752637 :Elronnd!elronnd@znc.dank.ninja PRIVMSG #esoteric :earjen: good work fixing thet dafinition < 1452135465 146872 :Elronnd!elronnd@znc.dank.ninja PRIVMSG #esoteric :*oarjen < 1452135475 186085 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :thenks < 1452135556 242606 :Elronnd!elronnd@znc.dank.ninja NICK :Alronnd < 1452135976 693383 :Alronnd!elronnd@znc.dank.ninja NICK :Elronnd < 1452137153 610779 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Read error: Connection reset by peer < 1452139746 610025 :hppavilion[1]!~Devourero@93-231-58-66.gci.net JOIN :#esoteric < 1452139787 834176 :lleu!~gnomebad@unaffiliated/lleu QUIT :Quit: That's what she said < 1452141902 630207 :oerjan!~oerjan@hagbart.nvg.ntnu.no QUIT :Quit: Nite < 1452141968 456586 :MDude!~fyrc@pa-67-235-0-195.dhcp.embarqhsd.net NICK :MDream < 1452143850 84521 :myname!~myname@84.200.43.57 PRIVMSG #esoteric :i am confused by the first dot < 1452144263 28010 :vanila!~vanila@unaffiliated/vanila QUIT :Quit: Leaving < 1452144699 982164 :jaboja64!~jaboja@esf125.neoplus.adsl.tpnet.pl JOIN :#esoteric < 1452144909 778916 :jaboja!~jaboja@esb12.neoplus.adsl.tpnet.pl QUIT :Ping timeout: 245 seconds < 1452145038 943007 :jaboja64!~jaboja@esf125.neoplus.adsl.tpnet.pl QUIT :Ping timeout: 260 seconds < 1452145355 77945 :hppavilion[1]!~Devourero@93-231-58-66.gci.net QUIT :Ping timeout: 276 seconds < 1452145957 873472 :singingboyo!~brandonso@d50-98-172-252.bchsia.telus.net QUIT :Remote host closed the connection < 1452147462 764039 :onetwothree4life!4b538701@gateway/web/freenode/ip.75.83.135.1 QUIT :Ping timeout: 252 seconds < 1452149248 706085 :singingboyo!~brandonso@d50-98-172-252.bchsia.telus.net JOIN :#esoteric < 1452149649 43189 :FireFly!~firefly@oftn/member/FireFly QUIT :Ping timeout: 250 seconds < 1452149675 7992 :EgoBot!dlopen@libdl.so QUIT :Ping timeout: 250 seconds < 1452149713 952917 :EgoBot!dlopen@libdl.so JOIN :#esoteric < 1452149779 724636 :FireFly!~firefly@oftn/member/FireFly JOIN :#esoteric < 1452150581 258298 :jaboja!~jaboja@esf125.neoplus.adsl.tpnet.pl JOIN :#esoteric < 1452152565 74247 :^^v!~^v@c-68-41-215-101.hsd1.mi.comcast.net JOIN :#esoteric < 1452154630 938605 :ocharles__!sid30093@musicbrainz/user/ocharles NICK :ocharles < 1452154698 644075 :^^v!~^v@c-68-41-215-101.hsd1.mi.comcast.net QUIT :Quit: Leaving < 1452155026 323770 :jaboja!~jaboja@esf125.neoplus.adsl.tpnet.pl QUIT :Ping timeout: 240 seconds < 1452155838 578260 :haavardp!freebsd@haavard.me NICK :haavard < 1452156145 207885 :mroman!~mroman@160.85.232.224 JOIN :#esoteric < 1452156155 367950 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :What happens if you reverse the order of returns? < 1452156443 569183 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :also... where would return values go... < 1452156479 156069 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :http://codepad.org/EZD8StCf < 1452156493 431116 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :basically ret would pop elements from the call stack in reverse order < 1452157387 250529 :haavard!freebsd@haavard.me PRIVMSG #esoteric :What would happen is your brain would start hurting < 1452157460 468042 :singingboyo!~brandonso@d50-98-172-252.bchsia.telus.net QUIT :Remote host closed the connection < 1452157574 607183 :\oren\!~oren@TOROON0949W-LP140-02-1242510803.dsl.bell.ca QUIT :Ping timeout: 256 seconds < 1452157608 962527 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca JOIN :#esoteric < 1452158259 462278 :sebbu!~sebbu@unaffiliated/sebbu QUIT :Quit: reboot < 1452158535 759974 :jaboja!~jaboja@esf125.neoplus.adsl.tpnet.pl JOIN :#esoteric < 1452158633 969683 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :also if any new languages come out that have nullable types as the default I will only look at them and go "whyyyy :(" < 1452158690 946904 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :hah < 1452158752 283065 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :because they should be non-nullable < 1452158785 550517 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :I don't have a problem with nullable types as defaults in C++, but that's because the nullable types are the _pointers_ (pointers to objects, to void to functions, to member objects, to member functions), which are supposed to be low level types, < 1452158801 743404 :jaboja!~jaboja@esf125.neoplus.adsl.tpnet.pl QUIT :Ping timeout: 255 seconds < 1452158808 650033 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :but you can build high-level types that aren't nullable, and the standard library generally has such types. < 1452158844 803070 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :The thing is that most methods for example in Java will assume that references are valid (non-null) < 1452158864 690761 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :luckily if they are null it will raise a NullPointer-Exception < 1452158871 898629 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :which you can catch somewhere < 1452158879 487801 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :On the other hand, there's some reasons why certain types have to be nullable in C++ even if they're semantically non-nullable, and this is because it's easier to handle types that can be moved, and even easier if they can be default-constructed, which often requires nullability. < 1452158898 980237 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :Which is why eg. unique_ptr is nullable and should be. < 1452158901 684578 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but usually you catch those only in outter-outter-outter function because you never expect a NullPointer-Exception to be thrown < 1452158938 299815 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :(And by can be moved, I mean that they can have noexpect move constructed technically.) < 1452158952 918244 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :mroman: sorry, I don't do java. < 1452158957 650432 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :so ideally you'd have to annotate references that they may be null < 1452158974 671206 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :such as String (never null), String? (maybe null) < 1452159005 203970 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :and passing a T? to a T would be deemed illegale without having it checked first < 1452159050 308174 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :Now for a language that's almost fully dynamically allocated, like java or haskell or ruby or python, the objections I mentioned don't stand, although there are some other reasons why you want nullable by default types in some of those languages. < 1452159068 754390 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :what reasons? < 1452159119 957023 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :There are cases where you'd want null (such as for example in certain data structures) but those would be T? then < 1452159122 909574 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :That's what @Nullable is for in Java. < 1452159145 88945 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :for example map.get would be T? because it returns null if the element does not exist < 1452159156 134393 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It's not an uncommon convention to say that all non-annotated references are always non-null, and require @Nullable otherwise. < 1452159180 382825 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It's a bit more verbose than the C# ?, but still. < 1452159252 551645 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :It's a convention, yes. < 1452159263 628924 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but it's not reflected within the language itself < 1452159271 503857 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Well, there are also good tools that make it an error to pass @Nullable Foo to a function taking a Foo. < 1452159274 848091 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :because the language's convention is, that they are all nullable < 1452159283 22262 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Of course you need an annotations for all libraries you use, including the standard one, which can be a pain. < 1452159310 316534 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :That's why it's so important to design a language nicely from the start < 1452159326 941522 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :if you fix things later you'll have trouble that you have lots and lots of old code around < 1452159333 85692 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :that don't follow new "things" < 1452159380 309373 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :and then you need external tools that check annotations/javadoc in the hope that all code you use use them properly too < 1452159416 290386 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :I guess findbugs might have some @Nullable heuristics < 1452159453 753071 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It does, and the Checker Framework is popular too. < 1452159459 165596 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :mroman: In haskell, as far as I know, almost nothing is implicitly nullable. < 1452159540 478412 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :Haskell is quite nice :) < 1452159555 545671 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :mroman: in ruby and python, the problem is that, unlike in smalltalk, classes don't have their set of instance variables fixed statically in advanced, but each instance can add instance variables dynamically. due to this, you can't require that all instances variables of an object of a user-defined class are initialized when the obj is constructed, < 1452159555 895097 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :except for things like fromJust < 1452159560 940892 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :and non-total list functions < 1452159601 305693 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I mean, I admit it's very much less clean than it would be if it were part of the core language, but it's still quite possible to have strict nullness checks in Java. < 1452159615 886987 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :so there have to exist non-existant instance variables, and either those are just implicitly read as a null value, which means the instance variable is of a nullable type, or cause an error when read, which sort of means the class is of a nullable type. < 1452159618 661011 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :b_jonas: Yes, this wouldn't work in dynamic languages < 1452159625 50652 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :you'd need static type checking < 1452159649 539367 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :the whole point is to avoid run-time nullpointer errors < 1452159690 654190 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but that's because i've worked with librarys with poor exception handling < 1452159724 972984 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :that throw nullpointer exceptions for all kinds of errors < 1452159747 758543 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :mroman: I see. < 1452159754 519889 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :which are annoying to debug because then I need to go through the source code of that library < 1452159767 574630 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :and trace where those values come from to see why something is null < 1452159790 379892 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :But is this a problem with the java language, or just some badly written libraries? < 1452159808 165786 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :and you can't do proper error reporting in your application because you can't really tell much if it the library just reports nullpointer exception < 1452159839 822998 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :that's why you display "An error happened" to the user-gui :) < 1452159845 879151 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :instead of a meaningful message < 1452159865 427238 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Oh? In my experience, you generally display a 200-line stack trace instead. < 1452159867 102454 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :b_jonas: It's 90% badly written library < 1452159880 974084 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :By the way, SQL also has types that are nullable by default, but can be declared as non-nullable, and I don't know the reason for that. < 1452159899 136814 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Okay, maybe you print the 200-line stack trace in the console and display "an error happened" in the GUI. < 1452159929 912203 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :fizzie: Well you obviously log the stack trace but you won't be displaying the stack trace to an end-user < 1452159938 489445 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :In SQL, is it a good practice to declare most table columns as NON NULL explicitly if they shall not contain nulls? < 1452159947 971376 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I've seen quite a lot of stack traces as an end user of Java programs. < 1452159982 355460 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :b_jonas: I've been doing that, but I don't know if it's standard practice or not. < 1452159988 295592 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :some display the stacktrace to the user < 1452160002 472336 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but in my case it wouldn't tell the user what he did wrong. < 1452160030 193164 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Sometimes it's a stack trace after Proguarding, which is extra helpful. < 1452160037 503477 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :fizzie: I'm not asking if it's standard practice or not. I'm asking if it's good practice or not. There's lots of bad SQL out there so the two needn't be the same. < 1452160048 679911 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :the only thing I can do is to check for the exact location of the null-pointer exception within the library < 1452160051 683588 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :and then do < 1452160081 110411 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :if(lineNo == 12) { /* this is wrong */ } else if (lineNo == 99) { /* that other thing is wrong */ } ... < 1452160097 15580 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Sounds very maintainable. < 1452160101 40208 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but I'm not going to do that because we have no more funding :D < 1452160125 30228 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :fizzie: The library has internal state < 1452160139 784070 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :lots < 1452160153 830736 :farooghkz!~farooghkz@5.218.91.67 JOIN :#esoteric < 1452160190 788815 :farooghkz!~farooghkz@5.218.91.67 PART :#esoteric < 1452160202 789703 :variable!~variable@freebsd/developer/variable JOIN :#esoteric < 1452160253 344513 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :which is also a problem if you restart tomcat < 1452160254 826622 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :because... < 1452160272 664508 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :even though the library saves certain things to files < 1452160281 230964 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :it doesn't properly reload all of them < 1452160379 815412 :variable!~variable@freebsd/developer/variable QUIT :Remote host closed the connection < 1452160564 217939 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :http://pastebin.com/T3uZLCtm <- that's the storage < 1452160617 546796 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :well that's the "database" of the library to be precis < 1452160621 586399 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :O(n) lookup < 1452160641 411108 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :and deletion is done by creating a tempfile, copying every entry in the file to it, skipping the one to delet, delete the file, rename the tempfile < 1452160670 298694 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :and yes, that code is property of IBM :D < 1452160713 591431 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :oh, I meant copy from tempfile back to original file < 1452160714 739804 :mauris!~mauris@unaffiliated/nooodl JOIN :#esoteric < 1452160728 8545 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :In ascii text, if I want to give a list of timestamps, each timestamp in an RFC 3339 / ISO 8601 format, then can I separate the timestamps with commas? Or are commas commonly used for something else in the context of ISO 8601 style timestamps? < 1452160754 854225 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :b_jonas: comma may optionally replace period. < 1452160786 622848 :sebbu!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1452160792 811191 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :hmm, that could be a problem < 1452160830 645432 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :(although I personally dislike commas used as a decimal point OR thousands separator) < 1452160840 164249 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :I might need to find a different separator then < 1452160858 55628 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :property, but not written I assume. < 1452160883 777602 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :It's an open source privacy/crypto engine/library < 1452160910 855783 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :indeed, https://en.wikipedia.org/wiki/ISO_8601#Times says commas are used as a decimal point in such timestamps < 1452160976 246351 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :>> Represent it as "14:30,5", "1430,5", "14:30.5", or "1430.5". << < 1452160991 26581 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :parsing date times must be tedious < 1452160993 554315 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :so many formats < 1452160994 101048 :J_Arcane!~chatzilla@37-219-28-69.nat.bb.dnainternet.fi QUIT :Ping timeout: 276 seconds < 1452161000 783439 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :and formats allow multiple variations? < 1452161010 920629 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Huh, I didn't know ISO 8601 was that flexible. < 1452161023 977995 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :Commas in numbers are a stupid historical practice from back when people frequently used a period as either a thousands group separator or a multiplication sign, and should be gone. < 1452161036 815597 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :We've got commas in numbers back in Finland. < 1452161050 903901 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :And the period as the thousands separator. < 1452161065 803861 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :We use ' for that < 1452161071 444446 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :1'000,95 < 1452161083 364088 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but I hate that we use commas for that < 1452161088 229309 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :did you know that in RFC 3339 +0000 and -0000 has different meanings? < 1452161092 444155 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :People should use symbols for thousands separators other than commas or periods, such as a thin space, underscore, apostrophe, double colon, space; and even if you insist on using the dot for a multiplication sign, you should use an upper dot rather than a comma for decimal separator. < 1452161119 452675 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :mroman: non-breaking space (or non-breaking thin space) FTW < 1452161119 611240 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :lifthrasiir: is that "duration"? < 1452161127 823453 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :mroman: no, the time zone < 1452161131 530849 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :hm < 1452161136 666923 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :hmm < 1452161137 309984 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :sorry < 1452161141 182469 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :it was RFC 2822 < 1452161164 410703 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :fizzie: yes, _traditionally_ Hungary has commas only for decimal points, just like how _traditionally_ it uses roman numerals to denote months, and multiple crazy formats to denote timestamps made of hours and minutes. < 1452161164 654246 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :anyway, only +0000 refers to UTC; -0000 signals the lack of timezone information (????) < 1452161172 800075 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :"Unknown local offset convention < 1452161173 742872 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :" < 1452161179 188542 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :I'd attend that convention. < 1452161181 938816 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :But these are traditions that many people don't follow anymore, and I wish even fewer people would follow. < 1452161239 158754 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :One big problem with the decimal point is that it's specified as the comma in lots of software, including most Hungarian locales, and those are generally VERY hard to change, eg. they require recompiling libc or worse. < 1452161241 782755 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Sorry, I misspoke: we use space for the separator. < 1452161245 743423 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I mean, in theory. < 1452161254 655691 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I don't think people actually use it that much, but that's the standard. < 1452161258 105557 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "fi_FI"); printf("%'.2f", 1234.56); } < 1452161259 508112 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :1 234,56 < 1452161265 765698 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :what's even worse is that scanf looks at the locale < 1452161303 994928 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :However, those Hungarian locales suck in other ways, eg. the one in Gnu libc has a blatant error in it where the month abbreviation for September is wrong, and message translations to Hungarian suck in lots of software. < 1452161324 535311 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :my brother used a chemical software that parsed some data format with scanf < 1452161341 452551 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but since he had a de_ locale set, the software couldn't parse it < 1452161367 475168 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :lifthrasiir: wtf < 1452161376 670657 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :that sounds strange < 1452161413 990989 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "fi_FI"); printf("%'.2f", 12340000.56); } < 1452161415 657407 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12 340 000,56 < 1452161429 453769 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "de_DE"); printf("%'.2f", 12340000.56); } < 1452161431 104713 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12.340.000,56 < 1452161441 253686 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "de_CH"); printf("%'.2f", 12340000.56); } < 1452161441 699450 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I remember seeing "Jan 1" formatted by some program that attempted localization as "1. Januaryta" -- en:January is fi:tammikuu, and for the date the month needs to be in the partitive case, so "tammikuuta", and apparently the program somehow managed to add the Finnish suffix to the English month name. < 1452161442 916602 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12'340'000.56 < 1452161460 412957 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :locales are fun . < 1452161525 506779 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "de_AU"); printf("%'.2f", 12340000.56); } < 1452161527 809859 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12340000.56 < 1452161532 741313 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :hm < 1452161535 799263 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :is it de_AU? < 1452161552 198082 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :or AT < 1452161553 508262 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :probably AT < 1452161561 334485 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "de_AT"); printf("%'.2f", 12340000.56); } < 1452161562 915368 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12340000,56 < 1452161597 4004 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :So you've got periods for de_DE, 's for de_CH and no separator at all for de_AT? Good. < 1452161598 366814 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :so germany has dots and comma, switzerland has apostrophes and dot and austria has nothing and comma < 1452161612 986874 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Oh, I didn't notice one of them had period for the decimals too. < 1452161619 613253 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Very nice. < 1452161646 23047 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "it_IT"); printf("%'.2f", 12340000.56); } < 1452161648 181752 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12340000,56 < 1452161656 827167 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "it_CH"); printf("%'.2f", 12340000.56); } < 1452161658 897648 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12'340'000.56 < 1452161666 174572 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :fizzie: yes, that kind of mixed language thing happens when a program has messages for a certain language but uses system locale for other languages. The most common such symptom ime is message boxes with an English message and Hungarian labels on the yes/no/cancel buttons. < 1452161705 863071 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "fr_FR"); printf("%'.2f", 12340000.56); } < 1452161707 800718 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12 340 000,56 < 1452161715 590159 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :ok < 1452161723 28127 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :so the frenchs are more loke the fins < 1452161729 987832 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :I have seen dates in a language mixed with text in a different language, but not a case where the program tried to attach an affix to it. < 1452161760 335705 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "jp_JP"); printf("%'.2f", 12340000.56); } < 1452161762 223255 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12340000.56 < 1452161769 423527 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :hm < 1452161771 70886 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :damn < 1452161775 720064 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :no kanjis? < 1452161801 965566 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :mroman: not from a plain printf. < 1452161808 451346 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :(that would be a bad idea anyway) < 1452161830 839274 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :oh < 1452161833 746395 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :it's ja_JP anyway? < 1452161847 340457 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "ja_JP.UTF-8"); printf("%'.2f", 12340000.56); } < 1452161849 328783 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12,340,000.56 < 1452161909 858555 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :why < 1452161914 170801 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :it could use JIS < 1452161919 660087 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :``` LANG=ja_JP locale < 1452161920 749704 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :locale: Cannot set LC_CTYPE to default locale: No such file or directory \ locale: Cannot set LC_MESSAGES to default locale: No such file or directory \ locale: Cannot set LC_ALL to default locale: No such file or directory \ LANG=ja_JP \ LANGUAGE= \ LC_CTYPE="ja_JP" \ LC_NUMERIC="ja_JP" \ LC_TIME="ja_JP" \ LC_COLLATE="ja_JP" \ LC_MONETARY="ja_JP" < 1452161929 952595 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :``` locale -a | grep ^ja < 1452161932 464003 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :ja_JP.eucjp \ ja_JP.utf8 < 1452161950 319272 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "sv_SE"); printf("%'.2f | ", 12340000.56); setlocale(LC_ALL, "sv_FI"); printf("%'.2f", 12340000.56); } < 1452161952 300795 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12 340 000,56 | 12 340 000,56 < 1452161958 475217 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :At least there's no difference there. < 1452162004 232208 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :``` locale -a | grep FI < 1452162004 811644 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :fizzie: try a norvegian locale, maybe it writes zeros with more or fewer diagonal slashes < 1452162005 510158 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :fi_FI \ fi_FI.utf8 \ fi_FI@euro \ sv_FI \ sv_FI.utf8 \ sv_FI@euro < 1452162027 703259 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :is that "with euro sign"? < 1452162030 469835 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric ::D < 1452162090 195412 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I think they might well be identical now. < 1452162092 308913 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :``` locale -a | grep ^ch < 1452162093 593608 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :No output. < 1452162096 63337 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :They probably were different at some point. < 1452162099 312142 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :``` locale -a | grep CH < 1452162100 676194 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :de_CH \ de_CH.utf8 \ fr_CH \ fr_CH.utf8 \ it_CH \ it_CH.utf8 < 1452162108 459480 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Or, hmm. < 1452162130 111874 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :no ch_CH < 1452162132 112648 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :that sucks :( < 1452162154 42595 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :``` locale -a | wc -l < 1452162155 283840 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :442 < 1452162158 739791 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :there's probably no standard for selecting dialects < 1452162226 760181 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :üch geits abr no güät. < 1452162244 389763 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :sv_SE and sv_FI have different currency rules, but I wonder if there are any programs anywhere with different messages for them. < 1452162259 522024 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :does C even have currency stuff? < 1452162303 950825 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Yes, in struct lconv. < 1452162334 252269 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :that's not in the libc though < 1452162337 63335 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It is. < 1452162341 464981 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :it is? < 1452162347 812745 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It is. C11 7.11p2. < 1452162361 505931 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :oh. C11 < 1452162368 671690 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :Is it in C99? < 1452162380 678244 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :C99 7.11p2 as well. < 1452162428 512902 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :I've never used that < 1452162438 314303 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :Is there a printf char for currencies? < 1452162450 269491 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "sv_SE"); struct lconv *se = localeconv(); printf("%s ", se->currency_symbol); setlocale(LC_ALL, "sv_FI"); struct lconv *fi = localeconv(); printf("%s", fi->currency_symbol); } < 1452162451 889483 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :kr EUR < 1452162464 943571 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :oh the ' does that < 1452162481 793558 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "de_CH"); printf("%.2f", 12340000.56); } < 1452162483 551237 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12340000.56 < 1452162491 858392 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "de_CH"); printf("%'.2f", 12340000.56); } < 1452162493 436835 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12'340'000.56 < 1452162504 203288 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :I deduced that ' meant "use delimiters for thousands" < 1452162522 608036 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :The ' *isn't* part of the standard, of course. < 1452162584 218376 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :I see. < 1452162603 623142 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :And ' is "use grouping if locale needs it". < 1452162628 580476 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I don't think there's a printf thing for money, which is allowed to use different characters for grouping and decimals. < 1452162658 53153 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "de_CH"); printf("%'I.2f", 12340000.56); } < 1452162659 723376 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12'340'000.56 < 1452162665 402800 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "ja_JP"); printf("%'I.2f", 12340000.56); } < 1452162667 911742 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12340000.56 < 1452162680 848950 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "fa_IR"); printf("%'I.2f", 12340000.56); } < 1452162682 868591 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :​۱۲٬Û³Û´Û°Ù¬Û°Û°Û°Ù«ÛµÛ¶ < 1452162685 784509 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Fancy. < 1452162711 809116 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "ja_JP.utf8"); printf("%'I.2f", 12340000.56); } < 1452162713 643004 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12,340,000.56 < 1452162722 216839 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :``locale -a | grep ja | grep utf < 1452162723 151945 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `locale: not found < 1452162726 408420 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :fizzie: if you want such fancy formatting, use libicu rather than just the small support in libc and locales < 1452162730 277843 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :`` locale -a | grep ja | grep utf < 1452162731 640806 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :ja_JP.utf8 < 1452162745 116883 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :still no kanji though < 1452162751 749608 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :mroman: ^ < 1452162760 753428 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :also < 1452162767 996076 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :it should print vertically < 1452162774 917094 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :of course < 1452162783 246221 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :a vertical terminal would look weird though < 1452162823 918765 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :although that should really be a terminal issu < 1452162825 818992 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :*issue < 1452162828 801042 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :not a printf issue < 1452162887 809199 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :incidentally, in Japanese text with digits written as kanji digits (not a read out number with words like "ten" and "hundred" in it) printed vertically, can you write a decimal point or a negative sign or other numeric punctuations, and if so, how? < 1452162926 639293 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :also bear in mind they count in 10'000 < 1452162947 816060 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :oh < 1452162948 860300 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :ah < 1452162949 536045 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :sry < 1452162951 694434 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :misread :D < 1452163042 401294 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :I don't even know if they write digits with kanjis < 1452163133 219089 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :mroman: they do, mostly in vertical writing, because roman digits don't work in vertical writing < 1452163190 734400 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :mroman: you can see it in street signs advertising prices in Japan, eg 600 yen is written as a kanji 6 followed by two of the circular punctuation followed by the kanji for yen. < 1452163205 294637 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :so they write 10000$ as 一〇〇〇〇$? < 1452163218 450815 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :oh ok < 1452163218 667986 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :Didn't know that. < 1452163221 790765 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :mroman: in vertical writing, yes, although I don't know how they write dollar < 1452163238 479409 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :mroman: in horizontal, generally they just use roman numerals < 1452163241 386982 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :um < 1452163249 543911 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :s/roman/hindu-arabic/ < 1452163261 966197 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :halfwidth ascii numerals that is < 1452163265 270203 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :not fullwidth < 1452163399 63023 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :It would be funny if they indeed used roman numerals < 1452163434 482853 :Frooxius!~Frooxius@193.86.27.79 QUIT :Quit: *bubbles away* < 1452163605 95541 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :how does one pronounce roman numerals? < 1452163618 518260 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :We just learned to read IV as 4 < 1452163625 343398 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but not how do spell roman numerals < 1452163725 885805 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :I don't know. I hate roman numerals, and belive they should not be used for anything, < 1452163757 112328 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :is 2003 spelled as M M three, or M M I I I or M M unus unus unus or M M tres? < 1452163787 335934 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :I wish people would stop using them, which has already partly happened since month numbers are almost never written in a roman numeral these days, and clock faces have roman numerals less often, but people still almost always use roman numerals to identify the districts in Budapest. < 1452163814 503260 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :chapters are often numbered with roman numerals < 1452163883 11567 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :Admittedly, there _is_ a good reason why districts of Budapest are written in a roman numeral: if you write them with digits in a street address, they are ambiguous with street names that start with a number. < 1452163954 366734 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :ideally the name of the street should contain enough information to navigate to it without a map < 1452163981 442095 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but people back in the days when streets were named fucked that up < 1452164012 525795 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :mroman: we're very far from that. we have lots of sets of streets in Budapest with identical names, which are distinguished by the district number, or very rarely not even by the district number. < 1452164013 511960 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :although some countries have systems where streets are named < 1452164020 464776 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but blocks and houses < 1452164032 616797 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :*are not not named < 1452164057 113621 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :The one I hate the most is "Csömöri út", of which there are two big parallel ones very close to each other. < 1452164093 206344 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :although today with google maps and smartphones this isn't much of an issue < 1452164094 981561 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :There are also lots of pairs of prominent streets with not identical but very similar names. < 1452164130 553964 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but if I think back to the older days it might have made sense to name streets in a way that people with rough knowledge of the city they live in can navigate to it < 1452164138 23893 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :mroman: it totally is. there's no easy way to search for a street name together with district number in google maps, unless you already know the postal code < 1452164151 54681 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :so ambiguous street names pose a problem in google maps. < 1452164167 866474 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :oh well, street names aren't unique among cities < 1452164178 599435 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :(that's probably just a bug they should fix) < 1452164184 447055 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but they should at least be unique within a city :D < 1452164219 360863 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :mroman: oh, among towns they're definitely not unique. most small villages, including ones with only one or few streets, have either a Kossuth utca or Kossuth Lajos utca or a FÅ‘ utca < 1452164271 294716 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :You can't quite expect them to be unique within a city because of the history of Budapest where it used to be multiple towns unified at different times, < 1452164295 532441 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :but that doesn't explain all the duplications: many dupe street names are new or are close and were in the same town originally. < 1452164307 529568 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :well then rename streets :D < 1452164471 808387 :mauris!~mauris@unaffiliated/nooodl QUIT :Ping timeout: 255 seconds < 1452165732 972475 :andrew!~andrew@61.141.94.171 QUIT :Remote host closed the connection < 1452165932 356412 :MDream!~fyrc@pa-67-235-0-195.dhcp.embarqhsd.net NICK :MDude < 1452166122 668906 :boily!~alexandre@96.127.201.149 JOIN :#esoteric < 1452166672 390246 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :@metar CYUL < 1452166672 622850 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :CYUL 071100Z 31006KT 15SM FEW030 M06/M12 A3031 RMK SC2 SLP267 < 1452166681 731145 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :shovelable weather. < 1452166825 179997 :TieSoul!~TieSoul@86.89.119.147 JOIN :#esoteric < 1452167102 963292 :TieSoul!~TieSoul@86.89.119.147 QUIT :Ping timeout: 260 seconds < 1452167884 787341 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :mroman: We've had lots of street renamings for political reasons, and unlike in the 1980s, lately the government has been an asshole about them, renaming the wrong streets to wrong names in wrong ways. < 1452167906 819065 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :I don't think we've everd had streets renamed to disambiguate streets that had already had a name. < 1452168003 56880 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :In particular, when they renamed streets in the 1980s and 1990s, they had left the signs of the old street name up next to the new one for a few years. Now they don't. < 1452168409 117097 :boily!~alexandre@96.127.201.149 QUIT :Quit: CRYSTALLINE CHICKEN < 1452169796 547528 :bender|!benderpc@2404:e800:e61a:41d:88a5:ad2:6a78:9cd9 JOIN :#esoteric < 1452170315 227795 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Information theory exam is this evening :( < 1452170504 802066 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :Taneb: huh? wasn't it a formal languages exam? < 1452170519 366734 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :b_jonas: that was someone else's that I was helping him revise for < 1452170529 166194 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :There's a lot of exams this week < 1452170544 742334 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :ok. < 1452170725 497722 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :I think I probably ought to learn information theory < 1452170754 60682 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :Nah, why bother. < 1452170964 75973 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :a couple of hours before the exam is a good time to remind yourself of those two or three facts that you keep forgetting :P < 1452170992 7255 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :it's a bad time to figure out what the fuck the course was about < 1452171054 162499 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :Information is measured in bits. < 1452171119 746924 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :int-e: the lecturer had a strong accent which I had difficulty understanding, but provided quite detailed notes online, so I decided to stop going to the lectures and do it in my own time < 1452171132 670792 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Unfortunately, only three quarters of my actions happened < 1452171138 959069 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :(I learnt about half the course in my own time) < 1452171147 479325 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :We had entropy, some coding theory and LFSR? < 1452171159 646313 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :Yeh, LFSR. < 1452171179 140490 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Coding theory is I think next term < 1452171204 191100 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :not much, just enough to know that there are block codes < 1452171239 145769 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :I'm not sure we had conv... thingies < 1452171245 790678 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :convolution codes? < 1452171258 67274 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :convolutional codes < 1452171466 777772 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :hmm, you could also move towards data compression (Huffman codes, to begin with) < 1452171473 383684 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :yeah < 1452171475 614 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :we had that too < 1452171492 313558 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :that's the time I came up with this stupid idea of compressing data by encoding the next occurences of things < 1452171525 530189 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :well.. not stupid just not as efficient for larger files than what's already being used. < 1452171602 98773 :Sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Ping timeout: 276 seconds < 1452171607 758365 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :hmm, for strings or single letters? if the latter it sounds like a move to front transformation... < 1452171618 416863 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :single letters < 1452171626 807661 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(not exactly the same, but similar in spirit) < 1452171669 130958 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :the rough idea is < 1452171678 718964 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric : < 1452171716 706486 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :http://codepad.org/7YhvTZxq < 1452171720 361513 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :^- like that < 1452171747 450066 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :you remove already encoded letters from the buffer < 1452171749 960693 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(the connection is that with a MTF transform, a letter gets encoded by the number of distinct letters seen since the previous occurrence of that letter) < 1452171791 186706 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :which has the effect that letters that were originally too far apart to be encoded as next occurence (if you use n bits you have 2^n lookahead) will come close to each other < 1452171913 602617 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :(http://codepad.org/i2Z71xxh is the decompression) < 1452171981 482762 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :if you use two bits for number of occurences and three bits for position < 1452171995 252497 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :"1. Estimate the information contents of the lecture (in bits)." < 1452172023 926566 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :then you can encode at best 3 occurences of the same letter within 27 letters < 1452172035 779193 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :because once you have found a next occurence you start counting from zero again < 1452172076 851656 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :thus if you encounter a letter s, you can encode three more occurences of the same letter within a range of 27 letters each needing only three instead of 8 bits < 1452172106 100175 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :i.e. with (2,3) "This is a short sentence" can be compressed by 29 bits < 1452172118 875608 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :> 192 / 29.0 < 1452172120 484443 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 6.620689655172414 < 1452172131 875520 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :> 29.0 / 192 < 1452172133 700740 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 0.15104166666666666 < 1452172138 156042 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :that's about 15% < 1452172186 651303 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :> (2+8+3*3)/(4*8) < 1452172188 321236 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 0.59375 < 1452172243 572809 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :40.625% is max for (2,3) < 1452172268 635385 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :at best you can get 87.5% < 1452172276 844431 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :which wasn't good to me < 1452172298 438419 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :well you get RLE as a corner case < 1452172318 621033 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(n,0) < 1452172324 483929 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :so I enhanced the compression by adding prefixes that allow to encode more occurences < 1452172338 36280 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :or prefixes that say "next token has (4,8) instead of (2,3)" < 1452172342 140525 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :stuff like that < 1452172387 341116 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but I managed to compress larger files only by about 50% < 1452172404 305841 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :where gzip usually at leasts manages 70% < 1452172436 780579 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :It was fun to play around in the boring lectures, but I haven't found any practical usages :D < 1452172458 697194 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :still, not bad < 1452172471 959563 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :It beats RLE. < 1452172477 725846 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :simple RLE at least < 1452172478 960987 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :because < 1452172482 980915 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :with rle stuff like < 1452172492 53015 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :ABCAABBCAAABCCBABCAB compresses poorly :) < 1452172500 397508 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :with my idea this compresses fairly well < 1452172543 622950 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :because once you encoded the A's for example < 1452172551 221354 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :you end up with BCBBCBCCBBCB < 1452172561 779130 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :then encode the Bs and you're only left with CCCCC < 1452172573 873268 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :The reason for bringing up RLE was that it can beat the 1/8 limit (in very special cases, obviously.) < 1452172638 845364 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Special cases, hmm... PCX was a quite successful image format. < 1452172641 564434 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :hm < 1452172642 397530 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but < 1452172653 653744 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :if you use 8 bits for number of occurences, and 1 bit for position < 1452172656 197119 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :then you have uhm < 1452172680 643461 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :> (8+8+255*1)/(256*8) < 1452172682 696758 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 0.13232421875 < 1452172703 47904 :puckipedia!~puck@irc.puckipedia.com QUIT :Ping timeout: 260 seconds < 1452172732 373904 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :> 1 - 0.875 < 1452172733 848442 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 0.125 < 1452172734 736742 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :"next occurrence of things" reminds me of perfect caching < 1452172777 286652 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but yeah, you can't beat the 1/8 limit < 1452172802 558274 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :1/8 limit? < 1452172806 872585 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :> (8+8+255*0)/(256*8) -- this would be RLE, getting *very* lucky (runs of length 256) < 1452172809 288836 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 7.8125e-3 < 1452172832 445966 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :and (8,1) would only be reasonably if you have sequences like ABABABABABABABABABABAAABABABABABABABABABAABABABABABABABABABABAAABABABABABABAAAAAABBBBBABABABABAB < 1452172855 670953 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :(i.e. worst case for RLE) < 1452172880 750622 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :worst case for RLE is where my idea would perform pretty much best case :D < 1452172904 479116 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :except that a smart RLE would switch to encode (AA,AB,BA,BB) in this case < 1452172924 70760 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :which is something you could do with my method as well < 1452172932 198840 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but I've never looked more into that < 1452172940 749114 :puckipedia!~puck@irc.puckipedia.com JOIN :#esoteric < 1452172945 103355 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :you could encode combinations of letters as well, instead of just single letters < 1452172946 945184 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :and LZ variants would just see a repetition of AB anyway... < 1452172952 268755 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :Where does the 1/8 figure come from? < 1452172968 304326 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :basically you'd look how many times c[0] occurs, and how many times c[0],c[1] occurs < 1452172971 904690 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :FireFly: from having at least 1 bit per offset < 1452172982 182671 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :if c[0]c[1] occurs more often then you switch to encode multiple letters < 1452173000 192593 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but that would make compression pretty slow I think < 1452173029 955569 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :But if you have say 256 repetitions of a string s, you'd get something like s(repeat 1)(repeat 2)(repeat 4)... no? < 1452173038 239453 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :FireFly: mroman's (n,m) uses m/8 bytes per byte in the best case as n gets large. < 1452173042 518080 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :Ah < 1452173060 714653 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :You need at least one bit for every occurence < 1452173065 971432 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :Okay < 1452173513 673047 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :I can compress the Orly.jpg by about 15% < 1452173611 434050 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :> 39 / 47 < 1452173613 204367 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 0.8297872340425532 < 1452173622 272918 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :> 1 - (39 / 47) < 1452173623 864775 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 0.17021276595744683 < 1452173691 32370 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :> 39576 * 8 < 1452173692 528157 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 316608 < 1452173765 419927 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :well in this case my optimized approach is slighty better than gzip < 1452173808 885970 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :(better than gzip -9 ) < 1452173875 618719 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :let me check lena.png < 1452173947 605165 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :15.8% compression with my algo < 1452173953 100128 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :no compression at all with gzip o_O < 1452173982 666134 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :-rw-r--r-- 1 mroman mroman 35222 Jan 7 14:46 lena.gz < 1452173983 563184 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :-rw-r--r-- 1 mroman mroman 35185 Jan 7 14:44 lena.png < 1452173987 611587 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :well < 1452174085 702813 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :http://codepad.org/NmUc324s < 1452174106 918780 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :It can beat gzip if you use variable length encodings for occurences/positions < 1452174196 423308 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :that's weird < 1452174276 146886 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :that's gotta be a bug < 1452174336 755011 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1452174586 781064 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :Yeah, bug. < 1452174598 667054 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :I've never unbugged the optimized version as it seems. < 1452174962 846224 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :I reversed a compression format some time ago with opcodes for things like "copy x bytes verbatim" or "copy x bytes from history at offset -d", but also interestingly a "copy x bytes verbatim interspersed with null bytes" < 1452174972 167126 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :First time I see that < 1452175062 531618 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :oh cute < 1452175106 193584 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :ascii to utf-16... < 1452175166 340545 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(windows executables are full of utf-16 strings) < 1452175274 762189 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric : `cc #include \n int main(void) { setlocale(LC_ALL, "sv_SE"); printf("%'.2f | ", 12340000.56); setlocale(LC_ALL, "sv_FI"); < 1452175277 688397 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric : printf("%'.2f", 12340000.56); } < 1452175299 969739 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric : `cc #include \n int main(void) { setlocale(LC_ALL, "sv_SE"); printf("%'.2f | ", 12340000.56); setlocale(LC_ALL, "sv_FI"); printf("%'.2f", 12340000.56); } < 1452175353 79411 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :RRRGH < 1452175366 378429 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "sv_SE"); printf("%'.2f | ", 12340000.56); setlocale(LC_ALL, "sv_FI"); printf("%'.2f", 12340000.56); } < 1452175388 634115 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12 340 000,56 | 12 340 000,56 < 1452175445 859295 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :int-e: yeah, or just compressing sequences of low 16-/32-bit ints < 1452175459 531784 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :ok, so why does sweden have spaces, while finnish swedish has no-break spaces? < 1452175466 532041 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :Good question < 1452175484 456393 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :They should probably be non-breaking in both cases < 1452175495 876073 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :breaking a numeral to multiple lines is just weird < 1452175516 603596 :Frooxius!~Frooxius@193.86.27.79 JOIN :#esoteric < 1452175930 736761 :mauris!~mauris@unaffiliated/nooodl JOIN :#esoteric < 1452176356 561992 :J_Arcane!~chatzilla@37-219-28-69.nat.bb.dnainternet.fi JOIN :#esoteric < 1452176615 239030 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric : `cc #include \n int main(void) { setlocale(LC_ALL, "hi_IN"); printf("%'.2f | ", 12340000.56); setlocale(LC_ALL, "ar_JO"); printf("%'.2f", 12340000.56); } < 1452176629 496888 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "hi_IN"); printf("%'.2f | ", 12340000.56); setlocale(LC_ALL, "ar_JO"); printf("%'.2f", 12340000.56); } < 1452176639 595870 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12,340,000.56 | 12,340,000.56 < 1452176665 944807 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :awww, no fancy arabic or devanagari numbers? < 1452176673 556715 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :ar_JO? < 1452176682 855170 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :arabic, jordan < 1452176694 946551 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :ah < 1452176723 14782 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :i wonder what differs between different arabic countries? < 1452176744 178978 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "ar_SA"); printf("%'.2f | ", 12340000.56); setlocale(LC_ALL, "ar_EG"); printf("%'.2f", 12340000.56); } < 1452176750 865655 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12340000.56 | 12,340,000.56 < 1452176779 578350 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :huh. saudis don't use thousands commas < 1452176793 928500 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :12 340 000.56 is my preferred style I think... < 1452176831 319534 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :or I guess I'd use less than a full space to group thousands < 1452176834 73368 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "th_TH"); printf("%'.2f | ", 12340000.56); setlocale(LC_ALL, "ar_AE"); printf("%'.2f", 12340000.56); } < 1452176835 600022 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12,340,000.56 | 12,340,000.56 < 1452176873 966038 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :i bet algeria and lebanon use . for , and , for . < 1452176887 939711 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :\oren\: you need the I flag for that < 1452176909 391732 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "th_TH"); printf("%'I.2f | ", 12340000.56); setlocale(LC_ALL, "ar_AE"); printf("%'I.2f", 12340000.56); } < 1452176910 996244 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12,340,000.56 | 12,340,000.56 < 1452176916 661686 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "DZ"); printf("%'.2f | ", 12340000.56); setlocale(LC_ALL, "ar_LB"); printf("%'.2f", 12340000.56); } < 1452176918 67516 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12340000.56 | 12,340,000.56 < 1452176955 741352 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "ar_DZ"); printf("%'I.2f | ", 12340000.56); setlocale(LC_ALL, "ar_LB"); printf("%'I.2f", 12340000.56); } < 1452176957 242584 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12,340,000.56 | 12,340,000.56 < 1452176990 99585 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :huh? really. apparently france didn't rub off on them too badly < 1452176996 352374 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "th_TH"); printf("%'I.2f | ", 12340000.56); setlocale(LC_ALL, "fa_IR"); printf("%'I.2f", 12340000.56); } < 1452176998 4158 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12,340,000.56 | Û±Û²Ù¬Û³Û´Û°Ù¬Û°Û°Û°Ù«ÛµÛ¶ < 1452177004 987603 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :Fancy < 1452177005 499933 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :\oren\: right, not only do they break hard eggs on the wrong end, they also write numbers wrong < 1452177007 366918 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :NICE < 1452177023 514717 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but fa_IR is the only locale I've found so far where I does something. < 1452177034 533692 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :huh? what the heck does the flag I mean in there? < 1452177040 859599 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :b_jonas: are you little endian or big endian? < 1452177056 615093 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :Is I locale-dependent format or something? < 1452177067 641069 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :int-e: little-endian. definitely. < 1452177070 336311 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "th_TH"); printf("%'I.2f | ", 12340000.56); setlocale(LC_ALL, "hi_IN"); printf("%'I.2f", 12340000.56); } < 1452177070 531162 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :big-endian sucks. < 1452177071 39215 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :wait 'I < 1452177072 597918 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12,340,000.56 | १२,३४०,०००.५६ < 1452177092 707726 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :b_jonas: also, from which end do you peel a banana? < 1452177097 782954 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :hindi with I gives you fancy devanagari numbers < 1452177103 239031 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :b_jonas: I'm talking about eggs, of course. < 1452177163 650340 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :what;s the coide for Urdu? < 1452177165 826543 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :int-e: I don't have a definite opinion about banana opening. < 1452177189 853256 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :int-e: see also https://en.wikipedia.org/wiki/Toilet_paper_orientation < 1452177252 624536 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :`cc #include \n int main(void) { setlocale(LC_ALL, "ur_PK"); printf("%'I.2f", 12340000.56); } < 1452177254 309468 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :12,340,000.56 < 1452177264 934804 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :also it seems to be poorly documented < 1452177270 275562 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :I can't find it anywhere on gnu.org < 1452177285 487577 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :http://www.gnu.org/software/libc/manual/html_node/Integer-Conversions.html#Integer-Conversions < 1452177285 782827 :callforjudgement!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1452177290 656421 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :I expected it to be mentioned here somewhore < 1452177295 386798 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :or under floating points < 1452177296 609047 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but it's not < 1452177300 201983 :callforjudgement!~ais523@unaffiliated/ais523 NICK :ais523 < 1452177307 238661 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :I always open a banana from the non-stem end < 1452177315 334768 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :then put it into a blander < 1452177323 804615 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :s/lan/len < 1452177363 988752 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :toilet paper shouldn't even come in a cylinder < 1452177376 80822 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric : REF (flag_i18n), /* for 'I' */\ < 1452177377 886630 :\oren\!~oren@TOROON0949W-LP140-1-1175999594.dsl.bell.ca PRIVMSG #esoteric :it should be in fanfold < 1452177380 754002 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :but it's there in the glibc < 1452177413 825668 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :_i18n_number_rewrite < 1452177417 465802 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :which invokes this < 1452177458 800470 :Sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1452177464 732877 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :b_jonas: I like that the article ends with a reference to Knuth. < 1452177519 226786 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :outdigit = _NL_CURRENT (LC_CTYPE, _NL_CTYPE_OUTDIGIT0_MB + n); < 1452178021 352840 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :__mempcpy (__mempcpy (__mempcpy (newp, file->filename, filenamelen), < 1452178026 955433 :mroman!~mroman@160.85.232.224 PRIVMSG #esoteric :that looks complicated af < 1452178034 926540 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :"Toilet paper orientation is often mentioned as a hurdle for married couples." hmm < 1452178058 139773 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Hah. < 1452178158 206573 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ooh, are we talking about the best Wikipedia article? < 1452178667 999191 :atslash!~atslash@static.231.107.9.5.clients.your-server.de JOIN :#esoteric < 1452178701 507394 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ACTION sees a process called "aptd" running during an update < 1452178705 877094 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :apt has a daemon now? < 1452178732 934749 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :apparently so, its job seems to be permissions checks on package operations < 1452178765 644073 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :"aptd allows to perform package management tasks, e.g. installing or removing software, using a D-Bus interface." ... sounds useless < 1452178806 5390 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :d-bus does have valid uses, but I'm not sure that's one of them < 1452178856 142241 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :to me it only serves to make software less predictable (read: "smarter") < 1452178966 415465 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well, something like unity relies on d-bus to get information about the running programs < 1452179336 912444 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :OOP spelled backwards is POO < 1452179343 514486 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric : < 1452179370 264968 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :ow < 1452181914 749048 :mauris_!~mauris@unaffiliated/nooodl JOIN :#esoteric < 1452181989 419649 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :ais523: wait, I found something strange. < 1452181996 200322 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :ais523: M:tG card Charmed Pendant. < 1452182032 671143 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :from Odyssey, has a mana ability that reveals hidden info in itself, same as Selvala < 1452182075 756574 :mauris!~mauris@unaffiliated/nooodl QUIT :Ping timeout: 255 seconds < 1452182082 269665 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :ais523: also Deranged Assistant from Innistrad but at least that one adds a known amount of mana < 1452182154 433748 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :And Millikin, from Odyssey too. Why are there so many of these? < 1452182406 706201 :mauris__!~mauris@unaffiliated/nooodl JOIN :#esoteric < 1452182423 655832 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :Incidentally, although this doesn't cause rules problems, Wheel of Sun and Moon can also be used (not only Lich's Mirror) to put cards into a library at mana ability speed. < 1452182504 349410 :Lord_of_Life!Elite12246@gateway/shell/elitebnc/x-nrktrscvovrxqjsy QUIT :Excess Flood < 1452182561 742883 :mauris_!~mauris@unaffiliated/nooodl QUIT :Ping timeout: 255 seconds < 1452182565 959040 :augur!~augur@c-73-46-94-9.hsd1.fl.comcast.net QUIT :Remote host closed the connection < 1452182586 204958 :Lord_of_Life!Elite12246@gateway/shell/elitebnc/x-fqwsgaguguulqava JOIN :#esoteric < 1452182597 981836 :augur!~augur@c-73-46-94-9.hsd1.fl.comcast.net JOIN :#esoteric < 1452182734 733883 :augur_!~augur@c-73-46-94-9.hsd1.fl.comcast.net JOIN :#esoteric < 1452182742 681714 :augur!~augur@c-73-46-94-9.hsd1.fl.comcast.net QUIT :Read error: Connection reset by peer < 1452182752 932519 :augur_!~augur@c-73-46-94-9.hsd1.fl.comcast.net QUIT :Remote host closed the connection < 1452182774 169611 :mauris__!~mauris@unaffiliated/nooodl NICK :mauris < 1452182838 715229 :Welo!~hato@546A4E77.cm-12-3b.dynamic.ziggo.nl JOIN :#esoteric < 1452184111 48951 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Special:Log/newusers14]]4 create10 02 5* 03Smurfix 5* 10New user account < 1452184112 350987 :mroman!~mroman@160.85.232.224 QUIT :Quit: Lost terminal < 1452184231 437374 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Brainfuck14]]4 M10 02https://esolangs.org/w/index.php?diff=46095&oldid=46068 5* 03Smurfix 5* (-1) 10de-apostrophied < 1452186018 749749 :spiette!~spiette@206.167.243.2 JOIN :#esoteric < 1452186059 406306 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :ais523: syn < 1452187125 533850 :Welo!~hato@546A4E77.cm-12-3b.dynamic.ziggo.nl QUIT :Quit: Leaving < 1452187224 323213 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I think DBus for desktop notifications makes some amount of sense. < 1452187370 571387 :augur!~augur@c-174-61-36-135.hsd1.fl.comcast.net JOIN :#esoteric < 1452187384 573752 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I think our workstations at the university used aptd to allow us to install what we needed without having to allow overall system-administration access, or general "sudo apt-get" privileges. < 1452187404 648178 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Incidentally, I noticed they had recently changed apt-get to drop privileges when it shows the changelog. < 1452187426 805470 :J_Arcane!~chatzilla@37-219-28-69.nat.bb.dnainternet.fi QUIT :Ping timeout: 250 seconds < 1452187437 142077 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :This wasn't the case while I was at the university; you could "sudo apt-get changelog foo" and then just "!sh" out from the less it spawned. < 1452187460 305575 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :(In a previous installation, where they were trying to use a sudoers file that allowed apt-get to do the same sort of limited software-installation privileges.) < 1452187494 508289 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :ACTION didn't know that less had !sh < 1452187505 376812 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :or ! < 1452187540 129026 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Apparently plain '!' is already a shell, but anyway, that. < 1452187547 663721 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I've only used the '!foo' form. < 1452187567 386981 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I wonder what the aptd stuff does if you tell it to install a package over DBus, and it has to ask you a question. < 1452188576 423254 :AlexR42!~textual@136.169.242.7 QUIT :Quit: Textual IRC Client: www.textualapp.com < 1452188727 507483 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :b_jonas: I'm here, sorry, and saw what you said < 1452188730 450679 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :just didn't have a reply < 1452189751 13634 :vanila!~vanila@unaffiliated/vanila JOIN :#esoteric < 1452190423 876430 :augur!~augur@c-174-61-36-135.hsd1.fl.comcast.net QUIT :Remote host closed the connection < 1452190661 520923 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :is there a way to copy a file descriptor? < 1452190666 501113 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :not like dup() < 1452190873 837455 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :i want to learn this stuff but i don't even know where to start < 1452191009 852493 :Deewiant!~deewiant@de1.ut.deewiant.iki.fi PRIVMSG #esoteric :http://www.mikescher.com/blog/1/Project_Euler_with_Befunge < 1452192324 98402 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :izabera: If not like dup, then like what? < 1452192355 717461 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :like if i read from fd1 i don't want the position to change in fd2 < 1452192440 724001 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Then, no, that's not possible in general. (What if it's a socket or a pipe?) < 1452192466 223049 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :well i know that < 1452192502 1771 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :If it's a file, you can open the same file again. Very non-portably, /proc/$pid/fd/$N could help you find it if you don't remember what it was. < 1452192543 43602 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :so i open it again, with the same flags, and then seek to the current offset < 1452192544 672020 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :gotcha < 1452192573 982528 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :i was just hoping it'd be possible to copy the internal file descriptor structure < 1452194393 34892 :hppavilion[2]!~Devourero@74-114-87-79.dynamic.asdk12.org JOIN :#esoteric < 1452194396 636443 :hppavilion[2]!~Devourero@74-114-87-79.dynamic.asdk12.org NICK :hppavilion[1] < 1452194403 877710 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :I've never seen an imperative language with Prolog-like rules instead of functions < 1452194636 798742 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :are you just doing X + prolog until you find an interesting one? > 1452195200 964448 JOIN :#esoteric > 1452195205 17581 JOIN :#esoteric > 1452195205 523595 JOIN :#esoteric > 1452195241 587150 JOIN :#esoteric > 1452195245 642350 JOIN :#esoteric > 1452195246 150565 JOIN :#esoteric > 1452195281 585570 JOIN :#esoteric > 1452195285 637915 JOIN :#esoteric > 1452195286 143688 JOIN :#esoteric > 1452195321 583643 JOIN :#esoteric > 1452195325 639411 JOIN :#esoteric > 1452195326 145852 JOIN :#esoteric > 1452195384 758212 JOIN :#esoteric > 1452195388 812346 JOIN :#esoteric > 1452195389 318746 JOIN :#esoteric > 1452195440 706005 JOIN :#esoteric > 1452195444 755243 JOIN :#esoteric > 1452195445 261576 JOIN :#esoteric > 1452195490 699975 JOIN :#esoteric > 1452195494 754514 JOIN :#esoteric > 1452195495 260849 JOIN :#esoteric > 1452195541 575618 JOIN :#esoteric > 1452195545 625381 JOIN :#esoteric > 1452195546 131029 JOIN :#esoteric > 1452195604 726540 JOIN :#esoteric < 1452195606 425490 :glogbot!dlopen@libdl.so JOIN :#esoteric < 1452195606 426704 :leguin.freenode.net NOTICE #esoteric :[freenode-info] channel flooding and no channel staff around to help? Please check with freenode support: http://freenode.net/faq.shtml#gettinghelp > 1452195608 779490 JOIN :#esoteric > 1452195609 285682 JOIN :#esoteric < 1452195784 153602 :lambdabot!~lambdabot@haskell/bot/lambdabot JOIN :#esoteric < 1452195828 348905 :sewilton_!sid32560@gateway/web/irccloud.com/x-mozgdhthoskuwflk NICK :sewilton < 1452197796 57721 :mauris_!~mauris@unaffiliated/nooodl JOIN :#esoteric < 1452197944 730056 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :Are there any fixities beyond Prefix, Postfix, Infix, Circumfix, Postcircumfix, Precircumfix, and Incircumfix < 1452197944 947670 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :? < 1452197984 953706 :mauris!~mauris@unaffiliated/nooodl QUIT :Ping timeout: 245 seconds < 1452197986 432421 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :I hope not, that's starting to sound dirty already. < 1452198015 686723 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :i don't even know what the last ones are < 1452198073 560187 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :izabera: postcircumfix is a[b] or a.(b), that sort of thing < 1452198084 826384 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :precircumfix is presumably the mirror image of that < 1452198090 206178 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and incircumfix is something that hppavilion[1] made p < 1452198091 856497 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :*made up < 1452198114 221560 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :ais523: I didn't make it up < 1452198120 290628 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :x?y:z is incircumfix < 1452198131 947323 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :And so is x[y]z, which is one notation for the Hyperoperations < 1452198133 902617 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hppavilion[1]: then what's x?y(z) ? < 1452198171 728432 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :ais523: That is actually x OR y(z), where y(z) is function application, which may or may not be an operation < 1452198191 142323 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :? being random selection in this case, though it could certainly mean something else < 1452198201 468921 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hppavilion[1]: no, I mean what's its fixity < 1452198209 928972 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :ais523: It's not a single operator < 1452198222 783211 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hppavilion[1]: suppose it is a single operator < 1452198228 931892 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :say it's some esolang's notation for x?y:z < 1452198241 995027 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :ais523: Otherfix < 1452198256 787609 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :bugfix < 1452198257 111084 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :xD < 1452198267 462993 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :infix->circumfix? < 1452198317 278477 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :I suppose Appfix < 1452198338 385623 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :Not for x?y(z), but as a fixity < 1452198406 845527 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :this is starting to look like c code written by a drunk monkey < 1452199178 607993 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :ais523: I think that's probabl x?(y(z)) where x? is a function name < 1452199189 617632 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :ais523: in ruby, function names can end in ? or ! or = < 1452199203 289870 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :and the syntax has some crazy irregular rules for everything < 1452199261 521764 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :at least, that's what it looks like to me < 1452199277 218687 :b_jonas!~x@152.66.83.24 PRIVMSG #esoteric :or else it could be x ? (y(z)) where ? is an infix operator < 1452199447 37355 :bb010g!uid21050@gateway/web/irccloud.com/x-wryetziruchnedtb JOIN :#esoteric < 1452199818 196706 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Duplifix. < 1452199847 443537 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It's one of the "positional categories of affixes" table entries in Wikipedia. It's not talking about operators, mind you. < 1452199866 946969 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Prefix, suffix/postfix, suffixoid/semi-suffix, infix, circumfix, interfix, duplifix, transfix, simulfix, suprafix, disfix. < 1452199976 210529 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :`` words 20 | sed -re 's/( |$)/fix\1/g' < 1452199978 904210 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :parumfix rftfix villfix olenicfix guibilifix ordamanirvifix cbadornerefix obernofix volutfix aucerdenkofix magnafix tinfix broadfix bergafix caseymafix exterfix samunufix runcifix fidtfix tralefix < 1452200007 818827 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Just as believable. < 1452200018 372179 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Especially exterfix. < 1452200486 787794 :mauris_!~mauris@unaffiliated/nooodl PRIVMSG #esoteric :broadfix could definitely be a thing < 1452201031 613923 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Willfix and wontfix. < 1452202057 764854 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :I just realized < 1452202076 427857 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :One could treat (x) as a circumfix operator that returns its argument < 1452202407 750619 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org QUIT :Ping timeout: 265 seconds < 1452203796 796575 :tjt263!~RAPSCA77I@unaffiliated/tjt263 JOIN :#esoteric < 1452203958 777118 :tjt263!~RAPSCA77I@unaffiliated/tjt263 PART :#esoteric < 1452204087 869659 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :Yeah, I implemented parentheses as a circumfix identity operator in a toy language I created once < 1452204096 619520 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org JOIN :#esoteric < 1452204136 627727 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :I could see that approach being useful in things like Agda with mixfix operators/functions too < 1452204511 853877 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :I suppose one could also treat , as an operator, as in [x, y, z] < 1452204525 787079 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :A minimum-precedence operator that builds arrays < 1452204547 659158 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :And [] takes such an array and turns it into a list < 1452204805 732426 :vanila!~vanila@unaffiliated/vanila QUIT :Quit: Leaving < 1452204999 827340 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :Eh. < 1452205002 125795 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :Maybe < 1452205030 74678 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :In Python , is an operator, but [a,b,c] is separate from that < 1452205396 821737 :mauris_!~mauris@unaffiliated/nooodl PRIVMSG #esoteric :pretty sure , isn't an operator? < 1452205439 589290 :mauris_!~mauris@unaffiliated/nooodl PRIVMSG #esoteric :like 3,2 is an exprlist, not an expr https://docs.python.org/2/reference/grammar.html < 1452205451 241282 :mauris_!~mauris@unaffiliated/nooodl PRIVMSG #esoteric :and you can't overload it they way you have __add__, __mul__... < 1452205460 904410 :myname!~myname@84.200.43.57 PRIVMSG #esoteric :print('.'), < 1452205633 396638 :Mongoose!~Mongoose@unaffiliated/mongoose JOIN :#esoteric < 1452205801 478132 :Mongoose!~Mongoose@unaffiliated/mongoose PART #esoteric :"Au Revoir" < 1452205831 346539 :spiette!~spiette@206.167.243.2 QUIT :Quit: :qa! < 1452206139 248582 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :Hm < 1452206175 107896 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :I thought it was a tuple-forming operator (but not overloadable), guess that's not how it works < 1452206669 278197 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :C has a proper operator called ',', but most commas in C source probably aren't instances of it, because there are also commas in argument, initializer and declarator lists (among others), which are more common. < 1452206919 289185 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :And Forth has a , word that's (presumably) chosen because it makes lists like 123 , 456 , 789 , look somewhat natural. < 1452207018 712584 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org QUIT :Ping timeout: 265 seconds < 1452207055 361131 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org JOIN :#esoteric < 1452207155 83601 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :Oh right, I think Qt overload the comma operator in C++ for its list type to append elements to a list, too < 1452207163 956888 :FireFly!~firefly@oftn/member/FireFly PRIVMSG #esoteric :Which is pretty horrible, but still < 1452207211 931557 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :An overloaded comma operator no longer has the sequence point properties of the real comma. < 1452207235 245017 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :The language I'm currently working on is called Irgex :) < 1452207247 979725 :olsner!~salparot@c83-252-193-184.bredband.comhem.se PRIVMSG #esoteric :doesn't it get some of those properties through argument evaluation when each comma operator is a function call? < 1452207251 705630 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org PRIVMSG #esoteric :It's basically Regex generalized to the level of TCness, or at least that's the pan < 1452207340 262283 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :olsner: I guess, but the evaluation order isn't specified. < 1452207540 666431 :hppavilion[1]!~Devourero@74-114-87-79.dynamic.asdk12.org QUIT :Ping timeout: 265 seconds < 1452207714 655594 :augur!~augur@c-73-46-94-9.hsd1.fl.comcast.net JOIN :#esoteric < 1452207749 507508 :augur!~augur@c-73-46-94-9.hsd1.fl.comcast.net QUIT :Remote host closed the connection < 1452207782 673690 :augur!~augur@c-73-46-94-9.hsd1.fl.comcast.net JOIN :#esoteric < 1452207809 420074 :augur!~augur@c-73-46-94-9.hsd1.fl.comcast.net QUIT :Remote host closed the connection < 1452207824 965965 :augur!~augur@c-73-46-94-9.hsd1.fl.comcast.net JOIN :#esoteric < 1452208208 385069 :atslash!~atslash@static.231.107.9.5.clients.your-server.de QUIT :Quit: Leaving < 1452208696 917788 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1452208976 588703 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I never remember what the comma operator in C does. < 1452209002 215957 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :@metar ENVA < 1452209002 715024 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :ENVA 072250Z 11009KT CAVOK M15/M20 Q1007 RMK WIND 670FT 10010KT < 1452209005 922240 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :if (something) expr1 , expr2; == if (something) { expr1; expr2; } < 1452209010 348713 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :"The left operand is evaluated as a void expression; there is a sequence point between its evaluation and that of the right operand. Then the right operand is evaluated; the result has its type and value." < 1452209037 861119 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :i think the airport is a bit colder than here < 1452209059 155491 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :@metar EFHK < 1452209059 578009 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :EFHK 072320Z VRB01KT CAVOK M28/M30 Q1015 NOSIG < 1452209064 65713 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :That's getting ridiculous. < 1452209079 447020 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :@metar EGLL < 1452209079 922012 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :EGLL 072320Z AUTO 21007KT 9999 NCD 03/00 Q1000 NOSIG < 1452209085 281240 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :@metar ENRO < 1452209085 710360 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :ENRO 072250Z AUTO VRB02KT 9999NDV OVC008/// M22/M24 Q1001 < 1452209099 205576 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :darn helsinki beats røros < 1452209120 68857 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :(røros is the default "cold as ..." place in norway.) < 1452209133 510556 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It's colder in Helsinki than it is in some parts of Lapland at the moment. < 1452209152 981363 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :@metar ENSB < 1452209153 412161 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :ENSB 072250Z 11014KT CAVOK M11/M17 Q1021 RMK WIND 1400FT 09020KT < 1452209158 589948 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :@metar EFRO < 1452209159 158187 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :EFRO 072320Z AUTO 32007KT 9999 FEW019 BKN080 BKN100 M26/M28 Q1006 < 1452209162 225354 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :svalbard is warmer :P < 1452209171 511352 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :rovaniemi? < 1452209174 378046 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Yes. < 1452209214 543048 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :@metar NZSP < 1452209215 127515 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :NZSP 072250Z 13005KT 9999 SCT030 M29/ A2851 RMK CLN AIR 13004KT ALL WNDS GRID SDG/HDG < 1452209219 93922 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It's not really a "cold as ..." place, but it's the standard "the northernmost place that has lots of people in it" place, I'd say. < 1452209230 442415 :Phantom__Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1452209291 938028 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 255 seconds < 1452209320 148789 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :the south pole seems to have no dew point < 1452209327 622207 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :balmy summer temps < 1452209340 100575 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :They broke the all-time electricity use record in Finland today. < 1452209449 285836 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :And also measured -41.1 degrees in Muonio. < 1452209475 396789 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I don't know if there are any airports nearby, and many places have already started getting warmer, I think -- the whole country's supposed to, in the next days. < 1452209522 945529 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :@metar EFET < 1452209523 383721 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :EFET 072320Z AUTO 00000KT 2200 -SN OVC027 ///// Q//// < 1452209539 477739 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Well, there's apparently no temperature at all in Enontekiö. < 1452209570 422943 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :is there any air pressure? < 1452209585 676939 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :maybe they have a vacuum problem. < 1452209585 851574 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I think that would've been the Q//// field. < 1452209591 677289 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Seems that way. < 1452209609 359462 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :No wind, either. < 1452209617 54797 :boily!~alexandre@96.127.201.149 JOIN :#esoteric < 1452209620 481943 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Still some clouds in the sky, though. < 1452209634 155649 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :brrohily < 1452209790 111018 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :*munch* *munch* rjan < 1452209807 91389 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :(there's a sandwich in my mouth) < 1452209975 397273 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :whoa whoa whoa < 1452209978 795683 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Undertale is TG. < 1452209994 120477 :J_Arcane!~chatzilla@37-219-50-92.nat.bb.dnainternet.fi JOIN :#esoteric < 1452210042 615491 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :*munchaf* < 1452210056 820354 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :what's undertale, and why are they transgender? < 1452210073 416514 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :boily: baron munchausen? < 1452210090 145417 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :boily: it's a game at http://undertale.com/ , and it's too good. < 1452210182 844489 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :baron munchausen had an operation? < 1452210194 1532 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :pixels! must resist the appeal... < 1452210217 246589 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :boily: what you must resist is spoilers < 1452210232 905049 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :this is a very spoilable game. don't make the mistake i did. just don't read anything about it. < 1452210329 610695 :hppavilion[1]!~Devourero@206.174.0.58 JOIN :#esoteric < 1452210436 20509 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :I'll continue what I'm doing, and having had the tab closed since a few bites ago, I'm at no reasonable risk of being spoiled. < 1452210444 689720 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :hppavellon[1]. < 1452210450 455147 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :@metar CYUL < 1452210450 882726 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :CYUL 072300Z 00000KT 15SM FEW120 SCT160 BKN240 M01/M06 A3028 RMK AC2AC1CI2 SLP256 < 1452210456 755107 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :-1. not so bad. < 1452211099 691395 :hppavilion[1]!~Devourero@206.174.0.58 PRIVMSG #esoteric :Wel. < 1452211101 561111 :hppavilion[1]!~Devourero@206.174.0.58 PRIVMSG #esoteric :*Well. < 1452211119 453787 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :Well? < 1452211127 270416 :hppavilion[1]!~Devourero@206.174.0.58 PRIVMSG #esoteric :The wiki article on Al-Qaeda has a section titled "Criticism"