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