00:01:58 <oerjan> Yk = (L L L L L L L L L L L L L L L L L L L L L L L L L L) where L = \abcdefghijklmnopqstuvwxyzr. (r (t h i s i s a f i x e d p o i n t c o m b i n a t o r))
00:05:53 -!- sebbu2 has quit ("@+").
00:05:53 -!- bsmnt_bot has quit (Remote closed the connection).
00:05:56 -!- bsmnt_bot has joined.
00:07:14 -!- ShadowHntr has joined.
00:10:54 <lament> you really want to be hacked? :)
00:17:14 -!- bsmnt_bot has quit (Remote closed the connection).
00:17:16 -!- bsmnt_bot has joined.
00:21:51 -!- bsmnt_bot has quit (Read error: 131 (Connection reset by peer)).
00:22:28 -!- nazgjunk has quit ("Leaving").
00:24:50 -!- bsmnt_bot has joined.
00:25:02 <bsmnt_bot> ['files.img', 'a.out', 'scripts', 'betterbot.py', 'test.pickle', 'foo.py~', 'ski_repl.py', 'foo.py', 'ircbot.py~', 'start.sh', 'better.sh', 'start.sh~', 'ircbot.py']
00:28:27 <oerjan> hm - it occurs to me there is nothing now preventing the download of binaries.
00:29:05 <bsmntbombdood> but there is something preventing the execution of them
00:30:24 <bsmntbombdood> ~exec f=open("/bot/scripts/foo", "w"); f.write("foo\n"); f.close()
00:30:24 <bsmnt_bot> IOError: [Errno 13] Permission denied: '/bot/scripts/foo'
00:33:17 -!- bsmnt_bot has quit (Remote closed the connection).
00:33:22 -!- bsmnt_bot has joined.
00:35:42 -!- bsmnt_bot has quit (Remote closed the connection).
00:41:08 <oerjan> what is this noexec thing and how does it stop os.chmod?
01:02:37 -!- bsmntbombdood has quit ("Lost terminal").
01:03:05 -!- bsmntbombdood has joined.
01:04:52 -!- bsmnt_bot has joined.
01:06:02 <bsmntbombdood> ~exec f=open("/bot/scripts/foo", "w"); f.write("foo\n"); f.close()
01:06:47 <bsmntbombdood> ~exec f=open("/bot/scripts/foo", "r"); sys.stdout(f.read()); f.close()
01:08:10 <bsmntbombdood> ~exec os.system("wget 64.233.167.99 -O /bot/scripts/google.html")
01:08:41 <bsmntbombdood> ~exec f=open("/bot/scripts/google.html", "r"); sys.stdout(f.readline()); f.close()
01:08:41 <bsmnt_bot> IOError: [Errno 2] No such file or directory: '/bot/scripts/google.html'
01:09:19 <bsmntbombdood> ~exec sys.stdout(os.system("wget 64.233.167.99 -O /bot/scripts/google.html"))
01:09:44 <oerjan> ~exec sys.stdout(os.listdir("/bot/scripts"))
01:11:38 <bsmntbombdood> ~exec self.fds = __import__("popen2").popen4("wget 64.233.167.99 -O /bot/scripts/google.html".split())
01:11:47 <bsmnt_bot> (<open file '<fdopen>', mode 'r' at 0xb7c62c80>, <open file '<fdopen>', mode 'w' at 0xb7c62ba8>)
01:12:08 <bsmnt_bot> SyntaxError: unexpected EOF while parsing
01:12:19 <bsmnt_bot> "--00:10:19-- http://64.233.167.99/\n => `/bot/scripts/google.html'\nConnecting to 64.233.167.99:80... connected.\nHTTP request sent, awaiting response... 200 OK\nCookie coming from 64.233.167.99 attempted to set domain to google.com\nLength: unspecified [text/html]\n\n 0K .. ??% \n\n00:10:19 (62.18 MB/s) -
01:12:20 <bsmnt_bot> `/bot/scripts/google.html' saved [2770]\n\n"
01:12:54 <bsmntbombdood> ~exec f=open("/bot/scripts/google.html", "r"); sys.stdout(f.readline()); f.close()
01:12:55 <bsmnt_bot> <html><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><title>Google</title><style><!--
01:17:22 <oerjan> ~exec os.system("wget 'http://129.241.210.70/~oerjan/' -a /bot/scripts/log -O /bot/scripts/oerjan.html")
01:17:41 <oerjan> ~exec os.listdir("/bot/scripts")
01:17:51 <oerjan> ~exec sys.stdout(os.listdir("/bot/scripts"))
01:18:03 <oerjan> well that worked not at all
01:18:34 <oerjan> ~exec os.system("wget 'http://129.241.210.70/~oerjan/' -q -a /bot/scripts/log -O /bot/scripts/oerjan.html")
01:18:40 <oerjan> ~exec sys.stdout(os.listdir("/bot/scripts"))
01:18:48 <oerjan> ~exec sys.stdout(os.listdir("/bot/scripts"))
01:20:54 <oerjan> ~exec os.system("wget 'http://129.241.210.70/~oerjan/' -b -a /bot/scripts/log -O /bot/scripts/oerjan.html")
01:21:00 <oerjan> ~exec sys.stdout(os.listdir("/bot/scripts"))
01:22:13 <oerjan> ~exec os.system("wget 'http://129.241.210.70/~oerjan/' -b -v -O /bot/scripts/oerjan.html")
01:22:20 <oerjan> ~exec sys.stdout(os.listdir("/bot/scripts"))
01:24:48 <oerjan> ~exec os.system("echo >/bot/scripts/test wget 'http://129.241.210.70/~oerjan/' -b -v -O /bot/scripts/oerjan.html")
01:24:53 <oerjan> ~exec sys.stdout(os.listdir("/bot/scripts"))
01:27:53 <oerjan> ~exec sys.stdout(os.listdir("/bin"))
01:28:03 <oerjan> ~exec sys.stdout(os.listdir("/usr/bin"))
01:28:04 <bsmnt_bot> ['dc', 'nice', 'wget', 'python2.4']
01:28:40 <oerjan> ~exec os.system("echo test >/bot/scripts/test")
01:28:47 <oerjan> ~exec sys.stdout(os.listdir("/bot/scripts"))
01:29:02 <oerjan> ~exec os.system("touch /bot/scripts/test")
01:29:06 <oerjan> ~exec sys.stdout(os.listdir("/bot/scripts"))
01:29:20 <oerjan> this is not good. oh wait.
01:30:03 <oerjan> echo and touch are bash builtins, not?
01:31:04 <oerjan> ~exec sys.stdout(os.listdir("/bot"))
01:31:04 <bsmnt_bot> ['files.img', 'a.out', 'scripts', 'betterbot.py', 'test.pickle', 'foo.py~', 'ski_repl.py', 'foo.py', 'ircbot.py~', 'start.sh', 'better.sh', 'start.sh~', 'ircbot.py']
01:32:00 <bsmntbombdood> something to do with shell interaction i'm guessing
01:33:35 <oerjan> has os.system ever worked in the bot?
01:33:40 <bsmntbombdood> ~exec os.execv("/usr/bin/wget", "http://129.241.210.70/~oerjan/ -b -v -O /bot/scripts/oerjan.html".split())
01:33:41 -!- bsmnt_bot has quit (Remote closed the connection).
01:33:56 -!- bsmnt_bot has joined.
01:34:14 <oerjan> i think you need a link from /bin/sh to /bin/bash
01:36:43 <oerjan> ~exec os.system("wget 'http://129.241.210.70/~oerjan/' -O /bot/scripts/oerjan.html")
01:36:54 <oerjan> ~exec sys.stdout(os.listdir("/bot/scripts"))
01:37:21 <oerjan> ~exec os.system("echo test >/bot/scripts/test")
01:37:25 <oerjan> ~exec sys.stdout(os.listdir("/bot/scripts"))
01:37:29 <bsmntbombdood> ~exec os.system("/usr/bin/wget 'http://129.241.210.70/~oerjan/' -O /bot/scripts/oerjan.html")
01:38:00 <oerjan> ~exec sys.stdout(os.listdir("/bot/scripts"))
01:39:02 <oerjan> ~exec sys.stdout(os.listdir("/bin"))
01:39:52 <oerjan> ~exec sys.stdout(os.listdir("/dev"))
01:39:52 <bsmnt_bot> OSError: [Errno 2] No such file or directory: '/dev'
01:40:25 <oerjan> this then leads us to the question: does bash work?
01:41:47 <oerjan> ~exec os.system("/bin/ls / >/bot/scripts/test")
01:41:56 <oerjan> ~exec sys.stdout(os.listdir("/bot/scripts"))
01:43:17 <oerjan> well it still didn't make a test file
01:48:06 <oerjan> ~exec os.execl("/bin/bash", "-c", "echo test >/bot/scripts/test")
01:48:07 -!- bsmnt_bot has quit (Remote closed the connection).
01:48:34 <oerjan> it really doesn't like that...
01:50:04 <bsmntbombdood> -c: echo test >/bot/scripts/test: No such file or directory
01:54:38 <oerjan> the first member of the argument list should be the program name
01:55:33 <oerjan> so bash didn't see that there was a -c option.
01:55:34 -!- bsmnt_bot has joined.
01:55:46 <oerjan> ~exec os.execl("/bin/bash", "le shell", "-c", "echo test >/bot/scripts/test")
01:55:47 -!- bsmnt_bot has quit (Remote closed the connection).
01:57:59 -!- bsmnt_bot has joined.
01:58:19 -!- bsmnt_bot has quit (Remote closed the connection).
01:58:40 <oerjan> now that is weird, in principle it should do exactly the same as the corresponding os.system
01:59:15 -!- bsmnt_bot has joined.
01:59:23 -!- bsmnt_bot has quit (Client Quit).
01:59:28 -!- bsmnt_bot has joined.
01:59:33 -!- bsmnt_bot has quit (Client Quit).
02:00:19 -!- bsmnt_bot has joined.
02:00:39 -!- bsmnt_bot has quit (Remote closed the connection).
02:00:52 -!- bsmnt_bot has joined.
02:10:38 <bsmntbombdood> ~exec __import__("popen2").popen4("wget http://129.241.210.70/~oerjan/ -O /bot/scripts/oerjan.html".split())
02:15:03 <bsmntbombdood> ~exec self.system = lambda x: os.spawnvp(os.P_WAIT, x.split()[0], x.split()))
02:15:04 <bsmnt_bot> SyntaxError: unexpected EOF while parsing
02:15:13 <bsmntbombdood> ~exec self.system = lambda x: os.spawnvp(os.P_WAIT, x.split()[0], x.split())
02:15:44 <bsmntbombdood> ~exec self.system("wget http://129.241.210.70/~oerjan/ -O /bot/scripts/foo.html")
02:16:01 <bsmnt_bot> ['test', 'oerjan.html', 'foo.html']
02:17:04 <oerjan> it doesn't use a shell though.
02:19:05 <bsmntbombdood> ~exec os.spawnvp(os.P_WAIT, "/bin/bash", ["bash", "-c", "wget http://129.241.210.70/~oerjan/ -O /bot/scripts/foo2.html"])
02:19:10 <bsmnt_bot> ['test', 'oerjan.html', 'foo.html', 'foo2.html']
02:19:56 <bsmntbombdood> ~exec self.system = lambda x: os.spawnvp(os.P_WAIT, "/bin/bash", ["bash", "-c", x])
02:20:21 <bsmntbombdood> ~exec self.system("echo \"foo\" > /bot/scripts/test")
02:20:28 <bsmnt_bot> ['test', 'oerjan.html', 'foo.html', 'foo2.html']
02:20:56 <oerjan> strange stuff. now it does what os.system should have.
02:24:13 <oerjan> ~exec for f in os.listdir("/bot/scripts"): os.remove("/bot/scripts/"+f)
02:24:42 <oerjan> ~exec sys.stdout(os.listdir("/bot/scripts"))
02:28:50 -!- GregorR has quit (Read error: 104 (Connection reset by peer)).
02:30:01 -!- GregorR has joined.
02:37:28 -!- GregorR_ has joined.
02:37:30 -!- GregorR has quit (Read error: 104 (Connection reset by peer)).
02:41:07 -!- SevenInchBread has joined.
02:56:51 -!- GregorR has joined.
02:56:51 -!- GregorR_ has quit (Read error: 104 (Connection reset by peer)).
03:02:11 -!- ShadowHntr has quit ("End of line.").
03:42:49 -!- GregorR has quit (Read error: 104 (Connection reset by peer)).
03:59:08 <bsmntbombdood> http://www.adequacy.org/stories/2001.12.2.42056.2147.html
04:01:21 <bsmntbombdood> "BSD, Lunix, Debian and Mandrake are all versions of an illegal hacker operation system, invented by a Soviet computer hacker named Linyos Torovoltos, before the Russians lost the Cold War."
04:01:57 -!- SevenInchBread has quit (Read error: 145 (Connection timed out)).
04:03:08 <oerjan> Rubbish. Everybody knows that Mandrake is from Tibet.
04:06:24 <bsmntbombdood> I think I'm going to steal some stereos with the mp3 program
04:47:00 -!- GregorR has joined.
05:15:13 -!- Arrogant has joined.
05:58:55 -!- GreaseMonkey has joined.
06:07:38 -!- RoboMonkey has joined.
06:32:48 <GreaseMonkey> ?addc fu 1 x00>"PRIVMSG "%1[>,]" :fuck you, "%2[>,]x0A>x00<[<]>%0[.>]
06:49:27 -!- Arrogant has quit ("Leaving").
07:02:52 -!- ShadowHntr has joined.
07:06:02 -!- RoboMonkey has quit (Client Quit).
07:19:07 -!- oerjan has quit ("Good timeslice").
07:44:22 -!- Sgeo has quit ("Leaving").
07:55:08 -!- ShadowHntr has quit (Read error: 145 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:10:02 -!- ShadowHntr has joined.
08:44:00 -!- RoboMonkey has joined.
08:47:18 -!- jix has joined.
09:21:26 <GreaseMonkey> ?addc hug 0 x00>"PRIVMSG "%1[>,]" :">x01>"ACTION jumps onto the sofa and gives "%2[>,]" one of her dive-hugs">x01>x0A>x00<[<]>%0[.>]
09:21:30 * RoboMonkey jumps onto the sofa and gives jix one of her dive-hugs
09:22:00 <GreaseMonkey> ?addc fu 1 x00>"PRIVMSG "%1[>,]" :fuck you, "%2[>,]x0A>x00<[<]>%0[.>]
09:23:01 <GreaseMonkey> the language is called Brainsecks - spec + examples at http://randomjunk.rudyvalencia.com/Brainsecks
09:34:59 -!- calamari has quit ("Leaving").
09:36:58 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
09:45:10 <GreaseMonkey> http://greasemonkey.nonlogic.org/?render=xhtml11&page=software
09:52:27 -!- knoppix_ has joined.
09:53:41 -!- GreaseMonkey has quit (Nick collision from services.).
09:53:56 -!- ShadowHntr has quit (Read error: 145 (Connection timed out)).
09:53:58 -!- knoppix_ has quit (Client Quit).
09:54:02 -!- knoppix_ has joined.
09:54:21 -!- knoppix_ has quit (Read error: 104 (Connection reset by peer)).
09:55:17 -!- GreaseMonkey has joined.
09:55:52 -!- RoboMonkey has quit (Nick collision from services.).
09:57:27 -!- RoboMonkey has joined.
09:59:42 -!- RoboMonkey has quit (Client Quit).
10:00:05 -!- RoboMonkey has joined.
10:39:08 -!- RoboMonkey has quit (Client Quit).
10:39:18 -!- GreaseMonkey has quit ("byes everyone").
15:43:44 -!- RodgerTheGreat has joined.
16:05:49 <nooga> SADOL2 for symbian 9 is almost ready
16:32:33 -!- ShadowHntr has joined.
16:40:51 <RodgerTheGreat> John Backus is dead! http://www.nytimes.com/2007/03/19/obituaries/20cnd-backus.html?ex=1332043200&en=adde3ee5a1875330&ei=5124&partner=permalink&exprod=permalink
17:11:03 -!- jix has joined.
17:21:56 -!- nazgjunk has joined.
17:57:51 -!- ais523 has joined.
17:58:23 -!- oerjan has joined.
18:04:06 <ais523> I think there may be a serious problem with FukYorBrane
18:04:26 <ais523> The only way to move your data pointer around in the other program is using > and <, which takes time
18:04:49 <ais523> but it's possible to skip a whole lot of code using [ and ] (for instance, defecting to your own code which contains a NOP in that location)
18:05:04 <oerjan> It wouldn't be an esoteric language if it didn't have serious problems.
18:05:16 <ais523> so you can easily get your instruction pointer way out of the reach of the other program simply
18:05:34 <ais523> and so the perfect FYB program would just be infinitely long, which sort of defeats the point
18:05:50 <ais523> maybe it should be changed so that [] is a do-while rather than a while loop
18:06:09 <ais523> By the way, I've been wondering about BF where [] is do-while rather than while, and whether it's BF-complete
18:06:49 <lament> ais523: you can't write cat in it!
18:07:18 <ais523> oh of course, because you always have to output at least one character in a program that does output
18:07:35 <oerjan> there would be no way to halt a program without having performed every single command at least once
18:07:44 <ais523> it's probably Turing-complete, though
18:07:53 <ais523> or at least I don't see why it wouldn't be
18:08:10 <lament> it's probably turing-complete, but only because a box of rotten apples tied together on a string is turing-complete
18:08:17 <ais523> and you could simulate cat by outputting something like space, backspace at the start
18:08:38 <ais523> lament: do you have a BF or P'' interpreter using a box of rotten apples and a string?
18:08:49 <oerjan> this requires an esolang based on rotten apples tied together on a string.
18:09:24 <oerjan> when they get too rotten, they could fall off.
18:10:39 <ais523> the string could lie over the edge of the box, so that the falling apples change the weight of the string and move up and down (as an I/O mechanism).
18:10:59 <ais523> something needs to be done to get an infinite supply of apples (or at least ones which can become infinitely rotten)...
18:12:16 <oerjan> the program halts when the bottom of the box dissolves.
18:13:59 <oerjan> taking a lead from the rule 110 construction, it could be an infinite string
18:14:34 <oklopol> well, the string could hang from a tree, and trees can grow
18:16:40 <ais523> apple tree -> apples -> rotten apples -> seeds -> more apple trees (unboundedly); apple tree -> wood -> box (when it stops producing apples); so all you need is the string and an infinitely large orchard, as you can get the apple tree from the rotten apples
18:19:57 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
18:21:07 <oerjan> perhaps an infinitely large box could serve as the orchard too
18:21:34 <RodgerTheGreat> perhaps all that's necessary is using the life cycle of the trees for computation
18:21:51 <RodgerTheGreat> elimenate wind, etc, and have an infinite field of fertile dirt
18:22:19 <RodgerTheGreat> the survival and reproduction of trees as they compete for space is your computational system
18:22:20 <oerjan> the fertile dirt could be produced by the apples too
18:22:41 <ais523> I'd like to see an apple-tree implementation of Life. It would be kind of appropriate.
18:23:05 <jix> hmm apple trees should be renamed to iTrees
18:23:14 <oerjan> it seems that the string has been proven redundant in this project.
18:23:18 <RodgerTheGreat> and the automaton could be called "String Box" just for an inside joke
18:23:40 <RodgerTheGreat> oerjan: the string could be used, but just trees in dirt seems more elegant
18:24:33 -!- nazgjunk has joined.
18:25:47 <ais523> Here's another idea for an esolang that I'm kind-of hoping will be TC:
18:26:10 <ais523> you have a number of registers (unlimited but fixed by the program) each of which has a current value and a maximum value
18:26:39 <ais523> the IP points to a register, and when the register is executed it increments its current value
18:27:00 <ais523> if it increments beyond its maximum its current value drops down to 0, and the maximum increases by 1
18:27:36 <ais523> and after each register is executed, a program-specified register is executed next if it dropped to 0, and a different program-specified register is executed next if it didn't
18:28:27 <ais523> I didn't worry about that, because halting isn't needed for TC-ness, I don't think. (You could just put it into an infinite loop, and maybe the interpreter could detect that)
18:28:48 <ais523> I was thinking that it might be possible to use a pair of registers as a value with an effectively fixed maximum
18:29:19 <oerjan> you could of course have a couple of designated halting registers
18:29:45 <oerjan> or one halting and one result
18:29:45 <RodgerTheGreat> if you did that, I'm pretty sure you'd have a TC language
18:30:03 <ais523> you would need two, because if the program's to be capable of running indefinitely every register in it has to be modified during the run
18:30:13 <ais523> sort of like the do-while BF variant we were discussing earlier
18:30:44 <oerjan> you weren't very clear about the program structure itself
18:31:10 <ais523> each register, once modified, determines which register's modified next according to whether it dropped to 0 or not
18:31:24 <ais523> and the program just explains which register follows which register
18:31:41 <ais523> in pseudocode: register 0 goes to register 1 if it drops, or register 2 if it doesn't
18:31:52 <oerjan> that doesn't seem to require all registers to be modified
18:32:08 <oerjan> you could have smaller loops
18:32:32 <RodgerTheGreat> so, a program would effectively specify a graph of the registers
18:32:36 <ais523> you're right, of course; the degenerate situation where a register's never used at all works
18:33:08 <oerjan> actually you just need one halting register, it can just jump to itself unconditionally
18:33:50 <ais523> wait a moment... if you have a halting register, then it will have to be linked from an output of some other register
18:34:02 <ais523> that register can only be called a fixed finite number of times before the halt
18:34:28 <ais523> and it will have to be linked from some other register, which can also only be called a fixed finite number of times before the halt
18:34:49 <ais523> so in other words having a halting register puts a bound on the size of the program and the length of time it can last
18:35:03 <ais523> i.e. the halting problem would be solvable, so the language couldn't be TC
18:35:17 <oerjan> the problem seems to be that there is no way to combine a test of two registers
18:36:06 <ais523> I know. Without halting registers, though, could it still be TC?
18:37:03 <oerjan> so instead it could halt if two fixed registers were zeroed simultaneously
18:37:27 <ais523> that seems to make more sense
18:38:42 <ais523> the reason I brought this up is that the language I'm describing can be compiled into Black, I think (as long as the initial maximums of the registers are sufficiently large)
18:54:31 <ais523> I suppose it could output the value in one register when two other registers were simultaneously 0 too
19:01:29 -!- sebbu has joined.
19:16:44 -!- ais523 has quit.
19:43:57 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
19:44:21 -!- nazgjunk has joined.
20:03:03 -!- FabioNET has joined.
20:23:10 -!- FabioNET has quit (Client Quit).
20:33:11 -!- oerjan has quit ("Running away").
21:11:28 -!- ShadowHntr has quit (Client Quit).
21:21:13 -!- Sgeo has joined.
21:28:24 -!- sebbu2 has joined.
21:47:24 -!- sebbu has quit (Success).
22:32:30 -!- FabioNET has joined.
22:35:25 -!- oerjan has joined.
22:45:49 -!- UpTheDownstair has joined.
22:46:10 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
22:51:50 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
23:14:51 -!- nazgjunk has joined.
23:22:19 -!- UpTheDownstair has quit (Connection timed out).
23:57:01 -!- SevenInchBread has joined.