00:01:52 dhcp03181.mid-resnet.unc.edu = Aftran. 00:28:20 -!- oerjan has quit ("Good night"). 00:32:50 I have a whole bunch of fun programming projects planned. 00:40:15 like what? 00:40:30 I need something to code in lisp 00:40:57 A revision of my old IRC bot in Scheme, an LZW compression test in Forth, the NN science project of course, and attempting to reverse engineer my old scanner. 00:41:34 Revision? 00:42:38 Yeah. There are some features I just didn't want to code in Haskell, plus I thought I'd give the code a rewrite anywho. 00:42:57 I had a bit of free time left over yesterday and just rewrote the parser. 00:45:28 What's the shrink on LZW, optimally? 00:45:45 I don't quite remember, but it's not all that good, I believe. 00:45:51 LZW is just really really simple. 00:46:24 Although, I would imagine that it is pretty good if you apply delta encoding to the data first, assuming the data is more-or-less contiguous. 00:47:47 * ihope_ LZW-encodes a series of 3 00:48:45 Make that a series of |. 00:48:51 It's almost a series of tubes. 00:48:55 Ah.... 00:49:42 are they clogged? 00:51:22 Does | look clogged to you? 00:51:41 ! is a clogged tube. That little space near the bottom is an internet. 00:51:44 Huh? 00:51:53 Huh? 00:52:14 Anyway, LZW seems to be square root. 00:55:37 !help 00:55:41 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 00:55:43 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl 00:56:14 !bf +[.+] 00:56:17 00:56:49 -!- EgoBot has quit (Excess Flood). 00:57:08 You killed EgoBot! 00:57:12 ummmmm 00:57:20 -!- EgoBot has joined. 00:57:25 Never mind. 00:57:28 That looped 00:57:47 I call bug 00:59:36 Not really. We find creative ways to kill EgoBot all the time. 00:59:47 And I discovered that bug a long time ago. I guess GregorR's gotten lazy. 01:00:18 !bf +[,.] 01:00:22 !ps 01:00:24 1 bsmntbombdood: ps 01:00:43 !i 1 hi world 01:00:51 !i 1 \n 01:00:54 !eof 1 01:00:59 -!- tgwizard has quit (Remote closed the connection). 01:01:23 !ps 01:01:26 1 bsmntbombdood: ps 01:06:31 My solution was to make it reload if it fails ;) 01:07:33 ! -[.-] 01:07:36 Huh? 01:07:39 er 01:07:42 !bf -[.-] 01:07:47 ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 01:08:15 EgoBot stop spamming me in pm! 01:08:20 !ps 01:08:23 1 bsmntbombdood: ps 01:08:24 Hahahahah 01:08:25 !kill 1 01:08:27 Process 1 killed. 01:08:36 01:08:40 over and over again 01:08:46 Hahahahah 01:08:55 That's what you get :P 01:09:10 it's supposed to stop after one loop! 01:12:11 Here, have an alphabet: " .Ladeilmoprstu" 01:12:58 Have some numbers as well: 2, 9, 11, 5, 8, 0, 6, 10, 12, 14, 19, 4, 9, 7, 16, 0, 12, 6, 13, 0, 3, 8, 5, 13, 1 01:13:03 thank you! 01:13:42 Each number is the index of the wanted character in that alphabet. 01:13:59 You guess what 16 and 19 are. 01:15:34 Here, have a partially decoded string: "Lorem ipsu[19]dol[16] sit amet." 01:15:48 fun 01:16:10 Why not make " .LadeilmoprstuLorem ipsu[19]dol[16] sit amet." an alphabet, too? 01:16:55 Then, as long as you do it right, 16 and 19 will index to "or" and "m ", respectively. 01:24:52 Hey, why don't we run LZW output through a Huffman thingy? 01:25:10 (I'm sure we all love Huffman thingies.) 01:28:50 -!- GregorR-L has quit ("Leaving"). 01:34:21 Huffman thingies. Hmm. 01:34:25 Would it compress well? 01:38:08 I dunno. 01:40:37 -!- Arrogant has joined. 01:47:41 -!- Sgeo has quit (Remote closed the connection). 01:48:48 Now, if one ran LZW over Huffman codes... 01:49:57 * ihope_ gets bored and implements LZW in Haskell instead of this boring stuff 01:50:32 where boringStuff = filter javaApplets (`isRelatedTo` lzw) 01:52:13 Actually, maybe I'd rather not do that. 02:05:48 -!- Arrogant has quit ("Leaving"). 02:07:09 So? How does it compress? 02:36:20 Huffman codes over LZW? 02:36:27 Haven't tried it. 02:45:13 I suppose I ought to post this here too: 02:45:15 http://www.youtube.com/watch?v=AyvrqcxNIFs 02:45:17 Title: _UCLA Police Taser Student in Powell_ Length: 06:53 02:45:18 the length and title say it all, really 02:46:14 yeah 02:46:16 I saw that 02:46:29 scary 02:48:11 Can you say "bystander effect"? 02:48:26 What's that 02:48:27 ? 02:49:29 http://en.wikipedia.org/wiki/Bystander_effect 02:50:18 hm 02:50:30 I was just talking about this with a friend of mine earlier today. 02:50:32 aah 02:50:45 Yeah I was supprised that the other kids didn't do anything 02:50:46 :/ 02:53:12 -!- Asztal has quit ("Chatzilla 0.9.75 [IceWeasel 1.0.1b2] (kidding!)"). 02:53:34 kinda pisses me off how people will just watch 02:53:50 bsmntbombdood: Oh, and you'd be different? 02:53:59 I hope I would 02:55:08 I'm not even going to bother responding to that, except with this sentance, which, in saying what is does, is actually quite a response. 02:55:11 * SimonRC goes to bed 02:55:55 I couldn't parse that 03:00:30 bsmntbombdood: a major contributing factor to others not stepping in to help is the fact that the officers could easily have tazed anyone who tried to interfere as well. 03:00:50 uh huh 03:01:24 it's one thing to try to help someone, it's another to stand up to someone with a weapon. 04:54:11 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)). 04:55:30 'night, all. 05:12:09 -!- puzzlet_ has joined. 05:15:51 -!- GregorR-L has joined. 05:20:31 -!- puzzlet_ has quit (Read error: 54 (Connection reset by peer)). 05:30:06 -!- puzzlet_ has joined. 05:35:51 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)). 05:43:04 -!- puzzlet_ has joined. 06:29:36 -!- Razor-X has quit (orwell.freenode.net irc.freenode.net). 06:29:36 -!- sekhmet has quit (orwell.freenode.net irc.freenode.net). 06:29:36 -!- Eidolos has quit (orwell.freenode.net irc.freenode.net). 06:29:36 -!- RodgerTheGreat has quit (orwell.freenode.net irc.freenode.net). 06:31:46 -!- sekhmet has joined. 06:31:46 -!- Razor-X has joined. 06:31:46 -!- RodgerTheGreat has joined. 06:31:46 -!- Eidolos has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 09:03:20 -!- Razor-X has quit (orwell.freenode.net irc.freenode.net). 09:03:20 -!- RodgerTheGreat has quit (orwell.freenode.net irc.freenode.net). 09:03:21 -!- sekhmet has quit (orwell.freenode.net irc.freenode.net). 09:03:21 -!- Eidolos has quit (orwell.freenode.net irc.freenode.net). 09:03:34 -!- CXII has joined. 09:03:34 -!- sekhmet has joined. 09:03:34 -!- Razor-X has joined. 09:03:34 -!- RodgerTheGreat has joined. 09:03:34 -!- Eidolos has joined. 09:03:50 -!- CXI has quit (Read error: 104 (Connection reset by peer)). 09:08:22 -!- GregorR-L has quit ("Leaving"). 09:14:22 -!- Razor-X has quit (orwell.freenode.net irc.freenode.net). 09:14:22 -!- RodgerTheGreat has quit (orwell.freenode.net irc.freenode.net). 09:14:22 -!- CXII has quit (orwell.freenode.net irc.freenode.net). 09:14:22 -!- sekhmet has quit (orwell.freenode.net irc.freenode.net). 09:14:22 -!- Eidolos has quit (orwell.freenode.net irc.freenode.net). 09:14:24 -!- puzzlet_ has quit (orwell.freenode.net irc.freenode.net). 09:14:24 -!- bsmntbombdood has quit (orwell.freenode.net irc.freenode.net). 09:14:25 -!- ihope_ has quit (orwell.freenode.net irc.freenode.net). 09:14:28 -!- mtve has quit (orwell.freenode.net irc.freenode.net). 09:14:43 -!- Eidolos has joined. 09:14:43 -!- RodgerTheGreat has joined. 09:14:43 -!- Razor-X has joined. 09:14:43 -!- sekhmet has joined. 09:14:43 -!- CXII has joined. 09:14:43 -!- puzzlet_ has joined. 09:14:43 -!- ihope_ has joined. 09:14:43 -!- bsmntbombdood has joined. 09:14:43 -!- mtve has joined. 09:51:19 -!- jix_ has joined. 11:11:28 -!- ivan` has quit (" HydraIRC -> http://www.hydrairc.com <- IRC has never been so good"). 11:34:37 -!- tgwizard has joined. 14:09:04 -!- jix__ has joined. 14:26:49 -!- jix_ has quit (Read error: 110 (Connection timed out)). 16:08:06 -!- cmeme has quit (Excess Flood). 16:09:27 -!- cmeme has joined. 16:21:02 -!- Sgeo has joined. 16:36:56 -!- CakeProphet has changed nick to UnregisteredNick. 16:37:39 -!- UnregisteredNick has changed nick to CakeProphet. 16:38:12 -!- CakeProphet has changed nick to SevenInchBread. 17:19:11 -!- meatmanek has quit (orwell.freenode.net irc.freenode.net). 17:20:31 -!- ihope_ has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09"). 17:29:49 -!- meatmanek has joined. 17:36:49 -!- meatmanek has quit (orwell.freenode.net irc.freenode.net). 17:36:49 -!- pgimeno has quit (Read error: 131 (Connection reset by peer)). 17:37:09 -!- meatmanek has joined. 17:41:45 -!- rt has quit ("ircII EPIC5-0.2.0 -- Are we there yet?"). 17:53:53 -!- pgimeno has joined. 18:04:09 -!- oerjan has joined. 18:44:54 -!- oerjan has quit ("Later"). 18:47:13 -!- Asztal has joined. 18:51:06 Today's challenge.... 18:51:17 create a Brainfuck interpreter in Brainfuck 18:52:13 doesn't Brainfuck have a fixed amount of cells (30000)? 18:53:18 meaning you would have a really hard time storing the hosted program's data and the interpreter's state at the same time 18:55:35 That's why it's a CHALLENGE 18:56:59 If brainfuck is Turing complete... it can do it. 18:57:48 indeed 19:02:00 I feel like creating a "brainfuck with functions" 19:02:08 thus bastardizing the whole language concept... 19:02:32 I read about one 19:02:45 Subroutines 19:04:06 You could give subroutines a number label... 19:04:10 in the program... 19:04:17 and give the language two pointers... 19:04:55 You don't need two pointers, you need a stack to keep the pointers on 19:05:32 along with return addresses 19:05:45 with two new commands. "@" switches the control over to the other pointer.... and "&" calls the subroutine with a label that matches the number in the current cell.... using the inactive pointers cell value as input. 19:05:53 yes... overly elaborate and confusing... I like my idea. 19:06:17 this game http://method-missing.org/2006/shmup-status-report-1 searches a name.. someone has an idea? 19:07:08 in subroutines... ; would represent the functions input... and , would return a value 19:10:12 it woudl be more powerful... since you're no longer limited to a single linear sequence of cells... you can "break it up" into subroutines... so it would be easier to organize and work with. 19:12:38 -!- wezyap has joined. 19:13:28 -!- GregorR has quit (Read error: 60 (Operation timed out)). 19:13:28 -!- EgoBot has quit (Connection timed out). 19:27:50 I don't understand why Brainfuck interpreters use a limited array size. 19:28:12 You can easily expand the array when nessecary. 19:34:30 SevenInchBread: if the memory is limited then it's simply impossible to interpret all brainfuck programs with a brainfuck interpreter 19:34:49 depending on how you define "interpret" of course 19:35:03 * SevenInchBread is confused now 19:40:45 in some cases, an arbitrary memory size is easier to implement- remember, the language was designed to be implemented in the smallest possible compiler. 30000 cells is simply a number that people agree is sufficient for most tasks, and supported as a standard. 19:41:54 I feel like making a one line BF interpreter 19:42:44 I did a one-liner in perl earlier, mainly because I'd assumed that's how perl coders usually finish their code. 19:43:43 I think perl users and BF users have a common appreciation for the "neat code block" way of displaying their work. 19:44:15 ...I just like compressing things into one line... 19:45:41 here's the semi-readable version of my interpreter: 19:45:42 http://www.nonlogic.org/dump/text/1163878974.html 19:46:38 the only thing that tripped me up in writing it was forgetting that perl uses eq for string comparison, rather than ==. 19:46:53 hmmm... that's not one line. :P 19:47:02 it can be. 19:47:13 in perl, it makes no difference 19:47:36 and I thought you'd be more interested in the structure of the program than it's formatting 19:47:46 by "line" I mean... a single compound expression. 19:48:09 hm. tricky. 19:48:40 are regular expressions turing-complete? 19:49:40 well... they don't really "compute"... 19:49:51 they just sort of... find matches. 19:50:03 not "compute" in a conventional sense... 19:50:09 right 19:50:17 It would be very hard to program in regex... 19:50:35 because they just sort... of... don't work like that. *scratches head* 19:52:48 regular expressions can make logical comparisons, so I'll bet that if you combined a while-loop and a regex, you could simulate a universal turing machine 19:53:06 symbolic rewriting was the basis of turing machines to begin with 19:53:33 -!- tgwizard has quit (Remote closed the connection). 19:56:58 it's quite a challenge to wrap your brain around... 20:09:00 so you're saying that there might be a regular expression that, if appled enough times, could mutate some input into a list of fibonacci numbers? 20:09:09 because that would be awesome :D 20:09:24 * SevenInchBread smells a new esoteric language cooking. 20:09:39 hmmm... creating a bf interpreter in one expression is proving to be a puzzle... 20:10:04 so far (in Python), I've got: 20:10:06 ambda bf: [lambda x, y: ((x + 1 if com == "<" else (x - 1 if com == ">"), (((y + 1 if y < 255 else 0) if com == "+" else ((y - 1 if y > 0 else 255) if com == "-") if com != "," else ord(raw_input("Enter a character as input:"))), (1 if com == "." else 0))))] 20:10:11 which doesn't really... do anything... 20:10:55 it just takes the pointer location x and the size of a cell 1 and does stuff to it... 20:12:34 In order to do this WITHOUT making my head explode... I'm going to need to utilize at least two lines. 20:14:01 * RodgerTheGreat snickers 20:14:36 one line being a lambda function that returns a sequence representing the current cell, current cell value, and whether or not to print the cell value... 20:15:36 Asztal: yeah, that's the idea- I'm pretty sure it ought to be possible. 20:17:06 -!- calamari has joined. 20:18:59 calamari: how familiar are you with regular expressions? 20:20:37 I want to write one that adds two numbers together, that should be a nice first regex 20:20:41 dunno, why? 20:20:41 I'm pondering the turing-completeness of a string substitution regular expression wrapped in a loop. 20:20:48 -!- GregorR-L has joined. 20:20:53 interesting 20:21:03 I read about a language kinda like that 20:21:12 not regexs though 20:21:18 I'm thinking math might be simpler to implement if you used binary or something- fewer symbols to bother with. 20:21:58 you effectively have to hardcode every two-digit pairing to handle carrying, and the rest is pretty simple. 20:22:07 I think. 20:22:32 yeah, I think so 20:22:40 well, if I remember correctly, a single loop is enough 20:22:53 I was going to ask how to pick the last digit pair in the string, but I just realised how easy that is :/ 20:23:17 but obviously for some langs, one loop isn't enough.. bf 20:23:22 calamari: correct, as we learned from the turing completeness proof for the Z3/ 20:24:10 can you change an arbitrary memory location? 20:24:32 -!- cmeme has quit (Connection reset by peer). 20:24:39 it was actually more subtle than that- let me see if I can find the article again. 20:24:56 seems like you'd have to know the value you wanted to change in order to change it 20:25:09 http://www.zib.de/zuse/Inhalt/Kommentare/Html/0684/universal2.html 20:25:11 there 20:25:12 -!- cmeme has joined. 20:25:42 -!- cmeme has quit (Read error: 131 (Connection reset by peer)). 20:26:14 -!- cmeme has joined. 20:26:20 I remember rewriting a bf interpreter to only use one loop 20:26:29 need to find it 20:27:18 I'll bet that with a suitably insane coding technique, you could code a UTM in BF with only one loop. 20:27:38 can't be done 20:27:43 hm 20:28:10 looks like I used if statements 20:28:27 It can be done, sure. 20:28:28 with 8-bit cells, it would either loop forever or loop at most 255 times 20:28:47 Push [s as you hit them, pop ]s as you hit them. 20:29:12 Oh wait, we're talking about two different things ** 20:29:17 indeed 20:29:25 GregorR-L: I'm pondering the turing-completeness of a string substitution regular expression wrapped in a loop. 20:29:31 yes, the Z3 solution depends on having multiplication and division, from which conditional logic can be abstracted- and then there's the halting problem. 20:29:32 HAVE COGENT CONVERSATIONS!!! 20:29:50 I'm inclined to agree with SimonRC now that I think about it more. 20:31:58 RodgerTheGreat: Regular expressions aren't Turing complete. Regular expression matching is decidable (it is in NP) but Turing machines are not genarally decidable. Regexes, OTOH... 20:33:54 RodgerTheGreat: ah, wait, you've now started talking about substitution, which is a regex thing not a regular expression thing. 20:34:54 I'm pretty sure regex is short for regular expression 20:35:02 [It is] 20:35:46 so, RodgerTheGreat: ah, wait, you've now started talking about substitution, which is a regular expression thing not a regular expression thing. 20:35:47 it used to be, but any decent regex engine allows more powerful things than just regular expressions. 20:35:50 However a regular expression engine can have any range of powers, and a "regular expression" is just a pattern matching thing, so substitution has nothing to do with "regular expessions," it's just a power of the regex engine. 20:36:23 * SimonRC is making the same distinction Wall did. 20:36:55 ah, ok- thank you for clearing up any confusion regarding my use of terminology. 20:38:07 aha, here is an example: \n Where n is a digit from 1 to 9; matches what the nth marked subexpression matched. This construct is theoretically irregular and has not been adopted in the extended regular expression syntax. 20:38:25 why couldn't we have 2 fingers, it would make my current one much simpler. 20:38:32 the \n syntax expresses something impossible in regular expresions but possible in regexes 20:42:52 And here is where I'm getting the Larry Wall definition from: http://dev.perl.org/perl6/doc/design/apo/A05.html 20:43:01 Perl Apocalypse 5 20:43:19 "... generally having to do with what we call "regular expressions", which are only marginally related to real regular expressions. Nevertheless, the term has grown with the capabilities of our pattern matching engines, so I'm not going to try to fight linguistic necessity here. I will, however, generally call them "regexes" (or "regexen", when I'm in an Anglo-Saxon mood)." 21:11:01 -!- ivan` has joined. 21:14:41 -!- wezyap has quit (Remote closed the connection). 21:54:06 -!- anonfunc has quit. 21:56:55 -!- GregorR-L has quit ("Leaving"). 22:03:03 -!- Asztal has quit ("Chatzilla 0.9.75 [IceWeasel 1.0.1b2] (kidding!)"). 22:05:52 -!- Arrogant has joined. 22:28:51 -!- bluew has joined. 22:28:56 -!- bluew has left (?). 22:34:36 -!- calamari has quit ("Leaving"). 23:04:31 -!- tgwizard has joined. 23:17:26 -!- Arrogant has quit ("Leaving"). 23:20:55 -!- ivan` has changed nick to ivan. 23:21:22 -!- ivan has changed nick to ivan`. 23:33:52 -!- cmeme has quit ("Client terminated by server"). 23:35:06 -!- bsmntbombdood has changed nick to xor. 23:35:14 -!- cmeme has joined. 23:41:49 -!- Asztal has joined.