00:02:08 <ihope> main = putStr x >> print x where x = "main = putStr x >> print x where x = "
00:02:45 <oerjan> hah, old and boring. we should aspire to being flipping mad
00:05:01 <ihope> main = flip mad (putStr x) (print x) where mad = (<<); x = "main = flip mad (putStr x) (print x) where mad = (<<); x = "
00:06:52 <ihope> 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 <oerjan> main = sequence_ $ [putStr, print] >>= return . flip ($) "main = sequence_ $ [putStr, print] >>= return . flip ($) "
00:14:14 * oerjan points out this is _not_ a _shortest_ quine contest. We did that last time.
00:51:28 -!- sebbu has quit ("@+").
00:57:29 <ihope> Let's do a BF busy beaver!
00:57:48 <ihope> See how much you can output in a 10-character program.
00:58:20 <ihope> My entry: ..........
00:58:44 <oerjan> and the program must halt.
00:58:51 <ihope> Ooh, here's a better one: +++[....-]
00:59:40 <Pikhq> If one uses a wrapping implementation, it never ends.
01:00:16 <ihope> Does it end in a wrapping implementation?
01:00:19 <oerjan> if one uses a non-wrapping implementation, it never ends either.
01:00:59 <Pikhq> oerjan: It would crash if it doesn't wrap but only allows 8-bit cells.
01:01:05 <ihope> 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 <ihope> Crashing doesn't count!
01:01:47 <Pikhq> It only crashes if cell size is limited but doesn't wrap.
01:01:57 <ihope> Either that, or you're not allowed to decrement 0.
01:02:07 <Pikhq> My implementation doesn't decrement at all.
01:02:22 <ihope> We don't want any -[.-] here.
01:02:34 <ihope> Nor +[.+], for that matter. :-)
01:02:37 <oerjan> why not have unbounded negative?
01:02:45 <ihope> oerjan: convenience?
01:03:04 <Pikhq> But +[.+] isn't an infinite loop, like my program. ;)
01:03:05 <ihope> Then again, allowing unbounded negative is probably fine.
01:03:07 <oerjan> all it does is making 0 decrementing weird.
01:03:28 <ihope> The tape is infinite in both directions and each cell can hold any integer.
01:03:39 <Pikhq> (unless nonwrapping and unbounded cells)
01:03:42 <ihope> Is it possible to do better than +++[....-] (12)?
01:04:20 <ihope> Pikhq: what about unbounded wrapping?
01:04:33 <Pikhq> ihope: That's an oxymoron.
01:04:43 <Pikhq> Wrapping only has a meaning with bounded cell size.
01:05:37 <Pikhq> It'd only loop once.
01:06:12 <ihope> 0, 6, 10, 12, 10, 6, 0!
01:06:45 <ihope> I vote for impossible.
01:07:07 <Pikhq> Unless, of course, one is objected to infinite loops.
01:07:29 <ihope> That doesn't output anything at all.
01:07:33 <oerjan> one is. a BB problem by definition looks at halting programs only.
01:07:51 <ihope> If you skip infinite loops, that is.
01:08:34 <Pikhq> ihope: I can only find alternate ways of expressing an equivalent program in 10 chars. . .
01:09:12 <Pikhq> . . . Unless one allows for 8-bit wrapping cells.
01:09:14 <ihope> +++[-....] (12), +++[..-..] (12), etc.
01:09:27 <ihope> Pikhq: cells can hold any integer.
01:09:40 <ihope> And the tape is infinite in both directions.
01:09:41 <Pikhq> In which case, the max possible is the entire ASCII table.
01:09:49 <Pikhq> ihope: Which is why I can't make anything better.
01:10:01 <ihope> So have we pretty much agreed on 12?
01:10:26 <ihope> Should be impossible to do better than 9 in nine characters, then: +++[...-] (9)
01:10:48 <ihope> Alternatively, ......... (9)
01:11:27 <ihope> How about we try eleven characters, then? To start off: ++++[....-] (16)
01:12:21 <Pikhq> I sense a pattern.
01:14:59 <oerjan> the pattern breaks once you get enough room to use two cells.
01:15:21 <ihope> The sequence is uncomputable.
01:16:10 <oerjan> brainfuck is wordy enough that it may take a while before we reach the uncomputable stage
01:16:50 <ihope> Well, let's see here: +[>+[.-]<-] (11,1)
01:17:09 <ihope> I think it doesn't get any better than 16.
01:18:12 <Pikhq> ihope: The sequence as a whole is uncomputable, but finite segments of it *are* computable.
01:18:40 <ihope> Now for twelve: there's +++++[....-] (12,20) and ++[>+[.-]<-] (12,2). Thirteen: +++++[.....-] (13,25) and ++[>++[.-]<-] (13,4).
01:18:50 <ihope> Pikhq: surely "a finite segment".
01:20:20 <ihope> Fourteen: ++++++[.....-] (14,30) and ++[>++[..-]<-] (14,8). Fifteen: ++++++[......-] (15,36) and +++[>++[..-]<-] (15,12)... eh.
01:21:04 <oerjan> the two-cell version has 5 char overhead which needs to be overcome
01:21:23 <ihope> (14,30), (15,36), (16,42), (17,49), (18,56), (19,64)...
01:22:45 <ihope> 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 <ihope> Indeed, doing it that way is probably much easier.
01:23:44 <ihope> (By (x/2), do you mean ((x-3)/2)?)
01:24:07 <oerjan> i didn't include the overhead for the 1-cell version
01:24:51 <oerjan> also it is slightly approximate if the divisions are not exact
01:27:32 <ihope> I'm seeing more like an 8-cell overhead.
01:27:48 <oerjan> if you add the 3 to the 5, yes
01:29:24 <ihope> According to mbot, the switchover ideally happens at about 20.961944507581496 characters.
01:31:27 <ihope> 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 <oerjan> i'm writing a haskell program
01:32:27 <ihope> bsmntbombdood: now do one that uses cells that can hold any integer!
01:34:04 <ihope> bsmntbombdood: -1 is an integer.
01:36:10 <bsmntbombdood> that's what it's usually defined as in the turing machine BB
01:36:53 <ihope> You want @ instead?
01:37:19 <oerjan> the haskell script says two cells work from 22, giving 100 > 99
01:37:59 <oerjan> 21 just barely misses at 81 vs. 80
01:38:20 * ihope studies the winner of S(3,2)
01:38:34 <bsmntbombdood> and shouldn't it be non-zeros on the tape instead of printing?
01:39:20 <ihope> bsmntbombdood: the existence of a . is pretty convenient, eh?
01:39:24 <oerjan> er, you already had that
01:46:25 <ihope> bsmntbombdood: BF is imperative, so you can have an output command.
01:46:50 <ihope> You can add one to a Turing machine too, but it doesn't look quite as nice.
01:48:08 <ihope> You can also do that.
01:51:57 <ihope> "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 <ihope> All cells start out as zero. What happens?
01:53:27 <Pikhq> It halts *eventually*.
01:53:45 <bsmntbombdood> Repeat until the cell is 1. Then, if the cell is 0, set it to 1 and move left.??
01:54:37 <Pikhq> bsmntbombdood: Bad description.
01:55:29 <ihope> "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 <CakeProphet> ...what's the UNIX command for replacing stuff in files with other stuff?
02:56:14 <oerjan> does each stuff span more than one line?
02:57:43 <oerjan> then find/grep + sed/perl should work.
02:58:19 <CakeProphet> >.> I really don't know enough about shell commands to take that and turn it into a command.
02:58:52 <CakeProphet> ...I guess I could I just write a program that does it.
02:59:49 <Pikhq> bsmntbombdood: Lowercase find.
03:02:11 <oerjan> perl -i -e 's/from/to/' `grep -l -r from .`
03:04:17 <oerjan> and test carefully first.
03:04:51 <CakeProphet> ....yeah... I don't want to... fuck up my entire source... which I'm pretty sure won't happen... but
03:05:29 <oerjan> maybe the argument list generated by the grep will be too long
03:08:14 <CakeProphet> 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 <CakeProphet> ...anything in this that makes it look like it's going to explode? http://deadbeefbabe.org/paste/4270
03:15:30 <CakeProphet> okay... http://deadbeefbabe.org/paste/4270 ... now with pathnames properly joined.
03:16:32 <oerjan> um... does f.read() read the whole file?
03:17:48 <oerjan> 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 <oerjan> but you should still test first :)
03:19:43 <CakeProphet> ....hmmm... now sure how to test... other than by simulating walk() and putting in sample strings.
03:20:33 <oerjan> you could split it into two subroutines, one to iterate and one to change a file
03:21:40 -!- bsmnt_bot has quit (Read error: 145 (Connection timed out)).
03:21:42 <oerjan> YOUR HARDDRIVE IS ALL GONE!!!!!111
03:23:18 <CakeProphet> well.... I did a recursive count of all occurances of both words.
03:23:27 <CakeProphet> MUCH TO MY SURPRISE... MUDBALL IS NOT IN ANY OF THE FILES
03:23:37 -!- ihope has quit (Connection timed out).
03:24:00 <CakeProphet> ah... computer programming... making life easier for us all.
03:25:43 <CakeProphet> ...now I shall perform more sweeping changes to my MUD.
03:26:48 <CakeProphet> okay... so this change makes all the files shorter? How do I ensure lack of junk?
03:27:23 <CakeProphet> .... I could do f.truncate(0) beforehand. :)
03:30:29 <CakeProphet> ...I apparently don't have enough permission to... truncate my own files.
03:30:55 <oerjan> maybe put it after seek?
03:31:34 <CakeProphet> nope... trunace() is independent of the current position.
03:31:58 <oerjan> what i mean is sometimes you must do seek between read and write
03:35:05 <oerjan> why did it work the first time then?
03:35:44 <CakeProphet> the first one was r+... then for the count check I set it to r...
05:46:58 -!- bsmntbombdood has joined.
06:08:17 -!- oerjan has quit ("gaudy knight").
07:24:12 <CakeProphet> BEAUTIFUL http://sophiamu.googlecode.com/svn/trunk/
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 <Sukoshi> bsmntbombdood: I've decided on ObjC.
10:09:06 <nooga> http://sophiamu.googlecode.com/svn/trunk/ what's that?
10:17:49 <nooga> 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:34:18 <ihope> You know, an esolang based on fluid dynamics would be pretty cool.
17:34:30 <Sukoshi> Because I'm bad at that topic.
17:34:43 <Sukoshi> An esolang based on electricity and magnetism would be pretty cool though.
17:35:30 <ihope> How about an esolang based on macrophysics?
17:35:44 <ihope> You know. All of macrophysics.
17:36:21 <Sukoshi> We can take inspiration from the other project in this domain.
17:36:22 <ihope> 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:37:14 <ihope> Let's see... you need to simulate chemical reactions, because burning is a chemical reaction, and fluid dynamics, and electric stuff...
17:43:39 <ihope> Pretty easy to implement, you say?
17:48:07 * nooga is learning python
17:52:54 <Pikhq> ihope: The chemical reactions are microphysics. ;)
17:53:16 * Pikhq calls it microphysics about when quantum mechanics become relevant
17:53:34 <ihope> Make the light bulb explode because the filament gets too hot, then.
17:53:50 <Pikhq> That's remarkably easy.
17:54:39 <Pikhq> 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 <Pikhq> Only requires two laws, I think.
17:55:20 <ihope> Two laws to describe how the glass fragments and how the water flows in?
17:55:32 <Sukoshi> 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 <Pikhq> That's the hard part.
17:56:00 <Pikhq> But it's easy to see the laws which could apply.
17:56:12 <Pikhq> Sukoshi: I was simplifying it a bit. . .
17:56:29 <Sukoshi> So Pikhq, wanna join the PDF viewer development crew?
17:56:40 <Pikhq> The *point*, though, is that a moderately skilled programmer/physics major could handle it.
17:57:05 <Pikhq> Sukoshi: What's the point? xpdf/kpdf/gpdf works just as well.
17:57:17 <Sukoshi> And they're all based on the same library.
17:57:47 <Pikhq> The core library should run on OS X, and can be made to work on Cygwin. . .
17:57:53 <Sukoshi> Ports are flaws/limitations/differences in design ideology.
17:58:13 <Pikhq> All one would need to do is define a new UI, which the xpdf source base is designed to handle.
17:58:42 <Sukoshi> Well, Xpdf's renderer is sometimes not very ideal.
17:59:14 <Pikhq> 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:48 <Pikhq> Fine. Maybe fork from the Ghostscript renderer?
18:00:08 <Sukoshi> I'll be using GS as inspiration and probably taking bits out of it, yeah.
18:00:12 <Sukoshi> But PDF is a lot simpler than PS.
18:00:33 <Sukoshi> Remember Wilson called the American people to Halt the Hun? Null the C++.
18:01:56 <Pikhq> Yeah, but, IIRC, PDF is a subset of PS, allowing Ghostscript code to be very useful.
18:03:46 <Sukoshi> 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 <Pikhq> I think doing the whole PS standard would make for a more robust chunk of code than PDF first.
18:07:04 <Sukoshi> I'll be only getting 2, maybe 3 hours of programming time until my AP testing finishes.
18:07:15 <Sukoshi> This is, to quote Marimite, my way of ``running away'' from exams :P
18:12:32 <Pikhq> Likewise, I fear (except on weekends). . .
18:12:43 <Pikhq> I've also got prom stuff to work on, so. . .
18:13:57 <Sukoshi> I skipped out on Junior Prom for Physics.
18:14:03 <Sukoshi> Yes, I love electricity more than Prom. Sue me.
18:14:53 <Sukoshi> If you're a Senior though, then it's important.
18:16:05 <Pikhq> Who's already got a date to the prom. . .
18:19:03 <Pikhq> I could probably create a PS parser in the next 5 minutes. . .
18:19:32 <Sukoshi> 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 <Sukoshi> 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:21 <Pikhq> 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:22:19 <Sukoshi> bsmntbombdood: You're early.
20:26:17 <Sukoshi> I'm learning ObjC, I'm learning PS/PDF, I'm learning GTK.
20:26:21 <Sukoshi> This is a learning project.
20:26:31 <Sukoshi> I hope you aren't daunted, being a regular of #esoteric :)
20:27:30 <Sukoshi> Well, what do you want to do, write something yourself via SDL?
20:27:44 <Sukoshi> Err, no sarcasm meant there.
20:28:51 <Sukoshi> Go and google SDL. It's a cross-platform graphics engine.
20:30:47 <Sukoshi> Hmmm. ObjC seems very unsupported...
20:30:51 <Sukoshi> I'm considering switching...
20:32:26 -!- ihope has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
20:34:17 <bsmntbombdood> using something low level might be easier for drawing pdfs
20:36:34 <bsmntbombdood> I think figure out the design first, then pick whatever fits best
20:36:59 <Sukoshi> One final tally: ObjC then?
20:37:10 <Sukoshi> We might use D actually. I dunno.
20:39:11 <Sukoshi> http://libfoundation.opendarwin.org/ <-- We'll be using this.
20:43:30 <Sukoshi> There's little alternative, or else we'll have to code the base Object class ourselves.
20:49:53 -!- atrapado has joined.
20:51:42 <Sukoshi> I was contemplating. How is it?
20:52:33 <calamari> otherwise.. why? there are already so many hehe
20:53:14 <ShadowHntr> http://en.wikipedia.org/wiki/Cairo_(graphics)
20:55:28 -!- calamari has quit ("Leaving").
21:03:33 <Sukoshi> So we can wrap it ourselves.
21:05:18 -!- sebbu2 has joined.
21:24:42 -!- sebbu has quit (Success).
21:34:23 -!- atrapado has quit ("allserv quit").
21:37:55 <Sukoshi> Just read the documentation.
21:41:52 -!- oerjan has joined.
21:44:28 -!- ihope has joined.
21:55:48 <ihope> You know, a Thue busy beaver would be pretty cool.
21:56:48 <ihope> How much can you fit in an 80-by-24 box using only printable ASCII characters and newlines?
21:58:23 <GregorR> Uh, presumably 80x24x(number of printable characters)?
21:59:00 <ihope> Rather, how long of a string can you produce doing that?
21:59:21 <ihope> I guess there are often multiple ways of running a Thue program.
22:01:26 <ihope> How about a Sortle busy beaver?
22:20:39 <bsmntbombdood> Debian's package management is begining to tire me
22:21:21 <oerjan> i read about a new system on Lambda the Ultimate recently. purely functional package management.
22:22:02 <oerjan> http://lambda-the-ultimate.org/node/2176
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 <bsmntbombdood> (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:48:26 <bsmntbombdood> I see the early days of #esoteric were quite quiet
23:48:44 <lament> no, the early days were just fine.
23:48:57 <lament> the middle ages were quiet.
23:49:38 <lament> all secular thought was suppressed.
23:50:20 <oerjan> shorter: ((lambda (x) (display (list x (list (quote quote) x)))) (quote (lambda (x) (display (list x (list (quote quote) x))))))