< 1275177609 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: that's possessive < 1275177621 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you < 1275177622 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :r < 1275177637 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oottelen vastaustasi = i wait for your answer < 1275177642 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*i'm waiting < 1275177659 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*odottelen < 1275177660 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how did I end up reading "answer" as "shower" < 1275177663 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is just strange < 1275177673 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well i read your shower as showel < 1275177679 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, hah < 1275177695 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, at least the edit distance was less there < 1275177695 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: so this makes "kulli kädes oottelen vastaustas" seem like two separate sentences. < 1275177708 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Where one of them is just a noun phrase. :P < 1275177734 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: wielding my dick i'm waiting for your answer < 1275177746 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods. < 1275177763 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Well, that was fun. < 1275177764 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but usually you'd say "odottelen vastaustasi pippeli kdess" < 1275177771 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's poetic < 1275177777 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1275177788 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the original was a poetic word order, so to speak < 1275177815 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(i gave you a third name for penis, you can never have too many) < 1275177824 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION quickly runs through his flash cards again. < 1275177850 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :nisäkäs < 1275177859 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :mammal < 1275177868 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :do you know what nis is? < 1275177874 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Breast? < 1275177884 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think it's more like a nipple but yeah < 1275177895 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :So "tit" is definitely right. < 1275177927 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :jäte < 1275177928 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ks can be done with other things too, although it's not used much < 1275177933 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I'm not doing all that well with these. < 1275177943 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Aha, waste. < 1275177966 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :have you chosen random words from a dicitonary? < 1275177968 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*dictionary < 1275177977 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Pretty close. < 1275177992 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I'm taking content words off of http://fi.wikipedia.org/wiki/Koira < 1275178043 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :How would you say "the dog bone explodes"? < 1275178054 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :* uorygl quickly runs through his flash cards again. <-- why do you speak about memory cards all the time... < 1275178066 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: because I use them for language learning. < 1275178079 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: koiran luu rjht < 1275178085 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: not flash USB drives < 1275178088 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, oh < 1275178093 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, what does he mean then? < 1275178095 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :flash cards. < 1275178105 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :word in certain language + meaning < 1275178107 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, that means compact flash card or such to me < 1275178108 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :used for memorising a language < 1275178112 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, oh like a "glosbok"? < 1275178118 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Flashcard < 1275178118 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no < 1275178125 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you have cards with words on both sides < 1275178128 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :"A flashcard or flash card is any of a set of cards bearing information, as words or numbers, on either or both sides, used in classroom drills or in private study." < 1275178131 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :An example for a French student of English learning "enough", which in French is assez (pronunciation given in IPA): < 1275178132 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Q: assez < 1275178132 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :A: enough, /ɪˈnʌf/ < 1275178132 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Reverse: < 1275178132 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Q: enough < 1275178133 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :A: /ɪˈnʌf/, assez < 1275178134 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, ah < 1275178136 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i would've assumed it's flashcard in swedish < 1275178140 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what is it? < 1275178160 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :can we at least talk klingon or something < 1275178170 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :all this swedish chef stuff is getting old < 1275178177 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, I never heard of this concept, and a glosbok is quite different < 1275178178 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :chef? < 1275178180 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Finnish isn't Swedish chef stuff. < 1275178192 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what < 1275178200 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :"Score: 10 of 20 = 50%" < 1275178212 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cheater99, please make a difference between Swedish and Finnish next time < 1275178218 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you managed to insult both sides < 1275178228 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Mmkay, "koiran luu räjähtää". "Koiran" is the genitive there, yes? < 1275178231 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275178254 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Do compounds like that always use the genitive like that? < 1275178256 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, there is a difference? < 1275178270 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: the bone of the dog < 1275178296 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :we use normal genitive with body parts < 1275178306 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1275178324 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"I do not believe that John Wiles has actually provided a proof with integrity, but more a proof checked by friends in the know" --crackpot saying he's proved FLT < 1275178325 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :John Wiles! < 1275178338 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cheater99, ........................... < 1275178362 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, . . . . . < 1275178377 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :you can see that i spaced those dots in approximately a quadratic progression < 1275178392 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: when you stick words together without a space in between, what do you do with the first word, case-wise? < 1275178397 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cheater99, and? < 1275178410 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: usually nothing, rarely genitive < 1275178414 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :and this is very related to the topic of the channel < 1275178414 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cheater99, anyway my answer is: stop trolling < 1275178422 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: so you usually just use the stem? < 1275178437 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes, but koiran luu is not a compound, it's just "the bone of the dog" < 1275178442 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, i am not trolling - i just found your remark about finnish/swedish pride a bit funny that's all =) < 1275178454 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: can you make compounds with a word in between? < 1275178455 0 :FireFly!unknown@unknown.invalid QUIT :Quit: swatted to death < 1275178464 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cheater99, they are different language families < 1275178496 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, believe it or not i know that < 1275178535 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: the rules for whether there's a space are rather complicated in general, but for two nouns there's usually no space < 1275178537 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1275178543 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods. < 1275178645 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :So if you really wanted to say "dog bone", it would be... hm, I don't know what the stem of "koira" is. Is it "koira", "koir", or something else? < 1275178685 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you never drop anything from "koira" < 1275178695 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :So, "koiraluu"? < 1275178697 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no wait plural partitive is koiria < 1275178701 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275178736 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you carved stuff out of bones, you could call one of your products the "koiraluu" < 1275178743 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if it looked like a dog < 1275178744 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION finds another way to watch his movie < 1275178757 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Spiffy. < 1275178782 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sure < 1275178815 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1275178822 0 :SgeoN1!unknown@unknown.invalid PRIVMSG #esoteric :It's Megavideo though, which means being interrupted by "hey, you've watched too much video" < 1275178830 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also i think koiranluu is a bone you can buy for your dog to eat < 1275178832 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1275178865 0 :SgeoN1!unknown@unknown.invalid PRIVMSG #esoteric :I think maybe I shouldn't be saying all this stuff in a logged channel < 1275178871 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Aiee, why the n/lack of space? < 1275178874 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i hate megavideo, it's the best streaming service there is, but also the only limited one < 1275178888 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: that's the rare no-space genitive compound. < 1275178934 0 :SgeoN1!unknown@unknown.invalid PRIVMSG #esoteric :"best", as in losses enforcement of copyright? < 1275178942 0 :SgeoN1!unknown@unknown.invalid PRIVMSG #esoteric :Loosest < 1275179025 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :SgeoN1: dude the authorities are not going to get you for piracy < 1275179032 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :chill the fuck out and stop worrying :P < 1275179041 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :koiraluu will always make sense, either it has some specific meaning or it'll be used in context, koiranluu just usually sounds wrong, except when it happens to have a meaning (like in this case), koiran luu will always make sense, it's just the bone of a dog, it can have a more specialized meaning like in this case "dog bone", but it will always also be usable as a generic the bone of a dog. < 1275179059 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that makes sense only if you swap a noun variable where luu and koira are :) < 1275179066 0 :SgeoN1!unknown@unknown.invalid PRIVMSG #esoteric :My dad instilled a sense of paranoia about that stuff < 1275179110 0 :SgeoN1!unknown@unknown.invalid PRIVMSG #esoteric :Then again, he's also paranoid about forwarding ports and running servers/hosting games < 1275179123 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I guess I should learn how to say stuff like "man". < 1275179140 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :mies < 1275179142 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :And "walk". < 1275179147 0 :SgeoN1!unknown@unknown.invalid PRIVMSG #esoteric :He once made me wipe my HD after I installed a chat seover of some kind < 1275179149 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :kvell < 1275179150 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :"Ihminen" :P < 1275179155 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh that too < 1275179156 0 :SgeoN1!unknown@unknown.invalid PRIVMSG #esoteric :Server < 1275179157 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :human = ihminen < 1275179172 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :man = mies < 1275179185 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :walk = kvell < 1275179219 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :SgeoN1: Your dad is a fool. Uh, of sorts. < 1275179256 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :The United States just isn't a good country for Sgeo. < 1275179297 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: Do you know of an X server framework that implements a basic forwarding X server? < 1275179330 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: why would you want to learn finnish? < 1275179347 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: because it's spoken in Scandinavia and it's not Indo-European. < 1275179354 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also what did you end up deciding to do with your life? < 1275179362 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I still haven't decided. < 1275179365 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh okay < 1275179376 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: ur mom < 1275179377 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i guess i was sort of expecting that answer < 1275179383 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks up Finnish conjugation. < 1275179395 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Kävelen, kävelee... that's enough for now. :P < 1275179399 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl is going to become a professional eliezer yudkowsky fanboy < 1275179406 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :are you moving to scandinavia, otherwise i might want elaboration on the reason < 1275179409 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: stop using two spaces after a sentence < 1275179417 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: it's typewriter legacy < 1275179420 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :kvellkseen < 1275179423 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Ihminen kävelee! < 1275179432 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: I might move there eventually. :P < 1275179439 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :unissas kvelee plli < 1275179453 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't seem to be able to behave in finnish < 1275179488 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: if you do, please choose math :P < 1275179498 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: done! < 1275179509 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Why? Is there lots of demand for math in Scandinavia? < 1275179546 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well no but i would insisting on us meeting (if you learned finnish and therefore moved here), and it would be most useful for me if you were a math enthusiast. < 1275179553 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods. < 1275179568 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Great. Let's plan to meet... how does May 29, 2014 sound? < 1275179573 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1275179576 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sounds good < 1275179583 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Great, I'll add it to my calendar. :P < 1275179583 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: i will totally meet you earlier < 1275179589 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like in the next couple of years < 1275179590 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :unfortunately i don't really have anything to store dates in < 1275179595 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you'd be so interesting. < 1275179599 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :maybe i'll find a storage < 1275179608 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I'll have to remind you 30 minutes before and then 5 minutes before. < 1275179612 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or maybe i'm not interesting < 1275179620 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and you'll be really disappointed < 1275179629 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i want to write a little spreadsheet program < 1275179640 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my gf just told me i was really odd a few days ago because i wanted to lick my knee all the time < 1275179670 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wow i am going to do that now < 1275179675 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :did it to my clothes but close enough < 1275179682 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it feels cool < 1275179697 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Let's see, May 29, 2014 is a Thursday. < 1275179711 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what time < 1275179735 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Um, how about 3 PM? < 1275179750 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i get off work at 4! < 1275179757 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Oh. 5, then? < 1275179758 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nah i can probably leave early < 1275179760 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1275179771 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :5 pm where, at the uni? < 1275179775 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You could change jobs by then. < 1275179778 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no < 1275179779 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Sure, where at the uni? < 1275179781 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :And which uni? < 1275179793 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :where i'm doing my research, turku university < 1275179805 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :main building, 4th floor of math dep < 1275179816 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure about room number tho < 1275179857 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i guess university of turku is the name but anyway < 1275179917 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :There, now my calendar contains two events. :P < 1275179922 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :One of them is in June, the other is in 2014. < 1275179941 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1275179957 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I made that appointment in June a few weeks ago. < 1275179966 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, I feel sorry for your gf < 1275179981 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1275179983 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why < 1275179984 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I asked, "How far ahead can I make an appointment?" They said, "As far ahead as you like, I guess." < 1275180004 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I should have cackled evilly upon hearing that I had this unlimited power, but instead, I just made an appointment four weeks from that time. < 1275180079 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1275180108 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I should have also made an appointment eight weeks from that time, as I knew when I would be available. < 1275180110 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"4 minutes after the End" < 1275180112 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :CAN THE NUMBER OF SECONDS INTO THE SPECIFIED MINUTE BE IRRATIONAL < 1275180139 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :The number of minutes into the specified hour must be a non-integer dyadic fraction. < 1275180245 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Mies kävelee. That's easy enough. And, uh... < 1275180260 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :uorygl, you should have made an appointment in year 31827372 or such < 1275180268 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :uorygl, where was this btw? < 1275180276 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :The campus recreation center. < 1275180279 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1275180281 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :uorygl, for what? < 1275180293 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :To create a new exercise plan. < 1275180340 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Darn, I could have answered whatever I wanted. I should have said, "To reconsider the allocation of recreation among the students to take into account the fact that nobody really *needs* recreation". < 1275180398 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Minä kävelen. < 1275180402 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what do exercise and recreation have to do with each other < 1275180416 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Now I wonder where I'm walking to. < 1275180418 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :recreational is a branch of mathematics < 1275180420 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: don't ask me. < 1275180432 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: you are forced to exercise or something? :p < 1275180441 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ooh, you're gonna need illative < 1275180469 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I am forced to exercise if I want to reap the benefits of exercise without resorting to some means by which I can reap the benefits of exercise without exercising. < 1275180489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1275180515 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: you're so annoying < 1275180518 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i hope our visits to oklopol don't clash < 1275180522 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1275180530 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Let's see. With the words I supposedly know, I can say... < 1275180550 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :min kvelen koiran suuhun < 1275180560 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nm me < 1275180560 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://man.cat-v.org/unix_WWB/1/sexist < 1275180561 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I walk into the starting time, I walk into the animal, I walk into the stone, I walk into the shape... < 1275180636 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://man.cat-v.org/unix_8th/6/atc ;; one of the most geeky games imaginable < 1275180646 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: well do it < 1275180661 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I don't know the illative cases of those. < 1275180674 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks them up. < 1275180702 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :some sort of lengthening or vowel + n < 1275180709 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :plus all sorts of fun details < 1275180726 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION attempts to find the spreadsheet program in unix 8th edition < 1275180757 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Minä kävelen alkuaikaan. Minä kävelen eläimeen. Minä kävelen kiveen. < 1275180764 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :So my guess for "shape" would be "muotoon". < 1275180775 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Yep! Minä kävelen muotoon. < 1275180790 0 :Tritonio_GR!unknown@unknown.invalid QUIT :Quit: Leaving. < 1275180817 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ah visi < 1275180818 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://man.cat-v.org/unix_8th/1/visi < 1275180828 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : http://man.cat-v.org/unix_8th/6/atc ;; one of the most geeky games imaginable <-- nah, tried it, not realistic IMO < 1275180840 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Koira kävelee luun suuhun. < 1275180851 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no shit < 1275180854 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's a game < 1275180855 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :It doesn't make much sense. :P < 1275180884 0 :SgeoN1!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1275180947 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, yeah, I prefer simulations < 1275181004 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :http://profile.ak.fbcdn.net/v223/334/56/n100000035296412_1208.jpg < 1275181009 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :neck is crazy < 1275181035 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Now I'm kind of thirsty, and I want to talk about drinking, but that's really a vocabulary issue. < 1275181036 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :dammit ais left < 1275181046 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :night → < 1275181053 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :nn AnMaster < 1275181078 0 :coppro!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1275181769 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't think starting time is alkuaika < 1275181806 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: doesn't make sense but it's meaningful < 1275181853 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to find the actual cover of tri repetae < 1275181890 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :open cover? < 1275181922 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :? < 1275181931 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean what is that < 1275181936 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :album art < 1275181961 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i AnMaster's the word cover to be the topological term < 1275181970 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*AnMaster'd < 1275181995 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh. < 1275181998 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay i thought cover in the sense new version of old thing < 1275182058 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"incomplete without surface noise." -- the cover < 1275182068 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :("complete with surface noise." -- cover of vinyl version) < 1275182330 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I propose we term what is usually called axioms, plus information about axioms, axiomata < 1275182336 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Why: it sounds nice < 1275182829 0 :pikhq!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1275182866 0 :bsmntbombdood!unknown@unknown.invalid QUIT :Ping timeout: 248 seconds < 1275183173 0 :pikhq!~pikhq@75-106-123-171.cust.wildblue.net JOIN :#esoteric < 1275183220 0 :coppro!~coppro@unaffiliated/coppro JOIN :#esoteric < 1275183892 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://sprunge.us/cgih < 1275183901 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I should make this cleaner. < 1275183961 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Metavideo, fuck you and your 72min limit < 1275183995 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is about to run out of his 72 < 1275184067 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: ima write one of them < 1275184071 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :looks funerifierous < 1275184085 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Heh. < 1275184096 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: starting time isn't alkuaika? < 1275184141 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well what kind of starting time? < 1275184148 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :BF = (Add n, Move n, Loop x, In, Out) ;; I want a dynamic language with adts < 1275184153 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :The point at which a long process began. < 1275184156 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION should futz with the  < 1275184160 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :loop output < 1275184177 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay if it's long then maybe < 1275184199 0 :Oranjer!~HP_Admini@adsl-243-205-116.cae.bellsouth.net JOIN :#esoteric < 1275184208 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i was thinking like starting time in a race or something, maybe it doesn't mean that usually < 1275184220 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Mm. < 1275184231 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because you'd use lhtaika < 1275184348 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :opt (Loop [Add (-1)] : xs) = opt $ Clear : xs < 1275184348 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :opt (Loop [Add 1] : xs) = opt $ Clear : xs < 1275184350 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: it's more general than this < 1275184366 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you need the extended euclidean algorithm to figure out whether a loop like that terminates, iirc < 1275184386 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: btw you could write your optimiser simpler as repeated application until fixpoint of the optimisation function and no recursion :P < 1275184431 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :What sort of starting time is the time I began sneezing? < 1275184438 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :opt (Loop x : xs) = Loop (opt x) : opt xs < 1275184446 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Loop [Add 2, Add (-1)] < 1275184453 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :should be < 1275184454 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :As in the starting time of one particular sneeze. < 1275184455 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :optBF (Loop x : xs) = optBF $ Loop (optBF x) : xs < 1275184482 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: i think alkuhetki < 1275184488 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: also use Set n instead of Clear < 1275184495 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :alkuaika is more like for eras and the like < 1275184519 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"tieteen alkuaikoina..." when science wazs younngg < 1275184523 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*was young < 1275184524 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: This is intended to first achieve feature-parity with a C program I wrote that does the same thing, and then go from there. < 1275184527 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :great translation < 1275184533 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hetki is moment < 1275184578 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :The starting moment, eh? < 1275184583 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Oh, you said that. < 1275184599 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275184606 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in finnish it sounds nonsilly. < 1275184627 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods. < 1275184632 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's not exactly moment, hetki is a point in time, moment is, i guess, an interval < 1275184643 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :although they do have overlap, it's the usual translation < 1275184683 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Zack M. Davis says, "[Recreational] is _not_ [a barnch of mathematics]! Algebra, analysis, and topology are branches of mathematics. 'Recreational' is a diminituve applied to problems that are perceived as being < 1275184701 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :being ...? < 1275184702 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :"easier or more 'fun' than 'serious' mathematics. The distinction has everything to do with the ideology of professionalism and nothing to do with the theorems themselves." < 1275184721 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*Main> optBF [Add 42, Move 0, Add (-3)] < 1275184721 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :[Add 42,Add (-3)] < 1275184722 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :grr < 1275184723 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :And "And doesn't it make more sense as, 'What's the difference between (...)?'" < 1275184756 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay, i haven't been exposed to diminutive usage, but i was joking < 1275184757 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Hm, shouldn't he have said "'What's the difference between (...)?'?"? < 1275184780 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Trying to do this better than me? :P < 1275184793 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: EVERYTHING WILL BE SUPERIOR < 1275184803 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: you know how far along esotope is btw? :P < 1275184819 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Esotope does quite a bit. < 1275184822 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Hey, I don't seem to be thirsty any more. < 1275184829 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, how would you say "I don't seem to be thirsty"? < 1275184883 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :literally en vaikuttaisi/nyttisi olevan janoinen < 1275184901 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which i suppose i would use in a situation where i'd say that < 1275184914 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh umm < 1275184937 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in your case you'd probably leave out the seem, "oho, jano lhti" or something :P < 1275184978 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Hm, how about something easier. "The dog seems to be glowing." < 1275184993 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Esotope COMPILES THE REGULAR LOOPING HELLO WORLD TO A PRINT STATEMENT. < 1275184999 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :koira nytt hehkuvan < 1275185051 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Yes, I'm well aware. < 1275185057 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's pretty crazy. < 1275185090 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: However, it still has pointer loads *all the freaking time*. < 1275185094 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Because GCC sucks. < 1275185098 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lol i keep trying to look at the repository for esotope but i can't stop staring at mearie.org's pretty design instead < 1275185100 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: right. < 1275185102 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :tried clang? < 1275185108 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :clang too. < 1275185111 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it optimises array references into variables when it can! < 1275185130 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: so what's "hehkuvan"? < 1275185150 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :from hehkua, which is glow i think < 1275185182 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :How do you get to "hehkuvan" from that? < 1275185184 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but nytt hehkuvan is actually a rather special construction, i'm not even sure what case hehkuvan is in < 1275185196 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Esotope's design is pretty hard to grok, though. < 1275185200 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1275185232 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Wiktionary says "active present participle sg. in genitive". < 1275185244 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275185260 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :first -va, hehkuva is something that glows, then that's genitive < 1275185260 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Maybe I should just give it an x86 asm backend. < 1275185267 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :So that word is inflected *and* declined? >.> < 1275185288 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Er, conjugated *and* declied. < 1275185288 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well the verb is made into a noun sort of thing, then genitive is added < 1275185296 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Conjugated *and* declined, even. < 1275185303 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods. < 1275185343 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: would be a good idea. < 1275185354 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ponders "The dog seems to walk". < 1275185377 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i see no reason why it would actually be that meaning, i would've guessed it's some old form that verbs used to be in more often, but nowadays just for "nytt" < 1275185405 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because with that interpretation it's "shows something that glows" < 1275185408 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :"Koira näyttää kävelvän"? Em... < 1275185414 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :kvelEvn < 1275185433 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :kävelevän. Why the e? < 1275185455 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :kvelee -> kvelev < 1275185469 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION attempts to type ä a bunch of times and ends up with this: aääaäaäaäaäaääääääääaääääääää < 1275185501 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Oh, look, "kävellä" is conjugated "kävelee" in the third person singular. :) < 1275185511 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275185571 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :So is "The dog seems to lift" "Koira näyttää nostavan"? < 1275185577 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275185586 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :The word "nostavan" seemed to pop into my head for some reason, and then it turned out to be correct. :) < 1275185603 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I mean, it came to mind, and then it turned out to seem correct, and then it further turned out to actually be correct. :P < 1275185618 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wow triple lucky < 1275185643 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1275185705 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION peeks at the third-person singular of "syödä". < 1275185747 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :It looks like "The dog seems to eat the bone" is going to be "Koira näyttää syövän luun". < 1275185762 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275185772 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Are you sure? :P < 1275185775 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :except probably "koira nytt syvn luuta" < 1275185802 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Good ol' partitive case. < 1275185810 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because i can't imagine it seeming to eat the whole bone in one go < 1275185824 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Finnish is such a strange language, why would anyone want to learn it. :P < 1275185831 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's what i asked! < 1275185855 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is looking at a side-by-side diff between known-working and known-broken output. < 1275185863 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"Koira näyttää syövän luun" <<< this can also mean "the dog shows the bone of the cancer" < 1275185865 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION cannot figure out WTF is going on < 1275185889 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Perhaps I went to DeviantArt once, saw the work of a Finnish artist, and thought, "I like this stuff. I want to learn Finnish". :P < 1275185928 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's like I've got completely and utterly different control flow happening. < 1275185965 0 :sebbu2!~sebbu@ADijon-152-1-92-128.w81-50.abo.wanadoo.fr JOIN :#esoteric < 1275186059 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :to understand a man's art, you have to understand his brainage, to understand a man's brainage, you need to learn finnish. < 1275186073 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because finnish is the language of understanding < 1275186076 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Of course. < 1275186082 0 :sebbu!unknown@unknown.invalid QUIT :Ping timeout: 258 seconds < 1275186082 0 :sebbu2!unknown@unknown.invalid NICK :sebbu < 1275186093 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Brainage: Train Your Brain in Minutes a Day! < 1275186133 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :This particular optimisation might be easier if I compile into Jumpfuck and optimise that. < 1275186143 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Vliaikainen takuu palkinto - aivojumppaa puhelimeesi. Voita uusi iPad. Onko tm uusi iPad sinun? Ultra cool iPad. < 1275186162 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i can give you all the spam i seeas homework < 1275186166 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*see as < 1275186173 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Wonderful. :P < 1275186184 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :at least one of the sentences should be simple < 1275186199 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: write a finnish/lojban pidgin < 1275186206 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :whenever you don't know a lojban word or it doesn't have one, use the finnish one < 1275186210 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, you can combine lojban and finnish words into one < 1275186211 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :go < 1275186257 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but wouldn't that be really gay < 1275186284 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :btw i have no idea what "Vliaikainen takuu palkinto" means < 1275186291 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can tell me if you know < 1275186365 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :HOW THE HECK IS THIS DAMNED THING GETTING "Set 0 : Add 1"? < 1275186399 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :¡Ay, my Internet cut out. < 1275186417 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :What's that case meaning "as a ..."? < 1275186443 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Here we go, the essive. < 1275186447 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: just try it plz < 1275186450 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Screw it; I'm redoing the optimiser slightly. < 1275186453 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: not sufficiently reoptimising < 1275186455 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: i tell you < 1275186457 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :don't recurse < 1275186460 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then reiterate until fixpoint < 1275186460 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Fixed point, BTW? Good idea. < 1275186464 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :slower, yes, who cares < 1275186472 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lost kng is biggest program, if it takes 3 minutes, who cares < 1275186477 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :läksyinä < 1275186487 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you could divide & conquer actually < 1275186511 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :divide program into 2n pieces, fixpoint each, then combine every 2 < 1275186516 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you'd actually use the translative case :) < 1275186521 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and fixpoint on them < 1275186522 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then combine every 2 < 1275186524 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and fixpoint on them < 1275186528 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :until there is only one piece left < 1275186535 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e., we optimise small clusters, then fix the "seams" at the edges < 1275186538 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: DOOOO IT < 1275186541 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Wait, there actually is something called a translative case? < 1275186571 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :So "I can give you all the spam I see as homework" would translate "as homework" using the translative? < 1275186573 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes it's the illative to essive's inessive < 1275186574 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Strange. < 1275186597 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah it's sort of "for homework" < 1275186597 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: DO IT < 1275186607 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i give this stuff to you so that it becomes homework < 1275186622 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so not really at all for i guess < 1275186622 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Huh. What is this peculiarity to? < 1275186649 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :(Yay for using prepositions in strange ways.) < 1275186656 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Hrm. Actually, I'm having a thinko on how to do this. Care to explain what you think so I feel less stupid? < 1275186664 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well see if you give something then translative, when it is something it's essive. < 1275186677 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you give it to be homework, and then it is your homework < 1275186681 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods. < 1275186684 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"fix . opt' $ xs" seems wrong somehow. < 1275186706 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: simple -- also that wouldn't work: < 1275186712 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you told me you've been given something as homework, there would be no change going on, and you'd use the essive, "minulla on lksyn hauskanpitoa" < 1275186713 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :opt (foo : bar : xs) = foobar : xs < 1275186714 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :opt' xs is a function whose fixed point you want to find? < 1275186720 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1275186720 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then < 1275186722 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Like I said, seems wrong. < 1275186729 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :opty x = if opt x == x then x else opt x < 1275186735 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(you can bind it elsewhere if you wish) < 1275186737 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: one exception, < 1275186739 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :opt (x:xs) = opt xs < 1275186742 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1275186743 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :opt (x:xs) = x : opt xs < 1275186748 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that should be the only recursion < 1275186752 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :basically chop out all recursions < 1275186755 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Right. < 1275186757 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :apart from that one < 1275186795 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :FOR EVERY TOTAL COMPUTABLE FUNCTION f : N -> N THERE IS SOME n SUCH THAT n AND f(n) PERFORM THE SAME OPERATION. < 1275186825 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Thanks. < 1275186884 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: HEY THAT'S NOT TRUE MAN < 1275186891 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: f(n) = S(n) < 1275186893 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :WHERE IS YOUR GOD NOW HUH < 1275186913 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :S(S(S(S(S(S(S(S(S(S(... < 1275186919 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fix(f) = n s.t. [f(n) = n] = n s.t. [S(n) = n] = disproven beyotch < 1275186921 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, but that doesn't count. < 1275186922 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: that's not a natural < 1275186933 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Q.E.fuckin'.D. < 1275186934 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :The successor function simply has no fixed point! < 1275186935 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :WELL UMM THE TURING MACHINES THAT n AND f(n) HAPPEN TO INDEX IN OUR GDEL NUMBERING, I SUPPOSE THAT'S A BIT IMPORTANT < 1275186944 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I would so end my proofs with "Q.E.fuckin'.D." were I ever to be published < 1275186946 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1275186949 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: WELL YEAH I GUESS THAT IS TRUE LOL. < 1275186951 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually that's not at all important really < 1275186953 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: WAIT NO < 1275186963 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: ONLY IF YOU CONSTRUCT YOUR GOEDEL NUMBERING LIKE THAT < 1275186964 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :OBVS. < 1275186987 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but yeah you can't make a total computable function that checks how many things a tm prints and prints one more < 1275186988 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Also, don't you mean opty x = if opt x == x then x else opty x < 1275186988 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :? < 1275186994 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: no < 1275186999 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: read that again < 1275187002 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and feel silly. < 1275187004 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, what if your Gödel numbering says "if it's odd, output A and subtract one; otherwise, output B; in any case, continue"? < 1275187007 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then amend the recursion < 1275187022 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Is that allowed? < 1275187029 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: ? < 1275187035 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :If not, ¿por qué no? < 1275187035 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: if what is odd < 1275187039 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: opty x = ... else opty x < 1275187040 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: the number. < 1275187049 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1275187060 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the gdel numbering means a surjection from naturals to the set of all turing machines < 1275187067 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Clearly it's supposed to be opt (opty x). :P < 1275187075 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I guess not every Turing machine immediately outputs one of those. < 1275187097 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"opty x = if opt x == x then x else opt x" doesn't quite seem right, though. < 1275187105 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Right, it's opty (opt x). < 1275187125 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :TADA < 1275187125 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Wait. Find the fixpoint of *that*. Okay. < 1275187139 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Simple enough. < 1275187145 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: but you can easily have a goedel numbering where n+1 always outputs something different to n < 1275187148 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no? < 1275187153 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the numbering doesn't have to be computable does it :) < 1275187162 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Surely the numbering does have to be computable. < 1275187195 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1275187206 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Because otherwise the stuff we've said is true would be false. :P < 1275187213 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well < 1275187217 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: but you can easily have a goedel numbering where n+1 always outputs something different to n < 1275187218 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no? < 1275187220 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :even if it's computable < 1275187223 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Now to figure out where my type error's from. < 1275187226 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i assert this conjecture without proof or knowledge < 1275187228 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm just asserting it < 1275187230 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: lern2haskel < 1275187246 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: It's been a while, okay? < 1275187257 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :alise: well, then, you must be wrong. :P < 1275187262 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err yes the fixed point theorem requires the gdel numbering is computable < 1275187275 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :SHUT UP I DENY YOUR THEOREMA < 1275187292 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :now make a computable algorithm to find the fixed point bitch < 1275187327 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"Couldn't match [BF] -> [BF] against inferred [BF]" Clearly, I am being stupid about something. < 1275187361 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in what code < 1275187381 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: also is it only for N -> N? you sure < 1275187381 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION feels uneducated < 1275187388 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :fix opt'' xs < 1275187392 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: that's a function < 1275187400 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it's trying to match it to a non-function < 1275187403 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :alise: yes, any total computable function from turing machines to turing machines < 1275187411 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well their godel numbers < 1275187415 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: fix :: (a -> a) -> a < 1275187425 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: so opt'' should be ([BF] -> [BF]) -> [BF] -> [BF} < 1275187426 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: so opt'' should be ([BF] -> [BF]) -> [BF] -> [BF] < 1275187427 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1275187431 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: protip: you don't want fix < 1275187432 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :stop using fix < 1275187439 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: just write a fucking recursive function < 1275187442 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Yes, it works without fix < 1275187448 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1275187452 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :http://www.fark.com/cgi/comments.pl?IDLink=5351459 < 1275187457 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :See, I was being stupid. < 1275187462 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :I would not have been able to tell you which president resigned < 1275187463 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1275187464 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: goedel reals <3 < 1275187489 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Mind you, I didn't go and say "I don't think any presidents resigned" < 1275187499 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: nixon :P < 1275187508 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :alise, I know that now < 1275187512 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i didn't know but... i'm not american, and nixon was _basically_ impeached < 1275187523 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :sort of :P < 1275187531 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(in my fantasy land) < 1275187537 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hey nixon's middle name is milhous(e) < 1275187570 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :let h be the computable function, then let f(x) = h(x(x)), now f(f) = h(f(f)), where x(y) means x is curried with y < 1275187610 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i guess i couldn't just googled that without using my half-asleep brain < 1275187619 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :instead of < 1275187651 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you need total-computable gdels so that currying works, i think < 1275187703 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION posts his confession in the thread < 1275187723 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And... WTF is it doing. < 1275187725 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1275187753 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Is it sexing? < 1275187782 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No, it's doing "+[-]+" -> [Add 2] < 1275187797 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Rather than [Set 1] < 1275187810 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: if you want to become intelligent howsabout not reading fark < 1275187817 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: look at the code i suggest. < 1275187826 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`addquot And... WTF is it doing. :( Is it sexing? < 1275187827 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1275187827 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`addquote And... WTF is it doing. :( Is it sexing? < 1275187835 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :168| And... WTF is it doing. :( Is it sexing? < 1275187842 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1275187843 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :8| GKennethR: he should be told that you should always ask someone before killing them. < 1275187857 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1275187858 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :114| I used to have salt licks for my horses. They would make cool abstract sculptures with them. < 1275187862 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1275187863 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :120| Where's the link to the log? THERE'S NO LOG. YOUR REQUEST IS SUSPICIOUS AND HAS BEEN LOGGED. < 1275187880 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1275187881 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :14| So what you're saying is that I shouldn't lick my iPhone but instead I should rub it on my eyes first and then lick my eyeballs? < 1275187884 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1275187885 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :113| if you watch jaws backwards it's a movie about a giant shark that throws up so many people they have to open a beach < 1275187887 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1275187888 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :70| Gregor is often a scandalous imposter. It's all the hats, I tell you. < 1275187890 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1275187892 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :90| hmm, this is hard < 1275187893 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1275187894 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :103| i use dynamic indentation, i indent lines k times, if they are used O(n^k) times during a run of the program < 1275187896 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1275187898 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :56| i'm my dad's unborn sister < 1275187900 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1275187901 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :140| oklopol geez what are you doing here ...i don't know :< i actually ate until now, although i guess i also did other things... < 1275187904 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1275187905 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1275187908 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :WHAT < 1275187909 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1275187912 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1275187914 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :... < 1275187917 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`help < 1275187918 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ < 1275187925 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION see no way for that to happen < 1275187927 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :nobody's changed it... < 1275187931 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :BUT WHO WAS PHONE < 1275187942 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://codu.org/projects/hackbot/fshg/index.cgi/file/4bc215bfa512/bin/quote < 1275187945 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :db lock maybe? < 1275187954 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :selected too many times and got corrupted and/or just lock is stuck? < 1275187958 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`sqlite3 quotes/quote.db < 1275187959 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1275187964 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`run sqlite3 quotes/quote.db 2>&1 < 1275187965 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1275187970 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`run quote 2>&1 < 1275187972 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1275187978 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`echo fucks < 1275187992 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :dasfsdfsdf < 1275187994 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1275188005 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I think HackEgo broke. < 1275188011 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :gregorrr < 1275188267 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"add ecx, -1;add ecx, -1" < 1275188268 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION sobs < 1275188275 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :HOW DID IT DO THAT < 1275188277 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AND WHY < 1275188331 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Would seem to only be doing that in loops. That's actually helpful. < 1275188376 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Or, it would be if THAT MADE ANY SENSE < 1275188537 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(and yes, I *am* recursing into loops) < 1275188687 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION attempts to find a test case < 1275188719 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is so far failing < 1275189001 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lol dynamic indentation < 1275189017 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1275189018 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1275189022 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: just use BFoptimlangijgj < 1275189027 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION punches HackEgo < 1275189027 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: how do you determine where to put empty lines? < 1275189104 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh well umm < 1275189112 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :dunno man < 1275189126 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also that should be theta < 1275189182 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Perhaps the distance between lines should be proportional to the probability of a page fault. < 1275189206 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Near as I can tell, there exists a way for the optimiser to *not* recurse into a loop. < 1275189211 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric : opt' (Loop x : xs) = Loop (opt' x) : xs < 1275189223 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: silly rabbit < 1275189226 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :How, pray tell, is it possible to not recurse? < 1275189228 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :opt' (Loop x : xs) = Loop (opty x) : xs < 1275189236 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :trix are for kids# < 1275189240 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :s/#// < 1275189247 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Fuck fuck fuck fuck fuck fuck fuck fuck fuck fuck fuck fuck fuck fuck fuck, fuck fuck < 1275189255 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Still not recursing! < 1275189264 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :recurse an anus then paste the code < 1275189284 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://sprunge.us/ieEV < 1275189288 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION recurses an anus < 1275189314 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wrong order < 1275189317 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you fail out of operation bitch. < 1275189325 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :opt :: [BF] -> [BF] < 1275189326 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :opt (Loop x : xs) = opt $ xs < 1275189331 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh, i see < 1275189337 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :your program is structured shittily, dude < 1275189338 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :*facepalm* < 1275189354 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :actually i think you should be banned from coding < 1275189357 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :clean this shit up < 1275189369 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Any other suggestions? < 1275189380 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: http://esolangs.org/files/brainfuck/impl/bf2c.hs < 1275189384 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :make it look more like this. < 1275189402 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(which is actually really elegant haskell code) < 1275189407 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(and was state of the art until esotope) < 1275189424 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in fact, just modify the code there to output asm < 1275189430 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it already optimises multiplication and shit, and does for loops < 1275189454 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That's actually a really good idea. < 1275189560 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what, just modifying that or doing those optimisations? < 1275189562 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I presume the former < 1275189580 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Modifying that. < 1275189588 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yar < 1275189610 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it has some weirdness, like it uses hugely negative numbers as tape locations to indicate program doing io and stuff < 1275189615 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but those are way outside the array range anyway < 1275189616 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Whoa, awesome: < 1275189616 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so not a big deal < 1275189621 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'd change the list import to Data.List, though < 1275189631 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: thankfully the backend is very abstracted < 1275189640 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :There's this pillow near me that has sixteen colored circles, arranged in a square. < 1275189640 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Yeah. < 1275189645 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just modify after -- output to -- main < 1275189651 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I just realize that the colors of the circles correspond to the Gaussian integers modulo 5. < 1275189662 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just rewriting the output section. < 1275189669 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :s/realize/realized/ < 1275189700 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :imo bf2c.hs is the nicest BF compiler yet, because it's -- well, not close to esotope, but it does a lot of very important optimisations -- and the code is really, really elegant < 1275189721 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :2002 vintage haskell :) < 1275189779 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://academic.research.microsoft.com/Author/2851361.aspx this guy likes sudoku a lot < 1275189786 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :same bertram felgenhauer, I wonder? probably. < 1275189816 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: also, the license on that code is a little ambiguous < 1275189823 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"GPL", but since it was published 2002 it's GPL2 with nigh-on uncertainty < 1275189834 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i suggest leaving that line as-is < 1275189846 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh, that's not all the changes < 1275189846 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :-- act as a simple filter; read brainfuck code from stdin and < 1275189847 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :-- write C code to stdout. < 1275189855 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :change C code to "assembly" :P < 1275189889 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: By the GPL license, just saying "GPL" means "any version, at your choice". < 1275189900 0 :dbc!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1275189903 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: i don't believe the gpl license has the power to dictate what arbitrary text means when it uses a name < 1275189912 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but, uh, just leave the line there :P < 1275189922 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :no, but convention does < 1275189941 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: It's part of the versioning text... < 1275189946 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :if you can reasonably assume he means any version of the GPL, then it does < 1275189962 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: ok lawyer :P < 1275189966 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :(provided for normal mistake law to apply if not) < 1275189968 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Of each and every such version of the GPL. < 1275189996 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :the actual text of the GPL is irrelevant < 1275190042 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it could say "the term 'pumpernickel' means 'GPL'" and it wouldn't matter; what would matter is if people actually used 'pumpernickel' that way < 1275190055 0 :Tritonio_GR!~Tritonio@77.49.8.198.dsl.dyn.forthnet.gr JOIN :#esoteric < 1275190069 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION notes that the Term outputting code will be slightly annoying to do in assembly < 1275190089 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: that's the price to pay for optimisation~ < 1275190094 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :True. < 1275190119 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: just make it instead "spitOutTermCommandsSoThatTheyAppearInSomeFuckingAwesomeRegisterHellsYeah" < 1275190174 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION shall see about loading into esp < 1275190270 0 :oklopol!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1275190499 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : Reads ASCII data as input. Produces a portable graymap with pixel val‐ < 1275190500 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : ues which are an approximation of the "brightness" of the ASCII charac‐ < 1275190500 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : ters, assuming black-on-white printing. In other words, a capital M is < 1275190500 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : very dark, a period is ver light, and a space is white. Input lines < 1275190500 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : which are fewer than width characters are automatically padded with < 1275190500 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : spaces. < 1275190593 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Another advantage: it'll be possible to compile LostKng without 3G of RAM handy. < 1275191396 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Any luck? < 1275191412 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Laziness prevaileth! < 1275191423 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: no! :( < 1275191425 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I wanted to see it < 1275193565 0 :lament!~lament@S0106002312fa554a.vc.shawcable.net JOIN :#esoteric < 1275194843 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :4:46; bed soon < 1275194848 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: any luck? < 1275194861 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :NEIN < 1275194946 0 :Tritonio_GR1!~Tritonio@178.128.137.232.dsl.dyn.forthnet.gr JOIN :#esoteric < 1275194997 0 :Tritonio_GR!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1275194998 0 :MizardX!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1275195590 0 :coppro!unknown@unknown.invalid QUIT :Remote host closed the connection < 1275195706 0 :sshc_!~sshc@unaffiliated/sshc JOIN :#esoteric < 1275195722 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well, g'night < 1275195723 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: WORK < 1275195726 0 :alise!unknown@unknown.invalid QUIT :Quit: Leaving < 1275195925 0 :sshc!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1275196017 0 :coppro!~coppro@unaffiliated/coppro JOIN :#esoteric < 1275196079 0 :sshc!~sshc@unaffiliated/sshc JOIN :#esoteric < 1275196293 0 :sshc_!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1275196725 0 :sshc_!~sshc@unaffiliated/sshc JOIN :#esoteric < 1275196914 0 :sshc!unknown@unknown.invalid QUIT :Ping timeout: 248 seconds < 1275197187 0 :poiuy_qwert!unknown@unknown.invalid PART #esoteric :? < 1275197314 0 :Tritonio_GR1!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1275199425 0 :lament!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1275199469 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :"There is currently none, but the sources are commented. If you need help, read comments. If you still need help, ask your friends. For more help, visit some discussion forum. If you are completely despaired, create your own forum. If you are ready to commit suicide, well, drop me a mail (ollydbg at t-online de). Set subject to PaperBack, or you will be considered spam and filtered out. Allow 4 to 6 weeks for delivery." < 1275199488 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1275200198 0 :Oranjer!unknown@unknown.invalid PART #esoteric :? < 1275202364 0 :AnMaster!unknown@unknown.invalid QUIT :Quit: ZNC - http://znc.sourceforge.net < 1275202378 0 :AnMaster!~AnMaster@unaffiliated/anmaster JOIN :#esoteric < 1275204650 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Does anyone know what the first number in an X display specification is? (:0.0). I know that the second is the screen and the first somehow specifies the display; is it a port-related thing? < 1275204762 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That number is added to some constant that I don't recall to get the actual TCP port. < 1275204805 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Also, doesn't necessarily go over TCP; xlib on local host will generally do it all via shared memory, for instance. < 1275204832 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :that's not fundamental to the protocol, though < 1275204851 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No, that's just a common optimisation. < 1275204870 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ah, port 6000 < 1275204877 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Strictly speaking, more of an *extension* to the protocol than anything else. < 1275204882 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1275204904 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Which works well because what sort of mad-man doesn't use xlib or xcb? < 1275204924 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(or a library that indirectly uses either one) < 1275204945 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: someone implementing a server < 1275204972 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :coppro: For a client. < 1275204978 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :(like me) < 1275204992 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Someone implementing a server is just moderately mad because there's a *lot* of stuff to X. < 1275205043 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yeah, I'm definitely moderately mad < 1275205064 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I want a server that allows me to run a program on it and forward it to another server, and then disconnect and/or reconnect it as necessary < 1275205077 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :possibly to a different server < 1275205130 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh, so you're reimplementing that xdetach thing that's not been maintained in ages? < 1275205135 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Thank you thank you thank you. < 1275205207 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying < 1275205281 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :XD-tach is the working name < 1275205772 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I'm going to be using Erlang since it feels very right < 1275206140 0 :Gracenotes!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1275206351 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1275206399 0 :clog!unknown@unknown.invalid QUIT :ended < 1275206400 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1275207429 0 :Sgeo_!unknown@unknown.invalid QUIT :Ping timeout: 245 seconds < 1275207772 0 :bsmntbombdood!~gavin@174-29-91-124.hlrn.qwest.net JOIN :#esoteric < 1275208636 0 :Sgeo!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1275210014 0 :coppro!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1275210684 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1275211184 0 :tombom!tombom@wikipedia/Tombomp JOIN :#esoteric < 1275212081 0 :oerjan!unknown@unknown.invalid QUIT :Quit: leaving < 1275213220 0 :lament!~lament@S0106002312fa554a.vc.shawcable.net JOIN :#esoteric < 1275213261 0 :BeholdMyGlory!~behold@d83-183-183-70.cust.tele2.se JOIN :#esoteric < 1275213262 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Changing host < 1275213262 0 :BeholdMyGlory!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1275213506 0 :lament!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1275213542 0 :FireFly!~firefly@unaffiliated/firefly JOIN :#esoteric < 1275213871 0 :oklopol!~oklopol@a91-153-122-35.elisa-laajakaista.fi JOIN :#esoteric < 1275214544 0 :Phantom_Hoover!~phantomho@cpc5-sgyl29-2-0-cust220.sgyl.cable.virginmedia.com JOIN :#esoteric < 1275214831 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :There appears to be a dog in my fireplace. < 1275215164 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Also, Finland's entry for Eurovision was awesome. < 1275215215 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm intrigued by both your messages. < 1275215235 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can you elaborate on both in one sentence < 1275215415 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I heard sounds not dissimilar to a dog coming from my fireplace and the entry made by Finland to Eurovision was awesome. < 1275215440 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Although it still doesn't beat their 2006 entry. < 1275215797 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Wait, the awesome one didn;t get through, < 1275215806 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Damn you, Finland! < 1275215822 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay what was the awesome one? < 1275215830 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Hummpa something. < 1275215858 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hulluna humpasta < 1275215870 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :That is it. < 1275215920 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Oh, you're the Finnish guy < 1275215931 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :For some reason I thought you were Polish... < 1275215936 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I don't know eitther < 1275215952 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well i'm not sure where you're from so < 1275215964 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :us i'd guess < 1275215969 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I am not! < 1275215975 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Rescind that immediately! < 1275215982 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :rescinded! < 1275216015 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I am from the UK. < 1275216054 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well uk us what's the diff :DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD < 1275216066 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is funny < 1275216084 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my internet is being lazy < 1275216207 0 :kar8nga!unknown@unknown.invalid QUIT : < 1275216212 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1275216219 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't think that's elkeliset's best work < 1275216267 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay the ending is awesome < 1275217197 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Although expensive in keyboards. < 1275217203 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1275217330 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1275219501 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Someone say something! < 1275219665 0 :coppro!~coppro@unaffiliated/coppro JOIN :#esoteric < 1275219673 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :coppro! < 1275219740 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover! < 1275219743 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :xd-tach progressed tonight! < 1275219744 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it can now connect to an X server and then drop the connection < 1275219753 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :What is xd-tach? < 1275219779 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :my detachable X server < 1275219805 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :dtach, except for x < 1275219931 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I'll probably implement a third of the protocol myself before dropping it and switching to Xnest < 1275220073 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :(although Xnest doesn't do everything I want it to < 1275221834 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :so guys < 1275221838 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :who won eurovision? < 1275221868 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1275221869 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :lena won < 1275221871 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :<3 < 1275222385 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ACTION still doesn't get how you can have Windows programs that can't be removed in Windows < 1275222461 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :`translate Arbeit sukzessive beantworten m ̈chte, < 1275222461 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric : o < 1275222461 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :soweit m ̈glich: < 1275222461 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric : o < 1275222463 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1275222473 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Damn PDFs. < 1275222542 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :`translate Arbeit sukzessive beantworten mchte, soweit mglich: < 1275222561 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1275222575 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Someone who speaks German? < 1275222741 0 :CakeProphet!~CakeProph@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake JOIN :#esoteric < 1275222746 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Hello. < 1275222768 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...it's been a while. I don't even know if anyone remembers me. :P < 1275222799 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I do not. < 1275222845 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :You probably weren't around a few years ago < 1275222846 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :me either < 1275222860 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :is this some attempt at grassroots politics < 1275222864 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yes. < 1275222866 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :... < 1275222877 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: You're German, right? < 1275222882 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :no. < 1275222885 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :-ahem- no. I was just thinking about a modification to bf, and so I thought now would be a good time to refrequent this channel. < 1275222899 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1275222902 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :you shall stay < 1275222907 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1275222923 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: What is it? < 1275222950 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I was also wondering... has anyone seen a modification of bf to emulate a non-deterministic or probabilistic (or quantum) Turing machine? < 1275223013 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :There is a quantum Brainfuck, yes, < 1275223025 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: well I'm in rough draft stages at the moment... but essentially it's like usable brainfuck with inter-algorithm communication. < 1275223045 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :http://esolangs.org/wiki/Quantum_brainfuck < 1275223091 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :So you make a set of named super-bf programs... and then declare how their inputs and outputs connect, and they all run concurrently. Another important addition is that there's now three, yes /three/, pipelines for both input and output < 1275223109 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :y < 1275223148 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :two are generally equivalent... but are labelled "data" and "control" to signify the semantics they're intended for... and then the third is "system", which communicates with a global environment < 1275223164 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :So it's piped Brainfuck? < 1275223168 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yes. < 1275223169 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :y < 1275223172 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Suggested name: Drainfuck. < 1275223172 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well < 1275223183 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :rofl. I'm going with Cook for the moment... but maybe Alan. < 1275223189 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I feel like tributing someone. < 1275223196 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :why do you have those pipes < 1275223199 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well < 1275223205 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the idea is that you can construct /useful/ programs < 1275223212 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :what use do they have < 1275223221 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :out of a series of running turing machines configured with better IO support. < 1275223245 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :having data and control are so that raw data can be seperated from control protocols cleanly < 1275223254 0 :rodgort!unknown@unknown.invalid QUIT :Ping timeout: 245 seconds < 1275223295 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :define control protocols < 1275223299 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :do you mean messaging < 1275223307 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but yeah, I guess semantically system plugs up to an invisible "system" thread that implements a protocol that I've yet to specify, but would allow individual threads to request system information, kill themselves, kill the process, etc... system stuff. < 1275223312 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yes, messaging < 1275223331 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so you could make libraries out of turing machines... by documenting the protocol they use. < 1275223342 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and connecting them with your programs. < 1275223387 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :also it's not quite like pipes in the sense that you can multiplex... there's nothing forbidding you from having one of your channels being broadcasted to multiple threads < 1275223428 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :or, a less useful case, reading a multiplexed stream being send by multiple threads as your input channel < 1275223434 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :*sent < 1275223465 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so it's kind of like graph instead of a straight line < 1275223468 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :+a < 1275223470 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ffff < 1275223548 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :conceivably you could get like GUI support or something. It would be a good way to define an operating system entirely with abstract bf-like turing machines. Actually I think there was a project trying to do just that a while back; maybe I can borrow some ideas < 1275223663 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I was also considering making the superset of bf I'm using non-deterministic < 1275223666 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :for fun. < 1275223685 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :hey.. will bcrypt always generate hashes starting with $2a$? or will it sometimes generate ones starting with $2$? < 1275223801 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...I could not tell you. < 1275223832 0 :rodgort!~rodgort@li14-39.members.linode.com JOIN :#esoteric < 1275223890 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I've always loved old-school internet protocols like TELNET < 1275223911 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so... this is going to be a lot of fun for me. Drafting up protocols to system resources and such < 1275223961 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :you could learn MPI and just use tht < 1275223962 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :that < 1275223976 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :and then make an erlang-controlled cluster of brainfucks < 1275223984 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1275224021 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...nah, that doesn't sound as fun < 1275224135 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :but it's useful and makes for a slim slim slim chance someone else will actually use your shit. < 1275224141 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :which is cool. < 1275224180 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Once I finish a naive compiler, I might implement a scheduler that manages a bunch of soft threads. I bet you could actually use source code analysis to devise a very optimal scheduler < 1275224186 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :since the source code for bf is so simple. < 1275224330 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and no. I don't really care if it gets used. I just want to see if the inclusion of those three channels, and maybe non-determinism, gives bf more utility. < 1275224397 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :you determine utility through community exposure < 1275224400 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :there is no other way < 1275224422 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :possibly. < 1275224642 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Telnet is barely a protocol < 1275224660 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :this does not negate its awesomeness though. < 1275224674 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it's like a meta-protocol, really. It's a way to make agreements about your protocol. < 1275224712 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Netcat With Bells and Whistles On < 1275224912 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Once I figure out the full specs for this and get a semi-not-embarassing compiler < 1275224967 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I will need to have something to test its utility < 1275225003 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: You can multipex pipes. < 1275225015 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Just use FIFOs. < 1275225034 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well yeah, that's how it'll be implemented probably. < 1275225053 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :lots of FIFOs and arrays. < 1275225112 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and then for the system channel I'll just dump in the runtime code that handles the protocol < 1275225138 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Although you could directly multiplex pipes if you weren't going for portability. < 1275225164 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well < 1275225183 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'd like to avoid using actual processes < 1275225283 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the piping semantics will be implemented by the compiler. A bunch of tape arrays and queue arrays with soft threads. < 1275225313 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think OS threads and processes are too heavyweight to run what easily get up to 20-30 individual turing machines < 1275225324 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :+would < 1275225731 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :now... < 1275225736 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :if you wanted to get ridiculous < 1275225753 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :you could have a channel for each alphabetic character. lowercase is read, uppercase write. :D < 1275225785 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but I think there's a word for that. Unecessary. < 1275225891 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :where's alise < 1275225902 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :and oklopol < 1275226041 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :they're probably off being cooler than us. < 1275226063 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :as if < 1275226070 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :you can't be cooler than i < 1275226079 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :there's only one person i look up to < 1275226081 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :and that's myself < 1275226253 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah i'm being totally awesome < 1275226266 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :been awake for 3.5 hours, done nothing. < 1275226267 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I'm not being awesome at all < 1275226282 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: Evidently you live on a torus. < 1275226377 0 :alise!~alise@91.105.86.86 JOIN :#esoteric < 1275226382 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :alise < 1275226393 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i have invoked you to tell you exactly one thing < 1275226397 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :and it is that lena won eurovision < 1275226405 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :actually I'm pretty awesome. I'm using a command line IRC client right now. < 1275226410 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh, not CakeProphet < 1275226416 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :you can return to your lamp again < 1275226419 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :if it's on command line, it's immediately cooler than any GUI equivalent < 1275226440 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what an idiotic thing to say < 1275226475 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :apparently, i am in a grumpy mood < 1275226484 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :04:48:05 hey.. will bcrypt always generate hashes starting with $2a$? or will it sometimes generate ones starting with $2$? < 1275226488 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...yes, but that's alright. < 1275226488 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i think the paper answers that < 1275226492 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :though i do not recall < 1275226513 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :alise is always in a grumpy mood. < 1275226552 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think my first development project for Cook will be an interactive interpreter. Don't even ask me how, but it will be amazing. < 1275226566 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :alise: bcrypt paper? < 1275226588 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the .ps i linked you < 1275226594 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275226602 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :can't find it now :)) < 1275226625 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :it's ok, i save everything i get from you in a personal spot on the hard drive < 1275226679 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmmm.... actually I think I could make a hash table in what is currently Cook/Alan/Drainfuck. < 1275226695 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :drainfuck is a cool name < 1275226708 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :strainfuck < 1275226712 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :no < 1275226715 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :btw, oklopol < 1275226718 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :lena won eurovision < 1275226722 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Alan sounds the best, to me. < 1275226724 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :IS THAT COOL OR WHAT < 1275226734 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :kind of boring... but more professional, or something. < 1275226743 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :um. < 1275226744 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well, actually Cook sounds less boring < 1275226753 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :you sound boring < 1275226754 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :right now < 1275226757 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric ::< < 1275226760 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::3 < 1275226806 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: that's so cool < 1275226847 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... a hash table would actually be kind of hard to do. < 1275226886 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, i know dude, they should make a dinosaur comic about it < 1275226918 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :you would need a hash algorithm process... which would be the easier part I think < 1275226943 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :boring < 1275226947 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and then you'd need a generic array process... that allows read/write of a 256-index array through a protocol of some kind. < 1275226992 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....unfortunately I'm not a very good BF programmer, so I wouldn't even know how to approach most of this. < 1275227005 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :lots of hacks, I imagine. < 1275227023 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hacks that export clean interfaces. < 1275227111 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :BF modifications are usually not the most elegant of things. < 1275227125 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :separate the core concept into its own language. < 1275227174 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well... the core concept is to have a basic turing machine language that can actually do something useful through a well-organized set of protocols and could IO facilities between them. < 1275227186 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fractran =: (*{~1 i.~[@(=<.)@:*) < 1275227189 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :^ fractran interp in J < 1275227190 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :..... good, not could. :P < 1275227194 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: J is awesome < 1275227194 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I typo in rhyme now. < 1275227224 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Adapting BF has the major advantage of giving you a sizeable body of code to use, though. < 1275227234 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :right < 1275227244 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :. and , will be the data in/out < 1275227246 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :for that purpose < 1275227253 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: haha wow you can even enter input in "fraction" form < 1275227253 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : conwayPrimer =: 17x 78x 19x 23x 29x 77x 95x 77x 1x 11x 13x 15x 15x 55x < 1275227254 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : % 91x 85x 51x 38x 33x 29x 23x 19x 17x 13x 11x 14x 2x 1x NB. example program < 1275227256 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. vertically < 1275227275 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :FRACTRAN is incredibly cool. < 1275227396 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://1.618034.com/blog_data/math/formula.7231.png ;; the only true way to view fractran programs. < 1275227421 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :is that porn < 1275227423 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I want that domain. < 1275227466 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the golden ratio is a nice number < 1275227467 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: no. < 1275227480 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's just the output of a latex.php :P < 1275227487 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :why is that domain cool < 1275227489 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which doesn't rule out porn i guess < 1275227501 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: it's the first digits of the golden ratio < 1275227509 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :o rite < 1275227522 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :as mathematician i don't memorize numbers sorry < 1275227646 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... I just got a pretty good idea for a macro language < 1275227650 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :3.141592653589793238462643383279502884197169399375105820974944 < 1275227658 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION 's cs is showing again < 1275227683 0 :CakeProphet!unknown@unknown.invalid QUIT :Remote host closed the connection < 1275227694 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :you copypasted that < 1275227722 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275227725 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :from my brain < 1275227745 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: he didn't, i'm almost certain < 1275227766 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, i don't remember numbers, but recognising 1.618 is innate if you've ever used the golden ratio... < 1275227771 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :az if < 1275227777 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or would you ask what the significance of "3.14.com" is too? < 1275227781 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i also learned the next 60 or so but i seem to have forgotten them 8| < 1275227782 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: oklopol is not human < 1275227782 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: I remember that exact amount of digits by heart < 1275227785 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275227786 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i probably would < 1275227805 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then you're just a hypercorrecting mathematician trying desperately not to seem like a non-mathematician who uses *NUMBERS!* < 1275227810 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: that's pretty cool < 1275227829 0 :Gracenotes!~person@wikipedia/Gracenotes JOIN :#esoteric < 1275227862 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :given that a human being can only know the significance of a finite amount of numbers, the probability that he will know the significance of a random real number is zero. < 1275227865 0 :CakeProphet!~CakeProph@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake JOIN :#esoteric < 1275227903 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so I was going to give this language macros, complete with parameters and all that < 1275227924 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and I just realized... you could actually make textual substitution operators, and then define some really high-level bf macros < 1275227930 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: depends on the probability measure < 1275227941 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :like an operator that changes a parameters >'s to <'s < 1275227958 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, my measure is probably 9" < 1275227964 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so you can have a memory location getter as a macro parameter < 1275227967 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, what's your measure? < 1275227985 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and then use the replace operator to return the code back to its original position before the macro was invoked < 1275228020 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: do you mean your dick? < 1275228027 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :probabilistically < 1275228042 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :.... < 1275228051 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i consider no measure better than the other, because i'm not a real number enthusiast < 1275228068 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :read: oklopol has a small dick < 1275228078 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alright, here's another thing I was wondering about... ever considered a non-deterministic brainfuck? < 1275228098 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :there's a lot of use for non-deterministic musical sequencers < 1275228119 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :write a non-deterministic brainfuck musical sequencer and you'll be an hero < 1275228123 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :non-deterministic as in being able to specify branch points < 1275228123 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my penis is marginally above average in size < 1275228145 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well length, it's a lot thicker than average i hear < 1275228145 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so you can spawn a whole copy of the current state into multiple divergent branches. < 1275228146 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, average depends on the population < 1275228150 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not really < 1275228152 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :are you in asia? < 1275228163 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, are you saying it's like a soup can? < 1275228169 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275228178 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :there's this old interview with henry rollins < 1275228184 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :#esoteric -- a place for serious discussion < 1275228189 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :with some annoying twit asking him stupid questions < 1275228214 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: what's the j thing for inverting a word < 1275228224 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't remember that either < 1275228226 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm getting old < 1275228227 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :and he says henry fucked some girl somewhere and she said his dick was like a soup can < 1275228246 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :alise: 'j'? < 1275228264 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :en.wikipedia.org/wiki/J_(programming_language) < 1275228275 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :oh J < 1275228276 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1275228305 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :darn, it's . < 1275228309 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so ^. is already taken < 1275228421 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...the > to < idea would actually be pretty cool. You could specify memory locations for a macro to work on. You give it the location relative to your current position, and then it can replace all >'s to < in your macro parameter to refer and return back to its last position < 1275228432 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The power of this formalism comes from viewing numbers as products of prime powers. For example, if the input is 2x 3y, the following list gives output 5xy, essentially multiplying x by y: < 1275228435 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this doesn't seem to work :(( < 1275228809 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :>700 KiB/s on torrents, man, living near the exchange is awesome < 1275228897 0 :Phantom_Hoover!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1275228952 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I wrote a meta-language that compiles down to Fractran. It allows for functions (simple Fractran and sequences of other functions), and a while loop and if statement (for convenience!). The code for that can be found here. < 1275228962 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :^ from the "making of" of the fractran self-interp < 1275229004 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.math.uiuc.edu/~beder/interpreter.frp fractran interp in it < 1275229026 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I don't recommend actually trying to run the Fractran interpreter (alas). I tested many of its components, and, for example, the function IncrementPrimes, which takes a pair of primes and returns the next two primes, takes about 8 minutes to run, using my silly C++ interpreter (no need to post that :). Plus, it goes (at least) quadratically in the number of function calls - doubling the number of function calls makes it take at least four times as long (more < 1275229027 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : if there are while loops or if statements). So I'm guessing that running the interpreter will take at least days, if not years :( < 1275229034 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :can't even run 1+1 :) < 1275229060 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :" < 1275229061 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :@Nick, I figured out the problem - my conversion to Fractran ignored integer overflow (stupid C++). I translated the last step to Python, and re-uploaded the main Fractran code. You'll notice that it's got much bigger numbers! Jesse Beder Nov 22 '09 at 0:23" < 1275229062 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or maybe not < 1275229077 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :heh, there's at least two fractran self-interps < 1275229116 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://stackoverflow.com/questions/1749905/code-golf-fractran/1773868#1773868 < 1275229117 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://stackoverflow.com/questions/1749905/code-golf-fractran/1802570#1802570 < 1275229126 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :why is fractran cool < 1275229146 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :perhaps you should attempt to compile to Haskell for efficiency. -sagenod- < 1275229182 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: always a good idea < 1275229190 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: because fuck you if you don't think it is < 1275229207 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :yes pls < 1275229209 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no. < 1275229211 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ACTION grabs the loob < 1275229220 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :no what? < 1275229225 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :you're the one making promises < 1275229232 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :promises in love you can't hold :-( < 1275229243 0 :pineapple!unknown@unknown.invalid PRIVMSG #esoteric :alise: without wanting to get fucked... what does it let you do? < 1275229254 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.esolangs.org/wiki/Fractran < 1275229260 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Conway made it, it's awesome, nuff said < 1275229271 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :nobody is at any risk of being fucked. < 1275229274 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :too much math for my tastes. < 1275229277 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but it looks neat. < 1275229291 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i wish my browser would run efficiently < 1275229296 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :needs moar threads. < 1275229296 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :but unfortunately it is firefox < 1275229305 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :too much math? Seriously? < 1275229311 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :gtfo < 1275229312 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...well, arithmetic < 1275229317 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :sort of. < 1275229321 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you fail < 1275229321 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :manual calculating of things < 1275229331 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :complete faelure < 1275229332 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: i'm web 2 point izzo so i chromium in your face :| < 1275229338 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm a programmer... I write programs to do that. < 1275229341 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: yeah we don't have computers to run programs any more < 1275229344 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :after the great War < 1275229352 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :between Machines and the People < 1275229355 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :alise: is chromium faster for facebook than firefox is? < 1275229368 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: chromium is faster than * than firefox is < 1275229376 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric := chrome if you're not on loonix < 1275229383 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Chrome is in general faster for everything. Though the linux release is occasionally buggy. < 1275229386 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i am, that's my problem < 1275229390 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :firefox isn't that gay on windows < 1275229407 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :because bartab actually works < 1275229410 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: i'm using the linux release < 1275229410 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :but on linux it doesn't seem to. < 1275229411 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no probs at all < 1275229421 0 :pineapple!unknown@unknown.invalid PRIVMSG #esoteric :alise: ok... so i get the awesomeness, or at least, i get parts of it... but i can't get a feel for program flow < 1275229423 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think it was the beta that was buggy. Imagine that < 1275229430 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pineapple: well it's not easy :P < 1275229432 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's been running fine for me as well... now. < 1275229470 0 :pineapple!unknown@unknown.invalid PRIVMSG #esoteric :alise: i get that feeling about most esolangs :-( < 1275229569 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION will need to practice with bf in order to make bitchin' libraries for whatever-this-language-is-going-to-be-called < 1275229588 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :have you considered anotherderivativefuck < 1275229603 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD < 1275229613 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :nah, no *fucks < 1275229626 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I mean... I wouldn't make it a derivative < 1275229637 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :brainboringderivative has a pun in it too? < 1275229639 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but it's sort of the whole point. Unless I can find another way to make a really simple turing machine. < 1275229658 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i can make a reeeeally simple turing machine < 1275229670 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :consider the turing machine that never does anything < 1275229685 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's pretty simple huh < 1275229688 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :does it halt? < 1275229712 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275229713 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :always < 1275229730 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :can you be sure? :3 < 1275229792 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but yeah... would anyone like to help me figure out how an NP-fuck would work? < 1275229852 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275229857 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :there'd be a bracket structure to specify two or more branch points...and some way to indicate success < 1275229863 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :? puts a random number 0-255 on the tape < 1275229872 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...that's not what I mean by non-deterministic < 1275229873 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :when a ! is encountered the cell must be nonempty < 1275229901 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well obviously i mean the nondeterministic kind of random < 1275229903 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1275229923 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::P but I mean the NP-complete kind of non-deterministic < 1275229953 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's it, although you may want to hone it a bit < 1275229984 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :basically all you need is to be able to say "take any element of this set" "at this point you need to have chosen such elements from sets that property X is true" < 1275230001 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1275230004 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :bartab wasn't on < 1275230012 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :does anyone here use massive amounts of tabs in their browser? < 1275230016 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :like say 300 per window? < 1275230026 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so basically the program will continue running an all paths, and we say it runs in time n if the longest run of all those branches is of length n < 1275230043 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so you would need a way to specify a branch point right? I thought you left that out. < 1275230067 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's ? < 1275230080 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :drop something on the tape that makes sure the next ! doesn't fail < 1275230082 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....255 branches? < 1275230083 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or any ! < 1275230090 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :er... 6 < 1275230094 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well 256, but that doesn't really matter < 1275230095 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275230102 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : when a ! is encountered the cell must be nonempty < 1275230105 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i didn't know cells could be empty < 1275230105 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can do 0/1 but i'd use a binary tape then too < 1275230106 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :>_> < 1275230106 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :that's pretty ridiculous < 1275230118 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : does anyone here use massive amounts of tabs in their browser? < 1275230124 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :about 15-20-30 tabs per window, about 10 windows < 1275230127 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then it grows... < 1275230131 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then my browser freezes and i start again < 1275230132 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't care if it's ridiculous, i just care if it's pure and beautiful < 1275230157 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :could you solve an NP-complete somewhat sanely with that? < 1275230169 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :alise: get bartab for firefox < 1275230179 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: no because it will be NP < 1275230182 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :alise: it swaps out any tab you don't look at for t time < 1275230185 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and P=NP hasn't been solved yet :P < 1275230188 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes, say given an instance of sat you just go over the cells representing the variables < 1275230195 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :alise: and you can make a whitelist too < 1275230198 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and then you run a program that fails if it's not satisfied < 1275230198 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: no i use chromium and I like having so many useless tabs < 1275230204 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: yet. I'm still working on it. :P < 1275230204 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i need window gc though :P < 1275230207 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :alise: it is the most amazing firefox plugin ever conceived by man. < 1275230209 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I want that million dollar prize. < 1275230213 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: well if you don't like mathematics... < 1275230214 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :go over the cells representing variables, and use ? to drop some value for them < 1275230223 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: "good luck" < 1275230229 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i want to solve the riemann hypothesis < 1275230230 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :one day < 1275230231 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: make it a metacity plugin and i'm in < 1275230240 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah i want to solve the fucking goldbach and collatz conjectures with the same proof < 1275230240 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can solve any problem in NP in polynomial time with that < 1275230243 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :alise: no idea wtf's metacity < 1275230246 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and get a unicorn < 1275230251 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: gnome's window manager < 1275230263 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :technically it's emerald i guess since ubuntu enables compiz... < 1275230269 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, ah okay... so ! will terminate branches that don't satisfy the condition.... and you can proceed from there. I like that. < 1275230273 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275230276 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the 256 branches is still pretty ridiculous < 1275230285 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but that's a good thing I guess. < 1275230285 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :althought you don't think of them as branches in math < 1275230292 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*although < 1275230305 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....that's why I'm better at programming than math. :P < 1275230310 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you just think of it as a different kind of computation in which you can guess stuff correctly < 1275230315 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :right < 1275230333 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but anyway for many purposes the branching characterization is best < 1275230339 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I always think of it as branching, as its slightly easier to understand I think. < 1275230372 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ok guise < 1275230381 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i don't have www axs right now < 1275230389 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :what's the magic formula for insert ... on duplicate key update? < 1275230403 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i'm trying to do 'insert into dupkey (id, val) values (1, 'hi') on duplicate key update;' but it doesn't work :( < 1275230407 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :? - picks the number(s) you're looking for < 1275230424 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: the other useful way is to think in terms of witnesses, sometimes, basically that you need to be able to check solutions to some puzzle or something < 1275230432 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :! - kills your program if its wrong. < 1275230446 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :pls help < 1275230450 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :pls help < 1275230466 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can "solve" a problem in NP if given *some* infinite sequence (or bounded if you like) you can use it to solve the problem in P < 1275230478 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: #sql or sth < 1275230492 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :alise, be a darling and look it up plox < 1275230503 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no < 1275230507 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :alise: i just got trolled in #mysql because someone doesn't know the difference between the www and the internet < 1275230517 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :stop using mysql < 1275230525 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :it's not me using it < 1275230528 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :it's someone else using it < 1275230547 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, so... if you had a arbitrary number of non-deterministic brainfuck derivitives with two input instructions and two output structures.... could you sanely implement an interface to a hash table? < 1275230564 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric : i don't have www access this very second... what's that magic formula for insert .. on duplicate key update? cheater99: you're on irc threnody, are you saying i should be trying this in a mysql client and then it'll work? cheater99: you are connected to the internet < 1275230565 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric : yes < 1275230565 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric : the internet is not the www < 1275230565 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric : i hope you realize this now that i pointed it out < 1275230591 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Google banned him from www < 1275230812 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, the interface is simple enough... you'd just have a protocol that had a start and end delimeter for th string key, and the string data would go inbetween. You'd have a lock operator so you could lock the hash tables channel while you input your string... and it would merrily chug out the value from the hash table in the data channel < 1275230910 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the hash table itself, of course, would just be sitting on the a tape somewhere, with a hash function either seperately implemented in a different thread or in the same one if you're a badass bf hacker (which I'm not) < 1275230917 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :jhsdjfhsdfhsdf < 1275230969 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have faith in you < 1275230977 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :rofl < 1275231033 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :my goal is to make it self-interpreting... and then write an IRC bot that could dynamically load in processes into its runtime environment and connect them dynamically. This is incredibly impossible though < 1275231057 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :a simple IRC bot would be feasible, as would some kind of interpreter... but not both, at once, dynamically < 1275231269 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :interpet NP with a P P NP < 1275231474 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :.....a what? < 1275231518 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a yes < 1275231521 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a yse yse yes < 1275231523 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yse yes yse < 1275231532 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :rofl. okay. < 1275231625 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION will specify integers in base 256 and provide a standard library fr manipulating them :) < 1275232041 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Fractran is listed as TC on the wiki; is there any proof? < 1275232050 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh, I think there was an interpreter for some non-Fractran language < 1275232051 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or maybe not < 1275232076 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well... conway's game of life is turing complete < 1275232080 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :therefore.... PROFIT < 1275232086 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can compile minsky machines to fractran pretty easily i think < 1275232092 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric : < 1275232116 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've seen some of the gol gadgets < 1275232127 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :has everyone seen the computer in GoL? < 1275232158 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well i've seen the utm < 1275232171 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i haven't really given it much scrutiny < 1275232215 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :http://www.rendell-attic.org/gol/tm.htm < 1275232218 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :this ridiculousness < 1275232268 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :don't even ask me how it works. < 1275232275 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :lots of glider guns. < 1275232287 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.rendell-attic.org/gol/utm/picture.htm utm < 1275232351 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes probably 99% of that is just wire < 1275232355 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh wow < 1275232363 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :an even better version < 1275232374 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well that's the utm, the first one is just some random turing machine < 1275232402 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hard to tell much from the pics, because i don't recognize the purpose of anything but gliders < 1275232405 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : well... conway's game of life is turing complete < 1275232409 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :proof by conway? < 1275232431 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: the tm is boring, the UTM + universal constructor is more interesting < 1275232441 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :+ the self-replicating-and-destroying computer spaceship (discovered recently; HUGE period) < 1275232449 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :+ lightspeed communication with agars :) < 1275232527 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise, and no... I was referring to the TM implementation < 1275232537 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so? fractran != GoL < 1275232543 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....... < 1275232548 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well, yes. < 1275232552 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think my humor was lost. < 1275232562 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :in logic. < 1275232636 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's okay < 1275232669 0 :Slereah!unknown@unknown.invalid QUIT : < 1275232762 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the people who made this UTM should get a prize or something. < 1275232808 0 :hiato!~fdulu@41-132-16-205.dsl.mweb.co.za JOIN :#esoteric < 1275232842 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :alise < 1275232861 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :What? < 1275232863 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :remember how i said i would write dinosaur comics that they should make a comic about Lena < 1275232870 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no. < 1275232879 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :well, i'm just reminding you of this < 1275232884 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why should i care < 1275232895 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :it will be key in understanding what happens during the rest of your life < 1275232904 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :No. No it will not. < 1275232919 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :denial.. sweet, sweet denial :) < 1275232955 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You're more than a little creepy :) < 1275232970 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1275233038 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :eeeeeveryone is creepy in their own way < 1275233093 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well... < 1275233099 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :this is a pretty unusual crowd. < 1275233114 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :we have far more tabs than the average person open at a given time, apparently. < 1275233129 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have one! < 1275233137 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is only running 9 right now. Had several more when he was learning how to identify and pick mushrooms. < 1275233154 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: yeah but you also have your windows set to entirely white consolas on black < 1275233158 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i used to have like 50 million on average but i guess the internet is less interesting nowadays < 1275233163 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :from the windows theme to every single page in IE < 1275233165 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I have two < 1275233169 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so basically you're not normal :D < 1275233180 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :alise: actually currently i don't because i've switched computers, maybe that's why i'm not using internet much < 1275233184 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :should get the theme back < 1275233184 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :!!! < 1275233191 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: how could you abandon my work < 1275233199 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my computer went boom < 1275233202 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it was like the most awesome windows could possibly get < 1275233203 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION thinks everything has a better UI when it's done in ncurses < 1275233206 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: but you still have the files right??? < 1275233212 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: yes, poor imitations of GUIs >>>> GUIs. < 1275233220 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if you like command-line stuff at least respect what a command-line program is < 1275233229 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :alise: maybe. if i get it unboomed for long enough to get them < 1275233231 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...I don't actually like command line stuff < 1275233233 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. NOT a W.I.M.P. user interface < 1275233238 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :my old client was attached to firefox, which I no longer use < 1275233246 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so I downloaded this thing for convenience < 1275233251 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and so far I like it. < 1275233265 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :let me guess irssi < 1275233275 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :either that or weechat < 1275233280 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :no it's called "pork" actually. < 1275233304 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I searched "irc client" in apt-cache... it was the first one to come up. :) < 1275233314 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Pork. < 1275233315 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I see. < 1275233318 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: just use irssi. < 1275233323 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :is it better? < 1275233336 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's probably the most popular IRC client. < 1275233337 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Apart from mIRC. < 1275233351 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's good. < 1275233363 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Although if you like the ircII style maybe this "pork" thing which I looked up is better. < 1275233368 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You could just use BitchX though < 1275233387 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://upload.wikimedia.org/wikipedia/commons/6/61/Debianwithgnomedesktop.png Hey, pork on BitchX's wiki page. < 1275233387 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :chatzilla was the shit... it should be standalone < 1275233406 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it is < 1275233409 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it apparently has perl scripting or some nonsense < 1275233413 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://chatzilla.rdmsoft.com/xulrunner/ < 1275233422 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I tried it earlier but it segfaulted, decided not to try again. < 1275233430 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I just use XChat. < 1275233437 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(customised to not look like shit) < 1275233440 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :might have something to do with me knowing absolutely nothing about perl < 1275233482 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: my present IRC vehicle: http://imgur.com/herQr.png < 1275233508 0 :adam__!~adam@h10.59.18.98.dynamic.ip.windstream.net JOIN :#esoteric < 1275233513 0 :CakeProphet!unknown@unknown.invalid QUIT :Quit: i <3 pork (http://dev.ojnk.net) < 1275233518 0 :adam__!unknown@unknown.invalid NICK :CakeProphet < 1275233525 0 :CakeProphet!unknown@unknown.invalid QUIT :Changing host < 1275233525 0 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake JOIN :#esoteric < 1275233531 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :bam. < 1275233536 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Y hlod'r? < 1275233539 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Wuts. < 1275233551 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....wtf did you just say? < 1275233579 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :"Why hello there" < 1275233600 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :they're almost exactly the same in interface. < 1275233623 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but /help is not doing anything < 1275233647 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :irssi you mean? < 1275233650 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275233657 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :try alt-1 < 1275233659 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then alt-2 to get back < 1275233663 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(esc 1/esc 2 if that doesn't work) < 1275233690 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...I didn't read the second bit about alt-2 before I did alt-1 < 1275233697 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but I kind of caught the pattern, I guess. < 1275233708 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...not a bad system. < 1275233757 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah it's one channel per window type dealie < 1275233759 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :How do you close a "tab"? < 1275233765 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think /w works, I forget < 1275233770 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Or is it /wc? < 1275233781 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Also, pgup/pgdwn work, and I think alt-pgup/pgdwn work too < 1275233784 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Maybe alt-left/right, I forget < 1275233786 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Or alt-p/n < 1275233834 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alt-left/right work < 1275233985 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :instead of a monolithic system message handler thing < 1275234033 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I might allow C code to wrap some low-level stuff and then have bindings to said code < 1275234114 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :as much as like data-based protocols. < 1275234119 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :for everything. < 1275234344 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :http://www.rickadams.org/adventure/maps/adv_3.gif < 1275234373 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: have you read knuth's literate programming version of ADVENT? < 1275234375 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's quite nice < 1275234396 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :no < 1275234399 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.literateprogramming.com/adventure.pdf < 1275234399 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :got a link? < 1275234405 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :l@@king < 1275234417 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :btw < 1275234427 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :do you know what version the linux 'adventure' is? < 1275234436 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :in bsd-games i think < 1275234444 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :bsd-games package < 1275234450 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :good point < 1275234451 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*question < 1275234480 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1275234530 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :In 1977, Jim Gillogly of the RAND Corporation spent several weeks porting the code from FORTRAN to C under Unix, with the agreement of both Woods and Crowther. It can be found as part of the BSD Operating Systems distributions, or as part of the "bsdgames" package under most Linux distributions, under the command name "adventure". < 1275234532 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: ^ < 1275234534 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so the same one in that pdf < 1275234636 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...how do you scroll in this client? < 1275234645 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh... nvm < 1275234646 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :shift + pgup/dn? < 1275234651 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :just page up/down < 1275234666 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :alise: how do i use evince for pdf? < 1275234670 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is confused about linux < 1275234674 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: double click the pdf < 1275234675 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hey CakeProphet < 1275234692 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :long time no see, i think < 1275234697 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Hey. and yes, indeed. < 1275234705 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :it says < 1275234710 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :'file type pdf is not supported' < 1275234721 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I got an idea for a bf-like language and decided it would be opportune to start visiting this channel again. < 1275234724 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: umm what distro are you using < 1275234789 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://pastie.org/984342.txt?key=9f9cibbfzj1vkxyfj2blsq Some nondeterministic sketches; array selection and superpositions. < 1275234795 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm i note a disturbing relapse to latin-1 in the irc logs lately < 1275234811 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: the server sends no encoding headers < 1275234814 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so it's up to your browser to guess < 1275234820 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: no < 1275234822 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we really need a nice log interface < 1275234824 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ever since ircbrowse died... < 1275234853 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: i mean that people are actually _sending_ latin-1 in many cases < 1275234860 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1275234862 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1275234900 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it's been so long I've forgotten the standard bot command character < 1275234911 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i'm quite used to adjusting my browser whenever it guesses the logs wrong < 1275234915 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :EgoBot is rewritten < 1275234917 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and it uses ! < 1275234922 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :HackEgo is a free-for-all sandboxed shell < 1275234928 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It uses `, with `run foo running a shell command with multiple args. < 1275234933 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fungot is written in Befunge. < 1275234933 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :alise: check this out at the grocery store before it closes. :( making this crypto. just < 1275234934 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :^show < 1275234934 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble < 1275234939 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :^source < 1275234939 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 < 1275234939 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...oh shit < 1275234944 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :what do all these new bots do? < 1275234946 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :alise, ubuntu < 1275234949 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It babbles, interprets Brainfuck and Underload, and does so many other things. < 1275234954 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And it's written in Befunge-98; have a click. < 1275234957 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And that's all our bots. < 1275234964 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: what did you DO? < 1275234967 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and screenshot the error < 1275234972 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!help < 1275234973 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help . < 1275234975 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :mmmm < 1275234981 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!help languages < 1275234981 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh. < 1275234993 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :alise: nothing ;( < 1275234993 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 < 1275234994 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :alise: i guess drscheme has more bizarre limits on the number of legitimate e-mail. < 1275234996 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :we should borrow #haskell's bot < 1275234998 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fungot is by far our most impressive bot < 1275234998 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :alise: what was the name < 1275235000 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it's pretty awesome. < 1275235002 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: we did have lambdabot for a while < 1275235009 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fungot: you even do multiple styles: < 1275235010 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :alise: according to one's intuition of the shapes formed by quenching the metal in cold water. you would not have bothered to help an fnord archive. < 1275235010 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :^style < 1275235010 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube < 1275235014 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :^style alice < 1275235014 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :Selected style: alice (Books by Lewis Carroll) < 1275235016 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fungot: In wonderland. < 1275235017 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: EgoBot does haskell though not as conveniently as lambdabot < 1275235021 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fungot: yo yo talk < 1275235024 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ping fungot plz < 1275235026 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :!echo fungot < 1275235029 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fungot < 1275235029 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :fungot < 1275235029 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: the knight looked surprised at the question. " if i was oo," said arthur, looking at the house, from below, and pulled down by some one on the planet. then of course the house goes faster than its natural rate of falling: but the snark exclaimed " fnord!" < 1275235037 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :^style irc < 1275235037 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams) < 1275235039 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :..oh god < 1275235059 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :If any esolang enthusiast doesn't go into a state of awe upon seeing http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 after seeing what it can do... they have no soul. < 1275235060 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :alise: it means ' fnord' and lots of drugs < 1275235066 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Precisely, fungot. Precisely. < 1275235067 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :alise: it's just so stupid that ' stty erase h' has to be a < 1275235089 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I have no soul < 1275235121 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :We already knew that -- you implemented the engine upon which fungot sits. < 1275235122 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :alise: if not, you're intricately tied to the parser is very simple < 1275235125 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Or is it still cfunge nowadays? < 1275235140 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AFAIK yes < 1275235151 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....I can't read that file at all < 1275235156 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :`ls bin < 1275235158 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Does it look like noise? < 1275235161 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I know very very little about Befunge over than it's 2d < 1275235163 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: that's because it's befunge-98 :P < 1275235174 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1275235175 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::P (don't remember how to do that nonsense with IRC commands) < 1275235178 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1275235179 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Well -98 is the horribly twisted sequel to Befunge with fingerprints (libraries, basically, so there's socket support and much much more), < 1275235180 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :`ls < 1275235185 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: and also far more complex & advanced semantics < 1275235192 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and bignums, the stack is replaced by a stack of multiple stacks, < 1275235199 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and near-infinitely-sized fungespace... < 1275235203 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1275235205 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(well, limited by bit size) < 1275235207 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and so much more. < 1275235209 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :`run ls < 1275235224 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :HackEgo: you're broken < 1275235225 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1275235229 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :something fierce < 1275235229 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1275235232 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i broke it yesterdya < 1275235234 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*yesterday < 1275235236 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :by asking for too many quotes :D < 1275235246 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :`run echo * < 1275235262 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1275235268 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :`help < 1275235269 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ < 1275235273 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok that works < 1275235283 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah it's the shell part that's broken < 1275235285 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :`revert < 1275235286 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :Done. < 1275235293 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :nothing happened < 1275235293 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :`run ls < 1275235297 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also hey don't revert my quote :P < 1275235302 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: oh yeah and HackEgo, when it's working, is our official quote database < 1275235310 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1275235321 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :filled with 90% stuff here, 8% stupid stuff from sine, and 2% stuff that isn't actually quotes at all, or at least not from around here < 1275235331 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: the revert didn't work btw < 1275235336 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1275235342 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's all fucked < 1275235346 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh well < 1275235355 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :3 days HackBot branch merge < 1275235360 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Maybe this update introduced a bug of some sort? < 1275235362 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Assuming it's an update. < 1275235389 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so I'm thinking instead of using a straight-up bf-like syntax < 1275235397 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm going to make what is essentially a usable bf < 1275235404 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :or moderately more usable bf < 1275235411 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :with commands that take parameters and such < 1275235471 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and maybe even integer and character literals if I'm feeling crazy < 1275235489 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: HackEgo also uses to have useful ways to lookup things on the web (google etc.) although some of them are broken too < 1275235513 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :EgoBot is the one with lots of esolangs, including ones we've added ourselves < 1275235521 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I always thought an I'm feeling lucky command would be useful... to link people to things quickly < 1275235529 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah. I remember EgoBot. :) < 1275235546 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!help languages < 1275235547 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh. < 1275235552 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: as alise said, it's been majorly rewritten. < 1275235558 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!help userinterps < 1275235558 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :glass was always one of my favorites. < 1275235559 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :userinterps: Users can add interpreters written in any of the languages in !help languages. See !help addinterp, delinterp, show | !userinterps. List interpreters added with !addinterp. < 1275235574 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!userinterps < 1275235574 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Installed user interpreters: aol austro b1ff bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chef chiqrsx9p choo cockney ctcp dc drawl drome dubya echo eehird ehird fudd funetak google graph gregor hello id jethro kraut num ook pansy pirate plot postmodern postmodern_aoler redneck reverse rot13 sadbf sfedeesh sffedeesh sffffedeesh sffffffffedeesh slashes svedeesh swedish valspeak warez yodawg < 1275235576 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :......interpreter adding? < 1275235590 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :how does that work? < 1275235604 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!haskell print "lol whut?" < 1275235611 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :"lol whut?" < 1275235612 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you add the code for your interpreter in one of the !languages < 1275235621 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(it doesn't recurse alas) < 1275235630 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :no recursion at all? < 1275235636 0 :uorygl!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1275235644 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i mean you cannot add userinterps based on userinterps < 1275235649 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh. < 1275235670 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh okay... so you define an interpreter in another language that it knows? < 1275235676 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :that sounds wonderfully efficient. :P < 1275235681 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it is < 1275235682 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it knows c < 1275235687 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :using gcc < 1275235688 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh... well okay. < 1275235693 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :even asm :P < 1275235696 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :that's pretty sweet then. < 1275235705 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I need to learn my ASM. < 1275235722 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and by learn ASM I really mean memorize an instruction set. < 1275235722 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :a lot of those userinterps are just language garbling... < 1275235730 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks for sgeo's quote file < 1275235733 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(hackego's quotes in a text file) < 1275235734 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!swedish I am the swedish chef. < 1275235735 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :I em zee svedeesh cheff. Bork Bork Bork! < 1275235743 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!userinterps < 1275235743 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Installed user interpreters: aol austro b1ff bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chef chiqrsx9p choo cockney ctcp dc drawl drome dubya echo eehird ehird fudd funetak google graph gregor hello id jethro kraut num ook pansy pirate plot postmodern postmodern_aoler redneck reverse rot13 sadbf sfedeesh sffedeesh sffffedeesh sffffffffedeesh slashes svedeesh swedish valspeak warez yodawg < 1275235746 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!adduserinterps < 1275235750 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, that would be dependent on Normish still existing < 1275235760 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!addinterp < 1275235760 0 :uorygl!~Warrigal@rrcs-70-63-156-144.midsouth.biz.rr.com JOIN :#esoteric < 1275235760 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :There is already an interpreter for ! < 1275235765 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: oh < 1275235815 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I'll see what I can do < 1275235835 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :no piglatin? I am disappoint. :( < 1275235836 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: the source can be a url, so the interpreters don't need to fit in one line. also if you !show them, you need DCC CHAT to get the whole thing < 1275235841 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :isn't there a site which runs a little web page for you in a sandbox or something? < 1275235843 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :with some scripting language < 1275235846 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm sure there is... < 1275235849 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1275235855 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we can use egobot to generate a file with hackego's quotes! < 1275235857 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :now someone do that < 1275235876 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has a free webpage provided by his university. Could host interpreters there. < 1275235888 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i think i theoretically still have that vps < 1275235889 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: i'm not sure, Gregor named those language garblers rather weirdly, not as usual < 1275235889 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1275235900 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ix-nay on the atin-lay < 1275235904 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :The only interpreter I have is one for BF written in Haskell.. which is hardly necessary. < 1275235920 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(it's from some old unix/linux joke package i think) < 1275235933 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1275235933 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :updating poppler workd < 1275235934 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :now i can evince a pdf < 1275235943 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... it would be amazing if it could handle language imports through URL < 1275235955 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so like... I could put the Python interpreter on my web page and load it in. :P < 1275235977 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just write a haskell progam and compile it >_> < 1275235978 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*program < 1275235983 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or use that py2binary thing < 1275235999 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...I'm far too lazy to actual make my own Python interpreter < 1275236006 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I meant the actual one written in C < 1275236018 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :...i never suggested that < 1275236019 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: that might be a bit too large. it does afaik recompile every userinterpreter whenever you use it < 1275236026 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :what is? < 1275236038 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh okay... that's why it's kind of slow it seems. < 1275236057 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(or pass it to the underlying language interpreter, to be precise) < 1275236103 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: you _should_ be able to do that with HackEgo, if it were working < 1275236123 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: oh, you're saying I should compile the python interpreter and then have a script that invokes it. < 1275236128 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no. < 1275236134 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: although that would work. < 1275236144 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: but really, all you need to do is use one of those python to binary bundlers < 1275236146 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that bundles the interp in < 1275236147 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :who will guess what i am having a sandwich with < 1275236152 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: binaries can be cgis too you know < 1275236156 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :OR, just write it in haskell and compile that. < 1275236166 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I didn't know py2exe would just bundle the interpreter standalone. < 1275236200 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :it does < 1275236211 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :it makes an exe < 1275236211 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :py2exe is justwindows only isn't it < 1275236213 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*is windows < 1275236217 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm sure there's a linux equiv < 1275236232 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :you can use wine < 1275236238 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`run sqlite3 quotes/quote.db VACUUM < 1275236245 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: not on shared hosting... < 1275236254 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1275236255 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just upload a linux python binary + invoke it with a shell script cgi if that's the case < 1275236262 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Python's hardly worth the trouble though... unless I expand a { } ; version of the syntax first before I run the interpreter < 1275236272 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :oh :(:(:(:( < 1275236297 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: ? < 1275236299 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :egobot accepts urls < 1275236303 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :!python http://google.com < 1275236306 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well < 1275236307 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no python < 1275236308 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :!c http://google.com < 1275236313 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Does not compile. < 1275236323 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that loaded http://google.com and interpreted it as c source < 1275236326 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: so that I can use {}'s instead of indents on a single line < 1275236332 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why do that? < 1275236336 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh you mean < 1275236339 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :to make a !python command < 1275236339 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ic < 1275236342 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :right. < 1275236343 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :my bot had that once < 1275236344 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it was great < 1275236345 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :worked perfectly < 1275236354 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :; to newline (so it worked for control structures), { and } worked to adjust indent < 1275236357 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so you could say < 1275236364 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :actually what I'd do is expand a special {} syntax... and then plug that in as input to an interactive version of Python < 1275236371 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so you can get state between lines. < 1275236372 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def fact(n): { if n == 0: { return 1 } else: { return n * fact(n-1) } } < 1275236378 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i called it braces or something < 1275236390 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...that was some fast programming. :P < 1275236390 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: i just ran it through the evaluator < 1275236395 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :worked fine < 1275236402 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :since it can handle multiline stuff < 1275236406 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it also handled expressions though < 1275236408 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and printed their output < 1275236410 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :was a very clever evaluator < 1275236415 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: i know factorial off by heart... < 1275236420 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well yeah, me too < 1275236427 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but I can't type braces very quickly. < 1275236438 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i am having a sandwich with quadruple, that's right, QUAD bacon. < 1275236460 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: shift [ ] < 1275236461 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1275236486 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah, I type weird. < 1275236493 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :fast for regular characters, but shifting takes a long time. < 1275236531 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :it's normal?? < 1275236579 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: hmmm, yeah to choose whether or not to print-eval or exec... you could check for python keywords. < 1275236582 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :at the beginning < 1275236587 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: nope < 1275236597 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh? something fancier? < 1275236598 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: i ran it as an expression first, and if it gave a syntax error as a statement iirc < 1275236599 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or something < 1275236603 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :aaah, okay. < 1275236604 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but i checked the syntax error twice < 1275236604 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :that works too < 1275236609 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i don't recall exactly how < 1275236612 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but it was v. clever code < 1275236617 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :did what you wanted all the time < 1275236625 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if there was one thing I'd change I'd make { add a : before it < 1275236627 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :: { looks weird < 1275236633 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1275236637 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def fact(n) { if n == 0 { return 1 } else { return n * fact(n-1) } } would be nicer < 1275236644 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :argh, now I'm obligated to write it again < 1275236646 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :DAMNN YOUUU < 1275236648 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...I wish I still remembered glass. < 1275236651 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: it even handled {} in strings and stuff < 1275236656 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the useless enterprise solution! < 1275236661 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :no the esolang < 1275236665 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass jsdfjsdf < 1275236666 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1275236673 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...don't even remember anything. < 1275236677 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :TO GOOGLE < 1275236693 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :to esolangs.org < 1275236697 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i know what you meant < 1275236722 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :same thing < 1275236727 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :google is the root of the internet tree. < 1275236794 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m"Hello, World!"]} < 1275236838 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh... < 1275236839 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :right < 1275236842 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :a lot of stuff I forgot < 1275236889 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(out)O!"Hello, World!"(output)o.?]} < 1275236896 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(out)O!"Hello, World!"(out)o.?]} < 1275236896 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello, World! < 1275236899 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :bam! < 1275236933 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :obfuscated stack-based OO at its finest < 1275237016 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :stack-based languages are one of my favorite language designs < 1275237114 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :if you wanted to get fancy with the interpreter you could have like a hook-interface so that interpreters could keep track of state and give you a list of its global namespace... if it has such a thing. < 1275237170 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :how does it do input? < 1275237203 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cleverly < 1275237243 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :I class < 1275237244 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(out)O!(math)A!22(math)a.?(out)o.?]} < 1275237252 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(out)O!(math)A!22(math)a.?(out)(on).?]} < 1275237253 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1275237256 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :..... < 1275237258 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :no. < 1275237262 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :http://www.1010wins.com/Desperately-Seeking-Sailor/7355267 < 1275237266 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Why is this news? < 1275237282 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(out)O!(math)A!<2><2>(math)a.?(out)(on).?]} < 1275237282 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :4 < 1275237287 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :local news < 1275237288 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :everything is news < 1275237290 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :there we go. 2+2 is definitely 4 < 1275237301 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: phew < 1275237304 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i was worried there for a minute < 1275237339 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION unstickies his v key < 1275237349 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think a made a piglatin program in Glass once < 1275237351 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I should have kept it. < 1275237354 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :*I < 1275237366 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :the quick brown fox jumps over the brown dog. < 1275237385 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_s)S!(_o)0O!o.<34>(_s)(ns).?"{M[m(_s)S!(_o)0O!o.<34>(_s)(ns).?""14?24?14?24?24?04?24?04?]}"14?24?14?24?24?04?24?04?]} < 1275237386 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :{M[m(_s)S!(_o)0O!o.<34>(_s)(ns).?"{M[m(_s)S!(_o)0O!o.<34>(_s)(ns).?""14?24?14?24?24?04?24?04?]}"14?24?14?24?24?04?24?04?]} < 1275237392 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Should have said "jumped" to see alise's reaction < 1275237402 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....awesome. < 1275237405 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: why? < 1275237416 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: hmmm... let me see if I can decipher < 1275237452 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ah okay... you play with the stack < 1275237455 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :kind of < 1275237495 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....okay, yeah. I can't follow. < 1275237501 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm too sleep deprived, I think. < 1275237510 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has forgotten how he did it, anyhow < 1275237543 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but presumably i put the necessary strings on the stack, + the output function < 1275237570 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah. < 1275237590 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :4? means output the string on top of stack < 1275237595 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the first Quine I figured out was in Python... but Python makes it too easy. < 1275237612 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well... that's not what it means by itsel I don't think. < 1275237614 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well glass wasn't too hard either < 1275237625 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m3?]} < 1275237631 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, but given that the output function is in the right place < 1275237639 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh... its an index. < 1275237669 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I always forget that numbers are enclosed with <> and a number by itself is a stack position < 1275237677 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the stack is <" character> < 1275237684 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :alise, those listings in that pdf are absolutely unintelligible for me. < 1275237692 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: which listings < 1275237693 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which pdf? < 1275237744 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :adventure < 1275237799 0 :Phantom_Hoover!~phantomho@cpc3-sgyl21-0-0-cust116.sgyl.cable.virginmedia.com JOIN :#esoteric < 1275237837 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Briefly sum up what you have been talking about without using the letter 'r'. < 1275237854 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Nonsense as usual < 1275237866 0 :SgeoN1!~AndChat@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1275237878 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoove: the last thing was my glass quine < 1275237880 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :let me see if I can remember how to do the Python quine without google. < 1275237881 0 :poiuy_qwert!~poiuy_qwe@bas5-toronto47-1088893966.dsl.bell.ca JOIN :#esoteric < 1275237886 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: unintelligible how? < 1275237890 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you don't understand them? < 1275237903 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Ah, quines. < 1275237925 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I have been talking about things; mostly of an unusual nature; esolangs indeed. < 1275237929 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :^ no r < 1275237940 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION swats alise -----### < 1275237943 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :natu_r_e < 1275237993 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :>>> print (lambda s: s%s)('print (lambda s: s%%s)(%r))') < 1275237994 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :print (lambda s: s%s)('print (lambda s: s%%s)(%r))')) < 1275238004 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....no < 1275238010 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :The Lisp quine is pretty nice. < 1275238014 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275238019 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :there's one too many parens < 1275238027 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Although it returns a sexp, rather than printing a string < 1275238029 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :!lisp < 1275238039 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :((lambda (x) (list x `(quote ,x))) '(lambda (x) (list x `(quote ,x)))) < 1275238043 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or, more traditionally < 1275238046 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :print (lambda s: s%s)('print (lambda s: s%%s)(%r)") < 1275238049 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or rather < 1275238052 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :without symbols < 1275238067 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :((lambda (x) (list x (list (quote quote) x))) (lambda (x) (list x (list (quote quote) x)))) < 1275238070 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or concisely < 1275238076 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :python's % operator makes it way too easy to do with a continuation < 1275238084 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!haskell main=putStrLn$s++show s where s="main=putStrLn$s++show s where s=" < 1275238085 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :((lambda (x) `(,x ',x)) (lambda (x) `(,x ',x))) < 1275238092 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :main=putStrLn$s++show s where s="main=putStrLn$s++show s where s=" < 1275238111 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders what's the easiest way in python to find the last element of an array that isn't a space... < 1275238112 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... that's pretty simple. < 1275238129 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Negative indices? < 1275238135 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :.... < 1275238141 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :array.strip()[-1] < 1275238145 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :alise: Your second quine fails in SBCL. < 1275238148 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that's strings, CakeProphet < 1275238155 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh right < 1275238161 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: i wrote it for scheme but - how does it fail? < 1275238162 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :alise, yes < 1275238172 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :alise, not only that, but it's just difficult to make sense out of it. < 1275238172 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: it's just C code, albeit 70s era < 1275238174 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: haskell's show is pretty similar to %r < 1275238174 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :string processing in Python is wonderfully simple. < 1275238177 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: howso < 1275238180 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :alise: It gives the thing it prints for compiled lambdas. < 1275238181 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: knuth didn't write the code btw < 1275238183 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just annotated it < 1275238183 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: -nod- I'm familiar with it. < 1275238185 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :alise, it's terribly structured < 1275238186 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: ? < 1275238191 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: typeclasses. :) < 1275238192 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: it's not, actually < 1275238195 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because the adventure game is very linear < 1275238199 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and basically a big linear data structure < 1275238200 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ell < 1275238201 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well < 1275238202 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not linear < 1275238204 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but there is no "nesting" < 1275238205 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Your first quine fails in CL too. < 1275238215 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's not like usual c code, but it's not the wrong way to write it < 1275238217 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :http://www.qwantz.com/index.php?comic=589 < 1275238219 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: well i dunno < 1275238224 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :here's a nonlinear data structure for you < 1275238232 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :((lambda (x) (list x `(quote ,x))) '(lambda (x) (list x `(quote ,x)))) < 1275238232 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :((LAMBDA (X) (LIST X `',X)) '(LAMBDA (X) (LIST X `',X))) < 1275238245 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :And for the other one: < 1275238251 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :((lambda (x) `(,x ',x)) (lambda (x) `(,x ',x))) < 1275238252 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :(# '#) < 1275238267 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :weird. < 1275238271 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1275238274 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: because you can't do < 1275238279 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :((lambda ...) x) in L... wait, yes you can < 1275238281 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that's an exception, i forgot < 1275238283 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no idea then < 1275238302 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!slashes http://oerjan.nvg.org/esoteric/slashes/quine.sss < 1275238318 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :alise: Actually, I think you missed a quote somewhere. < 1275238327 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Oh, yes. < 1275238332 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :((lambda (x) `(,x ',x)) '(lambda (x) `(,x ',x))) < 1275238336 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :There. < 1275238337 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: array.reverse(); array.remove(" "); array[0] < 1275238341 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...it's not the most efficient < 1275238345 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but it's the easiest < 1275238349 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1275238353 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!slashes test < 1275238353 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and it's destructive too, which is terrible. < 1275238353 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :spaces aren't just " "s :P < 1275238353 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :/\/\/\/\\\\/\\\\\\\/\\\\\\\/\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\//\/\/\/\\\/\/\\////\\////\\\///\\////\\\///\\////\\\///\\////\\\///\\\///\\\///\\\///\\////\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\////\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\////\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\////\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\////\\////\\\///\\////\\\/// < 1275238359 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :even ''.join(lst).strip()[-1] is better < 1275238361 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1275238365 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: wut < 1275238368 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :how is that the output of test < 1275238373 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: well... I assumed you meant a list of arbitrary data < 1275238389 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and not strings, which is what you need for join < 1275238389 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: it isn't, EgoBot has a bug where sometimes it gives the output on the following command instead < 1275238406 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :!slashes hello < 1275238406 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(that's not the whole quine btw, it's too long for irc) < 1275238407 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :hello < 1275238441 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :arise: so if the element is any amount of space it should be ignored? < 1275238478 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if x : < 1275238479 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : y < 1275238479 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : else : < 1275238479 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : z < 1275238480 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :darn < 1275238498 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1275238499 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the extra space < 1275238500 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :of course < 1275238502 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i need to skip spaces :3 < 1275238508 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :after { } and ; < 1275238533 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: oh are you working on it right now? < 1275238548 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: slashes (///) is uorygl's language, you may not have been around when i showed it TC < 1275238563 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: it looks vaguely familiar. How does it work semantically? < 1275238567 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: yep < 1275238582 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Substitute on rest of the program. < 1275238592 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :!slashes /foo/bar/foo < 1275238592 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :bar < 1275238594 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :>>> print debrace('if x { y } else { z }') < 1275238594 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if x : < 1275238594 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : y < 1275238594 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :else : < 1275238594 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : z < 1275238595 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :woot < 1275238603 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: if you give me a concise summary of the problem you're trying to solve for my sleep deprived brain... I could help you figure out the best way to do it. Python is my strongest language by far. < 1275238613 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh...well < 1275238614 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :nevermind < 1275238615 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :? < 1275238622 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :>>> print debrace('def fact(n): { if n==0 { return 1 } else { return n * fact(n-1) } }') < 1275238622 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def fact(n): < 1275238623 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : if n==0 : < 1275238623 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : return 1 < 1275238623 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : else : < 1275238623 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : return n * fact(n-1) < 1275238627 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : if c == '{': < 1275238628 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : if ''.join(self.result).rstrip()[-1] != ':': < 1275238628 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : self.result.append(':') < 1275238631 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's just that < 1275238635 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :to make sure that it doesn't add a : if you already did < 1275238636 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*an < 1275238647 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: /// commands substitute, with \ escaping characters. everything else is printed, also with \ escaping < 1275238654 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :are there quines that don't print themselves, but what they print, if run, prints the original quine? < 1275238659 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :or multiple steps like that < 1275238665 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: sure < 1275238673 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :url < 1275238674 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :iterated quines, iirc < 1275238677 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: that works. To be more accurate you might want to use uh..... < 1275238680 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :thanks < 1275238681 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :let me find it < 1275238695 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :import string; string.whitespace < 1275238695 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :>>> print debrace(open('example.bs').read()) < 1275238696 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def fact(n) : < 1275238696 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : if n == 0 : < 1275238696 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : return 1 < 1275238696 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : < 1275238697 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : else : < 1275238699 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : return n * fact(n-1) < 1275238700 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :is all technical white space characters < 1275238701 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : < 1275238703 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : < 1275238705 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :print fact(42) < 1275238707 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :source of example.bs: < 1275238709 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def fact(n) { < 1275238711 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : if n == 0 { < 1275238713 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : return 1 < 1275238715 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : } else { < 1275238717 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : return n * fact(n-1) < 1275238719 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : } < 1275238720 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :What is bs? < 1275238721 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :} < 1275238723 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :print fact(42) < 1275238725 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: ah, like formfeeds and stuff? < 1275238727 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i don't think i'll bother supporting that < 1275238737 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: yeah, tabs, and some other shit I don't... whatever /x0 is < 1275238747 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it'll likely never happen though < 1275238755 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: actually that's a bad idea because it includes \n < 1275238757 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :>>> '\t'.isspace() < 1275238757 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :True < 1275238762 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so does .isspace() < 1275238765 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but that doesn't matter :P < 1275238778 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: iirc the steps don't even need to be all in the same language < 1275238804 0 :SgeoN1!unknown@unknown.invalid PRIVMSG #esoteric :.bs? < 1275238867 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :SgeoN1: BraceS, my code that transforms Python-but-with-braces into Python < 1275238868 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for IRC usage < 1275238876 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: and yeah, isspace() is lambda self: return (self in string.whitespace) < 1275238877 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :My god, it almost supports GNU style < 1275238879 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def fact2(n) < 1275238879 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :{ < 1275238880 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : if n == 0 < 1275238880 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : { < 1275238880 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : return 1 < 1275238880 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : } < 1275238882 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : else < 1275238884 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : { < 1275238886 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : return n * fact(n-1) < 1275238888 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : } < 1275238890 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :} < 1275238895 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I just have to make : add to the previous line instead of the current one < 1275238896 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and it'll work < 1275238907 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: does it add the colon if the brace is trailing like that? < 1275238913 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh... yeah < 1275238915 0 :sebbu2!~sebbu@ADijon-152-1-19-222.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1275238926 0 :SgeoN1!unknown@unknown.invalid PRIVMSG #esoteric :Gnu style? < 1275238936 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :SgeoN1: worst indentation style in the world < 1275238937 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def fact2(n) < 1275238937 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :: < 1275238937 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : if n == 0 < 1275238937 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : : < 1275238937 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : return 1 < 1275238938 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : < 1275238941 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : else < 1275238943 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : : < 1275238945 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : return n * fact(n-1) < 1275238946 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: that might significantly complicate your algorithm since you likely use a vanilla for loop. < 1275238947 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So close < 1275238972 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :what I would do is < 1275238987 0 :SgeoN1!unknown@unknown.invalid PRIVMSG #esoteric :Each brace on its own line? < 1275239002 0 :SgeoN1!unknown@unknown.invalid PRIVMSG #esoteric :I do that>.> < 1275239009 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :def keepLast(string): oldLine = ""; for line in string: yield oldLine, line; oldLine = line; < 1275239023 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and then in your current code < 1275239040 0 :sebbu!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1275239041 0 :sebbu2!unknown@unknown.invalid NICK :sebbu < 1275239042 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :for oldLine, line in keepLast(whatever): < 1275239054 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and that'll give you the last line in your loop. < 1275239056 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: actually it seems to be iterat*ing* quine < 1275239073 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: i don't use a vanilla for loop < 1275239083 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: oh... well nevermind. Generators are cool. :P < 1275239093 0 :SgeoN1!unknown@unknown.invalid PRIVMSG #esoteric :Blame Linden Labs < 1275239101 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Not a generator. < 1275239103 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the coroutine style generator in Python is probably my favorite thing ever. < 1275239104 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It should be though < 1275239112 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: and every brace 2-indented < 1275239115 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :with the body 2-indented < 1275239115 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so < 1275239116 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1275239117 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : { < 1275239118 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : bar < 1275239119 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : } < 1275239150 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I made a pretty sweet menu interface once for a online text-based game using coroutines < 1275239153 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: http://www.nyx.net/~gthompso/self_iter.txt has some with more than one language as well < 1275239163 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :you would use yield to prompt the user and then the yield would evaluate to their next input. < 1275239176 0 :SgeoN1!unknown@unknown.invalid PRIVMSG #esoteric :I don't do that < 1275239177 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, cooooool < 1275239186 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and you'd throw StopIteration when your menu exits... and it would pop off the menu stak < 1275239188 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :*stack < 1275239294 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: once you finish that. We should get a regular interpreter hosted and then use that to run your program as an interpreter. < 1275239389 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: D&D :D < 1275239408 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh he's not really on < 1275239458 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: I don't know if I still have it in a working state, but I had a Python program that essentially printed 2+2, but the source code was obfuscated to span several screens while still just being a single logical line of code. :D < 1275239462 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm quite proud of it. < 1275239480 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :though I think I fucked it up somehow and it doesn't run correctly anymore. < 1275239531 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :What obfuscation techniques did you use? < 1275239564 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :uh.... let's see < 1275239569 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ambition, distraction, uglification and derision < 1275239573 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I used a lot of fancy Python internal stuff instead of their normal names < 1275239611 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and then I convert strings into arrays of ints... and then take those ints and split them up with arithmetic < 1275239643 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Silly idea: I could have this thing support new syntactical structures < 1275239646 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like if you define foo as a structure < 1275239647 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then < 1275239647 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I found it, and it works, but now it assigns x = "Hello, World!" < 1275239649 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :foo bar { baz } < 1275239653 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: do it. < 1275239655 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :calls a function at compile time, foo < 1275239658 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :with bar and baz as strings < 1275239663 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Python is way too conservative with its syntax, in my opinion < 1275239665 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so you could do, e.g. < 1275239671 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :@define foo foo_handler < 1275239674 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1275239678 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :@define unless unless_handler < 1275239692 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def unless_handler(cond, body): return build_if('!('+cond+')', body) < 1275239693 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :python believes in language family values < 1275239703 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah I know < 1275239716 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: that would be fun to play with < 1275239740 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: could you have it accessible via the interpreter environment so that we could define new structures on Egobot? < 1275239743 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :*Everything* is too conservative in its syntax. Unless it lets you rewrite the entire syntax. < 1275239756 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :http://pastebin.com/sdNGZPug < 1275239760 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :that's the obfuscated Python < 1275239771 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it's equivalent to x = "Hello, World!" < 1275239789 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: sure < 1275239791 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: there _is_ such a thing as balancing conflicting requirements, you know < 1275239813 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ooh, we could even have little function macros < 1275239828 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :@macro incr(x) x = x + 1 < 1275239867 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :>>> print debrace('abc {}') < 1275239867 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a:bc < 1275239869 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Tha's no ri' < 1275239916 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you don't say < 1275239919 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: you can give eval and exec a local and global scope to operate in... I'd make a custom dictionary object that kept a "stable" version of each scope. On writes to the dictionary it would update the "unstable" scope... so later you could clear the unstable state only and still have the rest of your program intact < 1275239940 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: since your namespace will get overpopulated overtime. < 1275239946 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and you might want to run a cleanup occasionally. < 1275239965 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...I'd do if you don't feel like it. :) < 1275240020 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the custom dictionary object would be if you wanted IRC programs to be able to access your interpreter internals... such as the macro thing. < 1275240058 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...assuming EgoBot can even let you keep track of state over consecutive commands. < 1275240101 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :It can if you use files, IIRC. < 1275240107 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :!sh pwd < 1275240107 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :/home/egobot/egobot.hg/multibot_cmds < 1275240111 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh okay... so persistent storage. < 1275240113 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Yep. < 1275240123 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :that's not as fun. :P < 1275240132 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and a bit more complicated to implement I think. < 1275240170 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :you'd basically just keep a pickled dictionary < 1275240179 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :for your "unstable" scope < 1275240203 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so not too complicated. < 1275240215 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I suppose you could do something mad like have a background process. < 1275240224 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :And then communicate with that. < 1275240226 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :that would be highly mad. < 1275240238 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think pickling would be easier to code, if less efficient. < 1275240247 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Hence esoteric! < 1275240249 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but it's Python... Python doesn't give a fuck about efficiency < 1275240288 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :So make it do so! < 1275240321 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1275240331 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm assuming EgoBot is running in a sandbox right? It would be mad to not chroot it or something equivalent. < 1275240341 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275240356 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :!sh ls / < 1275240356 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :bin < 1275240366 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :chroot = best security feature ever. < 1275240397 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :But how do we tell? < 1275240403 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :though it would be nice if you could somehow get a safe-to-play in version of root. < 1275240447 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....wait, how does "ls" work? sh can still access /usr/bin I guess? < 1275240458 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wow, so here is a fun challenge in python: Write a function that, given an array of strings, will give (i,j,c) such that IF ARY IS EMPTY: it appends '' to ary returns (0,0,''); IF ARY HAS NO NON-SPACES: it returns (-1, -1, ''); OTHERWISE, it returns (i,j,c) such that ary[i][j] == c, not c.isspace() and there are no non-spaces after c in the array. < 1275240467 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Also, some efficiency is nice. < 1275240470 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Fun fact: This is a bitch. < 1275240474 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: it's not just chroot < 1275240475 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's plash < 1275240477 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :chroot is not nearly secure enough < 1275240488 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: It sends it through DCC if there's much input. < 1275240492 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alist: can I have a looksee? < 1275240499 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :s/in/out/ < 1275240514 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: me? < 1275240516 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: just write it! :P < 1275240532 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: I'll contribute some code, happily. :) < 1275240541 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yay hoorj < 1275240544 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(pronounced hooray) < 1275240545 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :rofl. < 1275240565 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I always know something is wrong with my design in Python if I have to resort to lots of tuples in my string parsing. < 1275240573 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but this might be the best way to do it in this case... dunno. < 1275240582 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!sh ls / | fmt -w400 < 1275240582 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :bin dev etc home lib lib64 proc tmp usr < 1275240605 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: no, you should just need to iterate through indices in reverse, i think < 1275240640 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: I don't know what these tuples are supposed to represent exactly. < 1275240661 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: last non-space char, with some helpful stuff for my parser < 1275240689 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: EgoBot doesn't allow you to preserve files across commands. HackEgo does (but is currently broken). < 1275240690 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ah okay. < 1275240707 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ah... so I guess a background process would be the way to go. < 1275240750 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: basically this function is to see if the last char is a space right? < 1275240754 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :er... colon I mean < 1275240755 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: no < 1275240759 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ok here's what it's for < 1275240772 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we use it to find the last non-space character. if it's not a colon, then we insert a colon /right after it/ < 1275240774 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this is why we need the position < 1275240775 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :!sh cat hello > fred < 1275240775 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :/tmp/input.8691: line 1: fred: Permission denied < 1275240777 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :to insert a colon right after it < 1275240779 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so that foo\n{ works < 1275240780 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :!ls < 1275240782 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you can't just insert a : < 1275240783 0 :MigoMipo!~John@84-217-15-172.tn.glocalnet.net JOIN :#esoteric < 1275240785 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because it becomes foo\n: < 1275240788 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but if you know where o is < 1275240790 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :!sh ls < 1275240791 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then you can add : after < 1275240791 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :interps < 1275240792 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so it's foo:\n < 1275240795 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: get it? < 1275240795 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: ah. < 1275240830 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :indeed. It's a backtrack function to add a colon to a previous line, right? < 1275240836 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the appending '' is just so that our assignment works even if it's [] < 1275240840 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :although that's never valid who cares < 1275240845 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: pretty much, except this one doesn't mutate < 1275240848 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just gives the relevant coords < 1275240850 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you could change that < 1275240852 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :actually probably a good idea < 1275240856 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!sh echo * < 1275240856 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :interps lib slox < 1275240857 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...yeah I would. < 1275240862 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'ma try rewriting it as mutation, you can have a go too, yours will probably be better < 1275240867 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I generally take advantage of mutability in Python. < 1275240879 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah, use your lang's "strengths" and all < 1275240880 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: just pass the line in < 1275240882 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I guess < 1275240885 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not that python has many... thanks for that guido :P < 1275240889 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: it's in a class so < 1275240900 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ah. < 1275240908 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :can I see source once you get it stable? < 1275240911 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1275240921 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i really need to get around to writing Endeavour/botte/rice sometime < 1275240927 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(the three tentative names for my uber-bot) < 1275240931 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...ah < 1275240937 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :bots are awesome. < 1275240938 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it would include this :-) < 1275240953 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :endeavour would have a complete irc framework thingy, plus really extensible plugins that can access a generic datastore < 1275240956 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :sweet. You should let it keep an active process for each interpreter. < 1275240958 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :tons and tons of sandboxed interpreters < 1275240964 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like egobot, hackego and lambdabot in one < 1275240968 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :lots of development time too, I assume. ;) < 1275240968 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: yes < 1275240974 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also terminatable "commands" < 1275240977 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like the !ps of old egobot < 1275240979 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :!ps < 1275240982 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :is it still there? < 1275240983 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :guess not < 1275240987 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: yeah it's vaporware < 1275240993 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :still don't like any language yet :D < 1275241009 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :if you had a repos of some kind I wouldn't mind working on it in my free time. I miss doing stuff on #esoteric < 1275241024 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I assume it's a semi-distant-future thing though < 1275241043 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Probably I should get my life sorted out first. < 1275241049 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Semi-distant, yes, but I'd like to have it /some/ day at least < 1275241053 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :-nod- < 1275241061 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and a lot of the interpreters would have user-specific data storage places < 1275241065 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that other people can access but not mutate < 1275241072 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....oh my. < 1275241074 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and the whole thing would also serve as a logbot and a quotebot... < 1275241078 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :sweet. < 1275241082 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :with presumably some sort of web server attached to it to serve those < 1275241091 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION would buy the OLPC tablet < 1275241097 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :basically were it written the website + it on irc would be all you ever need to do anything even vaguely related to esoterica :P < 1275241105 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: I would download copies of source from URL instead of constantly web-accessing them. < 1275241117 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: yes, ofc < 1275241125 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: I don't know if you keeps notes or anything. Whenever I work on something big I keep tons of notes. < 1275241156 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's always all in my head. < 1275241164 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I can't seem to articulate a complete vision of anything. < 1275241171 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm... it'd be nice if I could add variable declarations to Python < 1275241173 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :as far as language I'd do Python simply because it's a task that doesn't require too much efficiency.. and Python is fast to develop in if you're good at catching bugs before they happen. < 1275241174 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the "global" mess is so stupid < 1275241185 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh, like a type system? < 1275241192 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no < 1275241193 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just < 1275241197 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you have to do "var x = y" before using it < 1275241203 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ah. < 1275241204 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :without it, closures don't work (which is why python is shit) < 1275241211 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :scope safety, or whatever < 1275241215 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :at compile-time < 1275241219 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :something like that. < 1275241236 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I thought closures work in Python? < 1275241278 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def hahahaha(): { x = 0; def inner(): { x = x + 1; return x }; return inner } < 1275241279 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :^ doesn't work < 1275241284 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because x is a local variable in inner < 1275241288 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so we just get an "undefined variable x" error < 1275241290 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Hey, it's CakeProphet! < 1275241291 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Hello. < 1275241292 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :THIS works however: < 1275241298 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: oh yeah. They added that in Python 3 actually < 1275241302 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :nonlocal declaration < 1275241304 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def ihateyou(): { x = [0]; def inner(): { x[0] = x[0] + 1; return x }; return inner } < 1275241314 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :!python print "hello" < 1275241315 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: yeah but "nonlocal" is so silly, just make people use "var" or "def" first thing :P < 1275241319 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: nope. < 1275241321 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah, I agree. < 1275241351 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: though I guess it could interfere with some dynamicism... but not really. If you just made it a compile-time thing and then scratched it at runtime... all the runtime binding features would still work fine. < 1275241364 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :globals()["newVar"] = 2 < 1275241365 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and all that < 1275241371 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION winces and opens IE < 1275241373 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Blargh, I've forgotten how to swap () and [] in Slime. < 1275241454 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: Have you heard of Go? < 1275241487 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it has similar quickness-of-programming to Python, but has type safety < 1275241488 0 :ws!wswieb@akson.sgh.waw.pl JOIN :#esoteric < 1275241498 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Yes! < 1275241503 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the syntax is a little weird though... and it's still in rough stages of development. < 1275241504 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :By Ken Thompson and Russ Cox, my heroes. < 1275241509 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I don't mind the syntax. < 1275241517 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah... I mean... you're in #esoteric < 1275241519 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :of course you don't. < 1275241525 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's... just python with braces < 1275241526 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :What's so weird < 1275241544 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the type declarations are kind of weird < 1275241552 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Eh, name type is older than type name. < 1275241558 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :semantically it's fairly different from Python too. More like a mix of the good parts of Java and Erlang < 1275241559 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Besides, you know, Ken Thompson? < 1275241560 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :C? < 1275241570 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sure, he didn't make C. < 1275241579 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :You *hate* C! < 1275241580 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But he worked right next to the guy who made C on the same operating system that it was designed for. < 1275241588 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So, it's basically them reversing their own decision. < 1275241590 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Well, yes. < 1275241590 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I actually like C a lot. < 1275241594 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: But in the 70s C was nice. < 1275241594 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :... < 1275241597 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Memory management didn't matter then. < 1275241611 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Also, hey, Thompson and Pike invented UTF-8 in one day. < 1275241612 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So nyah. < 1275241613 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :C++ is a clusterfuck, however. Syntactically. < 1275241614 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Yes it did. That's why they did it by hand. < 1275241622 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: No... on UNIX, you just did < 1275241624 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :char foo[80]; < 1275241626 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :gets(foo); < 1275241630 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :UTF-8 seems like an easy thing to invent in one day. < 1275241636 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but I should state my ignorance of C++ in general. I know C far better. < 1275241638 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"But what if someone types more than 80 characters?" "The system would crash. But why would you do that?" < 1275241652 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: not when you consider the previous encoding clusterfucks < 1275241655 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Ah, I like that attitude. < 1275241656 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :simplicity isn't easy < 1275241673 0 :hiato!unknown@unknown.invalid QUIT :Quit: underflow < 1275241674 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: yeah. c is nice when you get your design correct... but you also have to rely on everyone else getting their design correct. < 1275241683 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And nobody being malicious... < 1275241683 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :"Hey, how should we represent a variable-length character?" "I dunno, maybe we should use the first byte to encode the length and some data, and further bytes to encode the rest of the data." < 1275241690 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: hmm, darn, my solution to insert_colon mutated a list i was iterating over < 1275241696 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pretty sure that's verboten even if you stop right after, yeah? < 1275241708 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: it wasn't seen as variable length then though < 1275241713 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it was seen as a 16-bit character set < 1275241722 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1275241735 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise, oh, did you ever get satisfied with your Python code so that I can look at it? < 1275241756 0 :sebbu2!~sebbu@ADijon-152-1-46-148.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1275241757 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :has anyone heard of io? < 1275241772 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: I was probably called something else when you left. Like Warrigal or kerlo or ihope or something. < 1275241791 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it's pretty nifty though. Suffers from poor support. But the language design is neat. < 1275241794 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: almost there < 1275241796 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I've used Io < 1275241798 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: ihope < 1275241807 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods. < 1275241823 0 :sebbu!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1275241823 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's been... how many years? < 1275241823 0 :sebbu2!unknown@unknown.invalid NICK :sebbu < 1275241827 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I was still in high school at the time. < 1275241836 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: I don't remember what that one thing was, but you probably do, so tell me about it. < 1275241839 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1275241845 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :maybe 3, possibly 4 to 5 at the most. < 1275241859 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: ....what one thing? < 1275241861 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :>>> debrace('if\n{abc}') < 1275241861 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :'if:\n\n abc\n' < 1275241862 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so close < 1275241873 0 :hiato!~nine@41-132-16-205.dsl.mweb.co.za JOIN :#esoteric < 1275241873 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: darn, you don't remember after all. < 1275241888 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: it might be better to check for keywords on lines and end with a colon if it doesn't < 1275241891 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: oh, maybe I was planning to create an operating system and you were planning to help, or something. < 1275241893 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and then use {}'s to only do tabbing < 1275241895 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: NO < 1275241901 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: ...it's easier than you would think < 1275241902 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: custom structures remember :D < 1275241929 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: Just keep a list of them. Simple enough. < 1275241938 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: check the keyword list and the custom structures list < 1275241953 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: no this is much cooler :| < 1275241958 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: also check out import keyword; keyword.kwlist < 1275241965 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :DIE IN A FIRE :| < 1275241966 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :keyword checking made easy. < 1275241979 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :though it doesn't give you the indent-only keywords < 1275241985 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :stuff like and, as, break, class, etc are in there < 1275241993 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so you'd just have to sort it out. < 1275242006 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh... and look < 1275242009 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :keyword.iskeyword() < 1275242019 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :though, since you're not checking /every/ keyword... you wouldn't use that. < 1275242027 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :>>> debrace('if\n{abc}') < 1275242028 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :'if:\n\n abc\n' < 1275242028 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : ;; problem here is, the newline done by the \n is when it was thinking it was totally 0 indenting < 1275242033 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wait! < 1275242038 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I can just right-strip the text < 1275242039 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and add the : < 1275242040 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :duh! < 1275242048 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :though that'd be inefficient... < 1275242051 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :strip() is your friend < 1275242058 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not on a list of strings < 1275242060 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, *rstrip < 1275242067 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: not as much as you'd think. strip() is written in C. In Python world that's fast. < 1275242081 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i have to join it < 1275242082 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :aha, .isspace() works on multiple strings < 1275242086 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this will be easy < 1275242097 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: pretty much all the string functions are C. multiple for loops in Python are still lightspeed in Python. < 1275242106 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :*c for loops < 1275242107 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :that is < 1275242116 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :shaddap < 1275242117 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1275242122 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::D Just helpin' < 1275242140 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Python in general runs about 100x slower than C < 1275242148 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I don't even think that's exaggerating < 1275242176 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so when you can, avoid custom loops over C-based built-ins < 1275242185 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :because multiple calls to those will be much faster than your hard-coded loops < 1275242227 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :thinking about efficiency in Python is completely different from thinking about efficiency in languages like C. < 1275242267 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :If you're worried about efficiency just write it in something else. < 1275242272 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh... and avoid string concatenation. If you're doing a lot of inserts and appends stick to lists. mutable = no re-allocation < 1275242280 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: rofl. yeah, pretty much. < 1275242292 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :concatenation = what i need to do to strip < 1275242293 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so thar < 1275242315 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... I suppose. < 1275242316 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :How does Python actually implement arrays? < 1275242330 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :WOOT IT WORKS < 1275242334 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1275242337 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Python "lists" are C arrays that automatically resize in a semi-heuristic "smart" way. < 1275242338 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm so happy i could fuck a goat < 1275242340 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION fucks a goat < 1275242344 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :...anyway < 1275242349 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Ahh. < 1275242358 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :all i need to do is stop it mutating >_> < 1275242362 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :while it's iterating over a list < 1275242366 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because dat ist verboten < 1275242383 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :*das < 1275242393 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: though there's an array module that lets you use C, typed, fixed sized arrays. It's for extreme cases where you want C array efficiency but don't want to write it in C < 1275242427 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Hence concatenation is a nightmare. < 1275242430 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: would making a copy of the list break the semantics? If you make a copy you're mutating a different list. < 1275242449 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :done <3 < 1275242455 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: I've got it working perfectly < 1275242461 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :mutating yet safe, and quite elegant code too! < 1275242469 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :good. :) < 1275242477 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lodgeit is the best paster site for python right? < 1275242483 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...no clue. < 1275242485 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :meh :P < 1275242487 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I just pastebin.com < 1275242495 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :there was a good one, but I think it's down now. < 1275242497 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'll use the vjn.fi pastebin, for old times < 1275242497 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it was perfect. < 1275242503 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I could use sprunge, but eh < 1275242517 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: http://www.vjn.fi/pb/p3542786123.txt < 1275242525 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The code isn't ugly, but it's a bit long for my tastes. < 1275242529 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :A quick scan of the #python title suggests http://paste.pocoo.org/ < 1275242533 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think using generators and other whizz-bang features could make it nicer, but this is acceptable. < 1275242536 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pocoo is the lodgeit one iirc < 1275242544 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: what was the perfect one called? < 1275242546 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: can I see? :D :D :D < 1275242554 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p3542786123.txt < 1275242554 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: ...I can't even remember now. It's been so long. < 1275242556 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i pasted it already :P < 1275242561 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ah. missed it. < 1275242569 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wait, I want to make one change < 1275242571 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :DON'T LOOK :P < 1275242587 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: haha. Okay. (That happens to me too. I hate it) < 1275242594 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: http://www.vjn.fi/pb/p9416389493.txt < 1275242599 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah there's all those tiny little things that you just suddenly notice < 1275242603 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :after exiting the main-problem-zone < 1275242619 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ah... a state-machine style class. < 1275242631 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Example input: http://www.vjn.fi/pb/p4361828264.txt < 1275242658 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Things I'd like: Some way to fool the Python interpreter, when it evaluates it, into matching up source lines with their results, so that e.g. braced oneliners work properly. (This is impossible.) < 1275242661 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: do you have any kind of command-line support.. or is it just called in a larger package? < 1275242666 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And, uh, what's the other thing... < 1275242672 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: this is all i've written so far < 1275242677 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :debracer(some_string) works fine on the console to test it < 1275242700 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: I'm not sure what you mean by matching up source lines. < 1275242726 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like instead of < 1275242731 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :LOL YOU FUCKED UP AT LINE 72 < 1275242734 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :when your file is a one-liner using braces < 1275242738 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it'd say LOL YOU FUCKED UP AT LINE 1 < 1275242743 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :YOU FUCKING FAILURE, YOU MESSED UP A ONELINER < 1275242747 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :'specially the insults would be good. < 1275242752 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: If you want to make it a command-line tool just define a main function and then at the bottom of the source file do if __name__ == "__main__": main() < 1275242769 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: why would it say line 72? < 1275242776 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: I want to add more to it before making it a tool < 1275242780 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: because < 1275242784 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if abc { def { sadposdf } } < 1275242784 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :-nod- alright. < 1275242785 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :turns into < 1275242785 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if abc < 1275242786 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : def < 1275242788 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : sadposdf < 1275242789 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1275242797 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so imagine a huge oneliner in that < 1275242800 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the translated python would be run < 1275242802 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :python spots an error < 1275242806 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :complains about the line in the translated code < 1275242808 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and column < 1275242809 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but yeah the __name__ == "__main__" is one of those weird Python idioms that they seem to have ignored in their quest to make clean code. < 1275242817 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so this basically makes line/column error messages useless if you actually utilise the braces stuff < 1275242833 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if sys.is_main(): < 1275242837 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: aaaaah, I see. You want it to automatically put a one-line block on the same line as the statement. < 1275242845 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh... no < 1275242851 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: you know C's #line? < 1275242852 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :you just want it to correspond to your source file. Gotcha now. < 1275242853 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well imagine this < 1275242854 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :right < 1275242855 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you gotit < 1275242856 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*got it < 1275242878 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: I think that's possible actually. < 1275242881 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'll think about it. < 1275242886 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I don't think Python has a #line < 1275242890 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it may have some wacky assignment to do it though < 1275242890 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well... no not a line < 1275242896 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and then what about column < 1275242897 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it'd have to be offset < 1275242899 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but you could give your tool an error output that would be useful. < 1275242909 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if it does do all this then this is veering away from joke preprocessor into compile territory < 1275242915 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: it's python that'd make the error < 1275242918 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i guess i could maintain a reverse map < 1275242923 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :line in python -> line and col in braces < 1275242925 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...oh, gotcha < 1275242934 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well... < 1275242935 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm < 1275242945 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think I remember seeing something similar to the problem you're describing < 1275242948 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :gotta find it though < 1275242951 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but it's possible to work around. < 1275242982 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1275242985 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i could offset indents and shit < 1275242988 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so that i could look up a line < 1275242992 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and see where it starts, line col in the braces source < 1275242995 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but that would be a fucking pain. < 1275242997 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :essentially you'd a way to pass around the line number data... and then in the code where you evaluate, catch the exception, alter the traceback, and print < 1275243005 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think there's actually an easy way to do that. < 1275243008 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but I'm not positive < 1275243043 0 :Portponky!~no@cpc2-sgyl23-0-0-cust656.sgyl.cable.virginmedia.com JOIN :#esoteric < 1275243070 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def fib(n) { < 1275243071 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : if n == 0 { return 0 } < 1275243071 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : elif n == 1 { return 1 } < 1275243071 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : else { return fib(n-1) + fib(n-2) } < 1275243071 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :} < 1275243072 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :VALID BRACES CODE < 1275243087 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: in my happy future land it'd be nice if you could omit the returns, too < 1275243087 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: at the moment we'll call it impossible... but if I stumble upon a possible solution I'll let you know. < 1275243096 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and then let the if go AFTER the statement. Oh wait, I've just invented Perl < 1275243098 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: eh... not necessary. < 1275243104 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :rofl... < 1275243106 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: functional programming duderiffy < 1275243113 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :basically you want to modify python to be awesome. < 1275243119 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah, pretty much < 1275243127 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hey i could support closures with this < 1275243135 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :consider a function map(list)(closure) < 1275243136 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then consider < 1275243157 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for x from map(lst) { x + 2 } < 1275243158 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :--> < 1275243160 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :you'd probably want PyPy for anything advanced. It's Python written in Python and somehow partially JITed... I have no idea how it works < 1275243167 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but it makes it easier to tweak Python in Python. < 1275243169 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def __mapper(x): { return x+2 }; map(lst, __mapper) < 1275243177 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: it's gorgeous, pypy < 1275243197 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :they write their python interp in a restricted dialect of python, rpython; and they also have a JIT from rpython, that compiles rpython to efficient machine code as it goes < 1275243207 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah, that's right. < 1275243208 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and that JIT is written in python iirc < 1275243214 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :probably. < 1275243215 0 :hiato_!~nine@41-132-16-205.dsl.mweb.co.za JOIN :#esoteric < 1275243218 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so they run the jit -- in python -- on their in-RPython python interpreter < 1275243218 0 :hiato!unknown@unknown.invalid QUIT :Ping timeout: 248 seconds < 1275243223 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which then results in an efficient machine-code Python interpreter < 1275243232 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's genius < 1275243272 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: actually if this gets too far I'll have invented my own, superior language < 1275243278 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :rofl. yes. < 1275243295 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :at least in terms of syntactic features < 1275243295 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION translates braces.py to braces.bs < 1275243299 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :BOOTSTRAPPING < 1275243304 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :what is bs again? < 1275243313 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :BraceS, but the bullshit expansion is intentional < 1275243330 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Whoa, my string support is broken. < 1275243346 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :<3 Snoo < 1275243360 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fix'd < 1275243363 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: ? < 1275243370 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, the Reddit alient < 1275243372 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :*alien < 1275243376 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: it has a name? < 1275243377 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: lol, this isn't even backwards-compatible, < 1275243379 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*compatible. < 1275243383 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :http://www.reddit.com/r/todayilearned/comments/c9k3y/til_the_reddit_alien_is_called_snoo/ < 1275243384 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: it strips your indentation < 1275243385 0 :benuphoenix!~matt@ool-182e6881.dyn.optonline.net JOIN :#esoteric < 1275243389 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hi benuphoenix < 1275243390 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: Hmmm? What went wrong-- oh? < 1275243391 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders why there isn't a decent way to take some Common Lisp and compile it into an executable < 1275243397 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: yeah < 1275243408 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh.. right < 1275243413 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :do you use string.whitespace to strip whitespace? < 1275243416 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :or isspace()? < 1275243427 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :or... strip even < 1275243434 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :... < 1275243438 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think that's obvious < 1275243446 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so nevermind me asking stupid questions. < 1275243450 0 :benuphoenix!unknown@unknown.invalid PART #esoteric :? < 1275243455 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh, I should make {} result in pass < 1275243459 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :>>> "\t".strip() < 1275243462 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :'' < 1275243475 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :there's also that... dunno if it matters. < 1275243517 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :>>> string.whitespace < 1275243519 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :'\t\n\x0b\x0c\r ' < 1275243566 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: I ported braces.py to braces.bs! < 1275243580 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION moves braces.py to braces_orig.py, then generates braces.py using braces_orig.py on braces.bs < 1275243619 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :woah.... that while self.process_char(): pass is a completely weird way to loop over that. < 1275243625 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but it works. < 1275243626 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You're weird. < 1275243628 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1275243630 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I originally did < 1275243631 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :go = True < 1275243633 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :while go: < 1275243637 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : go = self.process_char() < 1275243638 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :.......rofl. why. < 1275243639 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but realised that was stupid < 1275243645 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :haha. < 1275243650 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: http://www.vjn.fi/pb/p1266287623.txt braces.bs v1 < 1275243663 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I would have done uh... < 1275243669 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: http://www.vjn.fi/pb/p9595539115.txt generated object code ;) < 1275243672 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(also known as python) < 1275243675 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :for c in self.source: self.process_char(c) < 1275243684 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :nah, because self.source is mutated a lot < 1275243686 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so that would do weird shit < 1275243688 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and be undefined behaviour < 1275243699 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ah okay. < 1275243712 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :behold, the world's first ugly pythonesque compiling-to-python self-hosting language < 1275243715 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah that's a good work-around I guess. < 1275243733 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm sure somehow else has given Python braces. < 1275243741 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :s/somehow/someone < 1275243769 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think they have < 1275243780 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :as a source encoding filter... < 1275243785 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this is cooler though < 1275243936 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: I'd turn the spaces-per-indent up a bit. Have it a constructor option. def __init__(self, source, spaces_per_indent=4) < 1275243947 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and then (' ' * self.indent * self.spaces_per_indent) < 1275243948 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: But why would you want to look at the generated object code...? < 1275243961 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: hmm... I dunno, it could happen. < 1275243967 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: "To be fair, that's like saying the reddit alien is from the future -- it was something that was tossed around in the summer 2005, and then it was pretty much forgotten. Even around the office, I've never heard anyone call it Snoo; it's always just "the alien"." < 1275243982 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: At least this way it LOOKS definitively evil. < 1275243994 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: I mean the whole point is to have internet-friendly python... so once you have hosted somewhere there's no reason not to have it human-friendly < 1275244002 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :+it < 1275244010 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh, this is actually just for abomination purposes < 1275244016 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...ah. < 1275244035 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: psh, you're not allowed to diss Python when you're doing stuff with it, for it. < 1275244054 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :What if I'm raping it to make it look like a clown? < 1275244059 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Because that's basically the case here. < 1275244079 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...I don't know, the braces look nice really. Possibly even more structured. < 1275244101 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :when your blocks get long-winded it can be easy to loose track of how many dedents there are at the end. < 1275244114 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but not having to type braces is definitely worth it... :) < 1275244125 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but really... they should have both. There's absolutely no reason not to. < 1275244128 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def printf(s) < 1275244128 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :{ < 1275244129 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : print(s); < 1275244129 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :} < 1275244129 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def main(argc, argv) < 1275244129 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :{ < 1275244131 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : printf("Hello, world!\n"); < 1275244133 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : return 0; < 1275244135 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :} < 1275244140 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....actually. < 1275244142 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh. < 1275244145 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :wait... < 1275244147 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :.... < 1275244148 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :[spoiler]VALID[/spoiler] [sup][b][i]BRACES[/i]c[/b]o[/sup][sub][spoiler]de[/spoiler] < 1275244149 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1275244156 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def printf(s): < 1275244156 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : print(s) < 1275244156 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : < 1275244156 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def main(argc, argv): < 1275244156 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : printf("Hello, world!\n") < 1275244156 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : return 0 < 1275244158 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :is what it becomes < 1275244163 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :print(s) in python 2.0 is print (s) < 1275244166 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :did you just use printf in Python? < 1275244168 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which is print s < 1275244173 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: I just defined printf to be print :P < 1275244177 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh. < 1275244183 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: try printf = print < 1275244184 0 :huldumadurin!~chatzilla@88.85.56.65 JOIN :#esoteric < 1275244191 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :That doesn't work in C < 1275244195 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :........rofl. < 1275244198 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and print is a statement < 1275244199 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so you fail < 1275244208 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: depends on which version you're using < 1275244216 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ooh I need bracketed comments < 1275244220 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(# ... #) do you think? < 1275244226 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you're capturing it in your parenzz < 1275244231 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: 2.0 < 1275244237 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Python already has """ < 1275244241 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it actually has semantic importance too < 1275244259 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: yeah print-as-a-function is 3... possibly 2.6 or 7 or something < 1275244277 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :3 < 1275244284 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :""" is LAEM though < 1275244286 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because you can't do < 1275244294 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if foo { print """abc""" x } < 1275244301 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :these (# ... #) comments would simply be elided in the result < 1275244305 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....ah, okay. < 1275244308 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh and nestable < 1275244310 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like all good comments < 1275244311 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :then yeah. But maybe a different syntax. < 1275244315 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(# abc (# def #) quux #) < 1275244320 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why, it's just like # comments but you capture them! < 1275244321 0 :benuphoenix!~matt@ool-182e6881.dyn.optonline.net JOIN :#esoteric < 1275244330 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :{# #} could possibly conflict with Python code in some odd corner case. < 1275244337 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*(# #) < 1275244342 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and I DEEYEN CARE < 1275244348 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah it's never going to happen. < 1275244355 0 :benuphoenix!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: What's up? < 1275244357 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this is the Algorithmic Programming Language Braces, not FIOC :| < 1275244361 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :benuphoenix: whoa it's you. < 1275244368 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :benuphoenix, your IRC client's working again? < 1275244380 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: also, main won't do what you expect. Python doesn't automatically call main like that < 1275244399 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well, unless you expect something different. < 1275244412 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i know < 1275244414 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i was just writing pseudo-C < 1275244423 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm a proficient python programmer ffs :P < 1275244426 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :-nod- alright. Just checkin' < 1275244438 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :whoa i have some mental block with using braces after typing pythony code < 1275244446 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :your while idiom made me uncertain. :P < 1275244460 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: I almost forgot the explicit self after doing a lot of Java and C# lately. < 1275244477 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: I would almost grow to dislike it now that I've had the convenient of not having to type it all the time. < 1275244479 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this is an abomination, it doesn't have to be idiomatic < 1275244487 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm not even a big fan of OOP. < 1275244488 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :The explicit self is incredibly annoying. < 1275244495 0 :benuphoenix!unknown@unknown.invalid PRIVMSG #esoteric :my irc client can access channels < 1275244525 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Also the fact that out of habit you call it self, rather than, say, j or something similarly easy to type. < 1275244531 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Hey, this means I can use nested functions conveniently <3 < 1275244561 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Common Lisp's object system is very weird. < 1275244571 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: It's very good. < 1275244577 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :But still weird. < 1275244584 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: Sweet... now support multi-line lambdas... compile them to named functions that don't conflict with anything else in code, embed the name where the lambda expression was originally, and then delete the name afterwards. :P < 1275244586 0 :benuphoenix!unknown@unknown.invalid PART #esoteric :? < 1275244586 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's advanced. It predates almost all other object systems. < 1275244590 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It did it Better. < 1275244593 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: and call the whole thing "perl" < 1275244599 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :If you have *ever* used C++ or Python or Java. < 1275244601 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :seriously, we're just approaching idiomatic perl 5 without sigils here < 1275244610 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: unlucky! < 1275244610 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :IIRC Javascript does it weirdly too. < 1275244613 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: psh... we're not even close to the syntactic monster of perl yet. < 1275244622 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: i said idiomatic perl < 1275244630 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :seriously, idiomatic perl is basically what we have here, plus some additional niceties < 1275244630 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...you lie. < 1275244636 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm not! < 1275244645 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :multi-line lambdas: yep, idiomatic perl < 1275244649 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :braces: uh, yeah < 1275244652 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :scripting language: yep < 1275244659 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it also has "not", "unless" and similar < 1275244659 0 :nooga!~marysia@86-63-110-58.sta.asta-net.com.pl JOIN :#esoteric < 1275244665 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it also has conditions after the statement (useful a lot of times) < 1275244669 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we're inventing perl :P < 1275244673 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well, I know nothing about Perl other than everytime I try to memorize the syntax in any way I completely fail. I blame but the language design, but it could also be copious marijuana ingestion in my past. < 1275244674 0 :Phantom_Hoover!unknown@unknown.invalid QUIT :Quit: Leaving < 1275244676 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :no shiii < 1275244684 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: yes, I do remember those features. < 1275244697 0 :Phantom_Hoover!~phantomho@cpc3-sgyl21-0-0-cust116.sgyl.cable.virginmedia.com JOIN :#esoteric < 1275244724 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: but the semantics are entirely different.... entirely. < 1275244733 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :true < 1275244738 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i have a kinda soft spot for perl. < 1275244747 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(# ... #) comments implemented! < 1275244752 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I don't know Perl very well... < 1275244754 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :nifty. < 1275244762 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Haskell's comment style is really nice. It's my favorite that I've seen. < 1275244774 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Haskell is a good language. < 1275244777 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...indeed. < 1275244786 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it's not without flaws, but a very good language nontheless. < 1275244793 0 :nooga!unknown@unknown.invalid QUIT :Client Quit < 1275244807 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ehird@ehird-desktop:~/work/2010-05/braces$ mv braces.py braces_.py < 1275244807 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ehird@ehird-desktop:~/work/2010-05/braces$ python -i braces_.py < 1275244808 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :>>> open('braces.py', 'w').write(debrace(open('braces.bs').read())) < 1275244808 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :>>> < 1275244808 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ehird@ehird-desktop:~/work/2010-05/braces$ rm braces_.py < 1275244809 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Updat'd < 1275244825 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Aaand it doesn't work < 1275244829 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Is my damn connection down again? < 1275244832 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :in particular, some of the functions that use Int instead of Integral are annoying... especially when you have to coerce types around. < 1275244835 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :No it is not. < 1275244837 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: no < 1275244840 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION builds a command-line interface < 1275244842 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Yes, that is a flaw. < 1275244862 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Also, the Num class is an abomination; we thought about this stuff last century and it turns out there are these things called rings and fields...# < 1275244865 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*fields... < 1275244882 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...hmmm, yeah. I don't know anything about those though... < 1275244887 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :It's behaving oddly, though. < 1275244890 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :not well-read on abstract algebra < 1275244897 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: they're pretty simple really < 1275244901 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I figured. < 1275244913 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: you have one for +, one building on top for -, one building on top for *, then one building on top for / basically < 1275244916 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it's just a structure that describes a formal system of operations over data right? < 1275244917 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :except you have a bunch inbetween < 1275244924 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for things like non-commutative or non-associative operations < 1275244929 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so we can categorise tons of non-numbers in this too < 1275244931 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...they build? in what way? < 1275244935 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :um, like < 1275244944 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"A frizzle is a bob (S,*) such that x*y = y*x." < 1275244950 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(where * is any operation not multiplication) < 1275244960 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :what is S? < 1275244964 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a set < 1275244969 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ah, the data < 1275244970 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :* is an operation taking two Ss and returning an S < 1275244975 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the very bottom structure is a magma: < 1275244988 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so what is frizzle, and what is bob? < 1275244992 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :A magma (S,*) is a set S and a binary operation * on S with the following property: < 1275244995 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ring and field? < 1275244998 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Closure propety: a*b is in S. < 1275245011 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: no, field is division (multiplicative inverses; i.e. ^-1) < 1275245029 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ah okay... a ring is more general? < 1275245030 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Ring is +, * and - < 1275245035 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :gotcha < 1275245037 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Z is the prime example < 1275245041 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Magma < 1275245041 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Set S with binary operation + < 1275245041 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Semigroup < 1275245041 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Associativity of + < 1275245041 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Monoid < 1275245042 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Existence of identity element for + in S < 1275245044 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Group < 1275245046 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I assume frizzles and bobs are metasyntactic. < 1275245046 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Existence of inverse elements for + in S < 1275245048 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Abelian group < 1275245050 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Commutativity of + < 1275245052 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Pseudo-ring < 1275245054 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so then what is frizzle in bob? < 1275245054 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Associative binary operation < 1275245056 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :*and < 1275245056 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Distributivity of over + < 1275245058 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Ring < 1275245060 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Existence of identity element for in S < 1275245062 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Commutative ring < 1275245064 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Commutativity of < 1275245066 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Field < 1275245068 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Existence of inverse elements for in S < 1275245070 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :urgh < 1275245072 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....... < 1275245072 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: http://en.wikipedia.org/wiki/Ring_(mathematics)#Definition_and_illustration < 1275245074 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :look at the "Algebraic structures" table there < 1275245076 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: there are some structures inbetween for pathological things < 1275245078 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :What's purple and commutes < 1275245087 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :? < 1275245092 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :.... < 1275245098 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a purple man who lives far away from his workplace < 1275245101 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :rofl < 1275245137 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :You both know, so there's no point. < 1275245140 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: I apologize. My ability to parse wikipedia articles on math is very limited... mainly because they explain everything in terms of other things I also don't understand. < 1275245147 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but I'll give your link a look < 1275245150 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: get yourself an edumacation :D < 1275245154 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh wait you're from the US < 1275245160 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :YOU CAN'T HAHAHAHahem. < 1275245180 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...rofl. < 1275245185 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah. < 1275245200 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well, abstract algebra isn't really taught, except in advance college classes. < 1275245275 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: so basically instead of Num you'd have Ring for (+) and (-) along and (Ring x) => Field(x) for division and multiplication? or is multiplication elsewhere? < 1275245285 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :*along with < 1275245287 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: well it's a bit more nuanced than that < 1275245290 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :multiplication is in ring actually < 1275245298 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ah... okay. < 1275245300 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it'd be easy to use < 1275245307 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's just that it's hard to memorise exactly what some thing is :P < 1275245314 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: to do all that we really need inheritance of classes < 1275245317 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so that you could just define it as the highest one < 1275245321 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and it'd inherit the definitions downwards < 1275245323 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: doesn't GHC support that? < 1275245323 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :to parent ones < 1275245326 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :nope,. < 1275245327 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*nope. < 1275245332 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I thought you could do like < 1275245341 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :typeclass (Ring x) => (Field x) < 1275245345 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Nope < 1275245346 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :GUYS GUYS < 1275245355 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Braces 1.5: http://www.vjn.fi/pb/p8785482493.txt < 1275245358 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Bootstrapping Python: http://www.vjn.fi/pb/p3558378555.txt < 1275245362 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :sorry < 1275245365 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Pre-compiled version: http://www.vjn.fi/pb/p3558378555.txt < 1275245370 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Binary for Python platforms :P < 1275245404 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Example: http://www.vjn.fi/pb/p5491253623.txt < 1275245479 0 :hiato_!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1275245499 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: I'm turning insane halp < 1275245504 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :what's up? < 1275245537 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...how are you turning insane? < 1275245587 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p8785482493.txt < 1275245588 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :'nuff said < 1275245589 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: you can have Ring x => Field x, but what you cannot have is defining the Ring methods automatically from the Field methods < 1275245609 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :aaah. < 1275245620 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :could you? < 1275245632 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :would that even be possible? < 1275245638 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :to make a Field (or in current Haskell, say Fractional) you have to define _all_ the superclasses separately < 1275245647 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :right. < 1275245660 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ah, so it's a convenience thing. < 1275245668 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: well, it would be nice to at least have them listed in common. < 1275245677 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :obvs we should just add dependent typing, require totality and add a proof assistant < 1275245678 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :job done. < 1275245684 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :rofl. < 1275245687 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh wait that's agda except with a proof assistant and consistency ha ha ha ha ha ha < 1275245692 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's funny because i am dissing agda < 1275245694 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :on the grounds that coq is superioe < 1275245696 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*superior < 1275245697 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: are you still insane? < 1275245705 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: i have concluded i always have been < 1275245709 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: also... you lost me on that last bit. But that's okay. < 1275245710 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and it's woooonderful~ < 1275245714 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it is. < 1275245732 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm wasting far too much time doing fun stuff and talking on this channel. < 1275245748 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :everyone is insane. it's just that a large group of people have convinced themselves their delusions are "normal" < 1275245755 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :when I've already procrastinated like a whole week of my online history class, and was/is going to catch up today. < 1275245758 0 :Gracenotes!unknown@unknown.invalid QUIT :Remote host closed the connection < 1275245759 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :aka "the majority" < 1275245771 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :says oerjan, whilst believing in synchronicity. < 1275245782 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*MWAHAHAHA* < 1275245801 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: i never said i was normal < 1275245802 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: so... have you considered how to implement generic macro control structures yet? < 1275245818 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: by tossing the crock of shit out and making it properly modular < 1275245837 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: well yes... but I'd try to re-use some code if possible... just re-organize < 1275245862 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: but yeah... pretty much you want dynamic dispatch. < 1275245866 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :because it's awesome. < 1275245874 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You know, I could just invent a new language. < 1275245883 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...but this is more fun. < 1275245924 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Well. yes. < 1275245928 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: one thing you'll possibly want to improve on how information mid-parse is stored. < 1275245929 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*Yes. < 1275245933 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm not quite sure how though < 1275245938 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes; I really want to create a pseudo-syntax tree < 1275245943 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm very bad at homebrew parsers and making them elegant. < 1275245958 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :of mostly string globs of python interrupted by [KEYWORD, BIT_BEFORE_BRACE, ...stuff inside braces...] < 1275245965 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :where stuff is either a string or another one of those < 1275245995 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: You just need to be able to recognize a control structure that's been implemented somewhere... either with some kind of special macro syntax that you can embed mid-source-code, or as plugins to the compiler. < 1275246014 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :whichever you prefer. < 1275246023 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MetaPython provides a macro and code quoting facility for the Python programming language. It accomplishes this via the use of an import hook. MetaPython files are denoted with an .mpy extension and may contain quoted code blocks, macro definitions, and macro expansions. < 1275246025 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and whichever is saner, or maybe less sane < 1275246040 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...oh shit. I forgot about import hooks. < 1275246041 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: this is all reminding me of me and oklopol's python schemes < 1275246058 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which were basically little half-lisp, half-schemes we wrote in python with very tight python integration < 1275246064 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I saw an implemention of gotos in Python that used debugging facilities. < 1275246067 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i wrote one that did its own GCing and everything < 1275246067 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :was hot < 1275246068 0 :lament!~lament@S0106002312fa554a.vc.shawcable.net JOIN :#esoteric < 1275246093 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: How about this: make all functions partially applicable. < 1275246110 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Would need different syntax, because of varargs. < 1275246114 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :How about f&(args...)? < 1275246120 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :this will be after you have a sane parsing scheme down... so that all these new features are easy to tack on. < 1275246133 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: nope. it's easier then you would think. < 1275246139 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I know it can be done < 1275246148 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but one syntax is better than having to do a special case for variadic functions < 1275246158 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :you wouldn't need to do a special case < 1275246171 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def fuck(*args): ... < 1275246175 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :just locate all def's in source and apply a decoration < 1275246177 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fuck(1,2,3) # this should partially apply < 1275246179 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :WHOOPS IT DOESN'T. < 1275246198 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :..hmmm... oh, I think I get what you're saying < 1275246213 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so something like fuck&(1,2,3) is better < 1275246231 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....I'm still not completely following. is & an explicit partial application? < 1275246252 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275246263 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :f&(x,y,z) = lambda *args, **kwargs: f(x,y,z,*args,**kwargs) < 1275246275 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in Braces, the function behind it would be < 1275246301 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :why not... < 1275246329 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def partial(f, *args, **kwargs) { def do_it(*args2, **kwargs2) { return f(*(args+args2), **kwargs.update(kwargs2)) } return do_it } < 1275246330 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or something < 1275246346 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Ohmygod I could allow arbitrary infix operators :| < 1275246353 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(No that would be a bitch... but... tempting) < 1275246429 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :What are you crazy people talking about? < 1275246448 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :def decorator(f) { def wrapper(*args, **kargs) { (#insert introspection code to make sure we actually need to partial apply... otherwise#) def partial(*newargs, **kargs) { return f(*(args+newargs), **(kargs+newkargs)) } } } < 1275246453 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: ``The Revised Report on the Algorithmic Language Braces'' < 1275246462 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...rough draft of the actual code, but you get the idea. < 1275246467 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no + on dicts < 1275246478 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think it's like update or whatever < 1275246480 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :What are Algorithmic Language Braces? < 1275246481 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :.update is mutating too :( < 1275246489 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :is that bad in this case? < 1275246502 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: I think **foo copies so i guess not < 1275246503 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: It's a reference to The Revised Revised Revised Revised Revised Report on the Algorithmic Language Scheme < 1275246513 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Braces is my abomination that gives Python wiiiings^Wbraces. < 1275246537 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: yeah if you're passing in a dictionary explicitly with **-used-mid-call expression thing... it most likely makes a copy. I'll test, but it's easy to fix... there's a copy() method < 1275246557 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Ah, Scheme. < 1275246611 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :>>> def test(**kargs): d["fail"] = True < 1275246611 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :>>> test(**d) < 1275246611 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :>>> d < 1275246612 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Grr, & can't even be a regular op < 1275246613 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :{'fail': True} < 1275246619 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :can't do (x=y) in tuples < 1275246631 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: so yeah just use the copy() method if kargs is not empty < 1275246649 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Isn't & one of the ASCII characters that is completely invalid in Python? < 1275246651 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :No, wait. < 1275246660 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Those are ? and $. < 1275246669 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :also use functools stuff because they make it easy to write wrapper objects that preserve all the docs/introspection info of the original function < 1275246692 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p4667924367.txt ;; & definition < 1275246712 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :@compiler is the built-in block that says "compile and evaluate this /now/ in the compiler-code environment" < 1275246717 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Which lets you use it in things like macros, infix definitions, etc. < 1275246718 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...but it's so ugly. I'd rather just use Python's existing partial application stuff. < 1275246720 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :This is all hypothetical, of course. < 1275246724 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : also use functools stuff because they make it easy to write wrapper objects that preserve all the docs/introspection info of the original function < 1275246727 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Ah yeah that stuff < 1275246748 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :functools.partial(func[, *args][, **keywords]) < 1275246748 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Return a new partial object which when called will behave like func called with the positional arguments args and keyword arguments keywords. If more arguments are supplied to the call, they are appended to args. If additional keyword arguments are supplied, they extend and override keywords. Roughly equivalent to: < 1275246751 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Oh, it already exists! < 1275246764 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...oh, yes < 1275246767 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :functools.partial < 1275246775 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p2957715959.txt < 1275246779 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :If it handled kwargs, it'd be perfect. < 1275246785 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't? < 1275246793 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I swear there's a Python-based thing that has extensible syntax. < 1275246794 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Or was it Lua? < 1275246798 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: (1,2,x=y) < 1275246800 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :can't do that in a tuple < 1275246803 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and & is a binary op taking a function and a tuple < 1275246805 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :f & (1,2,3) < 1275246813 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :neaky. < 1275246815 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*sneaky sneaky < 1275246831 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric : | partial(func, *args, **keywords) - new function with partial application | of the given arguments and keywords. < 1275246839 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes but < 1275246842 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p2957715959.txt < 1275246844 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if THAT handled kwargs < 1275246845 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it'd be perfect < 1275246874 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :my god... that was quick implementation < 1275246880 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : http://www.vjn.fi/pb/p2957715959.txt < 1275246880 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : If it handled kwargs, it'd be perfect. < 1275246882 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Not quick, old :P < 1275246889 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: oh you mean I implemented that? < 1275246890 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hahaha no,. < 1275246893 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this is just concept art < 1275246897 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...oh, okay. < 1275246903 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well... what I would do < 1275246907 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :is silently implement it for all functions < 1275246911 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Haskell-like semantics < 1275246915 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :with a decorator < 1275246930 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :for lambdas just wrap the expression inside the function call explicitly < 1275246943 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...but before you do that < 1275246950 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :since you seem to be taking this to a whole new level < 1275246962 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I would refactor your design to be easier to extend. < 1275246972 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Haskell's lambda thing should be .\ . That is all. < 1275246980 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :rofl... yes, that too < 1275246994 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: http://www.vjn.fi/pb/p1928734847.txt < 1275246998 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but if we try to fix everything that's wrong with Python we'll be doing this for months. < 1275247038 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :BRACES: It's like Python... but AWESOME. < 1275247046 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I suggest we remove all the side-effects < 1275247054 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :rofl < 1275247060 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yes, that'll be simple. < 1275247060 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then add a hindley-milner type system & inferrer with typeclasses < 1275247066 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we could name it after some logician < 1275247069 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it'd be easy to curry in < 1275247071 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hahaha < 1275247073 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :since we'd make function application "f x" < 1275247076 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so... maybe Curry? < 1275247079 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm... makes me think of indian < 1275247080 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and since there's no side effects < 1275247083 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :we could lazy evaluate < 1275247087 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh, Schonfinkel really invented currying < 1275247089 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but that name sucks < 1275247093 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: go for his first name < 1275247094 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wait, what was Curry's first name? < 1275247095 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ooh! OOH! < 1275247097 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It was Haskell! < 1275247100 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yeah! < 1275247100 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: great minds think alike < 1275247101 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Good name < 1275247102 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1275247104 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'll form a committee < 1275247106 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Let's start writing a report < 1275247127 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I'll play email ches < 1275247132 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :OKAY!! < 1275247139 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: DO YOU HAVE ANY CONTRIBUTIONS WE ARE WRITING THE HASKELL REPORT '98 < 1275247145 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :OH YOU DO? WONDERFUL < 1275247163 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: hmmm... so I assume prelude and body are macro parameters? < 1275247186 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: yes -- "block prelude { body }" -> block_handler('prelude', 'body') < 1275247188 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :braces code in, braces code out < 1275247196 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... okay. < 1275247208 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i guess it would syntax-check prelude and body first < 1275247220 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so that as long as your format can be plugged in with any syntactically-correct braces it'll work < 1275247329 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: you'll probably want a) a few dispatch tables that map to objects that store state about individual declarations. A Block type would contain the source code, line information, possibly AST info, and a method that would take a structure representing your mid-parse source code and plug in its substition somehow < 1275247354 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :a Operator type would have a simple function. They'll likely inherit some features from a base class. < 1275247365 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :er... similar function < 1275247397 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but yeah... you'd have these dispatch tables associating the statement name to those data structures... and then you'd just call the method to make them go. < 1275247397 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :$ python braces.py braces.py < 1275247399 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :whoops. < 1275247408 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :don't worry i have the files i need to reconstruct < 1275247436 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Dammit, nested comments don't work < 1275247484 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :passing in the mid-parse-source-code/AST structure to the dispatch objects processing method would allow the dispatch code to call a method that lets it substitute its changes into the code in some sane way. < 1275247503 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...this is completely stream-of-consciousness planning though. I'm likely missing some detail. < 1275247526 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :there'd likely be several steps to compilation. < 1275247551 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yay, now it works. < 1275247561 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Noooo it doesn't < 1275247580 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: or... can we scratch my ideas and just make it a hack-together project? < 1275247634 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION just acquired a wizard's bit in LambdaMOO < 1275247639 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....rofl. < 1275247644 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :dude LambdaMOO is the shit. < 1275247653 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Nested comments work! < 1275247657 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :sweet. < 1275247667 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: you evil man! give the poor wizard his bit back! < 1275247670 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Braces 1.6: http://www.vjn.fi/pb/p3941535591.txt < 1275247673 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :how are they transla---oh, nevermind, they're comments, you just cut them out. < 1275247679 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So much fun for 142 lines. < 1275247687 0 :Gracenotes!~person@wikipedia/Gracenotes JOIN :#esoteric < 1275247703 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so yeah... I think I've got a pretty good idea of how to make implementing control-flow macros in a sane fashion. < 1275247707 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Whoops < 1275247709 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I left debugging stuff in < 1275247728 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION waveth < 1275247728 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, I think some Pythonistas want to kill you < 1275247762 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Braces 1.7: http://www.vjn.fi/pb/p1222944752.txt < 1275247763 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :error: not a chance < 1275247763 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Of course. < 1275247774 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq! < 1275247776 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: http://www.vjn.fi/pb/p1222944752.txt < 1275247782 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: This compiles to Python. Self-hosted, you know. < 1275247800 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Features: Braces! Semicolons! One-liners work because of this! (# Nested (# comments! #) #) < 1275247805 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ah... I was wondering why my computer was being so slow. Chrome is taking up a lot of clock cycles for some reason. < 1275247811 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Don't I know you from somewhere? < 1275247812 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, great, but how do you actually run it if you don't already have a Braces interpreter? < 1275247823 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: yeah, I used to frequent this channel a few years ago. :) < 1275247828 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Howsabout not being a lazy ass and doing s/}//, s/{/:/? < 1275247828 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: ... < 1275247834 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. That'd do it. < 1275247837 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :or was that tongue-in-cheek? < 1275247837 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1275247839 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: :-) < 1275247850 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Somewhat. < 1275247852 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: ...so, can I hack ur source plz? < 1275247865 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Or, you know, here's a binary: < 1275247869 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p8823673854.txt < 1275247872 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Runs on Python model CPUs. < 1275247874 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: I'm much slower at implementing things. But I'd like to say I have pretty good design skillz. < 1275247881 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Sure... just make it elegant. < 1275247886 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :rofl. of course. < 1275247895 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :This IS production-ready code, after all... < 1275247901 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :is the latest link the latest source? < 1275247913 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes. Not the Python one, the Braces one. < 1275247918 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Use the Python one to recompile the braces one. < 1275247931 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: pikhq: Here's some of the debauchery you can achieve with this abominable program: http://www.vjn.fi/pb/p8786875755.txt < 1275247935 0 :sshc_!unknown@unknown.invalid NICK :sshc < 1275247950 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I even refrained from linking to the compiled Python in #python so that people didn't use it unless they really wanted to :-) < 1275247962 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Note beautiful GNU indentation style now supported. < 1275247968 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: ..... u_u can I just have a link to the latest Python "object" code? ;) < 1275247978 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Well, I won't accept edits to it. < 1275247981 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I already linked to it. < 1275247994 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Edit this: http://www.vjn.fi/pb/p1222944752.txt then compile it to Python with this: http://www.vjn.fi/pb/p8823673854.txt < 1275247994 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :to test it < 1275247996 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Wait, what's the indentation Emacs uses called? < 1275247996 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...oh, right. hmmm, okay. I'll just use to self-host so I can test < 1275247999 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: GNU. < 1275248002 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's Evil. < 1275248016 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Usage: python braces.py braces2.py < 1275248018 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275248020 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Don't do >braces.py for obvious reasons < 1275248022 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Also, you MUST use .bs < 1275248028 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I will accept no other file extension :D < 1275248034 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :bullshit < 1275248038 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Precisely. < 1275248045 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :The one in which while and for blocks are one level in from the for or while? < 1275248061 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for (x) < 1275248062 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : { < 1275248064 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : ... < 1275248064 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : } < 1275248071 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1275248072 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Two indents to the brace on its own line, then two additional indents to the body. < 1275248077 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Gross, but Python now supports it! < 1275248079 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: I'm going to go ahead and give it command-line functionality... you can hack the specifics of it to your liking but it'll be pretty straightforward < 1275248080 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1275248086 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Exception to the rule: Functions have their braces at column 0. < 1275248089 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: it already has it < 1275248101 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: oh... didn't read down. < 1275248118 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: what if you want braces on the line with the closing paren? < 1275248126 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: that also works < 1275248132 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :oh ok < 1275248171 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def hello() < 1275248171 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : { < 1275248171 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : print "Hello, world!" < 1275248171 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : return 2+2 } < 1275248171 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :def bar() { lozenge(); retard(); < 1275248171 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : violate_wizard(); < 1275248173 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : if x { y < 1275248175 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : z < 1275248177 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : }} < 1275248179 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Valid Braces code. < 1275248228 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: uh... is it safe to edit the braces file in a Python IDE? :3 < 1275248255 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: No < 1275248259 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I suggest Emacs in fundamental-mode < 1275248264 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :didn't figure. Lack of syntax highlighting bugs me. But I'll adjust. < 1275248275 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Well, actually < 1275248279 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :As long as the IDE doesn't reformat < 1275248281 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....never got comfortable with Emacs. I use gedit for non-specific hacking. < 1275248283 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It should be fine < 1275248288 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :vimvimvim < 1275248291 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Like, as long as it just syntax-highlights, and only autoindents on new lines < 1275248294 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(which you can adjust) < 1275248314 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :most editors you can turn off autoformatting independently from highlighting < 1275248316 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah, it's pretty simple. < 1275248325 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :gedit is great for just random shit. < 1275248333 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :so is vim < 1275248344 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I can't use anything else now < 1275248347 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I just use Emacs because it's a bit bloated piece of crap but I know a few key commands and tab complete the rest away < 1275248350 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :also I can't play games < 1275248354 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's sort of cozy, in the way that a really disorganised, small room is. < 1275248359 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :unless I rebind the keys to hjkl < 1275248361 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: you can play nethack < 1275248370 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :(or they're already bound that way to startO < 1275248410 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: I love playing with extremely extensible software though... so I think if I became familiar with all the important key commands I'd love it. < 1275248430 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but my computer is kind of slow... so I might wait till I get a new one. < 1275248435 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's a bit naff, Emacs, really, but then I'm a bit naff. < 1275248439 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm not cool enough for vim. < 1275248456 0 :lament!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1275248466 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Emacs has Nethack. < 1275248468 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :QED. < 1275248505 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It has nethack-el < 1275248512 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It actually communicates with nethack in s-exps < 1275248521 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I know. < 1275248545 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :It is still a way of playing Nethack while ostensibly working. < 1275248559 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :God, I haven't played Nethack in ages... < 1275248606 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm bad at Nethack. < 1275248624 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I died in Sokoban, and then I kind of lost the will to play any more < 1275248634 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I had a wand of death in that save, too. < 1275248691 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :And some other cool stuff. < 1275248712 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if anyone has done timing to game Nethack's RNG < 1275248716 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1275248722 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Of course; it's open-source. < 1275248724 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Cool. < 1275248741 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Although the code is near-Lovecraftian in its sanity-destroying powers. < 1275248751 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :*Everything* is a preprocessor macro. < 1275248792 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: so... I'm thinking about moving the brace removing code from the central parsing code... is this a bad idea? < 1275248811 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Yes < 1275248817 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :since blocks should receive their code as braced form < 1275248820 0 :hiato!~nine@41-132-16-205.dsl.mweb.co.za JOIN :#esoteric < 1275248823 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because they return brace code < 1275248829 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and python indented code doesn't work in braces < 1275248859 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: well I was going to have it not do the textual substitution just yet and instead construct a fairly lightweight syntax tree. < 1275248870 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Well, go ahead with anything. < 1275248900 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks at Nethack source. < 1275248920 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Oh, I've gotten rid of it. < 1275248929 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wishes LambdaMOO was more popular < 1275248930 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Compiling it is also horrible. < 1275248940 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :As is reading it. < 1275248942 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :You have to edit various makefiles by hand < 1275248955 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :THe language is better than MUSHcode < 1275248962 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :[Almost any language is better than MUSHcode] < 1275249018 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: question, is Braces intended to support regular style Python blocks? < 1275249027 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION 's lip bleeds < 1275249029 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: No. Not really. < 1275249036 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :alise: Good for it. < 1275249119 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: what about currently? < 1275249140 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: it doesn't < 1275249143 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because it strips whitespace < 1275249151 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because otherwise < 1275249152 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :} else { < 1275249152 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1275249153 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :} < 1275249154 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : else { < 1275249155 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1275249157 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : else: < 1275249161 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :-> wrongly indented for a 0-column "if" < 1275249266 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ah okay... good. That makes things easier. < 1275249331 0 :hiato!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1275249424 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise, Python already has support for its own syntax tree. So I figured we could go ahead and use that, modify it, and then use the already existing standard lib stuff to reconstruct it back into a string < 1275249436 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i guess < 1275249439 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :have fun :P < 1275249443 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...bad idea? :P < 1275249457 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we're just inventing Metathon here < 1275249480 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :this will give us infix operators though. :D < 1275249490 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Although Python's support for its syntax tree is... weird. < 1275249509 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yeah I'm about to play with it to see how its structured < 1275249535 0 :poiuy_qwert!unknown@unknown.invalid QUIT :Quit: This computer has gone to sleep < 1275249538 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!haskell if if if if True then False else True then False else True then False else True then False else True < 1275249540 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :True < 1275249544 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Wow, LambdaMOO's tutorial is way too long. < 1275249559 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION whistles innocently < 1275249754 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"Insert your peepee into her vag" --spam < 1275249762 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :How erotic! < 1275249804 0 :ws!unknown@unknown.invalid QUIT :Quit: BitchX for president. < 1275249822 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ws was herE? < 1275249824 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :DAMN! < 1275249847 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Please note that we intend that the topology of the LambdaMOO universe be < 1275249848 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : consistent: rooms should not overlap each other, going east through a door < 1275249848 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : should be reversable by going west, etc. Please keep this in mind while < 1275249848 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : building new areas. < 1275249850 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :BOOOORING < 1275249881 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :You should be able to do ANYTHING. < 1275249885 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :directed apathic graph < 1275250004 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*apathetic doesn't scan right < 1275250035 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :How about going through a door and then back takes you into a room nearly identical to the previous. < 1275250055 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :EXCEPT THAT IT'S MOVED A SQUARE UP. < 1275250077 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :how elevating < 1275250160 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise, Python intermediate parse tree is ridiculous. < 1275250171 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Yes. < 1275250173 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Why do this in Python? < 1275250176 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I could have told you that :P < 1275250178 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: BECAUSE < 1275250178 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Wait, stupid question/ < 1275250181 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yeah :P < 1275250182 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Indeed. < 1275250196 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :What do you actually want to do? < 1275250232 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Apparently the Common Lisp spec is 1300 pages long. < 1275250233 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Make Python AWESOME. < 1275250235 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :What. < 1275250235 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: the MUD I used to maintain could have exits that take you anywhere... they were restricted to compass directions though. :( It was a terrible piece of legacy C code. < 1275250235 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1275250240 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :from like 20 years ago < 1275250260 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: FORMAT is actually a huge language in itself. It can loop over arrays, call arbitrary Lisp functions, and format as two kinds of roman numeral -- normal and archaic (four is IIII). < 1275250274 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I know. < 1275250282 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :LOOP is also mad. < 1275250285 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1275250292 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :for mat in array < 1275250305 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Also, FORMAT has the thing that gives you the word form of a number. < 1275250315 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Common Lisp is glorious excess and grandeur -- in fact, the most superlative of these a gigantic ball of mud has ever been. < 1275250322 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: hmmm... using the AST might not be useful except later on. So I'll ditch it for now. < 1275250324 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :BUT IT'S IN AMERICAN FORMAT. < 1275250349 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: hey if american english was good enough for jesus... < 1275250365 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Well, the problem with CL is that there's no in-language support for libraries. < 1275250377 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :So *everything* is in the core language. < 1275250397 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: I'd use the AST once we have legal Python code maybe, to walk the tree and implement infix operators or something. < 1275250403 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but that might not even work either < 1275250406 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so yeah, ditching that. < 1275250408 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ASDF is the de-facto standard, but it's also hideously complex like CL itself. < 1275250419 0 :zzo38!~zzo38@h24-207-48-53.dlt.dccnet.com JOIN :#esoteric < 1275250419 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1275250422 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: What we basically need to realise is that the actual Python code we want to leave alone < 1275250423 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ASDF still confuses me. < 1275250434 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Like we want to write it as a BNF with some thing that's just plain text except it avoids delimiters and handles strings itself < 1275250442 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And we use whenever regular python code would be < 1275250443 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sort of thing < 1275250445 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Hi ais523 < 1275250450 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I made Python likeable for you < 1275250450 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1275250450 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :And zzo38. < 1275250458 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :alise: hmm, how? < 1275250461 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :sec < 1275250462 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: at least it's easy to type < 1275250462 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :DON'T TELL HIM < 1275250463 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :guys < 1275250466 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: http://www.vjn.fi/pb/p1222944752.txt < 1275250470 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Click and bask in the glory. < 1275250473 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think this is the first time I've actually used workspaces in linux. < 1275250484 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it's helpful when you have four million windows < 1275250486 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :alise: I filter links... < 1275250496 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :www. vjn.fi/pb/p1222944752.txt < 1275250499 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: did that appear? < 1275250505 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the Internet became so much more enjoyable when I cut the Web off from the rest < 1275250505 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :EVERYONE STOP TALKING. < 1275250507 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and yes < 1275250511 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: open and bask < 1275250512 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I need to actually do stuff. < 1275250521 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: you can /part < 1275250541 0 :Phantom_Hoover!unknown@unknown.invalid PART #esoteric :? < 1275250567 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :alise: you added braces to Python? < 1275250585 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: And removed the colons. And added properly-working semicolons! And (# nested (# comments! #) #) < 1275250593 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And it's written in itself! < 1275250595 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :WHAT < 1275250595 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MORE < 1275250596 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :COULD < 1275250597 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :BE < 1275250597 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :DESIRED < 1275250606 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: infix operators < 1275250607 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :perfect < 1275250627 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :amazingly, when seeing it I thought "that looks like Python" and didn't even notice the braces < 1275250634 0 :coppro!unknown@unknown.invalid QUIT :Remote host closed the connection < 1275250641 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I only figured out it was adding braces to Python by trying to work out what it did < 1275250644 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: some more desirable not-quite-links: < 1275250652 0 :Halph!~coppro@unaffiliated/coppro JOIN :#esoteric < 1275250653 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :www. vjn.fi/pb/p8786875755.txt debauchery possible with this beautiful gift to humanity < 1275250663 0 :Halph!unknown@unknown.invalid NICK :coppro < 1275250668 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: note beautiful ``GNU indentation style'' < 1275250676 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :too clever, by Halph < 1275250691 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: here is a bootstrapping binary for Python-model CPUs: www. vjn.fi/pb/p8823673854.txt < 1275250714 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :alise: wow, you've been busy < 1275250716 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: and finally, here's a look at what's to come when we complete the project of making Python Awesome: www. vjn.fi/pb/p1928734847.txt < 1275250721 0 :huldumadurin!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1275250724 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :was this all done on the weekends, or did you figure out a way to do it over the week? < 1275250725 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes indeed, infix operators, and custom control structures! < 1275250730 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I've just done it today... < 1275250742 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pretty impressive < 1275250756 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :at this rate, you'll end up inventing Perl < 1275250761 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that's what I said < 1275250772 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we kept coming up with ideas that just brought it that little bit closer to perl < 1275250786 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Now finally Python has some more useful commands < 1275250800 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1275250804 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: best praise i could receive < 1275250818 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that infix/block thing isn't coded yet though < 1275250821 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet is currently having a go at it < 1275250909 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Why does the ".dmg" file contains a lot of stuff, when trying to open it with 7-Zip first I need to extract the .dmg file and then .hfs and then .pax < 1275250916 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :There is a library in LambdaMOO < 1275250923 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :People are able to check out books < 1275250937 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :There's also a book listing all check-outs < 1275250940 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :There are way too many < 1275250946 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Including books left in $nothing < 1275250960 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: sounds like it's an image of an OS X disk < 1275250960 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Which is, quite frankly, scary. I think they're gone forever < 1275250985 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the .pax files would be on the disk's file system, the .hfs file /is/ the file system, the .dmg file is the disk itself, and the .7z file would be compressing that < 1275250987 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Now do you have to program LambdaMOO to recover books < 1275251021 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :7-Zip documentation doesn't mention .pax files < 1275251032 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: they're backwards-compatible with .tar files < 1275251032 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :It mentions .dmg and .hfs < 1275251036 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :braces - straightening out python's bite < 1275251045 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :try renaming it to end .tar and seeing if it works < 1275251059 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Well, it worked when it was .pax < 1275251068 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I did manage to get the files I needed < 1275251080 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, I should be able to locate as many of the books themselves and return them to me < 1275251097 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Or actually, I think there's a go_home command < 1275251127 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : the .pax files would be on the disk's file system, the .hfs file /is/ the file system, the .dmg file is the disk itself, and the .7z file would be compressing that < 1275251129 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :The .dmg when extracted contains a file called "2.hfs" and it seems to contain some sort of package files. I didn't need any package files however, just extracting the .pax contained what I needed < 1275251132 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :7zip does non-7z < 1275251143 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :alise: I know, that seems to be confusing zzo38 < 1275251150 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :nope < 1275251159 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you were confused by saying the whole thing would be wrapped in a 7z < 1275251161 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: .dmg is a (possibly-compressed) OS X disk image < 1275251170 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so it'll have been: wrapping, compression, file system < 1275251171 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :alise: OK, agreed that the whole thing doesn't need to be wrapped < 1275251175 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :The file I was looking for was not available in the other format other than .dmg format, but the files in the .pax were able to be used on cross-platform < 1275251204 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I know it is a disk image, when downloading from source-forge it said so in the MIME type < 1275251339 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I have written only a few program in Python, for solitaire card. (I don't plan to use Python for much else, however) Someone told me Python codes is easy to hack, I think they are correct, I was able to program in these codes without knowing much about Python, so I think they are right < 1275251390 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :However, I have at the start of each file "game_id=200002" and stuff like that but is there way to make it set it automatically based on the file-name of the codes, instead? < 1275251391 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: you use while loops quite well. I generally don't end up using them when I program in Python. < 1275251400 0 :Phantom_Hoover!~phantomho@cpc3-sgyl21-0-0-cust116.sgyl.cable.virginmedia.com JOIN :#esoteric < 1275251408 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Like, if the file is called "200002.py" or "200002.pyc" it should set "game_id=200002" < 1275251462 0 :hiato!~nine@41-132-16-205.dsl.mweb.co.za JOIN :#esoteric < 1275251492 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I have successfully returned a porn magazine to its rightful location < 1275251509 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Gaspeth < 1275251519 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: __file__ or something iirc < 1275251526 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: it's really bad style though, maybe even deprecated < 1275251531 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :"Cheese it, the cops!" squealed the large-hipped hussy as the vile midget defiled her globular knockers and drove his rapidly dwindling joy stick into her odiferous navel. < 1275251531 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: I'd prefer to use a for and a smarter generator, but eh < 1275251542 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Python doesn't have many control structures < 1275251547 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :alise: Why is it bad style deprecated < 1275251551 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: what. < 1275251557 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It's a magical porn magazine. Reading it gives different stuff each time < 1275251559 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: Because it can break things if you move the file, I guess. < 1275251563 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Ah. < 1275251583 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :alise: I wanted to use it so that you can load the different card-games files by renaming them instead of changing each code < 1275251613 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :So you can put the files in plugin directory < 1275251619 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION reads the code for the magical scroll he's using that tells him which books were checked out of the library < 1275251647 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Otherwise someone else can write the plugin with the same game_id numbers and it can be conflicted < 1275251653 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :That's why < 1275251783 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1275251791 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Oh, sure, when I'm borrowing something, such as a magical list, it's FULLY CAPABLE of flying home < 1275251876 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"Research students still regularly visit the MOO (often sent there by their professors) and start asking users about these events. They are surprised to find that sexual actions are currently used as a form of affectionate greeting." < 1275251894 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You cannot escape the fundamental nature of the internet < 1275251904 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: yeah a generator would be nifty... but ultimately to implement the generator you'd have to use the same control structures. Or am I wrong? < 1275251929 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: you would. unless you used an iterator to emulate a while < 1275251948 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like, __next__ raises that end of iterator error if not-condition < 1275251954 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :otherwise it yields, say, None < 1275251955 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then < 1275251962 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for _ in While(lambda: condition) { ... } < 1275251964 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :voila! < 1275251965 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :>:D < 1275251983 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :News just in, GvR is removing while from Python 4 because it encourages ugly iterating code and can be emulated with for anyway < 1275251983 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: you're getting awfully close to I Put On My Wizard Robe And Hat territory, here < 1275252113 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the idea of sexual actions as an affectionate greeting is hilarious < 1275252113 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Of course the stuck books aren't magnetic < 1275252118 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"Hi there! *sucks your cock*" < 1275252228 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Feynman was a constructivist: "What I cannot create, I do not understand." :P < 1275252274 0 :hiato!unknown@unknown.invalid QUIT :Quit: underflow < 1275252341 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so, you know unix first edition < 1275252349 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not really < 1275252355 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :using it doesn't mean you know it < 1275252360 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you haven't used it < 1275252381 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: have you? you have only used later ones. < 1275252391 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://code.google.com/p/unix-jun72/ "The unix-jun72 project has scanned in a printout of 1st Edition UNIX from June 1972, and restored it to an incomplete but running system." < 1275252393 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, I meant the first streak of editions < 1275252396 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"Userland binaries and a C compiler have been recovered from other surviving DECtapes." < 1275252404 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :system 1 or whatever < 1275252406 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: You can try 1st Edition UNIX with the very same emulator. < 1275252407 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :UNIX version numbering is confusing < 1275252410 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :alise: heh < 1275252413 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :does it even work? < 1275252415 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Yes. < 1275252424 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://code.google.com/p/unix-jun72/source/browse/trunk/Readme < 1275252427 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Man pages: http://man.cat-v.org/unix-1st/ < 1275252434 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :NAME sin, cos -- sine cosine < 1275252435 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :SYNOPSIS jsr r5,sin (cos) < 1275252435 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :DESCRIPTION The sine (cosine) of fr0 (radians) is returned in fr0. Thefloating point simulation should be active in either floating < 1275252439 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes, it gave library examples in assembly. < 1275252445 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1275252451 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that makes sense, actually < 1275252455 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I was expecting "wow I'ma try this", not "heh" :( < 1275252466 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The C compiler from 2nd Edition UNIX is also installed and works, but the < 1275252466 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :language is a very early dialect of C. The closest reference to the language < 1275252467 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :at this point in time is this, but it is probably 2 years too late: < 1275252467 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://cm.bell-labs.com/cm/cs/who/dmr/cman74.pdf < 1275252471 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I don't think 1st Edition /had/ C < 1275252486 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :There's no cc in the scanned man pages, and the library examples are in asm < 1275252494 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://man.cat-v.org/unix-1st/1/for had fortran though < 1275252498 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://man.cat-v.org/unix-1st/1/b and B < 1275252549 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://man.cat-v.org/unix-1st/6/basic basic :) < 1275252563 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://man.cat-v.org/unix-1st/1/bas another basic < 1275252699 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, instead of spending time in a shitty 3d environment, I'm now spending time in a shitty text environment < 1275252734 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: :D < 1275252742 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i should make my own moo (with blackjack and hookers) < 1275252808 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: I forgot. Did you say you were going to make an empty brace include a pass? < 1275252822 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Yes, {} should be pass. < 1275252841 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :a lone semicolon should also be pass? < 1275252928 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: wow... you know I always had trouble figuring out how to make a parser generate useful information about unterminated strings and paren expressions < 1275252938 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but... looking at this source code... it's now very obvious. < 1275252948 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: you're welcome :P < 1275252949 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :if you're in a string, and the source is done, it didn't end. :P < 1275252962 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Of course, you should maintain a stack with (line,col) positions so that the errors can complain where the opener is. < 1275252968 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hmm... no. < 1275252983 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it is in C < 1275252989 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I mean, a semicolon that's otherwise redundant < 1275252992 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :like if(a==b) ; < 1275253001 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1275253003 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but not here < 1275253007 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :since ; is strictly newline-and-indent < 1275253012 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1275253014 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :since you can't tell between < 1275253015 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if foo ; < 1275253016 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and < 1275253018 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :foo(bar) ; < 1275253020 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :without mor complex analysis < 1275253021 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so if a==b ; {} < 1275253026 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :is legal? < 1275253031 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that looks crazy < 1275253088 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no < 1275253090 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that translates to < 1275253092 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if a==b < 1275253095 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :: < 1275253100 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or, well < 1275253101 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it'd change to < 1275253103 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if a==b < 1275253103 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :: < 1275253106 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : pass < 1275253106 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :now < 1275253111 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1275253330 0 :lament!~lament@S0106002312fa554a.vc.shawcable.net JOIN :#esoteric < 1275253596 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It takes forever to find the fixed point of this optimisation function on LostKng.b. < 1275253603 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1275253609 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Why aren't you adding a backend to that other one? < 1275253642 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, it helps to make the optimisation function actually recurse beyond the first loop. < 1275253651 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Because I'm not. < 1275253660 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: But I want to see it :-( < 1275253663 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It would be amazing. < 1275253723 0 :UppunudLamppu!~tuuliax2@a91-153-122-35.elisa-laajakaista.fi JOIN :#esoteric < 1275253872 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Maybe ImageMagick should have a mode to load block JPEG format, to load JPEG without fully decompressing it, so that it is losslessly, such as: convert blockjpeg:1.jpg blockjpeg:2.jpg < 1275253874 0 :Oranjer!~HP_Admini@adsl-243-205-116.cae.bellsouth.net JOIN :#esoteric < 1275253897 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It does actually possess lossless JPEG transformations. < 1275254076 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :But according to the document there is some problems with it? < 1275254085 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: I'm worried about whether or not this is just doing an infinite loop. < 1275254095 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Though, it *is* just LostKng. :P < 1275254098 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: :P < 1275254110 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It worked on hanoi.b just fine, so... < 1275254124 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(hanoi.b is, obviously, also massively large. < 1275254263 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: mind if I use camel case? < 1275254273 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: yes. < 1275254282 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :underscores are so time consuming. :P But okay. < 1275254297 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I will end up rewriting half your code anyway :-P < 1275254311 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: BTW, I strongly suggest the extensibility is done via @-commands. < 1275254319 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Which go where a regular statement would -- ; @foo is acceptable, for instance. < 1275254336 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :@compiler { ... } should compile & run the enclosed braces code and put the variables, etc. it binds into some internal hash table. < 1275254344 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: I discovered a massive optimisation on the optimiser. < 1275254352 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: Yeah I'm just devising a framework and reworking the parsing code so it carries more information around. < 1275254356 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Then the regular "@infix a_function_in_compiler_space" where it's called with both arguments < 1275254360 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Make it work by both recursing over the whole thing *and* fix-pointing. < 1275254378 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and "@block a_function_in_compiler_space" makes "block foo { bar }" call block_handler('foo', 'bar') -- which then returns braces code, which is used in place of the block < 1275254383 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: ha < 1275254386 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Compiling hanoi.b takes 1 second instead of 20. < 1275254395 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: there has to be some "proper" way to do optimisation. < 1275254417 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: XD < 1275254426 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I just realised what I just said. < 1275254427 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Fine. < 1275254431 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: ? < 1275254432 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :*I made the optimiser faster*. < 1275254434 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I don't get what's funny :P < 1275254442 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"Optimised the optimiser!" < 1275254443 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1275254444 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1275254452 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: My suggestion is thusly: fixpointing over the whole thing is slow, right? < 1275254474 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So divide it into an even number of pieces; fixpoint all of those, and whenever two adjacent pieces become fixpointed, merge them into one piece and fixpoint them. < 1275254476 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :LostKng now takes 2 seconds to compile. And longer to assemble. < 1275254479 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Repeat until there is only one piece; fixpoint that. < 1275254485 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :This will work for arbitrary-sized programs. < 1275254497 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The theory is that after a block is fixedpoint, only the places where it connects to adjacent pieces will need optimisation. < 1275254504 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So this is edge/"seam" optimisation after chunk optimisation. < 1275254505 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Now, it finds the fixed-point of "Optimise the entire parsed program". < 1275254509 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :True. < 1275254523 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Suboptimal, but it handles LostKng in 2 seconds. < 1275254527 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :This is fast enough, IMO. < 1275254542 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Does it optimise multiplications yet? < 1275254543 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for loops? < 1275254548 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Not yet. < 1275254585 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :nasm takes minutes to *assemble* the output. < 1275254595 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I get the feeling it dislikes thousands of labels. :) < 1275254679 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But hey, it works. :) < 1275254720 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :How quick? < 1275254768 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :5 minutes to assemble LostKng. < 1275254784 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :*Massive* amount of labels. < 1275254839 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: The really interesting thing about an optimising BF compiler is that it's more of a decompiler. < 1275254855 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :A bunch of low-level instructions to a printing of "Hello, world!". A bunch of low-level instructions to a for-loop doing a multiplication. < 1275254857 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :etc. < 1275254988 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :doop < 1275255055 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: you know esotope's intermediate language? < 1275255058 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :sort of a half-assembly half-bf thing < 1275255060 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that's a good idea. < 1275255144 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Yeah, if I do much more on this, I'll probably want to implement something like that. < 1275255155 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It'd certainly make the code generator function cleaner. < 1275255330 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: that's cool... (about the BF compiler) and makes sense. < 1275255344 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: you have a set of very low level operations and need to convert them higher-level constructs. < 1275255350 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :+to < 1275255473 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :is there a command line utility that lets you window multiple command lines into one desktop environment window? < 1275255502 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'd love to have bash in the same window as this IRC client. < 1275255933 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://sprunge.us/aUBM < 1275255966 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I should really clean up the comp function. < 1275256127 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Sum up, this time without the letter 's'. < 1275256166 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :back < 1275256189 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: a tabbed terminal emulator. < 1275256190 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or screen < 1275256202 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :THAT HAS THE LETTER S. < 1275256217 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Your mother. < 1275256226 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1275256228 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :data Syscalls = Read | Write | Indeterm deriving Eq < 1275256229 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Indeterm? < 1275256244 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :-inate < 1275256245 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Indeterminite which was the last syscall used. < 1275256247 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"Sum up what you've been doing." "Your mother." < 1275256248 0 :MigoMipo!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1275256252 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Weird. Why? < 1275256275 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I shall have to ask for a Haiku this time. < 1275256276 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Came after a loop, and I've not bothered doing enough flow analysis to tell. < 1275256280 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :s/this/next/ < 1275256405 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :IM is a general raster image processor, for modifying images. It will not do lossless JPEG modifications. But now I invented a idea of the way in which it can do lossless JPEG modifications. The image is formatted such that moving blocks around and flipping/rotating blocks will do the same to the image, while other transformations might not work in the same way < 1275256409 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I want a balanced programming language < 1275256438 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :possibly funge-like < 1275256438 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :coppro: A balance programming language, for what kind, like, for low-level or high-level or script or whatever?? < 1275256454 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Balanced? < 1275256455 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :What exactly is a "balanced programming language" anyways? < 1275256464 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :in tune with the universe < 1275256465 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :O, you want funge like < 1275256466 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1275256472 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :also it has to use balanced ternary < 1275256492 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if anyone invents a funge-like with balanced ternary < 1275256495 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Make one! < 1275256533 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: balanced language would always have same number of offs and ons < 1275256538 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so the only information is carried in /where/ they are < 1275256548 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :the = + and - operators will be the tritshift-left, tritshift-left-and-increment, and tritshift-right-and-decrement operators < 1275256557 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: Do funges use bitwise, though? < 1275256578 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Literals seem like the only thing that would be affected. < 1275256590 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Also, quarter-imaginary > anything else. < 1275256618 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no, fibonacci-imaginary < 1275256630 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Would that even work? < 1275256707 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why not :P < 1275256713 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: I suppose if you use INTERCAL operators it can be affected how the bits are stored like?? < 1275256715 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I'm sceptical, though. < 1275256753 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lol, i is 10.2 in quarter-imaginary < 1275256754 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :intuitive < 1275256759 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :hmm... also, you shouldn't be able to cross wires directly. Rather, the < operator, if confronted with an IP coming from the right, will split it into two vertical IPs < 1275256810 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :err, from the left < 1275256815 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :alise: What would the base be for fib-imaginary? < 1275256837 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: What WOULDN'T be the base. < 1275256846 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :also vertical IPs should need to use | for constants, - is the reflection operator (and vice versa) < 1275256851 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is going crazy at this point < 1275256857 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12... < 1275256872 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Well < 1275256882 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Negafibonacci works < 1275256888 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Er < 1275256889 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I mean < 1275256890 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Right < 1275256891 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phinary < 1275256895 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :is base phi < 1275256901 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :now quarter-imaginary = 1/4 imaginary = base 2i < 1275256902 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so < 1275256923 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :base ei < 1275256934 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :n imaginary = base 1/2n i < 1275256950 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :phimaginary = base 1/2phi i < 1275256955 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric := base 0.30901699... i < 1275256965 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Highly unintuitive. < 1275256970 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Combine rules of quarter-imaginary and http://en.wikipedia.org/wiki/Golden_ratio_base. < 1275256971 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Q.E.D. < 1275256979 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :maybe 2phi i would be better < 1275256988 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Or just phi i? < 1275256996 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :what is 100i in base 10i? < 1275257007 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: thingy. < 1275257023 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :thanks for htat < 1275257025 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :*that < 1275257038 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :would it have to be a0? < 1275257109 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :(since 100 would be 100) < 1275257115 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Any luck? < 1275257140 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: does quarter-imaginary work like that though? < 1275257181 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: like how? < 1275257188 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that < 1275257190 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :(and you mean base 0.25i?) < 1275257194 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :If you use lossless JPEG you might convert to grayscale as: blockjpeg:1.jpg -channel GB -evaluate Set 0 blockjpeg:2.jpg (or, something similar, at least) < 1275257221 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :bleh, lossless JPEG. < 1275257230 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :While flipping is just: blockjpeg:1.jpg -flip blockjpeg:2.jpg < 1275257276 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: yeah. I code slowly though. nowhere actually implementing anything yet. But I should having something done by the end of today. Got anything you want to change? < 1275257328 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: if you mean weird, yes < 1275257335 0 :dbc!~daniel@130-94-161-238-dsl.hevanet.com JOIN :#esoteric < 1275257341 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Yes I do have a request < 1275257345 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: http://why.usesthis.com/images/interviews/why.4.jpg < 1275257370 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Lossless scaling: blockjpeg:1.jpg -dctscale 50% blockjpeg:2.jpg < 1275257380 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :It should allow things like that < 1275257385 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(The entire set of brilliance: http://why.usesthis.com/) < 1275257425 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"I sip from a peach-colored ring mottle glass lo-ball. the ice cubes I use are semi-circular. and the ice tray itself is a misty blue plastic. my freezer allows 3 trays vertically. the strength of the freezer goes up to 5, but I am personally satisfied with leaving it at 2." < 1275257432 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in a what-programs-do-you-use interview < 1275257503 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"my favorite software ever is Windows XP, because they colored it to look like the start menu was made from freshly-mowed grass and montana sky! this opened new possibilities for hacker landscapers to send orchards to each other as e-mail attachments. (an entire orchard is 130k if you put it in an APPLES.BIN file.)" < 1275257514 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"[...] the only other software I use besides windows xp is kjofol." < 1275257524 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :That doesn't even seem to make a good sensible < 1275257559 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: quarter-imaginary allows the use of i. If you used i in base i, 100i would be 100i, but 1000i would be 1000. Weird < 1275257578 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Also, neat fact: in base -1+i (or -1-i, which is the same), the set of numbers that share the integer part of a number is a fractal < 1275257581 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: It's even better because it's in why's handwriting! < 1275257585 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: He's crazy but I still miss him. < 1275257607 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :He mocked everyone mercilessly but never seemed to be unfriendly, and always had something fun/interesting/cool in the world of programming to point out. < 1275257817 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1275257887 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"I am using a Lemote Yeelong, a netbook with a Loongson chip and a 9-inch display. This is my only computer, and I use it all the time. I chose it because I can run it with 100% free software even at the BIOS level." --rms < 1275257898 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this guy uses a shitty chinese netbook just to get 100% open source < 1275257899 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :god bless'im < 1275257926 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Why the hell do you need an open BIOS? < 1275257929 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"Until I can have them both, freedom is my priority. I've campaigned for freedom since 1983, and I am not going to surrender that freedom for the sake of a more convenient computer. < 1275257929 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I do hope to switch soon to a newer model of Yeelong with a 10-inch display." < 1275257930 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: because he's rms < 1275257934 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it would be wrong for him not to < 1275257945 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :But he can't even change it? < 1275257964 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :FFS does he want the HDL sources for the processors? < 1275257966 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :alise: .....was that a request? < 1275257978 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it seemed more like spam to me. ;) < 1275257978 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1275257990 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: it's not my fault why is (well, was) a beautiful artist. < 1275258002 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :What happened to him? < 1275258036 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: every single account and internet prescense he owned save, uh, I think an almost-empty vimeo account, were completely wiped out overnight. By him. < 1275258058 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :His GitHub account with all his code, his current & discontinued blogs, his Twitter account, his YouTube account, ... everything. < 1275258062 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Who was he? < 1275258063 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Disappeared, just like that. Internet suicide. < 1275258066 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Nobody knows. < 1275258076 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Also, that takes dedication. < 1275258083 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sure, he went to conferences occasionally and played silly songs about Ruby with his band... < 1275258090 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Nobody knew his name though, not for sure. < 1275258125 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I also think ImageMagick should support audio formats, which if loaded, load as a image with height=1. You can have red channel = left channel, blue channel = right channel. And use -density operator to set the sample rate. -flop to reverse a sound. Some of the other ImageMagick operators are also useful for audio < 1275258130 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's a real shame because he was one of my heroes basically. < 1275258140 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And he had a lot of wonderful programs and code that he can't give his wonderful touch to any more. < 1275258145 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And I'll always miss hackety.org. < 1275258166 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I have a feeling he's not going to come back -- and if he does it won't be the same personality, so we'll never know. < 1275258196 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Do you think some of ImageMagick operators are useful for audio files, which ones do you think are best? < 1275258226 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: Really bad compression of music by using JPEG! < 1275258246 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Yes, that would certainly be bad for music, JPEG is meant for photographs < 1275258258 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Although, perhaps someone should try it just to see how bad it is, in fact < 1275258277 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Someone has < 1275258281 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It sounded as awful as you'd expect < 1275258285 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Yes < 1275258286 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, yeah D&D was nice < 1275258286 0 :zzo38!unknown@unknown.invalid QUIT :Quit: zzo38 < 1275258286 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :night < 1275258298 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Wait, what? < 1275258340 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is magically teleporting books from nowhereland to the library < 1275258359 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :the library is awesome < 1275258362 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :do not mock the library < 1275258400 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Except for all the non-magnetic books < 1275258516 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"Even functions are functions! I invented this concept. Just like Steve Jobs will one day." --why < 1275258532 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I fail to get it. < 1275258544 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I assume that there is context. < 1275258569 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, first-edition UNIX is weird. < 1275258622 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :[[Heres a case where a list is being called as a function. Yes, everything is a function! We could also have called: foods (index=2). < 1275258622 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Strings, tables, numbers are also functions. The following returns the 3rd character of the string. < 1275258622 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : "ヘ(^_^ヘ)(ノ^_^)ノ" (2) < 1275258622 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Even functions are functions! I invented this concept. Just like Steve Jobs will one day.]] < 1275258683 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Looks suspiciously Japanese. < 1275258709 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Any clue on why he disappeared? < 1275258736 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Well, Ruby is Japanese. < 1275258739 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: who knows. < 1275258751 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :My guesses: < 1275258772 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :- People were starting to poke at his identity, which he probably didn't like < 1275258777 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :So it may well have been the Illuminati? < 1275258777 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :- Some of his last few tweets: < 1275258781 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :programming is rather thankless. you see your works become replaced by superior works in a year. unable to run at all in a few more. < 1275258781 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if you program and want any longevity to your work, make a game. all else recycles, but people rewrite architectures to keep games alive. < 1275258782 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ahh im just so totally suspicious of anyone who claims to love progress but stridently defends the status quo!! < 1275258789 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I just found evidence that LambdaMOO is a Myst game < 1275258794 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: That it is. < 1275258818 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :--why < 1275258868 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :What is the point of Ruby? < 1275258893 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :to be a new-generation dynamic language that isn't as strict as Python... essentially. < 1275258893 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It's so flexible it's like asbestos dust! < 1275258895 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :*fibers < 1275258907 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :**whatever < 1275258909 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :strict in terms of syntax < 1275258923 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Python and Ruby originate from the same time. < 1275258927 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Ruby is actually matzlisp. < 1275258964 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :matz...? < 1275259039 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :matz is the creator of Ruby. < 1275259067 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Ruby was originally called matzlisp; he plugged in a Smalltalk-style object system and reworked the syntax. And made lambdas uglier, so he added "blocks" which are like limited lambdas that you can only have one of per function call. < 1275259081 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's not /that/ bad a language. < 1275259093 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :incidentally < 1275259099 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Larry Wall -- Christian < 1275259106 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Matsumoto Yukihiro -- Mormon < 1275259107 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :COINCIDENCE? < 1275259109 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think not. < 1275259163 0 :Oranjer!unknown@unknown.invalid PART #esoteric :? < 1275259173 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :NEEDZ MOAR DATA < 1275259197 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :What is McCarthy? < 1275259325 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Which McCarthy? < 1275259336 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Lisp McCarthy. < 1275259345 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Probably agnostic/atheist. < 1275259354 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Religious people usually object to the idea of AI. < 1275259357 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Especially back in the 70s. < 1275259363 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: YOU DON'T KNOW MCCARTHY? HOW UNAMERICAN < 1275259366 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And in the US. < 1275259395 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I want to hug McCarthy and other people :( < 1275259398 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :THEY WILL DIE SOON THAT IS NOT GOOD < 1275259399 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :alise: True, but they'll be laughing at us when the robots take over. < 1275259403 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I find it amusing that it was called the "Committee on UnAmerican Activities". < 1275259423 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :As though they wanted to be *doing* unAmerican activities. < 1275259426 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Were hyphens communist? < 1275259433 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Yes. < 1275259509 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :preEmptive. < 1275259523 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the King's English book suggested that would be good instead of hyphens iirc, but said it was too radical to adopt < 1275259750 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :CamelCase is generally ugly. < 1275259759 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Particularly when handwritten < 1275259798 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CamelCase is indeed ugly. < 1275259854 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I prefer the diaeresis: "premptive". < 1275259855 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!haskell putStrLn "\001swats Phantom_Hoover and alise -----###\001" < 1275259860 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oops < 1275259863 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION < 1275259872 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!haskell putStrLn "\001ACTION swats Phantom_Hoover and alise -----###\001" < 1275259873 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :ACTION swats Phantom_Hoover and alise -----### < 1275259890 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :!haskell putStrLn "\nQUIT :butt" < 1275259895 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :preemptive aww. < 1275259926 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :!haskell putStrLn "\001QUIT :butt\001" < 1275259946 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Quit butt. < 1275260524 0 :Sgeo_!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1275260622 0 :Sgeo!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1275260723 0 :huldumadurin!~chatzilla@88.85.56.240 JOIN :#esoteric < 1275260763 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :huldumadurin. < 1275260765 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what a name < 1275260801 0 :huldumadurin!unknown@unknown.invalid PRIVMSG #esoteric :Hehe. < 1275260807 0 :huldumadurin!unknown@unknown.invalid PRIVMSG #esoteric :It's Faroese. < 1275260814 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah. < 1275260814 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1275260823 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I want to know that language now. < 1275260831 0 :huldumadurin!unknown@unknown.invalid PRIVMSG #esoteric :Faroese is awesome. < 1275260839 0 :huldumadurin!unknown@unknown.invalid PRIVMSG #esoteric :or: Føroyskt er ógvuliga kul. < 1275260870 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So, who are you then? < 1275260881 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :huldumadurin: i thought you were icelandic, was just about to ask you about Besti flokkurin < 1275260903 0 :huldumadurin!unknown@unknown.invalid PRIVMSG #esoteric :Just a random Faroese 17-year-old with a newfound interest in Esoteric Languages. < 1275260907 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ? < 1275260915 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :huldumadurin: Well, that's certainly an interesting combination. < 1275260942 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm an English 14-year-old with a long-established interest in esoteric languages. < 1275260944 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Hi. < 1275260949 0 :huldumadurin!unknown@unknown.invalid PRIVMSG #esoteric :Hi. < 1275260954 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: a joke party won the local elections in iceland's capital < 1275260959 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Also, I'm male despite the nickname. Long, and ultimately pointlessly boring, story. < 1275260963 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ha! < 1275260964 0 :huldumadurin!unknown@unknown.invalid PRIVMSG #esoteric :Hehe. < 1275260970 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: what's their platform < 1275260970 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I'm a Scottish 1X year old with a semi-long history in esolangs. < 1275260993 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: some serious and some silly < 1275261002 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: how boring < 1275261011 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :1X year old; so assuming X is 10 and this is base 11... < 1275261019 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you're 21 years old. < 1275261030 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I still wish that Mad Cap'n Tom had won. < 1275261031 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :http://news.bbc.co.uk/2/hi/10194757.stm < 1275261031 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what do the dozenal society guys use? < 1275261033 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :one of them is X < 1275261040 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :alise: No. < 1275261042 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :"Key pledges included "sustainable transparency", free towels at all swimming pools and a new polar bear for the city zoo." < 1275261045 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"the best" xD < 1275261050 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :A case can also be made for 9. < 1275261085 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Indeed, you are nine years old < 1275261181 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :"The party also called for a Disneyland at the airport and a "drug-free parliament" by 2020." < 1275261195 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :alise: Yes. And let that be the end of it. < 1275261195 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes :D < 1275261205 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hm when did i first start coming here < 1275261207 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :when i was 12 i think < 1275261215 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :with a brief stint when 11, perhaps < 1275261217 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :... < 1275261228 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::3 < 1275261230 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i am making you feel old presently. < 1275261240 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I'm not actually sure if I had broadband when I was 11. < 1275261253 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :'cuz you need broadband to access irc (ok but i did) < 1275261294 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I didn't have the internet at all until I was 8. < 1275261304 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is pretty sure he didn't have broadband when he was 11. < 1275261316 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :And before that we only had a crappy Windows machine < 1275261325 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :seeing as that was in '81. < 1275261331 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: They didn't *have* broadband when you were 11. < 1275261355 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: quite possibly not < 1275261375 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I got internet at 5 or 6 or something < 1275261382 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :This may explain why I am fucked up! < 1275261407 0 :T-T!~tuuliax2@a91-153-122-35.elisa-laajakaista.fi JOIN :#esoteric < 1275261414 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I didn't actually learn to program until I was 13. < 1275261451 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Well, I learnt to do basic output when I was 12. < 1275261453 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :8-10 or something was my first steps < 1275261457 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then i started properly programming at like 12 < 1275261460 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: some 10 years from now it will be discovered that everyone who starts internet that young goes insane when they grow up < 1275261468 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but i still think of my programming self one or two years ago as quite immature... < 1275261468 0 :myndzi!unknown@unknown.invalid PRIVMSG #esoteric :my kids aren't gonna learn "mama" or "papa" as their first words < 1275261471 0 :myndzi!unknown@unknown.invalid PRIVMSG #esoteric :they are gonna learn "hello world" < 1275261473 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I am already insane! < 1275261475 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: the state proves it < 1275261477 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :And then because of my school's insane curriculum I didn't touch one of their computers for a year. < 1275261482 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :myndzi: please don't have kids :D < 1275261485 0 :myndzi!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1275261488 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: well you're precocious [sp] < 1275261496 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :\o. < 1275261496 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: WHYEVER WOULD YOU SAY THAT < 1275261500 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :\o/ < 1275261500 0 :myndzi!unknown@unknown.invalid PRIVMSG #esoteric :         | < 1275261500 0 :myndzi!unknown@unknown.invalid PRIVMSG #esoteric :        /`\ < 1275261505 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i try to stay on the asshole side of things < 1275261506 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if i can < 1275261508 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*when i can < 1275261553 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Also, I learnt to program in Pascal. < 1275261561 0 :UppunudLamppu!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1275261567 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Which I didn't like at the time. < 1275261582 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :But then I changed school and they taught programming in Javascript. < 1275261584 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :my favourite language is -- i don't have one :( < 1275261590 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :*With IE 5* < 1275261592 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :maybe J, J is pretty flawless but it doesn't do much < 1275261597 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: JScript then not javascript :P < 1275261616 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :You expect them to pay that sort of attention to detail? < 1275261649 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :For exam purposes, a macro has nothing to do with text substitution, it is a script in a word processor. < 1275261699 0 :T-T!unknown@unknown.invalid QUIT :Client Quit < 1275261929 0 :poiuy_qwert!~poiuy_qwe@CPE001b115db0ae-CM0018c0c24ffc.cpe.net.cable.rogers.com JOIN :#esoteric < 1275262140 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Y'know what'd be totally awesome to implement? < 1275262150 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Love! < 1275262166 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Replacing each and every one of the algorithms on the "Brainfuck algorithms" page with their equivalents in assembly. < 1275262242 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :llvm bc < 1275262268 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :lightweight love machine < 1275262288 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: What kind of assembly? < 1275262290 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :...And no. < 1275262293 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :That's too ... specific. < 1275262299 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Most uses of the algorithm will be tweaked slightly... < 1275262308 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like hard-wiring hello world program to an efficient version < 1275262311 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or lostkng to a hand-optimised version < 1275262322 0 :CakeProphet!unknown@unknown.invalid QUIT :Read error: Operation timed out < 1275262330 0 :CakeProphet!~adam@h21.7.18.98.dynamic.ip.windstream.net JOIN :#esoteric < 1275262335 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Among other things. < 1275262584 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Remote host closed the connection < 1275262587 0 :Zuu!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1275262652 0 :Phantom_Hoover!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1275262744 0 :Zuu!zuu@unaffiliated/zuu JOIN :#esoteric < 1275262771 0 :tombom!unknown@unknown.invalid QUIT :Quit: Leaving < 1275263064 0 :CakeProphet!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1275263145 0 :CakeProphet!~adam@h14.55.18.98.dynamic.ip.windstream.net JOIN :#esoteric < 1275263505 0 :CakeProp1et!~adam@h155.15.18.98.dynamic.ip.windstream.net JOIN :#esoteric < 1275263517 0 :CakeProphet!unknown@unknown.invalid QUIT :Ping timeout: 272 seconds < 1275263586 0 :FireFly!unknown@unknown.invalid QUIT :Quit: swatted to death < 1275263824 0 :CakeProp1et!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1275263899 0 :oerjan!unknown@unknown.invalid QUIT :Quit: Good night < 1275263955 0 :CakeProphet!~adam@h155.15.18.98.dynamic.ip.windstream.net JOIN :#esoteric