00:12:23 <mee> I thought you were supposed to use /italics/ for that, where available. :)
01:09:05 -!- c|p has quit ("Leaving").
01:14:21 <erider> http://retroforth.com/paste/?id=420
02:03:37 <SimonRC> MS are trying to be Google: http://slashdot.org/articles/07/06/06/1848214.shtml
02:04:02 <SimonRC> I initially just assumed that it was Google that did this when I saw the video
02:04:38 <SimonRC> The app really needs that cool multi-touch screen though.
02:07:19 <SimonRC> no, wait until he gets to the Notre Dame bit
02:21:14 <SimonRC> I think that was the main thing that the software did.
02:58:16 -!- mee has left (?).
03:53:30 -!- erider has quit ("I don't sleep because sleep is the cousin of death!").
04:29:57 -!- erider has joined.
04:31:12 <bsmntbombdood> 1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, 31131211131211, 13211311131221
04:39:00 <pikhq> Interesting program.
04:43:32 -!- boily has joined.
04:45:00 <Asztal> I wonder at what rate the sequence expands
04:48:47 <bsmntbombdood> 11131221131211131231121113112221121321132132211331222113112211
04:48:56 <bsmntbombdood> 311311222113111231131112132112311321322112111312211312111322212311322113212221
04:51:19 <boily> you can't go above three
04:52:53 <boily> because, for example, to get a 4 you need something like 1111, 2222, ...
04:53:27 <boily> 1111 refers, in the precedent step, to 11, which normally is written 21 in the next step
04:55:22 <Asztal> http://en.wikipedia.org/wiki/Conway_sequence
04:55:33 <Asztal> his starts with a 3, though.
04:56:02 <Asztal> actually, http://en.wikipedia.org/wiki/Look_and_say_sequence
04:56:42 -!- GregorR-L has joined.
04:58:54 <Asztal> funny how something that complex comes from a simple sequence (or, a simple to generate sequence)
04:58:58 * pikhq hails the EgoBot lord
04:59:26 <boily> wooo... this polinomial scares me
05:02:18 <Asztal> 1, 11, 101, 111011, 11110101, erm
05:02:27 -!- puzzlet_ has joined.
05:19:39 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
05:25:46 <Asztal> probably wasn't a good idea to set ruby going with this, as it's now consuming about 20MB per second
05:27:14 <Asztal> yes, I definitely don't have 1.89770965081337e+030 bytes of RAM :(
05:28:48 <Asztal> because I was doing it the silly way, i.e. keeping it all in memory at once
05:29:34 <Asztal> I think you should be able to calculate the length recursively if you give it a depth
05:30:41 <Asztal> I was calculating the rate of growth of the 1, 11, 21, 1211 sequence.. in a very dumb way (and doing 250 iterations) :)
05:33:24 <Asztal> I was thinking of 1 -> 11 as one iteration
05:47:14 <pikhq> Gregor, I was just randomly running strings on cplofc. . . And I'm wondering: how the *hell* did "Hello, world!" get into there?
05:49:16 <pikhq> http://www.acm.org/classics/sep95/ Did you happen to pull this trick off?
05:53:30 <pikhq> It's not a *horribly* difficult trick. . .
05:53:52 <pikhq> Whee bit tricky when you've got two implementations that your self-hosting compiler can run on, though. ;)
05:54:10 <pikhq> . . . Oh, shit. Dplof is written in D, and Gregor is a major D developer. . .
05:54:46 <pikhq> Although that seems like a bit of excessive work for sticking "Hello, world!" in something.
05:55:14 <bsmntbombdood> the putting it in the compiler you're compiling is the tricky part
05:55:51 <pikhq> Not really. Once you've got a self-hosting compiler, you add in a pattern matching function or two, then compile, remove, distribute binaries.
05:56:45 <pikhq> There's a few problems with this approach, of course. . . The source could change enough to break the pattern matching being the most obvious.
05:57:13 <bsmntbombdood> it would be better if you could put it in other compilers
05:57:53 <pikhq> You just add another pattern matcher to match a specific compiler.
05:59:01 <pikhq> That's impossible, unless you can somehow match any function which could *possibly* result in valid machine code.
05:59:33 <pikhq> The main problem with *that* being that, odds are, your compiler would break every binary, and it'd be noticed.
06:27:42 -!- boily has quit ("WeeChat 0.2.4").
06:49:22 -!- oerjan has joined.
06:57:32 <GregorR-L> pikhq: You should've said "GregorR-L", so I'd recognize that you'd messaged me :P
06:58:33 <GregorR-L> pikhq: And that's from some tests compiled into fileio.plof
06:58:38 -!- GreaseMonkey has joined.
07:00:13 -!- sp3tt has quit (Remote closed the connection).
07:00:18 -!- sp3tt has joined.
07:03:18 <pikhq> I still wouldn't put Trusting Trust past you. ;)
07:04:33 <pikhq> bsmntbombdood: Screw that. Stick it in a Brainfuck compiler. . .
07:04:50 <pikhq> Hmm. I should do that to Pfuck. :p
07:04:55 <oerjan> but Trusting Trust only works properly if the language is self-hosting
07:05:48 <pikhq> And Brainfuck self-hosts.
07:06:50 <oerjan> clarification: the best compiler for the language must be yours, and self-hosting
07:07:14 <pikhq> Obviously, you should get it into GCC.
07:07:25 <GreaseMonkey> hmm, there's plenty of BF self-compilers out there
07:07:57 <GregorR-L> Especially if your target is BF :P
07:07:58 <pikhq> Preferably into one of the RTL optimisation passes. You could even leave the code *in* and nobody would notice it there!
07:09:12 <oerjan> was it here someone mentioned a backdoor in the linux kernel that was designed to look like a simple typo?
07:10:15 <pikhq> There's another good place to put one. . .
07:10:23 <pikhq> Except, of course, that GCC is used on more archs.
07:10:41 <pikhq> GCC is, after all, the #1 compiler on everything but Windows.
07:11:14 <pikhq> (I of course refer to popularity, not quality. VC++: EWW.)
07:11:59 <GregorR-L> http://www.youtube.com/watch?v=xiKwErpPwMs
07:12:28 <Asztal> VC8's not all that bad.
07:13:36 <pikhq> GCC is a good C compiler for Windows, after all.
07:16:55 <pikhq> GregorR-L: You, uh, do realise that Windows 1.0 had a (craptastic) color GUI, not just B&W, right?
07:17:58 <GregorR-L> Don't ask me why they didn't use Windows' glorious pastel.
07:18:20 <pikhq> That's a craptastic OS.
07:18:38 <GregorR-L> You could've read the description before asking that X-P
07:21:11 * pikhq really goes into uncontrollable laughter when comparing the capabilities of those POS machines and a UNIX box. . . (fine, so we're comparing tricycles to Ferraris. . . Still.)
07:22:30 <pikhq> No, Unix vs. Windows wasn't.
07:40:32 <pikhq> Be sure to wrap it up in sexps, and perhaps replace the typing system.
07:42:47 <pikhq> Obviously, you want:
07:43:20 <pikhq> (set! (int sexp) (int (+ (int sexp) (int 1))))
07:43:32 <pikhq> Yay, overdoing type systems!
07:44:04 <pikhq> Because a language must be worthy of the term "WTF" before it can be a language. :p
07:45:03 * oerjan updates wikipedia's Look and Say Sequence article to mention Conway's "elements".
07:46:08 <oerjan> they are really the key to understand why the polynomial arises, although i don't explain _that_.
07:52:31 <oerjan> apparently you can do something similar but much easier with the binary version (easier because every 0 ends an "atom")
07:53:23 <oerjan> i mean, every 0 followed by a 1
07:54:52 <oerjan> fibonacci numbers are also self-terminating i think, but more efficient
07:56:03 <oerjan> er, i mean you just add a 1 at the end
07:56:14 <oerjan> because 11 doesn't occur internally
07:57:51 -!- GreaseMonkey has quit ("I'm the world's fastest idiot!").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:04:16 -!- bsmntbombdood has quit (Remote closed the connection).
08:04:20 -!- bsmntbombdood has joined.
08:07:26 <pikhq> puts [set me::state $::human::states::sleepy]
08:08:40 <pikhq> puts [expr {$::me::coffee == $::item::have}]
08:44:12 <GregorR-L> stdio.StdOut.writeln("lawlehcoptah");
09:59:39 -!- oerjan has quit ("leaving").
10:18:30 -!- GregorR-L has quit ("Leaving").
13:04:04 -!- Asztal has quit (":o").
13:48:21 -!- jix has joined.
15:14:50 -!- bobbens has quit ("Lost terminal").
15:36:10 <SimonRC> yay, democracy FTW! http://en.wikipedia.org/wiki/Cleanfeed_(content_blocking_system)
15:36:42 <SimonRC> Oh, BTW people, I managed a lucid dream.
15:36:54 <SimonRC> I didn't do anything sensible though.
15:37:20 <SimonRC> I just ran for a short time, then flew, then woke up due to high heart rate.
16:42:26 -!- sebbu has joined.
17:03:51 -!- crathman has joined.
17:06:17 <SimonRC> http://www.theregister.co.uk/2007/06/07/big_brother_eviction/
17:06:27 <SimonRC> woman says "nigger"; gets kicked out
17:44:36 <SimonRC> anyone here who hasn't seen this yet ought to: http://worsethanfailure.com/Articles/OMGWTF-Finalist-08-Universal-Calculator.aspx
17:48:28 <SimonRC> did you try a multiplication?
17:48:55 <SimonRC> The little icon in the taskbar pops up a baloon to tell you it's finished!
18:03:31 -!- oerjan has joined.
18:31:06 <oklopol> <bsmntbombdood> 1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, 31131211131211, 13211311131221
18:31:06 <oklopol> <Asztal> 11131221133113112211
18:31:16 <oklopol> i'm pretty sure i'd never have figured that.
18:37:52 -!- crathman_ has joined.
18:38:31 -!- crathman_ has quit (Remote closed the connection).
18:40:25 -!- crathman has quit (Read error: 110 (Connection timed out)).
18:53:56 <SimonRC> oklopol: the trick is to have seen it before
19:10:26 <oklopol> indeed, though i don't understand how i could be so blind
19:10:26 <oklopol> if you say it out loud, you can't miss it
19:10:26 <oerjan> usually i think it is because you have some faulty assumption about what it must be
19:10:26 <oklopol> it looked like one where you reverse the string
19:10:26 <oklopol> but, that had no relation, so i didn't get it
19:10:26 <oerjan> 01101001100101101001011001101001
19:12:35 <oklopol> now that i decoded that binary with python, i'm pretty sure one of the two of us failed miserably :<
19:12:36 <oerjan> (that's supposed to be the start of an infinite sequence of bits)
19:16:31 <oerjan> (in a predictable pattern)
19:17:54 <lament> oerjan: that's a cute sequence
19:19:01 <lament> ...1001011001101001011010011001011001101001100101101001011001101001
19:19:49 <SimonRC> I also invented that as a kid
19:20:35 -!- c|p has joined.
19:20:53 <SimonRC> The "also" applied to the "I" not the "invented".
19:22:50 <oerjan> lament: your sequence is wrong from index 65
19:24:02 <oerjan> no, your bits are switch 0-1
19:24:46 <lament> oh, in that case your short sequence simply doesn't give enough information
19:24:53 <lament> here's mine, from the beginning:
19:24:55 <lament> 0110100110010110100101100110100110010110011010010110100110010110100101100110100101101001100101100110100110010110100101100110100110010110011010010110100110010110011010011001011010010110011010010110100110010110100101100110100110010110011010010110100110010110
19:25:45 <lament> now, if my sequence has a simpler generating rule, i win :)
19:26:19 <oerjan> that one was correct, you must have made a cut/paste error in the first
19:27:14 <lament> i suppose it's a nature of this sequence that a cut-paste error leads to effects like "all bits being reversed"
19:29:06 <oerjan> btw it's called the Morse-Thue sequence
19:34:35 <SimonRC> let { foo = "0" ++ (tail $ concat [if c == '0' then "01" else "10" | c <- foo]) } in foo
19:35:38 <SimonRC> OTOH, I think there is a log-space stream generator
19:36:30 <oerjan> i suppose, based on something like the parity definition in the MathWorld article
19:36:57 <oerjan> http://mathworld.wolfram.com/Thue-MorseSequence.html
19:40:12 <lament> SimonRC: that's not my rule...
19:40:38 -!- mangatiga has joined.
19:40:49 <oerjan> let parity 0 = 0; parity n = (parity (n `div` 2) + n `mod` 2) `mod` 2 in concatMap show $ map parity [0..]
19:41:11 <lament> those rules are way too complex.
19:41:28 <oerjan> that one is log-space i hope
19:41:56 <lament> my rule: start with '01'
19:42:19 <lament> then take the existing string, split it into two equal halves, swap them and put the result after the existing string.
19:42:37 <lament> each operation grows the string by a factor of 2.
19:42:53 <oerjan> there are several ways of producing this :)
19:44:15 <oerjan> (well maybe the parity function is not quite logspace as written)
19:44:39 <lament> not only my method is the best but the mathworld page doesn't mention it
19:44:50 <lament> or maybe i just don't notice it there.
19:46:35 <oerjan> your method corresponds to the substitution method done inside out
19:48:10 <oerjan> as in, assuming the two halves were generated from 0 and 1 respectively, what would the next step 0110 generate
19:49:46 <lament> but the two halves weren't generated from anything
19:51:02 <oklopol> <oerjan> 01101001100101101001011001101001 << this one i actually cracked! :)
19:51:07 <oerjan> another way, but which can only create every other step: if s is your string, use s ++ reverse s ++ reverse s ++ s
19:52:16 <oerjan> only works for the assymetric steps
19:53:22 <oerjan> lament: the two halves would be what the substitution method generates in n steps, it is a way of deriving your method from the substitution method
19:54:06 -!- GregorR-L has joined.
20:03:13 <SimonRC> I just tested (for the first time) my library for non-Euclidean game terrain.
20:05:08 <oerjan> hideously non-Euclidean?
20:06:41 <oerjan> you actually bought that domain? o_O
20:10:10 <oklopol> we bought a .fi, and even that was < 100
20:25:54 <fizzie> Err, I'd say <<100, not just <100. .fi domains are 48 EUR per three years, which means 16 EUR/year. Not as cheap as com/net/org, but still.
20:34:48 <SimonRC> You can even have flips, giving a set-up like a Möbeus strip
20:34:48 <SimonRC> but each rectangular patch of terrain must only connect to each other patch in one way, and never to itself, so some really twisted things can't be done.
20:35:34 <SimonRC> i.e. you have a graph of blocks of terrain
20:40:54 <oerjan> bsmntbombdood: if you delete something, write something else and then discover you didn't want to delete anyhow, you can undo, yank what you deleted, redo what you wrote, then paste
20:41:44 <oerjan> no, just ordinary yank
20:42:40 <oerjan> of course if the original delete was with a single command you may still have it in the yank buffer automatically
20:43:20 <oerjan> er, i vaguely recall that there are rotating yank buffers as well
20:45:10 <oklopol> <GregorR-L> oklopol: <100 whats? <<< cash tokens.
20:46:30 <oerjan> right, the numbered registers
21:00:43 <oklopol> does a stack based copy paste exist in any form?
21:01:52 <oerjan> the registers 1-9 behave as a stack
21:03:22 <bsmntbombdood> popping pastes wouldn't be very usefull, because you could only paste once
21:04:48 <oerjan> right, behave as a stack on pushing. on pasting you use "1p - "9p, i suppose
21:05:42 <oklopol> you could have top and pop separate
21:06:30 <oklopol> okloOS has this a native feature, it's very great in my head, though i'm not sure if it'll look exactly like that when i implement it...
21:40:52 -!- oerjan has quit ("Good night").
21:52:23 -!- jix has quit ("CommandQ").
22:00:16 -!- GregorR-L has quit (Read error: 110 (Connection timed out)).
22:29:00 -!- c|p has quit ("Leaving").
23:07:23 <lament> how can a number be odd in any base?
23:07:37 <lament> what does that even mean?
23:07:51 <lament> what does "odd in base n" mean?
23:08:24 <lament> so it doesn't depend on the base...
23:17:12 -!- c|p has joined.
23:26:21 -!- sebbu has quit ("@+").
23:36:11 -!- GregorR-L has joined.
23:38:21 -!- wooby has joined.
23:45:44 -!- wooby has quit.