< 1210032229 0 :Corun!unknown@unknown.invalid QUIT :"Leaving" < 1210034330 0 :Corun!n=Corun@halls-129-31-72-183.hor.ic.ac.uk JOIN :#esoteric < 1210034930 0 :Corun!unknown@unknown.invalid QUIT :"Leaving" < 1210035839 0 :ihope!n=ihope@c-71-205-100-59.hsd1.mi.comcast.net JOIN :#esoteric < 1210036048 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Last night, I wrote some notes for an AI thingy with a pencil on yellow wide-ruled paper. Today at school, I wrote some notes for that AI thingy with a pen on white college-ruled paper. < 1210036076 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :The notes on white paper have much more crossing out. I wonder if that's related to the color of the paper. < 1210036246 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I'll scan thhem in case anyone wants to use them to best the human mind. < 1210036588 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Darn. One of these is illegible and the other's cut off. < 1210036642 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Bye for today! < 1210036649 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Bye. < 1210036660 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :You're not going to stick around to see my revolutionary ideas? :-P < 1210036665 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Nope. < 1210036670 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :See you. < 1210036686 0 :ehird!unknown@unknown.invalid QUIT :Remote closed the connection < 1210036967 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yellow page, huge edition: http://i29.tinypic.com/2wbvrqr.jpg < 1210037031 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :White page, non-huge edition: http://i32.tinypic.com/2vt7jid.jpg < 1210037552 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And the yellow one mentions Tailsteak! < 1210037628 0 :Corun!n=Corun@halls-129-31-72-183.hor.ic.ac.uk JOIN :#esoteric < 1210042058 0 :Slereah_!n=gtuilt@ANantes-252-1-19-175.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1210042058 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1210047383 0 :Corun!unknown@unknown.invalid QUIT :"Ok, I'm ZZzzzing :-P" < 1210047488 0 :calamari!n=calamari@ip24-255-58-177.tc.ph.cox.net JOIN :#esoteric < 1210050667 0 :Slereah!n=gtuilt@ANantes-252-1-19-175.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1210050667 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1210052826 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ihope, tailsteak? Wherewhere? < 1210052830 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION opens Firefox < 1210052881 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ihope, OCR much? < 1210053075 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION takes back any accidental implied insultiness < 1210053345 0 :GreaseMonkey!n=saru@219-88-193-16.jetstream.xtra.co.nz JOIN :#esoteric < 1210053508 0 :Slereah_!n=gtuilt@ANantes-252-1-38-89.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1210053515 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1210054604 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1210060615 0 :Iskr!n=i@host47-50-dynamic.17-87-r.retail.telecomitalia.it JOIN :#esoteric < 1210060799 0 :clog!unknown@unknown.invalid QUIT :ended < 1210060800 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1210060962 0 :Iskr!unknown@unknown.invalid QUIT :"Leaving" < 1210060999 0 :Iskr!n=i@host47-50-dynamic.17-87-r.retail.telecomitalia.it JOIN :#esoteric < 1210062313 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1210063142 0 :olsner!n=salparot@h-60-96.A163.cust.bahnhof.se JOIN :#esoteric < 1210064621 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I can tell that's ROT13 from the letters, and from having seen a lot of ROT13 in my time. :-P <<< i can *read* it, pwnd ya bad, didn't i? < 1210064664 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1210064691 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i actually cannot, now that i started reading. perhaps i memorized a crooked rot13 chart :) < 1210064715 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :EBG = VYT in mine. < 1210064732 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :right, perhaps it wasn't rot-13 < 1210064827 0 :fizzie2!unknown@unknown.invalid PRIVMSG #esoteric :That sounds more like Atbash. < 1210064887 0 :fizzie2!unknown@unknown.invalid NICK :fizzie < 1210064897 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(hmm... now that i think about it i've memorized a complement alphabet :D) < 1210064919 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, that's what Atbash is: http://en.wikipedia.org/wiki/Atbash < 1210065016 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cool, it has a name. < 1210065024 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1210065041 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i didn't notice your earlier comment there, not that it changes anything < 1210065053 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(but had to explain the "oh") < 1210065083 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmph, now i need to use another 5 minutes for alphabet memorization :< < 1210065205 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think the first question of the first homework round of our introductionary-cryptography-thing-course was about Atbash. Completely pointless, of course. (And the second question had ROT-13. Later on the homework questions made a bit more sense.) < 1210065791 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :rot-13 your atbash for twice the strength < 1210065900 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :(it's nice to know that they commute!) < 1210066030 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :oh, rot13.atbash == atbash.rot13? < 1210066238 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :what's atbash? < 1210066369 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :See the Wikipedia link just a couple lines upwards. < 1210066383 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Also rot_N.atbash = atbash.rot_{26-N}, for obvious reasons. < 1210066596 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Too bad tr doesn't like "tr a-z z-a"; otherwise it'd be a nice Atbash utility. It's already good for rot-13ing with "tr a-z n-za-m". < 1210066607 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :tr: range-endpoints of `z-a' are in reverse collating sequence order < 1210066775 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :ghci -e 'runCommand $ "tr a-z " ++ reverse [ < 1210066780 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :'a'..'z']' < 1210066798 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :or something like that :P < 1210067652 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, perl -pe '@a=("a".."z"); @b=reverse(@a); eval "tr{@a}{@b}";' also works, but can't say it's pretty. < 1210069416 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"Unisex." < 1210073652 0 :ais523!n=ais523@147.188.254.116 JOIN :#esoteric < 1210074395 0 :ais523!unknown@unknown.invalid QUIT :"(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"" < 1210076202 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1210076236 0 :Tritonio!unknown@unknown.invalid QUIT :Remote closed the connection < 1210077662 0 :sebbu2!n=sebbu@ADijon-152-1-67-219.w83-203.abo.wanadoo.fr JOIN :#esoteric < 1210078890 0 :sebbu!unknown@unknown.invalid QUIT :Connection timed out < 1210085953 0 :ais523!n=ais523@pw01-fap01.bham.ac.uk JOIN :#esoteric < 1210086891 0 :ehird!n=ehird@91.105.74.139 JOIN :#esoteric < 1210087350 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1210088105 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1210088115 0 :oklopol!n=nnscript@oklopol.yok.utu.fi JOIN :#esoteric < 1210088150 0 :RedDak!n=dak@host65-82-dynamic.18-79-r.retail.telecomitalia.it JOIN :#esoteric < 1210088557 0 :RedDak!unknown@unknown.invalid QUIT :Remote closed the connection < 1210089116 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :a couple of esoteric programs have turned up here: http://thedailywtf.com/Comments/Code-examples-and-interviews.aspx?pg=3 < 1210089137 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they were discussing stupid job interview questions that asked people to write programs under arbitrary restrictions < 1210089146 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Heh. < 1210089154 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Let's see that! < 1210089159 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :1 < 1210089159 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1210089160 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Fizz < 1210089163 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I submitted an INTERCAL program that fit most of the spec of one problem, while someone else wrote a Befunge program for the other (easier) problem < 1210089169 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :4 < 1210089171 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Buzz < 1210089173 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Fizz < 1210089174 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tee hee < 1210089174 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :7 < 1210089180 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I was doing the substring program < 1210089186 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :irp fizzbuzz!! < 1210089192 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :mine almost fits the spec, but it's case-sensitive and outputs in Roman numerals < 1210089199 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hahahah < 1210089209 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, someone came into #irp the other day and ran a few programs < 1210089217 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the problem with the daily wtf will that everyone will say "that language is the real wtf!! LOL ENTERPRISEY!!" < 1210089231 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's a site filled with idiots who like to laugh at the people that they think are idiots :p < 1210089238 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :when they tried the beer thing, I linked them to the lyrics on 99-bottles-of-beer.net, and then they went away < 1210089245 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: heh < 1210089248 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: you're not standard! < 1210089250 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: not all of them are idiots, just some of them < 1210089252 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the correct response is 'go to hell' < 1210089256 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I know < 1210089262 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I was implementing an extension < 1210089263 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :irp++ < 1210089292 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I can't wait for the next OMGWTF, by the way < 1210089306 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm planning to submit code automatically translated from the INTERCAL < 1210089314 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's two WTFs pretty much guaranteed < 1210089321 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :What is this fizbuz business? < 1210089331 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Slereah_: a silly interview question, also a children's game < 1210089349 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :see the page I linked for Fizzbuzz in Befunge, and an implementation of substr in INTERCAL that finds all matches < 1210089368 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :No one can read esoteric code, ais523. < 1210089370 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the correct FizzBuzz output, as I remember it (although the spec they give isn't clear), is: < 1210089378 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :It's a thing you write, not that you read! < 1210089395 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz and so on < 1210089419 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in the children's game, you continue until someone screws up the sequence, then they're out < 1210089428 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the sequence showed up on anagolf a while ago, too < 1210089428 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :So fiz is for dividible by 5, butt for 3? < 1210089433 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1210089435 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :a nice simple rule < 1210089435 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and fizbutt for both < 1210089444 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :That doesn't seem too hard for a non-esoteric language. < 1210089445 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :err.... buzz, not butt < 1210089458 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Slereah_: it isn't, it's really easy, but apparently lots of programmers are incapable of it anyway < 1210089463 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: fizz too < 1210089465 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but fizbutt is amusing < 1210089468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and Slereah_ said it < 1210089477 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :What about my butt? < 1210089489 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hahahah < 1210089489 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it seems to be just fiz and buz in the US, though < 1210089500 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and fizzie: what an appropriate nick for this conversation! < 1210089506 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :... < 1210089506 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i cant' resisit saying something about dumbing down :-) < 1210089508 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*can't < 1210089510 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*resist < 1210089511 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(irony) < 1210089512 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :I did write butt, didn't I. < 1210089531 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :read the INTERCAL, anyway, it isn't too hard... < 1210089541 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :I can't read much INTERCAL < 1210089543 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, I didn't try to obfuscate it, but the algorithm is interesting < 1210089568 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's my standard technique of using stacks to store arrays, and backtracking to access them non-destructively < 1210089586 0 :Parma-Quendion!n=Quendion@145.175.adsl.brightview.com JOIN :#esoteric < 1210089607 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :do you think anyone will take me up on my offer to explain my code? < 1210089614 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :I once had the idea of doing something like that. < 1210089629 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Giving a programming assignment back in C and something esoteric < 1210089634 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :but I was too lazy to do it < 1210089646 0 :Quendus!unknown@unknown.invalid QUIT :Nick collision from services. < 1210089654 0 :Parma-Quendion!unknown@unknown.invalid NICK :Quendus < 1210089685 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, I'm the sort of person who, when set an assignment that asks for a Windows binary among other things, hands in both the Windows binary and a Linux x86 binary that does the same thing, because the Linux version was the original < 1210089694 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and likewise hands in the .odt with the requested .pdf < 1210089714 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Hm. Maybe I can do a fizzbutt on the Love Machine 9000. < 1210089729 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I have to go for a bit, but I'll be back later < 1210089731 0 :ais523!unknown@unknown.invalid QUIT :"brb" < 1210090879 0 :ais523!n=ais523@pw01-fap01.bham.ac.uk JOIN :#esoteric < 1210090915 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wb ais523 < 1210090917 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :any relevant developments while I was gone? < 1210090945 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :[17:01] * ais523 (n=ais523@pw01-fap01.bham.ac.uk) Quit ("brb") < 1210090946 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :[17:21] * ais523 (n=ais523@pw01-fap01.bham.ac.uk) has joined #esoteric < 1210090951 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Can you guess? < 1210090962 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :most likely not < 1210090977 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I never know; after all, there was a conversation going, and that increases the chance of something happenign < 1210090983 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/gn$/ng/ < 1210091019 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slereah_: that was a fulll log < 1210091021 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*full < 1210091022 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err < 1210091023 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: < 1210091028 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1210091503 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's interesting, really, that so much more effort goes into writing esoprograms than reading them < 1210091521 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :generally speaking esoprograms are written and run, but not actually read except by their author < 1210091538 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't think that's a good thing; there are all sorts of programming techniques that can be learnt from others' code < 1210091551 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :especially in esolangs < 1210091570 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the advantage of common things being difficult is that uncommon things become just as easy as the common things in some cases < 1210091571 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: reading them is very hard < 1210091577 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Well, it's usually better to ask them directly < 1210091580 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, it depends on the language < 1210091601 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :It's not like it's hard to find them. < 1210091608 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Unlambda, for instance, is easy to write for an esolang (if you compile from lambda-calculus) but hard to write well, and hard to read < 1210091608 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :There's like 75% of them all right here! < 1210091663 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, there's time-zone issues < 1210091671 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and it's always nice to figure something out for yourself < 1210091677 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :But then again, with Unlambda, you can use any function and copypaste it into your program < 1210091682 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although I suppose writing programs is also part of the learning process < 1210091707 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Just need some (^f.f(x)) program < 1210091711 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :for instance, the concept of storing code in the stack turned out to be central to Underload; both Keymaker and I wrote programs that did that in different ways < 1210091736 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: do you want my mkproposal.pl? < 1210091739 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it should work < 1210091745 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't diff, though. For editing, use the web interface. < 1210091747 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep, you may as well post the link again < 1210091754 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But if you just want to splurge a directory in, and maybe edit a few files < 1210091757 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then use my script and amend < 1210091759 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I can find it in logs if necessary, though < 1210091769 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I'm lazy < 1210091769 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I'm considering letting you define a sub - 'end' < 1210091773 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which will run after it creates everything < 1210091778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :kind of like a literate program < 1210091785 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but .. nah < 1210091807 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: http://pastebin.ca/1009420 < 1210091809 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm actually amused that literate programming has caught on < 1210091814 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comments on my perl style welcome :) < 1210091822 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's a good idea, but I'm not entirely sure why it needs a special syntax < 1210091839 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: because it's not just 'comments > code' < 1210091842 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I've written several programs with more comments than code, where the code is inside the comments, which use comment markup for the comments as usual < 1210091849 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I know it isn't just comments > code < 1210091851 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you have to be able to write the program in the order that it makes sense to explain it in < 1210091856 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and subroutines just don't handle that < 1210091863 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(you need finer control and more access to the enclosing context) < 1210091884 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: you didn't set the expiry on that to infinite < 1210091893 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so? i haven't licensed it yet < 1210091898 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it should be, really, for all esolang stuff, as I don't want it to vanish off the net < 1210091917 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but if you haven't licensed it yet, and you plan to put it up elsewhere, then fine < 1210091944 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: pb.eso-std.org < 1210091945 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :;))) < 1210091959 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :does that exist yet? < 1210091964 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliotthird.org was down last I checked < 1210091985 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: no httpd < 1210091987 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :remember? i wiped it. < 1210091991 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I know < 1210091992 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :my irc network is up though. < 1210091996 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I was wondering if you'd fixed it in the meantime < 1210092009 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :don't intend to until i get the stuff ready to put up < 1210092009 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, and you don't set the executable/non-executable flag on the files you create < 1210092017 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hm, that's a good point < 1210092102 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :interesting way you do marker selection, BTW < 1210092109 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's kind-of clever < 1210092119 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: how is it interesting? < 1210092120 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :reminds me slightly of Ethernet collision retries < 1210092130 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: increase the length and re-randomize each time < 1210092131 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it is just guaranteed to also work for finite files :-) < 1210092145 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :normally people just re-randomize, or follow a pattern < 1210092146 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: really i don't even need to increase the length < 1210092156 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: yes, I know, that's what the comment was about < 1210092158 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what kind of file includes all 3 uppercase letter combinations on a line of their own? < 1210092162 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :increasing the length is probably good, though < 1210092172 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah, my program is provably correct < 1210092173 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1210092176 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well .. not really < 1210092177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since it's perl < 1210092183 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I can imagine a list of all known assembler opcodes in a file < 1210092187 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so just about anything relating to it is unprovable < 1210092193 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that might contain all 3 uppercase letter combinations < 1210092200 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: UUU is an asm upcode? < 1210092209 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if it doesn't, we'll have to invent an esoasm to do the remaining ones < 1210092222 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and UUU is an RNA codon, not sure about asm < 1210092228 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :does RNA count as assembly language? < 1210092231 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's compiled into protein < 1210092239 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :by a simple assembly-like substitution < 1210092245 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: when you give me a 'hello world' in rna... < 1210092249 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :... then two things will happen < 1210092249 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :. < 1210092254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :1. i'll call it an asm language < 1210092261 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :2. fundie christians will kill you, in your sleep < 1210092271 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hm, odd, my irc network doesn't show up on nmap < 1210092274 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :paranoid openssh :-) < 1210092279 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :security by obscurity! < 1210092305 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :heh, the entire genetic code of a human, when transcribed into RNA, is arguably a hello, world < 1210092313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ha! < 1210092316 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :a more literal hello, world than most programming languages, for that matter < 1210092332 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :What would be hello world in RNA? < 1210092337 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I don't think the genetic code by itself is enough to recreate a human < 1210092340 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :A form of life that says "Hello, world" and then dies? < 1210092349 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think Wikipedia had a DNA Hello, world < 1210092358 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slereah_: that would rock < 1210092366 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :when transcribed into protein and written out in the standard notation, you got HELLQWQRLD or something < 1210092368 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'...pop Hello, world! AEURURURURARRRRRRRRRRRRRRR-' < 1210092368 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :let me try to find it < 1210092373 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'*dead*' < 1210092383 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :ais523 : Metamath has a Hello, world theorem < 1210092466 0 :RedDak!n=dak@host65-82-dynamic.18-79-r.retail.telecomitalia.it JOIN :#esoteric < 1210092487 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :http://us.metamath.org/mpegif/helloworld.html < 1210092490 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, it's transwikied to Wikibooks now: http://en.wikibooks.org/wiki/Transwiki:List_of_hello_world_programs < 1210092499 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I couldn't find the DNA one on there < 1210092561 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the worrying thing is that I have a vague memory that it was me who transwikied it < 1210092576 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :"It is not difficult to “write” a message in a plasmid using the one letter code for the amino acids by inserting a suitable string of three letter of DNA per amino acid with some adjustments O => Q. For instance Hello world is HELLQ WQRD or Histidine-Glutamic acid-Leucine-Leucine-Glutamine-Tryptophan-Glutamine-Arginine-Aspartic acid." < 1210092584 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slereah_: what does the hello world theorem actually mean? < 1210092586 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :translate into english < 1210092598 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :ehird : Nothing important. < 1210092607 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Slereah_: that's missing a Leucine < 1210092643 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :It means that it is true that h does not belong to the set formed by the relation L over L and 0, and... < 1210092655 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :I'm not too sure about the second part. < 1210092806 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it was transwikied, but it wasn't my fault this time < 1210092808 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it seems < 1210092952 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :344563446523446523446524465234465234465234456234465234456 = 2 < 1210092967 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :...Wikibooks has hello worlds in 198 languages, plus 46 GUIs, 9 page description languages, 3 media-based scripting languages and 25 esolangs, including some esolangs I've never heard of < 1210092971 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this bears investigation < 1210092994 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: any comments on my perl style? < 1210093006 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: it's not particularly idiomatic, it looks more like C < 1210093009 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but that's probably a good thing < 1210093022 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: what would you change? It doens't look anything like C to me.. < 1210093030 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :In fact, my mind views it as 'deliciously obfuscated' :-) < 1210093053 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if I were obfuscating it I wouldn't have single-use subroutines, and I wouldn't break print statements just to do some calculations < 1210093065 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can do the calculation inside an argument to the print, you know... < 1210093106 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"The Del on the first line begins function definition for the program named HWΔPGM." -- the APL one < 1210093115 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why would you name a program HWΔPGM < 1210093118 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what's wrong with HELLO < 1210093124 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I mean 'Hello World Program', okay, but still < 1210093134 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :HELLO isn't descriptive < 1210093137 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, all those variables grate on the functional programmer inside me, but they're probably the clearest way to write it < 1210093141 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :is it hello world, hello jack, hello bob, what? < 1210093153 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :HWΔPGM is explicit < 1210093163 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant : Hello is hello for any variable < 1210093164 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :hell, HELLO doesn't even say if it's a program! < 1210093171 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: HWORLD < 1210093175 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Hence, it can be used to salute the entire world < 1210093176 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and since you're defining a program ... < 1210093197 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I dont' see how breaking the print wuld do anything apart from give me a mammoth print with statements inside < 1210093200 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :would < 1210093216 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: what's not obfuscated about a mammoth print with statements inside? < 1210093229 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm not saying your program is bad, just that it isn't particularly obfuscated for Perl < 1210093234 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: not talking about obfuscation, relaly < 1210093236 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just idiomatic perl < 1210093241 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, and here's an esolang I was unaware of: http://www.nishiohirokazu.org/blog/2006/09/kemuri_1.html < 1210093246 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :luckily, most of the page is in English < 1210093271 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :It seems awfully Japanese ^^ < 1210093271 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no spec, but there's an interp so it could be deduced from that < 1210093302 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :"The only command to push constant values into the stack is the `. It pushes 13 values 33, 100, 108, 114, 111, 119, 32, 44, 111, 108, 108, 101, 72 in this order. " < 1210093307 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :That is so cheating. < 1210093319 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slereah_: 'awfully Japanese ^^' - the writer is obviously japanese < 1210093324 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :I know. < 1210093327 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, there is a spec, I just missed it because it was so short < 1210093335 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :esolangs and golfing are more popular with those japs it seems < 1210093340 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but golfing moreso < 1210093343 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and golfing with ruby tops < 1210093360 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Slereah_: the pushing of those values is cheating, but it's the only way to get constants < 1210093362 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :"Super NAND Time!!" < 1210093369 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but ` is such a cheat < 1210093370 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1210093371 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you have to do bitwise XORs and complements on those values to get to other values < 1210093375 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :ais523 : What about "1"? < 1210093384 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :It's also a constant! < 1210093387 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"l"(small L) and "*"(asterisk) are reserved for possibility to use as a command "Execute the stack as Brainf*ck" in future. ha < 1210093401 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Slereah_: you can only get a constant by XORing together characters of "Hello, world!" < 1210093408 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can't push a literal 1 onto the stack < 1210093417 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it's more interesting than it looks < 1210093427 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :only capable of outputting constant text strings, though, so it isn't Turing-complete < 1210093435 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's only barely cat-complete < 1210093443 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and cat programs are a lot easier to write... < 1210093498 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: l and * would make it tc < 1210093518 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, but allowing inline BF is a cheaty way to make something TC < 1210093531 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: by the way, i have an idea for a language < 1210093532 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Those people and their cheating way. < 1210093534 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just like calling Perl regexps TC is cheating < 1210093540 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can implement it by TAIL-FILE-RECURSION < 1210093542 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :basically < 1210093546 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the only 'looping' in the language < 1210093555 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is when the interp loads its all file < 1210093559 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and then exits after running itself < 1210093583 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it reloads a different file when the currently running file ends? < 1210093588 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :I wonder, is there a form of Brainfuck without any restriction on the code? < 1210093594 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: no < 1210093595 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like < 1210093597 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in interp.pl < 1210093601 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Like an unbalanced [ would just be a conditional < 1210093605 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :require "interp.pl"; exit < 1210093608 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or something < 1210093612 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and that's the only way the language can loop < 1210093613 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :by doing that < 1210093613 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :and unbalanced ] would just bring back to the beginning of the code. < 1210093614 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Slereah_: FukYorBrane does that < 1210093628 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :at least, not exactly, IIRC it ignores unbalanced loops < 1210093631 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :It's hard to find new ideas! < 1210093643 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :all code has to be valid, because the program tends to get corrupted during use < 1210093652 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and has to keep running unless it hits a bomb, or all threads quit < 1210093779 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :compare http://en.wikibooks.org/wiki/List_of_hello_world_programs#Ruby_with_GTK.2B to http://en.wikibooks.org/wiki/List_of_hello_world_programs#Windows_API_.28in_C.29 < 1210093792 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's pretty much proof of ehird's and my complaints about how bad the Windows API is < 1210093807 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :of course, I picked the examples to make that statement look good, but still... < 1210093823 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hee, you linked to ruby as a good example < 1210093831 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i was expecting perl < 1210093831 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1210093835 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I wanted something clean and simple compared to that C stuff < 1210093839 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :99 should also do a hello world database. < 1210093842 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Ruby is good at clean, simple, small programs < 1210093847 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :The hello world lists are too scattered < 1210093849 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :even graphical ones, apparently < 1210093855 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ruby has some really weird bits :-) but it's nice < 1210093863 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as for gui ones < 1210093866 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wanna see a Shoes version of that? < 1210093876 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I can write it *right here* < 1210093879 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :here goes: < 1210093879 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[[ < 1210093882 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Shoes.app do < 1210093891 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : button("Hello, world") { exit } < 1210093891 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :end < 1210093892 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :]] < 1210093976 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well, the window gets kinda big when you do that < 1210093980 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can trivially make it any size, though < 1210093989 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Shoes.app :width => a, :height => b do # that's all < 1210094104 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :THE CHANNEL, IT DUN DIE < 1210094113 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :noes. < 1210094167 0 :ais523!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1210094167 0 :ais523_!n=ais523@pw01-fap01.bham.ac.uk JOIN :#esoteric < 1210094190 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :sorry, did I miss anything? < 1210094195 0 :ais523_!unknown@unknown.invalid NICK :ais523 < 1210094197 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523_: last thing you heard? < 1210094198 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :[18:14] THE CHANNEL, IT DUN DIE < 1210094214 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : I can right it *right here* < 1210094219 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*write < 1210094221 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/right/write/ < 1210094224 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : here goes: < 1210094224 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : [[ < 1210094224 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Shoes.app do < 1210094224 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : button("Hello, world") { exit } < 1210094224 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : end < 1210094225 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : ]] < 1210094227 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : ais523: well, the window gets kinda big when you do that < 1210094229 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : you can trivially make it any size, though < 1210094231 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Shoes.app :width => a, :height => b do # that's all < 1210094239 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :maybe I should write a hello, world in OpenGL < 1210094246 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :without using any text functions < 1210094249 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the cool thing about shoes < 1210094255 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has just finished an OpenGL project < 1210094258 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is that it contains animation and graphics functions ala Processing < 1210094263 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and excellent mouse/keyboard handling < 1210094265 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they wanted a Windows executable < 1210094269 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as well as the standard, native gui fare < 1210094276 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so I invented a programming language for expressing graphical scenes in < 1210094282 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and wrote a cross-platform interpreter for it < 1210094301 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and handed in the source, Windows and Linux executables, and the source code for the particular program they wanted < 1210094314 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I doubt anyone else did it like that < 1210094421 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: you know what sucks? the lack of gui toolkits good for writing /real apps/ that aren't complex as hell < 1210094443 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :GTK is reasonably simple < 1210094454 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and GLUT is very simple, but not good enough for large-scale applications < 1210094461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: GTK is based on hell, though < 1210094467 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GObject is the worst idea I've heard in years < 1210094470 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's a good esoteric idea, though. < 1210094473 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Kind of like Malbolge. < 1210094476 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, Qt isn't that bad either < 1210094488 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :qt is nice, but not nice to program < 1210094506 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, and the graphical version of intercalc (the CLC-INTERCAL calculator) is written in GTK < 1210094520 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure what argument that makes either way < 1210094860 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i can't wait until everything's rewritten in c intercal < 1210094871 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean by 'everything' < 1210094885 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :everything < 1210094902 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: that's never going to happen, what would C-INTERCAL itself be written in? < 1210094908 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: intercal < 1210094910 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :besides, I rather like a multitude of languages existing < 1210094919 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: what would it compile into? INTERCAL? < 1210094924 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that would be kind of pointles < 1210094926 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/$/s/ < 1210094932 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it would interpret it < 1210094940 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and since everything is in INTERCAL < 1210094942 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it would be fast < 1210094944 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: but the whole point of C-INTERCAL is that it's a compiler < 1210094955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: then we'll stop using c-intercal ;) < 1210094975 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the different design decisions of C-INTERCAL and CLC-INTERCAL stem mainly from the fact that one's a compiler and one's an interpreter, and from the different langs they're written in < 1210095077 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :however, I feel that a practical INTERCAL-based language is a reasonable idea < 1210095092 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if it had the usual arithmetic operators and decent string handling, INTERCAL would be quite nice to program in < 1210095397 0 :ais523!unknown@unknown.invalid QUIT :"(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"" < 1210095413 0 :ais523!n=ais523@pw01-fap01.bham.ac.uk JOIN :#esoteric < 1210095435 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sorry... did I miss anything? < 1210095439 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the last I saw was if it had the usual arithmetic operators and decent string handling, INTERCAL would be quite nice to program in < 1210095487 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :noyhing missed. < 1210095497 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and everything sent/ < 1210095502 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/\//?/ < 1210095511 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yes < 1210095513 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : if it had the usual arithmetic operators and decent string handling, INTERCAL would be quite nice to program in < 1210095513 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :* ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"") < 1210095513 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :* ais523 (n=ais523@pw01-fap01.bham.ac.uk) has joined #esoteric < 1210095529 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm... that's nice, it even got my sig < 1210095547 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :You are standing in the main hall of what appears to be some sort of < 1210095551 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :castle. There is a door in each of the east and west walls; the one in < 1210095551 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the west wall has a [ symbol marked on it, but there are no markings on < 1210095551 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the door in the east wall. There is a large staircase, which goes upwards < 1210095551 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :to a balcony high on the north side of the room. The south of the room is a < 1210095551 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :large door, heavily barred with wooden bars that you would have no chance < 1210095552 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :of lifting. < 1210095567 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(unfinished esoteric text adventure with several esolang puzzles in, so far three puzzles none of which leads anywhere) < 1210095598 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although one of them is capable of leading to a secret area if you have a good knowledge of INTERCAL run-time error messages < 1210095598 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :What are the puzzles? < 1210095607 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Slereah_: try moving through the game, and you'll find out < 1210095613 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there's a SMETANA puzzle on the stairs < 1210095618 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :a Brainfuck puzzle to the west < 1210095623 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and an INTERCAL puzzle to the east < 1210095658 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :SMETANA because the whole "Step 1. Step 2." blatantly implies a staircase < 1210095673 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :ais523 : GO STAIRCASE < 1210095683 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: shall I write a bot that will interface the game and irc? < 1210095685 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :You are standing on stair 0 of a flight of stairs. < 1210095689 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :The stairs are numbered from 0 at the bottom to 9 at the top; the numbers < 1210095692 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so you don't have to do it manually. < 1210095693 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :are written on the banisters rather than the stairs themselves. The top < 1210095697 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and bottom stairs are blank, but the others have writing on, as follows: < 1210095701 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 9. < 1210095706 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 8. Go to step 2. < 1210095709 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 7. Swap steps 3 and 5. < 1210095722 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 6. Swap steps 3 and 4. < 1210095725 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 5. Go to step 6. < 1210095729 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 4. Go to step 1. < 1210095733 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 3. Swap steps 2 and 4. < 1210095738 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 2. Swap steps 1 and 7. < 1210095742 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 1. Swap steps 5 and 8. < 1210095746 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :> 0. < 1210095754 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: you could do, but manually is simple and the parser's really rudimentary < 1210095754 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it's best for me to parse in my head rather than make people use the parser, which only accepts one-char commands, no args < 1210095755 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :each description ends with a menu of which command does what in that context < 1210095762 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :JUST CLIMN THE FUCKING STAIRS < 1210095764 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, and your options are to walk up a step, down a step, or to slide down the banister < 1210095771 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so you're going up, presumably? < 1210095777 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Yes, yes I am. < 1210095782 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Will I be teleported? < 1210095803 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :When you arrive on step 5, you are suddenly teleported to step 2! < 1210095803 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :When you arrive on step 2, you are suddenly teleported to step 1! < 1210095803 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :When you arrive on step 1, steps 5 and 8 swap places! < 1210095810 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :at this point, the staircase looks like this: < 1210095818 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 9. < 1210095822 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 8. Go to step 2. < 1210095826 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 7. Swap steps 3 and 5. < 1210095830 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 6. Swap steps 3 and 4. < 1210095839 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Oh noes! < 1210095842 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 5. Go to step 6. < 1210095846 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 4. Swap steps 1 and 7. < 1210095850 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 3. Swap steps 2 and 4. < 1210095854 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 2. Go to step 1. < 1210095858 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :> 1. Swap steps 5 and 8. < 1210095862 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 0. < 1210095866 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :er what just happened < 1210095866 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I kept going up until you were teleported < 1210095869 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1210095874 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Do I have Mario-like jumping abilities? < 1210095874 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you have no choice now but to walk off the staircase; it resets when you do that < 1210095874 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in general all the puzzles reset when you leave the room and they are unsolved < 1210095875 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :some reset even if solved, some don't < 1210095878 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Slereah_: not in this game < 1210095901 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :presumably you'd gain them if you found a blue mushroom to eat, but there are none in the game at the moment < 1210095935 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :an ehird web interface would likely work better than pasting, though, just because the SMETANA problem produces so much output < 1210095940 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the other two are less noisy < 1210095949 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: but that's less ircy < 1210095950 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1210095953 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But I can do a web interface, trivially. < 1210095955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Shall I? < 1210095958 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :may as well < 1210095968 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'll paste the source-code; it doesn't really give anything away < 1210095993 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's really lousy, though, I may rewrite it in an esolang at some stage < 1210095998 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: no point pasting the code < 1210096000 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can run it on your machine < 1210096004 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :once i've written the web interface < 1210096011 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then how will the web interface access the code? < 1210096017 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: by using a subprocess. < 1210096025 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it takes input on stdin, and spews stuff on stdout, right? Then I can make something meaningful out of it. < 1210096037 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, but you'll need the code or an executable to be able to run the code < 1210096043 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can't interface to the code if you don't have it < 1210096045 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: So I give you my web interface. < 1210096046 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And you run it. < 1210096058 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I have no server that's externally accessible < 1210096064 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Ah. < 1210096068 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as it happens Apache's running on here, but I can't get round the firewall < 1210096069 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: You can just give me a linux binary, then. < 1210096073 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because I don't control it < 1210096075 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Smaller than source code :p < 1210096079 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :filebin.com < 1210096081 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I have a linux x86 binary, though < 1210096085 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that'll work fine < 1210096088 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i am on linux x86 after all < 1210096096 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oops < 1210096097 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://filebin.ca/ < 1210096103 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :esogame: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), not stripped < 1210096106 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I know it's .ca < 1210096126 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that iwll work perfectly < 1210096130 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*will < 1210096140 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :http://filebin.ca/shdmov < 1210096158 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Okay./ < 1210096163 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Web interface to the esogame coming up. < 1210096179 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hurm < 1210096182 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :./esogame: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.4' not found (required by ./esogame) < 1210096185 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Does the game have some sort of plot, or is it just a bunch of puzzles? < 1210096190 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: what kind of directory structure is THAT < 1210096190 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Slereah_: no plot as of yet < 1210096193 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's coming later < 1210096204 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and really, I don't know what kind of dir structure that is < 1210096219 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: oh well, paste the source code to filebin and /msg me the url i guess < 1210096219 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ldd esogame < 1210096220 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : linux-gate.so.1 => (0xb7fc3000) < 1210096220 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7e59000) < 1210096220 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : /lib/ld-linux.so.2 (0xb7fc4000) < 1210096228 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(since pastebin.ca is public) < 1210096232 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Will the victory imply some sort of pastry? < 1210096238 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Perhaps a cake-like object < 1210096244 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Slereah_: probably, but a victory is currently impossible < 1210096255 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no doubt you'll have to make the cake-like object yourself, though, using a Chef program < 1210096263 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1210096266 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :I like the idea. < 1210096281 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I've /msg'd ehird the source code < 1210096290 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it doesn't spoil any of the puzzles < 1210096290 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Will you need a Camouflage program to enter the building? < 1210096308 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Slereah_: not sure, you start inside the building, but it's currently possible to leave but not to re-enter < 1210096318 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that might be a decent way to manage re-entry < 1210096334 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Heh. < 1210096340 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I was planning to construct the building a bit like Television Center, with two floors, and make the whole thing a giant Whirl program < 1210096348 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/program/interpreter/ < 1210096375 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that would require rooms to become harmless once their puzzles were solved < 1210096382 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: OK, I can make a web interface to this trivially. < 1210096384 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Even with savegames! < 1210096391 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(It just generates a unique game id when you go there, then saves to that filename.) < 1210096396 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Just go to the URL to load again.) < 1210096404 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :How do you load a saved game, though, ais523? < 1210096407 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :actually, I might move the INTERCAL room directly above the Brainfuck room, then restrict people to going clockwise round the puzzle < 1210096412 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: specify it on the command line at current < 1210096423 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :aha, ais523 < 1210096424 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I started that program years ago and haven't updated it much since < 1210096426 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OK, this will be fun < 1210096438 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :maybe I'll update it more once my exams are finished < 1210096447 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I've already promised lots of things to different people < 1210096491 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :such as fixing the bug with C-INTERCAL that Debian's autobuilder found on Itanium, or the bugs I found with C-INTERCAL on Solaris < 1210096508 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :on the plus side, C-INTERCAL's going to be ridiculously extensively portability-tested, given its subject matter... < 1210096539 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :esco!!!! < 1210096547 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :haha i think me and Slereah_ are the only ones who find that funny < 1210096550 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :esco???? < 1210096560 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, an esoteric OS? < 1210096582 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Esoteric interpreter! < 1210096587 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Well, compiler < 1210096592 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :compiles what into what? < 1210096596 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and written in what? < 1210096599 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Everything! < 1210096609 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Such diverse languages as Brainfuck, ook, spoon... < 1210096617 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I actually want a compile everything into everything suite < 1210096622 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: esco is a shitty pile of crap < 1210096623 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :EsoInterpreters is a good start < 1210096625 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to put it bluntly < 1210096639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they support about 5 languages, half of which are brainfuck syntax-changes. < 1210096639 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ideally, have some way to compile around a cycle of esolangs (with at least one 'real' language represented) < 1210096645 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the code is crappy c++. < 1210096649 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then any lang in the cycle can be compiled into any other < 1210096650 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the dev linked to it all over the wiki < 1210096652 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1210096680 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :It would be hard to compile BF into Unlambda. < 1210096686 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Or vice versa. < 1210096687 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :e.g. it's currently possible to compile Unlambda -> Underlambda (I lost the source code for that, but I can remember how it was done) < 1210096691 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and Underlambda -> Underload < 1210096698 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not quite, no input < 1210096703 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Underlambda -> C, definitely < 1210096704 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :http://esco.sourceforge.net/ < 1210096717 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I have a P'' interp in Unlambda < 1210096737 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :changing that to a BF->Unlambda compiler wouldn't be ridiculously difficult because I still have the Relambda source < 1210096771 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Relambda? < 1210096778 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Slereah_: Unlambda + lambda < 1210096788 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's a language I use privately to write Unlambda programs < 1210096804 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1210096809 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there's a Relambda to Unlambda compiler in my esolangs.el, though, which I've pasted at least twice < 1210096821 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's buggy, unfortunately < 1210096828 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the esco guys are funny < 1210096834 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"Byter is a language for training brains." < 1210096836 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they warped that into < 1210096836 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but unlambda + lambda is a pretty simple combination < 1210096840 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"Byter is a language for training your brain." < 1210096850 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Well, that was most of the idea for Lazy Bird. < 1210096863 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Lazy Bird doesn't actually have a lambda, though, does it? < 1210096867 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just lots of useful combinator < 1210096870 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/$/s/ < 1210096875 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :although the real idea was "I'm trying to write Unlambda on the love machine 9000 and it's terrible" < 1210096879 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: It has lambdas. < 1210096885 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1210096890 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Underlambda has lambdas too < 1210096900 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I had great fun trying to express them as rewrite rules into Underload < 1210096903 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think I succeeded, though < 1210096910 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Here be a Fibonacci with lambdas : ``m^x^y````yk.1r``xx``v`y0```yk`sb`y0``v0i < 1210096935 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's basically the same syntax as Relambda, except that I use $x and $y to read the value of lambda bindings < 1210096952 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: by the way, a trivial way to do continuations in an esolang: < 1210096952 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the ^ is the same < 1210096958 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :({} is an array here) < 1210096964 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :\ is pretty ugly as a lambda. < 1210096983 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :X [Y] callcc Z -> {X Z} Y Z < 1210096984 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I use ^ in Relambda, but \ in Underload < 1210096988 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :trivial < 1210096998 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: which leads me to a new idea -- < 1210097000 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'forward parameters' < 1210097001 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: that's pretty much how the Underlambda rewrite rule works < 1210097009 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in a concat lang, the 'back parameters' are the ones coming before the call < 1210097016 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :my idea is 'forward parameters': the ones in front! < 1210097042 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that makes some sense if you have an amount of control over what they are < 1210097053 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: here's callcc using 'forward parameters' < 1210097053 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :\x y,z -> {x z} y z < 1210097056 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but one issue is that back parameters can be manipulated in all the usual concatenative ways < 1210097057 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's in lambda + concat notation < 1210097062 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you could probably come up with a better way to do it < 1210097063 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :forward parameters couldn't be, they'd have to be literals < 1210097067 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: nahhhh < 1210097069 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: they could be thunks < 1210097072 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lazy concat < 1210097083 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, I see < 1210097101 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, in that case it's just the sort of typical rewrite rule which is trivial in Perl, Thutu or Cyclexa < 1210097128 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :how's that web interface, by the way? < 1210097249 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: going quite well < 1210097254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i mean, the actual thing is trivial < 1210097259 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the fun part is writing the server boilerplate! < 1210097260 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :<.< < 1210097284 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :heh, I could probably make it into a CGI script by adding a couple of lines and using a continuation library < 1210097300 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Probably, but forking like hell would kill this kind of thing < 1210097312 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: besides, you need multiple users at one time < 1210097320 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and you can't persist processes, anyway < 1210097320 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :OK, but why would a continuation library need forking? < 1210097322 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so you couldn't use a cgi < 1210097328 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: cgi = fork each request < 1210097351 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you can persist continuations across runs of the program, then you can just exit in between calls < 1210097373 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ah, i see what you're saying < 1210097376 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm using subprocesses < 1210097384 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Underlambda's actually got persistent continuations as part of the language, in the C, S and D commands < 1210097394 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hm, should i make saving implicit? < 1210097398 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like, each action saves < 1210097403 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since i generate a unique name anyway < 1210097407 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not sure, the save on it's pretty broken anyway < 1210097413 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because it doesn't save the internal state of puzzles < 1210097418 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: does it not? dshdkf! < 1210097423 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just a whole load of variables I don't actually use yet < 1210097425 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm going to all this fuss partly for the saves < 1210097432 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: make it persist it pronto :< < 1210097444 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :OK, I'll look at the code for the first time in years... < 1210097467 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the problem is keeping a consistent save-file format whilst adding extra puzzles... < 1210097496 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :aargh, it's basically impossible the way I've written it < 1210097505 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it seems I've duplicated the parser inside the puzzle functions < 1210097513 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and used auto variables to store the states of the puzzles < 1210097525 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: :( < 1210097533 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I told you this thing needs a rewrite < 1210097546 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh well, i'll just do no save games for now < 1210097561 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pokpokpopokpkopkopokpkopokpokpkopokpokpkopokpkopkopkopokpkopokpkoppokpkopokpokpkpokpokpokpkopko < 1210097607 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :at least the BF puzzle doesn't actually need a save, it's always either solved or reset < 1210097615 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION just had a worryingly evil idea < 1210097621 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this game's a text adventure < 1210097629 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I'm planning to add a text adventure system to PerlNomic < 1210097641 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if the two could be combined in some way? < 1210097656 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : pokpokpopokpkopkopokpkopokpokpkopokpokpkopokpkopkopkopokpkopokpkoppokpkopokpokpkpokpokpokpkopko < 1210097657 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :WHAT is that < 1210097661 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is that like oko v2 < 1210097661 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :If you want to program some embryos : http://www.vivo.colostate.edu/molkit/rtranslate/index.html < 1210097667 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sorry, I went all oklopol for a moment < 1210097681 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I probably would have deleted it rather than posted it in most other channels < 1210097724 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: don't worry, we're all dirty okoers here, i meaokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokok < 1210097746 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : @@valid = "a".."z" + "A".."Z" + "0".."9" # this is elegant in some weird way < 1210097773 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what lang? It looks a bit like Perl, but isn't < 1210097790 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Ruby! < 1210097810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hm, no Range#+ < 1210097826 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, of course < 1210097829 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'll have to convert it to an array < 1210097835 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :otherwise representing that as a range makes no sense < 1210097871 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :why not just a regex < 1210097876 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ruby's love of functional programming saves the day! < 1210097878 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : @@valid = ["a".."z", "A".."Z", "0".."9"].inject([]) {|a, b| a.to_a + b.to_a} < 1210097880 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(inject is reduce/fold) < 1210097889 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: 'cause i want to generate it too < 1210097891 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :@@valid = /[a-zA-Z0-9]+/ < 1210097894 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1210097927 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :using || as parens looks strange < 1210097935 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it's the parameters < 1210097938 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's taken from smalltalk < 1210097940 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :smalltalk of that is: < 1210097943 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[:a :b | ...] < 1210097956 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: and the extra one is so that you can do 0-adic ones easily < 1210097956 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :{ ... } < 1210097967 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, { and } can be spelled 'do' and 'end' which is more elegant for multi-line blocks < 1210097970 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :.inject([]) do |a, b| < 1210097971 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : ... < 1210097972 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :end < 1210097993 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: they stole that feature from Magenta! < 1210097999 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: heheheheh < 1210098013 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: rule of thumb: {} for one-line blocks (only one expression) < 1210098016 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :do..end for multi-line < 1210098019 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: fun thing about ruby: no statements < 1210098022 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :everything is an expression < 1210098029 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so you can give /anything/ as an argument to a function < 1210098032 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :even a class definition < 1210098071 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :"everything is an expression" is good < 1210098081 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there is no reason for a statement/expression split nowadays < 1210098095 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :such splits also go against my sense of elegance in programming < 1210098096 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: quite. Ruby is a lot deeper than most people think < 1210098101 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(those who learn of it from Rails, mostly) < 1210098110 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's why INTERCAL has separate expressions and statements < 1210098116 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Ha! < 1210098121 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, and some of the expressions have side effects# < 1210098127 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/.$// < 1210098130 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, ruby's expressions have side effects < 1210098134 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because otherwise there'd be no side effects :P < 1210098140 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's fine if they serve the role of statements too < 1210098152 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although arguably, Haskell managed to find a different solution to that particular problem < 1210098179 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but in a lang with split expressions/statements, having side-effect expressions is just silly < 1210098224 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I wonder what the historical reasons for langs having separate expression and statements are? < 1210098234 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :possible reasons: parsing before LR(1) was invented, line numbers < 1210098244 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :e.g. combining expressions and statements in Forte would be really difficult < 1210098251 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :probably other reasons I haven't thought of < 1210098299 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the parsing is because people used to use top-down parsing for statements and bottom-up or operator-precedence parsing for expressions < 1210098308 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it was just intuitive back in tha 'old dayz < 1210098311 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'old, heh < 1210098326 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not really, asm doesn't have separate expressions and statements < 1210098338 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so why did the first higher-level languages separate them? < 1210098338 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :asm has only statements < 1210098342 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so adding expressions was an obvious next step < 1210098370 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :exactly < 1210098373 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1210098374 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :or it seems obvious to me, anyway. More so than changing all statements to expressions. :-P < 1210098381 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1210098382 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1210098383 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it was like < 1210098387 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'add a, b; mov b, x' < 1210098389 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is silly < 1210098394 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and esp. for large expressions < 1210098397 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :expressions would have originally been invented as a way to reduce temporary register usage < 1210098398 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why not 'mov a+b, x'? < 1210098410 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and then you get into function calls and stuff < 1210098414 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'mov sqrt(a), x' < 1210098423 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then you get a language leaving asm behind - like C < 1210098431 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and ends up making IO stuff into functions < 1210098433 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you see? < 1210098466 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1210098469 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that makes sense < 1210098501 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: another nice thing about ruby - it has good string interpolation built in < 1210098512 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :many langs have that nowadays < 1210098512 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#{foo}, in a string literal, is an interpolation of the code foo, converted to a string < 1210098517 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sometimes you can even leave out the {} < 1210098522 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :even Cyclexa does, or will do when I finish the spec < 1210098525 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#foo and #@bar and #$xyz works, but they're obscure-looking < 1210098528 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so nobody uses them :-) < 1210098533 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: you can nest quotes in these < 1210098541 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"#{"#{"hello"}"}" < 1210098543 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is "hello" < 1210098543 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: but you can have nested comments in email addresses < 1210098556 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :however, I tried it in my email client and it rejected the address < 1210098563 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not even sure if it allows non-nested comments < 1210098566 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: gotta admit though, "#{"#{"hello"}"}" is amusnig < 1210098569 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*amusing < 1210098578 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but nested comments strike me as a good anti-spam measure < 1210098584 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what spambot parses those nowadays? < 1210098600 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :what mail client supports them? < 1210098618 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: all the ones which follow the spec, so probably about 2 that nobody's ever heard of < 1210098621 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1210098684 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :eh < 1210098685 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*heh < 1210098714 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: < 1210098715 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Thread.new { @buffer[id] += proc.gets until proc.closed? } < 1210098722 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, try sending a message to ais523(524\)(525)x)@bham.ac.uk and seeing what happens < 1210098728 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'until' and 'x?' are cute idioms :-) < 1210098733 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyone who actually reaches me has a superior mailer < 1210098743 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: they'll be adding a please to it next < 1210098744 0 :helios24!n=helios@Lc9cf.l.pppool.de JOIN :#esoteric < 1210098755 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: heh < 1210098767 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, yes, email addresses even have an escape syntax for escaping comment markers in comments < 1210098781 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Hello sir helios24. < 1210098789 0 :helios24!unknown@unknown.invalid PRIVMSG #esoteric :Slereah_, hi ;) < 1210098817 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i do believe I just emailed you < 1210098825 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :unix mail(1) :-) < 1210098828 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it hasn't arrived yet < 1210098830 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION notes that good old pine supports that address nicely (it strips out the comments as soon as i leave the To: line) < 1210098850 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :maybe it'll arrive later, or maybe a relay en-route will choke on the comments < 1210098876 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: that's a really clever idea, allow all users and don't confuse the mailer < 1210098889 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I have a class called PunkRock in my program. It is a pun on 'proc'. < 1210098935 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :maybe I'll publically display my email as a valid address with comments in, spambots would be unlikely to track it down and people with decent mailers could visit it without deobfuscating < 1210099059 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: eurgh, you can't do redirects right < 1210099061 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you use a 301 < 1210099066 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :reloads go to the redirector < 1210099068 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so what's the actual address supposed to be < 1210099069 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :instead of hte redirectee < 1210099072 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you use anything else < 1210099074 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ais523x)@...? < 1210099075 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then a browser caches the redirector < 1210099079 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to go to the redirectee < 1210099085 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: look more closely, \ is an escape character < 1210099100 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: aye, so you escape the one after 524 < 1210099110 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ah, they nest? < 1210099134 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :i.e. (foo(bar)baz) is one comment, not baz) < 1210099139 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, nested comments < 1210099142 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :thunderbird thinks it's baz) < 1210099147 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :remember this is email addresses we're talking about < 1210099172 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but no regexp can handle arbitrarily nested comments < 1210099280 0 :RedDak!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1210099297 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: gosh, this bug is odd < 1210099303 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :looks like it's an open bug at mozilla since 2002 :-) < 1210099303 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what does it do? < 1210099326 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: but it should be easy to fix, surely? < 1210099340 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the proc buffer appears to be empty < 1210099341 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :possibly, I don't know < 1210099342 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :even though it is not < 1210099353 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :"proc buffer" = /proc? < 1210099418 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: no, the game subprocesses < 1210099488 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I mean, it's there. Just. < 1210099493 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OH < 1210099498 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Setting the wrong instance variable :| < 1210099564 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: OK, I just need to add input. < 1210100005 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: < 1210100006 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : return if (proc = proc_for(name)).nil? < 1210100021 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :why did you paste that particular line of code to me? < 1210100116 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: OK, I think it's almost ready < 1210100118 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and ... I just found it cute. < 1210100540 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Hmm. Odd bugs. < 1210100571 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Give me a good number for reading in chunks < 1210100574 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :1024? 4096? < 1210100582 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :CLC-INTERCAL uses 1024 < 1210100586 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't know if that makes it a good number, though < 1210100616 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :1 << rand_int(8, 16) < 1210100646 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I don't have the fingerprint 0 0 1 1 loaded < 1210100671 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so I think it reflects, and as I don't have 1 1 1 1 loaded either that's an infinite loop < 1210100692 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the problem is that we redirect back straight after a post < 1210100693 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sorry, it would just be the fingerprint 1, I forgot the semantics for a moment < 1210100698 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :huh what now? < 1210100699 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which means you get either no or only some of the game's response < 1210100707 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I was trying to interpret your code as Funge-98 < 1210100719 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :you'd never get to the ( < 1210100725 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's the ) I'm talking about < 1210100728 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you do get to that < 1210100737 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: any ideas about my solution? < 1210100738 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :right, wrapping < 1210100741 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :apart from doing it ajaxy that is :-) < 1210100743 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :you'd hit my nick first though ;-) < 1210100749 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: what redirect code are you using? < 1210100754 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there's more than one < 1210100757 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: nothing to do with that < 1210100769 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just the timing of the seperate thread which does the reading < 1210100772 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :why do you have a redirect? < 1210100777 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: after the form post < 1210100780 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i redirect to the game display < 1210100789 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :this can happer faster than I read in the game's response < 1210100790 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and where does the information that then displays come from? < 1210100805 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the buffer which i store to by reading continuously in a seperate thread < 1210100811 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: but what it would do is try to unload the fingerprint 0. the first param it pops is the length of the fingerprint's identifier < 1210100821 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: there are two 1s on the stack < 1210100827 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm, /me has an idea < 1210100828 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :d'oh < 1210100833 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :right you are < 1210100837 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: use some sort of readbuffer-valid/readbuffer-invalid flag? < 1210100948 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : ios.closed? => true or false < 1210100948 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Returns true if ios is completely closed (for duplex streams, both reader and writer), false otherwise. < 1210100955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^^ but I only want to know about reading! < 1210100965 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: then use a non-duplex stream? < 1210100978 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: but I need both input and output, for one process < 1210100981 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's the game process :-) < 1210100986 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :aha < 1210100987 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :.eof? < 1210100988 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :of course < 1210101043 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wow what happened < 1210101045 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's gone molasses slow < 1210101062 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: you might want to look up on how it checks for EOF < 1210101071 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it may be something silly like test read + unget with timeout < 1210101073 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: my thoughts exactly < 1210101093 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: how DO I detect if your game exited < 1210101094 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1210101113 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: by looking at its process number? < 1210101118 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's the usual method < 1210101147 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :e.g. you can use kill to see if it's possible to send something a signal, if it isn't then it's probably exited < 1210101166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :WTFFF < 1210101166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Tue May 06 19:13:41 +0100 2008: ERROR: Resource temporarily unavailable < 1210101183 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1210101203 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :your server has switched to Daylight Saving Time < 1210101214 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :mightn't that cause problems during the DST switch? < 1210101214 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ha, that's not quite what i was talking about < 1210101226 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no, it's just that my processes are only lasting one requset < 1210101262 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :languages other than UNIXy shells have insufficient ampersands < 1210101286 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: EAGAIN is the error, by the way < 1210101296 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :whut does that be meanin' < 1210101309 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: EAGAIN means that an application started a non-blocking read, but it would have blocked < 1210101318 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it returns instantly with an error, because the read is non-blocking < 1210101323 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ah! < 1210101333 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: how do I do a non-blocking-read-but-blocking-if-it-needs-to-be < 1210101339 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :? < 1210101344 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :just do a blocking read? :-P < 1210101346 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :a read is either blocking or not < 1210101354 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that is: 'if the process dun wanna give me nuttin', just return the empty string. But if it has sum of dat nice output for me, block and gimme it' < 1210101355 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it sounds like you've described a blocking read < 1210101373 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: but if I do a blocking read it'll wait until the process wants to output N characters < 1210101385 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I do this every request, to get the output it's sent, y'see < 1210101385 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: you've just described a non-blocking read < 1210101389 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(dropped the thread) < 1210101399 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: OK, but it's having that odd error, so it's obviously not doing what I asked. < 1210101399 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :presumably you're running it in a tight loop, and that's causing the slowness? < 1210101414 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :errr ... What < 1210101423 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :When did I say anything baout slowless < 1210101424 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*slowness < 1210101436 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : it's gone molasses slow < 1210101442 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that's not related in any way to this. < 1210101445 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i fixed thatl < 1210101447 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1210101448 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway: < 1210101452 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : proc.buffer += proc.read_nonblock(4096) < 1210101456 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i do that each time you view the game screen < 1210101462 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to syphon anything the game wants to tell me < 1210101469 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but this isn't working past the first request < 1210101471 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what does read_nonblock return in a situation where it would block? < 1210101472 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it fails with EAGAIN < 1210101476 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :null, all data available, or error? < 1210101480 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: EAGAIN, presumably? < 1210101482 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's what you said. < 1210101485 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, it does in C < 1210101490 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Yes, EAGAIN. < 1210101492 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I would have expected Ruby to wrapper around that < 1210101494 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's what t's giving me. < 1210101497 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :An IOError of EAGAIN < 1210101501 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(raises an exception) < 1210101505 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :"read_nonblock just calls read(2). It causes all errors read(2) causes: EAGAIN, EINTR, etc. The caller should care such errors. " < 1210101506 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :even python just wraps around the errnos < 1210101509 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's ridiculous high-level language design < 1210101510 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Yes. < 1210101518 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: No, it's common high-level language design < 1210101519 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Very common < 1210101519 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :looks like you have to catch the EAGAIN yourself < 1210101523 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Haven't seen one langugae not do it < 1210101528 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: OK, and if I get an EAGAIN whatd o I do? < 1210101530 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*do < 1210101534 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'll look it up < 1210101543 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I could do proc.read(4096), but then what if the game wants to give me, say, 512 characters? It'll hang. < 1210101558 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: according to the documentation of read(2), you only get EAGAIN if there's no data < 1210101561 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and all the data available otherwise < 1210101580 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: OK < 1210101582 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so just trap the exception and handle it with no action in the handler < 1210101591 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : proc.buffer += proc.read_nonblock(4096) rescue nil < 1210101593 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes, ruby even has post-rescue < 1210101631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: OK, a bit better, except that when I type 'Go' now it gives me a screen with just my input. Then if I refresh it sees it < 1210101637 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(because, obviously, the output isn't instanteneous) < 1210101642 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sounds like a race condition < 1210101648 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1210101657 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but i don't see what i can do about it save for an artificial delay < 1210101714 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :normally, some sort of semaphore or spinlock, or other way to send data between multiple process < 1210101717 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/$/es/ < 1210101731 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :e.g. (1) COME FROM (1) AGAIN / ABSTAIN FROM (1) in C-INTERCAL < 1210101731 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Even more worryingly, if I do 'Up' < 1210101738 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then it doesn't display anything, no matter how many refreshes < 1210101740 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :until the next input < 1210101745 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :strange < 1210101755 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :are you flushing the pipe into my program? < 1210101769 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: oh. that might hlep < 1210101770 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, my program doesn't flush output pipes, you may need to add a few fflushes in there < 1210101771 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1210101850 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: into your program? < 1210101853 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm trying not to modify it < 1210101862 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :with luck it's line buffered < 1210101866 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, programs built to run in ttys don't always run properly in pipes < 1210101877 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sometimes you need to change the buffering mode of the program < 1210101910 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :e.g. all C-INTERCAL 0.28 output programs support a command-line option to flush after every output character < 1210101921 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so you can cause that to happen without modifying the output < 1210101956 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: if I paste my code will you think of something? :P < 1210101964 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: if it's written in Ruby, probably not < 1210101968 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it's very readable < 1210101971 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's a good language for several things, but I don't know it < 1210101979 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and understanding the code won't solve the problem < 1210101988 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: while reading it, this might help - http://www.ruby-doc.org/core/classes/IO.html < 1210101992 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's understanding what obscure language feature you need to solve it that's needed to solve the problem < 1210102005 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://pastebin.ca/1009573 < 1210102011 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i don't think it's obscure < 1210102012 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :really < 1210102126 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: nothing obvious? < 1210102142 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I suggest modifying my program to flush and send some special character (there's probably a control char in ASCII for this purpose, it's got a lot of useful control chars like that) after every input, and blocking for that char < 1210102159 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :otherwise, how can you possibly tell when my program's finished its output? < 1210102183 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :failing that, get my program to flush (or switch stdout unbuffered), and put a time delay in before the reload < 1210102187 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well, there's an online zork < 1210102187 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1210102205 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway, ais523, your program just uses raw printf < 1210102206 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :changing would be hell < 1210102216 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, trivial < 1210102224 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if it's just printf you can #define printf to flush < 1210102225 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1210102233 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yeah, but then I can't use "printf" < 1210102244 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and you also use puts < 1210102251 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or you can just use a single setbuf call on stdout < 1210102285 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :setvbuf(stdout, _IONBUF, 0, 0); < 1210102294 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that command causes all stream I/O on stdout to flush instantly < 1210102300 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just put it at the start of main() < 1210102321 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :esogame.c:176: error: ‘_IONBUF’ undeclared (first use in this function) < 1210102333 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :_IONBF, sorry < 1210102376 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :esogame.c:176: warning: passing argument 2 of ‘setvbuf’ makes pointer from integer without a cast < 1210102388 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :have I got the args in the wrong order? let me check again < 1210102403 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :setvbuf(stdout, 0, _IONBUF, 0); < 1210102404 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :stdout, NULL, _IONBF, 0 < 1210102405 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's better < 1210102444 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well, nothing mmuch happens < 1210102449 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :really looks like I'm gonna have to add a delay.. < 1210102450 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but that sucks < 1210102455 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you need a delay as well < 1210102461 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that just prevents the stair lockup problem < 1210102462 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: but how much < 1210102465 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it does, doesn't it < 1210102472 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1210102473 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it does < 1210102475 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the delay needs to only be a few hundred milliseconds < 1210102489 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but there's no way you can do without a delay without further modifying the program you interface with < 1210102505 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: OK, seems to work apart from one thing < 1210102509 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what one thing? < 1210102513 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you give it an empty line you have to give it some input before it'll say it doesn't understand < 1210102527 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :does my program do that? < 1210102533 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: oh wait < 1210102534 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :is it a bug with you or with me, in other words < 1210102536 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you just hang on enter < 1210102538 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's a bug with me < 1210102541 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if I remove the stripping of newlines < 1210102546 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then it'll add a new line each time < 1210102546 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so < 1210102547 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :obvious < 1210102720 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :all fixed now? < 1210102744 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: OK < 1210102748 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: It basically works. < 1210102757 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I only need to add like 2 things: < 1210102766 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :- The ability to quit the game properly < 1210102779 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :- Disabling your saves, because they can access the FS and don't work anyway < 1210102874 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so, you say I should try signalling < 1210102875 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to see if it's dead < 1210102876 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what signal? < 1210102883 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :this will be done on each refresh/entered line, etc < 1210102885 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there's a no-op signal for that purpose < 1210102894 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :number 0, I think < 1210102959 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, kill's documentation says it's 0 < 1210102990 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure how that interacts with zombies, though < 1210103051 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :BRAINS... < 1210103056 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sorry, reflex < 1210103069 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :zombie processes can be a pain to get rid of < 1210103079 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in computer games you kill zombies with headshots < 1210103087 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :on UNIXes you kill zombies by killing their parents < 1210103096 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hahaha < 1210103100 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that would be a great fps < 1210103104 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there's an invasion of zombies < 1210103108 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :SOLUTION: kill ancestors < 1210103113 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and they immediately die < 1210103115 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :quite difficult due to the need to sort out the recursion < 1210103141 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: there was something on that on TvTropes (WARNING: addictive) < 1210103155 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so it seems that I can still kill -0 your game after it's done, because it's still >open< < 1210103158 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you've just stopped writing to it < 1210103159 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(eof) < 1210103163 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, that's the problem < 1210103167 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :can the EOF be detected? < 1210103171 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yes -- .eof? < 1210103174 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but as we've discussed < 1210103175 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's molasses-slow < 1210103176 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or the SIGPIPE that you get for writing to a finished process? < 1210103178 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and seems to be broken anyway < 1210103182 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and it's not writing that helps < 1210103185 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because just after writing Q < 1210103188 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we go to the display screen < 1210103193 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-> we need to detect it without writing < 1210103209 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, the command normally used for that is wait < 1210103212 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it waits... < 1210103221 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if there's a non-blocking version? < 1210103236 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :dont_wait < 1210103239 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sounds INTERCALly < 1210103261 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I am tempted to write a language in which your adventure game will be both easy to write and will be portable across UIs ;) < 1210103264 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that would be fun < 1210103266 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it could even by esoy < 1210103278 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in C it's waitpid(pid, &status, WNOHANG) < 1210103283 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not sure what that translates to in Ruby < 1210103322 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :waitpid(pid, WNOHANG) < 1210103334 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: bingo < 1210103335 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :no clue what happened to the status < 1210103342 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :are you a rubyist or just good with google :-) < 1210103343 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and < 1210103344 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :isn't it kind-of important in this case < 1210103345 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the status is returned < 1210103348 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :good with google < 1210103349 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because otherwise it's a no-op < 1210103353 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and somewhat of a rubyist < 1210103361 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: anyway, it's Process.waitpid < 1210103361 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but not nearly enough to remember this kind of stuff :-P < 1210103369 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1210103381 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and Process::WNOHANG if you want to be pedantic ;-P < 1210103419 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: okay, almost there < 1210103420 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :after a quit < 1210103421 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pedantic = needed for program to work, or compiler setting? < 1210103422 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you refresh < 1210103423 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's done < 1210103426 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :looks like i need more delay < 1210103426 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1210103428 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: and needed < 1210103433 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ruby ain't a compiler anyway < 1210103438 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sorry, interp setting < 1210103444 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: needed, although I think there may be some way of importing the module so that it's not < 1210103445 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's an interpreter of the slowest kind (YARV, aka Ruby 1.9 aka Ruby 2.0 is fixing this) < 1210103447 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :not sure < 1210103456 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :actually, I'm kind of surprised that you needed the delay at all < 1210103463 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :considering the relative speeds of Ruby and C < 1210103517 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: snarky < 1210103523 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Mongrel, the server, has its core written in C < 1210103529 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sorry < 1210103531 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and since it's a long running process, really we're IO bound < 1210103536 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but i agree < 1210103541 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ruby is the slowest thing ever :-) < 1210103548 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: try HOMESPRING some time < 1210103550 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but soon... 2.0.. < 1210103559 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm pretty sure Ruby's faster than that < 1210103564 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(ruby 1.9 is almost usable, and it will stablly become 2.0 soon) < 1210103570 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: did you know - ruby has continuations < 1210103573 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :plain jane callcc < 1210103574 0 :boily!n=boily@csf-233.cegep-ste-foy.qc.ca JOIN :#esoteric < 1210103584 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'd have been disappointed if it didn't < 1210103590 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :even reusable. a limitation, though: you can't switch to a continuation made in another thread < 1210103593 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well, python doesn't < 1210103605 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :"It has continuations!" shouldn't be some sort of brilliant killer-app nowadays < 1210103607 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that limitation kinda destroys them though < 1210103608 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it should be a default < 1210103618 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :esp. since it copies the stack (since they're very c-integrated) < 1210103620 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it's slow too < 1210103620 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the next step is getting all langs to have continuations that serialise to disk < 1210103621 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :even so < 1210103623 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nice to know it's there < 1210103629 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah they don't serialize either < 1210103648 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I can't actually thing of any lang but Underlambda with serialisable continuations < 1210103650 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ruby = lisp + perly syntax with some extra humaney stuff + smalltalk < 1210103664 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sounds much like the much-fabled Perl5 < 1210103667 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :+ simplified + some complexity, but of a new kind (ruby's own kind) < 1210103667 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :only they got to it first < 1210103672 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/Perl5/Perl6/ < 1210103690 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i've seen perl6 -- it's nothing like ruby < 1210103695 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it SHOULD be, though :-) < 1210103695 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no < 1210103700 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the description fits both languages < 1210103702 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but they are still different < 1210103704 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: one advantage of ruby is that you can actually compile it ;P < 1210103712 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :perl6 is actually more mallable than perl5 < 1210103729 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, in perl6, every {} is actually an anonymous lambda, and context determines whether it runs or not < 1210103731 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I like that idea < 1210103826 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OK, I think I've got the game playable < 1210103879 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :website? < 1210103923 0 :boily!unknown@unknown.invalid QUIT :"Schtroumpf!" < 1210103953 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: about to < 1210103955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just disabling saves < 1210104023 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: http://91.105.74.139:8080/ < 1210104024 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :have fun < 1210104029 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err wait < 1210104033 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just gonna log when someone starts a new game < 1210104035 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Could not connect to host 91.105.74.139 (port 8080). < 1210104038 0 :Slereah!n=gtuilt@ANantes-252-1-68-202.w81-250.abo.wanadoo.fr JOIN :#esoteric < 1210104064 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yes < 1210104066 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :added the logging < 1210104067 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :should work now < 1210104068 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://91.105.74.139:8080/ < 1210104126 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: 'sit good? < 1210104130 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think so < 1210104147 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :'twould be nice to autoscroll to the bottom of the page, though < 1210104155 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's probably possible using anchors < 1210104168 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: does for me! < 1210104171 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because it focuses the input field < 1210104177 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not for me in Konqueror < 1210104181 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: use epiphany < 1210104182 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :nor for me in Firefox < 1210104196 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it does it in a