←2007-06-13 2007-06-14 2007-06-15→ ↑2007 ↑all
00:16:48 -!- sebbu has quit ("@+").
02:32:41 -!- kwertii_ has joined.
02:40:26 -!- kwertii_ has changed nick to kwertii.
03:31:52 -!- kwertii has quit.
03:53:21 <bsmntbombdood> has anyone done an impure lazy language?
04:03:58 -!- puzzlet has joined.
05:47:11 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
06:56:00 <pikhq> Define "lazy" and "impure".
06:58:24 <bsmntbombdood> lazy = call by need; impure = has imperative constructs
07:11:20 -!- GreaseMonkey has joined.
07:12:24 -!- GreaseMonkey has changed nick to N0body.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:21:23 -!- ihope has quit (Read error: 54 (Connection reset by peer)).
09:40:28 -!- pikhq has quit (Read error: 110 (Connection timed out)).
10:17:31 <bsmntbombdood> http://www.ioccc.org/2001/herrmann1.hint
10:17:36 <bsmntbombdood> </awake>
10:40:27 <N0body> gonna go now, cya
10:40:45 -!- N0body has quit ("Hasta la Vista(R)").
11:19:00 -!- andreou has joined.
11:44:16 -!- oerjan has joined.
12:44:11 -!- lament has quit (Read error: 110 (Connection timed out)).
12:59:59 -!- nooga has joined.
13:00:01 <nooga> he
13:03:02 -!- Doomguy0505 has joined.
13:05:39 -!- Doomguy0505 has quit (Client Quit).
13:08:35 -!- ihope has joined.
13:08:44 <ihope> Security proofs... interesting idea.
13:37:26 <nooga> i wonder how to make yacc to report all syntactic errors in parsed text
13:45:20 <oerjan> i think you need to put error tokens in the productions so yacc can know how to continue after an error
13:47:30 <oerjan> See the section on "Error recovery" in "info bison"
13:49:10 <oerjan> afk
14:11:50 <oerjan> back
14:20:29 -!- jix has joined.
14:30:00 -!- jix__ has joined.
14:38:48 -!- jix has quit (Read error: 113 (No route to host)).
14:57:35 -!- jix has joined.
15:05:45 -!- jix__ has quit (Read error: 110 (Connection timed out)).
15:19:20 -!- oerjan has quit ("Dinner").
16:39:46 -!- sebbu has joined.
17:41:41 -!- lament has joined.
18:25:51 -!- pikhq has joined.
18:44:59 -!- erider has quit (Read error: 110 (Connection timed out)).
18:45:38 -!- erider has joined.
18:56:56 <pikhq> I propose a deathmode for Malbolge.
18:58:13 <RodgerTheGreat> the opposite of a wimpmode?
18:58:31 <RodgerTheGreat> like making it self-encrypt like malbolge?
19:00:45 <pikhq> Uh. . . Making Malbolge encrypt like Malbolge makes it. . . Malbolge. :p
19:01:02 <RodgerTheGreat> 2d malbolge. :D
19:01:11 <pikhq> And yeah, it's the opposite of a wimpmode.
19:01:17 <RodgerTheGreat> with a different instruction set, too
19:01:27 <pikhq> 3d encrypting stack-based Malbolge.
19:01:37 <RodgerTheGreat> there ya go
19:01:47 <pikhq> So, the push operation also calls crazy on the thing to be pushed.
19:02:25 <RodgerTheGreat> even better- replace the stack with a queue to make common operations less convenient
19:02:40 <pikhq> Better than a FIFO queue.
19:02:56 <pikhq> LIFO.
19:03:45 <pikhq> Err.
19:03:48 <pikhq> Um.
19:03:58 * RodgerTheGreat scratches his head
19:03:59 <lament> FINO
19:04:03 <pikhq> If you will excuse me, I'm going to realise the implications of what I just said.
19:04:05 <lament> first in never out.
19:04:12 <pikhq> FIMO.
19:04:16 <pikhq> First in middle out.
19:04:22 <RodgerTheGreat> pikhq: yeah, I was trying to wrap my brain around that with some difficulty
19:04:46 <RodgerTheGreat> pikhq: wouldn't FIMO just cut the thing in half, effectively?
19:05:01 <RodgerTheGreat> or make parts inaccessible, at least?
19:05:05 <pikhq> Nope.
19:05:16 <pikhq> Each pop would take from the exact middle.
19:05:37 <RodgerTheGreat> ah, yeah- you just have to dump out large parts to get to elements deeper than the middle
19:05:41 <pikhq> (averaging two cells if the middle is in between two cells)
19:05:51 <RodgerTheGreat> my last sentence was confusing
19:06:03 <RodgerTheGreat> but I understand what you mean
19:06:07 <pikhq> LIFO is a normal stack. XD
19:07:37 <lament> i like last in first out
19:07:39 <lament> for example
19:08:03 <lament> you take an empty stack, push 1, pop 5, push 5, pop 1, then destroy the stack.
19:08:16 <lament> it needs a time machine to work, though.
19:08:39 <lament> and of course if you don't push 5 after popping 5, the universe collapses.
19:09:04 -!- oerjan has joined.
19:27:57 <ihope> Malbolge? That's a hack.
19:30:40 -!- ihope has quit ("Reconnecting...").
19:32:39 -!- ihope has joined.
19:33:20 <ihope> Okay, judging by the clog logs, what I tried to say didn't get said...
19:33:29 <ihope> Trying this again.
19:34:59 <ihope> Malbolge? That's a hack. Go build me a universal constructor/computer in Conway's Game of Life and program it to construct anything given its layout and a description of the space it's allowed to use for construction.
19:36:11 <ihope> It's allowed to fill up an infinite strip of arbitrary width, but it can't venture beyond that strip. You decide what slope the lines that bound the strip should be.
19:36:49 <pikhq> Go give me a proof of that being possible.
19:36:54 <pikhq> (there is none as of yet.)
19:37:06 <ihope> Well, you can at least build a universal computer!
19:37:14 <ihope> Heck, go prove it for me :-P
19:37:15 <pikhq> Yeah; I've got one.
19:37:21 <ihope> You have one?
19:37:30 <pikhq> There's a Turing machine in Life.
19:37:36 <pikhq> I didn't design it, but I have it. ;)
19:37:40 <ihope> Infinite tape and everything?
19:37:53 <ihope> Eh, you can't claim to have designed everything!
19:37:56 <pikhq> The tape is merely finite, but that's an implementation detail.
19:38:11 <ihope> "Hey, I found a pattern that moves!"
19:38:27 <pikhq> It's trivial to extend the tape to however large you wish it to be. . .
19:38:40 <ihope> Yes, but it doesn't count unless it's infinite.
19:38:41 <pikhq> If I had a Turing machine here, then the tape would be infinite.
19:39:10 <pikhq> But, I have to settle for a machine that has finite storage.
19:39:26 <ihope> You don't need infinite storage to run an infinite pattern!
19:39:45 <ihope> Well, maybe. Not necessarily.
19:39:46 <pikhq> You do when the tape consists of a loop of gliders.
19:40:01 <ihope> If the simulator's clever enough, it'll find a way.
19:40:11 <ihope> ...Wait, a loop?
19:40:48 <ihope> I guess you'd need cleverness to simulate an infinite loop--that is, one that loops but is still infinite.
19:41:05 <ihope> An actual loop, not just a repetition.
19:41:41 <ihope> But surely there are actual universal computers in the Game of Life.
19:42:23 <pikhq> Yes.
19:42:25 <pikhq> It's been proven.
19:43:01 <ihope> Ones that have actually been built.
19:43:52 <pikhq> Except for the memory requirement, one has been built.
19:44:04 <oerjan> http://www.igblan.free-online.co.uk/igblan/ca/
19:44:12 <pikhq> Thus proving the possibility a *second* time.
19:44:36 <pikhq> Ah.
19:44:43 <pikhq> Didn't know about that Life URM.
19:44:48 <oerjan> "Unlike the finite tape of Paul Rendell's marvellous Turing Machine, the values in the URM's registers are unbounded."
19:45:20 <pikhq> Rendell's is a literal Turing machine, not merely Turing complete. . .
19:45:27 <pikhq> And that URM, apparently, has infinite storage.
19:46:38 <pikhq> ihope: Happy now?
19:46:49 <ihope> Yup.
19:47:45 <pikhq> And I can come up with a *third* proof of Turing completeness for Life (although it is, unfortunately, circular logic). . .
19:47:56 <pikhq> There's a pattern called the "unit cell".
19:48:05 <pikhq> Which emulates a single Life cell.
19:48:23 <pikhq> Placing enough of those patterns together nets you a Life simulator in Life.
19:48:46 <ihope> Unit cells can be made arbitrarily big... though that's rather obvious, isn't it?
19:48:54 <pikhq> Yeah.
19:49:15 <oerjan> just iterate the construction
19:49:20 <pikhq> Exactly.
19:51:22 <ihope> Now make a unit cell rake! :-)
19:53:52 <pikhq> Make a universal constructor.
19:54:35 <pikhq> Preferably one with a higher period than the unit cell.
19:59:43 <ihope> They have periods?
20:00:38 * ihope ponders universal constructor borders
20:01:32 <pikhq> Well, it'd probably be a different period for whatever it's constructing.
20:01:49 <pikhq> (unless you magically make an O(1) universal constructor)
20:02:18 <ihope> You know, orthogonal strips probably actually aren't that bad for universal constructors.
20:03:45 <ihope> That would simplify the border thing. Then again, the border thing isn't complicated.
20:04:10 <ihope> Hmm...
20:05:48 <ihope> Oh, people are probably happier with diagonal stuff than orthogonal stuff.
20:06:13 <ihope> Gliders are more agile than XWSS.
20:07:24 <ihope> Borders can look like this, then: http://pastebin.ca/567050
20:08:49 <ihope> # is the constructor exclusion zone. The constructor may not change these cells unless otherwise specified.
20:10:09 <ihope> $ is the pattern exclusion zone. The constructor may assume that these cells are... hmm, just a minute.
20:11:12 <ihope> It may assume that these cells are dead unless otherwise specified.
20:11:33 <ihope> The constructor goes on the left side.
20:11:44 <ihope> (And the border extends infinitely in both directions.)
20:12:04 <ihope> Generally, "otherwise specified" is the same in both cases.
20:13:34 <ihope> The border is only crossed when the constructor and the pattern flash to each other.
20:15:16 <ihope> Protocols for flashing these could be called diagonal border flash protocols!
20:15:43 <ihope> Sounds fun, doesn't it?
20:16:26 <oerjan> testBorder (bx,by,cut) (x,y) = bx*x+by*y >= cut
20:16:35 -!- sebbu2 has joined.
20:17:30 <ihope> Testing whether something's above a line, eh?
20:17:39 <ihope> (And I'm using "above" loosely here :-P)
20:17:45 <oerjan> (bx,by) would be orthogonal to the border, cut would be the value at the border
20:18:13 <oerjan> (as a vector)
20:19:23 <oerjan> generally, testing whether something is in a half-space
20:19:44 <ihope> Yeah, that.
20:22:23 -!- nooga has quit (Remote closed the connection).
20:23:07 -!- nooga has joined.
20:24:12 -!- sebbu has quit (Read error: 60 (Operation timed out)).
20:25:08 <ihope> Wow! The universal register machine is failing miserably!
20:25:12 -!- Bigcheese has joined.
20:25:19 <SimonRC> moooooooooorniiiiiiiiing
20:25:22 <SimonRC> not actually
20:25:25 <Bigcheese> afternoon
20:26:56 <oerjan> ihope: you would think it would have been tested?
20:27:13 <ihope> Maybe it's not the pattern that's wrong.
20:27:30 <ihope> Or do you know that it is?
20:27:31 <oerjan> ihope: can your life program handle that big patterns?
20:27:39 <ihope> Yup.
20:27:55 <ihope> I've been running "Igblan P1 URM" for about 350,000 generations now.
20:27:58 <oerjan> then i know nothing (although i am not from Barcelona)
20:28:14 <ihope> ...what?
20:28:31 <oerjan> (sneak Fawlty Towers reference)
20:28:35 <ihope> This speed is boring. /me speeds it up
20:29:54 <ihope> Yup. This pattern doesn't seem to fail miserably after 10,000,000 generations.
20:30:11 <ihope> Oh, now it's done.
20:31:12 <ihope> Hey, it spit stuff out!
20:32:49 <SimonRC> the Life turing machine (not universal) emits vast amounts of gliders
20:32:59 <SimonRC> well, enough to make a mess
20:38:32 <ihope> Really a shame that P30 URM is the only one that fails miserably.
20:40:21 <SimonRC> hm?
20:40:38 <ihope> It's the biggest and the best, except that it's not the best.
20:40:42 <ihope> And maybe not the biggest.
20:41:30 <SimonRC> interesting how this life stuff is going from magic to engineering
20:42:07 <ihope> It used to be magic?
20:42:47 <oerjan> theory: as technology progresses, things become insufficiently advanced in comparison
20:43:37 <SimonRC> well, the invention of the Gosper Gun was amazing at the time; there had not been a proof that a population could become unbounded even
20:44:36 <SimonRC> Clarke said that any sufficiently advanced technology becomes magic. This is the wrong way round. Any DnD player knows that any sufficiently well-understood magic becomes technology.
20:45:09 <ihope> Indeed.
20:45:16 <oerjan> this should be one of the corollaries to Clarke's law
20:45:40 <ihope> Any sufficiently advanced technology is indistinguishable from magic.
20:45:53 <ihope> Any sufficient advancement of technology distinguishes things from magic.
20:46:15 <ihope> s/technology/theory/ in the latter.
20:47:35 <ihope> And don't forget these two: "Any technology distinguishable from magic is insufficiently advanced" and "any technology, no matter how primitive, is magic to those who do not understand it".
20:48:15 <ihope> Wait a minute, we can combine these to get what we want. "Any magic, no matter how advanced, is technology to those who do understand it."
20:48:31 <ihope> ...Well, maybe not that, quite.
20:48:47 <ihope> "No technology, no matter how advanced, is magic to those who do understand it."
20:49:25 <ihope> See? I put Freefall to good use!
20:50:09 <ihope> (For those who favor formatting rules over not being annoying, I put Freefall to good use.)
20:50:54 <SimonRC> I think I got my one from a page that complained about how DnD magic wasn't "magical" in the supernatural sense, and offered some things to consider in the designing of an RPG magic system.
20:51:17 <SimonRC> ihope: erm, how to you do the underlining
20:51:18 <SimonRC> ?
20:52:22 <ihope> SimonRC: depends on the client.
20:52:31 <ihope> In ChatZilla, %UFreefall%O
20:53:15 <oerjan> _hm_
20:53:25 <oerjan> nah, not the same
20:53:56 <SimonRC> my usual method is just underscore before and after
20:54:17 <SimonRC> but I see that irssi can actually do proper underlining
20:54:19 <oerjan> test
20:54:30 <ihope> Doesn't seem to work.
20:55:07 <ihope> Here, have a secret message: %CLI
20:55:15 <ihope> :-P
20:55:35 <ihope> But that's probably not actually decodable, so I'll just tell you it says BROCCOLI.
20:55:53 <SimonRC> also, bold, colour, and reverse
20:55:58 <SimonRC> hehehe
20:56:03 <oerjan> SimonRC: what keys?
20:56:46 <SimonRC> TFM (/usr/share/doc/irssi/formats.txt) dixit:
20:56:52 <SimonRC> <Ctrl>-b set bold
20:56:52 <SimonRC> <Ctrl>-c#[,#] set foreground and optionally background color
20:56:52 <SimonRC> <Ctrl>-o reset all formats to plain text
20:56:52 <SimonRC> <Ctrl>-v set inverted color mode
20:56:52 <SimonRC> <Ctrl>-_ set underline
20:56:54 <SimonRC> <Ctrl>-7 same as <Ctrl>-_
20:57:06 <pikhq> So, ne.
20:57:09 <SimonRC> these will appear verbatim in the editing line, BTW
20:57:09 <oerjan> lessee
20:57:19 <pikhq> w00t.
20:57:34 <SimonRC> on some channels, you will get auto-kicked for colour usage
20:57:59 <pikhq> On others, colour usage is ignored. ;)
20:58:25 <SimonRC> ZOMG PONIES!!!
20:58:37 <SimonRC> (does that blink, BTW?)
20:58:40 <oerjan> test
20:58:44 <oerjan> finally
20:58:44 <SimonRC> underlined
20:58:50 <pikhq> BAD Slashdotter.
20:58:52 <pikhq> SimonRC: Yes.
20:59:52 <SimonRC> the top bit of the background colour sometimes means the same as it does for the foreground colour (bright), and sometimes means dark but with the foreground colour blinking.
21:10:19 <ihope> On some channels, color usage is simply blocked.
21:11:26 <pikhq> Random test block here.
21:11:59 <oerjan> a golden opportunity
21:12:31 <pikhq> And an underlined one, too.
21:13:09 <oerjan> to boldly go where far too many have gone before
21:14:37 * bsmntbombdood sets mode #esoteric +c
21:15:53 * ihope summons lament
21:16:08 * ihope also summons andreou
21:16:26 <ihope> And fizzie. And Aardappel and Taaus, whoever they are.
21:16:27 * oerjan summons the Great Cthulhu
21:16:33 <oerjan> someone had to do it
21:16:44 <ihope> Ia Ia Cthulhu... uh, Something?
21:16:46 <ihope> Fthagn?
21:16:51 <ihope> Fhtagn?
21:16:59 <ihope> One of those, I'm thinking.
21:17:09 <pikhq> Wikipede it.
21:17:27 <ihope> Fhtagn, apparently.
21:24:04 <SimonRC> Shouldn't there be an apo-strophe in there somewhere?
21:28:04 <pikhq> Why did you stick a hyphen in apostrophe?
21:28:37 <fizzie> I LIVE
21:28:53 <fizzie> Was there a specific reason for the summons?
21:29:56 <bsmntbombdood> you have angered fizzie
21:30:32 <fizzie> No, no, just curious.
21:32:12 <pikhq> Fizzie == Cthulhu?
21:32:28 <pikhq> (otherwise, we should've just said Ia Ia, Fizzie Fhtagn!)
21:34:24 <fizzie> Closest I've been to Cthulhu is when I bought an adorable Cthulhu plush doll thing for a friend.
21:35:29 <pikhq> Well, then.
21:35:35 <pikhq> Ia Ia, fizzie fhtagn!
21:37:37 <fizzie> I'm not quite sure what's the proper response to that, but I guess it has something to do with devouring something.
21:38:17 <pikhq> Here's some chips.
21:40:38 <fizzie> Oh yes, freenode had that +c mode which filtered out about all formatting codes, including ANSI escapes.
21:42:34 -!- ChanServ has set channel mode: -stm+nc.
21:42:49 <fizzie> I wonder if that was the thing I was summoned for.
21:42:55 <oerjan> what?
21:43:19 <oerjan> not all, apparently
21:43:32 <pikhq> fizzie: It was.
21:43:39 <pikhq> This ought to be underlined.
21:44:05 <oerjan> eep
21:44:18 <oerjan> you evil censor you!
21:44:32 <bsmntbombdood> ‭‮zomg backwards
21:44:35 <fizzie> C is for Censorship!
21:46:19 <SimonRC> C is for Coredump, actually
21:46:22 <SimonRC> lots of them
21:46:36 <bsmntbombdood> Segmentation fault (core dumped).
21:46:42 <SimonRC> hmm
21:46:43 <fizzie> MATLAB always dumps core when I exit it.
21:47:01 <SimonRC> better than when you start
21:47:33 <SimonRC> The apple is delicious! --more-- Core dumped.
21:47:38 <SimonRC> :-P
21:48:31 -!- jix has quit ("CommandQ").
21:49:21 <fizzie> The "Segmentation fault (core dumped)." fortune message is evil; I once spent something like 10 minutes trying to figure out what line in my login files had dumped core, before realizing what it was.
21:49:41 <lament> :E
21:54:59 <ihope> It seems fizzie has successfully been summoned.
21:55:01 <ihope> As has lament.
21:55:14 <bsmntbombdood> lol
21:55:25 <ihope> I wonder if andreou is on the way.
21:55:45 <bsmntbombdood> i've never seen andreou talk i don't think
21:59:03 <SimonRC> fizzie: a worse one is the tale of a box hwhere everyone was root...
21:59:19 <SimonRC> one guy got the fortune about the bit bucket being full
21:59:33 <SimonRC> It is amazing how many things rely on the presence of /dev/null
21:59:51 <SimonRC> And that is has correct permissions, user, group, etc
22:00:02 <bsmntbombdood> my favorite feature of lisp right now: quasiquote
22:02:23 <SimonRC> good for macros
22:02:53 <bsmntbombdood> i'm doing some source to source translations right now and it's very helpful
22:04:02 <ihope> SimonRC: someone deleted /dev/null?
22:07:49 <SimonRC> yes
22:09:41 <ihope> Fun.
22:10:17 <ihope> Seems it'd be easier to cat /dev/null > /dev/null
22:10:26 <ihope> :-)
22:10:39 <ihope> Then again, I don't know just what > does. What does it do?
22:12:07 <bsmntbombdood> reads from /dev/null eof immediatly
22:13:41 <SimonRC> > re-directs stdout
22:14:27 <oerjan> /dev/null is opened for writing and reading, separately. neither deletes it or changes its special status
22:14:35 <oerjan> *nor
22:15:27 <ihope> Does > concatenate or replace?
22:15:35 <ihope> And if it replaces, how?
22:15:43 <oerjan> replace, but by opening and truncating
22:15:51 <bsmntbombdood> >> appends
22:16:21 <ihope> Opens it, deletes all its contents and starts writing, then?
22:16:27 <oerjan> yep
22:16:54 <oerjan> but since /dev/null is not an ordinary file, truncating it has no effect
22:16:56 <fizzie> I've always felt a bit sorry for /dev/full, because /dev/null is what everyone only talks about.
22:17:26 <fizzie> full - always full device -- "Writes to the /dev/full device will fail with an ENOSPC error. This can be used to test how a program handles disk-full errors."
22:19:03 <fizzie> There's also a strange sort of sensibility in leaving a dd if=/dev/full of=/dev/null running at a low priority. Gives you a "I'm doing my part to restore the balance!" feeling.
22:19:28 <oerjan> wow i thought you were joking :D
22:19:54 <ihope> What's that command do?
22:20:48 <fizzie> 'dd' moves bytes; reads from /dev/full always return zeros, so it reads zeros out of /dev/full and writes them to /dev/null, which discards them.
22:21:19 <fizzie> Of course it's all quite futile: full is never going to run out of zeros, and null isn't going to fill up. But it's the thought that counts.
22:21:50 <ihope> But really, all you're doing is throwing away zeros.
22:21:55 <ihope> You should put them into /dev/zero instead.
22:22:15 <fizzie> I really thing that one already has more than enough zeros in it.
22:22:27 <fizzie> My God, it's full of zeros!
22:22:42 <ihope> I guess that's true.
22:23:07 <ihope> Maybe if you write enough zeros into /dev/null, one of them will actually get through...
22:25:35 <SimonRC> where to?
22:26:48 <oerjan> eventually /dev/null will collapse into a black hole, creating a new big bang on the other side
22:27:22 <oerjan> hm...
22:27:55 <oerjan> actually whatever you put into /dev/null will be released as heat.
22:28:49 <ihope> Ah.
22:29:33 <oerjan> assuming your hardware cannot actually keep infinite information, in which case my first explanation will apply.
22:31:03 <ihope> My computer can hold infinite information, but only if it's compressed.
22:31:39 <ihope> I know of a pretty good compression scheme for just these purposes.
22:32:01 <ihope> Namely, reverse the input. Reversing the input, naturally, is something that can be undone: just do it again.
22:32:58 <ihope> Now, you can write a program that reverses its input pretty easily. If you pipe /dev/random into it, nothing ever comes out, so you can conclude that /dev/random compresses to the empty file.
22:33:10 <oerjan> well in principle that compression scheme is as good as it gets
22:33:22 <ihope> I haven't tried reversing the empty file, but I'm sure that if I did, I'd get /dev/random.
22:33:47 <ihope> Oh, only if you count random infinities of information as actually being infinite. Computable ones can easily be compressed.
22:35:00 <oerjan> hm... i guess a compression scheme that actually treated random information has being zero could be useful, since it is only the order in information that is usually interesting
22:35:06 <oerjan> *as
22:37:12 <oerjan> relevant link: http://en.wikipedia.org/wiki/Reversible_computing
22:37:42 <ihope> Would you call "There's useful information in here. e=SzHr/!]LQ:vMw2jXe/*j38v5Q"TO [bp[n]~c41j#!O3RgCt%&_!6%YrH4pNI..." something that should be treated as zero?
22:38:28 <oerjan> of course not. There's "There's useful information in here." in there.
22:39:35 <oerjan> i suppose such a scheme would work really bad on already compressed data.
23:04:24 <pikhq> oerjan: However, "There's useful information in here." could be generated by /dev/random.
23:04:51 <oerjan> not _terribly_ likely.
23:05:15 <pikhq> True.
23:05:16 <bsmntbombdood> "e=SzHr/!]LQ:vMw2jXe/*j38v5Q"TO [bp[n]~c41j#!O3RgCt%&_!6%YrH4pNI" is terribly unlikely also
23:05:22 <pikhq> But, then, nor is anything else.
23:07:33 <oerjan> basically, random in this case would mean completely incompressible
23:07:51 <oerjan> for some approximation of compressible
23:08:11 <lament> a bunch of printable characters is hardly random, and very easy to compress :)
23:08:27 <oerjan> hm... right
23:08:52 <oerjan> you need to keep only the compressible part of the information. interesting paradox
23:11:55 <oerjan> the most information would be in text that was chaotic, on the edge of order and disorder.
23:12:37 <pikhq> Encrypted text.
23:13:34 <lament> nothing is random.
23:14:18 <pikhq> No, everything is.
23:14:18 <lament> 'random' simply refers to the method of generation of data
23:14:25 <oerjan> good encryption is practically indistinguishable from random
23:14:34 <lament> once you have the data, the term 'random' can no longer be applied to it
23:14:56 <lament> good encryption is practically indistinguishable from data produced by a random process
23:15:31 <lament> but of course a random process can produce any string whatsoever, just as a non-random process can produce any string whatsoever.
23:15:31 <oerjan> random has many meanings
23:16:34 <lament> "random" describes the process; "incompressible" describes the usual result
23:16:59 <lament> (but randomness is not the only way to generate incompressible results)
23:17:12 <lament> err, wait, it is
23:17:14 <lament> :)
23:17:23 <pikhq> Nope.
23:17:54 <pikhq> "incompressible" only describes a certain string when compressed with a *certain algorithm*. . .
23:18:09 <pikhq> I can create crapola-compression, which makes most results incompressible.
23:18:53 -!- kwertii has joined.
23:19:59 <lament> pikhq: incompressible by _any_ algorithm :)
23:20:25 <oerjan> no such thing
23:20:41 <lament> oerjan: no?
23:20:59 <oerjan> because for any string, you can take an algorithm that produces that string from the empty one
23:21:25 <lament> oerjan: if the string was generated by a random process
23:21:54 <pikhq> One can still produce an algorithm which does if(input == "") output("Random string here.");
23:21:56 <lament> oerjan: then that algorithm will be as long as the string, and consist of an 'output' statement...
23:22:28 <lament> i suppose i'm talking about kolmogorov complexity, not compressibility.
23:22:33 <oerjan> the length of the algorithm is not included
23:22:48 <lament> i definitely am talking about kolmogorov complexity :)
23:22:54 -!- kwertii_ has joined.
23:23:28 <lament> randomness is a superturing thing
23:23:47 -!- kwertii has quit (Connection reset by peer).
23:24:26 <lament> still, there isn't any meaningful way to describe data as "random" unless you simply refer to the way it was generated.
23:24:32 <pikhq> Then perhaps you should say what you mean, not assume that we can distill it from the air.
23:24:34 -!- kwertii_ has changed nick to kwertii.
23:24:51 <lament> pikhq: if i can't assume that in #esoteric, where can i? :(
23:25:03 <pikhq> lament: Even here, we have to say what we mean.
23:25:12 <lament> how thoroughly boring.
23:25:22 <pikhq> What sets us apart is that what we mean produces "Why, god, WHY?!?" as the answer. :p
23:26:34 <pikhq> Grr. . .
23:26:41 <pikhq> Someone set -Oslow on my Emacs build.
23:27:24 <lament> despite all the bad things people say about emacs
23:27:35 <lament> there isn't a single problem with it that an uninstall can't solve.
23:28:04 <oerjan> lament: unlike WinHugs
23:28:36 <lament> what happens after you uninstall winhugs? :)
23:28:54 <oerjan> nothing, the uninstall crashes before removing anything :)
23:29:39 <lament> oh.
23:29:46 <lament> useful :)
23:29:48 <ihope> Infinite strings can be described as being random or not.
23:29:57 <lament> ihope: how?
23:30:07 <ihope> Well... I think.
23:30:11 <lament> actually
23:30:19 <lament> that doesn't contradict me at all
23:30:19 <ihope> If it can be defined at all in any way, it's not random. Otherwise, it is.
23:30:29 <lament> like i said, randomness refers to the process
23:30:36 <fizzie> Jargon file (iirc) lists the meaning "Eight Megs And Constantly Swapping" for EMACS. That particular backronym is perhaps a bit dated; even my personal computing device has 256 times more memory than that.
23:30:38 <lament> when dealing with an infinite string, you're dealing with a process
23:30:45 <lament> since you can't have actual infinite information
23:30:50 <ihope> Indeed...
23:31:45 <oerjan> infinite strings can have average entropy per bit or char
23:31:54 <ihope> fizzie: Entirely-too Much And Constantly Swapping!
23:32:04 <lament> oerjan: which you can't determine
23:32:11 <lament> oerjan: so that's a problem
23:32:37 <lament> oerjan: either the string is generated by a known non-random process, allowing you to calculate the entropy but then of course you know it's not random
23:33:00 <lament> oerjan: or it is generated by a random process, in which case you can't ever get the entire string, so you can't calculate its entropy either.
23:33:19 <oerjan> no but you can calculate it with probability 1 :)
23:33:57 <oerjan> for suitable random processes
23:34:01 <lament> not 1
23:34:13 <lament> you can only analyze a finite portion of it :)
23:34:26 <lament> not statistically significant
23:34:26 <oerjan> no, you analyze the process, not the string
23:34:29 <lament> oh
23:34:42 <pikhq> Said backronym, IIRC, was invented by Stallman.
23:34:53 <pikhq> (you may know Stallman better for his Editor MACroS, written in Teco, and GNU Emacs, written in Elisp)
23:34:55 <lament> oerjan: again, if you know the process is random, then you already know the process is random :)
23:35:18 <lament> oerjan: and if you _don't_, then you can't tell anything by looking at the data produced
23:35:39 <lament> (because the data produced is not the "infinite string" we're after)
23:36:22 <oerjan> hm... you might be able to converge toward the correct entropy
23:37:35 -!- sebbu2 has quit ("@+").
23:41:51 <lament> oerjan: except that, the process being random, you don't know if its behavior isn't going to suddenly change completely
23:42:16 <lament> (true of some non-random processes as well, at least in practice (digits of pi))
23:43:36 <bsmntbombdood> memory usage arguments against emacs are completely irrelevant nowadays
23:46:09 <oerjan> right... it is easy to make a sequence that switches say between two different behaviors at large indices. in fact the entropy would not be clearly mathematically defined then
23:46:23 <oerjan> *switches repeatedly
23:53:12 <lament> all the problems come from the fact that true randomness is superturing and hence cannot be analyzed algorythmically :)
23:53:16 <lament> algorithmically
23:57:46 <SimonRC> oerjan: surely the king of ununinstallability is AOL. Bits of it were floating around for years
23:58:23 <oerjan> ic
23:58:44 <SimonRC> 23:27:18 < oerjan> lament: unlike WinHugs
←2007-06-13 2007-06-14 2007-06-15→ ↑2007 ↑all