< 1322438888 126922 :augur!~augur@129.2.129.33 JOIN :#esoteric < 1322439302 990671 :Slereah!~butt@ANantes-259-1-167-129.w90-49.abo.wanadoo.fr JOIN :#esoteric < 1322439369 524406 :Slereah_!~butt@ANantes-259-1-160-168.w90-49.abo.wanadoo.fr QUIT :Ping timeout: 260 seconds < 1322439394 455437 :augur!~augur@129.2.129.33 QUIT :Remote host closed the connection < 1322440401 827071 :ais523!~ais523@unaffiliated/ais523 QUIT :Remote host closed the connection < 1322440443 182726 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Sgeo: upeano spacedoot. < 1322440480 735225 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :kallisti, my notifier hasn't gone off, therefore I assume you're lying < 1322440498 304267 :Jafet!~Jafet@unaffiliated/jafet JOIN :#esoteric < 1322440577 28333 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Sgeo: your loss < 1322440590 569330 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PART #esoteric :"Leaving" < 1322440593 461520 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net JOIN :#esoteric < 1322440609 393509 :myndzi!myndzi@c-67-168-184-168.hsd1.wa.comcast.net PRIVMSG #esoteric :lordi \m/ < 1322440611 76587 :myndzi!myndzi@c-67-168-184-168.hsd1.wa.comcast.net PRIVMSG #esoteric :just sayin' < 1322440617 386260 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Sgeo: I guess you'll just never know how AWESOME this PUMPKINS are. < 1322440634 980808 :myndzi!myndzi@c-67-168-184-168.hsd1.wa.comcast.net PRIVMSG #esoteric :actually the video for blood red sandman gave me the boots: \m/ \m/ < 1322440635 170944 :myndzi!myndzi@c-67-168-184-168.hsd1.wa.comcast.net PRIVMSG #esoteric :                                                             `\o/´ < 1322440635 350023 :myndzi!myndzi@c-67-168-184-168.hsd1.wa.comcast.net PRIVMSG #esoteric :                                                               | < 1322440635 350203 :myndzi!myndzi@c-67-168-184-168.hsd1.wa.comcast.net PRIVMSG #esoteric :                                                              /'¯|_) < 1322440635 350308 :myndzi!myndzi@c-67-168-184-168.hsd1.wa.comcast.net PRIVMSG #esoteric :                                                            (_| < 1322440638 117189 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :kallisti, or, you may in fact be delayed in seeing the latest updates < 1322440649 466832 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Sgeo: no I've seen that < 1322440651 729422 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Because we saw pumpkins recently, but that was a while ago < 1322440659 408273 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :THERE ARE MORE PUMPKINS < 1322440660 97126 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :The pumpkins update < 1322441018 443185 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net JOIN :#esoteric < 1322441031 194407 :pikhq!~pikhq@71-219-213-37.clsp.qwest.net QUIT :Ping timeout: 258 seconds < 1322441261 574701 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :mmm cornbread. < 1322441262 393392 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so < 1322441263 392300 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :fucking < 1322441264 387616 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :good < 1322441287 787654 :sebbu2!~sebbu@unaffiliated/sebbu QUIT :Ping timeout: 248 seconds < 1322441472 886079 :sebbu2!~sebbu@ADijon-152-1-46-232.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1322441473 342085 :sebbu2!~sebbu@ADijon-152-1-46-232.w83-194.abo.wanadoo.fr QUIT :Changing host < 1322441473 520990 :sebbu2!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1322441746 595813 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I made so that some Haskell functions can have Show; it works you can type maybe (False, True) (join (,)) in GHCi and it tells you the output Nothing -> (False, True) Just False -> (False, False) Just True -> (True, True) < 1322441761 736375 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :If the type is ambiguous it assumes you mean () < 1322441821 972351 :DCliche!~Klisz@c-67-162-128-110.hsd1.co.comcast.net QUIT :Quit: You are now graced with my absence. < 1322441977 705760 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :> succ < 1322442096 725510 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1322442133 592166 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :http://upload.wikimedia.org/wikipedia/en/math/a/5/e/a5e707d8d73a8dc420acfb9cb8794622.png < 1322442148 557859 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :can someone explain this notation? it's a "family of sets" < 1322442162 75402 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :which, if I understand correctly, is a multiset of sets. < 1322442443 625941 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :if I understand correctly it's saying that the subsets are basically indexed by an integer or something? < 1322442541 918506 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :A choice function is a function f, defined on a collection X of nonempty sets, such that for every set s in X, f(s) is an element of s. < 1322442548 777694 :Betawolf!~betawolf@li151-44.members.linode.com PRIVMSG #esoteric :The way i read it, there are some sets S for every i in set I, but that's somewhat loose and probably dodgy as an interpretation. Is there any context that would help? < 1322442555 566629 :derdon!~derdon@p5DE8B220.dip.t-dialin.net QUIT :Remote host closed the connection < 1322442559 249017 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :For any set X of nonempty sets, there exists a choice function f defined on X. < 1322442566 263139 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oh okay... axiom of choice now makes sense. < 1322442614 224439 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Axiom_of_choice < 1322442624 299441 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I see what the subscript i is for now. < 1322442684 59113 :Betawolf!~betawolf@li151-44.members.linode.com PRIVMSG #esoteric :ah, cool < 1322442954 741188 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I was going to say that restricts the sets to being countable, but I guess "I" could be real numbers here so not necessarily. also the mapping function I -> S is not necessarily bijective I think. < 1322442976 830411 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Indexed_family < 1322443295 533682 :copumpkin!~pumpkin@unaffiliated/pumpkingod QUIT :Quit: Computer has gone to sleep. < 1322444273 861 :Jafet!~Jafet@unaffiliated/jafet QUIT :Quit: Leaving. < 1322444322 520423 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> let x = True in not x || x < 1322444336 906879 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :....no lambdabot? < 1322444341 969252 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :NOOOOOOOOOOOOOO < 1322444396 206282 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :let x = True in not x && x < 1322444397 827944 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :False < 1322444409 583674 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Haskell: not a fan of intuitionism. < 1322444416 806438 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :(ha ha ha) < 1322444466 321798 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :of course Maybe Bool gives you a three-valued logic, in which you could probably say that not x || x is unknown (aka Nothing in this construction) < 1322444491 851774 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :or well, that not x || x /can/ be unknown, depending on x. < 1322444608 910227 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :on a related note < 1322444613 718109 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :http://lonelynerdsinfedoras.tumblr.com/ needs more Gregor < 1322444674 395696 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :kallisti, intuitionism? < 1322444708 700286 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yes, a kind of mathematical constructivism < 1322444716 144716 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :What would the result of not True && True be in intuitionism? < 1322444745 575252 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Intuitionistic_logic < 1322444802 183728 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION is still learning so does not have an answer yet :P < 1322444944 389870 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :well I think not True && True is False < 1322444957 684871 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but not p && p cannot in general be proven (???) < 1322445100 253377 :GreaseMonkey!~gm@unaffiliated/greasemonkey PRIVMSG #esoteric :ok quick question, what would be a good scheme standard to implement? < 1322445124 606466 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Does R7RS exist? < 1322445137 227507 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :I've heard bad things about R6RS < 1322445138 360364 :GreaseMonkey!~gm@unaffiliated/greasemonkey PRIVMSG #esoteric :i believe so < 1322445141 356715 :GreaseMonkey!~gm@unaffiliated/greasemonkey PRIVMSG #esoteric :wait uh < 1322445166 874443 :GreaseMonkey!~gm@unaffiliated/greasemonkey PRIVMSG #esoteric :it's got its first draft < 1322445179 142247 :GreaseMonkey!~gm@unaffiliated/greasemonkey PRIVMSG #esoteric :but yeah i have heard bad things about versions after R5RS < 1322445246 221751 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I've heard bad things about people who hold strong opinions about scheme standards. < 1322445286 991854 :GreaseMonkey!~gm@unaffiliated/greasemonkey PRIVMSG #esoteric :"The R6RS standard has caused controversy because it is seen to have departed from the minimalist philosophy." < 1322445334 783845 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :that is not necessarily a bad thing. But I don't know anything about R6RS < 1322445380 424620 :Jafet!~Jafet@unaffiliated/jafet JOIN :#esoteric < 1322445412 90637 :Vorpal!~AnMaster@unaffiliated/anmaster QUIT :Ping timeout: 244 seconds < 1322445677 945303 :Klisz!~Klisz@c-67-162-128-110.hsd1.co.comcast.net JOIN :#esoteric < 1322445703 792094 :MDude!~fyrc@or-67-238-31-252.dhcp.embarqhsd.net QUIT :Ping timeout: 248 seconds < 1322446046 803003 :MSleep!~fyrc@or-67-238-31-252.dhcp.embarqhsd.net JOIN :#esoteric < 1322446364 516607 :GreaseMonkey!~gm@unaffiliated/greasemonkey PRIVMSG #esoteric :and i just found a weird bug in wla-dx < 1322446382 274219 :GreaseMonkey!~gm@unaffiliated/greasemonkey PRIVMSG #esoteric :if you attempt to include a completely empty file, it crashes < 1322446386 422828 :GreaseMonkey!~gm@unaffiliated/greasemonkey PRIVMSG #esoteric :add a newline, it's happy < 1322446452 987338 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :GreaseMonkey: that doesn't sound too weird. < 1322446485 683448 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :they probably just overlooked the possibility of the empty file or something? < 1322446495 593903 :GreaseMonkey!~gm@unaffiliated/greasemonkey PRIVMSG #esoteric :something like that < 1322446498 106666 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com QUIT :Remote host closed the connection < 1322446533 61192 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :what about files that contain characters but no trailing newline? < 1322446552 303013 :GreaseMonkey!~gm@unaffiliated/greasemonkey PRIVMSG #esoteric :no crash < 1322446564 624153 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah. yeah that's weird. < 1322448307 144921 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :Hm, I'm pondering this one problem. Implement a binary semaphore. The only atomic operation you're allowed is a swap operation: swap(x,y) atomically swaps the values of *x and *y. < 1322448356 484546 :TeruFSX!~quassel@71-210-150-147.mpls.qwest.net JOIN :#esoteric < 1322448416 750408 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :Arbitrarily many threads could be running at any time. They can sleep, they can revive each other, and they can interact with each other's memories. < 1322448448 448746 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :memories? < 1322448462 19193 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :Yeah. They use shared memory. < 1322448477 127667 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Oh, was thinking of the other definition of memory < 1322448492 820403 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Which might require Feather to implement? < 1322448497 200452 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :>:D < 1322448528 971771 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :ACTION is not thinking too clearly right now < 1322448566 105262 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :My original thought was for the semaphore to be represented with a variable. The variable contains 0 when the semaphore is available, and 1 when it's unavailable. To try to procure the semaphore, a thread prepares a variable containing the number 1, and atomically swaps it with the semaphore variable. < 1322448702 541738 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :If the thread gets a 0 from this swap, it successfully got the semaphore. If it gets a 1 from the swap, it did not. < 1322448709 721553 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :What's the problem with that, unless you have a rogue threat deliberately messing with other threads? < 1322448725 785002 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :*thread < 1322448733 777293 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :The problem with that is that there's no way to block on a semaphore. If you want to procure the semaphore, and it's unavailable, you have to busy loop. < 1322448809 730744 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :You want to give out the semaphore in fifo order? < 1322448873 52423 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :Jafet: well, I want to give it out in *some* order. If thread A procures a semaphore, then thread B tries to procure it, then thread A vacates it, then it should somehow wind up in B's possession. < 1322448876 310971 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :You could probably implement a queue with atomic swaps < 1322448896 149751 :TeruFSX_!~quassel@71-210-150-147.mpls.qwest.net JOIN :#esoteric < 1322448900 712295 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :I've managed to create a queue that goes in the wrong direction. Each thread has a pointer to the thread before it in line. < 1322448901 258154 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :You don't have a thread notification mechanism; how do you even do that? < 1322448936 840839 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :Unfortunately, once you're done with a semaphore, what you need to do is give it to the thread *after* you in line. < 1322448952 85396 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :Jafet: well, they have shared memory. To talk to a sleeping process, you change its variables and wake it up. < 1322448963 508823 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :Okay, so you do assume a notification mechanism. < 1322448979 534914 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :Well then, you should turn your queue the right way round, I guess. < 1322448980 34277 :TeruFSX_!~quassel@71-210-150-147.mpls.qwest.net QUIT :Read error: Connection reset by peer < 1322448998 456487 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :Yes, quite. < 1322449029 982939 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :The way the queue is built is... more or less the same as my original thought above. To try to procure the semaphore, you swap your own thread ID into the semaphore variable. < 1322449031 10477 :TeruFSX_!~quassel@71-210-150-147.mpls.qwest.net JOIN :#esoteric < 1322449044 363422 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :Either you get a 0, meaning the semaphore is yours, or you get the ID of the guy before you in line. < 1322449110 73132 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :What you could do is have each thread reserve a location in its memory, then write the memory address to the semaphore. The next thread writes its address to that address. < 1322449111 344233 :TeruFSX!~quassel@71-210-150-147.mpls.qwest.net QUIT :Read error: Connection reset by peer < 1322449131 54613 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :Er, writes its thread-id to that address. < 1322449167 500420 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :What if two threads both read the semaphore variable at the same time, and then both write in their addresses at the same time? < 1322449202 826899 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :I guess right after you swap, you can give guy-before-you your thread ID. But what if guy-before-you tries to use your thread ID right before you give it to him... < 1322449210 733594 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :Well, you'd need a small busy-loop while each thread atomically acquires its place in the queue. < 1322449243 806716 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :I don't think there's any way around that. < 1322449313 1105 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :Suppose that the zero address is invalid. Then a thread can lock the semaphore by swapping it with zero, add itself to the queue, and swap its memory address to the semaphore. < 1322449428 39514 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :Hm. Suppose that two threads try to swap zero into the semaphore at the same time. < 1322449476 512750 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :One of the threads will get a zero out. This means it can't proceed, so it has to sleep. Who wakes it up? < 1322449496 259465 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :tswett: "queue that goes in the wrong direction" like a stack? :> < 1322449519 624480 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :kallisti: that... yeah, a lot like a stack! < 1322449538 312420 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :heh heh heh heh < 1322449553 647647 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :tswett: it busy-loops for the minuscule amount of time it takes for the other thread to do two atomic swaps. < 1322449565 219377 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :umad? < 1322449573 988182 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION mad < 1322449579 684484 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :ACTION mad. < 1322449600 767019 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :Yeah, I guess busy looping may be fine if the thread it's waiting on is guaranteed to finish quickly. < 1322449616 130667 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :Inelegant but fine. < 1322449677 18884 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :It's probably theoretically impossible to do this with your primitives and no busy waiting < 1322449684 332826 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :Also, isn't a binary semaphore only two-valued? < 1322449743 28565 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :A binary semaphore is what we're implementing; that doesn't mean we have to implement it on top of a Boolean variable. < 1322449759 456939 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :I do wonder if it is theoretically impossible. If it is, I ought to prove it. < 1322449767 795984 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION briefly imagines an "intuitionistic semaphore" < 1322450283 868299 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1322451109 483275 :augur!~augur@208.58.5.87 JOIN :#esoteric < 1322452158 563692 :lambdabot!~lambdabot@li85-105.members.linode.com JOIN :#esoteric < 1322452333 150488 :Klisz!~Klisz@c-67-162-128-110.hsd1.co.comcast.net QUIT :Quit: You are now graced with my absence. < 1322453128 472358 :Jafet!~Jafet@unaffiliated/jafet QUIT :Quit: Leaving. < 1322454329 329336 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :HI FRIENDS < 1322454339 244976 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :@hoogle a -> b -> a -> a < 1322454339 923398 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Graphics.Rendering.OpenGL.GL.VertexSpec Color3 :: a -> a -> a -> Color3 a < 1322454340 102325 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Graphics.Rendering.OpenGL.GL.VertexSpec Normal3 :: a -> a -> a -> Normal3 a < 1322454340 281278 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Graphics.Rendering.OpenGL.GL.VertexSpec TexCoord3 :: a -> a -> a -> TexCoord3 a < 1322455208 710673 :augur!~augur@208.58.5.87 QUIT :Remote host closed the connection < 1322455592 74512 :augur!~augur@208.58.5.87 JOIN :#esoteric < 1322456529 824067 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake QUIT :Ping timeout: 260 seconds < 1322456625 279884 :kallisti!~eris@h125.40.18.98.dynamic.ip.windstream.net JOIN :#esoteric < 1322456625 458763 :kallisti!~eris@h125.40.18.98.dynamic.ip.windstream.net QUIT :Changing host < 1322456625 458909 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake JOIN :#esoteric < 1322456722 169495 :Klisz!~Klisz@c-67-162-128-110.hsd1.co.comcast.net JOIN :#esoteric < 1322457495 898458 :sebbu!~sebbu@ADijon-152-1-46-232.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1322457496 115190 :sebbu!~sebbu@ADijon-152-1-46-232.w83-194.abo.wanadoo.fr QUIT :Changing host < 1322457496 115291 :sebbu!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1322457548 195174 :sebbu2!~sebbu@unaffiliated/sebbu QUIT :Ping timeout: 244 seconds < 1322457833 523101 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :awwww yeah < 1322457842 861845 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :two monitors. so I can watch starcraft II games and get shit done < 1322457968 798499 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com JOIN :#esoteric < 1322458346 213943 :Nisstyre!~yours@infocalypse-net.info QUIT :Quit: Leaving < 1322458392 980335 :Nisstyre!~yours@infocalypse-net.info JOIN :#esoteric < 1322459507 56900 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Can there be barrier monad transformer? < 1322460043 134378 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I'm not really sure I understand barrier monads < 1322460064 860258 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I am trying to do it; maybe this way I trying can work. < 1322460166 76171 :oerjan!oerjan@129.241.210.70 JOIN :#esoteric < 1322460287 636335 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric : oerjan: let D : C^C \to C^C (let's say C_\infty functions only) be the differentiation operator, does it have a unique set of n periodic points of period n for all n? < 1322460318 539426 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ugh help English formatting < 1322460326 464771 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :a unique subspace of dimension n of periodic points of period | n < 1322460328 220161 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I'm supposed to format this as like... < 1322460331 372286 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :name, title < 1322460337 731868 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but the title is like... three parts. < 1322460353 563123 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Ph.D., Dean, School of Computing and Software Engineering < 1322460355 532220 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :or something like that. < 1322460369 430742 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :should I use semicolons? halp < 1322460375 702518 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :generated by e^(m*2pi*ix/n) for m=0,...,n-1. < 1322460378 831503 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :do semicolons exist? < 1322460388 231911 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :zzo38: can you explain a barrier monad? < 1322460396 482728 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@tell oklopol see logs < 1322460397 207571 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1322460402 30249 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Semicolons exist but I don't know what context the document is < 1322460448 75433 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :maybe like... < 1322460452 532479 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :oklopol: er, scratch the formula, thinking too fast < 1322460462 294513 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Name, Ph.D.; Dean, School of Computing and Software Engineering < 1322460469 243581 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but the semicolon looks weird next to that . < 1322460470 332977 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :drop the 2pi, i think < 1322460477 846467 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :oh hm < 1322460496 813214 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :it's e^(phi*x) where phi^n = 1, of course < 1322460505 214966 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :kallisti: OK. data Barrier f b t = Unit t | Barrier f (b -> Barrier f b t); It means, there is a front type and a back type. The "yield" operation yields a front value and something else make a back value to continue. Similar to how generator functions in JavaScript are, a bit < 1322460505 393841 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :of which there are n solutions. < 1322460540 614158 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :zzo38: how does Unit fit into this? < 1322460558 666654 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Unit is the "return" operation: return = Unit; < 1322460566 383172 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah okay. < 1322460613 495208 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Of course it is also functor and applicative; all monads are supposed to be also functor and applicative. < 1322460625 457321 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :the case n=4 gives e^x, e^(-x), e^(ix) and e^(-ix), and the last two can be rearranged as (e^(ix)+e^(-ix))/2 and (e^(ix)-e^(-ix))/(2i), which you may recognize. < 1322460631 935735 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah okay, so then the monadic function is the second field there. (b -> Barrier f b t) < 1322460643 291793 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@tell oklopol etc. < 1322460643 977736 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1322460661 35887 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :There is actually a third constructor Fail String which is the "fail" operation and is also used for the Alternative instance < 1322460702 10789 :copumpkin!~pumpkin@unaffiliated/pumpkingod QUIT :Quit: Computer has gone to sleep. < 1322460715 494649 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :zzo38: how does >>= work? is there a >>=? < 1322460741 124354 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :or is there just a f :: Barrier f b t -> Barrier f b t ? < 1322460752 155420 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :s/f/func/ < 1322460758 932432 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :(to differentiate it from the front type) < 1322460759 939930 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Yes there is a >>= it is: Unit x >>= f = f x; Fail x >>= f = Fail x; Barrier a c >>= f = Barrier a $ c >=> f; < 1322460777 592641 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah okay. < 1322460812 256477 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so the front value is... always the same? < 1322460816 717316 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :at least when binding/\ < 1322460818 810860 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and returning./ < 1322460850 805089 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :kallisti: Do you know the "yield" command in Javascript? The "yield" command here is similar thing (which is the reason why it is called "yield"). < 1322460862 936244 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :yield = flip Barrier Unit; < 1322460865 411452 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :So, what's this Barrier thing? < 1322460881 733781 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Sgeo: ... < 1322460890 369354 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :only one question asker allowed. :P < 1322460895 11048 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :NOT REPEAT QUESTIONS < 1322460898 46083 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION decrees. < 1322460933 642568 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Sgeo: See above; I specified the definitions < 1322460972 212647 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric : actually i sent a text to my colleague and he solved it in 2 minutes, ignore that. < 1322460975 447779 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :TOO LATE < 1322461044 940052 :mtve!~mtve@65.98.99.53 QUIT :Ping timeout: 260 seconds < 1322461106 569264 :yorick!~yorick@unaffiliated/yorick QUIT :Ping timeout: 252 seconds < 1322461152 259103 :yorick!~yorick@unaffiliated/yorick JOIN :#esoteric < 1322461498 498136 :Klisz!~Klisz@c-67-162-128-110.hsd1.co.comcast.net QUIT :Quit: You are now graced with my absence. < 1322461631 428947 :atehwa!atehwa@aulis.sange.fi PRIVMSG #esoteric :kallisti: a system which has "truth values" for propositions is usually non-intuitionistic, because intuitionistic logic does not track truth but (constructive) provability. < 1322461679 644357 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :well, right/ < 1322461694 778049 :atehwa!atehwa@aulis.sange.fi PRIVMSG #esoteric :It could be possible, of course, to model "justified" or "provable" with boolean values, but then it would be quite clear that two values would not suffice. < 1322461699 484629 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but it's a sort of truth-valued logic.. < 1322461727 17934 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :It is possible to make classical logic in Haskell, too, by making a class of law of excluded middle. < 1322461767 726915 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :if I understand correctly, it's a three-valued logic? or maybe doesn't work like that and exists only as symbolic transformations.. ? < 1322461767 943219 :atehwa!atehwa@aulis.sange.fi PRIVMSG #esoteric :moreover, it's not impossible to prove x || not x if we already know that x is either provable or disprovable < 1322461778 791148 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :atehwa: yes, I understand that. < 1322461785 518497 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :i vaguely recall there's a proof that no number of truth values suffices for intuitionistic logic < 1322461794 596475 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :it may be no finite number < 1322461797 17754 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :hmm, okay. < 1322461800 251944 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :interesting. < 1322461817 124376 :atehwa!atehwa@aulis.sange.fi PRIVMSG #esoteric :kallisti: basically, intuitionistic logic is defined by those symbolic transformations < 1322461827 625351 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :okay, yes I understand now. < 1322461837 797623 :atehwa!atehwa@aulis.sange.fi PRIVMSG #esoteric :what you're trying to do is to give a "semantics" for those symbolic transformations < 1322461852 82826 :atehwa!atehwa@aulis.sange.fi PRIVMSG #esoteric :And I think it can be done by three-valued logic, but I'm not sure < 1322461852 568636 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :basically implication, though it acts as a symbolic transformation. < 1322461875 40790 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :oerjan, so, if I were to do it in Haskell, would I require Integer or something, or is it not so straightforward? < 1322461875 681446 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Intuitionistic logic is the same as function types of Haskell (due to Curry-Howard). < 1322461878 471564 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Or a recursive data type? < 1322461887 627353 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Wait what? < 1322461897 729881 :atehwa!atehwa@aulis.sange.fi PRIVMSG #esoteric :well, there's a whole lot of "rules" that describe transformations which are allowed in intuitionistic logic because they're considered "constructive" < 1322461907 134414 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Sgeo: zzo38: I was about to say function type is basically implication due to Curry-Howard. < 1322461917 733603 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :for one thing, intuitionistic logic satisfiability is PSPACE complete, while any finite truth value operators can have it checked in NP. that's not a proof though since it's still not proved that NP /= PSPACE < 1322461923 831914 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :I don't quite understand Curry-Howard < 1322461948 279187 :atehwa!atehwa@aulis.sange.fi PRIVMSG #esoteric :(p ||q) && not p => q is _not_ one of the allowed transformations, whereas (p => q) && p => q is. < 1322461989 757765 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Sgeo: okay so basically types in programs are like mathematical formula, and the program that the type describes is a proof of that formula. < 1322462018 168164 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Sgeo: so when you write the type a -> b you're actually talking about a logical implication. < 1322462074 411531 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :And when I write a -> b? < 1322462081 138628 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :(I think I saw something about this) < 1322462086 532250 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :wat? < 1322462110 278366 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :The fact that there's no way to write a -> b (without cheating) means a -> b cannot be proved, or something? < 1322462122 606915 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :Sgeo: i guess that you could use kripke models as your representation for intuitionistic logic. i recall playing around with those. < 1322462130 168932 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :kripke models? < 1322462149 884458 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Sgeo: well there's no proof of -> in intuitionistic logic because it's basically the axiom of intuistionistic logic. < 1322462241 408957 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Kripke_semantics#Semantics_of_intuitionistic_logic seems quite unreadable. < 1322462297 883680 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Some proofs are simple: doubleNot = flip id; contrapositive = flip (.); deMorgan x = either (fst x) (snd x); < 1322462299 632359 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :well, the notation anyway. < 1322462356 753985 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :identity = id < 1322462358 973888 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :whew. < 1322462362 108361 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION wipes brow. < 1322462408 96105 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric ::t flip (.) < 1322462409 229337 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a b (f :: * -> *). (Functor f) => f a -> (a -> b) -> f b < 1322462410 853884 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Because I'm lazy < 1322462422 430985 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :...wrong . < 1322462427 855565 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric ::t flip (Prelude..) < 1322462428 607532 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric ::t flip (Prelude..) < 1322462428 786481 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall b c a. (a -> b) -> (b -> c) -> a -> c < 1322462429 699107 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall b c a. (a -> b) -> (b -> c) -> a -> c < 1322462434 287392 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :say you want to show that p || not p is not provable in intuitionistic logic, by finding a kripke model in which it's not true in all frames. < 1322462461 925316 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :In this case, c is Zero (an uninhabited type) < 1322462476 367816 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oerjan: what's the type for not in Haskell? < 1322462497 188455 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric ::t flip id < 1322462498 241091 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a b. a -> (a -> b) -> b < 1322462519 949661 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :let frame 1 be one in which p is false, and frame 2 be one in which p is true. that satisfies the condition. but then not p is false in frame 1 because p is true in a later frame. and p || not p is false in frame 1 because both p and not p are false there. < 1322462565 690102 :Jafet!~Jafet@unaffiliated/jafet JOIN :#esoteric < 1322462650 293215 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah I see type Not a = a -> b < 1322462666 106565 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :kallisti: b should be Void < 1322462668 207546 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :not :: Not a < 1322462671 507854 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :not = undefined ????? < 1322462672 872982 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :er < 1322462690 184 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :hmmm < 1322462691 94093 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oh < 1322462706 939777 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :Void is the representation of false. < 1322462718 783379 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I called the uninhabited type Zero and defined as: data Zero; type Not x = x -> Zero; < 1322462719 60841 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :or _|_ < 1322462777 215214 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :hmmm okay, but then what's the proof? < 1322462781 10705 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Note you could represent natural numbers by using Zero as number zero and Maybe as successor. If there is such a thing as types that are only capable of holding bijective functions, you could use that to prove equality of natural numbers. < 1322462812 387824 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :kallisti: proof of what? < 1322462817 536666 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oerjan: negation < 1322462823 81644 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :is it given? < 1322462848 580199 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :kallisti: to proven negation of x, you construct a contradiction from x. i.e. you construct an element of Not x. < 1322462852 557141 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :*prove < 1322462888 377019 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oerjan: oh okay. so in Haskell data types with constructors are automatically proven, basically. < 1322462913 42071 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :if they're made of things that are proven (??) < 1322462917 780869 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :they're automatically proven if you can find the arguments to their constructors... < 1322462926 73558 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :yes < 1322462942 679298 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :constructivism wheeeeee < 1322462945 379390 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :For example: Not Zero proven by the function id < 1322462981 281486 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :"prove that booleans are true." "okay here you go I made them" < 1322462996 474899 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :s/are true/exist/ < 1322463066 724620 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric : but not p && p cannot in general be proven (???) <-- it can be disproven. < 1322463106 543209 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric ::t const (const True) < 1322463107 243265 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall b b1. b1 -> b -> Bool < 1322463108 654440 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :of course with that one in particular, that's a little circular semantically < 1322463132 809238 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric ::t asTypeOf (const True) < 1322463133 489205 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall b. (b -> Bool) -> b -> Bool < 1322463134 502969 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@djinn Not (Not p, p) < 1322463134 996722 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f (a, b) = a b < 1322463147 881315 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :explosion :: (p, Not p) -> q; explosion (x, y) = contradiction $ y x; where contradiction :: forall t. Zero -> t; < 1322463154 589588 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric ::t const (asTypeOf True) < 1322463155 91764 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall b. b -> Bool -> Bool < 1322463159 80421 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :kallisti: @djinn is an intuitionistic prover < 1322463174 629410 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :@djinn Void < 1322463174 808327 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :-- f cannot be realized. < 1322463177 765095 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :@djinn f :: Void < 1322463177 943999 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Cannot parse command < 1322463183 817153 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :@djinn a -> Void < 1322463183 996000 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :-- f cannot be realized. < 1322463188 916370 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :is Void not a thing? < 1322463216 609859 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :Void is an uninhabited type. you cannot actually construct it, it's a representation of a contradiction. < 1322463224 124091 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oh... right. < 1322463235 572280 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@djinn Void -> a < 1322463236 43489 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f = void < 1322463242 457185 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@djinn-env < 1322463242 998874 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :data () = () < 1322463243 178001 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :data Either a b = Left a | Right b < 1322463243 178177 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :data Maybe a = Nothing | Just a < 1322463243 178286 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :data Bool = False | True < 1322463243 178393 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :data Void < 1322463245 43418 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :type Not x = x -> Void < 1322463247 52103 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :class Monad m where return :: a -> m a; (>>=) :: m a -> (a -> m b) -> m b < 1322463248 943747 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :class Eq a where (==) :: a -> a -> Bool < 1322463269 386954 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah okay, so then Not Void is the only valid type for a in data Not a = Not (a -> Void)? < 1322463270 47781 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :hm not sure where that void is defined. < 1322463292 766251 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :kallisti: recursive types are not allowed in this context. < 1322463299 89405 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :er hm sorry < 1322463300 826866 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :misread < 1322463342 333948 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@djinn Not Void < 1322463342 952073 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f a = a < 1322463354 935916 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :a = Void < 1322463380 169298 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :@djinn Not Bool < 1322463380 348169 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :-- f cannot be realized. < 1322463385 186152 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah okay. < 1322463405 537094 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION gets it, I think. < 1322463485 888065 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :that Bool definition is somewhat unrelated to the intuitionistic truth values < 1322463493 502754 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :which are Void and Not Void, really < 1322463496 696715 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :right. < 1322463515 380581 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Bool is a sum type of... unit types? < 1322463567 499590 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :yeah. @djinn's main purpose is to construct haskell functions with prescribed types, so the intuitionistic part is sort of just underlying. < 1322463682 63982 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@djinn a -> b -> a < 1322463682 671447 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f a _ = a < 1322463718 262898 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@djinn Either a b -> (a -> c) -> (b -> c) -> c < 1322463718 827937 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f a b c = < 1322463719 6759 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : case a of < 1322463719 6958 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Left d -> b d < 1322463719 7066 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Right e -> c e < 1322463752 469232 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oerjan: also, are primitive types kind of just... unproven? < 1322463763 61121 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :like Int#, State#, etc. < 1322463809 169197 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric : @djinn doesn't deal with those, i think. it's not _really_ haskell, but a fragment without nontermination and without recursive types. < 1322463831 869102 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah, well, the Haskell Report does define Int as a huge number of constructors right? < 1322463836 499757 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :or something like that. < 1322463840 621934 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :What does Either a b mean in the context of intuitionistic logic? < 1322463844 583305 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :and you can define new nonrecursive types. < 1322463849 101290 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :Sgeo: or < 1322463855 330069 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :a or b < 1322463860 595617 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Ah, ok < 1322463914 992351 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :also the | in data declarations is also or. < 1322463919 937314 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Can I read that as "If I have a proof of a or b, and I have a proof of if a then c, and I have a proof of if b then c, then c? < 1322463920 487085 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :kallisti: well yeah. it's not expected that implementations actually _use_ that representation. :P < 1322463933 819882 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Or do I have to do currying? < 1322463938 678307 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :Sgeo: that's fine < 1322463976 916427 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Partial functions don't count as proofs, right? Otherwise I could prove Either a b -> a < 1322463984 449725 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :indeed not. < 1322464008 366433 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :What does Maybe a mean? < 1322464022 814846 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :And how do I do logical and? < 1322464030 980932 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Logical and does (,) < 1322464031 842168 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and is (,) < 1322464032 84470 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :it's isomorphic to Either () a < 1322464035 717636 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :And logical or does Either < 1322464043 785915 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :*Maybe is < 1322464065 148044 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Maybe makes it always true it is always provable by Nothing < 1322464066 5390 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :oerjan, I take it that that's essentially useless, since it should always be true < 1322464073 605174 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :Sgeo: yeah < 1322464074 779185 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :no that's why it's useful. < 1322464079 214050 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :in program-land :P < 1322464080 722489 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :For numbers, you might use Maybe for successor, though < 1322464111 451041 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@djinn Maybe a < 1322464112 21710 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f = Nothing < 1322464123 577456 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :@djinn a < 1322464124 182604 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :-- f cannot be realized. < 1322464172 437564 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@djinn Bool < 1322464172 902296 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f = False < 1322464209 135542 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :type Bool = Either () () -- yes? < 1322464210 238384 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@djinn (() -> a) -> a < 1322464210 916291 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f a = a () < 1322464217 858178 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :kallisti: essentially :P < 1322464231 871535 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :and () is useless since you can construct it on the fly < 1322464245 440305 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :oh hm. < 1322464272 15936 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Why have anything other than Either, (,), and ()? < 1322464281 256987 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :And (->) < 1322464285 660274 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :i _think_ @djinn makes an attempt to use as many arguments as possible, i.e. it's slightly preference for linear logic. so it's not _entirely_ useless. < 1322464297 871094 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@djinn Maybe a -> (a -> b) -> Maybe b < 1322464298 541974 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f a b = < 1322464298 720882 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : case a of < 1322464298 721052 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Nothing -> Nothing < 1322464298 721153 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Just c -> Just (b c) < 1322464318 848981 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Since it is isomorphic to Either () a that is why it can be successor, if Either is addition, if you have a type of bijective functions: Either () a <-> Maybe a { Left () -> Nothing; Right x -> Just x; } if you had a <-> type then you could *prove* it to be isomorphic. < 1322464328 432128 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Sgeo: that's basically what intuitionistic type theory is. (don't forget Void) < 1322464373 277590 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :oerjan: It is: f = flip fmap < 1322464444 341992 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric : Why have anything other than Either, (,), and ()? <-- the others are defined using @djinn's definition mechanism < 1322464450 521492 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@list djinn < 1322464451 118643 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :djinn provides: djinn djinn-add djinn-del djinn-env djinn-names djinn-clr djinn-ver < 1322464472 470122 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :@djinn Void < 1322464473 121292 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :-- f cannot be realized. < 1322464476 851643 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@djinn-add Fnord a b = Fnord a (b -> a) < 1322464477 472968 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Cannot parse command < 1322464477 651852 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :@djinn Blah < 1322464478 137527 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Error: Undefined type Blah < 1322464483 839805 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@djinn-add data Fnord a b = Fnord a (b -> a) < 1322464485 254550 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :If you had bijective function type then the types as numbers can be: uninhabited type for zero, Maybe for successor, Either for addition, (,) for multiplication, -> for exponent, <-> with same type on both sides for factorial < 1322464489 485148 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :@djinn (a -> b) -> Void < 1322464490 88888 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :-- f cannot be realized. < 1322464493 679512 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Oh, come on < 1322464501 399867 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@djinn a -> Fnord a b < 1322464502 26690 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f a = Fnord a (\ _ -> a) < 1322464514 455087 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Fnord? < 1322464521 432987 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :Sgeo: i just defined it :P < 1322464543 487898 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :I have no idea what it means < 1322464546 765815 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@djinn-names < 1322464547 268981 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Either Left Right Maybe Nothing Just Bool False True Void Not Void Monad Eq Bool Fnord Fnord < 1322464561 566639 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :@djinn Void -> Void < 1322464562 94111 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f a = a < 1322464569 831398 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :there seems to be some duplication there... < 1322464572 98742 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :@djinn Void -> (a -> b) < 1322464572 733900 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f = void < 1322464579 373906 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :...huh? < 1322464587 704975 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :What is void? < 1322464606 410652 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :It should be: void x = case x of { } but Haskell doesn't accept that < 1322464612 711047 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :Sgeo: void :: Void -> a < 1322464616 983810 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Ah < 1322464629 415096 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :yeah it may be a special case < 1322464631 982665 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :So basically, a statement that if you proven void, you can prove anything < 1322464640 318137 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :yeah < 1322464724 837841 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :@djinn (Void -> a) -> a -> b < 1322464725 618551 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :-- f cannot be realized. < 1322464735 275046 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :In TNT, (exist a. x) is equivalent to (not (forall a. not x)) < 1322464737 316490 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Well, that does make sense < 1322464763 700789 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@djinn (a -> Void) -> a -> b < 1322464764 123912 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f a b = void (a b) < 1322464783 538295 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@djinn-del Fnord < 1322464791 451463 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@djinn-names < 1322464792 30314 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Either Left Right Maybe Nothing Just Bool False True Void Not Void Monad Eq Bool < 1322464804 248405 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :@djinn Not Void < 1322464804 783648 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f a = a < 1322464806 557155 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :And if you have x{5} or x{anything} then you can make (exist a. x{a}) < 1322464824 224047 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Huh? < 1322464851 2062 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :Sgeo: ? < 1322464878 679026 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Is it possible to do this in Haskell? < 1322464899 429700 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :zzo38: sounds pretty much like dependent typing, so no. < 1322464926 579913 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :hm maybe on the type level < 1322464949 551486 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :and who knows with the new type -> kind lifting that's coming up < 1322464954 223734 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :To be specific, I mean of making (exist a. x{a}) from (x{5}) or whatever < 1322464967 362724 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :What is type -> kind lifting? < 1322465091 362280 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :How did it figure out Not Void? < 1322465129 876483 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :because it's Void -> Void[D < 1322465140 520254 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :How does Not work < 1322465141 481510 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :? < 1322465161 207815 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :data Not a = Not (a -> Void) < 1322465166 499198 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :no data < 1322465169 986898 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :@djinn-env < 1322465170 608991 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :data () = () < 1322465170 788044 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :data Either a b = Left a | Right b < 1322465170 788220 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :data Maybe a = Nothing | Just a < 1322465170 788320 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :data Bool = False | True < 1322465170 788418 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :data Void < 1322465172 555526 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :type Not x = x -> Void < 1322465174 706461 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :class Monad m where return :: a -> m a; (>>=) :: m a -> (a -> m b) -> m b < 1322465176 597874 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :class Eq a where (==) :: a -> a -> Bool < 1322465183 711938 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah. < 1322465199 544986 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Ah, I'm starting to get an understanding of it now < 1322465225 955273 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Does Not need to be a type? < 1322465236 438827 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :zzo38: http://www.reddit.com/r/haskell/comments/mm68o/ghc_74_branched_whats_in_for_christmas/c328u7i has a small example < 1322465246 681529 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :well the reply to that < 1322465254 856195 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :@djinn Either a (Not a) < 1322465255 406843 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :-- f cannot be realized. < 1322465273 119131 :Vorpal!~AnMaster@unaffiliated/anmaster JOIN :#esoteric < 1322465276 506755 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :How would dependent types allow you to make (exist a. x{a}) from (x{5})? GHC does have a existential types extension < 1322465322 511977 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :zzo38: well it's the part of using the value 5 rather than a type to quantify over, which is problematic. < 1322465341 523338 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :and which _might_ work with the new extension, i don't know < 1322465352 525620 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :But I mean for any type in general, not necessarily 5 < 1322465358 242333 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :s/type/value/ < 1322465369 937861 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :well then i guess ghc can do some of it on the type level. < 1322465416 240731 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :data Exists x = forall a. Exists (x a) < 1322465496 507854 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :zzo38: dependent types is when you allow types to depend on values. and ghc does not support it fully, not even with the new extension. < 1322465538 664731 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Actually, in the case I given, the 5 *will* be a type, such as (Maybe (Maybe (Maybe (Maybe (Maybe Zero))))) < 1322465560 769104 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :So it won't depend on a value. < 1322465584 502587 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :So, it's a bit more that you're doing type-level computation. < 1322465600 665 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :well then it should be possible. although there may be further difficulties when you unpack it from the existential again (you cannot compare well things unpacked at different points) < 1322465623 756187 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :No I mean to prove it by writing functions like how Curry-Howard is < 1322466071 163092 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I do have idea of bijective function syntax: A new built-in type "<->" which is like "->" but only bijective functions (a value of this type is allowed to be undefined but can return undefined if and only if the input is undefined), a new keyword "bijective" which introduces layout, and new built-in functions called "inverse" and "runBijective" < 1322466167 132069 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :inverse :: (a <-> b) -> (b <-> a); runBijective :: (a <-> b) -> a -> b; < 1322466280 82148 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :The bijective keyword would make a value having a <-> type, and inside would be something similar to a case block (but with some restrictions). < 1322466321 990952 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Would this seem to work to you? < 1322466337 296044 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :i expect finding the right restrictions is the hard part here. < 1322466528 768855 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :You should also allow bijective functions to be called directly without the use of runBijective (and calling bijective functions directly would be allowed in a bijective case block). I do have some ideas about the restrictions. For example, each variable used on either side must be used exactly once on each side < 1322466679 757885 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :well my doubt is whether simple restrictions will allow you to write all the bijective functions you want. < 1322466752 102362 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Other restriction would be you would be disallowed to write values of recursive types < 1322466760 882636 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :for example, if f is a halting but otherwise non-bijective function, then g x = x `xor` f x is a bijective function. < 1322466776 590479 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :er... < 1322466796 394492 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :*for example, if f is a halting but otherwise non-bijective function, then g (x, y) = (x, y `xor` f x) is a bijective function. < 1322466859 280468 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :and there are other functions than xor which work that way... any group operation for example. < 1322466913 515108 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :this is what i thought of when i was pondering reversible computing previously. < 1322466974 465666 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :You might need to add additional built-in functions < 1322467076 843934 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :But I don't know if that would make it complete < 1322467098 609639 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :me neither < 1322467172 326869 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I also don't know how you would use it to prove that there is no such bijective function of types (such as: Not (Zero <-> Maybe Zero)) < 1322467478 960335 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :A proof in intuitionistic or classical logic using Curry-Howard would require all functions written to halt, and that is assumed and the logic still works. Maybe something similar can still work with bijective function type? < 1322467793 756164 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :linear logic seems somewhat relevant, but not perfectly. < 1322467818 719960 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :it has the "every argument must be used exactly once" property < 1322467862 792246 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :but it still allows a function and an argument to combine in a nonreversible way. < 1322468023 762043 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :I wonder if you could do STM-like stuff without actual repeats (using blocking instead) by using an arrow instead of a monad < 1322468072 293527 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :That way, all information about what variables may be accessed is known statically, and thus the system can check for conflicting variable access < 1322468087 733357 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Before running the thread < 1322468100 417332 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :hm. < 1322468109 588915 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :arrows or applicatives, maybe. < 1322468129 644776 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Are arrows applicatives? < 1322468141 851566 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :such prescheduling is supposed to be one of the advantages of arrow/applicative parsers. < 1322468149 259696 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :Sgeo: technically yes < 1322468167 250402 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :when you fix the first type argument < 1322468267 744750 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :http://cdsmith.wordpress.com/2011/07/30/arrow-category-applicative-part-i/ < 1322468431 679005 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :I need sleep < 1322468434 82643 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :(btw the answer to the title question is "not quite") < 1322468448 63964 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :as you need some extras in the other direction. < 1322468485 878184 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Could you define applicative in terms of fmap and liftA2 (,) and pure < 1322468557 320992 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :zzo38: yes. i think that was mentioned in one of the comments to that link. < 1322468568 898035 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :lax strong monoid something < 1322468654 211804 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Can you add something weaker than join or >>= that can still define a monad from an applicative, because join or >>= can be defined from this new thing and the applicative things < 1322468735 859328 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net QUIT :Quit: hello < 1322468813 211800 :GreaseMonkey!~gm@unaffiliated/greasemonkey QUIT :Quit: The Other Game < 1322468862 534768 :mtve!~mtve@65.98.99.53 JOIN :#esoteric < 1322471718 431315 :derdon!~derdon@p5DE8B50D.dip.t-dialin.net JOIN :#esoteric < 1322472700 46308 :oerjan!oerjan@129.241.210.70 QUIT :Quit: leaving < 1322473849 510061 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com QUIT :Remote host closed the connection < 1322474759 75256 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :hi < 1322477343 344919 :derdon!~derdon@p5DE8B50D.dip.t-dialin.net QUIT :Remote host closed the connection < 1322477672 236077 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1322481476 833745 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com JOIN :#esoteric < 1322481802 454465 :oklopol!~oklopol@dyn58-57.yok.fi PRIVMSG #esoteric :oerjan: ah, your proof if even nicer than his. < 1322481802 635880 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :oklopol: You have 2 new messages. '/msg lambdabot @messages' to read them. < 1322481804 820802 :oklopol!~oklopol@dyn58-57.yok.fi PRIVMSG #esoteric :*is < 1322482789 948211 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :The phrase quod erat demonstrandum is a translation into Latin from the Greek ὅπερ ἔδει δεῖξαι (hoper edei deixai; abbreviated as ΟΕΔ). Translating from the Latin into English yields, "what was to be demonstrated"; < 1322482799 579742 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :that's what all the cool mathematicians say instead. < 1322482894 710568 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :ACTION envisions representing a computable real with a list of tuples, the first number of the tuple being an approximation, and the second being the how far off the approximation is, such that the second number is equal to or larger than the error < 1322482907 98329 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Presumably, later values in the list would be better approximations < 1322482914 303216 :Slereah!~butt@ANantes-259-1-167-129.w90-49.abo.wanadoo.fr PRIVMSG #esoteric :French people say CQFD < 1322482937 3736 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Although I'm pretty sure there's some other infinite list representation of reals somewhere < 1322482949 78817 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :How do you compute how far off the approximation is from the real value without already having information about the number? < 1322482995 490493 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :kallisti, the error given in the second number of the tuple may be larger than the actual distance between the approximation and the actual value < 1322483006 314517 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :I'm presuming there is an actual value, just not easy to represent < 1322483023 789086 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :I think it makes sense to say that pi is 3 plus or minus .15 < 1322483030 287683 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :For instance < 1322483087 976264 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :e is kind of like 0 plus or minus infinity. < 1322483102 507569 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :.. < 1322483137 852305 :Slereah!~butt@ANantes-259-1-167-129.w90-49.abo.wanadoo.fr PRIVMSG #esoteric :Most numbers are < 1322483143 832073 :Slereah!~butt@ANantes-259-1-167-129.w90-49.abo.wanadoo.fr PRIVMSG #esoteric :Although i isn't < 1322483155 923725 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :what is a "number"? < 1322483157 921690 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :If the approximations don't converge, then it doesn't represent an actual number < 1322483171 935129 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Can still do comparisons though, in some cases < 1322483219 948495 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :I should write some code for this < 1322483376 510652 :Slereah!~butt@ANantes-259-1-167-129.w90-49.abo.wanadoo.fr PRIVMSG #esoteric :Hey < 1322483378 163821 :Slereah!~butt@ANantes-259-1-167-129.w90-49.abo.wanadoo.fr PRIVMSG #esoteric :Sgeo < 1322483383 107610 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Hi Slereah < 1322483397 439102 :Slereah!~butt@ANantes-259-1-167-129.w90-49.abo.wanadoo.fr PRIVMSG #esoteric :Markov wrote a whole article on writing down definable numbers! < 1322483400 126048 :Slereah!~butt@ANantes-259-1-167-129.w90-49.abo.wanadoo.fr PRIVMSG #esoteric :It was neat < 1322483405 411464 :Slereah!~butt@ANantes-259-1-167-129.w90-49.abo.wanadoo.fr PRIVMSG #esoteric :Basically, it was like < 1322483422 824464 :Slereah!~butt@ANantes-259-1-167-129.w90-49.abo.wanadoo.fr PRIVMSG #esoteric :(f(x) - g(x))/h(x) < 1322483429 834084 :Slereah!~butt@ANantes-259-1-167-129.w90-49.abo.wanadoo.fr PRIVMSG #esoteric :Where fgh are recursive functions < 1322483629 40357 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Linky? < 1322483644 560709 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Although I have a feeling you're referring to a historical source < 1322483647 576190 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :But still, linky? < 1322483656 492912 :Slereah!~butt@ANantes-259-1-167-129.w90-49.abo.wanadoo.fr PRIVMSG #esoteric :Historical indeed < 1322483663 481410 :Slereah!~butt@ANantes-259-1-167-129.w90-49.abo.wanadoo.fr PRIVMSG #esoteric :I can give you the reference < 1322483871 200295 :Slereah!~butt@ANantes-259-1-167-129.w90-49.abo.wanadoo.fr PRIVMSG #esoteric :Марков, А. А. О конструктивных функциях < 1322483887 172733 :Slereah!~butt@ANantes-259-1-167-129.w90-49.abo.wanadoo.fr PRIVMSG #esoteric :Or just Markov, "On Constructive Functions" < 1322483916 483483 :Slereah!~butt@ANantes-259-1-167-129.w90-49.abo.wanadoo.fr PRIVMSG #esoteric :I should scan it < 1322483931 98500 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :No doubt it's already been scanned < 1322483938 288843 :Slereah!~butt@ANantes-259-1-167-129.w90-49.abo.wanadoo.fr PRIVMSG #esoteric :Not sure < 1322483942 604155 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :And sold to universities < 1322483953 820410 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :http://www.haskell.org/pipermail/haskell-cafe/2011-May/091585.html < 1322483956 510722 :Slereah!~butt@ANantes-259-1-167-129.w90-49.abo.wanadoo.fr PRIVMSG #esoteric :I got it from a book that I bought because I could not find an article in it anywhere < 1322483961 730635 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :infinity = Succ infinity < 1322483971 523140 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :I find the properties of that fascinating < 1322483984 303 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :infinity > any finite natural number < 1322483987 122837 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric := fix Succ < 1322484005 796656 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :infinity > infinity = _|_ < 1322484065 623431 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :data Ordinal = < 1322484068 303445 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Hmm, might break on * < 1322484087 398815 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Since probably * is defined with Zero on one of the sides as making it = Zero < 1322484094 963179 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :When the result should probably be _|_ < 1322484108 364857 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> 5/0 < 1322484109 15735 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Infinity < 1322484111 908268 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> 5/0 > 6/0 < 1322484112 721862 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : False < 1322484122 915631 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Sgeo: IEEE disagrees. :P < 1322484126 64368 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :> 6/0 > 5/0 < 1322484127 128137 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : False < 1322484147 534817 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> 5/0 >= 6/0 < 1322484148 353680 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : True < 1322484151 311680 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION gasps. < 1322484196 124582 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :But then you break the notion of a == b implying a-b==0 < 1322484201 712478 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :> 6/0 - 5/0 < 1322484202 696617 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : NaN < 1322484225 541082 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :Oh, no! Extending a field with infinity does not produce a field! < 1322484231 28471 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :Stop press < 1322484286 446950 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric ::t cycle < 1322484287 709792 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a. [a] -> [a] < 1322484350 329440 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> cycle $ cycle [1,2,3,4,5] < 1322484351 175350 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,... < 1322484354 696339 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :Actually, I think 0ω is defined as 0. < 1322484368 823487 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> fix cycle [1,2,3,4,5] < 1322484369 224057 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Couldn't match expected type `[t1] -> t' < 1322484369 403266 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : against inferred type `[a]' < 1322484377 482008 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :So it works out fine, as long as you use unamb. < 1322484381 16909 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> fix (cycle.) [1,2,3,4,5] < 1322484382 427420 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : *Exception: stack overflow < 1322484390 692442 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :ACTION non-arbitrarily decides that a better representation of definable reals is as an infinite list of tuples, but the tuples are a lower and upper bound < 1322484394 639238 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Haskell needs to fix this bug. :P < 1322484404 222356 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Rather than average and distance < 1322484413 877447 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Makes it easier to define sine < 1322484416 364217 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :etc. < 1322484447 227035 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :That doesn't really define definability < 1322484482 981129 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Are there definable numbers that don't fit the mold? I think I'm fine with some lists that don't represent definable numbers < 1322484484 964156 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric ::t fix (cycle$) < 1322484485 828954 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a. [a] < 1322484497 628804 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> fix (cycle$) < 1322484501 276214 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : mueval-core: Time limit exceeded < 1322484514 833416 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :You seem to have described the set of real numbers. < 1322484601 90073 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Note: My Haskell library has no intention of making it possible to define undefinable numbers. If you manage to do this with my library, the destruction of the universe is on your hands. < 1322484775 562485 :elliott!elliott@unaffiliated/elliott JOIN :#esoteric < 1322484785 453877 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: hi < 1322484796 961308 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :bye < 1322484797 574210 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :brogerr < 1322484797 753184 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :elliott: You have 1 new message. '/msg lambdabot @messages' to read it. < 1322484823 178832 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : ais523 said 15h 26m 2s ago: I didn't delete "why testing is good" and the other one, Keymaker did < 1322484828 157567 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: should have protected it! < 1322484840 427316 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: protection has no correlation with deletion at all? < 1322484841 421792 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :in fact, we should just protect all the spam pages... < 1322484851 929590 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in fact, nowadays, you can typically even protect a page that doesn't exist < 1322484856 81206 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although I'm not sure if Esolang implements that < 1322484871 565631 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :@tell kallisti something important. < 1322484871 748268 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :You can tell yourself! < 1322484872 940778 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: well, I presume people think twice before deleting a protected page < 1322484937 565196 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: not if it was protected because elliott thinks that protecting spam is a good idea < 1322484950 487610 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, I wonder if there's a wiki on the Internet whose only purpose is to be edited by spambots < 1322484956 760927 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: yes, but you're more reliable than that! :P < 1322484963 280588 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :and i hope so < 1322484963 510638 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and it's just left with registration and anonymous editing open, and left there < 1322484996 516131 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the problem is, it'd be basically impossible to find < 1322484997 854722 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :18:22:35: pikhq_, do you often visit Japan? < 1322484998 72282 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :18:22:43: Vorpal: No. < 1322484998 72458 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :18:22:54: Vorpal: In fact, I have never been. < 1322484998 72611 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :18:23:01: what do you use your Japanese knowledge for then? < 1322484998 72708 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :world domination < 1322485000 793201 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :as any sane search engine would sort it to the bottom < 1322485006 813899 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: you could advertise it < 1322485009 176317 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :with spam, even < 1322485010 753939 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: Japanese is actually a vaguely useful language to know < 1322485018 96627 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :then your spambots start editing your own wiki... < 1322485031 519429 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I am Wikipedia programmer Brandon Harris. AMA (self.IAmA) < 1322485037 762215 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I come across words in languages I don't understand, occasionally < 1322485044 308538 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and Japanese is one of those languages < 1322485045 389323 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION just stares at that headline for a while. < 1322485130 340692 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :what's stareworthy about the headline? < 1322485143 687151 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: heh < 1322485175 124795 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: I have trouble conceiving of Wikipedia programmer Brandon Harris as a real person, he's just that guy in the donation boxes < 1322485178 667513 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: like Big Brother < 1322485202 140794 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there was no issue for me < 1322485216 7280 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in the TV series, Big Brother is a real person too < 1322485219 913536 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :several, I think, who work in rotation < 1322485293 227827 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: Brandon Harris, antagonist to the man. < 1322485324 57305 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :for twelve years you have been asking, "who is brandon harris?" < 1322485329 469811 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :this is brandon harris speaking. < 1322485512 855448 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :"I also work for Wikipedia, and had a rather scary email recently: "Before you edit a banner or update some code, just remember that if our readership was a country it would be the 3rd largest country in the world."" < 1322485589 997769 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :`log brandon harris < 1322485623 968589 :HackEgo!foobar@codu.org PRIVMSG #esoteric :2011-11-28.txt:13:02:04: for twelve years you have been asking, "who is brandon harris?" < 1322485637 192974 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :`pastelog brandon harris < 1322485648 58149 :HackEgo!foobar@codu.org PRIVMSG #esoteric :http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.24786 < 1322485674 71529 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :2011-10-05.txt:19:38:28: "A personal appeal from Wikipedia programmer Brandon Harris." < 1322485721 356512 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: haha, wikipedia had to take down the fundraising statistics page because of the traffic from reddit < 1322485739 32233 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that sort of thing actually happens occasionally < 1322485760 367704 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: I feel like reddit is like this hivemind of horrible internet trend stuff. < 1322485771 154978 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :it is < 1322485776 305 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :when you get up to Admin level, you have to be careful to avoid Wikipedia slashdotting itself < 1322485792 271668 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: but how............. < 1322485797 525145 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you need to know which bits can handle heavy traffic and which bits can't < 1322485823 97208 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(hint: you don't want to hit the toolserver on every page read, or even every edit (more than it's currently hit, that is)) < 1322485837 471762 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: hmm, is there only /one/ toolserver? < 1322485839 954003 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :likewise, you can hit the API on every read, but not really perform more than a few queries < 1322485843 691681 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: yes < 1322485851 739602 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: "The Wikimedia Toolserver is a collaborative platform providing Unix hosting for various software tools written and used by Wikimedia editors. The service is operated by Wikimedia Deutschland e.V. with assistance from the Wikimedia Foundation. < 1322485851 919209 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :It consists of thirteen servers as outlined here." < 1322485859 903774 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, it looks like one < 1322485861 822692 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :no it's not, I found the answer before you gave me an incorrect one :P < 1322485862 923328 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :to users < 1322485872 24832 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: so does wikipedia itself :P < 1322485880 649987 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so does Facebook. (I think) < 1322485887 397881 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :(so does everything) < 1322485890 360702 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :FWIW, there's only one physical server that handles write changes < 1322485894 106230 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :as in, things that handle the database < 1322485898 415814 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the vast majority of them are for reads < 1322485900 391688 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :https://wiki.toolserver.org/w/images/b/b5/Toolserver-cluster.svg < 1322485911 572766 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which makes sense, given Wikipedia's load patterns < 1322485930 141723 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: I can't help but feel that Wikipedia could do a lot better than it could if it wasn't tied to its software < 1322485937 115583 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(I think they can trivially hot-swap /which/ server handles the writes, though, for redundancy) < 1322485957 123195 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yep, MediaWiki is painful < 1322485959 19248 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :internally < 1322485972 333612 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's excellent in terms of its user-facing behaviour, but behind the scenes it's a mess < 1322485986 49802 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :there's no need to have a linear history at all, for one thing < 1322486008 973313 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :"see page as of time X" is a useful operation < 1322486018 230305 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: yep, but that's not the same thing < 1322486021 124318 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although nonlinear histories can be linearised for that purpose < 1322486035 245102 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: I mean, you could easily allow edits to be done on N servers instead of 1 < 1322486039 348462 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: how do you stalk people with differing viewpoints from your own so you can call them out as deletionists or pushing a POV? < 1322486040 675635 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :and just merge it afterwards < 1322486049 573064 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: although you have to block the confirmation page until the merge happens < 1322486053 210309 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :so you can notify of conflicts < 1322486067 12619 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: well I guess no linear history wouldn't affect the user changes log. < 1322486069 460519 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :kallisti: with binoculars < 1322486114 604569 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I don't think Wikipedia's designed to take Linus' Law into account, either < 1322486122 732049 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :(note: not actually joking. people do that.) < 1322486126 476764 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm… MediaWiki's storage model is essentially what git's designed for < 1322486146 466654 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :kallisti: I've been known to stalk suspected trolls/spammers/vandals before now in order to make sure < 1322486170 593312 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and yet it ignores most of the optimisations git's made to handle that < 1322486182 971480 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: yes, MediaWiki suffers from being developed before common RCSes < 1322486188 649516 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :DVCSes, rather < 1322486197 246149 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :(RCS wouldn't work very well :P) < 1322486198 648876 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :does SVN use reverse diffs for storage? < 1322486206 713401 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :dunno anything about SVN's storage < 1322486252 168195 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ACTION frowns at the TDWTF discussion of the twelve weights problem < 1322486263 487498 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: mediawiki is only 2 years older than svn, anyway < 1322486272 2284 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :because it's actually solvable with 13 (at least if you only care about knowing the odd one out, not lighter/heavier), and everyone's missed it so far < 1322486274 938642 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :sorry, more like one year < 1322486282 660347 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :so it wasn't really an option at the time, I wouldn't think < 1322486288 247360 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: wow, it's hard for me to envisage something revision-control-like being older than SVN < 1322486291 388487 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :apart from CVS and RCS < 1322486311 268315 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: open-source VCS is novel field, really < 1322486318 110026 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :it only got started around 2001 < 1322486325 503725 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I mean, anything other than CVS < 1322486374 991176 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :before VCS closed source developers collaborated via email attachments. < 1322486380 335898 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :(ha ha ha. but probably true) < 1322486389 871090 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: list of VCSes older than SVN: < 1322486410 699635 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :SCCS (1972) RCS (1982) < 1322486410 878653 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :PVCS (1985) < 1322486410 878813 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :CVS (1990) CVSNT (1998) < 1322486412 802933 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Software Change Manager (1970s) ClearCase (1992) CMVC (1994) Visual SourceSafe (1994) Perforce (1995) StarTeam (1995) < 1322486416 735441 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :TeamWare (1990s?) Code Co-op (1997) BitKeeper (1998) < 1322486421 569373 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: you can't cure my prejudices with facts! < 1322486441 431832 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: no, but I can cause you severe cognitive dissonance! MWAHAHAHAHA < 1322486462 312645 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION 's cognitive dissonance sounds awesome. < 1322486523 99746 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :gah, my IRC client prints elliott's and kallisti's name in the same color, and I keep reading kallisti's lines as being from elliott and having to do a double-take < 1322486526 256931 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :even reading the article on cognitive dissonance fills me with anxiety about cognitive dissonance. < 1322486539 382116 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also, that line of mine, I typed "color" then spend around 4 seconds wondering whether "colour" would be a better spelling < 1322486540 808637 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ais523: this is because we are almost the same person. < 1322486552 319924 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: turn off nick colouring, then you just mix people up because of similar names < 1322486620 363423 :MSleep!~fyrc@or-67-238-31-252.dhcp.embarqhsd.net NICK :MDude < 1322486641 417221 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :dude what if we had hair on our palms? < 1322486645 230690 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :handshakes would be so much weirder. < 1322487213 993037 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ACTION is not entirely convinced that kallisti is not a spambot < 1322487216 512434 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :just mostly convinced < 1322487248 540795 :Jafet!~Jafet@unaffiliated/jafet PRIVMSG #esoteric :fungot, can you do handshakes? < 1322487248 946340 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :Jafet: " who says?" screamed glod. " he was no longer an option. he could hear the sounds of argument coming from the fnord fnord. < 1322487269 700465 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ais523: The word douche came to English via French – where today it means shower (from Italian: doccia "conduit pipe" and docciare "pour by drops"). It is thus a notorious false friend encountered by non-native speakers of English. < 1322487293 519457 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :kallisti: the funny thing is, I actually know its French meaning rather better than its English one < 1322487593 71668 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I bet that fizzie is here. < 1322487668 961281 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I bet elliott is here. < 1322487675 913280 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Wrong! < 1322487677 38383 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION better gambler. < 1322487795 514420 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think elliott would get better odds on his/her bet < 1322487825 408311 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I would indeed get better odds on his/her bet. < 1322487880 757477 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :watg < 1322488036 190656 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but my odds are 1 in 1.. < 1322488047 720281 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :THAT'S ALL THE ODDS < 1322488908 68036 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :bah, @ has made me unable to be interested in low-level OS news < 1322488949 171374 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: oh my god I decided to visit reddit on my own free will what have I done < 1322488959 957730 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :there's a random button. < 1322488984 670934 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :there is? < 1322488992 569630 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yes you hit random and it /goes to random thingies/ < 1322488994 866411 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oh, random subreddit. < 1322488997 727560 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :boards? uh... < 1322488998 63513 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :who the hell looks at the top bar < 1322489000 54145 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :subreddits. < 1322489008 980842 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :http://www.reddit.com/r/RATS/ rats < 1322489129 373777 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :http://www.reddit.com/r/somethingimade/ < 1322489212 958356 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: show off awesome perl scripts here. < 1322489215 469852 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :http://www.reddit.com/r/nostalgia/ < 1322489221 783683 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: reflect on painful childhood memories. < 1322489225 43246 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :such as writing perl scripts. < 1322489337 671865 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric : FWIW, there's only one physical server that handles write changes as in, things that handle the database <-- very doubtful that mediawiki wouldn't use a distrubuted database server. Doesn't even mysql support that nowdays? I know postgre supports it well for example. < 1322489351 140806 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :http://www.reddit.com/r/frugalmalefashion/ < 1322489352 936325 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :wtf < 1322489384 836156 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :http://www.reddit.com/r/actuallesbians/ < 1322489387 770158 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oh my god it never ends. < 1322489415 836357 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :http://www.reddit.com/r/Psychonaut/ < 1322489417 789944 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I found home. < 1322489423 721001 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :In the "X is a monad" series: < 1322489434 53108 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :where's /r/fakelesbians < 1322489436 807474 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :A certain way of writing BF programs is a monad (I think) < 1322489453 885525 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Sgeo: what < 1322489468 729122 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :ACTION laughs < 1322489475 685014 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: maybe ais523 means "one hostname" like he did with the toolservers:P < 1322489476 859046 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :State representing locations of variables < 1322489512 226295 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Run the monad, which must return something of a certain type, and you get a BF program < 1322489514 853002 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: ah help kallisti is always taken how do I make usernames? < 1322489515 727470 :Sgeo!~sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Anyways, bye < 1322489541 52629 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :kallisti: kakeprophet < 1322489548 658949 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :noooo < 1322489552 100307 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :cakeprophet is better < 1322489560 641081 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I need < 1322489562 451982 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ORIGINAL THOUGHT < 1322489563 784192 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :kallisti: if you do sign up to reddit, i suggest the first thing you do is to unsubscribe from all default subreddits < 1322489566 104016 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :THAT IS NOT LAME. < 1322489570 511226 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: obviously < 1322489575 272246 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :at least /r/{pics,funny,politics} < 1322489579 438814 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oh /r/WTF too < 1322489589 290564 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :politics might be good < 1322489594 160390 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :kallisti: /r/politics is actually US politics (is actually US politics circlejerk) < 1322489597 402685 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but maybe there are better news sources. < 1322489603 850981 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: that's fine I like that . < 1322489609 323217 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :no you really don't < 1322489613 293191 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oh. okay. < 1322489618 928474 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, anyway you still need to propagate writes in a consistent order, even with a distrubuted db. At least if you want a consistent history for edits like mediawiki does < 1322489673 321355 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hm an obvious solution to load balancing here would be to hash the article identifier and use that to select which database server to use. Don't even need distributed databases for it < 1322489676 171224 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: only a few things need consistent ordering in MW < 1322489677 789723 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Also /r/{atheism,gaming} and maybe /r/{IAmA,todayilearned} and /r/AskReddit < 1322489689 946463 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :/r/atheism isn't default these days < 1322489691 110309 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Nor is gaming < 1322489702 15579 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :atheism? default? whut. < 1322489703 523677 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION checks the default list < 1322489704 400531 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :They appeared to be, I just logged out to check < 1322489711 488598 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh, gaming and atheism are < 1322489751 477865 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: it's like they want /r/atheism to be full of controversy < 1322489753 462014 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :kallisti: OK, here's an unsubscribe list: /r/{pics,funny,atheism,politics,WTF,AskReddit,AdviceAnimals} and most likely /r/{gaming,todayilearned} < 1322489754 885926 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :by putting everyone in it. < 1322489781 51536 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :You definitely want out of /r/gaming, there are better replacements < 1322489789 481525 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Yeah, I'm not subscribed so I didn't feel qualified to say < 1322489789 941851 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :such as? < 1322489799 982291 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :kallisti: No, it's not full of controversy at all, /r/atheism is actually the internet's largest circlejerk < 1322489811 40042 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :/r/{Games,gamernews,truegaming} < 1322489822 718566 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :truegaming sounds good maybe? < 1322489824 156461 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Depending on what you want, you can pick (I'm subbed to all three) < 1322489828 136516 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :or maybe it's falsegaming acting like truegaming < 1322489828 775838 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :truegaming is only for discussions < 1322489828 957617 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :kallisti: Okay, what Deewiant said, except don't subscribe to anything starting with "true" < 1322489838 722384 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but true sounds all elitist. < 1322489839 257507 :Madoka-Kaname!~moe@inportb/loli/cirno-chan QUIT :Remote host closed the connection < 1322489841 630783 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION elite < 1322489847 502768 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Of true* I'm only in TrueReddit and truegaming < 1322489852 890797 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I find they have interesting content < 1322489860 653459 :Madoka-Kaname!~moe@inportb/loli/cirno-chan JOIN :#esoteric < 1322489869 404583 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Maybe, I just can't stand the implicit elitism :P < 1322489878 936389 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :http://www.reddit.com/r/TrueTrueReddit < 1322489879 120142 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :so my brother has skyrim.. watching him play it makes my life feel painfully inadequate. < 1322489881 31866 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I'm in it for the links, not the comments :-P < 1322489882 823733 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :This is actually a real non-joke subreddit. < 1322489890 791551 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :http://www.reddit.com/r/content/ omg so much content < 1322489891 294731 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :"As TrueReddit grows, it will become less like TrueReddit. See "Hot Tubbing an Online Community" for thoughts as to why. By virtue of the fact that it is smaller, and will not yet make /r/all, TrueTrueReddit is better equipped to adhere to its own standards." < 1322489892 76603 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Oh, it's non-joke these days < 1322489892 479180 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :itidus21, why don't play it yourself too? < 1322489895 228683 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :TrueTrueReddit used to be a joke < 1322489900 643358 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :TruestReddit < 1322489912 569095 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :Vorpal: do you want the real answer? < 1322489915 515217 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :itidus21: I don't understand the hype around Skyrim actually. < 1322489918 950106 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :though it is a good game. < 1322489921 914769 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :itidus21, why do you ask? < 1322489936 240766 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :kallisti: it looks like so much freaking fun thouhg < 1322489938 391843 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :kallisti: Oh, and don't subscribe to /r/programming, though it isn't default < 1322489939 740046 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :kallisti, not a good game. A fun game sure, but too buggy to be a good game < 1322489945 430024 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: well, duh. < 1322489953 984815 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: that would be like going to the programming board on 4chan. < 1322489956 385222 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :/r/AskReddit can be moderately interesting for some things but I think it's best to just take a quick look at the topics once a week or so than have it on your frontpage all the time < 1322489959 960265 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :kallisti: /r/coding is... "okay", but /r/haskell is the only decent programming subreddit I know of < 1322489962 510490 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :At least, that I care about < 1322489968 201071 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :kallisti, somehow after I saved a game I got a non-random quest a second time. < 1322489971 176174 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Actually it's one of the only reasons I use reddit still :P < 1322489972 630173 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: I am an expert at internetz brah, I've got this. < 1322489973 264110 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :that annoyed me < 1322489974 63682 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: You know that /r/programming is better these days, right? < 1322489987 438742 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I read it every day; it really isn't < 1322489992 901486 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I think it is < 1322489997 944733 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Vorpal: certainly less buggy than previous Bethesda games < 1322490008 465513 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: OK, the links are usually interesting, but then I check the comments and everything goes downhill < 1322490012 434140 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Vorpal: or well, many many many games that people have flooded money into. < 1322490014 456680 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Especially if it involves Haskell :) < 1322490025 22792 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: The solution to this for you is: don't check the comments < 1322490031 247590 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :kallisti, well maybe on release. I didn't play oblivion until some fairly late patch < 1322490034 667694 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: (For others, it's also "don't care about the comments" but I doubt that works for you) < 1322490034 855382 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I can't stop myself < 1322490041 45843 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Vorpal: perpetuating a vile industry that encourages rapid deadlines and not good finished products. < 1322490053 551966 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :VILE < 1322490055 382067 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :VILE I SAY < 1322490058 263507 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :heh < 1322490060 706813 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yes, evil < 1322490063 821891 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :like vile < 1322490066 6751 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :what is deadlines about? < 1322490066 462317 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: I wonder if RES or something allows for removing the comment links :-P < 1322490067 978891 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but with shit switched around. < 1322490076 745304 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I tried RES once and I just got annoyed at all the visual noise :P < 1322490089 358465 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: Just configure it, you can remove everything you don't want < 1322490096 677217 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Yeah I know, I just also don't have any use for it < 1322490103 942536 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :i mean, if deadlines are such a problem why are they so important < 1322490114 901164 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I use it mostly for its "hide child comments" feature < 1322490116 839200 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :http://www.reddit.com/r/shrooms/ I am disappointed at the lack of quality post things. < 1322490124 498594 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :itidus21: What's the real answer, since Vorpal is too boring to ask < 1322490127 199516 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :kallisti, anyway, I seen quite a few stable games on their release. None of them were open world sandbox games though. < 1322490148 285034 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :elliott: as with most things it is best understood in a functional sense < 1322490154 265761 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :/r/starcraft yesssss < 1322490154 449890 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric ::) < 1322490165 787411 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :/r/starcraft is kind of shitty as well < 1322490167 286398 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I think they have an IRC channel as well? < 1322490189 5116 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :As an anthropologist studying the primitive /r/starcraft natives, I can confirm that it's shitty < 1322490192 629274 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It's more about the people than the game < 1322490197 553410 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Also they're weird < 1322490204 476884 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: but maybe it has like... starcraft games? < 1322490205 462427 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and stuff? < 1322490215 747202 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :elliott: so.. the core explanation is i don't have either 1) the game 2) a PC which could play the game. < 1322490224 825033 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :itidus21: Riveting < 1322490229 623803 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: I bet they use a lot of jargon you don't understand. < 1322490240 136982 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :For me /r/starcraft is like /r/AskReddit, I check it on occasion but don't subscribe to it or read it actively < 1322490241 197027 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :but it gets more complex < 1322490246 317596 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, my only experience of starcraft is watching a few minutes of a commentated match. It was mostly incomprehensible jargon. < 1322490266 841391 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Vorpal: the jargon is actually not that dense. < 1322490268 373336 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Surprise: thing you know nothing about is incomprehensible < 1322490276 508871 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I don't know why you'd check /r/AskReddit ever, anything actually decent filters through to /r/bestof or whatever (which is admittedly kinda awful itself), and the rest is really awfully inane stuff < 1322490283 564981 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I don't read /r/bestof < 1322490285 311371 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :kallisti, just as dense as for dota/lol/hon. < 1322490286 683611 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :FoxTrot creator Bill Amend is thinking about doing StarCraft 2 commentaries. Let's encourage him! (twitter.com) < 1322490286 865823 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :What. < 1322490292 737386 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :which is also mostly incomprehensible < 1322490292 918114 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: /r/bestof is default these days :P < 1322490298 476109 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: http://blog.reddit.com/2011/10/saying-goodbye-to-old-friend-and.html has the current list < 1322490304 467031 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: I unsubscribed from it long before it was default :-P < 1322490305 641372 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: 6pool, 3rax, 3gate, 1-1-1, etc < 1322490313 527187 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :1) i don't have a job. 2) i don't have any money 3) i don't have any income. 4) whatever money i got in the last year from gifts such as xmas or birthday or other ended up going to my mom < 1322490315 958 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :kallisti: Nope, haven't seen anything like that < 1322490324 50592 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :kallisti: I think you're expecting too much of them, it seems to mostly be celebrity worship crap < 1322490328 731120 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :4b) she ended up wasting most of this buying me soft drink and junkfood < 1322490328 911453 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :..oh < 1322490330 303802 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :dumb. < 1322490337 593448 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I was expecting like... people who play starcraft < 1322490339 936449 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and know things about it. < 1322490401 781868 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :1) my brother has an explosive anger problem 2) my brother is greedy and selfish for some reason 3) due to (1) and (2) whenever i might acquire anything my brother wants he will just take it rather than waste energy getting his own copy of said thing < 1322490434 406142 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :when i was about 10, i learned that in my house if i wanted to make a glass of cordial i basically had to pour one for everyone < 1322490438 927868 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :itidus21, you forgot 2i) There are other ways to get hold of games if you want to. < 1322490440 357795 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: As for /r/AskReddit, there's a good question once in a while plus I find reading about amusing real-world stories a significant improvement to e.g. /r/{funny,pics,videos}; it works with RES's "hide all child comments" well, too, so you can only read the top-level replies < 1322490447 605598 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :itidus21: http://www.reddit.com/r/drugs/ < 1322490471 248607 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :im trying to express i guess how futile my life is.. < 1322490481 704120 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :http://i.imgur.com/MvQ9G.jpg < 1322490483 442237 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :itidus21, unless you use a console rather than a PC for gaming, in which case why on earth? < 1322490485 463118 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I'm trying to figure out < 1322490490 312602 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :what this picture is trying to express < 1322490495 194195 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :an unrelated problem altogether. < 1322490512 638358 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :itidus21: this is perhaps the most elaborate learned helplessness ever conveyed over irc < 1322490531 599871 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :itidus21, just use torrents? *shrug* < 1322490533 497897 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: "hide all child comments" sounds nice in theory but makes me miss out on e.g. when a high voted comment has an even higher-voted reply proving it's bullshit :P < 1322490548 171769 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :Vorpal: my pc isn't near good enough to run it < 1322490549 556485 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: You can always manually check the replies < 1322490562 171779 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :well i am not sure how good my pc is though but yeah < 1322490562 759403 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: we're all in a state of learned helplessness man. < 1322490563 242468 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: (There's a "show child comments" button after hiding) < 1322490574 24746 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: what are you gonna do about pollution, dawg? < 1322490576 81358 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :nothin' < 1322490576 901878 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :not shit. < 1322490579 977067 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: And that's what I usually do when I come across something that might need proving :-P < 1322490588 622196 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: But it hides pun threads and such effectively. < 1322490595 770931 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Maan, I don't read reddit to think < 1322490602 402416 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :But yeah, anything that gets rid of pun threads is tempting :P < 1322490615 335179 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :itidus21, well then I guess you are stuck. Gaming when there are ranged weapons (bows and spells here) on consoles is generally horrible anyway due to lack of any sort of precision in aiming without a mouse. < 1322490617 775282 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :wow a lot of pill-poppers on /r/drugs < 1322490620 778236 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :lame. < 1322490658 542225 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :uh oh, Vorpal is one of those "I can't aim with a thumbstick" people. < 1322490668 66636 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :Vorpal: im just saying i feel how deprived i am when watching my brother play skyrim on a pc < 1322490679 427538 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :kallisti, I consider "auto aim" to be cheating. I know a lot of shooters on consoles use them. < 1322490685 313846 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :But that shouldn't be needed < 1322490687 352032 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Vorpal: that's not what I'm talking about. < 1322490689 677293 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :it's not needed < 1322490700 705181 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :you can do this neat thing where you turn up the sensitivity on the aiming < 1322490702 111612 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :and ... i feel how fucked my life is on every level.. < 1322490706 912539 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :kallisti, it takes much more time to aim with a thumbstick than with a mouse < 1322490713 9281 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and it gives you like, control over where you aim things based on how far you tilt the thumbstick < 1322490716 24359 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :it's pretty neat. < 1322490738 657740 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: s/$/ for me/ < 1322490742 876578 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: s/$/ because i'm bad at it/ < 1322490745 275278 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :i keep myself happy by lying to myself < 1322490748 72342 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :sweet lies < 1322490761 315127 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :kallisti, still inferior to a mouse. < 1322490784 779066 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :kallisti, anyway another problem: current consoles are way behind PCs when it comes to graphical fidelity. < 1322490799 71011 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :~graphical fidelity~ < 1322490804 572891 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :lol < 1322490811 595593 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :graphical quality then. Whatever you call it < 1322490825 730160 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :elliott: i have learned that a nation has a similar problem when it feels its borders are too small.. and it has to ask all its neighbors to compromise < 1322490845 718568 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :like suppose italy wanted to expand itself.. then all of europe might have to shift their borders < 1322490897 973313 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :i have also learned that revolution tends to lead to a lot of deaths, and that border-renegotiations tends to lead to war < 1322490930 520499 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :kallisti, just compare a high end PC with the current PS3 or xbox 360 (wii is even further behind it seems). Assuming they all render to the same resolution, which system will be able to provide the best graphics? The PC. < 1322490932 317013 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :and i know that, inspite all this a majority of the population of the world are screwed < 1322490986 580051 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: nobody actually gives a shit though because nobody derives fun from standing in front of a texture and admiring how high-resolution it is. < 1322490990 789834 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :its like helplessness might be part of the system.. like... why are creatuers with learned helplessness surviving natural selection < 1322491003 793949 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: and consoles are attached to televisions which you sit further away from to play and therefore notice finer details less. < 1322491043 332317 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, the second point is true yes. < 1322491045 307913 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :itidus21: because we don't actually have to fight for our lives/ < 1322491051 523424 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :itidus21: we've won the game. < 1322491055 807096 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :collectively < 1322491060 621572 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :yay < 1322491065 380177 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :in... this country anyway < 1322491070 519683 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and many others. < 1322491070 842499 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :I prefer games to cover a larger part of my field of view though. < 1322491136 584245 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, but you yourself complained about the texture quality in skyrim screenshots. So you obviously do think it matter to some degree. < 1322491141 192252 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :matters* < 1322491212 446311 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :one of the cool things about it is so much voice acting in it.. and so much stuff in it.. and the conversation trees (seem a bit contrived at times, but oh well) < 1322491258 142982 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :its not hte game itself i guess, but realizing that i'm not at that level of society that can play a modern pc game < 1322491260 497770 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: oh snaaaapp < 1322491265 244016 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :its not like owning a car < 1322491274 381374 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :its merely a pc.. < 1322491278 284384 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :but.. < 1322491280 7623 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :>_> < 1322491294 183497 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :its more than i can fit into my life < 1322491298 190947 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :dude who needs a car. < 1322491299 524855 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :just like < 1322491305 162880 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :order groceries online, do freelance work. < 1322491334 850952 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :take the bus < 1322491336 533206 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :or train < 1322491341 780741 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Vorpal: ha < 1322491342 94493 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :clearly if i cannot buy myself a new pc ... a car is not in wildest dreams (even though diabetes is main reason i shouldn't drive.. and problems i suspect in my vestibular system) < 1322491352 77326 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :kallisti, well if you are in US you are screwed < 1322491368 557047 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :and.. you can rule out a girlfriend < 1322491375 167203 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hm? < 1322491381 410977 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :but thats kind of implied by the whole geek thing :P < 1322491395 967691 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :not really. < 1322491434 676881 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :maybe you're just caring about the wrong things, and letting completely irrational beliefs hold you back. hmmmm? < 1322491468 484599 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :at this rate, before i die i will face a living hell on earth < 1322491483 163722 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :as the problems i am describing escalate and close in on me < 1322491488 948981 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :anyway there are compsci students that are female. Far fewer than half of the students, but they do exist at the university I'm studying at least. < 1322491505 445327 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Vorpal: yes I even saw one in one of my classes! < 1322491506 918990 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :of course < 1322491521 447729 :itidus21!~itidus21@120.148.51.249 PRIVMSG #esoteric :i never planned for the possibility my brother would turn on me < 1322491532 35451 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :kallisti, I think it is something like two out of 18 in one of the current courses I'm taking. < 1322491543 100942 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :courses I'm currently taking* < 1322491549 228729 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :she was even attractive! but, that's no place to pick up women, since... everyone is basically fawning her. < 1322491568 737913 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and she was probably like married or something < 1322491586 658857 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :heh < 1322491612 282104 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 JOIN :#esoteric < 1322491617 909214 :nooga!~nooga@maverick.aircity.pl JOIN :#esoteric < 1322491630 848753 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :kallisti, not so much of that here. I usually hang around with a group of around 5 people for stuff like lunch and so on, one of them is in that group. Just plain friends. < 1322491648 622265 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :so, question I'm asking my students in this marking session: they have to write (in Java) a recursive method that sums a linked list < 1322491652 242327 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :hi ais523_, run away < 1322491664 650158 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :and I'm asking them what would happen if they removed the base case < 1322491672 151305 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :the answers are interesting, sometims < 1322491672 338416 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :ais523_, speaking of which, does java optimise tail recursion? < 1322491673 622287 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :*sometimes < 1322491684 966232 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :Vorpal: I don't know; I think it's allowed to, but generally doesn't in debug mode < 1322491688 481014 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :but I'm not sure < 1322491689 470229 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :ah < 1322491722 164785 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :ais523_, so what sort of interesting answers were there? < 1322491723 569558 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :linked list, in java, what for? how? < 1322491733 577695 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :nooga: same way you define a linked list in C < 1322491738 221542 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :nooga, it is trivial to do with classes? < 1322491751 459281 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :nooga, since everything but the primitive types are by reference < 1322491762 502931 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :at least as far as I know < 1322491762 810772 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :or, fwiw, java.util.LinkedList < 1322491792 592173 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :but there are no pointers in java < 1322491798 615338 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :yes there are < 1322491800 735471 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :everything's a pointer < 1322491804 637126 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :no need to roll your own when perfectly reasonable doubly-linked lists exist < 1322491811 986604 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :nooga: Java has references, which are a special case of pointers < 1322491819 381843 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :nooga, everything except primitive types are references. < 1322491824 116537 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :(or to look at it another way, pointers are a common way to implement references) < 1322491828 904237 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :and references are enough for a linked list < 1322491834 960635 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :oh, okay < 1322491873 962878 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :I come from a world of pointers < 1322491878 327603 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :ais523_, so what sort of interesting answers were there? < 1322491883 550359 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :Vorpal: well, the students who are trying to answer everything by rote assume they'd get a stack overflow, because that's always what happens when you remove the base case of a recursion, right? < 1322491894 624446 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :so I ask them what'd happen when the end of the list is reached < 1322491895 939575 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :ais523_, heh < 1322491897 72496 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :nooga: ruby - world of pointers < 1322491901 984908 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :funniest answer so far is that it goes back to the start of the list < 1322491917 460508 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yes, java.util.LinkedList, the linked list that lacks an easy of way of retrieving the tail < 1322491917 686287 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :ais523_, non-ciruclar list I take it? < 1322491921 8220 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :circular* < 1322491928 777032 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :Vorpal: singly linked < 1322491939 608888 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :it's handrolled, and does have an accessor for the tail < 1322491940 98554 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :ais523_, you can have a singly linked circular list! < 1322491947 334781 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :but sure < 1322491954 840424 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :elliott: well, ruby is not my main language ;p < 1322491966 426646 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :also, it doesn't have a constructor or setter method that would allow creating a circular one without bypassing the security model somehow < 1322491975 403767 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Seriously? < 1322491981 613718 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION hasn't figured out his "main language" < 1322491986 53235 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I don't think I have one of those. < 1322491993 820196 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :elliott: seriously; you can mutate it into its tail < 1322491995 799324 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :ais523_, how can someone fail a simple question like that, I don't get it. < 1322492000 632154 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: It's the reason I rolled my own at one time < 1322492003 594945 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :but not get a reference to the tail without changing it < 1322492018 897270 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh, right, it's "linked list: the arraylist interface" < 1322492026 782908 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :AKA the least useful structure, ever < 1322492035 212665 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :wait < 1322492036 21381 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :You can do subList(1, list.size()) but that probably copies n-1 elements < 1322492040 517072 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :btw, about tail-calls in Java, I just looked it up; the JVM doesn't do it because it needs to maintain the stack trace as expected < 1322492053 33110 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :ais523_, ouch < 1322492055 516187 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :You can do tail calls with stack traces trivially < 1322492057 294163 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :but individual JVM languages can optimise tail-recursion (i.e. self-tail-calls) into loops if they want < 1322492060 867445 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :But that's GvR's excuse too < 1322492069 577910 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :I thought you don't give a shit about Java and now, suddenly, everybody is talking about Java < 1322492072 865589 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :how come < 1322492077 960602 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :because ais523_ brought java up < 1322492080 78115 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :because ais523_ teaches java < 1322492082 513373 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :ais523_, is javac able to do that? < 1322492083 112983 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :"Trivially" is a bit much; simply, maybe :-P < 1322492085 263443 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :you can get the names of functions trivially < 1322492088 71508 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :because we talk about the things ais523_ talks about < 1322492090 812497 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :elliott: you can't inspect the values of params back along the stack, though < 1322492108 764246 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :ais523_: excuse me, but... begone! < 1322492109 137828 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :elliott: because I'm marking Java right now, except it's a two-week exercise and the student in this slot did it all last week < 1322492109 753166 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric ::] < 1322492109 964719 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523_: Sure you can, it just means you leak memory < 1322492112 811306 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :to get the week off this week < 1322492120 128423 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Admittedly, that's almost the same as not optimising tail calls < 1322492122 596336 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :elliott: wait, is that even a tail-call any more? < 1322492133 351755 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :the obvious place to store it is the call stack < 1322492141 875542 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Store it somewhere bigger < 1322492147 131688 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :I suppose it'd be a tail-jump; when you actually hit the return of the tail-calls, just pop all the stack elements at once < 1322492157 842173 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :so you get a speed improvement if not a space improvement < 1322492166 261790 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION thinks the tail call argument is rubbish anyway < 1322492169 491740 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :ACTION realises with horror that this is actually a standard idiom in INTERCAL < 1322492172 873677 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :people just make it up when trying to think of excuses not to implement it < 1322492178 528333 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :the jvm should have a flag to loop tail recursion and not give a damn about stack data :/ < 1322492193 31742 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :tail-jumping, that is < 1322492195 751248 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I have never heard of anyone failing to debug a Scheme program because they tail-recursed and the stack trace didn't have all the frames < 1322492235 157986 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :elliott: the typical API to a Prolog debugger (which seems standard among multiple implementations, strangely) tends to have two different operation modes, one which tail-recurses and one which doesn't < 1322492244 305693 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :I'm not sure if it extends to tail-calls generally < 1322492249 174100 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :prolog is weird though < 1322492263 115204 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :also anyone who does tail recursion optimisation as opposed to tail call optimisation < 1322492266 380817 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :is not my friend, advanced warning < 1322492282 283607 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :when not debugging, it optimises out the tail-recursions just fine (again, not sure about general tail calls); in the debugger, I imagine being able to see them helps sometimes < 1322492297 356690 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :meanwhile, Perl has specific syntax for doing a tail-call, and probably doesn't do them if you don't use it < 1322492300 48834 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :anyway you could just do the optimisation at compile-to-bytecode time. So there is really no obvious reason to not have it there rather than in the jvm < 1322492305 937845 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :which is an interesting middle ground < 1322492308 906947 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :unless you can JIT better doing it in the JVM I guess. < 1322492309 563368 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :didnt prolog come before haskell? < 1322492313 535670 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :Vorpal: I think the JVM has a concept of methods < 1322492322 782178 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :quintopia: I'm not sure, they're both earlier-than-you'd-think < 1322492326 577014 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :and I'm not sure which is more earlier < 1322492327 543740 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :ah < 1322492378 679800 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :ais523_, probably. Still there is no obvious reason to not optimise tail calls already in the compiler if the end result (the machine code produced by the JIT) ends up equally good to doing the whole thing in the JIT would have. < 1322492383 752296 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :gah the grammar of that. < 1322492400 617295 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :hm < 1322492412 473710 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :http://blogs.oracle.com/jrose/entry/tail_calls_in_the_vm < 1322492412 963178 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :prolog predates haskell by over two decades :O < 1322492416 810308 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :never really thought about TCO before < 1322492423 336808 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :(proposal to add tail-calls to Java bytecode in a backwards-compatible way) < 1322492448 558892 :elliott_!elliott@95.149.243.54 JOIN :#esoteric < 1322492464 868877 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : didnt prolog come before haskell? < 1322492471 450040 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :prolog 1972 < 1322492484 704339 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :haskell 1987-1990 < 1322492491 276755 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :wow, Prolog's as old as INTERCAL < 1322492495 341419 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ACTION doesn't think haskell is "earlier than you'd think", personally < 1322492506 172485 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :< quintopia> prolog predates haskell by over two decades :O < 1322492509 143463 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ACTION is surprised that Prolog is that old though < 1322492515 992763 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I would have guessed... 1983? < 1322492540 390398 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ISO Prolog is 1995, though. < 1322492569 356801 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :i suspect the syntax that haskell and prolog have in common was extant before 1995 < 1322492572 730875 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :in prolog < 1322492585 812635 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that's < 1322492589 245814 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :not much syntax at all < 1322492594 445397 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :in fact, I'm having a hard time of thinking of a single piece < 1322492602 855216 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :well, not exact syntax < 1322492638 233153 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :but the idea of multiple alternate subcases of a fact/function being built into a syntactical structure < 1322492653 733180 :elliott!elliott@unaffiliated/elliott QUIT :Ping timeout: 245 seconds < 1322492665 640517 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :huh? < 1322492688 47960 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :its not something languages had before prolog that i can tell < 1322492709 331187 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :do you just mean writing pattern-matching like < 1322492713 122669 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :f ... = ... < 1322492714 934176 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :f ... = ... < 1322492716 226471 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :rather than like < 1322492718 999923 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :f x = case x of ... < 1322492727 394669 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and not being able to define multiple top-level clauses for "f"? < 1322492735 797689 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :yeah i guess < 1322492747 396085 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :otherwise i dunno what you mean < 1322492756 951541 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :of the idea of patternmatching defs in general < 1322492786 227446 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :anyways shower time. i'm already running way late. < 1322492839 665462 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :for shower? < 1322492912 830697 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 QUIT :Ping timeout: 265 seconds < 1322493214 320991 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 JOIN :#esoteric < 1322493234 177007 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :back < 1322493252 539271 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :and that was a weird pingout, pinging out from the webclient while on a desktop computer with a wired connection < 1322493305 358411 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :the way patternmatching defs work in Prolog is entirely different from the way they work in Haskell, though < 1322493314 40124 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :as in, they do the same thing, but for entirely different reasons < 1322493365 461169 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :hmm, is it possible to create a reversible language where only the program /state/ needs to be known to compute the previous one, not the state _and_ the program? < 1322493372 942814 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I realise that's a kind of vague concept < 1322493383 230699 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :reversible CAs do that, except they embed the program into the state already, kind of :P < 1322493505 110348 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com QUIT :Remote host closed the connection < 1322493798 930406 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523_: oh, my name is johny, what the F**K? seems to be forming properly in my head < 1322493809 265236 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :by which I mean, I'm coming up with a language and it seems good enough to give it the name < 1322494067 704599 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :yay < 1322494073 49432 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :capital J on Johny, right? < 1322494075 701724 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1322494086 23669 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523_: probably < 1322494096 812617 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 PRIVMSG #esoteric :I can check, if necessary < 1322494121 606277 :ais523_!93bcc019@gateway/web/freenode/ip.147.188.192.25 QUIT :Quit: Page closed < 1322494231 826250 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the ** in the name of that language, I mentally pronounce as somewhere between öö and üü < 1322494235 262113 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but a bit shorter < 1322494428 546459 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :hmm, the problem with having reversibility based on state alone is that no two different programs can produce the same state < 1322494443 764919 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :seems like I'm edging close to Rice's theorem if I'm not careful < 1322494719 968189 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which one is Rice's theorem? < 1322494744 453984 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Rice's_theorem < 1322494756 671223 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :in this context, the problem is basically that you can't compute equality for functions < 1322494817 587943 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oh right, that one < 1322494913 797064 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :incidentally, a few days ago, there was a Haskell fan flaming OCaml for accepting = on functions (and throwing an exception if you tried to use it) < 1322494923 620358 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also, for defining < and > on absolutely everything that has an =, even if it's arbitrary < 1322494935 114924 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(that is, they're consistent with =, but otherwise arbitrary, in some cases) < 1322495079 31433 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: where? (and I agree) < 1322495087 445482 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :although, that thing is a bit hypocritical < 1322495095 454869 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Haskell has arbitrary Ord instances too < 1322495104 119115 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :beacuse our structures like to use them < 1322495109 521659 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: in real life < 1322495138 19223 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :in real life my structures are giant monsters that eat me. < 1322495141 562345 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :one advantage of working in a CS department is that you have a nontrivial chance of encountering a Haskell fan < 1322495159 938132 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: remember the Bjorn stories? kallisti reminds me of that, just less extreme < 1322495170 459724 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :lol < 1322495183 610266 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :what are those? < 1322495201 287589 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :`log Bjorn < 1322495207 180 :HackEgo!foobar@codu.org PRIVMSG #esoteric :2011-09-13.txt:18:09:15: `log Bjorn < 1322495212 621210 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that wasn't useful… < 1322495214 137228 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :`log Bjorn < 1322495224 161031 :HackEgo!foobar@codu.org PRIVMSG #esoteric :2010-07-24.txt:03:54:13: The merchant tottered away uneasily, and decided to get a job that involved fewer crazy people. Say, telemarketing. Bjorn voyaged on through the dark for maybe three meters before giving up and resting for the night. < 1322495227 57427 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :past elliott: stop being curious < 1322495234 824620 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there we go, it's that sort of thing < 1322495246 64397 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :`log Bjorn < 1322495251 542616 :HackEgo!foobar@codu.org PRIVMSG #esoteric :2011-09-13.txt:18:07:47: oh, I forgot all about the Bjorn thing < 1322495255 982846 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :`log Bjorn < 1322495261 137649 :HackEgo!foobar@codu.org PRIVMSG #esoteric :2010-07-24.txt:03:52:04: As Bjorn woke the next morning, he was, much to his chagrin, reminded of his exploits-to-be by his least favourite region of the brain, which was whatever part stored memories; Bjorn wasn't really sure how the brain operated, apart from that he wished it wouldn't do so in such an efficient and unforgetting manner. So he trundled off again to the pub, and finally got up the energy, < 1322495271 340204 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that alise was a weird person < 1322495274 102842 :copumpkin!~pumpkin@unaffiliated/pumpkingod QUIT :Remote host closed the connection < 1322495298 828417 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1322495343 550480 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :alise was better at Bjorn stories than the rest of us < 1322495364 825329 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Sgeo: updersation between itidus21, Vorpal, and kallisdeet < 1322495370 178924 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Bjorn, sadly, was better at Bjorn stories than himself, but he wished it was worse < 1322495375 285491 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :(continuing with the fractal theme) < 1322495407 822762 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: hmm, I think I know how to implement addition in My name is Johny, what the F**K? branch 2, but I'm not sure about multiplication < 1322495420 506410 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that's always a good sign < 1322495445 945763 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: but if what I have is a correct implementation of multiplication, I fear that the language may be fairly boring < 1322495466 282212 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :is it obvious? < 1322495477 432699 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if it's correct but non-obvious given esolang knowledge, you've probably found something new < 1322495484 364654 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :is what obvious? < 1322495489 674619 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the multiplication impl < 1322495550 350576 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: I think so < 1322495557 260132 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :hmm, ah, I think I know what I need < 1322495570 905797 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :unfortunately, I'm not sure how to make it /mandatory/ < 1322495576 409209 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :if it's not, you can write programs easily but boringly < 1322495705 638059 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 JOIN :#esoteric < 1322495723 7757 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: < 1322495723 413352 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :fact(Z) = (S(Z), Z); < 1322495723 601202 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :fact(S(n)) = < 1322495723 601360 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : let (r, j) = fact(n); < 1322495723 601477 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : (r', j') = times(S(n), r) < 1322495723 601574 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : in discard j' = r; < 1322495725 475197 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : r = fact(S(j)) < 1322495727 435273 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : in (r', S(j)); < 1322495752 163191 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: is that MNIJWTF? < 1322495759 410113 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: branch 2 branch 1 < 1322495794 584722 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :gah, it looks vaguely like Haskell but trying to interpret it as Haskell makes my head spin < 1322495800 150948 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that's also a good sign :) < 1322495816 247402 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: try ignoring discard...in < 1322495826 83850 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and note that times returns a tuple < 1322495828 569814 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :nah, I think I know what discard does < 1322495838 466277 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it asserts that both values are equal, and then forgets about them < 1322495844 122028 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and forgetting about data is otherwise impossible < 1322495845 10248 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :it only forgets about the LHS < 1322495850 166102 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :err, right < 1322495852 710909 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :right < 1322495854 557500 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ofc < 1322495884 783874 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: the problem is mainly, how do I force people to use discard? rather than just doing something like < 1322495892 2733 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :fact(Z) = (S(Z), Z); < 1322495892 192827 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :fact(S(n)) = < 1322495892 192981 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : let (r, j) = fact(n); < 1322495892 193082 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : (r', j') = times(S(n), r) < 1322495892 193181 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : in (r', (r, j', S(j))); < 1322495904 677048 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :where you basically just thread computations and put all the junk in one value < 1322495920 726359 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :what about making the language typed? < 1322495926 362707 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott_: the value is thusly called "the trunk" < 1322495927 42647 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(as in, typed lambda calculus)? < 1322495929 789521 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ha. ha. < 1322495965 123531 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: ooh, that might actually work < 1322495979 714984 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: except, ah, no < 1322495989 451945 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :then you have to invent a monstrously complicated ADT to lump all the junk in one value < 1322496004 179502 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :err, not ADT < 1322496009 210935 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :fact(Z) = (S(Z), [Z]); < 1322496009 540811 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :fact(S(n)) = < 1322496009 726994 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : let (r, j:js) = fact(n); < 1322496009 727173 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : (r', j') = times(S(n), r) < 1322496009 727273 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : in (r', S(j) : r : j' : js); < 1322496012 596135 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :recursive type < 1322496012 834345 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :hereafter called "the trunk" plz < 1322496022 873774 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: maybe if it was the simply typed lambda calculus < 1322496023 519747 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :kallisti: but we're trying to get rid of it < 1322496027 459183 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: but the STLC can barely /compute/ anything < 1322496032 383210 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I'd like this to be TC < 1322496039 649770 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ais523: okay then plz name your finished solution "the trunk" < 1322496040 115942 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: what's the difference? no recursive types? < 1322496066 280831 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :kallisti: elliott_ and I both care deeply about MNIJWTF, we want a truly great language to represent the name < 1322496068 948412 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: STLC just has Q and (A -> B) as types < 1322496071 910116 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :where Q just means "anything" < 1322496088 560505 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: crazy idea: what about bounding memory usage somehow? < 1322496104 895448 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although that gets rid of TCness, it still allows the vast majority of practical programs < 1322496114 53900 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :apart from interps and similar constructs that absolutely need to be TC < 1322496129 668235 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, that reminds me, I still need to invent ACK < 1322496143 549079 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the esoteric programming language that is not TC, but only barel < 1322496145 19325 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :*barely < 1322496194 238055 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: hmmm, maybe < 1322496227 104200 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: what if i made it bounded but infinite? < 1322496228 165413 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(the idea is, there are two sorts of entropy; there's minor entropy and major entropy, all operations cost minor entropy, major entropy allows you to ackermann-function your minor entropy but you only have a finite, program-specified, amount) < 1322496232 131543 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :hey guys we're on topic. < 1322496233 623634 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :amazing. < 1322496242 682326 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :kallisti: stop trying to derail us, this channel is even better ontopic than offtopic < 1322496249 264618 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I'm... not? < 1322496279 399579 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION was actually just discussing (read: ranting to himself with a witness) an esolang. < 1322496280 617163 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: that is to say, like, you have aleph_null ram < 1322496299 243626 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: but if you do f(g(x), h(x)), the computations of g(x) and h(x) can only take half of it < 1322496307 145028 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and f gets all of it, because it's a tail call < 1322496310 515017 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that's, umm, wow < 1322496315 308567 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :does that even make sense? < 1322496318 297574 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :please tell me that makes sense < 1322496329 951672 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I don't think so, so let's keep thinking about it until it makes even less sense < 1322496364 785597 :calamari!~calamari@ip72-211-147-156.tc.ph.cox.net JOIN :#esoteric < 1322496368 990197 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: so the idea would be, make it so that just piling all the junk from multiple calls together ends up using an impossible amount of RAM < 1322496381 474330 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yep < 1322496387 643148 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: i.e., because you recurse, and then use more than ten times that, or whatever < 1322496396 395550 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :so the whole function needs RAM n > n for certain inputs < 1322496401 165635 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and it's rejected by the RAM checker < 1322496402 878991 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, now I'm reminded a bit of Advice < 1322496410 423194 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's one of the ICFP esolangs < 1322496432 220221 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and it's basically just Thue-on-trees, except that if the same number of replacements need to be made on both branches of a tree, it doesn't replace on either < 1322496449 174290 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which is a restriction that's perfectly gauged to throw a spanner in the works of typical algorithms < 1322496460 535885 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :wow so I think I've actually figured out my esolang. < 1322496485 848305 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(my solution to programming in it was to make sure that only one replacement was possible at any given time, so that it'd always be split 1/0 everywhere that mattered and thus avoiding a balanced situation) < 1322496500 158852 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that applies to subtrees, too, obviously, or it'd be trivial < 1322496558 355038 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: incidentally, it's meant to be term rewriting, if it isn't obvious < 1322496560 172577 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :my language, that is < 1322496573 152145 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :You guys were talking about entropy without me? < 1322496583 973372 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Wait no that's stupid entropy. < 1322496595 671946 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: yep, I figured it was some sort of match-and-unmatch thing, like Anarchy < 1322496622 892910 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :("unmatch" is a great name for the operation of creating a data structure from a template) < 1322496826 965245 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: hmm, I'm quite worried that the junk value always seems to be one of the parameters to the function < 1322496836 199449 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I suppose it's because these functions are pretty simple so far < 1322496862 366656 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: hmm, I'm reminded of Unassignable now < 1322496873 365709 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :finding workable junk values there was really hard < 1322496876 928087 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :* :≠ < 1322496881 867091 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yay, I can finally type its actual name < 1322496890 396023 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ACTION is trying fib now, which is interesting because it recurses twice < 1322497033 942059 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :wow, fib is difficult < 1322497119 320486 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :fib(Z) = (0, Z); < 1322497119 646280 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :fib(S(Z)) = (S(Z), S(Z)); < 1322497119 831959 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :fib(S(S(n))) = < 1322497119 832151 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : let (a, j) = fib(n); < 1322497119 832257 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : (b, j') = fib(S(n)); < 1322497120 502610 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : (r, j'') = add(a, b) < 1322497122 277215 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : in discard j' = S(j) < 1322497124 248284 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : j'' = a < 1322497126 220342 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : a = fst(fib(j)) < 1322497128 266225 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : b = fst(fib(S(j))) < 1322497130 227604 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : in (r, S(S(j))); < 1322497132 348462 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :the problem there is that there's no such thing as fst < 1322497138 605601 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :indeed < 1322497254 526868 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :hmm, ah < 1322497256 361271 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :fib(Z) = (0, Z); < 1322497256 689330 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :fib(S(Z)) = (S(Z), S(Z)); < 1322497256 877076 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :fib(S(S(n))) = < 1322497256 877235 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : let (a, j) = fib(n); < 1322497257 521940 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : (b, j') = fib(S(n)); < 1322497259 488984 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : (r, j'') = add(a, b) < 1322497261 411942 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : in discard j'' = a < 1322497263 418190 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : (a, j) = fib(j)) < 1322497265 781411 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : (b, j') = fst(fib(S(j))) < 1322497267 508206 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : in (r, S(S(j))); < 1322497269 477206 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :wow, that's longer than it looks in my editor < 1322497271 440976 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :errr < 1322497273 405998 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :scratch that < 1322497285 836322 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :http://sprunge.us/TYBY < 1322497291 6072 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :oh, and I forgot semicolons < 1322497363 258249 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: I suppose there's no problem in letting you use a variable after it's discarded < 1322497378 163337 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :indeed < 1322497396 763486 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although, you could just put a discard list at the end of a function < 1322497400 311013 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: the main problem is that it's easy to cheat discard < 1322497408 563357 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: by giving it a definition that _isn't_ equivalent < 1322497416 895075 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :but just happens to work in all the cases you try < 1322497430 339633 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :should be instant runtime crash if they're different at runtime < 1322497440 368549 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I don't see why it's a problem if they're always the same at runtime but defined differently < 1322497446 352286 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: that's cheating; you can't do that in the "architecture" of the language < 1322497454 342821 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ah, OK < 1322497457 914823 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: I mean, on real computers, you don't have to do discard at all! you can just throw away the values < 1322497475 441659 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :the idea is that you can throw away information as long as you can prove you already have it < 1322497483 23185 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :which isn't the same thing as just happening to have the right bits < 1322497494 516334 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :you need to prove you've already computed it redundantly, in essence < 1322497504 167755 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm < 1322497611 486070 :olsner!~salparot@c83-252-161-133.bredband.comhem.se JOIN :#esoteric < 1322497641 947551 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: I suppose it could try and prove it itself via term rewriting < 1322497646 683404 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :not sure it would work though < 1322497660 244905 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :make it ship with a machine-readable proof, Coq/Agda-style? < 1322497662 766181 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: sort of, prolog style < 1322497663 910491 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :like if you do < 1322497665 379191 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :a = b < 1322497670 796654 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :it computes b symbolically < 1322497673 269208 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and checks that it's a < 1322497687 260882 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: that's also cheating, but more importantly it's really boring < 1322497692 539498 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :heh, I think that's another operation that I'm planning for Anarchy < 1322497692 777780 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :because proofs are boring to write < 1322497693 920289 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :quick, someone summarize the last week of #esoteric for me < 1322497696 538559 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: OK < 1322497702 195637 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :olsner: boring < 1322497704 528855 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :olsner: is that possible? < 1322497705 810549 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :except for just now < 1322497716 301339 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but yes, today it's been interesting, the rest of the week, not so much < 1322497720 479804 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :elliott_: ok, I'll just assume I haven't missed anything then :) < 1322497749 283127 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott_: yes, everything is so much easier when I resist the urge to not make this a term rewriting language. < 1322497767 49351 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :term rewriting is great < 1322497774 164647 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and instead just make it an awesome term rewriting language. < 1322497776 864855 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :s/term/graph/g < 1322497784 781021 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :more languages should do term rewriting < 1322497833 278679 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: heh! i think i can use this model to do a kind of uniqueness typing < 1322497850 25903 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so this is kind of turning into a spatial and temporal logic graph rewriting language, if that's even a thing. < 1322497928 626910 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :also nondeterministic because why not. < 1322498119 498201 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :http://sprunge.us/ENjA < 1322498121 293951 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I think this works < 1322498133 592193 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :the main problem is that you could discard the last world and return the second-last world, which is problematic < 1322498271 219277 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: heh, then I thought of a solution but it's just a monad < 1322498296 892535 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: monads in general, or a specific monad? < 1322498301 937410 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :the io monad < 1322498317 252868 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :right yes, that became obvious when I clicked on the link < 1322498327 426327 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :er, no < 1322498331 871537 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that sprunge isn't the IO monad < 1322498350 707249 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :nope, but it becomes clear that IO is how you'd fix it < 1322498364 293449 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :right < 1322498372 826093 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that's so boring though, it doesn't use the reversibility at all < 1322498382 791940 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :the only additional thing you'd need is like < 1322498390 908597 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :discard X in E -- E has to have type IO t for some t < 1322498394 679670 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and X can have any type < 1322498404 818127 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :so that you can, e.g., read a line from the terminal without having to print it out later or whatever < 1322498416 422304 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(discard X in E has the same type as E, ofc) < 1322498449 658275 :sebbu2!~sebbu@ADijon-152-1-46-232.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1322498462 649365 :sebbu2!~sebbu@ADijon-152-1-46-232.w83-194.abo.wanadoo.fr QUIT :Changing host < 1322498462 837464 :sebbu2!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1322498472 780898 :sebbu!~sebbu@unaffiliated/sebbu QUIT :Ping timeout: 248 seconds < 1322498502 321852 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: time to see if I can write reverse : [a] -> [a] < 1322498605 231606 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :append([], ys) = < 1322498605 419609 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : discard [] = take(Z, ys) < 1322498605 419780 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : in (ys, Z); < 1322498605 419878 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :append(x:xs, ys) = < 1322498605 419978 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : let (xs', j) = append(xs, ys) < 1322498605 706753 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : in (x:xs', S(j)); < 1322498610 306816 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :hmm, that can't possibly work, which is a bad sign < 1322498616 648438 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :because I can't think of another way to do it < 1322498630 470784 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and I also can't see how that's invalid < 1322498703 10645 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: hmm, I might pop back to branch 1, which is a completely different language < 1322498719 100820 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: http://esoteric.voxelperfect.net/wiki/User:AlisonDiaz603 < 1322498759 151675 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :deleted (I assume you didn't want protection instead :P) < 1322498772 640504 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :I have just noticed a name in a Wikipedia article which is spelt two different ways in two consecutive paragraphs. < 1322498905 146752 :copumpkin!~pumpkin@unaffiliated/pumpkingod QUIT :Remote host closed the connection < 1322498912 365792 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: btw, though I'm not as annoyed as oerjan, I think you should contact Graue if spam continues at this rate, at least to give you bot privileges so that you can keep the deletions off recentchanges < 1322498937 761397 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: he'd need to give me the option to set/unset bot privs < 1322498949 787927 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: why can't he just set bot privileges for all admins? < 1322498950 12347 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :rather than just to put them on constantly, because then none of my edits would show up in recent changes < 1322498953 617127 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ah < 1322498961 717752 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :is there a way to do that without giving you crat privs? < 1322498965 952177 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm also not sure what happens to admin actions marked bot actions < 1322498974 768442 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: yes, but it's nontrivial and may require recentish MediaWiki < 1322498979 409909 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :*sigh* < 1322498983 627561 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :admins can set/unset all sorts of flags on Wikipedia < 1322498996 135101 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(none of the really important ones, but flags like "can use rollback" are routinely toggled by admins) < 1322499007 117588 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: well, whatever, I just think you should contact him to get /something/ done if recent changes continues to be completely clogged with spam < 1322499037 86243 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :what I'd really like is the AbuseFilter extension < 1322499043 130016 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it lets admins configure anti-spam rules < 1322499061 206378 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that would be preferable to our current (terrible) capthca system. < 1322499064 601375 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :captcha < 1322499076 630493 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :but i have a feeling that graue has Strong Opinions on the Right Way to do this < 1322499097 611480 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :we could at least have a better captcha < 1322499104 479211 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :admins can create accounts, right? < 1322499114 423474 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yes, for other people as well as themselves < 1322499117 503005 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :then it doesn't matter if we have an image-only captcha < 1322499126 658072 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :people who can't use it can ask an admin for an account < 1322499129 389931 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it requires an email address, though < 1322499142 975433 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :as the admin doesn't get to see the resulting password, and it has to be sent /somewhere/ < 1322499151 232722 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :right < 1322499157 263281 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(random fact: for a while, I handled quite a large proportion of Wikipedia's manual account creation) < 1322499194 73216 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :what was that used for? < 1322499207 653165 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :mostly usernames that hit the blacklist < 1322499221 393651 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :like being too similar to another user, or containing blacklisted words, that sort of thing < 1322499228 387427 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :checking to see if the blacklist should be overriden in that case < 1322499245 212565 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(being too similar to someone who registered six years ago and has never edited, for instance, typically I'd allow that) < 1322499347 747174 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :But five years, hell no! < 1322499360 448839 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :heh < 1322499576 569258 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :someone help me forget an idea I just had, please < 1322499589 996831 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :!perl print (("stay in school", "drop out")[int(rand(2))]) < 1322499592 911889 :EgoBot!foobar@codu.org PRIVMSG #esoteric :stay in school < 1322499598 78245 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :EgoBot: thanks egobot < 1322499607 561220 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :`run perl -e 'print (("stay in school", "drop out")[int(rand(2))])' < 1322499609 656827 :HackEgo!foobar@codu.org PRIVMSG #esoteric :drop out < 1322499611 397603 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :kallisti: HackEgo is cooler. < 1322499615 664663 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :You should trust HackEgo instead. < 1322499626 574241 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I somehow doubt that. < 1322499637 879454 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :still MY TIME MANAGEMENT SKILLS ARE FUCKING DISAPPEARING AAAAAAH < 1322499640 165437 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :@die 2 < 1322499640 837336 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :2 => 2 < 1322499644 436804 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :@die 1d2 < 1322499644 977345 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :1d2 => 2 < 1322499646 20269 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :not that I had any in the first place. < 1322499648 924724 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but now they're more important. < 1322499666 839190 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Majority opinion points to "drop out" < 1322499726 257274 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :PRNGs is no way to make important life decisions. < 1322499806 118057 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1322499810 331405 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :www.random.org says 1 so "stay in school" it is < 1322499846 827679 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :!perl print ( int rand(6 > 0) ? "continue living" : "kill yourself" ) < 1322499847 327499 :EgoBot!foobar@codu.org PRIVMSG #esoteric :kill yourself < 1322499849 450198 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :lol < 1322499870 645679 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I'm bad at Russian roulette < 1322499874 243489 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :er < 1322499876 158801 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :except < 1322499876 346396 :copumpkin!~pumpkin@unaffiliated/pumpkingod QUIT :Remote host closed the connection < 1322499878 124047 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I fucked up the code < 1322499882 884262 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so I'm just bad at programming < 1322499886 453255 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :!perl print(int rand(6 > 0)) < 1322499886 940256 :EgoBot!foobar@codu.org PRIVMSG #esoteric :0 < 1322499895 613197 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :!perl print(rand(6 > 0)) < 1322499896 146006 :EgoBot!foobar@codu.org PRIVMSG #esoteric :0.262715389094414 < 1322499901 730109 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1322499907 320958 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :is 6 greater than 0 < 1322499912 685207 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yes < 1322499923 753164 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :!perl print ( (int rand 6) > 0 ? "continue living" : "kill yourself" ) < 1322499924 296868 :EgoBot!foobar@codu.org PRIVMSG #esoteric :continue living < 1322499925 697470 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :thanks < 1322499928 206936 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yesssss < 1322500039 485814 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :!perl print int rand 6 < 1322500039 997434 :EgoBot!foobar@codu.org PRIVMSG #esoteric :1 < 1322500085 350875 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :!perl print int rand 6 < 1322500085 883748 :EgoBot!foobar@codu.org PRIVMSG #esoteric :0 < 1322500087 660528 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :!perl print int rand 6 < 1322500088 190343 :EgoBot!foobar@codu.org PRIVMSG #esoteric :2 < 1322500089 602692 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :!perl print int rand 6 < 1322500090 122872 :EgoBot!foobar@codu.org PRIVMSG #esoteric :3 < 1322500106 366725 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :you're all being terrible at distracting me. < 1322500177 685890 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :echo '#!/bin/perl' > bin/russianroulette && echo 'print ( (int rand 6) > 0 ? "continue living" : "kill yourself" )' >> bin/russianroulette && chmod +x bin/russianroulette < 1322500196 497983 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :`run echo '#!/bin/perl' > bin/russianroulette && echo 'print ( (int rand 6) > 0 ? "continue living" : "kill yourself" )' >> bin/russianroulette && chmod +x bin/russianroulette < 1322500198 521994 :HackEgo!foobar@codu.org PRIVMSG #esoteric :No output. < 1322500207 338594 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :`russianroulette < 1322500207 532824 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :`rm bin/russianroulette < 1322500210 831786 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :NOOOOOO < 1322500211 19373 :HackEgo!foobar@codu.org PRIVMSG #esoteric :​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: /hackenv/bin/russianroulette: /bin/perl: bad interpreter: No such file or directory \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/russianroulette: Success < 1322500227 280237 :HackEgo!foobar@codu.org PRIVMSG #esoteric :No output. < 1322500233 330453 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Success < 1322500289 897586 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net JOIN :#esoteric < 1322500312 214155 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :monqy: success < 1322500320 989979 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :hi < 1322500339 943354 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :monqy: monqy :elliott < 1322500349 696465 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :hi < 1322500352 745671 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :hey < 1322500366 295753 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :zah < 1322500375 500192 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :speaking of success, I finished the python yesterday/lastnight < 1322500417 195122 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :hopefully that means no more for a while. will likely have to do c++ next quarter though :( why is everything bad < 1322500428 388670 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :"On the one hand, Java was slow, bloated, and not too portable. On the other hand, Inferno was quick, small, portable*, and marketed by AT&T. So naturally Java became popular." < 1322500454 872772 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :inferno? that any good? < 1322500479 483932 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Inferno_(operating_system) < 1322500501 294465 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :tetris excitement < 1322501196 846203 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: quick, talk about Feather < 1322501752 972127 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: that wasn't quick! < 1322502725 204581 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott_: obviously he wrote an IRC client in Feather < 1322502728 400384 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and discussed in the pass. < 1322502730 228184 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :t < 1322502731 913627 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :the passt < 1322502764 962409 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :using the Feather inerpretre that's written in Feather. < 1322502775 251120 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: confirm/deny < 1322502802 309718 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ais523: probably too insane to do either. < 1322502805 851588 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :er < 1322502808 570866 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott_: ^ < 1322503580 578754 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :is prototype inheritance in JS a real, built-in language fearture? < 1322503583 924857 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com JOIN :#esoteric < 1322503587 366956 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :or just a stupid hack? < 1322503654 33624 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :JavaScript prototype inheritance is a language feature. I'm not sure how that's related to whether it's a stupid hack or not. < 1322503738 164615 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :kallisti: /all/ Feather interpreters are written in Feather < 1322503744 529280 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if they weren't, they wouldn't be Feather interpreters, by definition < 1322503767 518063 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this confused me for a bit, before I realised that you could write a Feather interp as a polyglot between Feather and some other language < 1322503773 660536 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and as long as everything had the same meaning, it'd work fine < 1322503850 564086 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :.. < 1322503855 853558 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :elliott_: But is it in the language itself or just in the runtime that could be altered? How is it different from prototype inheritance implemented in C? Would this make C object oriented? :D < 1322503866 332266 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ais523: you realize that doesn't really make any sense at all right? < 1322503876 270843 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :nooga: (a) it is part of the language itself. it must be implemented in the runtime, of course, like all language features. < 1322503877 2931 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :I'm asking because I have an argument with guy that states that JS is legit OO language < 1322503887 951612 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :nooga: (b) C does not have prototypes... < 1322503891 83120 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :kallisti: there is a reason that Feather drives people who attempt to understand it crazy < 1322503900 66648 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think you're beginning to see the edges of it < 1322503902 60079 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :nooga: of course JS is an object-oriented language. < 1322503907 996322 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :nooga: Do you know of Self? < 1322503916 945537 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :yeah < 1322503926 84756 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the reason it's so maddenning is that you're constantly struggling with the issue of whether Feather makes sense or not < 1322503934 842137 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :nooga: also, you can do OO quite well in C < 1322503941 667380 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :ais523: i know taht < 1322503951 405139 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :but it does not make C an OO language < 1322503954 876404 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :and that's my point < 1322503957 151804 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you can even setup vtables by hand and get it working exactly like a saner version of C++ if you like < 1322503988 703840 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :nooga: JavaScript has language support for objects with self-reference and constructors. JavaScript has built-in language support for prototypes via the .prototype functionality. < 1322503989 324240 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :ais523: I've read a book about it < 1322503999 930697 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :It is unquestionably a real object-oriented language based on prototypical inheritance. < 1322504022 931159 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :It's also not a very good language in general, but that's an orthogonal issue. < 1322504035 905783 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :elliott_: understood < 1322504040 521163 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: how does JS do delegation, or the equivalent? I seem to remember something like making the prototype a function that looks at the superobject's prototype < 1322504062 595664 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: I don't remember exactly how it works; I've tried to forget as much JS as possible. < 1322504067 470843 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :http://ejohn.org/blog/simple-javascript-inheritance/ < 1322504073 754310 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :but this is just completely wrong < 1322504091 386557 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :nooga: That's just syntactic sugar. < 1322504094 472231 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :i could write OO programs in C with less syntactic clutter < 1322504095 147856 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Well. < 1322504097 79267 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: why do you hate JS as much as you do? I don't understand it well enough to truly hate it < 1322504103 181243 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Half syntactic sugar for delegation, half attempting to make it look like class-based inheritance. < 1322504128 563333 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: I don't really hate it, it's just not very pleasant to use; a large part of that is because browser APIs, especially the DOM, are terrible. < 1322504133 929373 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: well, class-based inheritance is a special case of prototype-based inheritance < 1322504134 119654 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: But also its scoping is awful. < 1322504144 979068 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: isn't it block-scoped? < 1322504147 899692 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well, sometimes? < 1322504150 336670 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oh, I see what you mean < 1322504160 664109 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: no < 1322504162 329569 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: it's function-scoped < 1322504169 497644 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ouch < 1322504173 398633 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :seriously? < 1322504176 284166 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: for (var i = ...; ...; ...) { ... }; /* surprise, i is still in scope! */ < 1322504185 924691 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(and any previous "i" in the function overwritten) < 1322504200 556951 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :what about {for (var i = …; …; …) { … };} /* is i still in scope here? */ < 1322504206 456618 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :i don't think that's valid < 1322504207 743799 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :people do < 1322504210 700193 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(function() { ... })() < 1322504212 334166 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :for closures < 1322504214 742835 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wow < 1322504223 291699 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :another thing I dislike about JS is how lax and implicit its coercions are < 1322504226 297971 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and conversions, too < 1322504237 498111 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, that would be a fun use for C++ lambda syntax: [](){ … }() < 1322504246 542151 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although {} works just as well in C++ < 1322504262 428690 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: that's just typical dynamic language typing syndrome < 1322504267 636965 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :at least, it's endemic to both JS and PHP < 1322504291 971601 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: Python and Ruby don't suffer from it < 1322504296 879421 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: Perl sort of does, but it's at least consistent about it < 1322504304 775544 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Perl uses a different solution to the problem < 1322504308 682657 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :because it separates its string and number operators strictly < 1322504317 714677 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Python and Ruby make sure that values are always clear on their own type < 1322504319 977469 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :"Some languages, such as Perl, began as scripting languages[3] but were developed into programming languages suitable for broader purposes. Other similar languages – frequently interpreted, memory-managed, or dynamic – have been described as "scripting languages" for these similarities, even if they are more commonly used for applications programming. They are usually not called "scripting languages" by their own users." < 1322504324 206166 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :err, Perl users don't call it a scripting language? < 1322504324 647131 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :whereas Perl makes sure that contexts are always clear on their own type < 1322504334 234953 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: I call it a scripting language when I use it for scripting < 1322504343 151179 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :haha < 1322504343 641160 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :something like TAEB, it doesn't really feel like I'm using a scripting language, though < 1322504360 826872 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it feels like I'm using a not-really-designed-for-scripting subset of a scripting language < 1322504367 63693 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ACTION thinks Perl is probably okay for scripting, but wouldn't use it for anything non-scripty. /me also considers it a flaw when a language is only good at one < 1322504385 895761 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I agree, so I moved it. Not an admin tho so history will look weird. Elfguy 20:37, 16 August 2005 (UTC) < 1322504386 93549 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :--[[Talk:Scripting language]] < 1322504389 491036 :Klisz!~Klisz@c-67-176-12-54.hsd1.co.comcast.net JOIN :#esoteric < 1322504392 585004 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott_: perl does have pretty good scoping rules though. < 1322504399 40476 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :in regard to the above. < 1322504403 435197 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :about JS scoping < 1322504404 177996 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :kallisti: nowadays < 1322504413 10734 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Perl is one of the few modern languages with proper dynamically-scoped variables < 1322504414 410147 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it took multiple tries to get it right < 1322504430 528753 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: Perl did what it usually does, and put every sort of scoping it could think of into the language < 1322504432 858901 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :also, I believe Python is function-scoped as well for local variables. < 1322504446 872401 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :it is < 1322504453 299807 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :good. < 1322504454 112405 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :.. < 1322504457 732679 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :but at least variables can't be referenced before definition < 1322504458 176733 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :package scope, dynamic scope, lexical scope, you can even have truly global scope if you like (this requires you to name your variables starting with a control character) < 1322504460 359402 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(in js they're just undefined) < 1322504466 84660 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and at least it doesn't /pretend/ to have a declaration keyword (var) < 1322504480 676974 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: control character? seriously? < 1322504488 771023 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: yes; there's sugar to write it in ASCII < 1322504496 586757 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :what sugar? < 1322504502 774141 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I like how Python is sometimes less strict than Perl, mainly regarding variable declaration (or lack thereof) < 1322504502 963777 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :${^This_starts_with_control_T} < 1322504504 95557 :derrik!~xix@gprs-inet-65-40.elisa.ee JOIN :#esoteric < 1322504509 307105 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :awesome < 1322504510 517559 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but it's stored as a literal control-T internally < 1322504519 291120 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :kallisti: nothing's looser than strict/warningsless perl < 1322504543 741788 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :incidentally, it's 2011; why doesn't perl have a flag to enable both strict and warnings? < 1322504550 737670 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and you can put a literal control-T in the source, if you really want to < 1322504572 159152 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott_: I believe they want it to be module-specific. This is why the -w flag is discouraged. < 1322504576 580120 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: because scripts where you want strict and warnings, which is ones that are longer than oneliners, are scripts where there's no big loss in writing "use strict; use warnings;" < 1322504593 774550 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: the loss is that it takes time and annoys me :P < 1322504593 966444 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :because -w is applied globally. < 1322504595 717087 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :whereas for the really insane golfing, poetry, etc, you probably want them off < 1322504598 711684 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :kallisti: it is? seriously? < 1322504603 775860 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yes. < 1322504614 211575 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :kallisti: are you muddling it with -W, which is very very global? < 1322504622 754148 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :maybe? < 1322504630 711013 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I thought -w turned on warnings in the perl interpreter < 1322504646 907022 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :which is not a module-specific thing. < 1322504654 205113 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :i hate js fanboys < 1322504657 764966 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :-w sets the global variable ${^W} < 1322504658 8797 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :anc C++ fanboys < 1322504663 401185 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which turns on warnings < 1322504668 612758 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so... yes? < 1322504669 342573 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but it can be turned on and off scopely as usual < 1322504673 63080 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :and, especially, PHP fanboys < 1322504674 232233 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's just that most modules don't start "no warnings;" < 1322504683 216035 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :right. < 1322504687 19360 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so because -w changes the default warning setting from off to on, it affects them too < 1322504699 924275 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :-W turns on warnings regardless of "use warnings;" or "no warnings;" or ${^W} or anything < 1322504706 388327 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah okay. < 1322504746 301859 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(btw, you can golf ${^W} down to $^W because the name's one char long, and further to $ followed by a literal control-W) < 1322504759 48505 :Klisz!~Klisz@c-67-176-12-54.hsd1.co.comcast.net QUIT :Quit: You are now graced with my absence. < 1322504764 580186 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :Larry -Wall < 1322504783 751629 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott_: incidentally, aside from it being a requirement for certain uses of Getopt and $_ hacks, I haven't really used dynamic scope much in Perl. < 1322504786 237622 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I can't remember what -a does < 1322504794 469858 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and why would you turn on automatic line-ending handling twice? < 1322504801 369214 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :kallisti: it's good for configuration settings, generally < 1322504807 540433 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :for instance, whatever stdout is < 1322504818 2025 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :ais523: you know the options for Larry? < 1322504819 49627 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :common lisp puts it to good use like that < 1322504842 439482 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: in the Crawl codebase, I've seen a class whose objects are dynamically-scoped booleans, using RAII < 1322504854 852122 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it really confused the person who asked me for help with it, because they didn't understand it < 1322504864 325252 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: ouch < 1322504867 957277 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if the code were RAIIing everywhere, it'd probably be fine, but it's the only bit of RAII I've seen in the code < 1322504875 329801 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which just makes it more confusing < 1322504881 790177 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : Awk Traps < 1322504881 983641 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : Accustomed awk users should take special note of the following: < 1322504881 983808 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : · A Perl program executes only once, not once for each input line. You can do an implicit loop with "-n" or "-p". < 1322504897 61573 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :-p is great for golfing < 1322504904 668801 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ais523: -a turns on autosplit mode. I'm not sure if someone else has already said this or not. < 1322504907 373388 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :to the extent that many programs, you actually write #!perl -p at the start < 1322504916 794183 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :kallisti: nope < 1322504919 371551 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :kallisti: hmm, I thought that was -s, perhaps I was confused < 1322504926 724869 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ACTION perldoc perlrun < 1322504929 403942 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: I just find it funny that it has to be pointed out that lines run once < 1322504944 132280 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ah, -a is autospit, -s parses command-line arguments < 1322504947 289518 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: why not "man perlrun" < 1322504955 349938 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: plenty of languages have an implicit loop < 1322504972 615117 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also, because I'm used to perldoc nowadays for Perl-related things because it has all the manpages and more stuff beyond that < 1322504987 554181 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you can use perldoc -f to get a section of perlfunc, you can't do that with man, for instance < 1322504994 366797 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and perldoc and man produce identical output for the manpages < 1322505002 23787 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :not identical < 1322505003 505927 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think; reasonably identical, at least < 1322505014 431146 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oh, the wrapping's different < 1322505028 22533 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think I prefer right-ragged to ASCII-justified < 1322505060 129590 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :the status bar is different, more importantly < 1322505064 658733 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :anyway, if you prefer that, set man to do that < 1322505088 409534 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: oh right, man's overriding my less settings, perlrun isn't < 1322505088 598732 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: err, both are ragged-right here < 1322505096 90429 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and, hmm, indeed < 1322505107 453372 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :man's normally justified, I just assumed it'd be for perl docs too < 1322505126 447832 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :presumably the manpages are actually generated as manpages, not via nroff < 1322505136 664273 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but, hmm < 1322505143 567166 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :`run echo 'open 0;print<0>' > quine.pl && perl quine.pl < 1322505146 262807 :HackEgo!foobar@codu.org PRIVMSG #esoteric :open 0;print<0> < 1322505160 808192 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :totally pure guys. < 1322505180 680772 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :$ l `man -w perlrun` < 1322505197 35339 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, it looks like nroff < 1322505214 812329 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :.\" For nroff, turn off justification. Always turn off hyphenation; it makes < 1322505216 125143 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :.\" way too many mistakes in technical documents. < 1322505219 829579 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ah, interesting < 1322505232 91367 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it looks like some workaround for nroff specifically in pod2man < 1322505242 759288 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's conditioned on nroff being the implementation used, and wouldn't happen in groff or troff < 1322505248 401674 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :what's the fastest way to forget how to write assembly code? < 1322505253 621173 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :`rm quine.pl < 1322505255 867137 :HackEgo!foobar@codu.org PRIVMSG #esoteric :No output. < 1322505259 102943 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: in which language? < 1322505267 693055 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :spanish < 1322505280 200686 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think you'd have to learn how to write asm in spanish first < 1322505284 77055 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in order to forget it < 1322505295 148290 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :indeed < 1322505340 967366 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: (what did you actually mean by that question?) < 1322505400 361667 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which asm variant, I think I meant < 1322505400 586221 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :as in, x86 asm, 6502 asm, etc < 1322505429 318508 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :x86(-64, ostensibly) < 1322505435 807948 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I suppose if you wanted to forget asm for a particular platform, you could just learn it for another platform that's much nicer < 1322505440 232076 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :go work on SPARC asm or something for a while < 1322505448 336556 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :why do you want to forget x86 asm, incidentally? < 1322505480 253254 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: to prevent me from trying to write a horrible thing < 1322505492 140779 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it might be easier to fix the reason rather than the immediate problem < 1322505492 331314 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: oh, err, uh-oh < 1322505492 331471 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: you'll fail < 1322505503 107095 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(if I demoralize elliott_ enough, that'll have the same effect with less pain) < 1322505524 13223 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: writing a horrible thing will make you a worthless human being, even if you succeed; especially if you succeed, possibly more so if you fail < 1322505545 309755 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: see, now what'll happen is I'll end up writing it anyway, and then I'll get all sad because you're mean < 1322505550 857798 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :LOOK AT WHAT YOU HAVE DONE < 1322505558 777830 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: you don't want to make me mean, do you? < 1322505568 527476 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :not even retroactively? especially not retroactively? < 1322505582 86225 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :!feather ais523->mean = true < 1322505591 754173 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that looks nothing like Feather < 1322505602 703406 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you'd have to <<= me with a slightly modified ais523 < 1322505604 684639 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :you can change Feather's syntax, can't you? < 1322505607 430346 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :probably through a wrapper function, to prevent a time loop < 1322505618 365549 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :!feather loads the Alternate Standard Feather Library which is more popular nowadays < 1322505623 453485 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that reskins the syntax < 1322505625 293101 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: well, yes, I guess, but at some point it stops being Feather, and starts being a different language with similar semantics but different syntax < 1322505662 373818 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: changing <<= to = and adding sugar for record access doesn't seem that drastic < 1322505684 199232 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, I guess so < 1322505689 158539 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but that'd be negative sugar < 1322505696 600111 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :as you would need just a space there for record access, typically < 1322505714 43571 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: in the future, people like to put spaces in identifiers < 1322505725 639645 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :so that was added to the ASFL due to popular demand < 1322505726 696670 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also, hmm, I wonder if the value of ais523 mean would be shared with other values < 1322505727 341945 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :retroactively < 1322505754 611355 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you could do "ais523 mean <<= true" (and probably get yourself stuck in a time loop), but if it was sharing with other booleans at the time, that'd be equivalent to "false <<= true", which, umm, is probably a bad idea < 1322505766 530949 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(this is assuming you have sugar for false and true, which you probably do) < 1322505782 649201 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :false <<= true looks set to be even more fun than false become: true < 1322505805 75850 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :what happens if you do, e.g., x <<= [x] where [x] is the singleton list of x? < 1322505813 820811 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Feather rapidly allocates memory? < 1322505816 853945 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it doesn't recurse < 1322505826 275426 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you get a list containing the metaold value of x < 1322505837 811672 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :however, that point in the code would be evaluated again, unless something stopped it < 1322505847 395112 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: hmm, is there any way to make a cyclic structure in Feather? < 1322505861 370237 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :<<= is incredibly unsafe; if it doesn't change some previous control flow behaviour of the program, you get a time loop < 1322505882 436878 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so people will probably normally use sugar around it to use some safer operation, such as "add currently nonexisting method" < 1322505908 734761 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: the trick would probably be to use the arbitrary number < 1322505910 36308 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :s/people/ais523/ < 1322505928 512890 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you can't have a true cyclic structure, but you can have a retroactively cyclic structure < 1322505952 292699 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :in any case my 4D logical graph rewriting language is going to.. what's the word.. baller. < 1322505956 27915 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :oh < 1322505969 416820 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: Feather concurrency sounds like fun < 1322505974 550406 :nooga!~nooga@maverick.aircity.pl PRIVMSG #esoteric :anyone taking part in ioccc ? < 1322505978 138136 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(that is, any test you perform to try to demonstrate it not cyclic, it retroactively becomes just cyclic enough to prevent that test working; if you do something that would be an infinite loop on a cyclic structure, you get an infinite loop) < 1322505981 983240 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :nooga: Gregor and ais523 < 1322505983 63012 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :nooga: I am, Gregor is < 1322505990 692685 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I do feel like writing something in C < 1322506004 196436 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :just not sure if I want to write obfuscated C, or why I would bother trying to make an entry. < 1322506013 792334 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: here's a fun concurrency strategy: if conflicts occur, retroactively use a different ordering of threads instead < 1322506019 503482 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :OMG I missed Featherchat??? < 1322506024 803138 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: brilliant < 1322506027 872339 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :kallisti: fame and glory < 1322506032 225065 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :really, I'm not going to even attempt concurrency in Feather < 1322506035 417250 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Just write whatever in C according to the program you want to write specifically < 1322506042 494869 :Gregor!foobar@codu.org PRIVMSG #esoteric :kallisti: May as well not bother, as I'm going to win. < 1322506046 32276 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's sort-of like trying to do concurrency in Haskell, only worse < 1322506049 996882 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Gregor: there are multiple winners < 1322506064 161432 :Gregor!foobar@codu.org PRIVMSG #esoteric :ais523: Only one "best in show" (or whatever they call it) < 1322506065 923937 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: concurrency in haskell works brilliantly < 1322506069 953786 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Gregor: I'm not aiming for best in show < 1322506071 501967 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :tyvm < 1322506078 138030 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but for small program, and rules abuse < 1322506095 539143 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: indeed; but you need external libraries, or else for the compiler to deduce it as an optimisation < 1322506100 823453 :Gregor!foobar@codu.org PRIVMSG #esoteric :ais523: Actually, I want them to invent a category for me. < 1322506104 228690 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(external = not writable in Haskell) < 1322506105 572269 :Gregor!foobar@codu.org PRIVMSG #esoteric :But failing that, I'll take best in show X-P < 1322506115 265336 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: by "concurrency", I just meant lock-step or whatever < 1322506118 272366 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :not native threads < 1322506122 481700 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, right < 1322506127 955935 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you'd have to change the entire execution model of the program < 1322506135 971540 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but the worrying thing is, this is Feather, and you can actually /do/ that < 1322506141 159717 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric : in any case my 4D logical graph rewriting language is going to.. what's the word.. baller. < 1322506149 327072 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Graphs are nondimensional you eejit. < 1322506168 785551 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :okay fine well what's a graph except now it has distances in a 4D space. < 1322506186 44270 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :kallisti: a labeled-edge graph? < 1322506199 962139 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(do the positions matter in 4D? or just the distances?) < 1322506207 593442 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oh? a labeled-edge GRAPH you say? < 1322506210 716644 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :kallisti, distances? < 1322506211 853412 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :What? < 1322506214 328700 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ais523: the position I think? < 1322506223 296645 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :maybe just distances? both? -shrug- < 1322506223 968509 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Graphs... don't have distances inherently. < 1322506236 221820 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Phantom_Hoover: indeed; but you can certainly define a sort of graph that does < 1322506236 653983 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Phantom_Hoover: believe it or not I am actually familiar with graph theory < 1322506245 243452 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and they are in fact useful < 1322506247 11162 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :You're just going to be assigning labels to edges based on some embedding of the graph. < 1322506254 471025 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Phantom_Hoover: that's why I said labeled-edge graph < 1322506268 716910 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Oh, right. < 1322506333 110351 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :kallisti, but why 4D? < 1322506337 702925 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I'm thinking only distances or relevant, so it may not really have 3 spatial dimensions. < 1322506345 579126 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :3 = 4 < 1322506381 493022 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Phantom_Hoover: going for reversability, the 4th dimension would be forward and backward in computation steps. < 1322506385 276123 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :My guess is that the only thing actually having an embedding somewhere is going to change is the fact that the triangle inequality imposes limits. < 1322506393 575649 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :kallisti, um... < 1322506432 538584 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Phantom_Hoover: nah, if you know nearly all the sides and diagonals of a hyper-n-gon, then that's going to lock in the location of the points, thus restricting the other sides and diagonals < 1322506446 121467 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the value of n depends on the number of dimensions involved < 1322506508 533862 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :in any case whether or not it actually corresponds to a 3 dimensional space is irrelevant. I don't think I'm going to keep track of position but instead just do distance relationships. < 1322506534 125832 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :But as ais523 says, you need to know position to tell if the distance relationships are meaningful. < 1322506559 37324 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :meaningful in what sense? can't I just not care? < 1322506575 749841 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you possibly can not care < 1322506576 301514 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Sure, but then why call them distances at all? < 1322506582 857186 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the problem is wondering about whether or not you have reason to care < 1322506584 783462 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :You're just assigning arbitrary numbers to edges. < 1322506596 174107 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: argh, I'm trying to think of how the infinite division memory model works and it's so confusing < 1322506611 848848 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :as in, do you have a reason for them to act like distances? and if so, is it just triangle inequality, or do you need more than that? < 1322506621 197699 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ais523: not really no. < 1322506635 249499 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :ais523, BtW, your hyper-n-gon thing might just be a special case of the triangle inequality? < 1322506636 619180 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :no reason for them to be distances. < 1322506641 196903 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Phantom_Hoover: *general case? < 1322506652 349096 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and it is, sort-of, but can lead to equalities as well as inequalities < 1322506653 351416 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :f(x) = 1 : f(x) is easy to reject, because f^M(x) = 1 + f^M(x) < 1322506665 38459 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :No, I think the triangle inequality results in it? < 1322506669 151756 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :"The worst example of this sort of thing in my lifetime, and arguably in the entire history of science, has been the AGW (anthropogenic global warming) panic. Now that the wheels are falling off that juggernaut, I’m starting to hear ordinary people around me wonder how I knew it was bullshit and hot air so much in advance…" --esr < 1322506674 893449 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ACTION gets popcorn < 1322506692 188634 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ESR is a global warming denialist? < 1322506697 643559 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: this surprises you? < 1322506698 321450 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, I'm not massively surprised < 1322506705 841707 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I wouldn't have been surprised by the opposite either, though < 1322506725 270649 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :think of an idiotic far-right libertarian position; if esr doesn't have it, you should be surprised < 1322506739 938327 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but there are idiotic far-right libertarian positions that contradict each other < 1322506751 231768 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: indeed < 1322506783 245699 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :I've discovered that the idiotic far-right libertarian at my school is a) crazy and b) probably an actual sociopath. < 1322506810 944025 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ais523: the nodes corresponding to a physical space was just an interesting idea, but the main proof of concept is the non-deterministic time-based shenanigans (we seem to be doing a lot of those lately) < 1322506823 607906 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :'Lately'. < 1322506824 423758 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :"Rhetoric that mixes science with the tropes of eschatological panic." actual quote < 1322506826 69639 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yep, especially as I was playing Braid yesterday < 1322506838 979405 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Phantom_Hoover: lately? < 1322506844 716726 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Feather transcends the timeline; ais has always not being developing it. < 1322506848 478361 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :oh < 1322506854 984751 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hey, I work on it sometimes < 1322506863 144787 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I even did NEF just fine without getting very bad < 1322506864 931527 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :*very mad < 1322506866 62761 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: is Braid actually worth playing? I've been put off by how pretentious the developer is < 1322506868 72102 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although I'm not sure it's useful < 1322506876 551389 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :(I think I see '523' as ais' last name now.) < 1322506887 667275 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: it's, umm, reasonably pretentious plotwise, but the graphics are pretty and the puzzles are interesting < 1322506898 535366 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the "no filler" rule is really grating, though < 1322506902 719581 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :after a while you start wishing for filler < 1322506905 816813 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :heh < 1322506924 72517 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's also very difficult < 1322506938 897530 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which is arguably good, as it means you won't reach the ending, which is the most pretentious part < 1322506956 588864 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric ::D < 1322506962 472155 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric ::D < 1322506982 880524 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :oklopol, come on, you're meant to join in there. < 1322506983 97536 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Phantom_Hoover: Can AII be a metaphor for globalisation please. < 1322507005 810779 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Like, after you finish the single-player campaign, "IT WAS GLOBALISATION ALL ALONG" pops up and you have to "OH I GET IT" to get back to the menu. < 1322507011 745389 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Yes. < 1322507012 399447 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ais523: would a 3D space be easier to manage if I restricted the graph from forming cycles with its present edges. (think of present edges as just... normal graph edges) < 1322507022 693582 :ais523!~ais523@unaffiliated/ais523 QUIT :Read error: Connection reset by peer < 1322507026 265531 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Phantom_Hoover: Except clicking "OH I GET IT" just makes it change into "VERY CLEVER". < 1322507028 202954 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I fixed another thing in Super ASCII MZX Town game < 1322507034 921173 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Phantom_Hoover: And you have to click it again. < 1322507047 718382 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1322507072 553415 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :< kallisti> ais523: would a 3D space be easier to manage if I restricted the graph from forming cycles with its present edges. (think of present edges as just... normal graph edges) < 1322507075 159680 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :[error] Closing Link: 147.188.254.189 (No more connections allowed in your connection class) < 1322507076 630803 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :? < 1322507100 131273 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ais523: get off the internet, low-class scum. < 1322507104 520567 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :kallisti: yes, in fact you could do it even in a 2D space, but then you basically have a tree, not a graph (it becomes an actual tree if you give it a root) < 1322507138 180696 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ais523: wow, so a tree is like... a graph without cycles? < 1322507147 686667 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ACTION facepalm < 1322507160 334698 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :kallisti: that is the graph-theoretic definition of "tree", yes < 1322507175 730096 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :(don't forget it's connected!) < 1322507177 442678 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :rooting it gives you the programming-language definition of "tree" < 1322507184 478642 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well, OK, it's not a tree if it isn't connected < 1322507187 828306 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it has to be connected to be a tree < 1322507194 471392 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :otherwise it's a forest (actual technical term) < 1322507196 757787 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :"No more connections allowed in your connection class" < 1322507197 99578 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :In English, this means the server is full for people like you, at least for now. People from different providers might still be able to connect. You might see this sometimes on servers that you were able to connect to just recently. Try a different port on the same server (other than 6667) or try a different server for a while. < 1322507199 431019 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :how helpful < 1322507199 862508 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I made barrier monad transform now. newtype BarrierT f b m t = BarrierT { runBarrierT :: m (Either t (f, b -> BarrierT f b m t)) }; < 1322507210 809352 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :"people like me" < 1322507212 286610 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :they exist? < 1322507215 82347 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :lol < 1322507234 885500 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ais523: are you sure a tree has to have a root to be a tree in computer science? seems kind of arbitrary. < 1322507247 334809 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I mean, I know they typically do... < 1322507270 79914 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :kallisti: it's not arbitrary; it's hard to define an ADT without one < 1322507276 317665 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :kallisti: I'm talking about the usual recursive definition in terms of trees having a possible value (perhaps only if they have no branches), and 0-n branches < 1322507279 940325 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that naturally leads to a route < 1322507287 779045 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :*root < 1322507309 829007 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you can imagine a sort of "doubly-linked tree" which wouldn't need one, but it probably wouldn't be very useful given the typical applications of trees in CS < 1322507319 188696 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: that doesn't encompass, e.g. data Tree a = Branch (Tree a) (Tree a) | Leaf a < 1322507324 20118 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :because n is fixed < 1322507333 899487 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : you can imagine a sort of "doubly-linked tree" which wouldn't need one, but it probably wouldn't be very useful given the typical applications of trees in CS < 1322507338 501415 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: the closest thing is a tree zipper < 1322507341 107561 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :which /is/ very useful < 1322507341 440893 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I honestly haven't considered efficiency at all for this language. < 1322507351 426385 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :list zippers are what we use instead of doubly-linked lists, after all < 1322507374 961703 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: right, indeed; I was talking about not needing a root, rather than not having the links back (which are potentially useful for reasons unrelated to rooting) < 1322507390 489463 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :rewriting nodes based on whether or not they satisfy logical predicates in a huge graph that never shrinks is probably not going to be fast. < 1322507403 895373 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also, the "n is fixed" is a special case; that's a binary tree, which is a case of a tree where n = 0 or 2 < 1322507443 58458 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :fair enough, but the n=2 case has no value < 1322507458 969824 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :also, what about data Tree a = Branch a (Tree a) (Tree a) | Leaf? that has a value only when n=2 < 1322507501 513371 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :perhaps if I restrict the kinds of predicates that one can use, then I can make the lookup algorithm fairly efficient.. < 1322507517 438630 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: a conditional value is fine as well, I think < 1322507526 247966 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :conditional on n, or maybe even on something else < 1322507543 162042 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :kallisti: part of the reason I haven't implemented eodermdrome is that I can't think of an efficient way to do it < 1322507570 437202 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ais523: in particular I intend to restrict the rewrite rules so that subgraphs cannot be replaced in one rewrite. < 1322507591 695507 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :well, single nodes are subgraphs I guess. < 1322507595 818 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: didn't oklopol come up with an efficient way? Phantom_Hoover? < 1322507605 154920 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: I think oklopol was working on it, but I can't remember the outcome < 1322507620 299768 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I thought the efficient way has been well-known in here for ages. < 1322507636 727263 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: can we delete [[Excela]] so people stop vandalising it? < 1322507638 72565 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, come to think of it, indexing by degree, and context degree up to n levels, would be pretty efficient < 1322507643 341151 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: you should probably protect it, anyway < 1322507657 27160 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: if it gets spammed much more, I'll put an appropriate protection level on < 1322507660 301031 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :is it anons or registered users? < 1322507663 386522 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: it just got spammed < 1322507666 328094 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :http://esoteric.voxelperfect.net/w/index.php?title=Excela&action=history < 1322507672 917929 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I don't think it's going to stop < 1322507674 876717 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and it's registered users < 1322507686 118811 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :it's every three days, roughly < 1322507687 387961 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I'm thinking I could probably make it efficient if I restrict the kinds of rewrite rules and predicates that can be expressed, and by using other data structures besides a graph in the implementation, at the expense of more memory overhead. < 1322507692 340272 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: you just made me revert your revert by mistake! < 1322507693 810077 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :sometimes more often < 1322507695 280245 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ACTION reverts < 1322507697 220922 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :for a language that, as far as I can tell, does not ever free memory. < 1322507718 936647 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :unless a garbage collection or manual memory management scheme can be created... but I have no idea how that would work. < 1322507735 319881 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: with those spambots, in the past, all the spamming they've done has been confined to one article, but moves to a different one if you protect it < 1322507766 38751 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :kallisti: most modern languages never free memory < 1322507788 222446 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :..wha? is this some weird technical distinction I'm missing? < 1322507800 870022 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I'm pretty sure they do. < 1322507808 243140 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :no they don't < 1322507816 919951 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Python has no free(), Perl has no free() < 1322507817 721242 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: do you mean "return memory to the OS" by "free"? < 1322507820 197835 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Ruby has no free() < 1322507822 462968 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Haskell has no free() < 1322507826 406662 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Common Lisp and Scheme have no free() < 1322507832 933612 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ah, no, you mean "don't have an explicit command to free" < 1322507833 747094 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :s/language/implementation/ < 1322507838 26722 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: no, I mean "don't free" < 1322507847 615500 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: $x = undef; will free the previous thing that $x referred to if it was the only reference < 1322507852 36877 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :the fact that most implementations optimise things by discarding memory that they can prove won't be referenced in the future is irrelevant tot he language < 1322507858 566665 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: no it won't < 1322507865 427822 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: and even run its finalisers < 1322507870 684223 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :s/language/implementation/ --debate solved < 1322507873 625265 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :well, finalisers are usually implementation-specific < 1322507878 705519 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and unpredictable < 1322507890 175398 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :for instance, I bet Jython won't run finalisers if you do x = None < 1322507892 658709 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: they're part of the language in Perl 5 and predictable; this sort of thing may be /why/ it only has one impl < 1322507894 86743 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :because it doesn't use refcounting < 1322507903 570898 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :does Python even have finalisers? < 1322507910 603665 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yes. < 1322507915 993666 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :__del__ < 1322507920 608394 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(also, is "finaliser" or "destructor" the more common name nowadays?) < 1322507929 140651 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :destructor I believe < 1322507931 760560 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :is what I see the most. < 1322507941 364842 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :finaliser < 1322507947 886461 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric : ais523: didn't oklopol come up with an efficient way? Phantom_Hoover? < 1322507957 70532 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :destructor is Python jargon meaning something else, I think, which is why kallisti might see it more often < 1322507965 395259 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :certainly I always see "finaliser" in memory-management texts < 1322507979 360704 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott_: no I see it in my Java and C++ classes as well. < 1322507980 351778 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :I concluded that implementing Ullman's algorithm with appropriate specialisations would get the match stage (the real time sink) down to polynomial time. < 1322507999 406752 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I normally go with Java terminology for javaish-OO stuff, bceause Java's implementation on the javaish-OO world is quite large < 1322508005 854665 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Phantom_Hoover: I thought there was something simpler than that < 1322508014 388057 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(we really need a name for the Java/C++/C#ish OO to distinguish it from Smalltalky OO) < 1322508018 128255 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: well, they're called finalisers in java < 1322508022 373834 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: I know < 1322508029 240396 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: anyway, destructors are something subtly different, I believe < 1322508029 569679 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that's why I used that name without really thinking < 1322508037 92601 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: they're things you run explicitly < 1322508040 592391 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :cf. C++ < 1322508042 874140 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :even though you aren't meant to use finalisers in Java ever nowadays < 1322508045 780924 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Well, Ullman's algorithm optimises subgraph matching down to polynomial if you have constant subgraphs. < 1322508049 379809 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :because they're so unpredictable < 1322508054 34661 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Which is the case in Eodermdrome. < 1322508064 397566 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ais523: I think it's usually called class-based OO < 1322508066 335493 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: why unpredictable? just because GC is? < 1322508069 141172 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :kallisti: smalltalk is class-based < 1322508077 46807 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oh.. < 1322508083 804641 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :right. I was thinking of self and friends. < 1322508088 573056 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: in Java, there's no guarantee that they're ever actually run at all < 1322508097 800667 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: sure; that doesn't seem relevant to me < 1322508106 228507 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and I'm not sure if it's purely GC-related < 1322508108 194639 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :GHC's finalisers have the same property and they're used with abandon < 1322508108 674458 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although it probably is < 1322508138 439694 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also, hmm, what context do GHC finalizers run in? some suitable IO monad that's made to happen at an arbitrary time relative to other events? < 1322508159 871057 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :http://hackage.haskell.org/packages/archive/base/4.4.1.0/doc/html/Foreign-ForeignPtr-Safe.html < 1322508173 702625 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :your question is incoherent and contains type errors, so i'll just link you docs instead :P < 1322508181 888677 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :indeed, it contains type errors < 1322508190 312166 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I missed that they aren't Haskell < 1322508201 587951 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott_: your mouth is a type error < 1322508206 820961 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: huh? < 1322508221 570629 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well, they're run via the FFI < 1322508222 621004 :oerjan!oerjan@129.241.210.70 JOIN :#esoteric < 1322508223 753588 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :oh, http://hackage.haskell.org/packages/archive/base/4.4.1.0/doc/html/System-Mem-Weak.html also has finalisers < 1322508225 646936 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: no they're not < 1322508251 900505 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :"A finalizer is represented as a pointer to a foreign function…" < 1322508263 629136 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :well, OK, but that's not relevant: http://hackage.haskell.org/packages/archive/base/4.4.1.0/doc/html/Foreign-Concurrent.html < 1322508275 884817 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and the System.Mem.Weak finalisers are just actions too < 1322508349 835865 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so the answer is, they have to return a marshallable type, or an IO of a marshallable type < 1322508361 449186 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and making them pure functions is obviously ridiculous, so in practice, they're IO actions < 1322508426 510502 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Hey guys if you're libraring can you see if you can find an implementation of that algorithm. < 1322508475 608981 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: huh? < 1322508479 225462 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : so the answer is, they have to return a marshallable type, or an IO of a marshallable type < 1322508483 428452 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :this is wrong and/or makes no sense < 1322508511 106379 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ah, I saw type FinalizerPtr a = FunPtr (Ptr a -> IO ()) < 1322508522 64071 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :then looked up the definition of FunPtr, and saw its restriction on types it accepted < 1322508533 916931 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and missed that FinalizerPtr had a stronger restriction (specificlaly, that it returned IO ()) < 1322508535 243778 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: you read wrongly < 1322508553 107114 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :well, it's true that the types are always used that way in finaliser use < 1322508556 711559 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: look, it's pointless linking me to docs if you're going to disagree with everything that I glean from them < 1322508560 966807 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :even if I'm wrong < 1322508561 782357 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :but it's quite irrelevant, since the FinalizerPtr takes a Ptr < 1322508573 732046 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :so it's irrelevant whether the a being finalised is marshallable or not < 1322508591 133065 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I didn't say it was relevant < 1322508595 729758 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I was talking merely about the return value < 1322508597 498504 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which is IO () < 1322508597 829605 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: I link you to documentation because I can't think of any way to answer your question because it doesn't make any sense; I can just ignore false things you deduce from it if you want *shrugs* < 1322508639 365162 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the return value is IO (), the argument isn't IO anything, thus the finalizer is an IO action < 1322508643 132753 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which is what the question was in the first place < 1322508654 358563 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :err, "the argument isn't IO anything"? < 1322508721 505136 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: a function of type IO a -> IO a isn't really an IO action < 1322508729 986526 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :functions aren't IO actions < 1322508735 89286 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :IO actions look like IO a for some a < 1322508748 822204 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ah, aha < 1322508749 2301 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(id m :: IO a) for some m, a is certainly an IO action < 1322508753 71788 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :terminology clash? < 1322508757 994844 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and (IO a -> IO a) is certainly a function from an IO action to an IO action < 1322508773 85783 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the IO /value/ is what's referred to as the action < 1322508776 194690 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: no, just the typical non-Haskeller mistake of assuming something like (IO a) is a "function of 0 arguments" < 1322508787 421869 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :thus assuming that if (IO a) is an action then (... -> IO a) must be too < 1322508793 631489 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :at least, that's how I usually see that mistake being made < 1322508802 855869 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, I think I might have made it based on different reasoning < 1322508807 520619 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's because of the whole do-sugar thing < 1322508823 33262 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's because you can >>= onto a function of type x -> IO a < 1322508831 818348 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :well, OK < 1322508834 436158 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and that's a behaviour of >>= rather than of IO < 1322508840 199300 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but it feels like a behaviour of IO unless you concentrate < 1322508847 792369 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :anyway, can anyone here get behind ACM paywalls who isn't too legalistic to share the spoils? < 1322508869 465947 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: I think "join :: IO (IO a) -> IO a" may be clarifying, then, since you can use fmap/return/join instead of return/(>>=) < 1322508875 848319 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :But of course there is more than >>= since there is also fmap, join, <$>, <*>, and so on < 1322508884 304824 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: even people who can get behind the paywalls, it's heavily DRMed < 1322508896 551412 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so I'm not entirely sure copying the resulting file would work, although it probably would to some extent < 1322508899 421115 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: i.e., "if you have an IO program that produces another IO program that produces an a, then you can turn that into an IO program that produces an a (by just executing the program you get out of it)" < 1322508914 740616 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: also, I'm pretty sure it would, since people regularly get pdfs behind paywalls for others... < 1322508924 879497 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :oh, never mind, foudn it < 1322508925 696835 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :found it < 1322508933 907591 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :my guess is you'd be able to read it, but need a hacked PDF reader to be able to do anything but read it < 1322508942 545068 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :perhaps it'd allow printing, if you were lucky < 1322508946 518150 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: "hacked"? lol! < 1322508951 781355 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: you realise that no pdf reader apart from like < 1322508953 877145 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :acrobat and xpdf < 1322508960 328450 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :actually obey the drm bullshit < 1322508960 509192 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :respects the DRM? < 1322508974 247017 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Retype it if you need to... < 1322508978 510536 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: in that case, they're illegal in the US, or some such nonsense < 1322508989 502137 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: I doubt that very much < 1322509028 467394 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the DMCA is kind-of ridiculous < 1322509035 628991 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's much the same thing as libdvdcss, just on a smaller scale < 1322509059 64108 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(in that instead of heavy encryption, it's just a note saying "please") < 1322509059 597347 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric : anyway, can anyone here get behind ACM paywalls who isn't too legalistic to share the spoils? < 1322509079 659655 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :I have several friends in university who probably have access. < 1322509083 690773 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric : Sgeo: updersation between itidus21, Vorpal, and kallisdeet <-- what? < 1322509085 161254 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: you should delete evince, it's clearly illegal :) < 1322509089 502566 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Phantom_Hoover: Dude, I just linked you to the pdf. < 1322509098 772058 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Yes, it was a general thing. < 1322509102 628250 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: this sort of thing is why I refuse to go to the US :) < 1322509122 486650 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: I'm sure we have something draconian enough to outlaw it < 1322509122 807425 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also, why I didn't take any sort of computer with me to Canada, although that was at least just as much a distrust of airports < 1322509162 686393 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I spent a week without Internet access there (except for a few minutes when I sneaked onto one of the computers the lecture hall used for projecting stuff on the screen; an old trick) < 1322509171 444506 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :heh < 1322509182 612972 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :without even usable phone, either, mobile or landline < 1322509209 933221 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(there were payphones, but they took around 5 minutes to calculate the cost of a call to the UK, and then quoted an amount so large it'd have been really awkward to pay using coins) < 1322509348 622681 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :OK, ais523 has to hear my terrible idea now because it'll either help me forget about it, or reassure me that I'm not the only one suffering < 1322509364 298301 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: you have found your own Feather :) < 1322509396 669536 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: a simple POSIX-alike where everything is run in ring 0 with @-style techniques; memory access requires checking that it's owned by the process < 1322509414 227020 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :enforced how? < 1322509421 605950 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :a ring 0 process could trivially change the perms < 1322509428 102216 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I /think/ it would end up more efficient than traditional implementations, because a branch per RAM access is cheaper than the syscall overhead < 1322509429 640162 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oh, statically < 1322509442 9779 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: yep; although I was also considering if hardware virtualisation stuff could do it < 1322509443 160968 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you verify that the program is itself doing access checks on itself < 1322509445 439147 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :since that's ubiquitous nowadays < 1322509448 882977 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and don't run it if it doesn't < 1322509453 997876 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that feels strangely evil < 1322509458 662596 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: well, I was just going to make a C compiler do it < 1322509464 561883 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and have it be trusted < 1322509469 497046 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :but checking the binary would be viable, too < 1322509472 311092 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yes, but what it does to the poor binary is beautifully ridiculous < 1322509487 365859 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it'd be the age of lawful programs < 1322509496 682011 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :don't do anything without checking it's legal first, even though they /could/ < 1322509501 427733 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: oh, and if the compiler is trusted that lets it optimise out certain checks < 1322509509 596676 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :indeed < 1322509518 259848 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :e.g. a = malloc(...); if (a) { ... *a ... } -- you don't need to check a afterwards < 1322509521 370606 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :in the block < 1322509523 333265 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that sounds like a recipe for exploiting compiler bugs < 1322509528 619932 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: yes, indeed < 1322509535 601466 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: compiler bugs can already lead to exploits, though < 1322509542 695841 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :if a daemon running as root is miscompiled < 1322509544 199497 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :again, indeed < 1322509564 498894 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :probably less likely to be exploitable on average, but it's still a qualititative difference < 1322509574 487886 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :anyway, I'm tempted to do this because it sounds easier than @, and would be a neat proof-of-concept that some of its low-level details do increase efficiency < 1322509596 810879 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, I remember the paper that found that if a processor got even a single multiplication wrong, it would be possible to crack some sort of encryption (I forget what) done on it < 1322509596 990342 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and ofc with @ the risk for compiler bugs is reduced since it's not based on "checks" for safety, but safety-by-design using the object capability model and the type system < 1322509602 226420 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :heh, neat < 1322509603 22172 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :brb < 1322509604 62402 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :There is no statement of there ever being any male Sheikah since the true gender of Sheik is debated by many fans. < 1322509607 945917 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :assuming you can get it to encrypt arbitrary text for you, or something like that < 1322509610 688244 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :s/fans/slash fiction writers/ < 1322509634 745082 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :kallisti: I think it's mostly an issue of semantics < 1322509641 618582 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com QUIT :Quit: zzo38 < 1322509663 50162 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this reminds me of the argument over Metroid Prime's gender (he, she, it are all viable options with plausible arguments makeable for them; plot-wise, it doesn't matter in the least) < 1322509675 317163 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :the thing about Sheik though < 1322509679 80111 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :is that Sheik is Zelda < 1322509680 864449 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and, by extension, Dark Samus' < 1322509693 411621 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and it doesn't explicitly mention anything about Sheik actually being male < 1322509694 390012 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so < 1322509698 730531 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :kallisti: I'd be very surprised if that prevented people writing Sheik/Zelda slashfic < 1322509699 637344 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I would just kind of assume < 1322509712 530104 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :that Sheik is a female, like Zelda, since they're the same person < 1322509717 124275 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Sheik was deliberately made with a male 3D model < 1322509726 919979 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but that was to keep the Sheik=Zelda thing secret from the player until right at the end of the game < 1322509728 124332 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :sure MAGICAL GENDER CHANGING is possible but... not mentioned so not canon. < 1322509751 635206 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think the most plausible argument is that Zelda is just very good at disguising herself, even if it includes cross-dressing < 1322509765 35608 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :basically I think some people just want Sheik to have a penis. < 1322509779 923845 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION nods. < 1322509821 34103 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :or like, they played the game thinking Sheik was a male and then when it was revealed they.... resisted changing their mind or something? < 1322509838 160742 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :perhaps < 1322509889 940966 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :though you could argue that there may be magic involved, since sheik has different eye color (red, like a Sheikah) < 1322509901 629938 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :maybe Zelda just has some awesome contacts though. < 1322509910 598842 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :you know what's fun? speculation about video game characters. < 1322509914 863354 :kallisti!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so fun. < 1322510117 265754 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :kallisti, magic being involved is uncontroversial. < 1322510151 599562 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Conservation of volume is presumably still conserved under normal circumstances, no matter how many bandages you use. < 1322510174 728632 :calamari!~calamari@ip72-211-147-156.tc.ph.cox.net QUIT :Quit: Leaving < 1322510487 241715 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :back; disappointed not to see "biarb" from ais523 < 1322510530 926093 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :kallisti: I find it odd to posit that magic is used for changing eye-colour but to consider it unreasonable to posit that magic was used to change a far more drastic change in bodily structure (note: I have never played a Zelda game for long) < 1322510546 71679 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ofc, this is unrelated to the question of gender < 1322510621 446663 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :does anyone know much about AMD-V / Intel VT-x? < 1322511163 312383 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: in Zelda games, magic exists but mostly only has a few defined effects < 1322511173 474740 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: is changing eye-colour one of them? < 1322511176 266919 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :no < 1322511187 636717 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but Zelda seems capable of unusual magical abilities < 1322511196 638696 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :then my point stands :P < 1322511202 692108 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so who knows what magic she can do < 1322511212 502616 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm wondering if she was just using coloured contact lenses, though < 1322511277 403887 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :thing it's hard to find information on: whether you can do hardware virtualisation in ring 0 < 1322511282 317455 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :as in, the code being virtualised runs in ring 0 < 1322511330 944182 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ah, yes < 1322511334 806082 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that's what hardware virtualisation is for, it seems < 1322511629 566216 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: hmm, I think what I'm doing is something like Xen, but where each program is an OS < 1322511640 790231 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and runs without a kernel < 1322511676 802957 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this sounds like decent practice for @ < 1322511715 919636 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: yes, the only problem is that (a) I don't have a machine with the virtualisation stuff I need (b) it's literally all about low-level hardware details :) < 1322511781 657060 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: I'm not sure if I should advise you to put @ off, or complete it now before you end up getting a job and not having time for that sort of large project < 1322511809 186843 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: clearly the only solution is to have someone pay me to work on @ < 1322511831 353659 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :actually, I should write all but one line of @ while it's still in my head, and then write the last line whenever I need a Ph.D. handy :D < 1322511882 300991 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: you can actually get a PhD entirely on work you've already done < 1322511889 493007 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :just, you're unlikely to get funded in that situation < 1322511903 465133 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :heh < 1322511917 572123 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I think the main problem is that I'd have to write a book justifying @ < 1322511923 468259 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :actually, I've probably already done that in here < 1322511959 257947 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the main problem is finding all the previous work on mildly related things < 1322511967 708509 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :to show how a) you were inspired by it, and b) it's different from what you're doing < 1322511993 66251 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: I'm kind of already doing that by digging up everything related I can find to take inspiration from it :P < 1322512006 514486 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: keep a record of it, then < 1322512013 46490 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that's the boring part :( < 1322512013 375382 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :citation details, at least < 1322512022 529956 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :but I probably should at least have a bookmark folder or something < 1322512026 962110 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :nah, less boring doing it at the time when it's easy, then later when it takes a lot longer < 1322512027 271745 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :since I keep losing things < 1322512034 347916 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: s/then/than/, presumably < 1322512037 853536 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :err, yes < 1322512042 748076 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :grabbing citation details is quick and easy < 1322512053 405232 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :formatting them for consistency is the boring part, but that can easily be done much later < 1322512086 841555 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: ooh, I know, I'll just do @ now, and then my Ph.D. can be /naming/ it < 1322512102 78593 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :lots of graphs and statistics on the emotional response to various potential names < 1322512102 400415 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hahahaha < 1322512113 799172 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :then it'd, umm, be a PhD in marketing < 1322512125 75654 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which would be a bizarre thing for you to have < 1322512138 658755 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: no, I'd, er, develop a New Kind of Name Generation Algorithm < 1322512144 887749 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that only works on @, for some reason < 1322512168 254280 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: spambot-based naming? < 1322512179 510435 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :perfect @ name generator algorithm that only works on @: get_current_os_name() < 1322512262 762685 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but it only works on @ /after it's named/ < 1322512273 112836 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: it's not @ until it's named! < 1322512298 444851 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wow, will this conversation look weird once @ /is/ named and we search-and-replace the logs < 1322512388 668536 :GreaseMonkey!~gm@unaffiliated/greasemonkey JOIN :#esoteric < 1322512419 256429 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: ooh, now i really hope Gregor does tha < 1322512419 749473 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :t < 1322512433 827320 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and clog's owners too? < 1322512449 8632 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: clog will probably turn to rust before then < 1322512462 753174 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but the logs will probably be backed up < 1322512464 943879 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also, can IRC bots rust? < 1322512480 342386 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :if any IRC bot can, clog can < 1322512528 296816 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :it'll just eventually clog up < 1322512533 807960 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :/kick oerjan < 1322512593 243466 :oerjan!oerjan@129.241.210.70 PRIVMSG #esoteric :how rude < 1322512626 547617 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :@ elliott_ You can't rewrite history! < 1322512639 356754 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :My name is indeed @ elliott_. < 1322512641 837072 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :@ ais523 I'm just going to start Twitter-addressing everybody. < 1322512644 650039 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I changed it after the completion of @ to honour it. < 1322512658 946171 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :shachaf: that's not twitter-addressing, you need to omit the space, and also replace @ with an at sign < 1322512672 418695 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :elliott_: With a what? < 1322512686 333145 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :I don't know if I have it on my keyboard; you should type it so I can copy it. < 1322512713 520424 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :@ < 1322512747 204808 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :shachaf: \@ < 1322512753 742394 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(thankfully, the regexp will take escapes into account) < 1322512794 202911 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :You could've picked a less common character... < 1322512874 719776 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :shachaf: < 1322512875 138153 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :[elliott@dinky esoteric]$ fgrep '\@' ????-??-??.txt | wc -l < 1322512875 317978 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :26 < 1322512910 462579 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :I mean, less common than '@'. < 1322512921 918534 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :`run fgrep '\@' ????-??-??.txt | wc -l < 1322512924 401856 :HackEgo!foobar@codu.org PRIVMSG #esoteric :fgrep: ????-??-??.txt: No such file or directory \ 0 < 1322512928 784973 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :shachaf: @ is the only thing that's right for it < 1322512929 435086 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wait, I need to change the directory < 1322512931 569369 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :everything else looks wrong < 1322512933 435578 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :`run fgrep '\@' logs/????-??-??.txt | wc -l < 1322512936 123417 :HackEgo!foobar@codu.org PRIVMSG #esoteric :fgrep: logs/????-??-??.txt: No such file or directory \ 0 < 1322512940 234241 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :`run fgrep '\@' /var/irclogs/_esoteric/????-??-??.txt | wc -l < 1322512940 727011 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :`ls < 1322512945 945931 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :aha, that's where it is? < 1322512959 390973 :HackEgo!foobar@codu.org PRIVMSG #esoteric :31 < 1322512964 657144 :HackEgo!foobar@codu.org PRIVMSG #esoteric :bin \ canary \ karma \ lib \ paste \ quotes \ share \ wisdom < 1322512979 842684 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :`ls -F < 1322512981 690354 :HackEgo!foobar@codu.org PRIVMSG #esoteric :bin/ \ canary \ karma \ lib/ \ paste/ \ quotes \ share/ \ wisdom/ < 1322513028 749477 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :`? shachaf < 1322513030 958135 :HackEgo!foobar@codu.org PRIVMSG #esoteric :shachaf? ¯\(°_o)/¯ < 1322513036 267730 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :NOOOOOOO < 1322513037 180579 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :`help < 1322513038 633333 :HackEgo!foobar@codu.org PRIVMSG #esoteric :Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ < 1322513060 904067 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :`run hg diff 1170 1171 < 1322513064 67584 :HackEgo!foobar@codu.org PRIVMSG #esoteric :1170: No such file or directory \ 1171: No such file or directory < 1322513068 117669 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :`run hg diff -r 1170 -r 1171 < 1322513071 404860 :HackEgo!foobar@codu.org PRIVMSG #esoteric :diff -r 0d97b97d3636 -r 1cc5d9c44760 wisdom/shachaf \ --- a/wisdom/shachaf.Sat Nov 26 18:17:45 2011 +0000 \ +++ /dev/null.Thu Jan 01 00:00:00 1970 +0000 \ @@ -1,1 +0,0 @@ \ -shachaf mad < 1322513082 536126 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :`run hg diff -r 1170 -r 1171 | patch < 1322513085 169383 :HackEgo!foobar@codu.org PRIVMSG #esoteric :The next patch would delete the file shachaf, \ which does not exist! Assume -R? [n] \ Apply anyway? [n] \ Skipping patch. \ 1 out of 1 hunk ignored < 1322513089 74447 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :`run hg diff -r 1170 -r 1171 | patch -R < 1322513092 30064 :HackEgo!foobar@codu.org PRIVMSG #esoteric :patching file shachaf < 1322513099 806177 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :`ls wisdom < 1322513101 688437 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :`run mv shachaf wisdom < 1322513102 138264 :HackEgo!foobar@codu.org PRIVMSG #esoteric :​? \ ais523 \ augur \ banach-tarski \ c \ cakeprophet \ category \ elliott \ everyone \ finland \ finns \ fizzie \ flower \ friendship \ functor \ fungot \ gregor \ hackego \ haskell \ ievan \ intercal \ itidus20 \ kallisti \ mad \ monad \ monads \ monoid \ monqy \ nooga \ oerjan \ oklopol \ phantom__hoover \ phantom_hoover \ php \ qdb \ qdbformat \ quine \ sgeo \ u \ vorpal \ welcome \ wiki \ you < 1322513103 728148 :HackEgo!foobar@codu.org PRIVMSG #esoteric :No output. < 1322513111 677949 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :`? shachaf < 1322513114 198031 :HackEgo!foobar@codu.org PRIVMSG #esoteric :shachaf mad < 1322513121 503194 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Well. < 1322513133 140592 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :ACTION is flattered that you went to all that trouble. < 1322513134 466700 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :`rm wisdom/shachaf < 1322513136 723883 :HackEgo!foobar@codu.org PRIVMSG #esoteric :No output. < 1322513137 745058 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :why not just re-add it by hand? < 1322513151 480440 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it'd probably have been simpler < 1322513156 354162 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :`? banach-tarski < 1322513158 879304 :HackEgo!foobar@codu.org PRIVMSG #esoteric :​"Banach-Tarski" is an anagram of "Banach-Tarski Banach-Tarski". < 1322513167 523525 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :oerjan added that < 1322513169 476332 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I cannot be blamed < 1322513172 17539 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :`revert < 1322513173 402921 :HackEgo!foobar@codu.org PRIVMSG #esoteric :Done. < 1322513174 468180 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's a good one < 1322513191 690404 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: don't you need to revert 2? or does it just revert the last side-effecting command? < 1322513194 318574 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :`? shachaf < 1322513196 206840 :HackEgo!foobar@codu.org PRIVMSG #esoteric :shachaf mad < 1322513200 392398 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ah, the latter < 1322513203 181628 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: only mutating commands commit < 1322513212 91191 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :`? c < 1322513214 162998 :HackEgo!foobar@codu.org PRIVMSG #esoteric :C is the language of��V�>WIד�.��Segmentation fault < 1322513214 911220 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, like `quote ? < 1322513223 890407 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: not any more < 1322513229 64064 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :`rm wisdom/shachaf < 1322513231 62001 :HackEgo!foobar@codu.org PRIVMSG #esoteric :No output. < 1322513232 811185 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :`hg commit < 1322513232 990105 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :`revert < 1322513233 707958 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, oh? Why did you remove that feature? < 1322513235 788061 :HackEgo!foobar@codu.org PRIVMSG #esoteric :abort: could not lock working directory of /hackenv: Read-only file system < 1322513239 925872 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :`? you < 1322513242 208610 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: because it'd mess up transactional hackego :) < 1322513242 387908 :HackEgo!foobar@codu.org PRIVMSG #esoteric :you a haskell < 1322513246 547397 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :ACTION has no idea how to use hg. < 1322513249 294413 :HackEgo!foobar@codu.org PRIVMSG #esoteric :Done. < 1322513261 183587 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :`rm wisdom/shachaf < 1322513261 395407 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :`? u < 1322513263 352891 :HackEgo!foobar@codu.org PRIVMSG #esoteric :No output. < 1322513265 488165 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :`revert < 1322513265 667144 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :shachaf, stop it < 1322513267 119874 :HackEgo!foobar@codu.org PRIVMSG #esoteric :Done. < 1322513276 266512 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :You stop it! < 1322513276 461416 :HackEgo!foobar@codu.org PRIVMSG #esoteric :u monad? < 1322513287 95520 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :`cat bin/revert < 1322513289 203809 :HackEgo!foobar@codu.org PRIVMSG #esoteric :cat: bin/revert: No such file or directory < 1322513293 357531 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :How is HackEgo talking withotu commands? < 1322513293 549152 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :`rm wisdom/shachaf < 1322513295 458701 :HackEgo!foobar@codu.org PRIVMSG #esoteric :No output. < 1322513304 412992 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :shachaf, at least two people want to keep it. Me and elliott. That means a majority of us three. < 1322513316 738366 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :It's okay, he can have it deleted. < 1322513320 894933 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Vorpal: I have extra votes because I'm me. < 1322513333 558151 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, you just did that to annoy me. Good job :P < 1322513343 10072 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: but kallisti has extra votes because he's Bjorn < 1322513366 553072 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :`help < 1322513368 122147 :HackEgo!foobar@codu.org PRIVMSG #esoteric :Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ < 1322513372 328830 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Vorpal: The only reason you wanted to keep it was that elliott_ wanted it. < 1322513379 472029 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :elliott_: You should get rid of the _. < 1322513385 705034 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :It's grating on the fingers, you know. < 1322513385 945596 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :shachaf, come on. We two usually never agree on /anything/ < 1322513398 15253 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Vorpal: Unless annoying a third party is at stake! < 1322513410 761160 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :shachaf, not really no < 1322513427 758305 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: wait, you're annoying? I hadn't realised < 1322513435 931002 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :X-D < 1322513441 951755 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Yes, shachaf is super annoy(ing|ed). < 1322513459 693821 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :I hadn't either. < 1322513528 67635 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric : Yeah, I was buying cell-batteries the other day and the retailer wanted me to enter a facebook user and password so it could automatically insert a facebook comment that I had purchased batteries from them. < 1322513557 21806 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :gah, my mind cannot comprehend the amount of stupidity in existence implied by that comment < 1322513564 366566 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(not from the author, he clearly couldn't either) < 1322513603 11022 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: if it makes money, it's not stupidity < 1322513609 733823 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :wow < 1322513620 674600 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: I'm not convinced it's stupid from the retailers' point of view either < 1322513635 268514 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but for it to be sensible from their point of view, implies a sufficient number of stupid people around that it actually makes a profit < 1322513699 210422 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :ais523, it could be an experiment to find out if that is the case? < 1322513700 588360 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: well, it's not necessarily stupid to prioritise not being bothered by a retailer over very minorly annoying some people, considering how much noise facebook has anyway < 1322513705 571705 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hopefully it is not the case < 1322513732 778371 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: it /is/ stupid to give a username and password that you probably use for everything to a random retailer, though < 1322513775 539507 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: well, OK, but I'd rather blame (a) the username/password model to start with and (b) the lack of proper computer security education, although (b) is massively impaired by the fact that the current systems are unusable (see (a)) < 1322513799 690496 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :what model would be better than username/password, and also that people could be persuaded to use? < 1322513804 767381 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and there are situations where you have to give away your password; for instance, when trying to get my MacBook replaced, Apple demanded my password < 1322513813 607316 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :which doesn't exactly educate people not to give their passwords away < 1322513831 646983 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: err, what? that seems like a bizarre thing for them to want < 1322513842 750949 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :is that the login password to unlock the computer for the main user? < 1322513844 874313 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: I tried notto think too much about it < 1322513849 154181 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and no, my Apple ID password < 1322513851 255882 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :over the phone < 1322513855 237770 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :... < 1322513857 509434 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :what < 1322513862 102346 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ah, OK, probably to verify that you're an actual customer of theirs < 1322513873 617263 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :yes, something like that < 1322513878 360390 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :a password to log in to the person at the other end of the phone is reasonable < 1322513887 546802 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :no obvious reason why they should be restricted to computers < 1322513895 42888 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :yes, but it's still giving your password to someone else, so it's hardly surprising that people aren't averse to doing that < 1322513900 610791 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :other than salting/hashing being hard to do mentally < 1322513913 501528 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :ais523, hardware certificates + password entered on the hardware certificate device use to sign a response code. That should be better than classical user/password. Major PITA for anything except bank transactions and other high security stuff < 1322513915 673090 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(actually, salting is easy) < 1322513929 276196 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :a password existing for the purpose of giving to specific other people is reasonable to give to those people < 1322513935 491103 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: anyway, I don't know which model is necessarily better than passwords, but things like OpenID are a start, even if they have a password at the base of it; public key crypto is also promising < 1322513972 960341 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, hardware certificates :P < 1322513982 674824 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: a GPG key on a USB key integrated into your browser that asks for the passphrase when it's plugged in doesn't seem that bad to me < 1322513994 143459 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :especially if the USB key doesn't expose the GPG key but just signs things as it < 1322513998 69873 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, I was thinking along the lines of smartcard but sure < 1322514011 28833 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: in that case, you can put a fingerprint reader on the USB device < 1322514025 389858 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: everything i've read suggests fingerprint readers are completely insecure < 1322514027 848218 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :probably saves time over password memorisation, and you still have two factors < 1322514042 684505 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: right, the problem is that they're too easily brute-forced < 1322514047 442040 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :fingerprint readers are insecure yeah < 1322514049 434571 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: and copiable, I believe? < 1322514053 970630 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but someone would probably notice brute-forcing in a shop < 1322514058 33820 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :you want an iris scanner! < 1322514072 766531 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: true, but nobody wants an authentication mechanism that only works in shops < 1322514078 179905 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ah, OK < 1322514091 746097 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :all biometrics are copiable for the same reason that all videos are copiable < 1322514098 726919 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :they have to be translated to data at some point, and you can copy that < 1322514111 462775 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :ais523, fingerprints are easy to copy however iirc < 1322514111 684292 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: in a shop, something like logging in on a smartphone and passing an authentication to post a status update wirelessly seems like the most reasonable way to do something like this (not that it /should/ be done) < 1322514113 844347 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and just use it directly rather than scanning it in < 1322514132 176204 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that way, the shop can't do anything at all apart from post one status update right then < 1322514135 609869 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: hmm, perhaps the shop should have a QR code, and the smartphone scans that < 1322514143 25655 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it probably knows the Facebook username/password already < 1322514145 624611 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :ais523, like if you have a laser printer + some stuff that is easy to get your hands on for not a lot of money you can copy a fingerprint < 1322514150 885345 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :heh; I gather that QR codes aren't gaining traction because they're really ugly,t hough < 1322514153 803720 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :*, though < 1322514154 446899 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :forgot the exact details < 1322514157 65417 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you'd probably have to accept an authorisation popup first time < 1322514162 459841 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: also, because they seem to have too much computational power < 1322514167 223616 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :really? < 1322514169 679312 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I heard a rumour of QR code trojans a while back < 1322514170 696324 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, they are gaining traction here in Sweden, slowly. < 1322514177 707418 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but I have no idea what level of social engineering that required to work < 1322514186 24258 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: they might be a growing fad, but that doesn't mean they're gaining long-term traction < 1322514189 297983 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: wow < 1322514192 79363 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :well sure < 1322514199 350748 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: they only encode a small bit of textual data to my knowledge, so that's surprising < 1322514204 343677 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it might have been as simple as "QR code points at website containing malicious software download" < 1322514235 762675 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :probably was, actually, and the media went crazy about it as usual < 1322514246 549924 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :definitely the former < 1322514251 553370 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :qr codes just encode data < 1322514268 982444 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :don't listen to mainstream media wrt viruses. They are bloody useless. < 1322514304 173474 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: s/viruses/computers/ < 1322514316 967579 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :s/computers/anything/ (per Knoll's Law) < 1322514325 4302 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :*Law of Media Accuracy < 1322514341 88035 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Vorpal: well, this was tech media < 1322514345 134836 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but they can be just as bad sometimes < 1322514351 674904 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :they just sound more like they know what they were doing < 1322514381 15865 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, true < 1322514390 624822 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :ais523, heh < 1322514396 119156 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: that's why you stick to respected institutions like The Register! < 1322514413 764585 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: at least the Register is reasonably consistently biased < 1322514422 243238 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(it has a strong pro-Paris-Hiltion bias) < 1322514422 422395 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :heh < 1322514438 907727 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :wat < 1322514457 158235 :oerjan!oerjan@129.241.210.70 QUIT :Quit: Good night < 1322514463 40208 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: do you know anything about x86 hardware virtualisation < 1322514500 615258 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, yes < 1322514505 317075 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, not much though < 1322514511 847392 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, why? < 1322514532 492561 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: well, I know it can be used to virtualise code running in ring 0 < 1322514539 366878 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :presumably it can be used to remap memory accesses by that code? < 1322514539 863715 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :yes and? < 1322514544 291525 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hm < 1322514546 747492 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I know it can remap memory accesses by virtualised stuff in ring-3 < 1322514573 248323 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, no idea. Probably depends on if it is hardware stuff, in which case you need an IOMMU, which is not yet common on consumer (read: non-server) hardware < 1322514583 523465 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :hmm < 1322514585 7459 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :as in DMA or such < 1322514585 186458 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Extended_Page_Table < 1322514588 459113 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I think this will work < 1322514595 621780 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :"A separate set of page tables (the EPT tables) translate from guest-physical addresses to the host-physical addresses that are used to access memory." < 1322514603 468358 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, sure < 1322514607 879743 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, what about it? < 1322514611 810373 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :and why do you want it < 1322514613 450287 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :well, it'll let me remap the memory < 1322514617 363577 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :of ring-0 stuff being virtualised < 1322514626 729409 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :why are you virtualizing ring-0 stuff? < 1322514628 519201 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :only Nehalem-onwards, but oh well < 1322514632 611940 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and looks like AMD implements the same thing < 1322514642 33883 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, you want to use kvm. Because AMD and Intel use different models for it < 1322514645 508437 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :kvm abstracts that < 1322514649 634542 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: no, I don't < 1322514655 900577 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :oh? < 1322514676 56705 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :it's an OS ide I've had that is both significantly easier to do than @, and demonstrates/tests some of its low-level performance benefits < 1322514677 613265 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :*idea < 1322514692 557219 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :basically, it's a POSIX-ish kernel that runs everything in ring 0 that virtualises every process < 1322514696 481903 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(for security) < 1322514704 337970 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :heh < 1322514709 92294 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :but yeah < 1322514713 479345 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :my desktop can run that < 1322514723 288645 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, I think virtualbox has it as a "nested page table" thingy < 1322514725 103587 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :hmm, although, I'm not sure how expensive ring 0 stuff talking to the virtualisation code is < 1322514742 168932 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, without that feature you just handle those page tables in you hypervisor software < 1322514744 173852 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :if it's as expensive as a syscall, then my adventage is lost < 1322514759 460247 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, might be more expensive < 1322514759 812185 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :so if anyone knows the answer... let me know < 1322514767 346416 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :wouldn't surprise me < 1322514775 281261 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: well, not much more expensive, at least, or Xen would be really slow < 1322514783 423263 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: ISTR that running Linux under Xen is actually faster than running it natively < 1322514785 202651 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :in certain scenarios < 1322514793 575114 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :heh < 1322514804 21568 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :I really want to see a citation on that < 1322514816 769215 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :don't have one, I'm afraid < 1322514831 688971 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, anyway linux has special code to run better as a guest < 1322514832 521929 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: anyway, even if virtualisation isn't possible the OS idea will still work... I'll just go back to my original idea of building the checks into the compiled code < 1322514861 649264 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :because I think a branch on every memory access will pay itself off by the vastly reduced syscall overhead < 1322514971 346649 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: OK, your new job (changed from discouraging me to write this) is to make sure I continue writing it after I get a bootloader < 1322514978 383242 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I really like writing bootloaders < 1322514988 177507 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :haha < 1322515057 662109 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :one of the main problems with @ is that it's not at all clear where it actually starts running < 1322515116 239055 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :presumably you have some outside-@ bootloader that just sets up for bits of disk to be swapped into memory so they can start running again < 1322515232 785766 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: and then jumps where? < 1322515252 725269 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :to where the IP was the last time stuff got flushed to disk < 1322515253 188705 :sebbu2!~sebbu@unaffiliated/sebbu NICK :sebbu < 1322515255 292380 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which should be very recent < 1322515275 36491 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in fact, it's going to be in the disk-flushing routines, which makes life rather easier < 1322515279 947165 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: there's more than one IP, and there's more machine state than just RAM + registers < 1322515300 198116 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: anyway, that doesn't work, because you need to set up more than that < 1322515304 357045 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :timers, interrupts, and so on < 1322515307 507026 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: well, it jumps to stuff to restore that, then to where stuff was < 1322515316 316824 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the problem may be difficult, but it's easy to describe < 1322515316 653071 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(the IP of the disk-flushing stuff won't be stored) < 1322515326 970228 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(because it's run from a timer, and doesn't block anything) < 1322515333 589610 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(well, it does blockt hings, but not /everything/) < 1322515338 814526 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(it just causes a switch to another thread, mostly) < 1322515359 553029 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: right, but where is that stuff? :) < 1322515372 74506 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :for proper orthogonal persistence, it has to be persisted < 1322515408 597331 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :alternatively, you could decide that some of it can't meaningfully be persisted (network driver state, for instance), in which case it'd be the driver's job to initialise it < 1322515424 737624 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :basically, look at what Linux does on hibernate/unhibernate; it's basically that < 1322515437 787150 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I know that much, but Linux unhibernate is too specialised < 1322515443 24647 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :because it assumes all the structures and the like are the same < 1322515449 241493 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric : because I think a branch on every memory access will pay itself off by the vastly reduced syscall overhead <-- depends on how IO-bound the code is. < 1322515451 917595 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :@ can't assume that, it needs to have a completely generic bootloader < 1322515459 240481 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :for IO you traditionally need lots of syscalls < 1322515461 673849 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: I disagree < 1322515476 996873 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: even CPU-bound tasks that do, e.g. concurrency of any sort, have to do communication < 1322515489 677468 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: it's not the bootloader's job to do most of the unhibernate < 1322515502 158057 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: then whose job /is/ it, and how does the bootloader get to it? < 1322515522 828922 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also, wrt the other conversation, concurrency primitives don't touch the kernel except when there's contention, nowadays < 1322515531 170383 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, I'm considering the sort of heavy task I personally do a lot of. Which is stuff like optimising non-linear equations over thousands of data points for best fit. < 1322515537 64715 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: it's the init scripts' job, IIRC < 1322515539 845048 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : also, wrt the other conversation, concurrency primitives don't touch the kernel except when there's contention, nowadays < 1322515541 289133 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pure number crunching < 1322515544 940134 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: yes, because syscalls are slow < 1322515545 626391 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I can't remember if they're run by init directly during unhibernate, or some other way < 1322515549 719233 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and so removing syscall overhead sped things up < 1322515550 981131 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: exactly < 1322515564 672494 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but the point is, there isn't currently syscall overhead in that because it was removed a different way < 1322515576 969570 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, avoiding checks on memory access by being smart in the compiler will certainly pay off for some tasks though < 1322515577 629915 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: "tight loop of number crunching with a data set that fits into RAM and absolutely no concurrency whatsoever" is rare and becoming even rarer as multicore gets more and more ubiquitous < 1322515585 475629 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so the issue is about how syscall-bound the program is < 1322515597 811050 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: for a job like that, anyway, a /scheduler/ is a bottleneck < 1322515599 281504 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Web of Lies gives you a really good idea of how syscall-bound a program is < 1322515606 872486 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and if you're not calling any syscalls, why not run it directly on bare hardware? < 1322515608 347314 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :as it has no timing effect on anything but syscalls < 1322515612 124286 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, well yes. < 1322515613 248344 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :so OSes are already working against tasks like that < 1322515620 492064 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :nobody will care if they work against them a bit more < 1322515633 913057 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: I've actually been wondering how @'s scheduler works, or if it has one, and if it doesn't have one what it does instead < 1322515645 58440 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric : and if you're not calling any syscalls, why not run it directly on bare hardware? <-- because it is less convenient when debugging :P < 1322515675 365113 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :and usually you do some syscalls even in those cases. Load initial data set, write out final result < 1322515680 569404 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :at the very least < 1322515684 834695 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :indeed < 1322515695 658577 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :so reducing sysccall overhead helps there < 1322515698 112441 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :so that is like 3 syscalls minimum, one read, one write, one exit < 1322515702 267258 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :probably a few more < 1322515706 463800 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :probably not as much as you lose, but it's likely that you do a bunch of read and writes < 1322515713 736327 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :because a lot of datasets can't fit into RAM < 1322515720 766912 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :at least, the datasets where you /really/ care about performance do < 1322515731 584437 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :because a small change in constant factors has a large change on the end result due to the size of the data < 1322515736 655932 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, the thing about those syscalls in this case is that they are one-time. They don't really vary that much between data sets of different sizes either. It is still a single read and a single write < 1322515742 389461 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: see above < 1322515742 607405 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: that's something I've been thinking about a lot recently < 1322515750 95679 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: it definitely does have a scheduler < 1322515761 43505 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, if your data set can't fit into your ram things are going to be horribly slow anyway < 1322515763 357791 :Patashu!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au JOIN :#esoteric < 1322515779 894227 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, even without considering IO overhead disks are way slower than ram < 1322515787 335978 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Vorpal: Most data sets don't fit in RAM. < 1322515790 465687 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: not really, if you can do it in chunks of 8 gigs or so at a time... < 1322515796 979814 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :At least, most data sets you give a shit about. < 1322515799 237461 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :assuming there's not too much interdependency < 1322515805 604617 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, indeed. < 1322515819 958572 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: and, problematically, it needs a /really good/ scheduler < 1322515836 344348 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :In a land where heavy computing jobs go through a terabyte drive in a day, everything is IO bound. < 1322515837 677748 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: with the caps to do anything < 1322515839 140301 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :anyway my /personal/ use case here is mostly stuff that fits into ram. Like 5-6 GB of data. < 1322515841 595073 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: and it needs to handle millions of tasks (= processes/threads) running < 1322515854 542770 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: oh, it's not a problem for such low-level code to have all permissions < 1322515858 337233 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well, OK < 1322515860 430620 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :although it doesn't need quite that many < 1322515882 870304 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: it needs to be able to stick the IP in the middle of arbitrary code < 1322515888 939619 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: basically I need tasks to be as cheap as lightweight threads in GHC(/Erlang/whatever) < 1322515917 684773 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there's no real problem with a million-task scheduler with current technology; the issue is more adapting for various patterns of blocked/nonblocked < 1322515919 666856 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :yeah erlang have really light weight processes < 1322515928 540406 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :iirc ~300 words per thread + stack < 1322515928 719461 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: not as lightweight as GHC, to my knowledge < 1322515941 372822 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :at least speed-wise < 1322515942 348454 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :for handling operations like sleep, etc, you aren't going to do better than n log n (possible with a heap-like priority queue) < 1322515948 128658 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :is that going to be good enough? < 1322515950 366707 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, quite possible < 1322515952 977827 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: well, the problem is more memory usage < 1322515968 707626 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: I need some subdivision of the massive heap to do effective GC < 1322515972 314536 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :just throw in more RAM. that is where computers are heading anyway < 1322515977 378455 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: I want to be able to do copying, incremental GC < 1322515984 410495 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: is the scheduler doing that? < 1322515985 722412 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: tasks seem a reasonable unit to do that at < 1322515987 374485 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, can't you have per-process heap for stuff not likely to be sent between threads? < 1322515987 691112 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: no < 1322515990 804604 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: but the point is, how do you divide it? < 1322515996 32076 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :there's no concept of "process" < 1322515999 636864 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: there's no concept of "process" < 1322516000 514183 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, per task then < 1322516004 881229 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: that's the problem < 1322516011 927647 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I assume there is a concept of "unlikely to be sent to a different task", but it'd be quite hard to determine < 1322516022 112363 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, or per unit that can be stopped independently from other units for GC tasks < 1322516023 104107 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :my memory management strategy involved 2 mebioctets + 4 kibioctets per pool < 1322516027 334596 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :in pages < 1322516030 320577 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I suppose you could just use the generational GC approach, treating all data as that until it's actually sent to another task < 1322516031 619993 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that's not viable for millions of threads < 1322516041 685632 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hm < 1322516043 758751 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :2 megs * 1 million = 2 terabytes < 1322516045 788638 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :whoopsie! < 1322516052 185904 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, do you need to split on whole pages? < 1322516053 499002 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(and this has to be in /RAM/, not on disk) < 1322516054 109397 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: why not? just use a system where the address space is way bigger than the actual amount of memory < 1322516060 910246 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: in /pages/ < 1322516063 834787 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although, x64 probably doesn't meet that requirement < 1322516065 84847 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that map to /physical RAM/ < 1322516067 561401 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, afaik erlang does not use a whole page per process < 1322516072 626910 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: oh, physical, ouch < 1322516079 685936 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: well, that was my memory management trick, to make an allocation take 2 cycles < 1322516083 803407 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and no branches < 1322516091 978337 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :for allocations of less than 4 kilobytes < 1322516093 122628 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, ... that might not be a good tradeoff < 1322516094 768017 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(= almost all of them) < 1322516106 775690 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: it's an excellent tradeoff, it just means I can't have a pool per task < 1322516118 429784 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :which brings up the question, how /do/ I divide pools? < 1322516118 751439 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hm < 1322516131 275793 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :note: two CPUs cannot allocate from the same pool at once < 1322516134 820830 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and I don't want to use locks < 1322516143 511460 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :so I can't just say "oh, divide it between 100 tasks" < 1322516156 628060 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :because those tasks will have vastly reduced concurrency < 1322516160 403593 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :a pool per cpu? < 1322516178 7243 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :or core or whatever < 1322516185 770560 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: a CPU isn't really anything; this has to be of the real heap, which is of ~a terabyte in size < 1322516187 584469 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :not RAM itself < 1322516191 658676 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :because GC is done on the real heap < 1322516201 633358 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, I don't see any reason why all the allocations of a single task have to come from the same pool < 1322516204 440174 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :also < 1322516206 79132 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :if it is moved to a different CPU < 1322516209 358903 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that would tie tasks to CPUs permanently < 1322516213 282554 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hm wait < 1322516215 97701 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :cache lines < 1322516221 457725 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :okay I see reasons < 1322516224 831492 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: it's nothing to do with cache lines, but that's not what I said < 1322516233 315716 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :the reason two CPUs can't use a pool is because there's a really nasty race condition < 1322516240 870312 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, you don't want to share a page between two CPUs unless it is actually shared data :P < 1322516242 678693 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that could only be solved with a lock or slower CAS shit < 1322516247 914645 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :which defeats my 2 cycle allocation strategy < 1322516258 337834 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, when allocating yes. But not when /using/ said pages < 1322516268 186350 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that's what I said < 1322516270 862068 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :if you allocated offset 40-57 in the page < 1322516271 190212 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :but < 1322516275 647876 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :you can use that freely < 1322516276 223904 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :a program can allocate from its pool at any time < 1322516281 624428 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and a program only uses one pool at a time < 1322516285 871341 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(it's expanded when necessary) < 1322516288 4054 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(and is the unit of GC) < 1322516297 973292 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, I suggest tying the pool to the cpu instead. < 1322516301 902450 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :but whatever < 1322516302 793475 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: hmm, how common are allocations? and how common would they be if they were very cheap? < 1322516304 21942 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: I just told you that doesn't work at all < 1322516308 461519 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: _there is no CPU_ < 1322516312 729305 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, I don't think your GC design is viable. < 1322516315 715335 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :it is < 1322516322 738557 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :you just don't understand it < 1322516324 531060 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :not with millions of tasks < 1322516329 939151 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :because you keep making references to "CPUs" and other things that don't exist < 1322516335 322822 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also, hmm, how do you verify that a process doesn't access out-of-address-space when it's allocating memory dynamically < 1322516342 568080 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: I never said I want a pool per task < 1322516344 201637 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, what the fuck do you execute the damn code on then? < 1322516345 670331 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that's what I'm trying to avoid right now < 1322516348 646091 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pink creepers? < 1322516354 572036 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: lol, you're an idiot < 1322516363 866895 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: you cannot make reference to CPU in the distribution of pools < 1322516372 221797 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: CPU affinity is only meaningful wrt per-CPU cache, AFAICT < 1322516376 815900 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :elliott_: Then your memory model does not handle NUMA. < 1322516379 453155 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, why? < 1322516383 34665 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: w h a t < 1322516385 408385 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and possibly, in the future, per-CPU RAM that isn't cache, but that's not standard yet < 1322516390 295980 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :and yes pikhq_ has a point < 1322516399 239603 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :however, I'm not convinced that per-CPU cache is unimportant here < 1322516399 635852 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: I've decided explaining to you won't make you any less stupid, so I'm just going to answer ais523 instead < 1322516400 430737 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :NUMA? < 1322516405 847170 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : elliott_: hmm, how common are allocations? and how common would they be if they were very cheap? < 1322516407 365809 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Non-Uniform Memory Access. < 1322516409 946873 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: exceedingly common < 1322516411 775455 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :Phantom_Hoover, Non-uniform memory access < 1322516413 709013 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :like core i7 < 1322516419 596309 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : also, hmm, how do you verify that a process doesn't access out-of-address-space when it's allocating memory dynamically < 1322516421 564366 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: hm? < 1322516422 781782 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :at least with dual cpus (not cores) < 1322516444 713842 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: say a process writes the equivalent of char* a = malloc(5); putc(a[7]); < 1322516454 42154 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Wherein each CPU has its own memory (but can access that of others, though more slowly) < 1322516457 147179 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, that's not a huge problem, you could just insist on bounds checks everywhere < 1322516463 672257 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and I think that'd be enough < 1322516471 27960 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: it can't, and bounds checks aren't necessary < 1322516478 718187 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, I believe nehalem and after is that, rihght? < 1322516480 569392 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :right* < 1322516482 806634 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: umm, I mean char[], not char* < 1322516484 275118 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: the whole point of @ is that it doesn't run untrusted code < 1322516496 47258 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Vorpal: For Intel, yeah. < 1322516498 490709 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: I know; the question is, how do you determine whether such code is trustworthy < 1322516500 494401 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, yeah < 1322516505 727634 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: umm, the capability model? come on < 1322516508 874642 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and the answer, AFAICT, involves bounds checks, either runtime or statically < 1322516512 478791 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, I believe amd have on-cpu MMUs too? < 1322516515 302448 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: if you can prove to the @lang compiler that you never access out of bounds, bounds checks can be omitted < 1322516516 730439 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, since even longer < 1322516519 716856 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: for instance, length-carrying vectors < 1322516522 968725 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :didn't k8 introduce that? < 1322516525 298787 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: yep, indeed < 1322516529 420969 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that's what I meant by static bounds checks < 1322516529 765737 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :there's no "checks" there, your program just doesn't type if it accesses things wrong < 1322516530 560406 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Yeah, AMD's been doing NUMA a long freaking time. < 1322516535 300599 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: I typed that before you said it < 1322516536 280923 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I thought it was a problem, just realised it wasn't one < 1322516543 531917 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, and elliott_ has no clue about it... < 1322516548 450355 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: lol < 1322516559 720967 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :8 years now. < 1322516562 335965 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: stop being a fucking moron and assuming that because you don't understand how @'s GC works, I know nothing about NUMA < 1322516565 288783 :copumpkin!~pumpkin@unaffiliated/pumpkingod PRIVMSG #esoteric :AMD Dragostea Din Tei? < 1322516575 539413 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :copumpkin: lol < 1322516592 383179 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, well pikhq_ had a point about you needing to use a local pool if possible or suffer bad speed. < 1322516640 877283 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that's irrelevant, since processes point to the abstract memory space. < 1322516653 799101 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :if necessary, the pool can be loaded into the RAM of the CPU it's running on. < 1322516657 738467 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hm < 1322516671 476792 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, but you said there was no such thing as a CPU :P < 1322516690 182156 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Vorpal: Insofar as virtual memory is concerned, there is no meaningful notion of "CPU". < 1322516696 844232 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: because you kept trying to define pool allocation in terms of CPUs after I repeatedly told you that made no sense < 1322516701 135528 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, well obviously < 1322516702 106654 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :As the virtual memory space would be identical with 1 CPU or 1000. < 1322516703 58207 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :summary of elliott_'s arguments: CPUs are not a program-visible concept, in the cases where they're relevant that's handled by the memory allocator or pager < 1322516712 493759 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: not exactly < 1322516718 531127 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :you can't tie pools to CPUs because < 1322516724 185871 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(a) that'd mean tasks would be permanently tied to one CPU < 1322516724 674402 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, I'm suggesting that as a way to avoid having as many pools *and avoid the race conditions* < 1322516732 283755 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(b) what the hell do you do for tasks on disk? < 1322516733 262410 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, it means a completely different GC model though < 1322516735 724960 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :you GC disk too < 1322516737 700861 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :in units of pools < 1322516745 712470 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :it makes no sense at all < 1322516759 987333 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: well thanks, that's a really unuseful suggestion and also not what you actually said? < 1322516770 519956 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric : (a) that'd mean tasks would be permanently tied to one CPU <-- no, the pool of the current cpu would be transparently used when allocating. < 1322516777 478079 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :and you could access any pool < 1322516785 151242 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :for stuff you already allocated < 1322516793 819130 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric : (b) what the hell do you do for tasks on disk? <-- hm? < 1322516794 632034 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :my GC model works perfectly fine with a decent way to allocate tasks, which you have so far not offered a single idea for, so I'm going to assume that you just don't understand the model, since you haven't asked for it or demonstrated any knowledge of it < 1322516831 953909 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric : Vorpal: well thanks, that's a really unuseful suggestion and also not what you actually said? <-- it was exactly what I said < 1322516840 182546 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :elliott_: I vote you have a certain number of pools (based on RAM or disk size?), and when a thread starts it gets assigned the least used pool. < 1322516848 31574 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :"pool per cpu durrr" != " elliott_, I'm suggesting that as a way to avoid having as many pools *and avoid the race conditions*" < 1322516868 446953 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, then you misunderstood me < 1322516875 26656 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :sigh < 1322516878 311671 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :this is pointless < 1322516882 387147 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, what's the reason for having more than one pool? I know it's a good one, but it'd probably make this clearer to have it spelt out < 1322516886 415675 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, pikhq_'s idea makes sense < 1322516892 788767 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, but you are likely going to ignore it < 1322516896 577953 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: you can't do copying GC on a terabyte if you don't have another terabyte < 1322516914 78884 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: i'm working on a response to him because he's not an insufferable shithead; you, on the other hand, are going on /ignore < 1322516922 822490 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :fun fact: I can't type infinitely fast < 1322516940 783702 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :ais523: Incremental GC. < 1322516949 126394 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: that's not viable, since GC of a pool pauses every task using that pool, and two tasks on the same pool cannot ever be run at the same time (= on different SMP CPUs) < 1322516953 724936 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: hmm, OK; what's stopping you having half the memory as one pool, and the other half as the place it gets copied to? other than the wastefulness? < 1322516960 429780 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: and you can hardly pause the entire OS while you GC an entire terabyte, either < 1322516964 329907 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that'd take an awfully long time < 1322516971 711031 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ah, right < 1322516982 647318 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: well, that's wasteful, but even then, doing a single atomic copying-GC on a terabyte pool -- on disk! -- would be insanely slow < 1322516995 158983 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so, hmm, are you planning to go on a stop-and-copy architecture specifically? or some other sort of copying GC? < 1322517014 666410 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: well, it'll be generational (pools will contain multiple generations, I think) < 1322517030 27682 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(and past a certain generation, they'll be dissociated from a pool entirely) < 1322517042 437776 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(so that really long-lived objects just sort of hang around on disk and are basically never touched by the GC) < 1322517059 449721 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :elliott_: That sounds like the limits of having multiple tasks per pool. < 1322517073 96937 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: hm? < 1322517074 668513 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :And you already agreed that one pool per task isn't viable, so. < 1322517079 896543 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: stop-and-copy seems the most viable strategy < 1322517092 348916 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: although, it would be nice if you could have a tight loop with allocation that was guaranteed to never pause for long at all < 1322517111 435428 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: so you could write things that really have to be realtimeish, e.g. small-buffer video/audio code < 1322517119 135696 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :without having to avoid allocations (nearly impossible in @lang) < 1322517126 148227 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :What you need is a scheme for assigning task to pool, and so I gave you a simple one and claimed it was impractical because, basically, it would involve multiple tasks in a pool. < 1322517162 786715 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Though: if you want to limit the stoppage, there's no reason for the pool assignment for a task to be *permanent*. < 1322517171 648983 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, I gave him another scheme for the same thing and he claimed it was impractical too. This discussion is being pretty pointless < 1322517172 728570 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: well, you need to assign them with some intelligence < 1322517192 414175 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: e.g., a cluster of 10 threads that "work together" in some sense to serve some larger task that started them, are probably OK to put on the same pool < 1322517202 240956 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :That's a fairly 'mundane' scheduling problem. < 1322517211 239031 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :because they're "related", and so it doesn't matter if they don't run at the same time SMPly < 1322517221 59334 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :You get similar issues with trying to stick related tasks in the same NUMA group. < 1322517225 793641 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :mm < 1322517242 176130 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :It's not exactly an *easy* problem, but it's at least a rather well-understood one, and not at all @-specific. < 1322517271 554280 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: I wonder how fast I could get a concurrent allocator < 1322517287 510384 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I basically need an atomic form of {*y += n; x = *y;} < 1322517298 11133 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :where x is a register and y is a memory location < 1322517378 462653 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Definitely CMPXCHG. < 1322517395 305149 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :(x86's primary atomic instruction) < 1322517396 939939 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, that might need retrying if it fails < 1322517406 130129 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :isn't there an atomic increment? < 1322517412 327302 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :Not sure if it returns the old value < 1322517415 591676 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: I have a feeling it's not going to be quite as fast as MOV + ADD < 1322517417 404630 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :or any value even < 1322517451 660703 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :elliott_: It is if there's no contention. < 1322517478 310628 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :hmm, I'm not sure how cmpxchg would work, because you need to do an increment, not just a swap with some predetermined value < 1322517482 898916 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :so it'll need some lock layering on top < 1322517528 609672 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, I presume elliott_ is actually ignoring me. But lock xadd might do the job < 1322517566 83250 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :unless I misunderstood the docs < 1322517575 431300 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :which definitely won't be as fast < 1322517584 63229 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :elliott_: What you do is blithly fetch the value, increment it, and attempt the cmpxchg. If it fails, you restart. < 1322517585 229331 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, oh lock xadd will be < 1322517594 199283 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :oh, ah < 1322517596 378899 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :The thing is, you pass cmpxchg what the old value should be. < 1322517603 88265 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :how cheap is cmpxchg with no contention? < 1322517611 451858 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, I'm /pretty/ sure lock xadd will do this even cheaper. < 1322517612 745492 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: oh, that's a problem < 1322517620 279114 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :presumably, you branch to determine whether the cmpxchg worked or not? < 1322517621 137379 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, you might want to inform elliott_ < 1322517629 98334 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :the whole idea with my 2-cycle allocator is to avoid branches < 1322517657 345721 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Having a single branch that'll be predicted correctly almost always is not going to be notably worse. :) < 1322517669 645870 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :oh looks like pikhq_ is ignoring as well < 1322517673 424485 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: it is when it's something as common as this :P < 1322517684 865837 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: and I'm not so sure it'll always be predicted correctly < 1322517698 692380 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :^say elliott I know the solution to this. There is a better atomic instruction. I told you above. < 1322517710 733536 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :^help < 1322517710 951608 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :^ ; ^def ; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool < 1322517710 951785 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :allocation is really common, and probably follows very predictable patterns in @lang's generated code, so I would not be surprised if the contention rate was high for a pool < 1322517712 102126 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Vorpal: Is xadd atomic? < 1322517719 473641 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, with the lock prefix < 1322517740 312839 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, but you need that for anything to be atomic < 1322517754 904041 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Hmm, sure enough, that works better. < 1322517773 576381 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :hmm, xadd? this looks like the right thing < 1322517773 755725 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, don't tell elliott_ since he doesn't want to know what I have to say :P < 1322517801 987292 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :the question is how much slower LOCK XADD is compared to ADD + MOV in a uniprocessor situation < 1322517814 333186 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :probably not noticeably, but it'd be interesting to know exactly < 1322517833 872689 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :you can trivially specialise the code on the fly < 1322517835 353048 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :In a uniprocessor situation, it's "ADD + MOV + MOV". < 1322517843 701297 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :and uniprocessors are kind of outdated anyway < 1322517876 988160 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, isn't it xchg,add even? < 1322517879 742060 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: hmm, I don't think xadd can do memory < 1322517882 976395 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :0F C1/r XADD r/m32, r32 Exchange r32 and r/m32; load sum into r/m32. < 1322517886 900264 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :oh, hmm, yes it can < 1322517895 78753 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :If it couldn't it would be worthless. < 1322517898 513502 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :right :) < 1322517915 372977 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :"It's atomic because it accesses a per-thread resource!" < 1322517917 843118 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :the fact that xadd has sparse google results is worrying, though < 1322517927 421536 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :is it one of those CISCy instructions that nobody generates any more and so has really badly optimised microcode? :p < 1322517948 595646 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :No, it's one of the basic atomic primitives. < 1322517974 703797 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :http://www.xadd.net/ Why did someone buy a domain for this < 1322517976 871532 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :what do you do when a pool is full anyway < 1322517991 649498 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Collect. < 1322518011 650878 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, yeah but you need to reset the counter to be able to use this simple allocation stratergy < 1322518014 437138 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :or even move data < 1322518019 825836 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: accesses to it will go into the 4k barrier page space and thus cause a page fault < 1322518025 214355 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, this simple scheme can't handle skipping holes after all < 1322518039 157040 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Vorpal: Moving GCs are not magic. < 1322518040 464860 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: nor do modern GCs < 1322518047 685360 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :everyone uses a pointer-bumping allocator these days < 1322518052 468805 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :heh < 1322518053 58224 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :they just do it with a branch < 1322518054 36310 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :really? < 1322518059 342867 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :interesting < 1322518062 100354 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Yeah, basically everyone but Boehm. < 1322518066 702780 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: yes, which is why you allocate a new pool and compact as you move it there < 1322518071 300875 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :And Boehm only doesn't because it needs to work with C. < 1322518072 814140 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :by copying contiguously. < 1322518073 304967 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :I thought the glibc allocator for example was extent based < 1322518076 513956 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric : http://www.xadd.net/ Why did someone buy a domain for this <-- I thought you were in favour of foldl.whatever? < 1322518080 799151 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: glibc: "a garbage collector" < 1322518081 922119 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Vorpal: That's *not* a GC. < 1322518086 670204 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, well true, not the case < 1322518089 287022 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: those were cute, this is just silly < 1322518107 491042 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also, TLDs are getting increasingly obnoxious to remember < 1322518114 116078 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if they were used for their original purposes, there wouldn't be a problem < 1322518121 23104 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but there isn't really a TLD for "novelty website" < 1322518126 931689 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :heh < 1322518136 675784 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: hey, I have a .net that's actually an internet service provider! < 1322518137 767015 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :The TLD system is just very poorly suited to the modern 'net. < 1322518144 102877 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: wow < 1322518157 610324 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :arguably something like Freenode can plausibly correctly be .net too < 1322518166 636431 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, the ccTLDs kind of work still. Except for US. < 1322518174 135855 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: admittedly, the service we provide is mainly a minecraft server < 1322518180 307401 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :but that's an internet service that we're providing < 1322518182 580110 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :haha < 1322518187 18685 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :heh < 1322518188 460244 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and web hosts are considered ISPs, so I don't see why that shouldn't be < 1322518198 614779 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, they are!? < 1322518213 150013 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Vorpal: In a sense. They provide a service on the Internet. < 1322518213 949661 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Internet_service_provider < 1322518219 474229 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :the technical meaning differs from the colloquial meaning < 1322518224 439534 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(which only means "an actual internet link provider") < 1322518229 669494 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, well, that is not what people /usually/ mean by ISP < 1322518233 970872 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, quite < 1322518236 22787 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :bah, that page has the wrong definition < 1322518236 526725 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Or "a provider of Internet service". < 1322518242 568890 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :prescriptivists :) < 1322518246 903193 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :but .net was originally meant for the technical meaning < 1322518251 922828 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :not just the colloquial one < 1322518252 760960 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :I know that < 1322518257 587066 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :oh wait < 1322518261 26549 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :misread you < 1322518276 685598 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric : but .net was originally meant for the technical meaning <-- that would include pretty much everything then < 1322518277 968713 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: I think nowadays, I conclude that "internet service provider" and "ISP" actually have somewhat different meanings < 1322518300 84411 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: not really; a corporation not in the business of selling internet services wouldn't < 1322518316 767908 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :a web server isn't really "providing" anything < 1322518321 493210 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :IMO < 1322518351 140828 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hm x68/x87 really doesn't have that many general purpose instructions. It just have a lot of variants of each one. It *does* have a lot of floating point and SIMD instructions though. < 1322518359 4298 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :x68 < 1322518359 829460 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :x68? < 1322518365 50827 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :err x86 < 1322518365 901156 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :typo < 1322518368 560599 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :the only algol 68 coprocessor < 1322518371 307053 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :obviously :P < 1322518376 235684 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: well, m68k is an arch < 1322518411 980315 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :it is still CISC obviously due to that nearly everything can do memory accesses. < 1322518421 166967 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: I don't suppose there's a LOCK XADD AND ALSO JUMP HERE IF IT EXCEEDS A CERTAIN VALUE :) < 1322518429 5101 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :or, to phrase that another way: < 1322518432 917773 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :how do I do atomic allocations of >4k? < 1322518454 749578 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: ouch, there's a nasty race condition even with atomic <4k allocations < 1322518469 584860 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :what if you have exactly 1 byte left in the pool, and two processes do 4k allocations at once? < 1322518474 407352 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :one of them gets an address /beyond/ the barrier page < 1322518478 712610 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, I doubt there is. Possibly you could optimise if you know the allocation is larger/smaller than the size and do a slow path when you don't know. < 1322518481 594865 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that might even be in some other task's valid memory < 1322518487 28484 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and it can access it freely < 1322518487 370597 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hm < 1322518495 310014 :Slereah!~butt@ANantes-259-1-167-129.w90-49.abo.wanadoo.fr QUIT :Ping timeout: 244 seconds < 1322518514 188386 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :if you restrict pools to non-concurrent access you can solve that easily, by checking the pool pointer for overflow on context switch < 1322518522 186086 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :oh, hmm < 1322518524 432957 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that's actually a general flaw < 1322518531 758784 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :if you allocate twice without actually accessing the RAM < 1322518533 994637 :Slereah_!~butt@ANantes-259-1-227-218.w83-195.abo.wanadoo.fr JOIN :#esoteric < 1322518540 561582 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I suppose the solution is to just ban allocating before you access a previous allocation < 1322518546 522642 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :not a big deal < 1322518568 660620 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ACTION works out how to mark a question where one of the requirements is "efficiently" < 1322518570 624222 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, you could allocate numtask*largest barrier memory? < 1322518585 758414 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :luckily, this is easier than the mergesort issue, because I can populate the caches with invalid data and then see if the algo blindly trusts it < 1322518587 405958 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: huh? < 1322518592 118809 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if it doesn't, it's not efficient < 1322518601 609211 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :ais523, if applicable look for complexity? < 1322518617 873724 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Vorpal: I thought of that first, and it is possibly applicable < 1322518645 808891 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the average-case performance is probably the same, but I could make the worst-case performance for the most obvious unwanted method blow up < 1322518650 878623 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but that's probably harder to write < 1322518665 9152 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(the same in terms of complexity, that is, not in overall performance) < 1322518669 375775 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, well if you can allocate at most n bytes if you have n*tasks_in_pool barrier memory it would be safe < 1322518679 460109 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :assuming you access all before next allocation < 1322518688 946406 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: no, you would have to allocate n*tasks < 1322518700 583979 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :so = millions < 1322518704 711055 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :because you can have < 1322518706 242698 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hm okay < 1322518714 601963 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :{2M pool page}, {4k barrier page}, {2M pool page of another task entirely} < 1322518720 340820 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :if you're 1 byte from the end of the first pool page < 1322518723 115826 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :increment 4k, increment 4k < 1322518726 556016 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :you're in someone else's memory < 1322518731 622396 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and it won't page fault when you access it < 1322518758 573010 :kmc!~keegan@c-98-216-51-47.hsd1.ma.comcast.net JOIN :#esoteric < 1322518758 791605 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, is that 2M huge page? < 1322518764 862369 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :yes < 1322518773 726904 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, x86 can do unaligned ones? < 1322518776 144394 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :I'm surprised < 1322518780 120384 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :well, probably not < 1322518782 165819 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :it was a simplified example < 1322518789 366929 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :I would expect them to have to be aligned on 2 MB boundaries < 1322518804 303521 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :even if I used a 2M barrier page < 1322518807 237731 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :which means your scheme would kind of not work very well, though beautiful < 1322518812 211306 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :you just need to increase the number of allocations < 1322518817 600740 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :well yeah < 1322518818 566158 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :to show that it's still a problem < 1322518821 33266 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: well, it'll work fine < 1322518825 451627 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :2 megs is about as big as 4 megs < 1322518832 751442 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :heh < 1322518834 387245 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I only need to wait a few years for everybody's memory to double < 1322518884 607932 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, I don't think I will be getting 32 GB in a hurry :P < 1322518934 195425 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :actually, one problem with this allocator style is that you have to calloc pools < 1322518947 71513 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :or, hmm, perhaps not < 1322518983 873662 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: you definitely don't want processes reading privileged data from leftover pools, so you have to statically ensure it's not used before alloc, or else zero it on the alloc < 1322518996 661029 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, hm why would the code be allowed to read uninitialised memory? After all isn't the system generating the machine code from @lang? < 1322519005 333109 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :which could ensure that didn't happen < 1322519013 390357 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: @lang programs aren't allowed to just arbitrarily read from their pool, ofc < 1322519018 176654 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: right, indeed < 1322519022 597985 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, then it shouldn't be a problem < 1322519026 190571 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :they're only allowed to interpret it in ways they're allowed to < 1322519026 369546 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: a Haskell compiler won't spit out code looking like that, so an @lang compiler won't either < 1322519031 119769 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: the problem was: < 1322519039 966718 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :the GC has to look at the bytes in the heap to determine object structure < 1322519046 503683 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hm < 1322519047 971010 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :right < 1322519051 430598 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :how does it know it's looking at a real, fully-allocated object, instead of just the garbage at the end? < 1322519054 156241 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :but I think it's easy < 1322519054 550450 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott_: bleh, no typed GC? < 1322519061 745869 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ais523: of course it's "typed"... < 1322519063 132496 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :but I think it's easy < 1322519065 930630 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :because the GC is only called on overflow < 1322519070 508751 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, typed allocations. < 1322519071 500050 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :so you /know/ the last object wasn't fully allocated < 1322519082 667528 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: yes, of course; how do you think that solves the problem? < 1322519135 137389 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :well the GC could see how far we allocated. And we might write a bit in a header of the allocation to indicate that we have allocated it but not yet used it < 1322519145 608626 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hm, probably rather awkward way of doing it < 1322519177 508156 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: doesn't help < 1322519184 95162 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hm true < 1322519187 10660 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: what happens when another CPU overflows the pool after incrementing pointer < 1322519190 808913 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :but before setting the bit < 1322519199 233149 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :as in < 1322519202 267596 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :before _this_ cpu sets the bit < 1322519207 602656 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :oh good point < 1322519207 781509 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :these are all problems caused by concurrent pool access < 1322519218 800640 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :why don't CPUs have transactional memory ffs < 1322519231 496082 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, iirc powerpc does < 1322519233 611004 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :! < 1322519244 253528 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that would surprise me < 1322519248 659741 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :oh wait, it was load-store barriers < 1322519250 779266 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :nevermind < 1322519261 303810 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :still, they are considerably more powerful iirc < 1322519306 540662 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :i'm tempted to just forbid concurrent access again and think of another way to do things < 1322519330 708663 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hm < 1322519338 565380 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, concurrent access has another problem anyway < 1322519346 944628 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :maybe I could use small pools by default without the fancy barrier stuff and expand that on first gc < 1322519355 450052 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :and that is that of cache line ownership moving between CPUs < 1322519375 477514 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: well. that will happen anyway < 1322519376 295754 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :cache lines are iirc about 64 bytes or such < 1322519391 404158 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: since another task on the same pool will run on another CPU while other tasks on the same pool are stopped < 1322519406 749773 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I suppose I could tie pools to CPUs but that sounds like a pain on e.g. 4-core systems < 1322519411 486846 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :where you just don't have many CPUs < 1322519422 116544 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :(where by "CPU" i mean "core") < 1322519425 219059 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, yes but you don't want that to happen for no good reason. Sure it will happen when rescheduling. And when sharing a lock for something (and you will need locks for some stuff I bet, hardware access at the very least) < 1322519439 27823 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :(like a lock for "accessing ethernet card memory mapped registers") < 1322519442 614176 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : Vorpal: what happens when another CPU overflows the pool after incrementing pointer < 1322519442 793556 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : but before setting the bit < 1322519442 793767 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : as in < 1322519442 793876 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric : before _this_ cpu sets the bit < 1322519444 950902 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :i thought of a solution to this < 1322519450 64878 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :oh? < 1322519460 203547 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :i could make the GC wait until every process on the pool allocates again < 1322519464 70580 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and thus causes another pagefault < 1322519466 706494 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :heh < 1322519472 464071 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :which would ensure that no partial allocations have been done < 1322519532 687174 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, actually no you can't. Segfault is a *nix term. The x86 term is general protection fault or page fault depending on what exactly you are doing < 1322519536 923309 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :;P < 1322519546 889803 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :i never said segfault? < 1322519554 595081 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :huh I misread < 1322519556 241569 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric ::( < 1322519559 884209 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :twice < 1322519566 122771 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :I did a double take on seeing "segfault" < 1322519568 734916 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :yet it wasn't there < 1322519571 35452 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :oh well < 1322519611 227034 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, anyway wouldn't that go into the next page anyway? < 1322519617 787156 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :hmm, even if i don't use this fancy barrier page strategy < 1322519631 555640 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I don't see any way to avoid allocating one page per task if I'm going the "really lightweight, no concurrent access model" < 1322519635 414049 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, do you plan to have much of a stack btw? < 1322519642 286837 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :or hmm yes i could < 1322519650 308780 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :because allocation on a task local stack would be /way/ cheaper. < 1322519691 181048 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :of course that means at least two pages anyway... with the barrier page < 1322519798 456259 :ais523!~ais523@unaffiliated/ais523 QUIT :Remote host closed the connection < 1322519822 917157 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: no it wouldn't < 1322519825 864257 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :stack allocation is pointer-bumping < 1322519907 739533 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: hmm, xadd (/without/ lock) will probably be slower than mov + add, right? thinking about a non-concurrent access scenario < 1322520104 277165 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: stacks are basically thought to be faster because people use simpler allocators with them < 1322520112 924505 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :namely, pointer-bumping < 1322520186 999595 :Jafet!~Jafet@unaffiliated/jafet QUIT :Quit: Leaving. < 1322520210 519785 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :back < 1322520222 812670 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric : stack allocation is pointer-bumping <-- yes < 1322520230 498671 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, but you still need to detect stack overflow < 1322520246 371114 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :yes. so it is more expensive than my allocator < 1322520270 859274 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :so i don't see how a stack would help < 1322520272 637893 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, what is your GC root btw? < 1322520288 338771 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: the continuation < 1322520291 281384 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :ah < 1322520350 622009 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :stack allocators have one advantage: no need to GC. Because returning just bumps the pointer the other way < 1322520361 595508 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :elliott_: xadd without lock is not much more than mov+add. < 1322520368 666147 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: right. but it is more :) < 1322520382 982400 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: they also require a traditional notion of stack < 1322520389 64408 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :well yes < 1322520449 909215 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :I have to say that the rep prefix of x86 is quite curious < 1322520514 194305 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :useful for boot sector golfing < 1322520519 781335 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :sure < 1322520523 366881 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :but not much else < 1322520545 261195 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :it is truly a CISC left over < 1322520569 881076 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :so is x86 < 1322520657 75153 :derrik!~xix@gprs-inet-65-40.elisa.ee QUIT :Quit: nights < 1322520688 662071 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, touche < 1322520819 637042 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :"Any VEX-encoded instruction with a LOCK prefix preceding VEX will #UD." <-- it doesn't say anything else under "VEX and the LOCK prefix". Like it would be useful to say if it works in the other order. < 1322520823 105157 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :fuck you intel < 1322520840 28825 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hm it doesn't < 1322520848 905787 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :because VEX isn't a prefix anyway < 1322520854 192112 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :so why no LOCK on VEX? < 1322521431 650915 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :hmm, looks like my tasks have to take up at least 144 bytes < 1322521441 113455 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, impressive < 1322521450 754321 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :_at least_ :P < 1322521457 273641 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that's just the number of registers on x86-64, including IP < 1322521468 720370 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ofc if i don't use all registers for computation then they can take less... < 1322521481 323031 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :or if certain registers are always used as like scratch space before being put into memory < 1322521486 590607 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :then I can avoid storing them < 1322521492 56385 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, "A newly spawned Erlang process uses 309 words of memory in the non-SMP emulator without HiPE support. (SMP support and HiPE support will both add to this size.)" < 1322521499 275679 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :so far you beat erlang < 1322521510 917073 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :hmm, why do they need that much? < 1322521514 703947 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :2.4 kilobytes is quite a lot < 1322521517 173257 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :don't know < 1322521535 442139 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, it may include the default stack < 1322521536 426050 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :perhaps < 1322521541 743978 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :gah, i just thought of a response to something ais said, but he's left < 1322521554 445028 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :use @tell? < 1322521569 686765 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :that doesn't have immediate payoff :) but fine! < 1322521578 49511 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, "The size includes 233 words for the heap area (which includes the stack). The garbage collector will increase the heap as needed." < 1322521582 128477 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, that is why it is so large < 1322521593 516448 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :@tell ais523 there's no real problem with a million-task scheduler with current technology; the issue is more adapting for various patterns of blocked/nonblocked < 1322521593 765118 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1322521628 983005 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :@tell ais523 in @, there's no such thing as a "blocked task"; a blocked task's data (not necessarily including its pool data, just the pointer) is moved into whatever's being /blocked on/ < 1322521629 199939 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1322521636 924333 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :@tell ais523 and then removed from the scheduler's list of tasks < 1322521637 162041 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1322521638 295422 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, anyway so the real overhead is 76 words < 1322521655 54714 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :@tell ais523 that is, sockets know which threads are blocked on them, and resume those threads when they receive data or whatever < 1322521655 249528 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1322521657 525779 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, which is far smaller < 1322521662 189075 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: right, 608 bytes < 1322521683 693141 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, 304 on 32-bit < 1322521707 959557 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :irrelevant < 1322521712 525083 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :oh? < 1322521716 926645 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :32-bit systems still exist < 1322521721 267201 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :not for long < 1322521731 232109 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :not in the pc market anyway < 1322521734 830609 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :well yeah < 1322521748 174271 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, but globally most processors are likely 16-bit or 8-bit still < 1322521754 434599 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :yeah, but they don't run erlang < 1322521757 898764 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :true < 1322521765 468306 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :also, i think 32-bit is the most common nowadays actually, because of ARM in the embedded space < 1322521766 959744 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :and things like that < 1322521774 713824 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, still erlang can run on vxworks. Which opens up a whole embedded market < 1322521777 55734 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :full CPUs in embedded stuff is becomming more common < 1322521789 423329 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :unfortunately I don't think @ will work very well on 32-bit < 1322521793 243582 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :maybe in the embedded space < 1322521798 172700 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :heh < 1322521804 496215 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :not kidding < 1322521814 150032 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :what kind of disks do vxworks devices have :P < 1322521816 322159 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, 64-bit in embedded is rare. it is mostly consoles and PCs that are 64-bit < 1322521863 184073 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, hm... the ones I used at university had either flash with some weird connector or plain CF cards. < 1322521868 412617 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :i mean, size < 1322521883 409009 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, well I have a CF card somewhere. Let me find a ruler ;) < 1322521892 265541 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, anyway it was a dev system. Kind of high end. < 1322521903 605208 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :like x86, pentium, 500 MHz < 1322521910 459518 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :or something absurdly overpowered like that < 1322521917 159118 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :1 or 2 GB flash probably < 1322521928 918963 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :basically, a 32-bit @ system can address 4 gigabytes, total, including disk < 1322521930 427023 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, but it varies depending on applications :P < 1322521936 549765 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, ouch < 1322521945 445882 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :so it works fine in like most embedded scenarios i guess < 1322521948 796534 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :but not on a desktop < 1322521962 752838 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :i can think of workarounds, but they're all sloooooooow < 1322521972 840842 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :anyway there is large file system support on other systems. Obviously not on @ < 1322521987 522420 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, wait, x86-64 systems actually have 48 bits virtual address space right? < 1322521990 466526 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: well it doesn't really work because of the uniform address space < 1322521998 303286 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Vorpal: Currently. < 1322522002 561359 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, indeed < 1322522003 534147 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :basically you'd need to store all pointers as large filesystem addresses < 1322522010 433692 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :dereferencing those would be slow as shit < 1322522010 760509 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :That's a limit of the MMU, not the ISA. < 1322522024 404130 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :that means 35.18 TB < 1322522052 551115 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: and? :P < 1322522064 503918 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, that is kind of close to modern storage size. < 1322522100 72673 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: when single machines start addressing 35 terabytes, AMD and Intel will start releasing CPUs with MMUs that can address 64 bits. < 1322522104 774739 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :or 54 bits or whatever :P < 1322522106 290478 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :elliott_: Better/worse: you could use segmentation. < 1322522121 328265 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, I have like slightly more than 1/17th of that in disks in my computer < 1322522129 34075 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: I don't see how that would work; pointers would have to store the segment they're in < 1322522135 771101 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: moore's law doesn't work _that_ fast. < 1322522136 594374 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, I meant for disks, Not for ram < 1322522148 139266 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, since you do uniform address space < 1322522153 274166 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :the disk size matters for you < 1322522157 677861 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Did I contradict that? < 1322522162 248696 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :nope < 1322522181 748198 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, I was just finishing my line of thought before reading further. I use blocking IO < 1322522186 86422 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: I'm pretty sure that the MMU bit width will increase when we're living in the space age and people have 35 terabytes of disk. < 1322522186 889909 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :in my brain < 1322522196 225643 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :elliott_: Segments map to physical space. Recent x86 has 36-bit address space. :P < 1322522198 20036 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Even if it doesn't, 35 terabytes is a lot of storage. < 1322522214 325727 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I doubt you, as a person, will need >35 terabytes of personal storage before @ takes over the world. < 1322522225 930097 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: that's still tiny :P < 1322522244 80634 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :elliott_: Also, alternately you *could* make it so that far pointer dereferencing is the expensive operation. < 1322522251 38706 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Which nets you a potentially 46-bit address space. < 1322522260 820608 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :This would be an *insane* hack, though. < 1322522287 143560 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, 35 TB is ~1501 blueray disc < 1322522305 714802 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: I will consider your concerns if you personally buy 1501 blu-ray discs. < 1322522319 598889 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :nah I'll torrent them < 1322522329 282321 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, I wonder how much traffic I download in a year < 1322522331 92371 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Vorpal: If you use sane encodings, chop a order of magnitude off that. < 1322522335 465254 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :(x264 is awesome shit) < 1322522336 787585 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :err how much traffic downstream I mean < 1322522349 225265 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, who said movies < 1322522358 324719 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ACTION attempts to find a blank blu-ray on Amazon. < 1322522360 330590 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, games on blueray happens nowdays < 1322522371 315765 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, I downloaded a 25 GB game at one point < 1322522373 275872 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Vorpal: Technically, yes. They're generally empty. < 1322522384 541306 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, nope. Rage was 25 GB download < 1322522390 652105 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Due to targetting DVD platforms as well, and nobody likes multiple disks. < 1322522392 949208 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :or 24 or so < 1322522409 141913 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :Jesus, what did they include, the genomes of all sequenced species? < 1322522418 51993 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, really bad texture quality < 1322522422 770509 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, the install size was 27 GB iirc < 1322522449 106235 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, iirc they said the raw data of the game they had on their development servers was over 1 TB < 1322522475 156110 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, and Rage is a really bad game. Boring, uninspired story, mediocre gameplay < 1322522482 104601 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :and quite uneven texture quality < 1322522492 965602 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :everything from state of the art to something utterly jagged. < 1322522503 269727 :kmc!~keegan@c-98-216-51-47.hsd1.ma.comcast.net QUIT :Quit: Leaving < 1322522539 479332 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :"Higher res is better. Derp, scale!"? < 1322522559 276931 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, it feels like a tech demo for the engine to tell the truth :P < 1322522606 836943 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, the skydome was truly impressive though < 1322522698 998434 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, anyway there are many games that come on dual layer DVDs these days < 1322522719 324154 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :iirc witcher 2 was about 7 GB large download. Somewhat more when installed on disk < 1322522735 358323 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :and that game has high texture quality and good gameplay and everything :P < 1322522762 994216 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hm system requirements is 16 GB free disk < 1322522837 481054 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pikhq_, speaking of which... that is a rare game these days. Witcher 2 is completely DRM free. < 1322522859 662418 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :(except when bought from steam iirc) < 1322522996 415221 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Steam has DRM? < 1322523007 100159 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, where have you been? < 1322523012 311801 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Not using Steam. < 1322523018 85907 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :right < 1322523039 679409 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :That sucks. < 1322523042 971792 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, steam has DRM that is fairly easy to work around by replacing a few dll files < 1322523057 528837 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Easier to pirate, no? < 1322523060 790369 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :replacement ones are kind of well developed already < 1322523065 304253 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, pretty much. < 1322523106 752218 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :not all steam games use the drm of course < 1322523130 42031 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :generally you know when a game refuses to run without steam running, then it uses the drm < 1322523133 802572 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, like skyrim does < 1322523142 524565 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :(note: easy to work around :P) < 1322523145 187155 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Gross. < 1322523171 722195 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, yes we are talking about steam indeed :P < 1322523187 886342 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Why do people like Steam again? < 1322523229 192366 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, because it was first and it is convenient. And there are far worse DRM examples. < 1322523253 443690 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: But I've actually seen people rejoice when games they already own became available on Steam. < 1322523258 227579 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, and because it has all the games (pretty much). Which it does because it is popular with the users. < 1322523265 577121 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, really? < 1322523267 32732 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :why? < 1322523275 787936 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, is it for the steam achievements? < 1322523284 223817 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :maybe... < 1322523287 337447 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Vorpal: The only reasons I've heard are because of the "social" features of it and the achievements and crap. Which I find completely incomprehensible. < 1322523308 927011 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I mean, I'd prefer to just ask people if they want a game rather than cyberstalking them for the purpose. < 1322523311 959031 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, oh yeah you can use it for easy invites to friends for multiplayer games iirc. < 1322523314 899806 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :which is kind of nice < 1322523316 374555 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :And achievements are a scourge. < 1322523331 340905 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Achievements are what happen when you can't think of a decent in-game way to reward players for doing things. < 1322523337 857328 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :So you decide to annoy them instead < 1322523340 430145 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :s/$/./ < 1322523348 487918 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, it is easier to click a friend's name in a list than to ask them to provide a port number and so on < 1322523383 769707 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :ACTION is used to playing multiplayer games with decent lobby systems. < 1322523393 429845 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Admittedly skipping the lobby entirely would be preferable. < 1322523395 248240 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric : Achievements are what happen when you can't think of a decent in-game way to reward players for doing things. <-- I like stuff that are kind of like achievements but are for the current game only and have an in game effect < 1322523410 482942 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :So, not achievements. < 1322523444 987059 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, like, in witcher 2, if you stay within a protective spell bubble during a part of the introduction of chapter 1 you get a +5 or something bonus to something < 1322523449 334982 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :stuff like that < 1322523477 279633 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :or following a certain path doing a certain mission within certain parameters grants you 100 extra carrying capacity < 1322523521 64497 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, anyway you might want to reward a player who went through the entire game without killing any enemy, using sneaking and such instead. < 1322523526 170701 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :how would you do that? < 1322523533 793540 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :achievement is the usual answer < 1322523537 554597 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Well, badges at the end are OK < 1322523544 343238 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hm < 1322523546 949958 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Achievements that happen mid-game not so much < 1322523550 456276 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :I mean < 1322523550 635194 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :true < 1322523553 398297 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :If it's just for things like easter eggs sure < 1322523557 329244 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :But if it's like "100 kills" fuck that < 1322523604 866327 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, what about stuff like "navigated down a steep hill without taking fall damage". Yogscast suggested that should be an achievement in skyrim (it isn't, it has the boring type of achievements, mostly "did questline x") < 1322523625 101335 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :of course it would be hard to measure that < 1322523636 115289 :pumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1322523657 834320 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, but yes, I seen pretty bad achievements. And I seen less bad ones. < 1322523663 655299 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :The achievement comes from managing that in the first place :P < 1322523668 688871 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :heh < 1322523676 636905 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :If it's obvious that you've done something hard, you don't need to yell at players that they've done it < 1322523682 770775 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, but you want something you can brag about on your steam profile! < 1322523685 755526 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :;P < 1322523745 643675 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: Do you know much about hardware virtualisation < 1322523782 818421 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, anyway I remember reading about some game where the devs put in achievements for stuff they thought were so improbable that they were for all practical purposes impossible. Just to see how long it took for players to figure out a way to do them. < 1322523789 559671 :Jafet!~Jafet@unaffiliated/jafet JOIN :#esoteric < 1322523799 880481 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :all were done within a year iirc < 1322523803 535052 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :forgot which game it was < 1322523808 424158 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :heh < 1322523817 102067 :copumpkin!~pumpkin@unaffiliated/pumpkingod QUIT :Ping timeout: 248 seconds < 1322523879 711675 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, anyway gamersgate is a better online store than steam really. No silly client crap. < 1322523969 344941 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, another one I heard was good but which I never used myself is desura. Mostly focused on indie stuff iirc < 1322523981 241450 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, so there are alternatives to steam that are less shitty < 1322523985 984204 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :just not as popular < 1322523994 31030 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Desura has a client thing. < 1322524010 164115 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, yes, but a less obnoxious one < 1322524012 930017 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :by far < 1322524026 731739 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :What ever happened to just delivering binaries. < 1322524055 128315 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, that is gamersgate. They let you download a downloader program basically. And then that downloads the binary. < 1322524057 577004 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :so almost :P < 1322524071 828782 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :I guess a downloader makes sense on windows because I doubt IE can resume a broken download < 1322524077 270572 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Nobody uses IE < 1322524082 490524 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :But Firefox sucks at resuming downloads < 1322524085 100951 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Probably Chrome too < 1322524085 597688 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :that too < 1322524094 186939 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott_, so that is why they use a downloader < 1322524098 524009 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :I use wget for such stuff < 1322524103 446796 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :wget -c works wonders < 1322524194 935280 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :ACTION → sleep < 1322524195 890565 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 QUIT :Quit: Leaving < 1322524204 868479 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :heh gamersgate is a Swedish company? Didn't know that < 1322524225 333899 :nooga!~nooga@maverick.aircity.pl QUIT :Ping timeout: 244 seconds < 1322524299 884663 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :Why does scan.co.uk have to be so unusable. < 1322524408 60118 :pikhq_!~pikhq@71-219-200-237.clsp.qwest.net PRIVMSG #esoteric :elliott_: Not much. < 1322524412 978316 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: Damn < 1322524436 774056 :elliott_!elliott@95.149.243.54 PRIVMSG #esoteric :pikhq_: So you wouldn't know how expensive something in ring 0 calling on the hypervisor would be?