00:01:33 Oh dear. 00:02:08 main = putStr x >> print x where x = "main = putStr x >> print x where x = " 00:02:45 hah, old and boring. we should aspire to being flipping mad 00:05:01 main = flip mad (putStr x) (print x) where mad = (<<); x = "main = flip mad (putStr x) (print x) where mad = (<<); x = " 00:06:52 Hey, even better: main = flip mad (print x) (putStr x) where mad = (>>); x = "main = flip mad (print x) (putStr x) where mad = (>>); x = " 00:12:38 main = sequence_ $ [putStr, print] >>= return . flip ($) "main = sequence_ $ [putStr, print] >>= return . flip ($) " 00:13:19 s='s=%r;print s%%s';print s%s 00:14:14 * oerjan points out this is _not_ a _shortest_ quine contest. We did that last time. 00:51:08 So. Language lobbying. 00:51:28 -!- sebbu has quit ("@+"). 00:57:29 Let's do a BF busy beaver! 00:57:48 See how much you can output in a 10-character program. 00:58:20 My entry: .......... 00:58:31 ,[.,] 00:58:37 No input allowed. 00:58:44 and the program must halt. 00:58:45 I know; j/k. 00:58:51 Ooh, here's a better one: +++[....-] 00:59:22 +[[.+]+] 00:59:37 ! 00:59:40 Huh? 00:59:40 If one uses a wrapping implementation, it never ends. 01:00:16 Does it end in a wrapping implementation? 01:00:19 if one uses a non-wrapping implementation, it never ends either. 01:00:59 oerjan: It would crash if it doesn't wrap but only allows 8-bit cells. 01:01:05 How about we say the tape is infinite in both directions, each cell can hold any non-negative integer, and decrementing 0 yields 0? 01:01:21 Crashing doesn't count! 01:01:22 Yes, it'd work. 01:01:26 >:-| 01:01:47 It only crashes if cell size is limited but doesn't wrap. 01:01:57 Either that, or you're not allowed to decrement 0. 01:02:07 My implementation doesn't decrement at all. 01:02:22 We don't want any -[.-] here. 01:02:34 Nor +[.+], for that matter. :-) 01:02:37 why not have unbounded negative? 01:02:45 oerjan: convenience? 01:03:04 But +[.+] isn't an infinite loop, like my program. ;) 01:03:05 Then again, allowing unbounded negative is probably fine. 01:03:07 all it does is making 0 decrementing weird. 01:03:28 The tape is infinite in both directions and each cell can hold any integer. 01:03:39 (unless nonwrapping and unbounded cells) 01:03:42 Is it possible to do better than +++[....-] (12)? 01:04:20 Pikhq: what about unbounded wrapping? 01:04:33 ihope: That's an oxymoron. 01:04:43 Wrapping only has a meaning with bounded cell size. 01:05:04 ihope: Sure is. 01:05:14 +[......-] 01:05:28 huh? 01:05:32 . . . Never mind. 01:05:37 It'd only loop once. 01:06:12 0, 6, 10, 12, 10, 6, 0! 01:06:45 I vote for impossible. 01:06:56 +[.......] 01:07:07 Unless, of course, one is objected to infinite loops. 01:07:29 That doesn't output anything at all. 01:07:33 one is. a BB problem by definition looks at halting programs only. 01:07:51 If you skip infinite loops, that is. 01:07:54 Ah. 01:08:03 In that case. . . 01:08:34 ihope: I can only find alternate ways of expressing an equivalent program in 10 chars. . . 01:08:52 ++++[...-] (12) 01:08:57 Exactly. 01:09:12 . . . Unless one allows for 8-bit wrapping cells. 01:09:14 +++[-....] (12), +++[..-..] (12), etc. 01:09:27 Pikhq: cells can hold any integer. 01:09:40 And the tape is infinite in both directions. 01:09:41 In which case, the max possible is the entire ASCII table. 01:09:49 ihope: Which is why I can't make anything better. 01:10:01 So have we pretty much agreed on 12? 01:10:05 Yeah. 01:10:26 Should be impossible to do better than 9 in nine characters, then: +++[...-] (9) 01:10:40 Right. 01:10:48 Alternatively, ......... (9) 01:11:27 How about we try eleven characters, then? To start off: ++++[....-] (16) 01:12:02 Max. 01:12:21 I sense a pattern. 01:14:59 the pattern breaks once you get enough room to use two cells. 01:15:21 The sequence is uncomputable. 01:16:10 brainfuck is wordy enough that it may take a while before we reach the uncomputable stage 01:16:50 Well, let's see here: +[>+[.-]<-] (11,1) 01:17:09 I think it doesn't get any better than 16. 01:18:12 ihope: The sequence as a whole is uncomputable, but finite segments of it *are* computable. 01:18:40 Now for twelve: there's +++++[....-] (12,20) and ++[>+[.-]<-] (12,2). Thirteen: +++++[.....-] (13,25) and ++[>++[.-]<-] (13,4). 01:18:50 Pikhq: surely "a finite segment". 01:20:20 Fourteen: ++++++[.....-] (14,30) and ++[>++[..-]<-] (14,8). Fifteen: ++++++[......-] (15,36) and +++[>++[..-]<-] (15,12)... eh. 01:21:04 the two-cell version has 5 char overhead which needs to be overcome 01:21:23 (14,30), (15,36), (16,42), (17,49), (18,56), (19,64)... 01:22:36 (x/2)^2 < ((x-5)/3)^3 01:22:45 That's for the one-cell version. For the two-cell: (11,1), (12,2), (13,4), (14,8), (15,12), (16,18), (17,27), (18,36), (19,48)... 01:23:03 Indeed, doing it that way is probably much easier. 01:23:44 (By (x/2), do you mean ((x-3)/2)?) 01:24:07 i didn't include the overhead for the 1-cell version 01:24:51 also it is slightly approximate if the divisions are not exact 01:27:32 I'm seeing more like an 8-cell overhead. 01:27:48 if you add the 3 to the 5, yes 01:28:06 ((x-8)/3)^3... 01:29:24 According to mbot, the switchover ideally happens at about 20.961944507581496 characters. 01:29:36 mbot? 01:29:43 Yes, mbot. 01:31:20 -[.-] 01:31:26 (for wrapping) 01:31:27 Let's try a bit more "manual" stuff: (20,72) and (20,64), (21,81) and (21,80), (21,90) and (21,100). 01:31:47 i'm writing a haskell program 01:31:48 -[>-[.-]<-] 01:32:08 -[>-[>-[.-]<-]<-] 01:32:27 bsmntbombdood: now do one that uses cells that can hold any integer! 01:32:53 what is the result of decrementing 0? 01:34:04 bsmntbombdood: -1 is an integer. 01:35:48 oh 01:35:59 Actually, should the alphabet length be 2? 01:36:10 that's what it's usually defined as in the turing machine BB 01:36:53 You want @ instead? 01:37:02 idunno 01:37:19 the haskell script says two cells work from 22, giving 100 > 99 01:37:59 21 just barely misses at 81 vs. 80 01:38:20 * ihope studies the winner of S(3,2) 01:38:34 and shouldn't it be non-zeros on the tape instead of printing? 01:39:20 bsmntbombdood: the existence of a . is pretty convenient, eh? 01:39:24 er, you already had that 01:39:54 ihope: what do you mean? 01:46:25 bsmntbombdood: BF is imperative, so you can have an output command. 01:46:38 ... 01:46:50 You can add one to a Turing machine too, but it doesn't look quite as nice. 01:47:38 what about max shifts? 01:48:08 You can also do that. 01:48:25 I know you can 01:50:24 ++[>++[>-<-]<-] 01:50:28 lame 01:51:57 "If the cell is 1, halt; otherwise, set it to 1 and move right. Then, if the cell is 0, set it to 1 and move left. Repeat until the cell is 1. Then, if the cell is 0, set it to 1 and move left. Repeat until the cell is 1, then move left and start over." 01:52:13 All cells start out as zero. What happens? 01:52:46 doesn't halt? 01:53:02 Surely it halts. 01:53:27 It halts *eventually*. 01:53:45 Repeat until the cell is 1. Then, if the cell is 0, set it to 1 and move left.?? 01:54:37 bsmntbombdood: Bad description. 01:54:47 Hmm. 01:55:09 Oops. 01:55:29 "If the cell is 1, halt; otherwise, set it to 1 and move right. Then, if the cell is 0, set it to 1 and move left. Repeat until the cell is 1, then set it to 0 and move right. Then, if the cell is 0, set it to 1 and move left. Repeat until the cell is 1, then move left and start over." 02:54:46 ...what's the UNIX command for replacing stuff in files with other stuff? 02:54:55 emacs 02:55:03 ...through the whole directory. 02:55:14 and subdirectories. 02:55:23 bash script 02:55:35 .......what command? 02:55:51 any scriptable editor 02:56:01 SPECIFIC ANSWER PLZ 02:56:14 does each stuff span more than one line? 02:56:20 Find + sed. 02:56:30 nope. 02:57:32 bash: Find: command not found 02:57:43 then find/grep + sed/perl should work. 02:58:19 >.> I really don't know enough about shell commands to take that and turn it into a command. 02:58:52 ...I guess I could I just write a program that does it. 02:58:54 -gasp- 02:59:49 bsmntbombdood: Lowercase find. 03:00:00 Pikhq: english fails 03:01:25 "find" !"Find" 03:02:06 se 03:02:11 perl -i -e 's/from/to/' `grep -l -r from .` 03:02:18 something _like_ that 03:02:23 hm... 03:02:38 add -p to the perl 03:04:17 and test carefully first. 03:04:35 recursive find + sed 03:04:51 ....yeah... I don't want to... fuck up my entire source... which I'm pretty sure won't happen... but 03:05:29 maybe the argument list generated by the grep will be too long 03:05:46 pipe it through xargs 03:06:13 eh... I'll just use Python. :) 03:07:53 chicken :) 03:08:14 I FEAR GOING OUT OF MY COMFORTABLE STATUS QUO SHUT UP MAN 03:09:48 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 03:13:49 ...anything in this that makes it look like it's going to explode? http://deadbeefbabe.org/paste/4270 03:14:36 OH WAIT 03:14:38 I SEE 03:15:30 okay... http://deadbeefbabe.org/paste/4270 ... now with pathnames properly joined. 03:16:32 um... does f.read() read the whole file? 03:17:12 yeah 03:17:48 i guess since the replacement is longer you won't leave any junk at the end. 03:19:04 -!- bsmntbombdood has quit (Read error: 145 (Connection timed out)). 03:19:10 but you should still test first :) 03:19:43 ....hmmm... now sure how to test... other than by simulating walk() and putting in sample strings. 03:20:25 eh... whatever... I'm feeling lucky. 03:20:33 you could split it into two subroutines, one to iterate and one to change a file 03:21:26 * CakeProphet checks to see if anything exploded. 03:21:40 -!- bsmnt_bot has quit (Read error: 145 (Connection timed out)). 03:21:42 YOUR HARDDRIVE IS ALL GONE!!!!!111 03:23:18 well.... I did a recursive count of all occurances of both words. 03:23:20 AND 03:23:27 MUCH TO MY SURPRISE... MUDBALL IS NOT IN ANY OF THE FILES 03:23:37 -!- ihope has quit (Connection timed out). 03:23:40 WHILE SOPHIAMU APPEARS TO OCCUR 26 TIMES. 03:24:00 ah... computer programming... making life easier for us all. 03:25:18 YOU STEENKING LIAR! 03:25:43 ...now I shall perform more sweeping changes to my MUD. 03:25:48 I've renamed everything way too much 03:26:48 okay... so this change makes all the files shorter? How do I ensure lack of junk? 03:27:23 .... I could do f.truncate(0) beforehand. :) 03:30:29 ...I apparently don't have enough permission to... truncate my own files. 03:30:55 maybe put it after seek? 03:31:34 nope... trunace() is independent of the current position. 03:31:58 what i mean is sometimes you must do seek between read and write 03:32:11 oh! I know why. 03:32:22 ....I put the mode in r 03:35:05 why did it work the first time then? 03:35:44 the first one was r+... then for the count check I set it to r... 03:35:58 oh 05:46:58 -!- bsmntbombdood has joined. 06:08:17 -!- oerjan has quit ("gaudy knight"). 07:24:12 BEAUTIFUL http://sophiamu.googlecode.com/svn/trunk/ 07:24:29 ? 07:25:49 ...it's my incomplete MUD... 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:02:22 -!- bsmntbombdood has quit (Remote closed the connection). 08:13:32 -!- Sgeo has quit ("Ex-Chat"). 08:21:18 -!- bsmntbombdood has joined. 08:35:21 -!- CakeProphet has quit (Read error: 113 (No route to host)). 08:56:46 -!- sebbu has joined. 09:05:02 -!- sebbu2 has joined. 09:13:03 -!- sebbu has quit (Read error: 60 (Operation timed out)). 09:26:22 bsmntbombdood: I've decided on ObjC. 09:26:24 Wanna help? 10:07:36 what? 10:07:39 objC? 10:09:06 http://sophiamu.googlecode.com/svn/trunk/ what's that? 10:17:49 bsmntbombdood huh? 11:03:42 -!- oklopol has quit (Read error: 110 (Connection timed out)). 13:48:27 -!- jix__ has joined. 16:44:29 -!- ihope has joined. 16:48:55 -!- Sgeo has joined. 17:04:28 -!- sebbu has joined. 17:06:22 -!- sebbu2 has quit (Read error: 60 (Operation timed out)). 17:12:55 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 17:29:21 nooga: Objective C. 17:34:18 You know, an esolang based on fluid dynamics would be pretty cool. 17:34:24 No it wouldn't ;-; 17:34:30 Because I'm bad at that topic. 17:34:43 An esolang based on electricity and magnetism would be pretty cool though. 17:35:30 How about an esolang based on macrophysics? 17:35:39 Hmmm... alright. 17:35:44 You know. All of macrophysics. 17:35:48 Yeah. 17:35:54 Pretty easy to implement. 17:36:21 We can take inspiration from the other project in this domain. 17:36:22 If you can't accurately simulate an underwater light bulb exploding due to the fact that it contains flammable gases, it's not all of macrophysics. 17:36:25 (Life.) 17:37:14 Let's see... you need to simulate chemical reactions, because burning is a chemical reaction, and fluid dynamics, and electric stuff... 17:43:39 Pretty easy to implement, you say? 17:45:05 Very. 17:47:02 a u 17:48:07 * nooga is learning python 17:48:34 * nooga is a rubyist 17:48:50 Yer boring. 17:50:03 Yer pickle. 17:52:54 ihope: The chemical reactions are microphysics. ;) 17:53:10 Pff. 17:53:16 * Pikhq calls it microphysics about when quantum mechanics become relevant 17:53:34 Make the light bulb explode because the filament gets too hot, then. 17:53:41 That's easy. 17:53:50 That's remarkably easy. 17:54:39 Resistance of the filament allows one to know how much energy it puts out. . . This energy gets applied to the gas inside, increasing temperature and therefore pressure. . . Once the pressure gets high enough, it a'splodes. 17:54:50 Only requires two laws, I think. 17:55:20 Two laws to describe how the glass fragments and how the water flows in? 17:55:29 Oh, right. 17:55:32 Depends on the circuit, the gas inside the bulb, the heat capacity of the bulb, and the plastic limit of the bulb. 17:55:32 That's the hard part. 17:55:45 Plastic limit? 17:55:47 kill 17:55:56 * ihope kills nooga 17:55:57 Wait, what? 17:56:00 But it's easy to see the laws which could apply. 17:56:12 Sukoshi: I was simplifying it a bit. . . 17:56:29 So Pikhq, wanna join the PDF viewer development crew? 17:56:40 The *point*, though, is that a moderately skilled programmer/physics major could handle it. 17:57:05 Sukoshi: What's the point? xpdf/kpdf/gpdf works just as well. 17:57:12 Pikhq: Only in *nix 17:57:17 And they're all based on the same library. 17:57:22 Port it. 17:57:31 No. That's annoying. 17:57:47 The core library should run on OS X, and can be made to work on Cygwin. . . 17:57:53 Ports are flaws/limitations/differences in design ideology. 17:58:13 All one would need to do is define a new UI, which the xpdf source base is designed to handle. 17:58:42 Well, Xpdf's renderer is sometimes not very ideal. 17:59:14 Hell, I wouldn't be surprised if xpdf has a GNUstep UI already. . . In which case, getting it to run in Cocoa is a matter of recompilation. 17:59:16 Plus it's C++. 17:59:48 Fine. Maybe fork from the Ghostscript renderer? 18:00:08 I'll be using GS as inspiration and probably taking bits out of it, yeah. 18:00:12 But PDF is a lot simpler than PS. 18:00:33 Remember Wilson called the American people to Halt the Hun? Null the C++. 18:01:56 Yeah, but, IIRC, PDF is a subset of PS, allowing Ghostscript code to be very useful. 18:03:29 It is. 18:03:46 So there's a debate there whether I should implement the whole PS standard and then PDF after, or PDF then expand to PS. 18:06:18 I think doing the whole PS standard would make for a more robust chunk of code than PDF first. 18:06:46 Alright. 18:06:49 Wanna join aboard? 18:07:04 I'll be only getting 2, maybe 3 hours of programming time until my AP testing finishes. 18:07:15 This is, to quote Marimite, my way of ``running away'' from exams :P 18:12:32 Likewise, I fear (except on weekends). . . 18:12:43 I've also got prom stuff to work on, so. . . 18:13:57 I skipped out on Junior Prom for Physics. 18:14:03 Yes, I love electricity more than Prom. Sue me. 18:14:53 If you're a Senior though, then it's important. 18:15:56 Junior. 18:16:05 Who's already got a date to the prom. . . 18:17:51 Fool. 18:18:34 PPDF weeps. 18:18:41 Let it weep. 18:19:03 I could probably create a PS parser in the next 5 minutes. . . 18:19:06 Yay, RPN! :p 18:19:32 Each individual part of the project isn't as hard as managing it altogether. 18:20:03 * Pikhq showers before going to go get a tux 18:20:11 And abstracting each part sufficiently so we can change the design in one part and not alter other parts sufficiently, and keeping it all as platform-independant as possible, or at least seperating out platform-independant components from platform-dependant ones. 18:20:20 *independent 18:20:21 Sukoshi: Yeah. . . Thus why well-defined interfaces between parts is a good idea. 18:20:34 -!- bsmntbombdood has quit (Read error: 60 (Operation timed out)). 18:48:50 -!- Pikhq has quit (Read error: 110 (Connection timed out)). 19:38:26 -!- CakeProphet has joined. 19:44:32 -!- ShadowHntr has joined. 19:45:29 -!- calamari has joined. 19:56:34 -!- helios_ has joined. 19:58:48 -!- helios_ has quit (Client Quit). 20:09:13 -!- Pikhq has joined. 20:19:32 -!- bsmntbombdood has joined. 20:21:05 -!- bsmnt_bot has joined. 20:21:14 Sukoshi: cool 20:22:19 bsmntbombdood: You're early. 20:22:35 Early for what? 20:24:25 Nevermind. 20:24:57 I know nothing about gui programming 20:25:18 Neither do I. 20:25:20 Welcome aboard :) 20:25:41 Much less cross platform gui programming 20:25:52 GTK. 20:26:17 I'm learning ObjC, I'm learning PS/PDF, I'm learning GTK. 20:26:21 This is a learning project. 20:26:31 I hope you aren't daunted, being a regular of #esoteric :) 20:26:50 GTK looks out of place on windows I think 20:27:30 Well, what do you want to do, write something yourself via SDL? 20:27:44 Err, no sarcasm meant there. 20:28:22 I don't know what SDL is 20:28:31 OpenGL/GLUT? 20:28:35 .... 20:28:51 Go and google SDL. It's a cross-platform graphics engine. 20:29:21 Simple Directmedia Layer? 20:29:52 Yep. 20:30:47 Hmmm. ObjC seems very unsupported... 20:30:51 I'm considering switching... 20:32:26 -!- ihope has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09"). 20:34:17 using something low level might be easier for drawing pdfs 20:35:49 SDL then? 20:36:34 I think figure out the design first, then pick whatever fits best 20:36:51 Alright. 20:36:59 One final tally: ObjC then? 20:37:10 We might use D actually. I dunno. 20:37:15 Choose. 20:37:16 noo! 20:37:33 ObjC it is? 20:37:57 That's what I would prefer 20:39:11 http://libfoundation.opendarwin.org/ <-- We'll be using this. 20:42:26 weird license 20:43:30 There's little alternative, or else we'll have to code the base Object class ourselves. 20:45:41 probably not a good idea if we don't know objc 20:46:39 Exactly, heh. 20:49:53 -!- atrapado has joined. 20:50:19 what are you guys working on? 20:51:19 how about Cairo? 20:51:42 I was contemplating. How is it? 20:51:45 calamari: PDF Viewer? 20:51:49 haven't worked in it 20:51:53 but that may do the job. 20:51:59 in an esolang? 20:52:33 otherwise.. why? there are already so many hehe 20:53:14 http://en.wikipedia.org/wiki/Cairo_(graphics) 20:54:01 cairo doesn't have objc bindings 20:54:34 *shrug* 20:55:23 bbl 20:55:28 -!- calamari has quit ("Leaving"). 20:59:34 But it's C, no? 21:01:35 cairo is, yes 21:03:33 So we can wrap it ourselves. 21:05:18 -!- sebbu2 has joined. 21:06:20 All the SDL tutorials I can find are shit 21:24:42 -!- sebbu has quit (Success). 21:34:23 -!- atrapado has quit ("allserv quit"). 21:37:52 Don't use the tutorials. 21:37:55 Just read the documentation. 21:41:52 -!- oerjan has joined. 21:44:28 -!- ihope has joined. 21:55:48 You know, a Thue busy beaver would be pretty cool. 21:56:48 How much can you fit in an 80-by-24 box using only printable ASCII characters and newlines? 21:58:23 Uh, presumably 80x24x(number of printable characters)? 21:59:00 Rather, how long of a string can you produce doing that? 21:59:21 I guess there are often multiple ways of running a Thue program. 22:01:26 How about a Sortle busy beaver? 22:15:22 What's a busy beaver? 22:16:39 program to generate the most ones on the tape 22:20:39 Debian's package management is begining to tire me 22:21:21 i read about a new system on Lambda the Ultimate recently. purely functional package management. 22:21:42 OCaML owns your sleep. 22:21:52 What makes it pure functional? 22:22:02 http://lambda-the-ultimate.org/node/2176 22:56:16 * Pikhq returns. . . 23:36:26 -!- bsmnt_bot has quit (Read error: 145 (Connection timed out)). 23:37:32 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)). 23:38:17 -!- jix__ has joined. 23:38:40 -!- bsmntbombdood has joined. 23:39:33 -!- bsmnt_bot has joined. 23:39:51 (display ((lambda (x) (list (quote display) (list x (list (quote quote) x)))) (quote (lambda (x) (list (quote display) (list x (list (quote quote) x))))))) 23:39:56 my scheme quine 23:44:08 My quine: 23:44:30 Brilliant, no? 23:44:34 no 23:48:26 I see the early days of #esoteric were quite quiet 23:48:44 no, the early days were just fine. 23:48:57 the middle ages were quiet. 23:49:38 all secular thought was suppressed. 23:49:57 s/early days/early days of logging/ 23:50:20 shorter: ((lambda (x) (display (list x (list (quote quote) x)))) (quote (lambda (x) (display (list x (list (quote quote) x))))))