←2011-04-29 2011-04-30 2011-05-01→ ↑2011 ↑all
00:00:15 <oerjan> micahjohnston: i have dcc_autochat_masks = EgoBot
00:00:44 <micahjohnston> @so !haskell putStrLn.ap(++)show"putStrLn.ap(++)show"--
00:00:44 <lambdabot> !haskell putStrLn.ap(++)show"putStrLn.ap(++)show"-- not available
00:01:12 <micahjohnston> @so !haskell putStrLn.ap(++)show"putStrLn.ap(++)show"--
00:01:12 <lambdabot> !haskell putStrLn.ap(++)show"putStrLn.ap(++)show"-- not available
00:01:34 <micahjohnston> @so !haskell putStrLn"test?"--
00:01:34 <lambdabot> !haskell putStrLn"test?"-- not available
00:01:36 <EgoBot> test?
00:01:45 <oerjan> micahjohnston: !haskell doesn't have any imports, so ap is not there
00:01:50 <micahjohnston> ohhh
00:02:19 <oerjan> you can use a full module file for !haskell though
00:02:49 <oerjan> oh and the -> instance is missing too
00:02:52 <micahjohnston> @so !haskell (\s->putStrLn$s(++)show s)"(\s->putStrLn$s(++)show s)"--
00:02:52 <lambdabot> !haskell (\s->putStrLn$s(++)show s)"(\s->putStrLn$s(++)show s)"-- not available
00:03:03 <micahjohnston> wow I'm dumb
00:03:15 <micahjohnston> @so !haskell (\s->putStrLn$s++show s)"(\s->putStrLn$s++show s)"--
00:03:15 <lambdabot> !haskell (\s->putStrLn$s++show s)"(\s->putStrLn$s++show s)"-- not available
00:03:40 * oerjan would have expected the last one to work...
00:03:56 <micahjohnston> @so !haskell (\s->putStrLn(s ++ show s))"(\s->putStrLn(s ++ show s))"--
00:03:56 <lambdabot> !haskell (\s->putStrLn(s ++ show s))"(\s->putStrLn(s ++ show s))"-- not available
00:03:58 <micahjohnston> yeah...
00:04:13 <micahjohnston> > (\s->putStrLn(s ++ show s))"(\s->putStrLn(s ++ show s))"
00:04:14 <lambdabot> <no location info>:
00:04:14 <lambdabot> lexical error in string/character literal at chara...
00:04:24 <oerjan> ah of course
00:04:31 <oerjan> the \ in the string
00:04:35 <micahjohnston> aha
00:04:44 <micahjohnston> > (\\s->putStrLn(s ++ show s))"(\\s->putStrLn(s ++ show s))"
00:04:45 <lambdabot> <no location info>: parse error on input `->'
00:04:58 <oerjan> XD
00:05:09 <micahjohnston> @so !haskell (\\s->putStrLn(s ++ show s))"(\\s->putStrLn(s ++ show s))" --
00:05:09 <lambdabot> !haskell (\\s->putStrLn(s ++ show s))"(\\s->putStrLn(s ++ show s))" -- not available
00:05:17 <micahjohnston> now what
00:05:43 <micahjohnston> @so !haskell (\\\s->putStrLn(s ++ show s))"(\\\s->putStrLn(s ++ show s))" --
00:05:43 <lambdabot> !haskell (\\\s->putStrLn(s ++ show s))"(\\\s->putStrLn(s ++ show s))" -- not available
00:05:49 <micahjohnston> :(
00:05:50 <oerjan> only double the \ _inside_ the string duh
00:05:58 <micahjohnston> ahhh
00:05:59 <micahjohnston> xD
00:06:11 <micahjohnston> @so !haskell (\s->putStrLn(s ++ show s))"(\\s->putStrLn(s ++ show s))" --
00:06:11 <lambdabot> !haskell (\s->putStrLn(s ++ show s))"(\\s->putStrLn(s ++ show s))" -- not available
00:06:14 <EgoBot> (\s->putStrLn(s ++ show s))"(\\s->putStrLn(s ++ show s))"
00:06:16 <micahjohnston> :D
00:08:06 -!- PocketMonsterIRC has quit (Read error: Connection reset by peer).
00:08:06 <micahjohnston> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:08:07 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:08:17 <micahjohnston> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:08:18 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:08:21 <EgoBot> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:08:21 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:08:24 -!- ChanServ has set channel mode: +o oerjan.
00:08:24 <EgoBot> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:08:24 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:08:27 <EgoBot> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:08:27 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:08:30 <EgoBot> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:08:30 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:08:34 <EgoBot> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:08:34 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:08:37 <EgoBot> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:08:37 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:08:38 -!- oerjan has set channel mode: -q EgoBot!*@*.
00:08:40 <EgoBot> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:08:40 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:08:43 <EgoBot> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:08:43 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:08:44 <micahjohnston> :D
00:08:46 <EgoBot> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:08:46 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:08:46 <micahjohnston> I did it!
00:08:48 <EgoBot> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:08:49 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:08:49 <oerjan> er what
00:08:52 <EgoBot> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:08:52 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:08:55 <EgoBot> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:08:55 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:08:58 <EgoBot> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:08:58 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:09:01 <EgoBot> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:09:01 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:09:04 <EgoBot> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:09:04 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:09:06 <oerjan> why didn't that work :(
00:09:07 <EgoBot> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:09:07 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:09:09 -!- oerjan has set channel mode: +b *!*Gregor@codu.org.
00:09:10 <EgoBot> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:09:10 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"@so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:09:52 <micahjohnston> HackEgo: help
00:09:58 <micahjohnston> `help
00:10:00 -!- oerjan has set channel mode: -b *!*Gregor@codu.org.
00:10:14 <micahjohnston> `echo something
00:10:14 <HackEgo> something
00:10:25 <micahjohnston> `echo !haskell print"something"
00:10:26 <HackEgo> !haskell print"something"
00:11:37 -!- iconmaster has quit (Quit: Pardon me, but I have to go die in NetHack again.).
00:11:46 -!- Wamanuz2 has joined.
00:11:47 <oerjan> i guess it should have been +q
00:11:47 -!- Wamanuz has quit (Ping timeout: 264 seconds).
00:12:10 <micahjohnston> `echo @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"`echo @so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:12:11 <HackEgo> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"`echo @so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:12:11 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"`echo @so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:12:14 <EgoBot> `echo @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"`echo @so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:12:15 <HackEgo> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"`echo @so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:12:16 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"`echo @so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:12:18 <EgoBot> `echo @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"`echo @so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:12:19 <HackEgo> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"`echo @so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:12:20 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"`echo @so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:12:20 -!- coppro has quit (Ping timeout: 240 seconds).
00:12:20 <micahjohnston> now, it's 3 stages!
00:12:22 <micahjohnston> sorry xD
00:12:22 <EgoBot> `echo @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"`echo @so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:12:23 <HackEgo> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"`echo @so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:12:24 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"`echo @so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:12:26 <micahjohnston> I should probably stop now
00:12:27 <EgoBot> `echo @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"`echo @so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:12:27 -!- oerjan has set channel mode: +q EgoBot!*@*.
00:12:28 <HackEgo> @so !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"`echo @so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"--
00:12:28 <lambdabot> !haskell (\s t->putStrLn(s ++ show s ++ show t ++ t))"`echo @so !haskell (\\s t->putStrLn(s ++ show s ++ show t ++ t))""--"-- not available
00:12:37 <oerjan> ok that works
00:12:44 -!- oerjan has set channel mode: -q EgoBot!*@*.
00:13:05 <micahjohnston> successed!
00:13:33 <Lymia> Haha
00:13:48 <micahjohnston> :D
00:14:09 <Lymia> oerjan, cyclic quines?
00:14:15 <Lymia> Autotriggering bots?
00:14:59 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:16:20 <oerjan> IT'S TRADITIONAL
00:17:28 <micahjohnston> @eval print "test"
00:17:34 -!- augur has joined.
00:17:34 <micahjohnston> @help eval
00:17:34 <lambdabot> eval. Do nothing (perversely)
00:17:41 <micahjohnston> what
00:17:47 <quintopia> hey oerjan, do you know if there is a novelty language on the wiki that is specified in such a way that it is turing-complete and capable of arbitrary output with the one exception that no program can output its own listing?
00:17:50 -!- ZOMGMODULES has joined.
00:18:53 <oerjan> there is one that is close
00:19:06 <micahjohnston> I'm not sure if that's possible by anything other than checking if the output is the program source
00:19:57 <quintopia> micahjohnston: that seems to be the easiest way, yes
00:20:04 <quintopia> is there one that does that?
00:20:05 <Ilari> crystal-cola: Oh, looks like I figured out a way to prove that no k divisible by some primes (3, 5, 7, 11, 13, 19, 23, 29) can have solutions.
00:20:15 <zzo38> Can that be proven that is only way?
00:20:26 <crystal-cola> Ilari: yikes!! cool
00:20:52 <crystal-cola> hmm 23 never appears
00:20:59 <crystal-cola> I can't remember if I saw it or not
00:21:03 <oerjan> quintopia: http://esolangs.org/wiki/User:Smjg it doesn't have its own page i think
00:21:06 <crystal-cola> probabl not
00:22:01 <oerjan> http://wwwep.stewartsplace.org.uk/quines/quineless.html
00:22:02 <ZOMGMODULES> i am hurt by smjg's abbreviation of these activities as "EP"
00:22:23 -!- oerjan has set channel mode: -o oerjan.
00:23:44 -!- augur has quit (Ping timeout: 240 seconds).
00:23:48 <oerjan> > 136 `div` 4
00:23:49 <lambdabot> 34
00:24:15 <oerjan> 136 is 8*17
00:24:27 <ZOMGMODULES> "for which the mapping from Turing-computable functions to programs is itself Turing-computable" I think that gets... assumed a lot
00:24:44 <oerjan> Ilari: could it be that p-1 must be divisible only by primes which are solutions?
00:25:48 <micahjohnston> ^help
00:25:48 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
00:25:55 <oerjan> or are parts of solutions
00:26:56 <quintopia> zzo38: i'm pretty sure the answer to that is yes. we know by the kleene second recursion theorem that there is a program that computes its own godel number in every turing-complete language. add the ability to output that number in whatever format necessary and you have a quine
00:27:01 <ZOMGMODULES> fungot: what are the odds you would produce that same string as a response to this statement?
00:27:02 <fungot> ZOMGMODULES: cooking is fnord in socialist countries don't have to specify types for the hard drive
00:27:08 <ZOMGMODULES> durn
00:27:44 <quintopia> and the least amount of output you can disallow is exactly the one string you don't want...the listing itself
00:28:03 <quintopia> i believe the rest would fall out of rice's theorem
00:28:52 -!- pumpkin has changed nick to copumpkin.
00:29:11 <ZOMGMODULES> someone really ought to mend the bottom of that theorem someday
00:29:45 <crystal-cola> Ilari: how is it proved?
00:34:34 <quintopia> oerjan: that page doesn't even describe my idea for the way to do it. i was thinking "output a bit if the program is empty, otherwise allow all input and output but keeping track of what's been output so far. If the program attempts to output the last bit of its listing, withhold output until another bit is output and then output both at once.
00:35:01 <quintopia> *of its listing having already output the rest of it
00:35:04 <ZOMGMODULES> i remember having that idea
00:35:29 <quintopia> it makes a lot more sense than preventing the first bit from being output
00:37:37 <oerjan> Ilari: hm if tau(x) divides n then x relatively prime to 15 divides 3^n - 5^n
00:37:45 <crystal-cola> what is tau ??
00:37:52 <oerjan> euler's totient function
00:37:58 <crystal-cola> ohh
00:38:02 <ZOMGMODULES> or just have your program alphabet be disjoint from your output alphabet. instant quineless language
00:38:22 <oerjan> oh wait that should be phi
00:38:37 <crystal-cola> yuou can call it tau if you like
00:38:51 <crystal-cola> I just thought you might have meant the Ramanujan tau and I was WOAH he weilds heavy weapons
00:39:33 <quintopia> ZOMGMODULES: then you are preventing it from outputting a lot more strings than my solution. (also, how do you do that? even with different alphabets i would assume that if the binary representations of two strings are the same, the strings are the same)
00:40:09 <oerjan> from that, 17*2^4 is obviously a solution, i think
00:40:25 <crystal-cola> yeah 17*2^4 is one solution that keeps cropping up
00:40:28 <quintopia> i suppose if you require all instruction be a byte long beginning in zero, and all output bytes to begin with 1, you could do it
00:40:40 <crystal-cola> there's something funny going on with the 17s (well maybe it's just because that's the smallest prime other than 2)
00:40:49 <ZOMGMODULES> what are these "bytes" of which you speak
00:40:54 <oerjan> Ilari: do you have something like that in reverse?
00:41:16 <crystal-cola> Ilari proved a theorem about combining solutions (and a bunch of others)
00:41:42 <Sgeo> "This is the latest fucking SqueakSource"
00:41:49 <Sgeo> --Laurent Laffont
00:42:42 <oerjan> quintopia: in any case your solution obviously also lacks the "mapping must be turing-computable" condition
00:43:36 <quintopia> yes obviously. i'm not disputing the truth of the revised theorem
00:44:06 <quintopia> i'm just saying it's a much more sensible way of excluding quines from a function->program mapping
00:45:06 <oerjan> Ilari: this raises the question, if n | 3^n - 5^n must it be that 3^n and 5^n == 1 (mod n) ?
00:45:13 <ZOMGMODULES> or output a space after every output symbol
00:46:49 <oerjan> ZOMGMODULES: um it's required that every particular string _can_ be printed
00:46:59 <oerjan> otherwise it's not an interesting question
00:47:19 <pikhq> Hmm. 1 more semester of community college...
00:48:15 <ZOMGMODULES> oerjan: it's printed! it's just double-spaced!
00:48:26 * oerjan swats ZOMGMODULES -----###
00:48:37 <ZOMGMODULES> ZOMG
00:49:05 <pikhq> After which point I will have a pile of math & CS classes for a bachelor's.
00:50:07 <oerjan> hm what can you deduce from 3^n == 5^n (mod n) by multiplying several 3's and 5's together...
00:51:03 * ZOMGMODULES explodes
00:51:04 -!- ZOMGMODULES has quit (Quit: leaving).
00:52:30 <crystal-cola> oerjan: what do you mean?
00:53:07 <oerjan> crystal-cola: i'm just pondering if you can determine something like phi(n) | n
00:53:24 <crystal-cola> by multiplying 3s and 5s?
00:53:27 <crystal-cola> what does it mean
00:53:31 <crystal-cola> like
00:53:33 <oerjan> well that was just a wild idea
00:53:42 <crystal-cola> 5^n 3^n = 5^2n (mod n)
00:53:42 <oerjan> to get more numbers to test
00:53:46 <oerjan> yeah
00:54:01 <crystal-cola> hmm
00:55:40 <oerjan> > [n | n <- [1..], n `mod` length [x | x <- [1..n-1], x `gcd` n == 1] == 0]
00:55:41 <lambdabot> *Exception: divide by zero
00:55:56 <oerjan> > [n | n <- [2..], n `mod` length [x | x <- [1..n-1], x `gcd` n == 1] == 0]
00:56:00 <lambdabot> mueval-core: Time limit exceeded
00:56:06 <oerjan> > take 10 [n | n <- [2..], n `mod` length [x | x <- [1..n-1], x `gcd` n == 1] == 0]
00:56:07 <lambdabot> [2,4,6,8,12,16,18,24,32,36]
00:56:31 <oerjan> oh hm
00:56:47 <oerjan> > take 10 [n | n <- [2..], n `mod` length [x | x <- [1..n-1], x `gcd` n == 1] == 0, n `gcd` 15 == 1]
00:56:49 <lambdabot> [2,4,8,16,32,64,128,256,512,1024]
00:56:51 <crystal-cola> btw oerjan
00:57:05 <oerjan> hm 68 is not there...
00:57:08 <crystal-cola> Ilari mentioned some conjecture about if the modulus has lots of prime factors in it, you can probably remove one
00:57:09 <oerjan> > 17*4
00:57:10 <lambdabot> 68
00:57:19 <crystal-cola> and I thought that sounded kind of sylowish
00:57:30 <crystal-cola> but no real ideas, just vauge things that sound mathematical :/
00:57:31 <oerjan> heh
00:57:48 <oerjan> hm so 68 is a counterexample to that idea
00:58:06 <crystal-cola> 2,4,8,16,32,64,128,256,512,1024 why are they powers of two??
00:58:14 <oerjan> > let n = 68 in length [x | x <- [1..n-1], x `gcd` n == 1]
00:58:15 <lambdabot> 32
00:59:41 <oerjan> crystal-cola: well they're solutions to phi(n)|n, hm...
01:00:00 <oerjan> and not divisible by 3 or 5
01:00:59 <oerjan> oh hm that's a pretty strict condition
01:01:19 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
01:01:39 <oerjan> even 17*2^4 doesn't work because you need _more_ powers of 2 for the phi()
01:02:48 <oerjan> the prime 3 works because it only needs one extra 2
01:03:36 <oerjan> and phi(p^n) = phi(p)*p^(n-1)
01:04:32 <crystal-cola> ah the connection with fermat prmies
01:04:47 <quintopia> i think we should make a whole website about attributing to celebrities things they didn't say, like in the topic
01:05:38 <oerjan> i think that's called "uncyclopedia"
01:06:04 <quintopia> no, it'd be a dedicated site
01:06:15 <quintopia> step 1: find people saying idiotic things in IRC channels
01:06:31 <quintopia> step 2: attribute those statements to celebrities that would obviously never say them
01:06:31 <oerjan> "Uncyclopedia should be sufficient." -- Oscar Wilde
01:06:37 <quintopia> step 3: post on website
01:07:14 <quintopia> i don't go to uncyclopedia
01:07:17 <quintopia> i would go to this page
01:07:29 <crystal-cola> haha
01:07:39 <crystal-cola> bye the way uncyclopedia is dead
01:08:51 <oerjan> eek
01:09:50 <oerjan> crystal-cola: you aren't confusing with encyclopedia dramatica?
01:10:00 <crystal-cola> oops
01:10:01 <crystal-cola> yes I am
01:11:24 -!- lament has joined.
01:17:16 -!- augur has joined.
01:17:39 -!- augur has quit (Remote host closed the connection).
01:17:42 -!- augur has joined.
01:22:48 <oerjan> hm...
01:23:27 -!- augur has quit (Remote host closed the connection).
01:23:39 <oerjan> > let n = 17 in iterate (\(t,f) -> (3*t `mod` n, 5*t `mod` n)) (1,1)
01:23:40 <lambdabot> [(1,1),(3,5),(9,15),(10,11),(13,16),(5,14),(15,8),(11,7),(16,4),(14,12),(8,...
01:24:48 <oerjan> > let n = 17 in filter (uncurry (==) . snd) . zip [0..] $ iterate (\(t,f) -> (3*t `mod` n, 5*t `mod` n)) (1,1)
01:24:52 <lambdabot> mueval-core: Time limit exceeded
01:25:05 <oerjan> huh
01:25:17 <oerjan> > take 5 $ let n = 17 in filter (uncurry (==) . snd) . zip [0..] $ iterate (\(t,f) -> (3*t `mod` n, 5*t `mod` n)) (1,1)
01:25:21 <lambdabot> mueval-core: Time limit exceeded
01:25:29 <oerjan> > head $ let n = 17 in filter (uncurry (==) . snd) . zip [0..] $ iterate (\(t,f) -> (3*t `mod` n, 5*t `mod` n)) (1,1)
01:25:31 <lambdabot> (0,(1,1))
01:25:40 <oerjan> > take 2 $ let n = 17 in filter (uncurry (==) . snd) . zip [0..] $ iterate (\(t,f) -> (3*t `mod` n, 5*t `mod` n)) (1,1)
01:25:44 <lambdabot> mueval-core: Time limit exceeded
01:25:55 <oerjan> ...duh
01:26:18 <oerjan> > let n = 17 in filter (uncurry (==) . snd) . zip [0..] $ iterate (\(t,f) -> (3*t `mod` n, 5*f `mod` n)) (1,1)
01:26:20 <lambdabot> [(0,(1,1)),(4,(13,13)),(8,(16,16)),(12,(4,4)),(16,(1,1)),(20,(13,13)),(24,(...
01:27:19 <quintopia> i was going to suggest that lambdabot is always going to exceed its time limit if you start by telling it to take 5
01:27:58 <oerjan> well good you didn't
01:27:58 -!- augur has joined.
01:28:02 <oerjan> > take 5 [1..]
01:28:04 <lambdabot> [1,2,3,4,5]
01:29:22 <oerjan> > let n = 11 in filter (uncurry (==) . snd) . zip [0..] $ iterate (\(t,f) -> (3*t `mod` n, 5*f `mod` n)) (1,1)
01:29:24 <lambdabot> [(0,(1,1)),(5,(1,1)),(10,(1,1)),(15,(1,1)),(20,(1,1)),(25,(1,1)),(30,(1,1))...
01:29:39 <oerjan> i see... i wonder if that is what Ilari realized
01:30:12 <oerjan> since 3^n == 5^n (mod 11) requires 5 | n, you cannot have 11 as a prime factor
01:30:35 <oerjan> > let n = 7 in filter (uncurry (==) . snd) . zip [0..] $ iterate (\(t,f) -> (3*t `mod` n, 5*f `mod` n)) (1,1)
01:30:37 <lambdabot> [(0,(1,1)),(3,(6,6)),(6,(1,1)),(9,(6,6)),(12,(1,1)),(15,(6,6)),(18,(1,1)),(...
01:31:03 <oerjan> i guess there isn't really any point in considering anything but the first hit
01:31:24 <oerjan> > let n = 7 in (!!1) . filter (uncurry (==) . snd) . zip [0..] $ iterate (\(t,f) -> (3*t `mod` n, 5*f `mod` n)) (1,1)
01:31:26 <lambdabot> (3,(6,6))
01:32:17 <oerjan> > [(,) n . (!!1) . filter (uncurry (==) . snd) . zip [0..] $ iterate (\(t,f) -> (3*t `mod` n, 5*f `mod` n)) (1,1) | n <- [2,7,11,13,17,19]]
01:32:19 <lambdabot> [(2,(1,(1,1))),(7,(3,(6,6))),(11,(5,(1,1))),(13,(12,(1,1))),(17,(4,(13,13))...
01:33:07 <oerjan> > [(,) n . fst . (!!1) . filter (uncurry (==) . snd) . zip [0..] $ iterate (\(t,f) -> (3*t `mod` n, 5*f `mod` n)) (1,1) | n <- [2,7,11,13,17,19]]
01:33:09 <lambdabot> [(2,1),(7,3),(11,5),(13,12),(17,4),(19,6)]
01:33:27 <oerjan> > [(,) n . fst . (!!1) . filter (uncurry (==) . snd) . zip [0..] $ iterate (\(t,f) -> (3*t `mod` n, 5*f `mod` n)) (1,1) | n <- [23,29,31,37]]
01:33:29 <lambdabot> [(23,22),(29,28),(31,30),(37,12)]
01:34:03 <oerjan> basically all except 2 and 17 are excluded so far for that reason
01:36:28 <oerjan> > [(,) n . fst . (!!1) . filter (uncurry (==) . snd) . zip [0..] $ iterate (\(t,f) -> (3*t `mod` n, 5*f `mod` n)) (1,1) | n <- [41,43,47,53,59]]
01:36:30 <lambdabot> [(41,40),(43,7),(47,46),(53,26),(59,29)]
01:39:50 <oerjan> > [(,) n . fst . (!!1) . filter (uncurry (==) . snd) . zip [0..] $ iterate (\(t,f) -> (3*t `mod` n, 5*f `mod` n)) (1,1) | n <- [61,67,71,73,79,83,89,97]]
01:39:52 <lambdabot> [(61,15),(67,11),(71,35),(73,72),(79,78),(83,82),(89,88),(97,32)]
01:40:18 <oerjan> hah
01:40:23 <oerjan> 97 _might_ work
01:40:44 <pikhq> It's somewhat odd to find out that my high school Japanese teacher is now teaching Japanese at my college.
01:40:47 <oerjan> in fact it must
01:42:34 <oerjan> > [(,) n . fst . (!!1) . filter (uncurry (==) . snd) . zip [0..] $ iterate (\(t,f) -> (3*t `mod` n, 5*f `mod` n)) (1,1) | n <- [17*17]]
01:42:36 <lambdabot> [(289,68)]
01:42:50 <oerjan> oh right
01:43:15 <oerjan> hm will a prime power always work if the prime does...
01:44:09 <oerjan> > [(,) n . fst . (!!1) . filter (uncurry (==) . snd) . zip [0..] $ iterate (\(t,f) -> (3*t `mod` n, 5*f `mod` n)) (1,1) | n <- [97*97]]
01:44:11 <lambdabot> [(9409,3104)]
01:44:25 <oerjan> > 3104 `mod` 97
01:44:26 <lambdabot> 0
01:44:30 <oerjan> > 3104 `div` 97
01:44:31 <lambdabot> 32
01:44:35 <oerjan> well that one did
01:44:47 <oerjan> > [(,) n . fst . (!!1) . filter (uncurry (==) . snd) . zip [0..] $ iterate (\(t,f) -> (3*t `mod` n, 5*f `mod` n)) (1,1) | n <- [97*97*97]]
01:44:49 <lambdabot> [(912673,301088)]
01:45:02 <oerjan> > 301088 `divMod` 97
01:45:03 <lambdabot> (3104,0)
01:45:19 <oerjan> > [(,) n . fst . (!!1) . filter (uncurry (==) . snd) . zip [0..] $ iterate (\(t,f) -> (3*t `mod` n, 5*f `mod` n)) (1,1) | n <- [17^3]]
01:45:21 <lambdabot> [(4913,1156)]
01:45:30 <oerjan> > 1156 `divMod` 17
01:45:31 <lambdabot> (68,0)
01:45:40 <oerjan> > [(,) n . fst . (!!1) . filter (uncurry (==) . snd) . zip [0..] $ iterate (\(t,f) -> (3*t `mod` n, 5*f `mod` n)) (1,1) | n <- [17^4]]
01:45:42 <lambdabot> [(83521,19652)]
01:45:54 <oerjan> > 19652 `divMod` 17
01:45:55 <lambdabot> (1156,0)
01:46:22 <oerjan> it _does_ look like it just adds one factor of the prime itself to the exponent
01:47:33 <oerjan> hm what does happen for a^p (mod p^n) gcd(a,p) = 1 in general...
01:48:52 <oerjan> is there some sense in which that's equivalent to a (mod p^(n-1))
01:54:31 -!- augur has quit (Remote host closed the connection).
01:58:24 -!- augur has joined.
02:10:04 -!- augur has quit (Remote host closed the connection).
02:21:21 -!- augur has joined.
02:23:12 -!- elliott has joined.
02:23:30 <elliott> i approve of topic
02:25:48 <elliott> 23:20:27: <oerjan> that's what that text hack is for, i presume
02:25:54 <elliott> oerjan: its not a hack its just part of the prettyprinting thing
02:25:58 <elliott> oerjan: it just has a terrible Show instance is all :)
02:27:16 -!- TeruFSX2 has quit (Quit: No Ping reply in 180 seconds.).
02:27:21 <elliott> 23:26:49: <oerjan> HackEgo ignores no one, everyone ignores hackego, and fungot ignores everyone
02:27:22 <fungot> elliott: do you even *do* riastradh?
02:27:23 -!- TeruFSX has joined.
02:27:27 -!- TeruFSX has quit (Read error: Connection reset by peer).
02:27:29 <elliott> oerjan: no only fungot and egobot ignore hackego
02:27:30 <fungot> elliott: xwl pasted " macro examples" at http://paste.lisp.org/ display/ fnord for prime numbers.
02:27:31 <elliott> lambdabot doesn't
02:28:52 -!- lament has quit (Ping timeout: 246 seconds).
02:29:04 <oerjan> elliott: um "everyone" here doesn't include lambdabot
02:29:10 <elliott> how come
02:29:25 -!- augur has quit (Remote host closed the connection).
02:29:40 -!- lament has joined.
02:29:42 <oerjan> because i started out speaking about how everyone but lambdabot has all loops cut off
02:30:37 <elliott> ah
02:55:15 -!- augur has joined.
02:59:51 -!- augur has quit (Remote host closed the connection).
03:23:16 <quintopia> is there a reasonable way of using file-backed dynamic memory allocation? so that a data structure that grows can be mmap'd to a file?
03:23:28 <quintopia> (and the file is the size of the data structure)
03:25:39 <Ilari> Of course, there is a problem with pointers (specifically pointer base).
03:27:47 <Ilari> If you gave good chunk of continuous virtual memory space (which you do on 64-bit, even if VM space is not full 64 bits) one could put it in there.
03:29:08 <quintopia> oh. lame.
03:29:28 <Ilari> Maybe mmap huge anonymous memory chunk (can be terabytes in size on 64-bit), and then map the file over the beginning of that.
03:29:55 <elliott> quintopia: manually
03:30:00 <elliott> like all things to do with persistence on unix
03:30:07 <elliott> mmap works if you have a specific heap but only then
03:30:21 <pikhq> quintopia: If you want it automagic, you'll need a kernel supporting that.
03:30:26 <quintopia> yes i would do it manually
03:30:28 <Ilari> And then have relative memory addresses inside the block.
03:30:32 <quintopia> but how
03:30:33 <pikhq> As well as a language environment supporting it.
03:30:52 <elliott> quintopia: uh
03:30:55 <elliott> quintopia: write bytes manually
03:31:10 <crystal-cola> I am massively confused
03:31:12 <elliott> for instance with a growing away you could just write out each object in turn
03:31:13 <quintopia> oh
03:31:14 <elliott> growing array
03:31:24 <pikhq> Oh, manually? Yeah, just do the persistance yourself.
03:31:24 <elliott> pikhq: /hifive
03:31:38 <pikhq> elliott: ^5
03:31:42 <quintopia> you're saying instead of allowing the memory to be used like real memory, intercept every write to it by requiring it to go through a function call?
03:31:51 <elliott> quintopia: what
03:32:08 <elliott> quintopia: that's the kind of question that flags up little alarms in my brain saying "fundamental misunderstanding at work here", no offence
03:32:08 <pikhq> quintopia: Uh, you seem to not grok how manually persisting state works.
03:32:15 <quintopia> or have another thread that's watching the object for changes and mirroring it?
03:32:19 <elliott> quintopia: what exactly kind of structure are you persisting
03:32:28 <elliott> its something growing, but what is it
03:32:31 <elliott> a graph, a tree, an array, what
03:32:32 <Ilari> quintopia: I'm just saying encode every pointer inside the block as a relative offset or array index.
03:32:33 <quintopia> yeah i must not understand
03:32:38 <quintopia> let's say just a linked list
03:32:42 <elliott> ok well
03:32:47 <elliott> persisting a linked list doesn't make any sense at all
03:32:51 <elliott> because its just an array
03:32:55 <elliott> but uhh
03:32:58 <elliott> say it's integers
03:33:03 <pikhq> elliott: Sure it does.
03:33:09 <quintopia> it's not just an array
03:33:10 <elliott> pikhq: not if its the only thing in the file
03:33:18 <elliott> yes it is as far as persistence goes quintopia
03:33:18 <elliott> i mean
03:33:20 <quintopia> let's say it's a linked list where every node is a different length
03:33:26 <elliott> unless you want redundant pointers to the next byte
03:33:29 <pikhq> elliott: Well, yeah, there's little point to doing that.
03:33:43 <elliott> quintopia: ok let's just say its an array with variable length nodes
03:33:49 <quintopia> yer okay
03:34:03 <elliott> let n = 0
03:34:11 <elliott> for each element, write n, figure out how many bytes long it is, add that number to n
03:34:15 <elliott> then write out every element in turn
03:34:17 <elliott> erm
03:34:19 <elliott> after writing out a terminator
03:34:20 <elliott> like 0 say
03:34:34 <elliott> then the numbers you wrote out at the start are file offsets for the start of each element, after the end of the element list
03:34:37 <elliott> so you can just fseek
03:34:51 <elliott> blah blah blah you get the idea
03:34:57 <elliott> or
03:35:03 <elliott> quintopia: you could prefix every single object with its length in bytes
03:35:11 <elliott> and just write them out with no delimiters or anything
03:35:15 <elliott> then skipping an element is just an fseek
03:35:39 <quintopia> okay, and let's say i make a change to this structure somewhere else, like shorten the 10th node by 5 bytes and add 12 bytes to the 17th node and delete the 18th node? can i maintain the persistence without rewriting the whole object?
03:35:58 <elliott> well sure, you fseek in, write out more bytes
03:36:01 <elliott> itll be ugly though
03:36:05 <elliott> what are you trying to accomplish
03:36:17 <pikhq> That's definitely a good question. What's your end goal?
03:36:29 <quintopia> i want to log changes to a a particular block of memory another process is using
03:36:43 <quintopia> the process notifies me before it changes something and i log a backup of the data before it does that
03:36:44 <elliott> pikhq: yeah i hate to bug people about that because i hate when people won't answer my question because they want to know every detail about my program, but at this point i just dunno what quintopia's trying to do :P
03:36:53 <elliott> quintopia: ok well thats vague
03:36:56 <elliott> quintopia: is it just arbitrary amounts of bytes
03:36:57 <pikhq> What's your *end goal*, quintopia?
03:37:00 <elliott> or does it inform you about the structure somehow
03:37:28 <quintopia> pikhq: lightwieght recoverable transactional virtual memory
03:37:39 <elliott> just use [at]
03:37:44 <elliott> it does all this shit
03:38:02 <quintopia> elliott: it tells me which segment it's modifying, at which offset, and how many contiguous bytes
03:38:13 <quintopia> i can't. i have to roll my own. it's an assignment.
03:38:18 <elliott> it was a joke at doesn't even exist
03:38:22 <elliott> quintopia: why cant you just mmap a single file for each segment
03:38:28 <elliott> are there like thousands of segments simultaneously
03:38:29 <quintopia> i already do that
03:38:34 <elliott> ok then whats the problem
03:39:04 <elliott> i mean
03:39:10 <quintopia> i just need a persistent log to record the changes to those things now, so i can roll back the changes if the program crashes before the transaction completes
03:39:17 <elliott> basically youre trying to reinvent something that the filesystem's doing for you imo
03:39:20 <elliott> quintopia: what are yous toring in the log
03:39:21 <elliott> you storing
03:39:31 <pikhq> quintopia: If you're already mmap'ing, the kernel is *already* persisting your state.
03:39:48 <elliott> pikhq: thats obviously not what he means :P
03:39:51 <quintopia> i want to store the minimum data necessary to restore the segment to its state at the beginning of the transaction
03:39:55 <elliott> im abandoning apostrophes btw
03:39:59 <elliott> quintopia: ok what is wrong with this plan
03:40:02 <quintopia> if nothing has changed in the segment yet, the log should contain nothing
03:40:06 <elliott> quintopia: oh
03:40:08 <elliott> quintopia: to the byte level?
03:40:14 <elliott> how are you detecting changes
03:40:15 <pikhq> Admittedly, any transactional behavior will need to be done yourself.
03:40:17 <elliott> does the process tell you
03:40:38 <quintopia> the process says "I'm about to change this many bytes starting here. back them up please."
03:40:58 <elliott> quintopia: foo = mmap("start-numberofbytes"); memcpy(foo, start, numberofbytes);
03:41:03 <elliott> what's wrong with that
03:41:41 <quintopia> that's how i plan to get the data into the log, yes
03:41:50 <elliott> quintopia: what do you need more than that
03:41:55 <elliott> quintopia: do you just need an ordering of the segments
03:42:01 <elliott> why do you need that?
03:42:41 <elliott> quintopia: basically i dont understand why that line i showed you isnt enough
03:42:42 <elliott> what more do you need
03:42:43 <quintopia> well the log should ideally have a bunch of items of the form "this data goes at this offset in this segment" and so rolling back would just be a matter of opening the segment and copying the data back into place
03:42:50 <elliott> <elliott> quintopia: foo = mmap("start-numberofbytes"); memcpy(foo, start, numberofbytes);
03:42:51 <elliott> use the filename
03:42:59 <elliott> you can just list the directory
03:43:00 <elliott> open all the files
03:43:04 <elliott> parse the filename to get the segment info
03:43:05 <elliott> and copy it back
03:43:09 <quintopia> oh oh oh
03:43:10 <quintopia> i see
03:43:19 <elliott> its not the most "elegant" thing ever but its easier than maintaining your own file
03:43:20 <quintopia> you're saying the log will just be a buttload of different files
03:43:23 <elliott> yep
03:43:29 <quintopia> not bad
03:43:34 <elliott> i mean unless youre going to have millions of segments modified in one second
03:43:36 <elliott> it should be fast enough
03:43:40 <elliott> filesystems are pretty fast
03:43:47 <elliott> easier than rolling your own
03:43:55 <quintopia> you have a point sir
03:44:01 <quintopia> this doesn't sound so daunting now
03:44:01 <pikhq> And short-lived files won't get written to disk anyways.
03:44:27 <elliott> :)
03:44:52 <elliott> quintopia: actually your assignment sounds pretty awesome, i'm pretty sure you could do orthogonal persistence with it
03:44:57 <elliott> sort of
03:45:00 <elliott> more crashproofing
03:45:03 <elliott> but it's the same kind of thing
03:48:38 -!- pikhq_ has joined.
03:49:56 <elliott> hi pikhq_
03:50:18 <Ilari> crystal-cola: Testing factors of k: 2, 3, 5, 7, 11, 13, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, ... can't appear, 17, 97, ... can.
03:50:36 <elliott> Ilari: is this the same thing you've been trying to find for like a month?
03:50:43 <crystal-cola> they can't appear just form the data/
03:50:44 <crystal-cola> ?
03:51:02 -!- pikhq has quit (Ping timeout: 240 seconds).
03:51:21 -!- wareya has quit (Read error: Connection reset by peer).
03:51:35 <Ilari> AFAIK, Those number can't/can be factors of k,
03:52:02 -!- wareya has joined.
03:52:48 <pikhq_> elliott: Grawr.
03:53:05 * pikhq_ looks forward to having a functioning computer again.
03:55:11 <elliott> pikhq_: Isn't it your connection
03:56:54 <pikhq_> elliott: I'm currently using a shared, P4 piece of shit.
03:56:59 <elliott> awesome
03:57:15 <pikhq_> My new power supply should show up on Tuesday.
03:59:42 <Ilari> crystal-cola: Basically, a prime factor can appear in k only if the order of 5*3^-1 mod p consists of only factors of 2 and prime factors that can appear in k.
04:00:23 <crystal-cola> really!! That sounds like something we might be able to completely classify
04:00:24 <crystal-cola> those numbers
04:00:32 <crystal-cola> oh no 3^-1 again
04:00:40 <crystal-cola> I remember how awkward that thing is because it depends on p
04:00:56 <crystal-cola> still - maybe that could be solvedd
04:01:34 <Ilari> If it comes to actually computing it, 3^-1 isn't so bad. But I agree it is nasty in actual proofs.
04:03:49 -!- monqy_ has joined.
04:04:57 <Ilari> Well, if p == 1 (mod 3), then 3^-1 mod p = (2p + 1) / 3. If p == 2 (mod 3), then 3^-1 mod p = (p + 1) / 3.
04:06:32 -!- monqy has quit (Ping timeout: 260 seconds).
04:07:18 <Ilari> And furthermore it appears that if other prime factors than 2 appear in the order of 5*3^-1 mod p, then those are required to be in k if p appears in it.
04:07:44 <oerjan> Ilari: i asked you a question above which basically amounts to whether the order of 5*3^-1 mod p^n is always p^(n-1) times the order of 5*3^-1 mod p
04:08:16 <oerjan> because if so then the prime powers could be classified once the primes themselves are
04:09:49 <oerjan> it seemed to be right for small powers of 17 and 79
04:11:05 -!- rodgort has quit (Quit: ERC Version 5.3 (IRC client for Emacs)).
04:11:38 <elliott> oerjan: is what Ilari's thinking on actually the same thing as its been for months
04:11:39 <elliott> just curious
04:11:46 <elliott> ive been following the mystery with interest but total noncomprehension
04:11:57 -!- rodgort has joined.
04:12:00 <oerjan> elliott: i cannot recall it being mentioned before this week or so...
04:12:19 <oerjan> in fact wasn't it crystal-cola who asked it first
04:12:22 <elliott> ok Ilari's transitioned from the man on a mission to regular mathpuzzle funguy now
04:14:40 <oerjan> it seems to me now that the classification of this amounts to finding and factorizing those 5*3^-1 orders for prime powers
04:15:38 <oerjan> oh *97 above, not 79
04:22:05 <zzo38> Do you have any music to break phonographs by?
04:29:16 <elliott> zzo38 read this book once.
04:29:54 -!- Sgeo has quit (Read error: Connection reset by peer).
04:30:46 -!- Sgeo has joined.
04:30:48 <Ilari> Okay, if order of 5*3^-1 mod p is 2^r*s, and s has solutions, then s*p also has solutions.
04:34:15 <oerjan> Ilari: n is a solution iff for every prime power factor p^i of n, the order of 5*3^-1 mod p^i divides p.
04:34:18 -!- chickenzilla has quit (Ping timeout: 250 seconds).
04:34:29 <oerjan> no need to single out powers of 2 there
04:34:42 <oerjan> er
04:34:45 <oerjan> *divides n.
04:34:49 <pikhq_> zzo38: No, but I could find you some music to invade Poland by.
04:35:00 -!- z^ck has joined.
04:35:46 <oerjan> erm and n is not divisible by 3 or 5.
04:36:05 <oerjan> ...i guess that's implied by the existence of the order
04:36:16 -!- monqy_ has changed nick to monqy.
04:38:55 <zzo38> pikhq_: Which musics would that be?
04:42:56 <oerjan> die fahne hoch
04:44:35 <Ilari> If 5*3^-1 mod p is 2^r*s and s doesn't have solutions, then for s*p to have solutions would imply 5^(ps*2^r1)==3^(ps*2^r1) mod s. Which impiles x_5*ps*2^r1 == x_3*ps*2^r1 (mod phi(s)). But x_5*s*2^r1 != x_3*s*2^r1 (mod phi(s)), thus x_5*ps*2^r1 != x_3*ps*2^r1 (mod phi(s)), and s*p is not an solution.
04:45:16 <Ilari> This would actually imply the stronger form of that statement about dividing those factors away.
04:46:58 <oerjan> Ilari: um are you even reading what i'm saying?
04:47:24 <elliott> lets test
04:47:25 <elliott> Ilari: glub glub glub
04:47:30 <elliott> it's entirely possible he has a write-only irc client
04:48:13 <elliott> oerjan: signs point to yup
04:48:28 <oerjan> it's science
04:48:42 <elliott> i dunno its kinda fishy
04:48:43 <elliott> HAHA
04:48:50 <elliott> op me oerjan im just that cool
04:49:33 <elliott> that's not going to work is it
04:50:29 <crystal-cola> Ilari: that is great!!
04:50:47 <elliott> almost as great as all the opping oerjans not doing
04:50:52 <crystal-cola> it took me a while to understand it because its 6 am :/
04:51:17 <oerjan> wait crystal-cola is in europe?
04:51:22 <elliott> uk no
04:51:39 <elliott> what a coinseyedence it is six am in my bubble too :OOOO
04:51:47 <crystal-cola> wooaaaahhhhh
04:52:02 <elliott> that never happens since the world population is seventy thousand trillion and most timezones are a few minutes off each other
04:52:03 <crystal-cola> why do you stay up late?/
04:52:08 <elliott> why do you stay up late?/
04:52:14 <crystal-cola> by accident because im an idiot
04:52:17 <elliott> ditto
04:52:21 <crystal-cola> bulshit
04:52:23 <crystal-cola> you do it all the time
04:52:28 <elliott> im a consistent idiot
04:52:33 <crystal-cola> :))))
04:52:45 <elliott> also my body has now got the impression that when it gets bright thats sleepytime because its retarded
04:52:56 <elliott> cyborg plz
04:55:20 <elliott> hey look I have EmAiL i should read that instead of sleeping
04:55:38 <elliott> because god knows the sun isnt fully up yet how could i possibly sleep if my eyes werent incapacitated by the glare
04:56:58 <elliott> hey crystal-cola go sleep
04:57:26 <crystal-cola> I will
04:57:41 <elliott> good i have saved you now only i must suffer
04:57:47 <crystal-cola> hehe
05:02:18 <crystal-cola> maybe I just should just stay up forever
05:02:28 <elliott> xD
05:02:33 <elliott> define forever
05:02:41 <crystal-cola> until I collapse
05:02:49 <elliott> so about three hours then
05:02:52 <crystal-cola> heh
05:04:24 -!- copumpkin has joined.
05:06:56 <elliott> crystal-cola: jegus go to bed already
05:08:10 <pikhq_> Man, a Newfie accent is *weird*.
05:08:33 <pikhq_> It sounds like some sort of southern English accent.
05:09:36 <pikhq_> And it's in freaking Canada.
05:10:41 <crystal-cola> I've been studying q-series
05:11:09 <crystal-cola> (a;b) = product_{i=0..} (1-ab^i)
05:12:02 <Ilari> Of course, there's some issues applying this: E.g. if there is some prime p, such that order(5*3^-1 mod p,p) = 137*2^x, then 137p isn't a valid k, but 17*137*p is.
05:12:06 <crystal-cola> you can do some algebra with them, e.g. 1/(q;q^2)=(-q^2;q)
05:12:57 <crystal-cola> Ilari: what do you mean issues?
05:13:38 <crystal-cola> does it just mean that even though 137p isn't 137m might be? (for some m containing p)
05:14:46 <Ilari> crystal-cola: Well, it actually is if m = 17p.
05:15:14 <crystal-cola> I guess that's not as simple you might wish but is a problem for something?
05:15:40 -!- news-ham has quit (Ping timeout: 260 seconds).
05:16:44 -!- elliott has quit (Ping timeout: 252 seconds).
05:17:25 <Ilari> crystal-cola: Mainly problem if applying those for a seaching algorithm.
05:17:59 <Ilari> crystal-cola: Ah, found such p: 1097. 137*1097 isn't a valid k, but 17*137*1097 is.
05:18:42 <crystal-cola> and 137 isn't a k on its own?
05:18:48 <Ilari> crystal-cola: Right.
05:19:56 <Ilari> crystal-cola: And if you got order(5*3^-1 mod q,q) = 137^2*2^x, the corresponding irreducable k would be 17*137^2*q
05:21:58 <Ilari> The list of pairs doesn't have such thing because it would require k above 2^32 to hit cases like that.
05:22:00 <oerjan> Ilari: i am _so_ tempted to ban you for ignoring my comments...
05:24:41 -!- Ilari_antrcomp has left.
05:24:44 -!- Ilari has left.
05:25:06 <crystal-cola> ~ ~ ~ I l a r i ~ ~ ~
05:25:24 <oerjan> ...either that, or for lacking a sense of humor.
05:36:46 -!- TeruFSX has joined.
05:39:21 <crystal-cola> my problem is getting from here to bed
05:39:33 <crystal-cola> it's particularly difficult because I can't do it without moving
05:55:22 -!- coppro has joined.
05:55:47 -!- coppro has quit (Client Quit).
05:56:27 -!- coppro has joined.
06:00:15 <copumpkin> crystal-cola: life is tough, but that's one of those things you just have to do yourself
06:16:29 <zzo38> I tried to make prestige class for D&D game.
06:16:39 <zzo38> http://zzo38computer.cjb.net/dnd/options/Psychic_Binder.c
06:28:33 -!- poiuy_qwert has joined.
06:40:05 -!- lament has quit (Read error: Connection reset by peer).
06:45:38 -!- zzo38 has quit (Remote host closed the connection).
06:51:39 <pikhq_> http://i.imgur.com/gvWZG.jpg :)
06:51:52 <pikhq_> (the text reads: "Teenage Mutant Ninja Turtles", BTW)
06:52:36 -!- monqy has quit (Read error: Connection reset by peer).
06:52:47 -!- monqy has joined.
07:01:02 <Sgeo> "I definitely agree with most of what was saidexcept that Id never, ever recommend VisualWorks. Its a piece of beautiful crap which has the feature of failing at its own pleasure :("
07:02:18 -!- crystal-cola has quit (Quit: leaving).
07:34:29 -!- pikhq_ has quit (Quit: Lost terminal).
08:03:51 -!- azaq23 has joined.
08:05:35 -!- MigoMipo has joined.
08:20:47 -!- augur has joined.
08:43:54 -!- poiuy_qwert has quit (Ping timeout: 250 seconds).
08:44:41 -!- poiuy_qwert has joined.
08:46:42 -!- oerjan has quit (Quit: Good night).
09:17:01 -!- Wamanuz2 has quit (Ping timeout: 240 seconds).
09:19:04 -!- Wamanuz2 has joined.
09:48:31 -!- monqy has quit (Quit: hello).
09:56:18 -!- FireFly has joined.
10:11:26 -!- poiuy_qwert has quit (Ping timeout: 250 seconds).
10:16:21 -!- poiuy_qwert has joined.
10:19:30 -!- augur has quit (Read error: Connection reset by peer).
10:19:44 -!- augur has joined.
10:39:10 -!- poiuy_qwert has quit (Ping timeout: 250 seconds).
10:43:21 -!- poiuy_qwert has joined.
11:42:40 -!- p_q has joined.
11:43:19 -!- poiuy_qwert has quit (Ping timeout: 250 seconds).
11:49:47 -!- azaq23 has quit (Quit: Leaving.).
11:55:10 -!- BeholdMyGlory has joined.
11:55:11 -!- BeholdMyGlory has quit (Changing host).
11:55:12 -!- BeholdMyGlory has joined.
12:00:32 -!- sirakusa has joined.
12:00:39 -!- siracusa has quit (Ping timeout: 250 seconds).
12:00:58 -!- sirakusa has changed nick to siracusa.
12:54:46 -!- augur has quit (Remote host closed the connection).
12:56:00 -!- augur has joined.
12:56:04 -!- augur has quit (Remote host closed the connection).
12:56:08 -!- augur has joined.
12:57:15 -!- augur has quit (Remote host closed the connection).
13:00:14 <quintopia> someone remind if "char *segnames[numsegs]" where numsegs is a function parameter is a legal C declaration. Something in my brain is telling me that it is not legal to parameterize array declarations like that...
13:02:19 <fizzie> It's legal in C99; that's a "variable-length array" then.
13:04:13 <quintopia> oh okay thanks
13:05:58 <fizzie> (Or as a GNU extension in C89 and C++.)
13:08:12 <fizzie> There's a yet weirder a bit related GNU extension that lets you write a function declaration like "int foo(int len; char data[len][len], int len) { ... }" where the first "int len" is a "forward declaration" so that len's available for use in the first actual parameter 'data'. I don't think I've ever seen that used.
13:12:59 <quintopia> yeah i noticed some people talking about declarations like that on a forum thread
13:13:06 <quintopia> don't think i'm gonna need those.
13:13:45 <quintopia> you don't have to use the semicolon if you put them in the other order i think
13:13:56 <fizzie> Right.
13:25:46 -!- crystal-cola has joined.
13:26:10 <quintopia> fizzie: using that declaration, would the array be created on the stack in the function scope?
13:28:12 <fizzie> The function is still going to take a pointer; it's not going to actually create any arrays or pass the whole array by-value.
13:28:46 <quintopia> no no i meant the first thing
13:28:52 <quintopia> the variable-length array
13:28:58 <quintopia> where does it get stored
13:29:07 <fizzie> Oh. Well, yes, in practice. In theory all you can say is it has automatic storage duration.
13:29:14 <fizzie> A "stack"'s not required, after all.
13:30:14 <fizzie> It's much like the old-style alloca() function, except cleaner than that.
13:30:50 -!- Wamanuz3 has joined.
13:32:29 <quintopia> so, basically, that array will be clobbered as soon as the function returns? guess i better put it on the heap anyway
13:32:54 <fizzie> Yes. And if you put the declaration inside a {} block, it will be freed as soon as that brace-level ends.
13:33:28 -!- Wamanuz2 has quit (Ping timeout: 240 seconds).
13:36:37 <quintopia> what's the right way to turn a number into a string? i know snprintf can do it, but you have to know the length of the string in advance. do i actually have to manually compute that?
13:37:55 <crystal-cola> well you can just do snprintf in a for loop I think
13:37:58 <crystal-cola> until it doesn't error
13:38:07 <crystal-cola> on a bigger and bigger string
13:38:16 <quintopia> okay thanks. i'll manually compute it
13:38:16 <fizzie> If you don't mind GNU/BSD extensions, asprintf (which allocates the resulting string) is handy. It's also possible to determine a long-enough upper bound from INT_MAX or something.
13:38:29 <quintopia> oh neat
13:38:39 <quintopia> i think gnu extensions are probs fine
13:39:08 <fizzie> I'm not sure if C99 mandated the "sensible" snprintf, which you can call with length==0 and a NULL string, and it will return the number of characters it would've printed if it could've.
13:40:26 <fizzie> I think it did.
13:40:39 <quintopia> #define _GNU_SOURCE must be there to make gnu extensions compile?
13:41:03 <olsner> it's pretty trivial to make a buffer large enough for an int (or long), and snprtinf into it
13:41:04 <fizzie> "If n is zero, nothing is written, and s may be a null pointer. -- The snprintf function returns the number of characters that would have been written had n been sufficiently large, not counting the terminating null character, --"
13:41:21 <fizzie> So with C99 you can do the double-snprintf thing safely.
13:41:46 <quintopia> and you're right
13:41:53 <olsner> microsoft's snprintf just returns -1 instead :)
13:41:58 <quintopia> yeah i just saw that thing you pasted in the man page
13:42:06 <fizzie> olsner: So did glibc's snprintf not too long ago.
13:42:36 <fizzie> "The glibc implementation of the functions snprintf() and vsnprintf() conforms to the C99 standard, that is, behaves as described above, since glibc version 2.1. Until glibc 2.0.6 they would return -1 when the output was truncated."
13:42:43 <fizzie> Well, maybe 2.1 *is* quite old now.
13:43:07 <olsner> what's the current one? 2.11?
13:43:24 <fizzie> 2.0.6 is from December 1997; 2.1.1 from May 1999; based on ftp.gnu.org file timestamps.
13:43:32 <fizzie> Latest seems to be 2.12.
13:43:35 <fizzie> 2.13, I mean.
13:43:37 <fizzie> (A tybo.)
13:46:49 -!- poiuy_qwert has joined.
13:48:45 -!- ais523 has joined.
13:48:59 -!- p_q has quit (Ping timeout: 250 seconds).
13:55:26 -!- MigoMipo has quit (Read error: Connection reset by peer).
14:11:20 -!- mesquka has joined.
14:11:38 -!- mesquka has quit (Client Quit).
14:37:22 * ais523 tries to figure out why Update Manager is downloading at a rate of a few kb per s, when everything else seems to be going fine
14:39:18 <olsner> because the security updates aren't mirrored?
14:41:33 <ais523> aha, you think they're only up on one server at the other end and it's overloaded?
14:41:39 <ais523> that might be it
14:48:26 <quintopia> do i need to cast void * to something to be able to grab a pointer to exactly n bytes after where the pointer is pointing? like, cast to char * and then do regular pointer arithmetic?
14:49:06 <fizzie> Yes, and you need to use a char if you want to speak of bytes.
14:49:13 <olsner> yes, arithmetic on void* is undefined (but *usually* does the same thing as it would on char*)
14:49:31 <quintopia> ko
14:49:34 <fizzie> Byte-based arithmetic on a void* is yet another GNU extension.
14:49:44 <fizzie> (Of course many others do it too.)
14:50:46 <quintopia> (void *)((char *)segbase+newoffset) points newoffset bytes past segbase, then?
14:51:34 <fizzie> Yes, sounds like it should.
14:52:03 <quintopia> all this would be unnecessary if memcpy took an offset :P
14:52:25 <fizzie> (Related trivia: GCC also allows arithmetic on function pointers; done like on a char* too.)
14:53:50 <fizzie> If you want to work on byteish pointers, you could just keep them as char*s or unsigned char*s in your code.
14:54:13 <fizzie> You can pass them to memcpy and void*-taking things without a cast, after all.
14:57:46 <quintopia> eh, the (required) API calls for them to be passed into my functions as void * so i'd have to cast either way
14:57:51 <quintopia> but i would do that if i could
15:14:45 -!- augur has joined.
15:31:13 -!- Tritonio has quit (Quit: Leaving).
15:34:30 -!- p_q has joined.
15:35:14 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
15:36:19 -!- FireFly has quit (Quit: swatted to death).
15:37:25 <tswett> Is char always a byte in C?
15:54:18 <ais523> yes, by definition
15:54:21 <ais523> although a byte isn't always 8 bits
15:54:27 <ais523> if a char's 32 bits wide, so is a byte
15:54:35 <ais523> (this actually happens on some DSPs)
16:05:48 <quintopia> yeah, that's something i have to constantly keep in mind, because i took off the training wheels programming java, where a char is not a byte
16:08:41 <fizzie> Even some (many?) DSP archs opt to fake 8-bit bytes, despite the architecture being very word-oriented.
16:09:32 <yorick> quintopia: poor you...java :(
16:11:37 -!- elliott_ has joined.
16:12:51 <quintopia> yorick: i know, right? but despite sucking, it's still a joy (to me) compared to C
16:14:05 -!- elliott__ has joined.
16:16:03 -!- elliott_ has quit (Ping timeout: 240 seconds).
16:16:40 <yorick> quintopia: ever tried c++?
16:17:18 <yorick> std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, known_client>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, known_client> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_tr
16:18:52 <elliott__> yorick: that's a bit disingenuous since almost all of those are defaults that compiler messages omit nowadays
16:19:29 <yorick> elliott__: tell gprof that :)
16:19:41 <elliott__> yorick: not that I'm advocating using C++...
16:19:53 <yorick> actually gprof just told me _ZNSt8_Rb_treeISsSt4pairIKSs12known_clientESt10_Select1stIS3_ESt4lessISsESaIS3_EE10_M_insert_EPKSt18_Rb_tree_node_baseSC_RKS3_
16:24:30 -!- augur has quit (Remote host closed the connection).
16:24:57 -!- augur has joined.
16:25:03 -!- augur has quit (Remote host closed the connection).
16:26:06 -!- augur has joined.
16:26:51 <quintopia> yorick: c++ sucks worse than c as far as i can tell
16:27:14 <quintopia> it's like algol 68, but *popular*
16:27:24 <elliott__> what
16:27:31 <elliott__> i don't see any relation to algol 68
16:27:32 <elliott__> other than
16:27:35 <elliott__> they both have a lot of stuff??
16:27:43 <quintopia> elliott__: design by committe
16:27:50 <elliott__> you mean like C99?
16:28:08 <elliott__> or uh Scheme?
16:28:15 <quintopia> i think there were less arguments in the design of those
16:28:42 <quintopia> i think it's the "a lot of stuff" that's important here
16:29:08 <quintopia> when a committee gets together and says "how much stuff can we wedge in here?" and everyone that has an idea gets to put it in
16:29:54 <elliott__> 00:17:47: <quintopia> hey oerjan, do you know if there is a novelty language on the wiki that is specified in such a way that it is turing-complete and capable of arbitrary output with the one exception that no program can output its own listing?
16:29:56 <elliott__> yes.
16:30:05 <elliott__> it doesn't disprove the TC implies quine theorem because it doesn't have sufficient output capabilities
16:30:31 <elliott__> so basically the language proves ~nothing
16:31:26 <elliott__> `addquote <crystal-cola> I just thought you might have meant the Ramanujan tau and I was WOAH he weilds heavy weapons
16:31:30 <HackEgo> 383) <crystal-cola> I just thought you might have meant the Ramanujan tau and I was WOAH he weilds heavy weapons
16:31:32 <ais523> it's on someone's talkpage, IIRC
16:31:42 <elliott__> ais523: userpage
16:31:47 <ais523> ah, perhaps
16:31:57 <ais523> I know I wrote one (which could either run TC with no output, or sub-TC with output)
16:32:14 <ais523> which fulfils "turing-complete and capable of arbitrary output" rather vacuously
16:33:12 <elliott__> ais523: yep, but that isn't what "arbitrary output" means
16:33:24 <ais523> yes it is
16:33:27 <elliott__> ais523: no it isn't
16:33:35 <elliott__> ais523: arbitrary output means arbitrary output at an arbitrary point
16:33:41 <elliott__> just like arbitrary effect at an arbitrary point
16:33:41 <ais523> you have to be more precise if you want "output the result of an arbitrary computation", for instance
16:33:50 <elliott__> yes, it's called abbreviating things :)
16:34:48 <elliott__> brb
16:35:42 -!- elliott__ has quit (Remote host closed the connection).
16:35:53 <crystal-cola> hi eliott
16:37:40 <quintopia> the page that oerjan linked during that discussion yesterday contained the spec of your language ais, and also the correctly stated version of the theorem
16:38:54 <quintopia> okay -->
16:39:05 -!- KingOfKarlsruhe has joined.
16:42:19 -!- zzo38 has joined.
16:49:27 -!- cheater2 has joined.
16:59:58 -!- monqy has joined.
17:09:19 <Sgeo> "Bitcoin hits $4 a coin. Bitcoin rush is back on and people are buying graphics cards by the masses to mine new coins."
17:09:26 * Sgeo bubbles a bit
17:09:40 <Sgeo> ^^not meant to construe an actual opinion
17:09:49 <Sgeo> ^^not meant to make grammatical ense
17:10:05 <Sgeo> ^^not meant to be spelled correctly
17:10:11 <monqy> hi
17:10:13 <monqy> I don't understand bitcoins
17:11:17 <zzo38> Are the people invented Bitcoin in the business of selling graphics cards?
17:11:37 <monqy> graphics cards give you processing power
17:11:41 <Sgeo> Not as far as we know...
17:11:43 <monqy> processing power for manufacturing bitcoins
17:12:02 <monqy> at least that's what I think is happeneing
17:12:05 <monqy> without that e
17:12:07 <monqy> yuck
17:13:09 <monqy> though I can see that meaning good profit from additionally selling graphics cards
17:19:52 -!- lament has joined.
17:20:55 -!- MigoMipo has joined.
17:36:40 -!- elliott_ has joined.
17:36:49 <elliott_> crystal-cola: You might be interested in http://www.haskell.org/haskellwiki/Zeno.
17:57:18 <Sgeo> I've been banned from Cybertown apparently
17:58:58 <elliott_> Thrilling.
17:58:58 -!- variable has quit (Ping timeout: 260 seconds).
17:59:09 <olsner> how very interesting
18:00:01 <elliott_> What really happened is that the ban servers have gotten bored from doing absolutely nothing since nineteen ninety-five.
18:00:05 <elliott_> And just started banning people at random.
18:00:11 -!- variable has joined.
18:00:32 <elliott_> oh wow the cybertown website uses popups this is brilliant olsner
18:00:33 <elliott_> it's a work of art
18:00:44 <olsner> OMG POPUPS!!!1
18:01:06 <elliott_> "See the new features introduced so far this year in Cybertown"
18:01:07 <elliott_> chirp chirp
18:16:39 <Gregor> wtf is Cybertown X-D
18:16:46 <Gregor> Other than clearly retarded.
18:16:53 <monqy> http://upload.wikimedia.org/wikipedia/en/e/e3/CT_shot.jpg quality entertainment
18:17:56 <Gregor> lolwut
18:18:09 <monqy> it looks old
18:18:19 <Gregor> I love how it's one guy standing lonely and alone :P
18:18:47 <cheater2> yeah lol
18:18:50 <monqy> the cybertown homepage is quality too
18:18:53 <monqy> 7 Citizens Online
18:19:14 <elliott_> Gregor: Ancient is what.
18:19:20 <Sgeo> Well, it used to be free. It was much more active is when it was free
18:19:22 <elliott_> And one of Sgeo's endless necrophilic virtual reality obsessions.
18:19:33 <crystal-cola> whats so good about 3D?
18:19:34 <elliott_> monqy: WHAT THE DRUG COMPANIES DON'T WANT YOU TO KNOW...
18:19:41 <crystal-cola> 3D computer graphics piss me off
18:19:52 <elliott_> why
18:19:59 <crystal-cola> it's all Euclidean geometry, why does nobody create exotic spaces?
18:20:07 <olsner> Gregor: maybe it's single player :)
18:20:13 <Sgeo> crystal-cola, Worlds has exotic spaces
18:20:36 <crystal-cola> is it good?
18:20:39 <Sgeo> Well, not hyperbolic or elliptical, but still.. weird
18:20:47 <Sgeo> crystal-cola, it's old. I don't know about good
18:20:48 <elliott_> crystal-cola: because it'd difficult
18:20:54 <elliott_> it's
18:20:59 <elliott_> crystal-cola: PH wanted a non-Euclidean raytracer
18:21:05 <elliott_> crystal-cola: but the problem is that photons make no sense or something
18:21:06 <elliott_> I forget
18:21:09 <elliott_> it's complicated, anyway
18:21:18 <crystal-cola> http://www.sessionmagazine.com/img/nature/worlds-10-smallest-animals/worlds-10-smallest-animals07.jpg
18:21:23 <Sgeo> It uses portals to separate rooms. Mix up the portals and bam, there's weirdness
18:21:27 <crystal-cola> worlds biggest thumb
18:21:37 <Sgeo> There's a maze in Worlds where nothing makes sense
18:21:46 <Sgeo> crystal-cola, are you on Windows or can otherwise use WINE?
18:21:49 <Sgeo> I want to show you?
18:22:03 <elliott_> crystal-cola: don't dooo it
18:22:04 <crystal-cola> it's okay I'm just glad it exists
18:22:07 <elliott_> `addquote <crystal-cola> http://www.sessionmagazine.com/img/nature/worlds-10-smallest-animals/worlds-10-smallest-animals07.jpg <crystal-cola> worlds biggest thumb
18:22:08 <HackEgo> 384) <crystal-cola> http://www.sessionmagazine.com/img/nature/worlds-10-smallest-animals/worlds-10-smallest-animals07.jpg <crystal-cola> worlds biggest thumb
18:22:31 <elliott_> [mirrored http://ompldr.org/vOGhzZQ]
18:22:34 <Sgeo> (Note that Worlds.com is widely regarded as a patent troll)
18:22:47 <elliott_> your mom is a patent troll
18:22:48 <elliott_> also your face
18:22:52 <elliott_> everyone is a patent troll
18:23:05 <elliott_> wow holy shit the people on http://worlds.com/ look fucked up
18:23:08 <elliott_> what is up with their faces
18:23:25 <elliott_> ok that's just uncanny valley
18:24:24 <Sgeo> Note: the graphics are not as good as the page makes them seem
18:24:31 <elliott_> lol how can they be worse
18:25:08 <Sgeo> Oh, and if you don't pay, you don't get 3d avatars
18:25:13 <elliott_> wat
18:25:14 <monqy> :(
18:25:26 <elliott_> are you just an infinitely thin piece of cardboard
18:25:31 <Sgeo> elliott_, yes.
18:25:35 <crystal-cola> lol this worlds thing is horrific
18:25:35 <elliott_> awesome
18:25:40 <elliott_> can people walk through you if you stand sideways
18:25:53 <Sgeo> I don't remember if avatars collide
18:26:01 <monqy> walk through everyone forever
18:26:11 <Sgeo> Oh, and there's no privacy. You can unilaterally add people to your friends list
18:26:25 <elliott_> what does that have to do with privacy
18:26:36 <monqy> what does friends list mean
18:26:51 <olsner> it's like a list, but it contains friends
18:27:12 <monqy> do friends hand out personal information
18:27:25 <crystal-cola> friends don't let friends has any privacy
18:27:35 <Sgeo> Well, you can teleport to anyone on your friends list. You can see that they're online
18:27:50 <elliott_> crystal-cola: what an good grammer
18:27:51 <monqy> sounds like a good way to have fun
18:27:56 <crystal-cola> jhijij
18:28:52 <Sgeo> Oh, and for official worlds, if you haven't already, the client needs to download and install them, which requires restarting the client. Worlds made by users don't have this issue
18:28:54 <crystal-cola> "Here: this is a box of numbers. It's called a matrix. Next topic!"
18:28:54 <crystal-cola> You have accurately described the aim of public education policy in the USA.
18:29:09 <Sgeo> There's a place called the Gauntlet that loads all the official worlds
18:29:15 <elliott_> Sgeo: why do you know all this
18:29:17 <elliott_> start forgetting it
18:29:20 <elliott_> it's a waste of neurons
18:29:55 <crystal-cola> I don't understand networked games
18:29:58 <crystal-cola> like
18:30:00 <elliott_> why not
18:30:02 <crystal-cola> how does it work??
18:30:04 <elliott_> what
18:30:08 <elliott_> what do you mean how does it work
18:30:12 <elliott_> clients tell server what they're doing
18:30:16 <elliott_> server tells it to all the other clients
18:30:18 <crystal-cola> if I made a networked game with characters in it there would be too much lag
18:30:22 <crystal-cola> it wouldn't be playable for anyone
18:30:26 <elliott_> crystal-cola: clients usually do simple prediction
18:30:27 <elliott_> as in
18:30:29 <elliott_> if someone's walking on a path
18:30:37 <elliott_> it'll continue showing them walking on that path
18:30:40 <elliott_> until the server update
18:30:53 <elliott_> but anyway servers have to have low-latency and decent bandwidth, that's sort of the point
18:31:10 <crystal-cola> yeah I guess it would be best over LAN
18:31:13 <Sgeo> Unless you're inieros
18:31:17 <crystal-cola> but that would usck
18:31:42 <zzo38> There are other thing too such as making telnet-based system, not needing as much bandwidth or processing powers as others, and no special software is needed, in addition it work on all computers
18:31:48 <elliott_> crystal-cola: Well, it's not rocket science. You figure out how to send the least information possible from the clients, and have simple client-side prediction.
18:32:01 <Sgeo> Oh, and Worlds expects you to pay for their world creation tool... but it's activated by a single line in an .ini file
18:32:18 <monqy> smart fellows
18:32:39 <monqy> the question now is if they're lazy or idiotic
18:32:47 <elliott_> have you seen the homepage
18:32:48 <elliott_> i think they're just insane
18:32:56 <crystal-cola> I just can't imagine it working well
18:33:03 <elliott_> crystal-cola: the internet is stupid fast
18:33:05 <zzo38> monqy: Or if it is intentional for some reason
18:33:07 <Sgeo> On the plus side, they made some cool stuff
18:33:09 <crystal-cola> it doesn't feel very fast
18:33:19 <Sgeo> That aforementioned non-Euclidean maze, an invisible maze
18:33:22 <Sgeo> A pretty garden
18:33:27 <elliott_> crystal-cola: we have latency to within a pretty small factor of the speed of light
18:33:38 <elliott_> crystal-cola: even the slowest connections (apart from in the US) can send a whole mebioctet a second
18:33:38 <monqy> what if I dislike mazes
18:33:41 <monqy> (I dislike mazes)
18:33:49 <zzo38> monqy: Then don't play those kind of games.
18:33:49 <elliott_> crystal-cola: that's 8,388,608 bits per second
18:33:51 <crystal-cola> hey
18:33:53 <crystal-cola> I just realized
18:34:00 <elliott_> crystal-cola: what kind of game has 8,388,608 bits of state per second? none :)
18:34:08 <elliott_> changing, that is
18:34:13 <elliott_> just realised what?
18:34:21 <crystal-cola> even though e.g. a pentagon can't tile space
18:34:30 <crystal-cola> you could still draw it locally at least
18:34:39 <elliott_> it's just the edges isn't it
18:34:44 <elliott_> or wait what
18:34:50 <crystal-cola> and nobody does that so there's probably some really good games and stuff that can run on a pentagonal grid
18:34:54 <crystal-cola> that nobody noticed yet
18:34:55 <elliott_> heh
18:34:59 <crystal-cola> bbl
18:35:01 <elliott_> can you make a picture of it
18:35:04 <crystal-cola> okay
18:35:11 <elliott_> not now if you're leaving :P
18:35:17 <crystal-cola> ill do this first
18:35:25 <Sgeo> monqy, then come look at the pretty garden ;)
18:35:34 <elliott_> yeah come look at Sgeo's pretty garden
18:35:35 <elliott_> ;)
18:35:37 <monqy> :(
18:36:05 <Sgeo> Also, it's the only multiuser 3d space that I know of that has mirrors
18:36:07 <monqy> That game looks pretty aesthetically repugnant
18:36:13 <monqy> I doubt the pretty garden is pretty at all
18:36:18 <elliott_> monqy: game?
18:36:21 <elliott_> its a virtual reality
18:36:22 <elliott_> they're like games
18:36:24 <monqy> oh
18:36:25 <elliott_> without the gameplay
18:36:31 <monqy> that toy
18:36:44 -!- TeruFSX2 has joined.
18:36:58 <Sgeo> Oh, ActiveWorlds has mirrors too. But they're crap.
18:37:03 <zzo38> With a telnet-based system an entire screenful of information should be at most 10000 octets (usually a lot less, though). If you want to be realistic you can add some physics stuff, but for games such as chess you should not need such things.
18:37:07 <Sgeo> Worlds mirrors are awesome
18:37:07 <elliott_> everything about all of these "games" is crap
18:37:19 <monqy> except worlds mirrors
18:37:24 <monqy> I hear they're awesome
18:37:55 <elliott_> zzo38: dude "simplicity" should not come before making the game you actually want
18:37:56 <elliott_> like
18:38:02 <elliott_> if someone wants to make a networked threedee game but it sounds hard
18:38:07 <elliott_> the answer is not to completely redesign the game and make it use telnet
18:38:16 -!- TeruFSX2 has quit (Remote host closed the connection).
18:38:33 <crystal-cola> http://i.imgur.com/kVE4Z.png
18:38:44 <crystal-cola> you can make an infinite grid
18:38:52 <zzo38> elliott_: Well, yes; it depends what game you are making, of course. You use different system for different games.
18:38:58 <Sgeo> Worlds' Ground-Zero is even more empty than usual
18:39:09 <elliott_> crystal-cola: oh that's cool
18:39:13 <elliott_> crystal-cola: it's kind of... fractal?
18:39:30 <elliott_> well sort of self-similar t least
18:41:47 -!- azaq23 has joined.
18:41:51 <zzo38> What should such a magic item cost? http://zzo38computer.cjb.net/dnd/options/Gibbering_Mouthers_Ring.i
18:41:52 -!- oerjan has joined.
18:41:57 <elliott_> hi oerjan
18:42:15 <oerjan> hello
18:42:31 <zzo38> Two items are already specified the price Coloring_Ring.i Magic_Pair_Balls.i
18:43:20 <Sgeo> Be careful to install Worlds in a place where a user can write to it
18:43:26 * Sgeo glaredly glares
18:43:48 <elliott_> "glaredly gla" why this sentence
18:44:02 <olsner> isn't it "glaringly"?
18:44:59 <crystal-cola> elliott_: You could make a nice game on a graph actually
18:45:07 <crystal-cola> although I don't know what the rules are
18:45:16 <elliott_> crystal-cola: it is kind of self similar right?
18:45:20 <crystal-cola> but the players would be on a (planar) graph
18:45:28 <crystal-cola> well it's just grid of pentagons
18:45:46 <crystal-cola> It can't be draw in a euclidean plane with distances preserved is th problem
18:46:00 <crystal-cola> so I made the distances bigger as it gets out but you should imagine all pentagons being equal sizes
18:46:46 <elliott_> right
18:46:51 <elliott_> crystal-cola: that sounds awesome
18:46:51 <crystal-cola> I suppose you could take a lot of games like sokoban and just redo them on an arbitrary graph
18:47:49 <elliott_> crystal-cola: hant the wampas
18:49:52 <zzo38> Do you prefer StarWars or StarTrek?
18:50:01 <elliott_> you forgot two spaces
18:54:16 <crystal-cola> elliott_: sokoban is really hard to design levels for
18:54:27 <crystal-cola> elliott_: Any ideas for a nice game I could graphify that wouldn't be too hard?
18:54:30 <elliott_> a said hant tha wampas nat sakaban
18:54:41 <crystal-cola> yes but that game is awful
18:54:42 <elliott_> hant tha wampas as playad an a graph
18:54:57 <elliott_> crystal-cola: what abat tatras
18:55:11 <elliott_> thar's haxtras aftar all
18:55:12 <elliott_> (hextris)
18:56:44 <crystal-cola> but in tetris there is a distinguished "down" direction
18:56:49 <crystal-cola> I don't think I can do that for graphs
18:58:43 <zzo38> Can you make 4D sokoban?
18:58:45 <Sgeo> elliott_, do you have an opinion on Smalltalk/X?
18:58:57 <elliott_> crystal-cola: make it spiiiiral
18:59:10 <elliott_> Sgeo: don't know/care/anything/really/honestly/jegus
19:00:54 <crystal-cola> :(
19:01:08 <crystal-cola> zzo38: Yes you could do 4D sokoban although A 4D graph is probably difficult to display in a nice way
19:01:12 -!- lament has quit (Ping timeout: 240 seconds).
19:01:25 <crystal-cola> zzo38: I am just considering arbitrary planar graphs because I can draw them easily (without any overlaps)
19:01:46 <crystal-cola> zzo38: Although I really would like better ways than projection to visualize 4D geometry
19:04:45 <olsner> was thinking about planar graphs the other day... is there anything like non-planar graphs but where even 3D is not enough to display the graph?
19:05:53 <elliott_> that would be cool
19:06:05 <elliott_> can you have a graph so nonplanar you can't show it in ANY number of dimensions :D
19:06:41 <olsner> if they exist, they should be called "absurd graphs" or something
19:06:54 <Sgeo> "Looks like it integrates automatically with CVS for code management--I didn't try it out
19:06:54 <Sgeo> "
19:06:58 <Sgeo> *puke*
19:07:06 <Sgeo> Then again, this is a blog post from 2004
19:07:29 <elliott_> "Interesting note: Did you know that all encoders must have a decoder built-in? Because a P frame isn't the difference between the original previous frame and the original current frame. NO! It is the difference between the decoded previous frame and the original current frame. This is because the decoder doesn't have the original previous frame, only a computed approximation! Cool, right???"
19:07:31 <elliott_> that is cool.
19:07:46 <crystal-cola> olsner: You can embed any graph in 3D... proof: I dunno I just know it's true
19:07:57 <oerjan> elliott_: um, no, because 3d is enough to cross lines
19:08:08 <elliott_> oerjan: shut up :)
19:08:13 <oerjan> you just need two layers
19:08:14 <elliott_> oerjan: i was dreaming while olsner was
19:08:16 <crystal-cola> olsner: Here you can just put the full symmetric n graph points randomly around a circle.. and they almost never intersect. I think that proves it
19:08:25 <crystal-cola> olsner: sorry I meant a sphere
19:08:28 <zzo38> Other idea is Puzzle-Boy in 3D, possibly also having some (but not all) blocks affected by gravity
19:08:36 <oerjan> now if you pass to simplicial complexes...
19:09:10 <olsner> seems that it must be true, but I find it annoying... why does 2D have limitations, but 3D just suddenly makes *all* graphs possible?
19:09:24 <crystal-cola> olsner: I think it's because the lines between nodes are a 1D object
19:09:34 <elliott_> olsner: especially since there's an n[caret]three <-> n[caret]two bijection...
19:09:52 <crystal-cola> and as oerjan says, if you're consider triangles instead of lines then you get a similar planar/non-planar distinction except in 3D space
19:10:34 <elliott_> triangles? pah, spheres
19:10:36 <crystal-cola> olsner: I got it. It's like if you take the real line you can cut it in half by removing a point..
19:10:39 <ais523> happy Australian mailman reminders day!
19:10:47 <crystal-cola> olsner: but if you take the plane and remove a point it doesn't cut it in half
19:11:42 <elliott_> ais523: asterisk mailman mailing list
19:12:14 <oerjan> orientability of surfaces is somewhat similar to planarity of graphs, in that way.
19:12:23 <olsner> hmm, how about the surface of a torus - are all graphs possible there because of the wrapping? iirc at least K3,3 can be embedded on a torus surface
19:13:08 <oerjan> i doubt it
19:13:22 <elliott_> oerjan: why does the Z[caret]three <-> Z[caret]two bijection not show that all graphs can be embedded in twodee spcae?
19:13:23 <elliott_> space?
19:13:29 <ais523> K_7 can be embedded on a torus, but not K_8
19:13:49 <crystal-cola> By the way, 4 color theorem is for planar graphs but I think it's 7 color theorem for the torus
19:14:01 <ais523> I've submitted "fit an embedding of K_7 on a torus", together with a few other restrictions, to at least two puzzle compilations
19:14:10 <oerjan> elliott_: um because doesn't preserve anything resembling connectedness?
19:14:13 <oerjan> *it
19:14:14 <elliott_> ais523: enigma? :P
19:14:16 <ais523> (to be precise, you have to do it with maps not graphs, and on a 5x5 grid)
19:14:17 <elliott_> oerjan: right
19:14:19 <elliott_> fair enoug
19:14:19 <elliott_> h
19:14:22 <ais523> elliott_: they're both called enigma
19:14:39 <elliott_> ais523: haha, the ball game and agora?
19:14:44 <ais523> yes
19:14:48 <elliott_> brilliant
19:15:07 <ais523> scheduled for the enigma (computer game) 1.1 release, too
19:15:37 <elliott_> is that still not out yet??
19:15:48 <ais523> no, it probably should be by now
19:15:50 <crystal-cola> The old civilization games were played on a torus (topologically)
19:15:53 <ais523> but dev activity's gone mostly silent
19:15:58 <elliott_> ais523: it's been years, hasn't it?
19:16:19 * ais523 updates Enigma svn repo
19:16:29 <oerjan> crystal-cola: um they wrapped from north to south pole?
19:16:37 <crystal-cola> yes
19:16:37 <elliott_> ais523: I mean, since they started doing one point one
19:16:40 <ais523> yep, no changes since the Christmas advent day thing
19:16:41 <elliott_> I remember compiling it on my Mac
19:16:51 <ais523> and 1.01 came out ages ago, yes
19:16:53 <crystal-cola> but I think someone pointed out that that was ridiculous so they made it optional in later versions
19:17:13 <elliott_> ais523: is that mag-heut forum still existent/insane?
19:17:18 <ais523> yes and yes
19:17:22 <ais523> although almost silent too
19:17:41 <ais523> I submit a new level there now and again
19:17:44 <elliott_> you'd probably get banned for posting too much no? :D
19:17:45 <ais523> although I'm not making them all that often
19:18:05 <ais523> here's my most recent one, which was a response to an April Fool's joke: http://www.mag-heut.net/blackball/index.php?act=ST&f=14&t=1440&s=
19:18:23 <elliott_> Please read below:
19:18:23 <elliott_> You do not have permission to view this topic
19:18:23 <elliott_> You are not logged in, you may log in below
19:18:24 <elliott_> fuck that
19:18:25 <crystal-cola> elliott_: I don't know if you actually like my graph idea
19:18:30 <elliott_> i'd have to go through the awful registration process
19:18:31 <elliott_> crystal-cola: i do
19:18:42 <cheater2> ais523, can you speak german?
19:18:42 <ais523> oh, right, I forgot that that subforum was registration-only for no reason at all
19:18:51 <ais523> direct link: http://www.mag-heut.net/blackball/levels/submits/ais52377_1.xml
19:18:54 <elliott_> ais523: TO SAVE BANDWIDTH
19:18:56 <ais523> cheater2: I can read about 50% of it
19:19:10 <cheater2> ais523, is it the 50% that's copied 1:1 from englih
19:19:12 <cheater2> english
19:19:16 <ais523> that's less than 50%
19:19:16 <elliott_> ais523: it's on some free hosting thing, isn't it?
19:19:23 * elliott_ downloads the xml
19:19:23 <ais523> I think so
19:19:34 <ais523> you can play that on a trunk version of Enigma
19:19:45 <elliott_> I'll compile it sometime
19:19:48 <ais523> it's a one-dimensional Sokoban
19:19:52 <cheater2> ais523, what other languages can you speak?
19:19:56 <elliott_> wat
19:20:12 <ais523> because someone said Enigma was going one-dimensional as an April Fool's joke
19:20:17 <ais523> and suggested a 1D Sokoban as an example
19:20:20 <ais523> then I had to find a way to make it work
19:20:40 <crystal-cola> :S
19:20:43 <crystal-cola> Iwant to play it
19:21:32 <elliott_> ais523: is it just a long line? :P
19:21:49 <ais523> elliott_: it has teleporters in
19:21:51 <Sgeo> eXept hates Monsanto partially due to pig breeding patents
19:21:58 <ais523> so you can actually go past the blocks
19:22:00 <elliott_> ais523: ah
19:22:06 <Sgeo> I didn't know Monsanto had anything to do with pigs
19:22:22 <cheater2> monsanto has to do with everything
19:22:23 <Sgeo> I thought they were more plant-y.
19:22:28 <cheater2> all the food you buy in america is monsanto
19:22:30 <elliott_> they have planty of pigs
19:22:40 * elliott_ prepares for swattage
19:23:28 <ais523> cheater2: if that was directed at me, it's vacuously true, I've never bought food in (the United States of) America
19:23:36 <ais523> although I have bought food in Canada, which is in America the continent
19:23:51 <elliott_> there is no American continent, is there?
19:23:54 <elliott_> just North and South America
19:23:56 <elliott_> which are the Americas
19:24:02 <ais523> also, in response to your question earlier, English is the only language I speak with any real amount of proficiency
19:24:15 <ais523> I can pronounce written Hungarian pretty well, but generally have no idea what it means
19:24:24 <zzo38> How many states are there in America? (This is kind of a trick question)
19:24:25 <elliott_> asztal asztal asztal
19:24:27 <cheater2> ais523, you should learn a new language
19:24:28 <elliott_> asztal asztal asztal asztal asztal
19:24:29 <elliott_> asztal
19:24:41 <cheater2> ais523, it's very good for the mind
19:24:47 <crystal-cola> well I need a game to graphify
19:24:47 <ais523> zzo38: are you counting states that make up an entire country, as well as states that only make up fractions of countries?
19:24:52 <olsner> zzo38: One, the United State of America? :P
19:25:06 <ais523> cheater2: the major issue is that the language teaching in the schools in the UK is awful
19:25:13 <ais523> and doesn't actually teach the language
19:25:27 <elliott_> ais523: s/the UK/everywhere/
19:25:31 <cheater2> ais523, go to a private school?
19:25:33 <ais523> elliott_: I don't know that for certain
19:25:38 <elliott_> ais523: close enough :P
19:25:44 <cheater2> i've had very good luck with learning english while in poland.
19:25:46 <ais523> cheater2: well, I'm at University now, going back to school would make people look at me suspiciously
19:25:49 <cheater2> i went to the uk and i was fluent.
19:25:54 <elliott_> hahaha
19:26:01 <cheater2> ais523, a language school, you frea
19:26:02 <zzo38> ais523: I have not thought of those interpretations, although that is possible. What I heard was 49 (only the United States has states and one of them is not part of the continent)
19:26:03 <cheater2> k
19:26:08 <crystal-cola> elliott_
19:26:10 <ais523> cheater2: well, they don't teach Enlglish very well over here either
19:26:13 <crystal-cola> zzo38: maybe you have an idea?
19:26:13 <elliott_> ok cheater conversations are great as long as you only see one side of them
19:26:19 <ais523> foreigners are often better at English than the typical Englishman
19:26:23 <cheater2> ais523, are you trolling me?
19:26:23 <elliott_> ais523: they teat Enlglish terrible
19:26:25 <elliott_> ...
19:26:26 <elliott_> teach
19:26:31 <ais523> cheater2: not intentionaly
19:26:32 <elliott_> MORE EVIDENCE OF OUR BROKEN SYSTEM
19:26:33 <ais523> *intentionally
19:26:36 <elliott_> xD
19:26:39 <zzo38> crystal-cola: Idea of what?
19:26:42 <ais523> although I am kind-of good at unintentional trolling, so possibly
19:27:03 <elliott_> nontrolls trolling trolls
19:27:04 <crystal-cola> zzo38: Well I was thinking it could be interesting to take a tile based game and adapt it to a planar graph
19:27:17 <elliott_> (a rare example of the singular plural)
19:28:44 <zzo38> crystal-cola: Some ideas: Puzzle-Boy, Sokoban, Tetris, Chess, ...
19:28:51 <crystal-cola> CHESS O_O
19:28:58 <crystal-cola> That's it!!
19:29:08 <crystal-cola> although I will find out what puzzle boy is first
19:29:22 <ais523> elliott_: I had a crazily muddled dream last night; towards the end, I was playing a variant of Hex with someone where after the first player's first turn, you could place two counters rather than one, but they had to be adjacent
19:29:23 <elliott_> crystal-cola: chip's challenge
19:29:26 <elliott_> ON A GRAAAAPH
19:29:38 <elliott_> ais523: psht, in my dreams I just argue with esr
19:29:40 <ais523> but we gave up after a while when we realised we were playing it on a square grid rather than a hexgrid, which slightly defeated the point of the game
19:29:45 <elliott_> by my dreams I mean one dream a couple of days ago
19:29:54 <ais523> elliott_: who won?
19:29:58 <crystal-cola> ais523: haha
19:30:06 <olsner> hmm, I think I missed which part of that question was a trick question :P
19:30:08 <elliott_> ais523: i was right but esr walked away instead of listening to my rebuttal
19:30:10 <elliott_> ais523: he's kind of a dick
19:30:54 <elliott_> ais523: he was claiming that he invented the term "hacker" as used in relation to coderfolken (<-- best word Gregor approved)
19:31:00 <elliott_> and other suchlike people
19:31:06 <ais523> invented? seriously?
19:31:09 <elliott_> yep
19:31:10 <elliott_> i tried to tell him about the model train stuff at mit in the fifties
19:31:13 <elliott_> or whatever
19:31:15 <elliott_> but he just walked away
19:31:16 <ais523> I think he's responsible for popularising it
19:31:26 <ais523> but didn't come up with it in the first place
19:31:28 <elliott_> lol i like how you're expecting my dream esr to be reasonable
19:33:18 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.86.1 [Firefox 3.6.16/20110319135224]).
19:35:18 <olsner> not codervolken?
19:35:27 <elliott_> blinkenvolken
19:36:19 <crystal-cola> hello
19:36:38 <elliott_> wonder where ph has been lately
19:36:51 <olsner> crystal-cola: hi and welcome
19:38:35 <elliott_> crystal-cola: welcome to the hoaus
19:38:38 <elliott_> kjl;l
19:58:41 <Sgeo> Smalltalk/X confuses me
20:00:48 <elliott_> woo i just got a new language idea
20:01:30 <olsner> elliott_: yay!
20:01:33 <olsner> is it any good?
20:03:28 <elliott_> maybe :P
20:03:43 <elliott_> olsner: it's like prolog but not. maybe.
20:04:24 <olsner> Aha, so it's either like prolog or it isn't. Check.
20:04:35 <elliott_> :P
20:08:14 <oerjan> olsner: no, but is logically equivalent to and, not or
20:08:23 <Sgeo> Smalltalk/X wants me to use Borland?
20:08:24 <Sgeo> :/
20:08:49 -!- TeruFSX has quit (Ping timeout: 258 seconds).
20:08:55 <olsner> oerjan: "either like prolog but not or it isn't." then :P
20:09:14 <elliott_> wat
20:09:33 <oerjan> i guess olsner wins
20:09:52 <oerjan> and here i thought i was so clever, not using quote marks
20:11:11 <crystal-cola> elliott_: how is it like prolog?
20:11:37 <elliott_> crystal-cola: I think it's sort of like Prolog but done with lazy hash tables... I got the idea from a log of here
20:11:38 <elliott_> hmm
20:11:43 <elliott_> nested that is
20:11:53 <crystal-cola> MUTABLE???
20:12:26 <oerjan> too lazy to be pure
20:12:32 <elliott_> crystal-cola: no
20:12:39 <elliott_> by hash table i don't really mean hash table btw
20:12:46 <elliott_> i mean a function but acting kind of like a hash table
20:12:58 <oerjan> aka "map"?
20:13:02 <elliott_> yes :)
20:13:44 <elliott_> foo X Y<-(bar X 99 Y) <-- then R<-(foo 90 R) is equal to R<-(bar 90 99 R)
20:14:07 <olsner> elliott_: no part of that line makes any sense
20:14:15 <elliott_> all of it does
20:14:21 <olsner> pfft no
20:14:22 <elliott_> just watch crystal-cola will know exactly what i mean
20:15:42 <crystal-cola> a <- b ; b <- a then x <- a is an infinite loop?
20:15:43 <oerjan> it's crystal clear
20:15:57 <elliott_> crystal-cola: oh man that <-- was a comment :)
20:15:59 <elliott_> if we have the declaration
20:16:03 <elliott_> foo X Y<-(bar X 99 Y)
20:16:04 <elliott_> then
20:16:07 <elliott_> R<-(foo 90 R)
20:16:13 <elliott_> evaluates the same as
20:16:15 <elliott_> R<-(bar 90 99 R)
20:16:22 <crystal-cola> so if
20:16:24 <crystal-cola> a <- b
20:16:26 <crystal-cola> b <- a
20:16:33 <elliott_> there is no <- at the top level
20:16:34 <crystal-cola> then does x <- a evaluate an infinite loop??
20:16:34 <elliott_> at all
20:16:45 <elliott_> Name<-Expr pulls the value of Name out of Expr and results in it
20:16:46 <elliott_> that is
20:16:48 <crystal-cola> foo X Y<-(bar X 99 Y) <-- you just did one here
20:16:53 <elliott_> that's not at the top level
20:16:57 <elliott_> that's (Y<-(bar...))
20:17:07 <elliott_> Result<-(add 9 9 Result) ;; this results in 9+9
20:17:08 <crystal-cola> WHY ARE YOU NOT ACCEPTING MY CODE
20:17:12 <elliott_> ...
20:17:13 <elliott_> what
20:17:17 <elliott_> because it's not valid
20:17:20 <crystal-cola> why not
20:17:27 <elliott_> because that makes no sense at the top level
20:17:30 <elliott_> top level is declarations, not expressions
20:17:37 <crystal-cola> A <- B
20:17:38 <crystal-cola> B <- A
20:17:40 <crystal-cola> then
20:17:44 <elliott_> <crystal-cola> A <- B
20:17:44 <elliott_> <crystal-cola> B <- A
20:17:45 <elliott_> invalid declarations
20:17:50 <crystal-cola> what
20:17:59 <crystal-cola> why is foo X Y <- bar X 99 Y
20:18:00 <crystal-cola> valid
20:18:06 <elliott_> because that's not how it parses
20:18:07 <elliott_> it's not
20:18:10 <elliott_> (foo X Y) <- (bar X 99 Y)
20:18:11 <elliott_> it's
20:18:15 <elliott_> foo X (Y <- (bar X 99 Y))
20:18:27 <crystal-cola> 6oh
20:18:28 <crystal-cola> oh
20:18:32 <crystal-cola> I see
20:18:42 <crystal-cola> now I see why you didn't spaec it out
20:18:54 <elliott_> no no it was just to confuse you ;D
20:18:59 <crystal-cola> f A<-B
20:19:10 <crystal-cola> f A<-g A
20:19:12 <crystal-cola> yes
20:19:14 <crystal-cola> here we go
20:19:17 <oerjan> > do rec { x <- [1:y]; y <- [x] }; [x]
20:19:18 <lambdabot> [[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1...
20:19:19 <crystal-cola> f A<-f
20:19:26 <crystal-cola> there's an infinite loop
20:19:31 <elliott_> hmm
20:19:41 <elliott_> f A<-B ;; invalid, B is not in scope
20:19:48 <crystal-cola> yeah ignore that stuf3f
20:19:52 <elliott_> ah
20:19:56 <elliott_> <crystal-cola> f A<-f
20:19:59 <elliott_> nope
20:19:59 <elliott_> you mean
20:20:01 <elliott_> f A<-(f A)
20:20:06 <crystal-cola> oops
20:20:10 <crystal-cola> yes
20:20:13 <elliott_> with your declaration, R<-(f R) just gives you f itself in R
20:20:19 <elliott_> (function/relation things are first-class)
20:20:20 <oerjan> > do rec { x <- [1:y, 2:y]; y <- [x] }; [x]
20:20:22 <lambdabot> [[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1...
20:20:25 <crystal-cola> f A<-(f A)
20:20:39 <elliott_> yep
20:20:40 <oerjan> > map head $ do rec { x <- [1:y, 2:y]; y <- [x] }; [x]
20:20:41 <lambdabot> [1,2]
20:20:50 <crystal-cola> show more code :D
20:21:00 <elliott_> me or oerjan :P
20:21:04 <crystal-cola> you
20:21:15 <elliott_> hmm
20:21:24 <elliott_> i'm not sure how to do constructors, I think just empty relations
20:21:30 <elliott_> i.e.
20:21:32 <elliott_> zero
20:21:32 <elliott_> succ A
20:21:41 <elliott_> that means that (succ A) is true for all A
20:21:43 <elliott_> then uh
20:21:51 <crystal-cola> add zero X X
20:21:55 <elliott_> yep
20:22:07 <crystal-cola> add (suc Y) X (suc Z<-add Y X)
20:22:16 <elliott_> latter is wrong i think
20:22:23 <elliott_> i'm not sure i have pattern matching like that
20:22:24 <elliott_> hmm
20:22:24 <elliott_> well
20:22:27 <crystal-cola> add (suc Y) X (suc Z<-(add Y X))
20:22:36 <elliott_> I think you need
20:22:38 <elliott_> desucc Z (suc Z)
20:22:40 <elliott_> then
20:22:52 <elliott_> add (suc Y) X Z<-(desucc Z (R<-(add Y X)))
20:22:58 <elliott_> I suppose it could be sugar though
20:23:06 <crystal-cola> no sugar
20:23:13 <crystal-cola> yet
20:23:43 <elliott_> hmm it would be cool if I could type that zero and succ
20:23:45 <elliott_> lemme try something
20:24:30 <elliott_> nat zero
20:24:30 <elliott_> nat (succ A<-(nat A))
20:24:30 <elliott_> zero
20:24:30 <elliott_> succ A<-(nat A)
20:24:32 <elliott_> I think???
20:24:36 <elliott_> then (succ A) is true iff A is a nat
20:25:36 <elliott_> crystal-cola: that seems redundant though
20:25:53 <crystal-cola> oh
20:26:16 <elliott_> actually
20:26:19 <elliott_> you don't need the latter two
20:27:12 <elliott_> nat zero
20:27:13 <elliott_> nat (succ A<-(nat A))
20:27:13 <elliott_> desucc (succ A<-(nat A)) A
20:27:13 <elliott_> add zero X<-(nat X) X
20:27:13 <elliott_> add (succ Y<-(nat Y)) X<-(nat X) R<-(desucc Z<-(add Y X) R)
20:27:14 <elliott_> kind of gross :D
20:28:18 <elliott_> crystal-cola: but sort of cool...
20:28:22 -!- TeruFSX has joined.
20:29:53 <crystal-cola> it's too easy to program
20:30:49 <elliott_> crystal-cola: well i apologise :D
20:31:46 <crystal-cola> if you can only have one <- per line is it still possible to program?
20:32:00 <elliott_> i dunno
20:32:03 <elliott_> i doubt it
20:32:08 <elliott_> as far as tc goes
20:32:45 <crystal-cola> allowing two seems arbitrary :(
20:33:43 <elliott_> crystal-cola: erm i'm allowing arbitrary :P
20:33:53 <crystal-cola> it's pretty cool though
20:33:53 <elliott_> computations can describe on arbitrary amounts of other computation this way
20:33:57 <elliott_> it can't if you onlu allow one per line
20:33:59 <elliott_> so i think it'd be sub-tc
20:34:32 <crystal-cola> could you make a syntax that doesn't use brackets
20:34:35 <elliott_> (diff) (hist) . . ACIDIC‎; 19:10 . . (-4) . . Zzo38 (Talk | contribs) (use ASCII quotation marks)
20:34:46 <elliott_> zzo38: it is possible that the non-ascii quotation marks are part of the language, being instructions...
20:43:04 <crystal-cola> However, if we sit back calmly and think about it, we can see there isn’t really a problem. All we need to do is define, for any type X, a type IsContr(X) representing the proposition “X is contractible,” such that when we then go on to define “X is a (-1)-type” in terms of “X is contractible,” the type IsContr(X) turns out to in fact be a (-1)-type. It’s a bit bootstrappy, but not circular or paradoxical
20:45:04 -!- TeruFSX has quit (Ping timeout: 246 seconds).
20:48:24 -!- TeruFSX has joined.
20:49:08 <oerjan> elliott_: i think it's rather clear that the language is ASCII-based...
20:49:36 <elliott_> oerjan: yes but unless he has actual proof of it it's iffy to be editing someone else's spec in a way that changes semantics.
20:49:44 <elliott_> the talk page would be more appropriate surely
20:49:50 <zzo38> elliott_: I think it is clear those were mistake, although if the author of that page dislikes it he can change it back please
20:53:33 * Sgeo considers playing America's Army
20:54:06 <zzo38> However, it is possible the non-ASCII was correct, but reading that table as well as the rest of the article, it seems those are mistakes, so I changed it. The author of that article can change it back if I am incorrect (in which case, also a clarification should be specified)
20:56:06 -!- MigoMipo has quit (Read error: Connection reset by peer).
20:57:29 <elliott_> Sgeo: why just why
20:57:35 <Sgeo> elliott_, why not?
20:57:43 <Sgeo> Free multiplayer FPS
20:57:56 <elliott_> Sgeo: because a terrible fps made solely to act as us army propaganda is going to be ... well ... terrible???
20:58:13 <Sgeo> What makes you think it's terrible?
20:58:30 <Sgeo> I mean, yes, it's US Army propaganda, but that doesn't reflect on the quality of the gameplay itself...
20:58:34 <elliott_> well it's sort of the same way i'd assume Kim Jong-Il's Happy Fun Time Shooting Game For Adults would be terrible.
20:58:51 <elliott_> the focus isn't to be a good popular fps game, it's to make people sign up for the army
21:00:06 <fizzie> I think I heard it was game-wise quite good, as far as these things go. (All hearsay, of course.)
21:00:16 <elliott_> fizzie: MAYBE BY A US SPY
21:00:21 <elliott_> (you have those in finland right)
21:01:13 <fizzie> Probably, yes.
21:01:17 <elliott_> knew it
21:02:34 <Sgeo> From what I've read on TVTropes, it's supposedly accurate in some ways. Although I don't think it will cause your computer to kill you if you die in the game
21:02:42 <elliott_> that would be awesome
21:03:20 -!- azaq23 has quit (Quit: Leaving.).
21:05:16 <fizzie> They could use the same function those *hackers* use to make computers explode. (Cf. http://www.theregister.co.uk/2000/07/04/hackers_can_make_your_pc/ )
21:06:29 -!- zzo38 has quit (Remote host closed the connection).
21:14:10 <yorick> crash when kick self from rcon?
21:15:21 -!- lament has joined.
21:33:13 <Sgeo> " All known spaceships in Life travel either orthogonally (only horizontal or vertical displacement) or diagonally (equal horizontal and vertical displacement) at one of the twelve known speeds"
21:33:20 <Sgeo> Anyone want to update the wiki?
21:35:03 <Sgeo> http://conwaylife.com/wiki/index.php?title=Spaceship/Snippet
21:35:09 <Sgeo> The main article is updated
21:35:31 <oerjan> "you, obviously"
21:35:46 * oerjan cackles evilly
21:37:48 <Sgeo> The Register actually believed something WWN wrote?
21:43:27 -!- elliott_ has quit (Remote host closed the connection).
21:46:30 <Sgeo> "But alas, a Web search for the NCPF yielded only the North Carolina Psychological Foundation, which, as we consider it, might have a few valuable insights into this story after all... "
21:48:53 <cheater2> Sgeo, it was a troll post obviously
21:50:32 -!- elliott has joined.
21:50:35 <elliott> 21:37:48: <Sgeo> The Register actually believed something WWN wrote?
21:50:42 <elliott> ...
21:50:46 <elliott> Sgeo has never read the register before ever
21:52:50 <oerjan> maybe it just didn't register
21:59:16 <elliott> oerjan: wow, that binary to unary program is tiny
21:59:38 <elliott> i'm pretty convinced that /// is the most elegant esolang ever now
21:59:44 <elliott> probably the most elegant TC language, too
22:00:54 <crystal-cola> what is ///
22:01:08 <elliott> http://esolangs.org/wiki/Slashes
22:01:34 <elliott> it's TC even if only / and \ are allowed
22:02:00 <crystal-cola> wow this is great
22:02:05 <elliott> it's like thue but better basically :)
22:02:15 <crystal-cola> This is very nice..
22:02:33 <elliott> I was honestly surprised when oerjan showed it TC
22:02:43 <elliott> it barely seems to do any computation at all
22:03:12 <variable> http://www.scottaaronson.com/writings/bignumbers.html --> well written explanation of Busy Beaver and related math
22:03:23 <elliott> that's a classic
22:04:21 <micahjohnston> I like Slashes a lot
22:04:25 <micahjohnston> so much more manageable than Thue
22:04:25 <variable> ditto
22:04:49 <variable> <elliott> that's a classic --> at my link?
22:04:54 <elliott> variable: yes
22:05:09 <elliott> oerjan: is your conversion thing easily generalisable to bases other than binary?
22:05:20 <variable> elliott: it puts everything together nicely. I knew the stuff before - it is nice and easy to read :-)
22:05:42 <micahjohnston> wrt that spacehsip page, something confuses me.
22:06:08 <micahjohnston> so it says that there are only orthogonal or diagonal spaceships, but then it says “it is known that Life has spaceships that travel in all rational directions at arbitrarily slow speeds.”
22:06:27 <elliott> micahjohnston: former is out of date
22:06:36 <elliott> latter is news
22:06:46 <elliott> because a self-replicating knightship was constructed (insert exclamation mark here)
22:06:52 <Sgeo> Well, it could be known that something exists without having an example of it
22:06:58 <Sgeo> But we have an example of it now
22:07:04 <micahjohnston> ah that's cool
22:07:18 <elliott> it only took forty years to find
22:07:25 <micahjohnston> Sgeo: yeah, taht's what I thought, although I wondered what kind of proof about Life could say that
22:07:32 <micahjohnston> but that's pretty cool
22:07:34 <elliott> it was shown beforehand
22:07:43 <elliott> well
22:07:44 <elliott> pretty much
22:07:51 <elliott> you can construct a UTM that has a constructor
22:08:01 <elliott> IIRC made only out of things that can be constructed by it
22:08:07 <elliott> so that's pretty much a proof right there
22:08:13 <elliott> http://www.conwaylife.com/wiki/index.php?title=Gemini
22:08:14 <elliott> that's the ship
22:08:19 <elliott> Bounding box 4217807×4220191
22:13:06 <micahjohnston> wow, that's big
22:15:44 <copumpkin> that's what she said
22:15:54 <crystal-cola> please turn that off :/
22:15:55 <elliott> about my game of life self-replicating spaceship?
22:16:01 <elliott> dammit crystal-cola
22:16:10 <elliott> turn what off
22:16:14 <copumpkin> crystal-cola: I'm just pretending to be the twss bot, sorry :)
22:16:16 <crystal-cola> not you
22:16:26 <crystal-cola> you're very good at that...
22:16:46 <elliott> lol where is this bot
22:17:00 <copumpkin> elliott: have you not been on the internet for the past couple of days?
22:17:08 <elliott> define the internet
22:17:09 <copumpkin> everyone's talking about the twss discovery paper
22:17:14 <copumpkin> and the associated IRC bot
22:17:20 <elliott> i seeeeeeeeeeeeeeee
22:18:52 <oerjan> <elliott> oerjan: wow, that binary to unary program is tiny <-- btw unary to decimal is embedded in the deadfish interpreter; it's longer but essentially the same principle in reverse
22:19:03 <elliott> oerjan: right; can it be generalised easily?
22:19:05 <elliott> to larger bases
22:20:22 <oerjan> <elliott> oerjan: is your conversion thing easily generalisable to bases other than binary? <-- i guess i just answered that :)
22:20:30 <elliott> well unary isn't a base
22:20:33 <elliott> i meant how easy is base ten to unary
22:24:14 <crystal-cola> unary is a base
22:24:19 <crystal-cola> I can count to 1 in it
22:24:19 <elliott> it's not a positional base
22:24:20 <crystal-cola> 1
22:24:23 <elliott> lol
22:24:30 <elliott> obviously since binary has zero and one
22:24:31 <elliott> unary just has zero
22:24:39 <crystal-cola> dammitttt
22:24:45 <crystal-cola> I cant count to 1 then
22:24:47 <elliott> its great for all numbers between -0 and 0
22:24:50 <elliott> that are integers
22:24:55 <crystal-cola> lool
22:25:03 <oerjan> !slashes /0/|//1/|*/2/|**//3/|***//4/|****//5/|*****//6/|******//7/|*******//8/|********//9/|**********//*|/|**********//|//100
22:25:07 <EgoBot> 23456789||
22:25:09 <elliott> variable: rereading that article: it's really cool how values of busy beaver can "give" you theorems
22:25:11 <oerjan> dammit
22:25:42 <elliott> like it says if you have a goldbach testing machine with n states then knowing BB(n) and having a lot of time on your hands lets you decide Goldbach
22:25:46 <elliott> that's just crazy
22:26:10 <oerjan> oh
22:26:24 <elliott> "This infinite hierarchy of ever more powerful machines was formalized by the logician Stephen Kleene in 1943 (although he didn’t use the term ‘super duper pooper’)."
22:26:24 <oerjan> !slashes /0/|//1/|*//2/|**//3/|***//4/|****//5/|*****//6/|******//7/|*******//8/|********//9/|**********//*|/|**********//|//100
22:26:26 <EgoBot> ****************************************************************************************************
22:26:33 <elliott> this is why Stephen Kleene is widely disowned by prominent scientists and mathematicians
22:26:39 <elliott> oerjan: awesome
22:26:46 <crystal-cola> write a program that tests if a number satisfies any algebraic relations
22:26:46 <elliott> oerjan: can you give me your /// skillz :(
22:26:51 <oerjan> heh
22:27:02 <ais523> elliott: that was pretty obvious
22:27:03 <crystal-cola> then run it and if it takes longer than BB(progam size) you know the number is trancendental
22:27:09 <elliott> ais523: ?
22:27:18 <ais523> that /// program, I mean
22:27:23 <elliott> ais523: i know but still
22:27:48 <elliott> hmm how easy is it to translate L systems to ///?
22:27:53 <crystal-cola> BTW
22:27:53 <oerjan> elliott: the only real trick here is to note that if you have something of the form ||||*|**|*|*** you can easily swap *'s over the |'s in any direction with any multiplier you choose
22:27:59 <elliott> oerjan: new problem for you :D
22:28:05 <crystal-cola> elliott that's not just nonsense that can't be done in practice
22:28:18 <crystal-cola> although it's not with turing machine syou can do proofs like this using other machines
22:28:22 <elliott> crystal-cola: cool
22:28:44 <elliott> i don't really care about the practicality of something, the method itself is interesting imo
22:29:19 <crystal-cola> :D yes but trancendence proofs is not normally considered "application"
22:29:38 <elliott> wow
22:29:42 <elliott> this means that golf actually has relevance
22:29:53 <elliott> the smaller you can golf a Goldbach testing TM in number of rules
22:29:55 <elliott> the easier it is to prove
22:29:57 <elliott> or disprove
22:29:58 <crystal-cola> haha
22:29:59 <elliott> wow
22:30:03 <elliott> that seems utterly profound
22:30:10 <oerjan> elliott: what are L systems again
22:30:17 <elliott> oerjan: these things http://en.wikipedia.org/wiki/L-system#Example_2:_Fibonacci_numbers
22:30:34 <elliott> oerjan: it's basically thue :D
22:30:39 <oerjan> ah.
22:31:00 <crystal-cola> fib is interesting because it's connected with irrational numbers
22:32:15 <crystal-cola> BABABBABABBABBABABBAB <-- this sequence of ups and alongs stays as close as possible to a line of gradiant phi
22:32:24 <oerjan> elliott: um no it's not thue, it's applying all deterministically
22:32:31 <elliott> oerjan: yeah i know
22:32:34 <elliott> oerjan: but it's _close_
22:33:12 <crystal-cola> you can use random L-systems to grow trees
22:33:16 <oerjan> yeah
22:34:05 <elliott> REAL TREES
22:36:29 <crystal-cola> I wonder why I don't want spiders to climb on me
22:36:55 <elliott> what
22:37:10 <crystal-cola> there is some spider here and I was worried it would climb on to me
22:37:19 <crystal-cola> but if it did it wouldn't even matter
22:37:40 <copumpkin> you're afraid of scaring it and having it bite you, maybe?
22:37:44 <crystal-cola> no
22:40:53 <elliott> crystal-cola: maybe you're afraid it'll crawl into your crystal cola
22:41:03 <crystal-cola> nnnn
22:41:17 <elliott> yyyy
22:44:08 <crystal-cola> trancendental numbers
22:44:28 <elliott> "If we could bake bread at 20,000,000 degrees Kelvin" yum
22:44:44 <oerjan> sundried bread
22:46:40 <Sgeo> THAT WAS A PUN, OR A PLAY ON WORDS
22:46:49 <elliott> /ignore Sgeo
22:47:06 <crystal-cola> > concatMa (\n -> [1,n,1]) [1..100]
22:47:07 <lambdabot> Not in scope: `concatMa'
22:47:09 <crystal-cola> > concatMap (\n -> [1,n,1]) [1..100]
22:47:10 <lambdabot> [1,1,1,1,2,1,1,3,1,1,4,1,1,5,1,1,6,1,1,7,1,1,8,1,1,9,1,1,10,1,1,11,1,1,12,1...
22:47:14 <crystal-cola> > concatMap (\n -> [1,n,1]) [0..100]
22:47:14 <elliott> concatenate all your mothers
22:47:15 <lambdabot> [1,0,1,1,1,1,1,2,1,1,3,1,1,4,1,1,5,1,1,6,1,1,7,1,1,8,1,1,9,1,1,10,1,1,11,1,...
22:47:18 * Sgeo was specifically acting like Death :/
22:47:29 <crystal-cola> > foldr (\x ys -> x + 1/ys) . concatMap (\n -> [1,n,1]) $ [0..100]
22:47:30 <lambdabot> Overlapping instances for GHC.Show.Show ([[a]] -> [a])
22:47:31 <lambdabot> arising from a us...
22:47:35 <crystal-cola> no
22:47:54 <crystal-cola> > foldr (\x ys -> x + 1/ys) 10000000 . concatMap (\n -> [1,n,1]) $ [0..100]
22:47:56 <lambdabot> 2.612651283026086
22:47:59 <crystal-cola> > foldr (\x ys -> x + 1/ys) 10000000 . concatMap (\n -> [1,n,1]) $ [0..1000]
22:48:01 <lambdabot> 2.612651283026086
22:48:08 <crystal-cola> that's e
22:48:13 <crystal-cola> (roughly)
22:48:23 <crystal-cola> > foldr (\x ys -> x + 1/ys) 10000000 . concatMap (\n -> [1,2*n,1]) $ [0..1000]
22:48:25 <lambdabot> 2.7182818284590455
22:49:01 -!- Mannerisky has quit (Ping timeout: 260 seconds).
22:50:57 <crystal-cola> > foldr (\x ys -> x + 1/ys) 10000000 . concatMap (\n -> [1,2*n,1]) $ [0..1000] :: CReal
22:51:01 <lambdabot> mueval-core: Time limit exceeded
22:51:10 <elliott> 10000000? what a poor imitation of infinity
22:51:14 <crystal-cola> > foldr (\x ys -> x + 1/ys) 1 . concatMap (\n -> [1,2*n,1]) $ [0..100] :: Rational
22:51:17 <lambdabot> 559742388386760964326534990837201234645965641795425545200281432914515657756...
22:51:20 <crystal-cola> > foldr (\x ys -> x + 1/ys) 1 . concatMap (\n -> [1,2*n,1]) $ [0..100] :: Rational
22:51:23 <lambdabot> 559742388386760964326534990837201234645965641795425545200281432914515657756...
22:51:24 <crystal-cola> > foldr (\x ys -> x + 1/ys) 1 . concatMap (\n -> [1,2*n,1]) $ [0..10] :: Rational
22:51:26 <lambdabot> 46150226651233 % 16977719590391
22:51:33 <micahjohnston> `echo !haskell print "`echo test"
22:51:34 <crystal-cola> e = 46150226651233/16977719590391
22:51:35 <HackEgo> !haskell print "`echo test"
22:51:38 <elliott> > foldr (\x ys -> x + 1/ys) 99999999999999999999 . concatMap (\n -> [1,2*n,1]) $ [0..10] :: Rational
22:51:40 <lambdabot> 2362417702668199999998901872597869 % 869084904271099999999596021504969
22:51:43 <elliott> > foldr (\x ys -> x + 1/ys) 0 . concatMap (\n -> [1,2*n,1]) $ [0..10] :: Rational
22:51:45 <lambdabot> *Exception: Ratio.%: zero denominator
22:51:46 <elliott> e, everybody.
22:51:53 <crystal-cola> > 2362417702668199999998901872597869 / 869084904271099999999596021504969
22:51:54 <micahjohnston> > text "test"
22:51:54 <elliott> e = *Exception: Ratio. / : zero denominator
22:51:55 <lambdabot> 2.718281828459045
22:51:55 <lambdabot> test
22:51:57 <elliott> obviously
22:52:07 <crystal-cola> elliott: hehe that's cool how it's got the 9s in the middle
22:52:22 <elliott> yeah
22:52:24 <elliott> <elliott> > foldr (\x ys -> x + 1/ys) 0 . concatMap (\n -> [1,2*n,1]) $ [0..10] :: Rational
22:52:24 <elliott> <lambdabot> *Exception: Ratio.%: zero denominator
22:52:25 <elliott> <elliott> e = *Exception: Ratio. / : zero denominator
22:52:27 <crystal-cola> > foldr (\x ys -> x + 1/ys) 999 . concatMap (\n -> [1,2*n,1]) $ [0..3] :: Rational
22:52:27 <elliott> LAFF AT MY FUNY JOEK
22:52:29 <lambdabot> 1456807 % 535929
22:52:30 <elliott> LAFF AT IT
22:52:33 <crystal-cola> > foldr (\x ys -> x + 1/ys) 9999 . concatMap (\n -> [1,2*n,1]) $ [0..3] :: Rational
22:52:35 <lambdabot> 14569807 % 5359929
22:52:39 <crystal-cola> > foldr (\x ys -> x + 1/ys) 999999 . concatMap (\n -> [1,2*n,1]) $ [0..3] :: Rational
22:52:42 <lambdabot> 1456999807 % 535999929
22:52:42 <elliott> this is continued fraction right
22:52:47 <crystal-cola> yes
22:52:50 <crystal-cola> > 1456999807 / 535999929
22:52:51 <lambdabot> 2.7182835820860713
22:52:58 <crystal-cola> can we find an excellent approximation of e that is like
22:53:00 <elliott> i remember trying to get them working in coq
22:53:01 <elliott> but it sucked :(
22:53:07 <crystal-cola> ...999.../...999...
22:53:25 <crystal-cola> > foldr (\x ys -> x + 1/ys) 999999 . concatMap (\n -> [1,2*n,1]) $ [0..5] :: Rational
22:53:25 <elliott> crystal-cola: why not find out mr. feynman :D
22:53:27 <lambdabot> 566826950829 % 208523981911
22:53:34 <crystal-cola> hneh
22:53:39 <elliott> e is 999999999999999999999999999999999999999999999 and so on divided by 99999999 and so on
22:53:56 <elliott> > foldr (\x ys -> x + 1/ys) 999999 . concatMap (\n -> [1,2*n,1]) $ [0..] :: Rational
22:53:59 <lambdabot> *Exception: stack overflow
22:54:01 <elliott> :(
22:54:03 <elliott> no fair
22:54:11 <crystal-cola> proof that e is irrational
22:54:20 <elliott> lol
22:54:28 <elliott> but i only folded it a little bit :(
22:54:32 <elliott> oh wait
22:54:39 <elliott> never mind :)
22:54:47 <elliott> what does the foldr argument do
22:55:39 <crystal-cola> it's the last element of the continued fraction, so it has very little effect
22:55:41 <micahjohnston> > scanl1 (+) (map (\x -> 1 / product [1..x]) [1..])
22:55:42 <lambdabot> [1.0,1.5,1.6666666666666667,1.7083333333333335,1.7166666666666668,1.7180555...
22:55:52 <elliott> crystal-cola: ah, so the ideal argument is e? :)
22:55:55 <crystal-cola> well it has a lot of effect on the ratio, but very little on the value of the number
22:55:55 <micahjohnston> > scanl1 (+) (map (\x -> 1 / product [1..x]) [1..]) !! 10
22:55:56 <lambdabot> 1.7182818261984931
22:56:14 <Sgeo> elliott become: false.
22:56:17 <elliott> crystal-cola: right?
22:56:35 <micahjohnston> > scanl1 (+) (map (\x -> 1 / product [1..x]) [0..]
22:56:35 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
22:56:39 <crystal-cola> it some number of the form (ae+b)/(ce+d)
22:56:42 <micahjohnston> > scanl1 (+) (map (\x -> 1 / product [1..x]) [0..])
22:56:43 <lambdabot> [1.0,2.0,2.5,2.6666666666666665,2.708333333333333,2.7166666666666663,2.7180...
22:56:43 <crystal-cola> not necessarily e
22:56:46 <elliott> crystal-cola: right but
22:56:51 <micahjohnston> > scanl1 (+) (map (\x -> 1 / product [1..x]) [0..]) !! 1000
22:56:53 <lambdabot> 2.7182818284590455
22:56:53 <elliott> crystal-cola: e gets you closer to e than any other argument
22:56:54 <elliott> right?
22:56:55 <micahjohnston> :D
22:56:57 <crystal-cola> no
22:57:02 <crystal-cola> (ae+b)/(ce+d) does
22:57:13 <elliott> ah
22:57:25 <crystal-cola> suppose e = [....continued fraction....]
22:57:33 <elliott> obviously a=one, b=c=d=zero :D
22:57:36 <crystal-cola> and you take the first 20 terms e = x ++ [rest]
22:57:38 <elliott> tada its e
22:57:56 <crystal-cola> then invert x and apply it to e to get (ae+b)/(ce+d) = [rest]
22:58:12 <crystal-cola> and e = the continued fraction x applied to (ae+b)/(ce+d)
22:58:58 <crystal-cola> like e = a+1/(b+...) so 1/(e-a)-b = ...
22:59:13 <crystal-cola> and e = a+1/(b+ (1/(e-a)-b) )
22:59:41 <crystal-cola> but basically it's just e = (f o f^{-1}) e
23:00:21 <Sgeo> I want to cure Smalltalkers of the mental illness that they are the objects they are documenting.
23:00:22 <Sgeo> >.>
23:02:14 -!- zzo38 has joined.
23:02:40 <zzo38> How many demerits do you think typographical rivers should be worth?
23:02:47 <elliott> i
23:02:54 <crystal-cola> I don't think there's anything wrong with rivers :/
23:02:55 <elliott> congratulations zzo38 as usual you have floored me
23:03:34 <zzo38> crystal-cola: Then it would be worth zero demerits.
23:03:44 <crystal-cola> yes
23:03:52 <elliott> im a billion metrsiodrts
23:03:55 <elliott> iojdsaktf;odhskjsdf
23:03:56 <elliott> hudgvs
23:04:07 <copumpkin> http://www.onion.demon.co.uk/theonion/information/baconpig/porkchart.htm
23:04:16 <elliott> there is no way anything at that url cannot be perfect
23:04:33 <copumpkin> it's got a smiley pig :)
23:04:38 <elliott> "Mr. Mallet or Mr. Bolt Gun" EITHER OR
23:05:49 <zzo38> copumpkin: And it looks like, with a bowtie, even
23:06:09 <elliott> all pigs wear bowties
23:06:12 <elliott> its a feature of their anatomy
23:06:32 <crystal-cola> http://maneggs.com/wp-content/uploads/2011/03/man.jpg
23:06:50 <lament> copumpkin: nice
23:06:53 <elliott> note totally sfw
23:07:00 <elliott> everyone click crystal-cola's link
23:07:13 <elliott> btw copumpkin and crystal-cola one of you are going to have to change nicks so i stop confusing you thx
23:07:23 <copumpkin> our nicks look nothing alike
23:07:25 <copumpkin> learn to read
23:07:36 <elliott> i hat ereading it sucecks
23:07:37 <elliott> skfh
23:07:38 <elliott> ohrsfdiugxb
23:07:43 <elliott> xfghjk,m vcxsdertyujnbvgyujn
23:07:55 <zzo38> copumpkin: The first letter is the same. But a lot of words have same letter so it should be OK to keep the nicks as they are.
23:08:14 <zzo38> But some typographers do not like rivers. But by how much? Obviously would be the good idea that any program that could check for these things would allow the user to specify the demerits (which could be zero, positive if you dislike rivers, or negative if you *want* rivers); but what I ask, is what opinions different people have.
23:08:38 <elliott> it should be worth 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 demerits
23:08:47 <elliott> i calculated that number with precision
23:09:08 <crystal-cola> ehy
23:09:13 <crystal-cola> does that 9 thing have anything to do with 9?
23:09:19 <elliott> no nothing at all
23:09:27 <crystal-cola> > foldr (\x ys -> x + 1/ys) 777777777777 . concatMap (\n -> [1,2*n,1]) $ [0..5] :: Rational
23:09:29 <lambdabot> 440865444444521235 % 162185333333361583
23:09:40 <crystal-cola> > foldr (\x ys -> x + 1/ys) 5555555555 . concatMap (\n -> [1,2*n,1]) $ [0..5] :: Rational
23:09:42 <lambdabot> 3149038889091641 % 1158466666741255
23:09:44 <elliott> huh
23:09:47 <elliott> that's cool
23:09:48 <elliott> too cool
23:09:50 <elliott> for school
23:09:51 <crystal-cola> > foldr (\x ys -> x + 1/ys) 2222222222222 . concatMap (\n -> [1,2*n,1]) $ [0..5] :: Rational
23:09:53 <lambdabot> 1259615555555947250 % 463386666666810763
23:09:54 <crystal-cola> lol
23:09:55 <elliott> i wonder what on earth homotopy type theory actually is
23:10:04 <crystal-cola> elliott: Why did you suddenly wonder that??/
23:10:12 <elliott> linked a lot on /r/dependent_types
23:10:29 <elliott> and it sure looks interesting i just don't know what the actual theory is :)
23:10:35 <crystal-cola> I've been reading about it most of today
23:11:04 <elliott> Inductive int : Type :=
23:11:04 <elliott> | pos : nat -> int
23:11:04 <elliott> | zero : int
23:11:04 <elliott> | neg : nat -> int.
23:11:04 <elliott> In other words, an integer is either one more than a natural number, or zero, or one less than minus a natural number. (Of course, the naturals are inductively generated by 0 and successor.)
23:11:05 <elliott> twitch
23:11:08 <elliott> it has both 0 +0 and -0
23:11:12 <elliott> oh wait
23:11:13 <elliott> one less than
23:11:15 <elliott> and one more than
23:11:17 <elliott> never mind
23:13:53 <elliott> crystal-cola: homo to pyty pethe ory
23:14:00 <elliott> that's how i read homotopytypetheory
23:14:07 <elliott> well ok not really but i sure don't read it as what it's meant to be
23:15:54 <crystal-cola> elliott: Do you know what a homotopy class is
23:16:20 <elliott> ssssssssssshhhhhhh i'm trying to see if i'll magically understand everything if i read every post
23:16:26 <elliott> human contact is forbidden
23:16:29 <zzo38> I guess the demerits also depends how much other things are worth (that is, what units you are using).
23:20:04 -!- zzo38 has quit (Read error: Connection reset by peer).
23:20:14 <elliott> sometimes i hate the logs because people are stupid
23:20:15 <elliott> 13:28:39 <chrisdb> tusho: about the only easy way to get persistent state in Haskell is to pass your variables as arguments through all your functions. Which is damn annoying. I'm not a member of the 'global variables are always evil' brigade.
23:20:19 -!- zzo38 has joined.
23:21:07 <zzo38> (We could use units where stretching by 100% is worth 1 demerit; we would need to use fractional demerits too if this is the case. In an actual computer program you would not use these units; you would use different units so that you can work with integers.)
23:25:13 -!- ais523 has quit (Remote host closed the connection).
23:30:58 -!- pikhq has joined.
23:32:23 <elliott> 13:48:49 <chrisdb> psygnisfive: I mean macs are obviously aimed at the 4 - 8 yo market segment.
23:32:23 <elliott> ok this log is just too stupid to keep reading i hope everyone in it dies off soon apart from me
23:32:28 <elliott> --- died: everyone
23:32:31 <elliott> clog logs deaths right
23:33:08 <elliott> Unknown media type in type 'interface/x-winamp-skin'
23:33:08 <elliott> --apt-get
23:33:14 <elliott> <no words>
23:35:22 -!- zzo38 has quit (Quit: Ha Ha).
23:36:03 <micahjohnston> the binary-to-unary funciton on slashesis really cool
23:36:13 <oerjan> why thank you
23:36:34 <micahjohnston> you can see it doubling the number of *'s as they trickle downwards in the number
23:37:02 <elliott> oerjan: can you do UNARY TO UNARY
23:37:15 <elliott> <oerjan> no it is impossible
23:37:22 <oerjan> !slashes /MAYBE/MAYBE/*******************************
23:37:23 <EgoBot> *******************************
23:37:34 <micahjohnston> !slashes ///
23:37:36 <elliott> no that doesn't even do anything to the text
23:37:37 <elliott> jeez
23:37:39 <elliott> let me show you how to do it
23:37:54 <elliott> !slashes /*/*,/*****
23:37:58 <elliott> just a second
23:37:59 <elliott> erm
23:38:01 <elliott> oh
23:38:04 <elliott> that'll never complete
23:38:09 <oerjan> NICE TRY
23:38:10 <monqy> good job
23:38:11 <elliott> !slashes /*/X,/*****
23:38:13 <EgoBot> X,X,X,X,X,
23:38:18 <monqy> ,
23:38:18 <elliott> !slashes /*/X,//,X/X,/*****
23:38:19 <EgoBot> XXXXX,,,,,
23:38:23 <elliott> !slashes /*/X,//,X/X,//,//*****
23:38:25 <EgoBot> XXXXX
23:38:34 <elliott> !slashes /*/X,//,X/X,//,///X/*/*****
23:38:40 <elliott> what...
23:38:44 <elliott> how does that not terminate
23:38:45 <elliott> !slashes /*/X,//,X/X,//,///X/*/*****
23:38:48 <elliott> !slashes /*/X,//,X/X,//,//*****
23:38:49 <EgoBot> XXXXX
23:38:57 <elliott> !slashes /*/X,//,X/X,//,///X/*/*****
23:38:59 <elliott> >:?
23:39:05 <elliott> oerjan:
23:39:46 <elliott> oerjan: WHAT IS WRONG WITH IT
23:39:49 <elliott> :O
23:40:15 <oerjan> the last /X/*/ will have been turned into /X/X/
23:40:25 <elliott> oh
23:40:26 <elliott> haha
23:40:39 <elliott> is there any way around that even?
23:40:58 <oerjan> single character abbreviations are tricky
23:41:02 <elliott> ok wait i've got it
23:41:12 <elliott> !slashes :*****
23:41:14 <EgoBot> :*****
23:41:19 <elliott> !slashes /:*/*:/:*****
23:41:21 <EgoBot> *****:
23:41:25 <elliott> !slashes /:*/:*:/:*****
23:41:28 <elliott> !slashes /:*/,*:/:*****
23:41:29 <EgoBot> ,*,*,*,*,*:
23:41:42 <elliott> !slashes /:*/,*://,*/*//:/:*****
23:41:43 <oerjan> yeah that's one way
23:41:45 <elliott> !slashes /:*/,*://,*/*//://:*****
23:41:46 <EgoBot> *****
23:41:49 <elliott> YAY
23:41:49 <elliott> i did it
23:41:53 <elliott> sorry i mean
23:41:55 <elliott> nailed it
23:42:18 <elliott> !slashes /:*/,*://,*/*//://Hello:*:**eleph:**a,*n:t:*
23:42:20 <EgoBot> Hello***eleph**a*nt*
23:42:24 <elliott> useful
23:42:37 <elliott> !slashes /:*/,*://,*/*//://Hello:*:**eleph:**a,*:*n:t:*
23:42:39 <EgoBot> Hello***eleph**a**nt*
23:43:37 <elliott> oerjan: make it useful somehow :D
23:44:00 <elliott> !slashes /*/,*//,*/**/*****
23:44:09 <elliott> oerjan: btw how easy is binary->unary again?
23:44:14 <elliott> and can it be combined with unary->binary?
23:44:24 <oerjan> sure
23:44:49 <elliott> hm
23:44:52 <elliott> why didn't that terminate...
23:45:07 <elliott> oh wait
23:45:14 <elliott> !slashes /*/,//,/**/*****
23:45:18 <elliott> argh
23:45:21 <elliott> it's that stupid thing again
23:45:30 <elliott> i'll let oerjan write the trivial unary doubling program then :D
23:45:46 <oerjan> mind you it will be awkward if you want to iterate it with raw 0's and 1's in your representation
23:46:24 <elliott> oerjan: i just want to have a decimal doubler program :P
23:46:30 <elliott> decimal -> unary -> double -> decimal
23:46:32 <oerjan> !slashes /:*/,://,/**/:*****
23:46:33 <EgoBot> **********:
23:47:30 <oerjan> as long as you don't use entirely raw 0-9 digits, that should work fine
23:47:53 <elliott> oerjan: well i want that to be the input and the output
23:47:56 <elliott> perhaps surrounded by something
23:48:04 <oerjan> the decimal -> unary conversion is the most awkward part
23:48:28 <oerjan> doing it without losing the use of 0-9
23:48:31 <oerjan> for output
23:49:16 <elliott> right
23:49:32 <elliott> you sort of have to tag every 0-9 you use in your /program/
23:49:37 <elliott> and then replace those tagged ones with special identifiers
23:49:40 <elliott> then after using 0-9, put them all back
23:49:41 <elliott> ugly
23:49:43 <oerjan> and surrounding it by something doesn't really help when everything inside is not the same character
23:50:21 <oerjan> because then it would take a substantial loop to iterate through it
23:50:34 <oerjan> (see: my first looping counter)
23:50:40 <elliott> right
23:50:46 <elliott> i just want to have raw decimal inside
23:50:48 <elliott> because that's more fun
23:51:03 <oerjan> well you _can_ make such a loop
23:51:08 <elliott> oerjan: hmm is ijfiwtwjssbwb IO-complete?
23:51:12 <elliott> you know the language i mean
23:51:17 <oerjan> i think so
23:51:27 <elliott> oerjan: can it do interactive?
23:51:29 <elliott> or is it batch IO only
23:51:30 <oerjan> sure
23:51:35 <elliott> cool
23:52:49 <elliott> oerjan: for your next trick you should prove self-BCT TC
23:52:57 <elliott> such a pretty language ;_;
23:53:01 <oerjan> wtf is that again
23:53:14 <elliott> oerjan: bct where program = data
23:53:15 <elliott> http://esolangs.org/wiki/Bitwise_Cyclic_Tag#Self_BCT
23:53:25 <oerjan> eek
23:53:37 <elliott> i should write a program to visualise that like twodee CAs
23:53:39 <elliott> it'd be so pretty
23:55:00 <elliott> oerjan: is that eek the sound of COGS WHIRRING IN YOUR HEAD :P
23:55:06 <oerjan> no
23:55:12 <elliott> shocking
23:58:09 <elliott> hmm, how to implement self-BCT elegantly in Haskell
23:58:29 <elliott> If I want a list I can "advance" one element so that it can be accessed directly, but also know where the start of the list is, that's a zipper again, right?
23:58:30 <oerjan> binary -> unary is a _bit_ more plausible to do briefly, because you can substitute each of 00, 01, 10, 11
23:59:21 <elliott> or wait
23:59:22 <oerjan> but with decimal you get 100 combinations
23:59:30 <elliott> can you actually find out the starting element with a zipper?
23:59:46 <elliott> oerjan: hmm, couldn't you generate those hundred combinations with BCT?
23:59:48 <elliott> it's self-modifying, after all
23:59:52 <elliott> you can just construct them programmatically
23:59:59 <oerjan> BCT?
←2011-04-29 2011-04-30 2011-05-01→ ↑2011 ↑all