< 1168300847 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Game crazies! < 1168300856 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :python crazies! < 1168301013 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :silly python < 1168301858 0 :CakeProphet_!n=CakeProp@h134.251.213.151.ip.alltel.net JOIN :#esoteric < 1168301869 0 :CakeProphet!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1168301874 0 :CakeProphet_!unknown@unknown.invalid NICK :CakeProphet < 1168302743 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :On second thought, x + (-x) is always a first player loss, without additional restrictions on the game. < 1168303062 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :do... < 1168303068 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :er... < 1168303070 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so... < 1168303071 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :x - x? < 1168303093 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :or does game theory differenciate from the typical inverseness of addition and subtraction? < 1168303125 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well, x - y may be an abbreviation of x + (-y). < 1168303201 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although the statement you responded to can be used to prove that x - y + y = x up to equivalence. < 1168303261 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :But on the level of exact game structure, that doesn't hold. < 1168303280 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....yeah, I don't what the hell you're talking about. < 1168303295 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :-x is a "mirror" game of x, swapping the roles of players L and R. < 1168303297 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is just hunting around for IDEs < 1168303328 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm not even familiar with mathematical games anyway. < 1168303345 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :My condolences :) < 1168303867 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :THE WORLD NEEDS A NEW IDE < 1168303877 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ONE THAT REVOLUTIONIZES THE UNCREATIVE WORLD OF TEXT EDITING < 1168303892 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ONE SUCH AS THE DISCORDIAN TEXT EDITING AUTOMATON < 1168303904 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :which I have built. < 1168304002 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :We could name it "Norton utilities", after the great Discordian Saint. < 1168304071 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Actually.. < 1168304077 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :we should just called it MeSophia. < 1168304080 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :like all my other projects. < 1168304097 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION 's goal as a programmer is to have a plethora of programs that all go by the name "MeSophia" < 1168304106 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah, wait, alas it already exists: http://yoyo.cc.monash.edu.au/~acb/norton/ < 1168304197 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :You might want to look into the Kafka program there. < 1168304240 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Or perhaps you might want to preserve the remains of your sanity, what do I know. < 1168304517 0 :ShadowHntr!i=sentinel@wikipedia/Shadowhntr JOIN :#esoteric < 1168304965 0 :digital_me!unknown@unknown.invalid QUIT :Read error: 145 (Connection timed out) < 1168305868 0 :surye!n=surye@xorl.net JOIN :#esoteric < 1168306223 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks at the large engorged slug that now rests upon his desktop... labeled "emacs" < 1168306234 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :emacs! < 1168306245 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :All the useful configuration I could ever fucking want.. < 1168306252 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :that I don't... actually want. < 1168306259 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec os.system("emacs") < 1168306272 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168306273 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168306274 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1168306792 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so... < 1168306797 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :how do you add a new mode to emacs? < 1168306804 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is trying to get this python mode he just downloaded into it. < 1168307000 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~quit new user < 1168307001 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :"new user" < 1168307003 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168307019 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~quit < 1168307020 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Client Quit < 1168307022 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168307041 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ok, now I think a os.system("rm -rf /") is safe < 1168307055 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no, you aren't allowed to do it < 1168307236 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oh wait, rm isn't even in the chroot < 1168307260 0 :pikhq!n=pikhq@75.71.223.179 JOIN :#esoteric < 1168307265 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION giggles < 1168307285 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec os.system("echo *") < 1168307294 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmph < 1168307337 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.my_file = open("/bot/ircbot.py") < 1168307359 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(self.my_file.readline()) < 1168307360 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :#! /usr/bin/python < 1168307363 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :a ha! < 1168307365 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(self.my_file.readline()) < 1168307367 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(self.my_file.readline()) < 1168307367 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :import socket < 1168307369 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(self.my_file.readline()) < 1168307369 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :import re < 1168307371 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1168307385 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.my_file.close() < 1168307439 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :fun < 1168307650 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :whoever breaks out of my chroot and tells me what's in the file /home/bsmntbombdood/proof.txt gets a prize < 1168307987 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~pexec sys.stdout.write( file(sys.path.abspath(".").partition("/home/")[0] + "/home/bsmntbombdood/proof.txt", "r").read()) < 1168308018 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1168308023 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :You have to break out first < 1168308047 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....that's what the first bit was. < 1168308069 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :And that didn't even get executed < 1168308074 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :use ~exec < 1168308083 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write( file(sys.path.abspath(".").partition("/home/")[0] + "/home/bsmntbombdood/proof.txt", "r").read()) < 1168308102 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :and join #bsmnt_bot_chroot_errors so you can see all the exceptions that you just raised < 1168308119 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write( file(sys.path.abspath(".").partition("/home/")[0] + "/home/bsmntbombdood/proof.txt", "r").read()) < 1168308139 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write( file(os.path.abspath(".").partition("/home/")[0] + "/home/bsmntbombdood/proof.txt", "r").read()) < 1168308152 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....you're not using version 2.5 < 1168308161 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no, unfortuneatly < 1168308176 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write( file(os.path.abspath(".").split("/home/")[0] + "/home/bsmntbombdood/proof.txt", "r").read()) < 1168308227 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write( file(os.path.abspath(".").split("/home/")[0] + "home/bsmntbombdood/proof.txt", "r").read()) < 1168308247 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Like I said, you have to break out first < 1168308251 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(os.path.abspath(".")) < 1168308251 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :/ < 1168308257 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :>.> < 1168308292 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(os.listdir()) < 1168308293 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :cakeprophet: you are aware of what a chroot _is_, are you? < 1168308298 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...nope < 1168308315 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(os.listdir("/")) < 1168308352 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(str(os.listdir("/"))) < 1168308369 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :permission denied. < 1168308371 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ha! < 1168308373 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it is a way to designate a directory for a process so that that process thinks that directory is the root directory. < 1168308405 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I'll give you read access to / < 1168308420 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(str(os.listdir("/"))) < 1168308421 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :['bin', 'bot', 'etc', 'lib', 'usr'] < 1168308440 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in other words, the file you want is not inside what your process sees as "/" < 1168308449 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(os.walk("/")) < 1168308494 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ooops, bug in my code < 1168308501 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Actually, no < 1168308501 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Thought so :P < 1168308515 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(list(os.walk("/"))) < 1168308518 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i don't even know if it is possible, although GregorR mentioned something about devices that _might_ be usable, if available. < 1168308539 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(str(os.walk("/"))) < 1168308540 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : < 1168308543 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :... < 1168308546 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :I guess he is the one on the channel most likely to succeed if it is possible. < 1168308556 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(str(list(os.walk("/")))) < 1168308559 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Excess Flood < 1168308564 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1168308567 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :dude < 1168308574 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1168308574 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168308578 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :one sec < 1168308640 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I'm going to be a little lenient and non standard with my stdout.write method, and convert its args with str() first < 1168308660 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168308678 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168308704 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print list(os.walk("/")) < 1168308716 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :wow, that's one long list < 1168308738 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :there's a ton of files in /usr/lib/python < 1168308910 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I think you have to get root to break out of a chroot < 1168308928 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION giggles < 1168308945 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(str(os.getuid())) < 1168308946 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :1343 < 1168308958 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :as you can see, you aren't root already < 1168308967 0 :CakeProphet_!n=CakeProp@h54.253.213.151.ip.alltel.net JOIN :#esoteric < 1168308974 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :te he he < 1168309024 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec os.setuid(0) < 1168309031 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec os.seteuid(0) < 1168309128 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(str(os.walk("/"))) < 1168309128 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric : < 1168309129 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1168309170 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(str(list(os.walk("/bin")))) < 1168309171 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :[('/bin', [], ['bash'])] < 1168309181 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(str(list(os.walk("/etc")))) < 1168309182 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :[('/etc', [], ['hosts', 'passwd', 'resolv.conf'])] < 1168309194 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(str(list(os.walk("/bot")))) < 1168309194 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :[('/bot', [], ['betterbot.py', 'start.sh', 'better.sh', 'ircbot.py'])] < 1168309221 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :...etc < 1168309275 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh, I know of a way to get root < 1168309287 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I think < 1168309303 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :you could make a symbolic link. < 1168309316 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Nope, symbolic links resolve inside the chroot < 1168309333 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.my_file.open("/bot/ircbot.py", "a") < 1168309341 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.my_file = open("/bot/ircbot.py", "a") < 1168309350 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.my_file = open("/bot/ircbot.py", "w") < 1168309361 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh, nevermind, that idea won't work < 1168309409 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.my_file = open("/bot/start.sh", "a") < 1168309421 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :k, i'm safe < 1168309448 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm... < 1168309520 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(str(list(os.walk("/..")))) < 1168309523 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Excess Flood < 1168309572 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168309579 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(str(list(os.walk("/../..")))) < 1168309582 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Excess Flood < 1168309585 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :... < 1168309588 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168309634 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(repr(list(os.walk("/../../..")))) < 1168309636 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Excess Flood < 1168309662 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168309683 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(str(list(os.walk("/..")))[0..50]) < 1168309704 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :[0:50] < 1168309717 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(str(list(os.walk("/..")))[0:50]) < 1168309717 0 :CakeProphet!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1168309719 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :[('/..', ['bin', 'bot', 'etc', 'lib', 'usr'], []), < 1168309743 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(str(list(os.walk("/../..")))[0:50]) < 1168309746 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :[('/../..', ['bin', 'bot', 'etc', 'lib', 'usr'], [ < 1168309763 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok, not immensely useful. or maybe... < 1168309770 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(str(list(os.walk("/")))[0:50]) < 1168309774 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :[('/', ['bin', 'bot', 'etc', 'lib', 'usr'], []), ( < 1168309792 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(str(list(os.walk("/")))[0:298]) < 1168309796 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :[('/', ['bin', 'bot', 'etc', 'lib', 'usr'], []), ('/bin', [], ['bash']), ('/bot', [], ['betterbot.py', 'start.sh', 'better.sh', 'ircbot.py']), ('/etc', [], ['hosts', 'passwd', 'resolv.conf']), ('/lib', [], ['libm.so.6', 'libreadline.so.5', 'libdl-2.4.so', 'libresolv.so.2', 'libutil.so.1', 'libncur < 1168309821 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yikes, my write method needs to split it up into chunks < 1168309844 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :~exec os.system("pwd") < 1168309925 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well, that didn't work anyhow. < 1168310099 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Remote closed the connection < 1168310102 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168310109 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout.write(str(list(os.walk("/")))) < 1168310113 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Excess Flood < 1168310116 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168310118 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :good < 1168310147 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("QUIT") < 1168310148 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Client Quit < 1168310150 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168310155 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You fail. < 1168310168 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(intentionally, but. . .) < 1168310174 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :? < 1168310190 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :19:30 -!- bsmnt_bot_chroot [n=bsmnt@abacus.kwzs.be] has quit [Client Quit] < 1168310194 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Failure. :p < 1168310200 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :how is that a failure? < 1168310397 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~quit < 1168310398 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Client Quit < 1168310400 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168310449 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just felt like accusing you of failure. < 1168310482 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oh, ok < 1168310501 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :no, you fail < 1168310994 0 :oerjan!unknown@unknown.invalid QUIT :Remote closed the connection < 1168311003 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1168311098 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :FO FOO FOOO FOO SPAM AND EGGS! < 1168311199 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :....emacs really could use a better GUI. < 1168311221 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :not really < 1168311253 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesn't get why programmers enjoy masochistic UIs like command-lines and programs will billions of weird non-conviences. < 1168311282 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :Sometimes you -just- want to get the job done... not tinker wth your job-doing device. < 1168311318 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oddly enough, this masochist UIs are actually a better way to get the job done for some of us. < 1168311322 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Like me. < 1168311407 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :I prefer good ol' point-and-click to memorizing a crapload of shellcommands. :P < 1168311445 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Once it's commited to memory, your interface using is limited to the speed of your typistry. < 1168311462 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I type at 70wpm, but I sure as hell don't mouse at a comparable speed. < 1168311481 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :directory names are kind... annoying to work with. < 1168311492 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION plays MUDs a lot... thus understands. < 1168311503 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Directory names are annoying? < 1168311513 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :Painfully so. < 1168311525 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :It's one of my main dislikes of the current OS layout. < 1168311534 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :The directory system./ < 1168311558 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :$ less rebaba0 < 1168311567 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Compare with: < 1168311574 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet_: http://www.catb.org/~esr/writings/unix-koans/gui-programmer.html < 1168311576 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :$ less release/basm/basm.0.b < 1168311606 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :16 characters versus 26. < 1168311612 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Tab completion = :) < 1168311618 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1168311640 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION only uses the mouse for copy-paste. . . < 1168311652 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And only because X makes it so. Damned. Simple. < 1168311687 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :If you used screen, you wouldn't even have to use the mouse < 1168311690 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, Pfft... who the hell said I was endorsing that :P < 1168311723 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: Actually, screen doesn't seem to interface with the X copy buffer too well. < 1168311733 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And if it does, well, I'm too lazy to get that set up right. < 1168311736 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't, at all, I think < 1168311770 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, that doesn't work for me. . . My interaction with the copy buffer is between my screen-running terminal and my Firefox+Conkeror setup. < 1168311772 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has a hard time fathoming how he'd get around easily using the Windows command prompt. < 1168311797 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I tried conkeror once < 1168311804 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Who said it's the *Windows* command prompt I use? < 1168311809 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That thing really, really sucks. < 1168311813 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :and applications that run directly -through- the shell? worst... experience... ever. < 1168311828 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I stopped using it because it completely took over the chrome < 1168311829 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :(I've only done the later on Linux) < 1168311835 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Did I happen to mention that the Windows shell sucks? < 1168311841 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: I don < 1168311846 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :'t like the chrome. ;) < 1168311859 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :But I have extensions that use it :/ < 1168311864 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1168311872 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :Any command prompt... would be more accurate. < 1168311879 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :conkeror was pretty good other than that though < 1168311887 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :even the Linux shell is a tad awkward... < 1168311907 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :not really < 1168311917 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :but it's really the directory system that makes it annoying... not so much the fact that I have to type in commands. < 1168311935 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :zsh is like an extension of myself. < 1168311945 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :A user interface doesn't get much better than that. < 1168311976 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION uses bash ;) < 1168311978 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :The problem is... I have no clue how to better organize data than with a directory system. < 1168311987 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :but it seems so obvious that there's a better way. < 1168312079 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That way is a directory system filled with auto-organizing meta-directories. ;) < 1168312095 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So one gets ~/audio, which automagically organizes itself. < 1168312124 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :One can set it up to organize by artist then album, album then artist, year album then artist, etc. < 1168312168 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :orly? < 1168312177 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: Just an idea. < 1168312329 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Seems rather un-general to me < 1168312334 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :True. < 1168312337 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just a thought. < 1168312360 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :THat's just.... directories with auto-organization. < 1168312365 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And said idea, clearly a (mild) improvement on the current system, was brought up with a few seconds of thought. < 1168312372 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Sounds like a relational database. < 1168312372 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet_: And it's an improvement, no? < 1168312383 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, I hate organization. :P < 1168312387 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: That'd be a good way of having it done underneath. < 1168312408 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :databases are my other pet peeve. < 1168312412 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :sounds like itunes < 1168312423 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: When applied to audio, it would be. < 1168312442 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: And when you think about it you don't like _computers_ too much, either? ;) < 1168312464 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :flat files > database < 1168312466 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :One could apply it to just about anything if the interface to the underlying database were done right. < 1168312478 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :Computers are'nt very organized... < 1168312488 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :at least... not working with them. < 1168312501 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I didn't say it was the best idea in the world; my point was that with just a few seconds of thought it could be improved on if you cared enough. < 1168312524 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet_: Correction: *Windows* computers aren't very organized. < 1168312560 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's spaghetti code. . . as the interface! < 1168312577 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :I like simplicity... and if you can't make it simple, then make it messy. < 1168312590 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :What the hell is wrong with you? < 1168312602 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :...no clue. < 1168312607 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :a CLI is prety simple < 1168312623 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Windows is a *case study* in why "messy" is the wrong way to do things. < 1168312666 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :*shrugs* I don't really.. erm... like Windows. < 1168312682 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, your philosophy seems to describe the Windows way of doing things. < 1168312698 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :...sure, if you grossly oversimplfy things. < 1168312724 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Nope. < 1168312734 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No oversimplification. < 1168312739 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :There are other factors involved in windows besides messiness... < 1168312750 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :it's not a simple one-to-one (messy -> Windows) relationship. < 1168312758 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but messiness is the single thing binding the whole thing together. < 1168312774 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :....and? < 1168312805 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's like, uh, the core idea in the behemoth (if there is such a thing)? < 1168312846 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :Regardless, I don't like Windows. < 1168312865 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :I do however... like the chaotic mess that is my bedroom. < 1168312880 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I like limited amounts of chaos. < 1168312891 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But only when it's my *own* chaos. < 1168312892 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :chaos made the world. ;) < 1168312914 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :If it's the chaos of others, well, I hate it with a passion. < 1168312968 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :That's why it's easier to write your own messy library than learn someone elses < 1168312978 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :....this is probably why I woud be a terrible developer. < 1168312990 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION knows how to clean up his own code. . . < 1168313012 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I don't always *do* it, but I can (and will if anyone else is going to risk touching it) < 1168313016 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION makes it run smooth... regardless of how it looks on the surface. :P < 1168313030 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :after I... squash the countless bugs. < 1168313049 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I find that bugs are easy to squash when the code is clean and readable. < 1168313051 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :I have a bad habit of not testing code in pieces. < 1168313060 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :so I just like... amass huge piles of untested source... < 1168313081 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has a bad habit of making his code easy to test < 1168313087 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1168313094 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, You have a bad habit of being modest too. < 1168313099 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :interpreted languages are great in the respect < 1168313112 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It helps that I do interpreted languages most of the time. < 1168313139 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :Most "testing" involves a series of a few function calls. < 1168313146 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet_: It's a bit of a character flaw. < 1168313243 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... Python's ideol of readability is actually kind of hard for me to read. < 1168313251 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :It's overly drawn out. < 1168313256 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :terseness is more fun. < 1168313320 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: try Haskell :) < 1168313321 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION does Tcl < 1168313337 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it has _both_ < 1168313356 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :My personal definition of "elegant" is anything that can be summed up in a few quick lines. < 1168313380 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Allow me to describe my elegant BFM compiler. < 1168313398 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :....do go on... < 1168313435 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The macro pass expands macros, the optimizing pass optimizes the code, the nostrip pass will add various automated comments to the resulting Brainfuck code, and the brainfuck code compiles the mass into Brainfuck. < 1168313446 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The passes between macro and brainfuck are completely optional. < 1168313453 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... < 1168313456 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Voila, that's the basic structure of the compiler. < 1168313465 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :CLI's are definetely better on the input side of things... < 1168313476 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Indeed they are. < 1168313485 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :but... it's harder to see the "big picture" of things in a CLI... < 1168313492 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Not for me. < 1168313528 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :a GUI gives you everything you need... a CLI gives you fleeting bits of text as output. < 1168313531 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"while foo;do bar;baz;done" is much simpler than the GUI equivalent (clicking over and over and over) < 1168313547 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :CLI is better for inputting... but I think it fails at outputting productively. < 1168313561 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It outputs very productively, IMO. < 1168313582 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(when was the last time you needed a program to output pictures at you instead of text?) < 1168313596 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Web browser < 1168313603 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :I was about to say. < 1168313610 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Instead of text? < 1168313614 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :I really don't feel like mentally imagining what the HTML will render as. < 1168313615 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I see pictures and text. < 1168313624 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION shows CakeProphet_ Elinks < 1168313638 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Text based web browers are _terrible_ < 1168313648 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: I find them useful on occasion. < 1168313652 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(any time I break X) < 1168313683 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :so... the best hybrid methinks would be a command line with a nicely coherant graphical output. < 1168313688 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :like... an IRC client. < 1168313810 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION shows CakeProphet_ Firefox running Conkeror < 1168313810 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's a coherant graphical output with all-text input. . . < 1168313810 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION also shows CakeProphet_ irssi running in a terminal < 1168313835 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No graphics needed (seriously: it's overkill for what amounts to a screenful of text) < 1168313870 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :but with that method the output only comes -on demand-... it requires more typing to get information. < 1168313872 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION prefers xchat to irssi < 1168313876 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :despite using both < 1168313878 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :with a GUI... all the infermation is sprawled out before you. < 1168313917 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :No need to repeatedly type a command to see wat the title, mode, usernames < 1168313929 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :no need to sift through tons of text... because the output is split into channel tabs. < 1168314002 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You, um, realise that that's how irssi works? < 1168314015 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :...that's how most IRC clients work. < 1168314020 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :via a GUI < 1168314030 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Via a TUI. < 1168314040 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(it sure as hell ain't graphical) < 1168314059 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :I consider a GUI anything that has more nuts and bolts than a terminal. < 1168314076 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :it has tabs... you can click on them... that makes it graphical. < 1168314078 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :In which case, irssi wouldn't count as a GUI. < 1168314086 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's a terminal app. < 1168314092 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet_: Is curses a gui? < 1168314099 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You hit alt-(window number) to switch channels. < 1168314115 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :Not really... < 1168314133 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Then irssi, being a curses app, isn't a GUI. < 1168314159 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :Well then... that's exactly what I mean by a hybrid then. < 1168314180 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :input is text... output is graphical (to the extent that it partitionts logically instead of just vomiting it all onto the same place) < 1168314192 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :In which case, the ideal situation for you is a curses app. . . < 1168314223 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION also notes that elinks does the same thing (it's rather nice if you don't mind only having CSS1 and no graphics) < 1168314308 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :I'd love to have an OS GUI that worked that way... and didn't use fucking directories. < 1168314373 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION still thinks CakeProphet_ is friggin' crazy < 1168314417 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :What I want as an OS interface is pretty much what I've got now, except that the system would read my thoughts instead of my finger movements. < 1168314434 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(although my typistry is such that that's actually rather close) < 1168314534 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :GUI output, TUI input.... I want my OS GUI to be a giant curses app. < 1168314572 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm already, like, really happy with mine, as I already said, so. . . < 1168314586 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :really? < 1168314589 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :are you sure? < 1168314591 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :go on. < 1168314594 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Pretty certain. < 1168314596 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :do telll. < 1168314620 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ratpoison + screen + irssi + zsh + (Firefox + conkeror) < 1168314628 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :+ emacs + emacs + emacs < 1168314678 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :The only thing I'm missing is a nice IDE. < 1168314691 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :Emacs is just too damn complicated for what I want to use it for. < 1168314776 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :emacs!!!!!!!! < 1168314785 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :emacs make me all warm and fuzzy inside < 1168314819 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ion > ratpoison ;) < 1168314836 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: Yeah, well. . . < 1168314847 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :At least you've succumbed to the pro-keyboard side of things. < 1168314869 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :perhaps my hatred of directory names stems from the fact that everything in Windows has absurdly long path na,es. < 1168314882 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet_: Sounds about right. < 1168314885 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I still use my mouse plenty < 1168314903 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION uses his keyboard and mouse about equal. < 1168314915 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :GUI ftw < 1168314928 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ctcp RodgerTheGreat SPANK < 1168314967 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :Maybe a directory system with like... < 1168314981 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :at max... 2 directory depth for the "main" stuff. < 1168314989 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I once had my mouse disconnected and didn't notice for a few weeks (I know it was a few weeks because I had moved my computer and, well, forgot to plug in the mouse) < 1168314999 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :if I'm using a computer, I want it running IBM-DOS or OSX. < 1168315018 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I still have dosshell's key-combos in my fingers. < 1168315021 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: FreeDOS: Like IBM-DOS, but you can actually *obtain* it! < 1168315025 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :heretic! < 1168315039 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(that, and it's Stallman-endorsed) < 1168315053 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I already *have* IBM-DOS, on a set of 3.5 inch floppies, as it should be < 1168315064 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But FreeDOS is still maintained! < 1168315073 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1168315074 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And is free as in freedom! < 1168315083 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :and the fact that it *isn't* "stallman-endorsed" is all the more reason for me to use it < 1168315083 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :few weeks, eh? < 1168315101 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: Don't remember the specific time. < 1168315109 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :DOS doesn't need to be maintained. < 1168315130 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :IBM DOS v6.0 is precisely how I want my DOS to feel. < 1168315185 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :freeDOS has way too much unix in it. < 1168315235 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: Why do you not want to have control over your computer? < 1168315254 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That would be GNU/FreeDOS. < 1168315259 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :peh < 1168315269 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :FreeDOS at it's core is, like, DOS++; < 1168315282 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And, like, why am I, like, using, like, like? < 1168315330 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :freeDOS is to DOS proper as BlitzBASIC is to QBASIC. They just don't *get* it. < 1168315348 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because you, like, like it? < 1168315360 0 :digital_me!n=digital@wikipedia/Digitalme JOIN :#esoteric < 1168315417 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, if you care enough, surely you could make FreeDOS behave like it should? < 1168315419 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ha, DOS < 1168315439 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :After all, you've got the full source and all that. < 1168315456 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :why would I bother *making* freeDOS how I want, when IBM DOS is *already* how I want < 1168315482 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :the entire point is that I don't care < 1168315488 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I have a DOS that I like < 1168315502 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I have the original media, and I have a USB floppy drive < 1168315548 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And this gets all the way back into the issue of you not wanting control over your computer. < 1168315604 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Let me rephrase this simply, so that it'll fit inside your closed mind: I don't care. I have the degree of control I require. < 1168315725 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Which isn't the amount of control you should have in a free society, IMO. < 1168315730 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION leaves < 1168315735 0 :pikhq!unknown@unknown.invalid QUIT :"leaving" < 1168315769 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :honestly, I wish more people would realize that not everyone wants the same thing. < 1168316210 0 :CakeProphet_!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1168317096 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 54 (Connection reset by peer) < 1168318336 0 :ShadowHntr!unknown@unknown.invalid QUIT :Client Quit < 1168319208 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~quit < 1168319209 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT : < 1168319212 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168319217 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1168319218 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :None < 1168319254 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.register_raw(".*", lambda x,y,z : "this fails") < 1168319257 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :a < 1168319307 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Client Quit < 1168319309 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168319313 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.register_raw(".*", lambda x,y,z : "this fails") < 1168319315 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :a < 1168319323 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :good < 1168319353 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~quit < 1168319353 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT :Client Quit < 1168319355 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168319358 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.register_raw(".*", lambda x,y,z : "this fails") < 1168319360 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :a < 1168319363 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :a < 1168319366 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :sweet < 1168320741 0 :digital_me!unknown@unknown.invalid QUIT :"goodnight" < 1168322267 0 :ShadowHntr!i=sentinel@wikipedia/Shadowhntr JOIN :#esoteric < 1168323075 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :whoops. < 1168324037 0 :ShadowHntr!unknown@unknown.invalid QUIT :Client Quit < 1168324872 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :'night folks < 1168324898 0 :RodgerTheGreat!unknown@unknown.invalid QUIT : < 1168325759 0 :EgoBot!unknown@unknown.invalid QUIT :Read error: 54 (Connection reset by peer) < 1168325774 0 :EgoBot!n=EgoBot@c-24-22-56-63.hsd1.or.comcast.net JOIN :#esoteric < 1168325824 0 :sp3tt!unknown@unknown.invalid QUIT :Remote closed the connection < 1168326278 0 :GregorR!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1168326300 0 :EgoBot!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1168326610 0 :EgoBot!n=EgoBot@c-24-22-56-63.hsd1.or.comcast.net JOIN :#esoteric < 1168326646 0 :GregorR!n=GregorR@c-24-22-56-63.hsd1.or.comcast.net JOIN :#esoteric < 1168326721 0 :ShadowHntr!i=sentinel@wikipedia/Shadowhntr JOIN :#esoteric < 1168327476 0 :GreaseMonkey!n=GreaseMo@222-152-188-7.jetstream.xtra.co.nz JOIN :#esoteric < 1168327604 0 :ShadowHntr!unknown@unknown.invalid QUIT :Client Quit < 1168329599 0 :clog!unknown@unknown.invalid QUIT :ended < 1168329600 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1168329774 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1168333692 0 :GreaseMonkey!unknown@unknown.invalid QUIT : < 1168349902 0 :ihope!unknown@unknown.invalid QUIT :Connection timed out < 1168349902 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1168353010 0 :sp3tt!n=sp3tt@80-162.cust.umeaenergi.com JOIN :#esoteric < 1168357030 0 :RodgerTheGreat!n=Rodger@c-68-42-107-2.hsd1.mi.comcast.net JOIN :#esoteric < 1168357043 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hello < 1168357412 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1168357506 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ACTION feels deja-vu < 1168358543 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1168363802 0 :tgwizard!n=tgwizard@c-9b3ee155.178-1-64736c10.cust.bredbandsbolaget.se JOIN :#esoteric < 1168365790 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1168366276 0 :jix!n=jix@L60d5.l.strato-dslnet.de JOIN :#esoteric < 1168371172 0 :puzzlet!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1168373078 0 :puzzlet!n=puzzlet@122.46.198.22 JOIN :#esoteric < 1168373671 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1168373700 0 :Sgeo!n=Sgeo@ool-18bf61f7.dyn.optonline.net JOIN :#esoteric < 1168374905 0 :Sgeo!unknown@unknown.invalid QUIT :Remote closed the connection < 1168375781 0 :oklopol!i=okokokok@194.251.102.88 JOIN :#esoteric < 1168376085 0 :ihope_!n=foo@c-71-205-100-59.hsd1.mi.comcast.net JOIN :#esoteric < 1168376117 0 :ihope_!unknown@unknown.invalid NICK :ihope < 1168376281 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Basement bot change root errors. < 1168376285 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Some years ago, that would have made no sense whatsoever. < 1168376328 0 :bsmntbombdood!unknown@unknown.invalid PART #esoteric :? < 1168376328 0 :bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood JOIN :#esoteric < 1168376340 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ihope: ? < 1168376359 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :The phrase "basement bot change root errors". < 1168376368 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :change? < 1168376380 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :That's what "chroot" is, no? "Change root"? < 1168376380 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ooh, chroot < 1168376384 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1168376386 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Just like chmod and... uh. < 1168376392 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I misread root as chroot < 1168376404 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Oh! chown! < 1168376411 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :chown is a funny word < 1168376416 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yep. < 1168376433 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Chowns work at circles, right? < 1168376459 0 :jix!unknown@unknown.invalid QUIT :"Bitte waehlen Sie eine Beerdigungnachricht" < 1168376495 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :gra < 1168376496 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :r < 1168376502 0 :digital_me!n=digital@wikipedia/Digitalme JOIN :#esoteric < 1168376502 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "foo" < 1168376515 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print >> sys.stdout, "foo" < 1168376515 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168376523 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :THAT SHOULDN'T HAPPEN < 1168376538 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ugh < 1168376547 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print >> sys.stderr, "foo" < 1168376596 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys.stdout = IRCFileWrapper(self.raw, "#esoteric") < 1168376601 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "foo" < 1168376611 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print >> sys.stdout, "foo" < 1168376612 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1168376646 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print >>sys.stdout, sys.stdout < 1168376646 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :<__main__.IRCFileWrapper instance at 0xb7c8188c> < 1168376660 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec sys = __import__("sys") < 1168376662 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print >>sys.stdout, sys.stdout < 1168376662 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :<__main__.IRCFileWrapper instance at 0xb7c8140c> < 1168376669 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~quit < 1168376669 0 :bsmnt_bot_chroot!unknown@unknown.invalid QUIT : < 1168376670 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :woah, sweet: http://www.sics.se/~adam/ubasic/ < 1168376672 0 :bsmnt_bot_chroot!n=bsmnt@abacus.kwzs.be JOIN :#esoteric < 1168376680 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print >>sys.stdout, sys.stdout < 1168376681 0 :bsmnt_bot_chroot!unknown@unknown.invalid PRIVMSG #esoteric :<__main__.IRCFileWrapper instance at 0xb7c0840c> < 1168376684 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmph < 1168376772 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that's broken < 1168376887 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec print "foo" < 1168376902 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec exec "print sys.stdout" < 1168376918 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec exec "print sys.stdout" in globals() < 1168376924 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec exec "print sys.stdout()" in globals() < 1168376996 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :arrrrrrrrrrrrrrrrrrrrrrrrrrrrrugula < 1168377138 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Arrrrrrrrrrrrrrrrrrrrrrrrrrrrrugula? < 1168377156 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1168378443 0 :CakeProphet!n=CakeProp@h230.252.213.151.ip.alltel.net JOIN :#esoteric < 1168378476 0 :fizzie!unknown@unknown.invalid QUIT :pratchett.freenode.net irc.freenode.net < 1168378476 0 :GregorR!unknown@unknown.invalid QUIT :pratchett.freenode.net irc.freenode.net < 1168378490 0 :GregorR!n=GregorR@c-24-22-56-63.hsd1.or.comcast.net JOIN :#esoteric < 1168378538 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :arrugula < 1168378708 0 :fizzie!n=fizban@sesefras.zem.fi JOIN :#esoteric < 1168379705 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmmm... < 1168379720 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :My ORK variant looks pretty neat. < 1168379734 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It uses a data strcture I've never actually seen in any other language. < 1168379793 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :which is? < 1168379843 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :a "ring"... which is basically a sequence of co-routines. < 1168379866 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it's an idea for compound routines I've been considering. < 1168380049 0 :bsmntbombdood!unknown@unknown.invalid NICK :http- < 1168380076 0 :http-!unknown@unknown.invalid NICK :bsmntbombdood < 1168380191 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :When you call a ring... it calls the first coroutine in the list... and its first yield contains the arguments that are to be passed to the next coroutine.... when the last coroutine yields... all the coroutines continue their execution where they left off... in reverse order. < 1168380543 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm using it to represent the action-event system for my MUD... because it's extremly well suited for something like that. < 1168380569 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1168380593 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :an action calls a ring... and a ring can contain any arbitrary number of coroutines... that each modify the arguments of the next one. < 1168380608 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it makes it trivial to imlement something like.... a poison effect. < 1168380616 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :you just pop the posion function onto the ring. < 1168380626 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what's poison effect? < 1168380679 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :an example of how my MUD could use a ring effectively? < 1168380692 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :... < 1168380722 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh no... Bob got bit by a MUD-snake... now he's poisoned and is losing health... < 1168380724 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :or something./ < 1168380728 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :bad example though... < 1168380734 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I don't get it < 1168380998 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :familiar with how coroutines work? < 1168381021 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :coroutine is a python style generator, right? < 1168381031 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Not exactly... < 1168381040 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :generators are a simplified coroutine though. < 1168381050 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Python added coroutine emulation for generations in version 2.5 < 1168381062 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so that you can do things like x = yield 5 < 1168381147 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what does that do? < 1168381178 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :returns 5, freezes execution, and awaits for either the next() or the new send() method to be called./ < 1168381197 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oooh, send < 1168381207 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :send is like next... except you can pass it an argument... which becomes the return value of the yield expression. < 1168381213 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that sounds fun < 1168381217 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :if you did MyGenerator.send(10) < 1168381224 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :x would be assigned to 10... < 1168381237 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so its a generator that can take arguments. < 1168381246 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :upon subsequent calls. < 1168381257 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :rather than -only- the first call... as it was in 2.4 < 1168381267 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that's pretty cool < 1168381281 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :So a ring... is a sequence of these. < 1168381371 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the first yield of each coroutine is the arguments of the next coroutine call.... and when it reaches the end of the sequence, it "turns around" as all them are called a second time, picking up where they left off at there yield expression. < 1168381445 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so... it makes it extremly simple to tag on functions to the beginning and end of these rings... which is ideal for something like a MUD... where you can change all of this in mid runtime. < 1168381472 0 :tgwizard!unknown@unknown.invalid QUIT :Remote closed the connection < 1168381585 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmm... it probably qualifies as a self-modifying data type as well... < 1168381631 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the coroutines are perfectly capable of tagging on new functions to their ring... and they can change the arguments sent to any of the functions both foreward and reverse. < 1168381631 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Yep, I still don't understand why that's useful < 1168381652 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :eh... it's not terribly useful... but it'll be handy for this specific task. < 1168381704 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I use an event system for objects in the MUD... different actions trigger specific responses to arbitrary functions when they occur... < 1168381746 0 :RodgerTheGreat!unknown@unknown.invalid QUIT : < 1168381813 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :player A types in "get box"... which sends a get event to his character, which calls whatever ring is assigned to that event with the argument "box"... one of the functions of the ring sends a "gotten" event to box... which respondes with whatever function has been assigned to it. < 1168381821 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's callbacks basically. < 1168382037 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It makes things a little more complicated... but its compensated by making everything super easy to add on to. < 1168382483 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Have you looked at the "Platypus" alternative library for Inform? < 1168382497 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :It might be of interest. < 1168382863 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I don't know what Inform is. < 1168383030 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :this is probably the best way to do it... it simplifies a lot of the tangle involved with event programming. < 1168383269 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Inform is a lang for writing IF (very like a MUD), and plutypus is a better-though-tou library that the standard one. < 1168383304 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :see section 2 of this page: < 1168383307 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :http://homepage.ntlworld.com/elvwood/InteractiveFiction/Platypus/Summary.html#2 < 1168383478 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :eh... it looks neat... but I don't think I'd like it better. < 1168383510 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I have been thinking about how the indirect responses will work... I don't want to clutter up the possible events with a bunch of indirect events. < 1168383649 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :The coroutine approach works extremly well... you can put the manipulation and the did-it-happen check all in the same function. < 1168384140 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I suppose so