00:07:31 -!- cheater_ has joined. 00:12:08 -!- oerjan has joined. 00:19:40 -!- augur has joined. 00:19:55 -!- cheater_ has quit (Ping timeout: 255 seconds). 00:22:19 -!- Patashu has joined. 00:23:38 -!- elliott_ has quit (Remote host closed the connection). 00:24:26 -!- elliott has joined. 00:26:18 * Phantom__Hoover → sleep 00:26:19 -!- Phantom__Hoover has quit (Quit: Leaving). 00:30:31 wertyuio 00:30:34 oiu 00:30:37 qwant 00:30:39 taupe 00:30:43 pestilence 00:30:45 the nine sins 00:31:02 hft? 00:32:41 elliott has been possessed by a demon, sadly. 00:34:11 and now two new cardinal sins will be unleashed upon the world 00:34:32 and some pestilence, but that's hardly new 00:34:58 no that was the list of sins 00:35:01 - wertyuio 00:35:05 - oiu 00:35:05 - qwant 00:35:06 - taupe 00:35:08 - pestilence 00:35:10 those are the nine sins 00:35:24 shoo demon 00:35:57 im a shoe demon 00:36:06 it is a great boon that demons can't count, at least 00:36:28 maybe its nine in a different base 00:36:29 ;-) 00:36:37 casey anthony beat the murder case 00:37:13 oh god 00:37:16 he came back? 00:37:27 its like christmas 00:37:51 maybe elliott has finally met his match 00:39:58 http://codu.org/tmp/futuretie.jpg <-- there are people who wear ties to conform. and then there is Gregor. 00:40:28 why does he wear ties? 00:40:32 to offend? 00:40:55 i assume for the same reason he wears hats 00:41:05 that goes without saying 00:41:08 maybe it's a side effect of hyposmia 00:41:14 but brings me no closer to the truth 00:42:07 what is pretty clear is that whatever he is doing, it's not conforming 00:42:24 would anyone here fuck casey anthony? 00:42:27 unless his peers are in the circus 00:42:46 isnt she dead? eww.. thats gross 00:42:47 14:06:28: elliott_: how's scapegoat getting on? 00:42:48 14:06:38: I just got into a darcs vs. svn flamewar in my boss's office 00:42:56 I explained it to a friend recently, so maybe I'll even work on it 00:43:03 14:07:20: and need a version control system that is unambiguously superior to all others in order to justify advocating it 00:43:04 isnt that he moms name? 00:43:04 It doesn't have to exist to advocate it 00:43:09 i can at least say, who the fuck is casey anthony 00:43:22 casey anthony is the mom 00:43:24 can we not talk about stupid diversionary non-news news stories? 00:43:35 there are lots of other retarded places to talk to retarded people on that subject 00:43:47 id fuck casey anthony 00:43:48 in the ass 00:43:49 oh it's a woman, i was confused the previous talk about casey and andy 00:44:05 i was going to call up augur for expertise 00:44:09 oerjan: Caylee Marie Anthony (August 9, 2005 – c. June 16, 2008)[1] was a child from Orlando, Florida, whose disappearance in June 2008 attracted national media attention. Caylee's skeletal remains were discovered December 11, 2008, six months after she was reported missing by her grandmother, Cindy Anthony.[2] Her mother, Casey Anthony, decided not to report her daughter missing, and was indicted on charges of felony murder, though she continu 00:44:09 ed to maintain her innocence throughout her trial. Casey Anthony was found not guilty of murder, aggravated child abuse, and aggravated manslaughter, but guilty of providing false information to a law enforcement officer. 00:44:11 o.o 00:44:12 *by the 00:44:23 so no caylee is the kid 00:44:35 oh wait 00:44:37 casey is the mother right 00:44:56 -!- newsham has left. 00:45:51 can we not talk about stupid diversionary non-news news stories? 00:45:51 there are lots of other retarded places to talk to retarded people on that subject 00:45:53 concurring with this btw 00:46:03 not that there's been any _discussion_ :D 00:46:05 im gonna get a blow job from casey anthony 00:47:46 oerjan: hes not only stupid and stupid in a boring way but a troll and a troll in a boring way :( 00:48:05 QUADTIE 00:48:08 octotie 00:49:57 oerjan: I wear ties to AVOID conforming :P 00:50:09 If I was in business, I probably wouldn't wear ties :P 00:50:49 if you were in business you might or might not get a choice, afaik 00:50:54 http://codu.org/tmp/futuretie.jpg <-- there are people who wear ties to conform. and then there is Gregor. 00:51:00 well this is definitely the ugliest thing i've ever seen 00:51:02 Gregor that is, nice tie 00:51:08 *sobblecopter* 00:51:09 oh, I should have worded that as "nice tie, though" :( 00:52:22 I am making a pretty goofy face, and my jetlag tiredness makes me look like I have a black eye :P 00:53:05 BeedaWeeda: 95% of the people in this channel are nerds and don't like to mess up our nice geeky channel with woman talk. and the rest are gay. 00:53:17 -!- augur has quit (Remote host closed the connection). 00:54:02 well and then there's oklopol, but he's on vacation. 00:54:09 I like oerjan's definition of woman talk :P 00:54:32 elliott: english compounds are ambiguous 00:55:01 oerjan: I didn't mean that :P 00:55:31 ah. 01:18:10 http://codu.org/tmp/doubletie2.jpg Doubleties are seriously the greatest. 01:18:57 niceties and doubleties 01:19:43 Gregor: tripletie 01:19:45 the challenge is set 01:20:01 elliott: One tie at a time :P 01:20:02 octotie, we said 01:20:11 If I had a long skinnytie, tripletie would be easy. 01:20:56 tie mummification 01:23:37 -!- BeedaWeeda has quit (Changing host). 01:23:37 -!- BeedaWeeda has joined. 01:28:18 BeedaWeeda: it is too late.... the fbi have seen your ip.... 01:29:39 -!- augur has joined. 01:30:51 -!- augur has quit (Client Quit). 01:31:02 -!- augur has joined. 01:34:34 http://codu.org/tmp/doubletie2.jpg augur, behold my amazing invention! 01:36:20 Gregor the gordian 01:36:58 -!- Sgeo has joined. 01:38:04 Gregor: it looks like something youd wear 01:38:29 Well, that's good :P 01:38:31 Gregor: its less ugly than the other one F- 01:38:42 elliott: I'm experimenting with "knots" :P 01:39:52 Gregor: can you get a tie that's a transparent plastic thing filled with multicoloured glow in the dark liquid 01:39:54 wear that 01:40:11 Umm ... I doubt that you can :P 01:41:27 Gregor: why not 01:41:35 that would fucking rock i would wear that all day holy shit 01:41:36 i have to make one 01:41:53 It would be quite a trick to tie :P 01:42:02 If it's thick enough to not break when you try to tie it, it's too thick to tie. 01:42:16 Gregor: The bit you actually tie would get thinner. 01:42:22 (And maybe be made of a bit nicer material :P) 01:42:43 Gregor: You'd need some way to keep all the liquid flowing to make it the most cool though >_> 01:42:51 The bit you actually tie varies depending on the height, build, knot and preferences of the wearer. 01:42:58 Yeah yeah yeah, HAND-TAILORED 01:43:07 Have fun with that :P 01:43:29 Gregor: IT WILL BE SO COOL DO YOU EVEN HAVE ANY IDEA. 01:43:36 Instant rockstar. 01:45:50 what about some kind of paper-thin lcd screen surface 01:46:31 Which also does not break when tied :P 01:46:33 ...i guess we should just wait for the nanofabrics 01:46:55 Gregor: um there are thin bendable transparent oled displays at least 01:47:08 they might even not look like shit in the few years that have passed since I started knowing this 01:47:10 Bendable, or holyfuckmegabendable? 01:47:28 Gregor: Bendable as in "fold it in half with a little bulge at the end and then back over itself" :P 01:47:33 JUST NEEDS A BIT OF TORTURE 01:47:51 oh my god if you had a tie hooked up to a camera on the back of your shirt 01:47:57 so it looked like a hole 01:47:57 best tie 01:48:02 the actual pulling at the knot part might get ugly, there 01:48:22 wait 01:48:25 whatif you had a whole shirt like that 01:48:27 omfg.......... 01:48:46 Elizacat: A whole shirt like that, but wore a tie :P 01:48:47 the half invisible man 01:48:49 Errrg 01:48:54 elliott: Who is Elizacat? :P 01:49:02 Gregor: Somebody who came in here to ping Vorpal. 01:49:59 wait 01:50:00 whatif you had a whole shirt like that 01:50:00 omfg.......... 01:50:02 i think this is actually feasible 01:50:15 i mean shirts don't need to bend THAT much really 01:50:36 also if you made all the non-screen parts out of shiny mirror... yes.... i want this shirt........... 01:51:05 sup 01:51:06 hi 01:51:16 Gregor, I'm a friend of Vorpal 01:51:22 Gregor, we go way back 01:51:24 Elizacat: u r squatting on my nick letter plz rename urself 01:51:32 sod off 01:51:36 Elizacat: im sue you 01:51:43 lul 01:51:46 what jurisdiction 01:51:48 Elizacat: irc 01:51:54 I'll win 01:51:56 I have a better lawyer 01:51:59 im judge 01:52:09 I'm judge, jury, and executioner 01:52:23 im stab you behind back while u talk ha ha.... now ur dead for eva 01:52:32 I don't have a back 01:52:49 what do cats have that is fatally stabbable 01:52:58 specifically, automated therapist program cats 01:53:22 I think we've lost track of the topic here. 01:53:27 Which is how awesome doubleties are. 01:56:47 you know, a mirror shirt would be almost as cool as that idea 01:56:51 and about a thousand times easier 01:56:54 do they exist 01:57:11 google image search results for "shirt made out of mirror" not promising 01:57:33 mirror shirt mirror pants mirror hat 01:58:39 i need to become a ~~rockstar~~ just so i can wear this omg 01:58:44 maybe a rockstar programmer would do 01:58:46 Gregor: get the jquerys 01:58:51 or wait 01:58:52 was that ninja 01:58:53 i forget 01:59:36 mirror shoes 01:59:46 mirror glasses 01:59:48 mirror scarf 01:59:52 mirror cape 02:00:05 i cant have mirror everything monqy 02:00:11 does there exist mirror skin paint 02:06:14 -!- Lymee has joined. 02:06:14 -!- Lymee has quit (Changing host). 02:06:14 -!- Lymee has joined. 02:10:02 -!- pumpkin has joined. 02:10:11 -!- pumpkin has quit (Changing host). 02:10:11 -!- pumpkin has joined. 02:13:28 -!- copumpkin has quit (Ping timeout: 276 seconds). 02:20:15 -!- zzo38 has joined. 02:23:22 Do you know if ais523 has answered the second pokemon card puzzle game? 02:25:06 I do ont 02:25:07 *not 02:27:37 / Don't rename the system principal! 02:27:37 / The JS engine (NewCompartment) relies on this name. 02:27:37 #define SYSTEM_PRINCIPAL_SPEC "[System Principal]" 02:27:37 --caps/src/nsSystemPrincipal.cpp 02:27:42 compartment->systemGCChunks = principals && !strcmp(principals->codebase, "[System Principal]"); 02:27:42 --js/src/jscompartment.h 02:27:46 good coding dot jpg 02:28:29 lol what 02:29:38 why 02:31:06 maybe you're not allowed to include header files from different components 02:33:40 "My source is common sense" 02:33:45 * elliott adds to list of phrases never to say 02:34:14 [1] 02:34:17 1. common sense 02:34:23 *'s edit is reverted :(* 02:36:22 -!- Nisstyre has quit (Quit: Leaving). 02:38:27 -!- Nisstyre has joined. 02:38:45 elliott: man that is the most common sense I've ever seen in code. 02:39:02 board of porpoises 02:39:37 im an artist... of death 02:39:52 i kill people then hide their bodies then never talk about it ever that is my art 02:40:05 all artists are more valuable dead, that's common sense 02:40:10 my next target......... BeedaWeeda 02:40:19 i am working... for the fbi... 02:40:45 03:29:47: * oerjan suddenly has a realization: mime types cannot possibly handle sound data. 02:40:45 the idea is just plain unsound 02:41:05 wait why did i say that 02:41:14 i have _no_ idea whatsoever 02:41:21 also, murdering BeedaWeeda _will_ get you banned. just saying. 02:41:27 03:15:57: eh... scope makes sense in Python... to me anyways... but that's because I've been using it... a lot. 02:41:27 03:16:09: i don't understand scope in python 02:41:27 03:16:40: everything is local unless stated otherwise. 02:41:27 03:16:47: mm hmmm 02:41:27 03:17:16: and a closure is just an encapsulation of the globals() at the time of definition. 02:41:30 03:17:55: so... any idea of what's causing self to be undefined? I'm thinking it might be something with the way you have it set up... can I see the source? 02:41:35 03:19:10: bsmntbombdood.mooo.com/chroot_ircbot.py 02:41:37 03:20:38: argh 02:41:39 03:20:45: I think it would be cool if python.exe could take URLs as pathnames. 02:41:41 03:21:02: so it would interpret a program off of a URL. 02:41:43 03:21:41: this needs a script to start i 02:41:45 03:21:42: t 02:41:47 03:27:34: there, mime types are better 02:41:49 03:29:47: * oerjan suddenly has a realization: mime types cannot possibly handle sound data. 02:41:51 oh thats 02:41:53 a bigger paste than i realised 02:41:55 also, murdering BeedaWeeda _will_ get you banned. just saying. 02:41:57 is crime bannable? 02:42:15 i'm surprised it got through. well, if it all did. 02:42:57 no, it's just the attitude i don't like. 02:43:27 lol at classifying murder as "attitude" 02:43:34 DON'T TAKE THAT MURDERING TONE WITH ME MISTER 02:43:39 #reallybadattitude at that 02:43:53 oh, i got in 02:43:58 :) ))) 02:45:02 also, i still wish i knew what i meant by that mime type comment 02:46:22 alas. 02:47:29 oerjan: i figured it out 02:47:30 oerjan: it's a pun 02:47:46 >_< 02:48:16 got it yet? :D 02:48:25 yeah yeah 02:48:33 oerjan: oh did you know all along... 02:48:37 no 02:48:57 i simply didn't consider that i could possibly have meant to make a pun. the idea! 02:49:55 :D 02:52:38 monqy: soon...zepto...blood... 02:52:51 whose blood 02:53:49 monqy: nonbelievers 02:54:07 bah reddit link crashed my browser 02:56:55 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n` mod pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in ncheck 6 1 0 [5, 4..] 02:56:56 : parse error on input `pos' 02:57:13 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in ncheck 6 1 0 [5, 4..] 02:57:14 [7,9,11,13,16,17,18,19,21,22,23,26,27,29,31,32,33,34,35,36,37,38,39,41,43,4... 02:57:25 oops 02:57:31 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in ncheck 6 1 0 [5, 4.. 0] 02:57:32 [] 02:57:41 _more_ ncheck? :D 02:57:43 oh this looks optimised 02:57:49 is it optimised 02:57:58 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 6 in ncheck b 1 0 [b, b-1 .. 0] 02:57:59 [2,3,4,6,7] 02:58:05 i'm just checking a special case 02:58:10 oops 02:58:12 boring :( 02:58:16 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 6 in ncheck b 1 0 [b-1, b-2 .. 0] 02:58:17 [] 02:58:20 i want something i can actually run on thirty-four :D 02:58:29 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 34 in ncheck b 1 0 [b-1, b-2 .. 0] 02:58:30 [5,7,13,15,19,21,23,25,26,29,31] 02:58:45 (sorry, failed :P) 02:58:53 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 4 in ncheck b 1 0 [b-1, b-2 .. 0] 02:58:54 [] 02:58:54 failed what 02:59:00 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 8 in ncheck b 1 0 [b-1, b-2 .. 0] 02:59:01 [5] 02:59:06 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 14 in ncheck b 1 0 [b-1, b-2 .. 0] 02:59:07 [5,9,11] 02:59:13 hmph 02:59:18 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 28 in ncheck b 1 0 [b-1, b-2 .. 0] 02:59:18 [5,10,11,15,16,17,19,22,23,25] 02:59:45 nah i just realized that base 4 and 6 have solutions of the form (b-1)(b-2)...0 03:00:01 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 62 in ncheck b 1 0 [b-1, b-2 .. 0] 03:00:02 [7,9,11,13,16,17,19,21,22,23,25,26,27,29,32,33,34,35,37,38,39,41,43,44,45,4... 03:00:08 thats a big numbro 03:00:08 :( 03:00:14 oh are we sad :( 03:00:35 > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 16*31 in ncheck b 1 0 [b-1, b-2 .. 0] 03:00:36 [7,17,21,23,29,34,35,37,41,43,46,47,49,51,53,58,59,61,63,64,67,68,69,71,73,... 03:00:39 bah 03:01:05 elliott: i just wanted to see if it worked for either perfect numbers or twice mersenne primes 03:01:18 oerjan: its ok theres a world of laughter in a bone 03:01:19 but nah 03:02:29 oh only one tab actually crashed 03:02:38 you still use IE right :) 03:02:59 sometimes i forget IE is a thing 03:03:29 yeah :P 03:03:52 monqy: you live a peaceful life 03:04:27 a few times a long time ago i tried to do cross-browser web stuff and IE was just the worst thing it made my life hell 03:04:30 elliott: oh and i did have one idea for improving nsearch. as i wrote it it actually recomputes a lot of gcd's. it might be an idea to put the gcd's for a base in an array instead. 03:04:30 this is why i dont do web stuff 03:05:00 > flip replicateM ['a'..'c'] =<< [1..] 03:05:01 ["a","b","c","aa","ab","ac","ba","bb","bc","ca","cb","cc","aaa","aab","aac"... 03:05:03 the fact that it is that easy to test every possible combination of an alphabet makes me want to write some password crackers in Haskell... 03:05:04 my arm is sticky how did that happen... wait i spilled water on it maybe im imagining the water is sticky 03:05:22 > [1..] >>= ['a'..'c'] 03:05:23 Couldn't match expected type `t -> [b]' against inferred type `[a]' 03:05:25 > [1..] >> ['a'..'c'] 03:05:25 also _maybe_ one could split the list of digits by the resulting gcd, but that would mean more complicated deletion. 03:05:26 "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcab... 03:05:28 elliott: maybe you are on acid, or schizophrenic. 03:05:33 > [1..] >>= replicate ['a'..'c'] 03:05:34 Couldn't match expected type `GHC.Types.Int' 03:05:34 against inferred type ... 03:05:37 hmm, what was it... 03:05:44 replicateM 03:06:28 > replicateM 3 ['a'..'c'] 03:06:29 ["aaa","aab","aac","aba","abb","abc","aca","acb","acc","baa","bab","bac","b... 03:06:54 > permutations ['a' .. 'c'] 03:06:55 ["abc","bac","cba","bca","cab","acb"] 03:06:58 :t newArray 03:06:59 Not in scope: `newArray' 03:07:04 oh right oops 03:07:05 :t arrayFromList 03:07:06 Not in scope: `arrayFromList' 03:07:07 im a bad person 03:07:10 argh 03:07:15 > permutations (repeat ['a'..'c']) 03:07:16 [["abc","abc","abc","abc","abc","abc","abc","abc","abc","abc","abc","abc","... 03:07:20 > permutations (cycle ['a'..'c']) 03:07:21 ["abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabca... 03:07:28 argh 03:07:36 I think the function you're looking for... 03:07:44 > map (take 3) . permutations (cycle ['a'..'c']) 03:07:45 Couldn't match expected type `[a]' 03:07:45 against inferred type `GHC.Types... 03:07:49 > map (take 3)( permutations (cycle ['a'..'c'])) 03:07:50 ["abc","bac","cba","bca","cab","acb","acb","cab","cba","abc","bac","bca","a... 03:07:51 is flip replicateM ['a'..'c'] =<< [1..] 03:07:55 CakeProphet: SHADDAP 03:07:57 [1..] >>- flip replicateM ['a' .. 'c'] 03:08:02 > [1..] >>- flip replicateM ['a' .. 'c'] 03:08:04 ["a","aa","b","aaa","c","ab","aaaa","ac","aab","ba","aaaaa","bb","aac","bc"... 03:08:07 hehehehe 03:08:08 ?hoogle LogicT 03:08:09 No results found 03:08:10 ?hoogle Logic 03:08:10 No results found 03:08:12 oh come on 03:08:16 there has to be an equivalent >:( 03:08:26 @src replicateM 03:08:26 replicateM n x = sequence (replicate n x) 03:08:33 @src replicate 03:08:34 replicate n x = take n (repeat x) 03:08:47 when in doubt, expand some functions. 03:08:48 elliott: what is it you _want_ :P 03:09:15 :t combinations 03:09:16 Not in scope: `combinations' 03:09:22 hmm. 03:09:44 that wouldn't help 03:09:56 @src sequence 03:09:56 sequence [] = return [] 03:09:56 sequence (x:xs) = do v <- x; vs <- sequence xs; return (v:vs) 03:09:56 -- OR: sequence = foldr (liftM2 (:)) (return []) 03:10:23 elliott: what is it you _want_ :P 03:10:28 what CakeProphet did, but shorter and prettier 03:10:28 oh right I was thinking of sequence 03:10:30 so that he feels bad. 03:10:37 lol 03:10:39 oh 03:10:45 > sequence "abc" 03:10:46 Couldn't match expected type `m a' 03:10:46 against inferred type `GHC.Types... 03:10:49 WHY NOT 03:10:53 yeah because that code is so ugly, with its flip and stuff. 03:10:54 Char is totally a monad. 03:11:00 CakeProphet: yes it is. you're a terrible person. 03:11:07 > [0..] >=> "pop" 03:11:08 Couldn't match expected type `a -> m b' 03:11:08 against inferred type `[a1]' 03:11:09 > (`replicateM`['a'..'c'])=<<[1..] 03:11:10 ["a","b","c","aa","ab","ac","ba","bb","bc","ca","cb","cc","aaa","aab","aac"... 03:11:12 :t (>=>) 03:11:13 forall a (m :: * -> *) b c. (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c 03:11:16 oerjan: NO NOT LIKE THAT DAMMIT 03:11:36 oerjan: elliott doesn't like bind and replicateM apparently. These are out of the question. 03:11:41 he needs two functions with different names. 03:11:43 :t duplicate 03:11:44 Not in scope: `duplicate' 03:11:46 er 03:12:09 wait I think that's exactly what I wanted 03:12:09 CakeProphet: IT NEED SOMETHING SHORTER AND MORE ELEGANTK[PDFGOFIJGOPRGJRIOTJGORG 03:12:15 > duplicate "x" 03:12:16 Not in scope: `duplicate' 03:12:20 YESS NOT IN SCOPE ERRORS ARE THE BEST 03:12:22 it's already pretty elegant... so, good luck. 03:12:24 I mean 03:12:28 not what I wanted 03:12:29 but 03:12:32 what I was trying to spell 03:12:35 CakeProphet: no its ugly and youre terrible 03:12:37 :( 03:12:38 (i didn';t misspell duplicate) 03:13:17 @src 03:13:17 src . Display the implementation of a standard function 03:13:20 isnt duplicate the comonad thing 03:13:20 oh hm 03:13:24 yes 03:13:27 @src sequence 03:13:27 sequence [] = return [] 03:13:27 sequence (x:xs) = do v <- x; vs <- sequence xs; return (v:vs) 03:13:28 -- OR: sequence = foldr (liftM2 (:)) (return []) 03:13:32 > Control.Comonad.duplicate 03:13:33 Not in scope: `Control.Comonad.duplicate' 03:13:47 Data.Functor.Extend.duplicate 03:13:48 monqy: the [] implementation is tails 03:13:49 it seems 03:13:51 > tails "abcd" 03:13:52 ["abcd","bcd","cd","d",""] 03:14:02 ah 03:14:05 > reverse (tails "abcd") 03:14:05 ["","d","cd","bcd","abcd"] 03:14:09 > map permutations . reverse (tails "abcd") 03:14:10 Couldn't match expected type `[a]' 03:14:10 against inferred type `GHC.Types... 03:14:16 > let f = map permutations . reverse . tails in f "abcd" 03:14:17 [[""],["d"],["cd","dc"],["bcd","cbd","dcb","cdb","dbc","bdc"],["abcd","bacd... 03:14:30 > let f = concat . map permutations . tail . reverse . tails in f "abcd" 03:14:31 ["d","cd","dc","bcd","cbd","dcb","cdb","dbc","bdc","abcd","bacd","cbad","bc... 03:14:36 hmm, that's not right 03:14:38 duh 03:14:40 wow I think you're on the right track. This is becoming so elegant. 03:14:42 > let f = concat . map permutations . tail . reverse . inits in f "abcd" 03:14:44 ["abc","bac","cba","bca","cab","acb","ab","ba","a",""] 03:14:48 > let f = concat . map permutations . tail . inits in f "abcd" 03:14:50 ["a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad","bc... 03:14:57 CakeProphet: yep 03:15:04 > let f = concatMap permutations . tail . inits in f "abcd" 03:15:06 > [1..]>>=\n->sequence$[1..n]>>['a'..'c'] 03:15:06 ["a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad","bc... 03:15:06 : parse error on input `->' 03:15:14 > let f = tail . inits >=> permutations in f "abcd" 03:15:15 ["a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad","bc... 03:15:21 > [1..]>>= \n->sequence$[1..n]>>['a'..'c'] 03:15:22 Couldn't match expected type `m a' 03:15:22 against inferred type `GHC.Types... 03:15:23 ?src inits 03:15:23 inits [] = [[]] 03:15:23 inits (x:xs) = [[]] ++ map (x:) (inits xs) 03:15:25 bah 03:15:31 > (tail . inits >=> permutations) "abcd" 03:15:32 ["a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad","bc... 03:15:32 CakeProphet: looks good to me 03:15:35 > iterate (take 1) ['a' ..] >>= permutations 03:15:36 ["abcdefghijklmnopqrstuvwxyz{|}~\DEL\128\129\130\131\132\133\134\135\136\13... 03:15:39 oh oops 03:15:49 > iterate (take 1) ['a' .. 'z'] >>= permutations 03:15:50 ["abcdefghijklmnopqrstuvwxyz","bacdefghijklmnopqrstuvwxyz","cbadefghijklmno... 03:15:53 CakeProphet: In fact, omitting the empty string is really arbitrary 03:15:54 > (inits >=> permutations) "abcd" 03:15:55 ["","a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad",... 03:15:56 OH SNAP MOST ELEGANT 03:16:07 uhh im backwards 03:16:21 elliott: no the empty string is there, you just have to get to the end of the list. 03:16:24 :) 03:16:28 CakeProphet: how inelegant. 03:16:29 > (inits >=> permutations) "01" 03:16:30 ["","0","01","10"] 03:16:36 hm wait 03:16:38 :t >=> 03:16:38 parse error on input `>=>' 03:16:43 :t (>=>) 03:16:43 forall a (m :: * -> *) b c. (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c 03:16:46 > [1..] >>= flip replicateM "01" 03:16:48 ["0","1","00","01","10","11","000","001","010","011","100","101","110","111... 03:16:49 >=> is like composition but for cool dudes 03:16:50 oh 03:16:56 some sort of bind composition? 03:17:01 > inits "abcd" 03:17:01 ["","a","ab","abc","abcd"] 03:17:06 (>>>) is cool too 03:17:10 > inits (cycle "abcd") 03:17:11 ["","a","ab","abc","abcd","abcda","abcdab","abcdabc","abcdabcd","abcdabcda"... 03:17:18 > (inits . cycle >=> permutations) "01" 03:17:19 ["","0","01","10","010","100","010","100","001","001","0101","1001","0101",... 03:17:28 dammit, misses 11 03:18:09 I would say that is equally elegant to using replicateM and bind... 03:18:16 it doesn't work 03:18:18 so it's irrelevant 03:18:37 elliott: i have a hunch you are never actually producing the string "b" 03:18:48 > (inits . cycle) "01" 03:18:50 ["","0","01","010","0101","01010","010101","0101010","01010101","010101010"... 03:18:58 > (cycle) "01" 03:18:59 "01010101010101010101010101010101010101010101010101010101010101010101010101... 03:19:05 > (map cycle . inits) "01" 03:19:07 ["*Exception: Prelude.cycle: empty list 03:19:11 > (map cycle . tail . inits) "01" 03:19:13 ["0000000000000000000000000000000000000000000000000000000000000000000000000... 03:19:15 :D 03:19:19 :t flatten 03:19:19 forall a. Tree a -> [a] 03:19:28 > (`replicateM` ['a'..'z']) =<< [0..] 03:19:29 ["","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r"... 03:19:31 :3 03:20:31 im going to rip your soul from its seams 03:20:33 hmm 03:20:37 lets expand that 03:20:44 concatMap (`replicateM` ['a'..'z']) [0..] 03:20:53 concatMap (\n -> replicateM n ['a'..'z']) [0..] 03:20:55 ?src replicateM 03:20:55 replicateM n x = sequence (replicate n x) 03:21:04 concatMap (\n -> sequence (replicate n ['a'..'z'])) [0..] 03:21:16 > concatMap (\n -> sequence (replicate n ['a'..'z'])) [0..] 03:21:17 ["","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r"... 03:21:26 > (concat . concat . map (\n -> replicate n ['a'..'z'])) [0..] 03:21:28 "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuv... 03:21:39 > sequence ["abc","def"] 03:21:40 ["ad","ae","af","bd","be","bf","cd","ce","cf"] 03:21:42 ugh 03:21:48 > zip ["abc","def"] 03:21:49 Overlapping instances for GHC.Show.Show 03:21:49 ([b] -... 03:22:00 > foldr zip fuck this shit ["abc","def"] 03:22:01 Not in scope: `fuck'Not in scope: `this'Not in scope: `shit' 03:22:14 > transpose ["abc","def"] 03:22:15 ["ad","be","cf"] 03:22:17 eyah working backwards is probably not the best way. 03:23:48 > return . length . (`replicateM` "abc") =<< [0..] 03:23:52 mueval-core: Time limit exceeded 03:24:03 > (return . length . (`replicateM` "abc")) =<< [0..] 03:24:07 mueval-core: Time limit exceeded 03:24:14 well, nevermind I guess. 03:24:25 > (return . length . (`replicateM` "abc")) =<< [0..5] 03:24:27 [1,3,9,27,81,243] 03:25:28 > (length . (`replicateM` "abc")) <$> [0..] 03:25:33 mueval-core: Time limit exceeded 03:25:42 ...see, not sure why it times out. 03:27:50 -!- augur has quit (Read error: Connection reset by peer). 03:28:09 -!- augur has joined. 03:29:05 Haskell sure is awesome. 03:29:32 I'm thinking it should be possible to use combinators to define rhythmic patterns with multiple instruments. 03:31:33 > ['a'..] >>= permutations . enumFromTo 'a' 03:31:35 ["a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad","bc... 03:31:47 oh my. 03:32:08 agh that only gets the permutations not combinations :( 03:32:44 yeah, to get the combinations you'll probably have to use some other function 03:32:50 like... replicateM 03:32:52 :P 03:32:54 no never 03:33:51 also it's not exactly the same because it adds a character on each length change 03:33:58 this is probably intentional or something? 03:35:13 > dropWhile ((<30).length) $ ['a' ..] >>= permutations . enumFromTo 'a' 03:35:17 mueval-core: Time limit exceeded 03:35:19 lol 03:35:26 > dropWhile ((<26).length) $ ['a' ..] >>= permutations . enumFromTo 'a' 03:35:29 mueval-core: Time limit exceeded 03:35:32 awww. 03:35:56 monqy: the ante-zepto reader is kind of ugly :( 03:36:00 damn you O(n) length calculation for linked lists. 03:36:05 CakeProphet: um 03:36:10 CakeProphet: length fails on infinite lists, if that matters 03:36:19 it doesn't in this case. 03:36:22 > dropWhile ((<26).length) $ (['a' ..] >>= permutations . enumFromTo 'a') 03:36:26 mueval-core: Time limit exceeded 03:36:42 ....whut? 03:36:49 :t dropWhile 03:36:52 forall a. (a -> Bool) -> [a] -> [a] 03:37:41 yeah it's just taking too long because of the thousands of length computations. 03:38:11 well, maybe hundreds since it's permutations? I don't feel like doing the math... :P 03:38:46 > (['a' ..] >>= permutations . enumFromTo 'a') 03:38:48 ["a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad","bc... 03:39:48 > map(length &&& head) . group . map length $ (['a' ..] >>= permutations . enumFromTo 'a') 03:39:52 mueval-core: Time limit exceeded 03:40:00 > take 5 $ map(length &&& head) . group . map length $ (['a' ..] >>= permutations . enumFromTo 'a') 03:40:02 [(1,1),(2,2),(6,3),(24,4),(120,5)] 03:40:18 CakeProphet: grows like factorial 03:41:05 yeah... 03:41:10 > scanl (*3) 1 03:41:11 Occurs check: cannot construct the infinite type: a = b -> a 03:41:12 -!- azaq23 has quit (Ping timeout: 240 seconds). 03:41:20 > iterate (*3) 1 03:41:21 [1,3,9,27,81,243,729,2187,6561,19683,59049,177147,531441,1594323,4782969,14... 03:41:47 CakeProphet: that's why the first one timed out :P 03:41:56 indeed. 03:42:11 I wanted to see further into the list, when it started using non-alphabetic characters. 03:42:34 ...for no particular reason at all. you could easily just change the starting point of the alphabet, but that's not as fun. 03:42:39 in fact i vaguely recall lambdabot calculates even more before actually cutting it off. or used to. 03:43:18 > iterate (\x -> if x > 80 then let y = y in y else x+1) 1 03:43:21 mueval-core: Time limit exceeded 03:43:35 > iterate (\x -> if x > 200 then let y = y in y else x+1) 1 03:43:38 whut? 03:43:39 mueval-core: Time limit exceeded 03:43:44 > iterate (\x -> if x > 500 then let y = y in y else x+1) 1 03:43:45 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28... 03:43:53 > iterate (\x -> if x > 300 then let y = y in y else x+1) 1 03:43:54 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28... 03:44:00 > iterate (\x -> if x > 250 then let y = y in y else x+1) 1 03:44:04 mueval-core: Time limit exceeded 03:44:09 > iterate (\x -> if x > 275 then let y = y in y else x+1) 1 03:44:11 er 03:44:12 that's... odd 03:44:13 mueval-core: Time limit exceeded 03:44:22 > iterate (\x -> if x > 225 then let y = y in y else x+1) 1 03:44:26 mueval-core: Time limit exceeded 03:44:33 > iterate (\x -> if x > 215 then let y = y in y else x+1) 1 03:44:33 is let time consuming or something? 03:44:36 mueval-core: Time limit exceeded 03:44:45 CakeProphet: um that let is an infinite loop 03:44:54 ...oh, right. 03:44:58 > iterate (\x -> if x > 2108 then let y = y in y else x+1) 1 03:44:59 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28... 03:45:03 > iterate (\x -> if x > 208 then let y = y in y else x+1) 1 03:45:06 mueval-core: Time limit exceeded 03:45:14 too much Perl. :P let y = y in y looked like a nop. 03:45:31 er wait what, i'm binary searching in the wrong direction 03:45:47 > iterate (\x -> if x > 288 then let y = y in y else x+1) 1 03:45:48 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28... 03:45:53 > iterate (\x -> if x > 280 then let y = y in y else x+1) 1 03:45:56 mueval-core: Time limit exceeded 03:46:01 > iterate (\x -> if x > 284 then let y = y in y else x+1) 1 03:46:02 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28... 03:46:06 > iterate (\x -> if x > 282 then let y = y in y else x+1) 1 03:46:07 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28... 03:46:13 > iterate (\x -> if x > 281 then let y = y in y else x+1) 1 03:46:16 mueval-core: Time limit exceeded 03:46:28 > length $ show [1..281] 03:46:29 1017 03:46:33 > length $ show [1..280] 03:46:34 1013 03:46:42 @pl iterate (\x -> if x > 281 then let y = y in y else x+1) 1 03:46:42 iterate (ap (flip if' (fix id) . (> 281)) (1 +)) 1 03:47:16 CakeProphet: so it calculates a bit more than the first 1000 characters, even if the resulting string will be cut off afterwards 03:47:46 > length $ show [1..282] 03:47:47 1021 03:48:13 the value of let y = y in y is <> 03:48:13 duh 03:48:19 (ghc pun, the best kind of pun) 03:48:23 wait its not even a pun 03:48:25 its just a ghc... joke 03:48:29 well lambdabot doesn't use blackholing 03:50:55 > drop 1000 . take 1013 . show . iterate (*3) $ 1 03:50:57 "2042447694583" 03:51:01 oops 03:51:13 > drop 960 . take 1013 . show . iterate (*3) $ 1 03:51:14 "3201,127173474825648610542883299603,38152042447694583" 03:53:13 CakeProphet: so that's about how far it was trying to calculate your (length . (`replicateM` "abc")) <$> [0..] thing :P 03:56:59 > (sequence . (flip replicate <*> length) <=< inits) ['a' ..] 03:57:00 ["","a","aa","ab","ba","bb","aaa","aab","aac","aba","abb","abc","aca","acb"... 03:57:06 victory 03:59:15 > nub . (>>= subsequences) . permutations $ "abc" 03:59:17 ["","a","b","ab","c","ac","bc","abc","ba","bac","cb","ca","cba","bca","cab"... 03:59:25 monqy: i see no "b" there 03:59:33 no victory :( 03:59:36 oerjan: the character set grows with length. 03:59:52 hm 04:00:52 > nub . (>>- subsequences) . permutations $ "abc" 04:00:53 ["","a","b","ab","c","ac","bc","ba","abc","cb","bac","ca","cba","bca","cab"... 04:01:04 not sure what this >>- thing is. 04:01:23 it's from Control.Monad.Logic 04:01:46 > permutations $ [1..] 04:01:46 [[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,2... 04:01:47 fair (>>=) for doing nondeterminism stuff, but really you want to use Logic or LogicT not [] 04:01:48 it's like >>= but interleaves the results from different values in the first part 04:02:15 > map (take 5) $ permutations $ [1..] 04:02:16 [[1,2,3,4,5],[2,1,3,4,5],[3,2,1,4,5],[2,3,1,4,5],[3,1,2,4,5],[1,3,2,4,5],[4... 04:02:25 > nub . (>>= subsequences) . permutations $ ['a'..'z'] 04:02:27 ["","a","b","ab","c","ac","bc","abc","d","ad","bd","abd","cd","acd","bcd","... 04:02:29 > [1..] >>- flip replicateM [1..] 04:02:30 oerjan: not really sure I understand... 04:02:31 [[1],[1,1],[2],[1,1,1],[3],[1,2],[4],[1,1,1,1],[5],[1,3],[6],[1,1,2],[7],[1... 04:02:47 ah 04:03:00 that's... strange. I don't really get the ordering. 04:03:01 CakeProphet: look at that example. if i used >>= it would never get beyond the length 1 lists 04:03:13 ah yeah I see that. 04:03:30 "hello" >>- repeat 04:03:34 > "hello" >>- repeat 04:03:35 "hehlhehlhehlhehohehlhehlhehlhehohehlhehlhehlhehohehlhehlhehlhehohehlhehlhe... 04:03:37 > "hello" >>= repeat 04:03:37 "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh... 04:03:39 so that would be useful for things like getting the set of all strings matched by a regular expression. 04:03:40 -!- pikhq has joined. 04:03:47 -!- pikhq_ has quit (Ping timeout: 252 seconds). 04:03:54 CakeProphet: it is rather simplistic. the first value is used every second time, the second value every fourth time, etc. 04:04:05 CakeProphet: yeah probably 04:04:33 I should try using/understanding the actual Logic/LogicT sometime 04:05:04 (I have the paper but it's on my reading pile) 04:06:02 > return "a" <|> return "b" :: Logic String 04:06:03 No instance for (GHC.Show.Show 04:06:03 (Control.Monad.Logic.Log... 04:06:06 darn 04:06:22 :t return "a" <|> return "b" :: Logic String 04:06:22 Logic String 04:06:37 :t runLogic 04:06:38 forall a r. Logic a -> (a -> r -> r) -> r -> r 04:06:45 yes I'll have to read about Logic as well. 04:06:51 hm how does that work 04:07:25 oh right 04:07:54 elliott: I win at finding an alternative to my own already very elegant code. OH YEAAAH. 04:08:06 but the alternative is less elegant. 04:08:07 > (return "a" <|> return "b" :: Logic String) ((.).(:)) "" 04:08:08 Couldn't match expected type `t1 -> t2 -> t' 04:08:08 against inferred type ... 04:08:09 er 04:08:13 > runLogic (return "a" <|> return "b" :: Logic String) ((.).(:)) "" 04:08:14 Couldn't match expected type `[GHC.Base.String]' 04:08:14 against inferred t... 04:08:16 but it implements a degree of common sense that the other lacks. 04:08:17 darn 04:08:23 > runLogic (return "a" <|> return "b" :: Logic String) ((:)) "" 04:08:24 Couldn't match expected type `[GHC.Types.Char]' 04:08:24 against inferred ty... 04:08:34 oh 04:08:41 > runLogic (return "a" <|> return "b" :: Logic String) ((:)) [] 04:08:42 ["a","b"] 04:09:03 oh my. 04:09:27 CakeProphet: on the plus side, it was obvious from the type of runLogic :P 04:09:35 indeed. 04:10:21 looks like <|> constructs a fold over the function supplied by runLogic 04:10:32 ? 04:10:37 > runLogic (return "a" `interleave` return "b" `interleave` return "c" :: Logic String) ((:)) [] 04:10:37 ["a","c","b"] 04:10:54 (<|>) is from Alternative 04:10:57 :t (<|>) 04:10:58 forall (f :: * -> *) a. (Alternative f) => f a -> f a -> f a 04:11:17 > "abc" <|> "def" 04:11:17 "abcdef" 04:13:01 CakeProphet: um <|> is backtracking choice, i guess. and then instead of concatenating the choices directly, the r -> r trick gives you an optimization similar to using ShowS instead of (++). i guess. 04:15:38 > foldl' interleave "" $ map return "scramble" 04:15:39 "selbmarc" 04:15:53 > foldr interleave "" $ map return "scramble" 04:15:54 "scramble" 04:16:02 disappointing :P 04:16:41 > printStrLn ":D" 04:16:42 Not in scope: `printStrLn' 04:16:48 > putStrLn ":D" 04:16:49 04:16:53 Lymee: no IO in lambdabot 04:16:56 > execute-your-damn-io 04:16:57 Not in scope: `execute'Not in scope: `your'Not in scope: `damn'Not in scope... 04:17:13 Heh. 04:17:15 Lymee: try EgoBot 04:17:19 Guess sandboxing is /really/ easy in Haskell. 04:18:06 Lymee: that's the idea. although they are also excluding some type extensions which can be used for loopholes, iirc 04:18:53 I wonder. 04:19:02 How low level of stuff you can you do with pure Haskell? 04:19:06 anything which can be used to implement unsafeCoerce, i assume 04:19:16 define "pure" :P 04:21:02 Heh. 04:21:04 How hard would it be to implement a kernel if you added a few low level CPU-specific assembly routines as IO actions? 04:21:12 -!- derrik has joined. 04:22:00 Lymee: it's not that easy 04:22:08 you need garbage collected memory management, at least 04:22:19 it's very hard to write haskell code that doesn't cons :D 04:22:35 Lymee: basically you need an RTS. 04:22:48 GHC's depends on libc, but not _that_ much of it 04:23:06 So you'd need to implement some low level functions that Haskell depends on. 04:23:26 no. 04:23:27 as I said: you need an RTS. 04:23:31 that is more than just a few functions. 04:23:56 GHC's is 50,000 lines, a quick google tells me 04:24:10 although you hardly need the byte-code interpreter, or profiling 04:24:22 and the memory manager is likely to be rather suboptimal for an OS... 04:24:32 So... 04:24:42 Maybe a Haskell userspace might be a less horrible idea. 04:24:49 there are multiple Haskell kernels. 04:24:59 it's just not as easy as you seem to want :) 04:25:02 -!- azaq23 has joined. 04:25:49 hOp, House, that updated fork of House that I forget the name of, and that other project I forget the name of 04:34:38 haskell kernels do horrible things to your memory. also, amortization. 04:36:41 oerjan: is this a pun or an opinion :D 04:36:52 yes. 04:37:17 also i just thought i'd write down that word while i remembered it. 04:37:19 oerjan: WHICH 04:37:23 :D 04:41:16 ?hoogle showAtBase 04:41:17 No results found 04:41:22 ?hoogle base 04:41:23 package base 04:41:23 Text.Html base :: String -> HtmlAttr 04:41:23 Text.XHtml.Frameset base :: String -> HtmlAttr 04:41:24 ?hoogle showBase 04:41:24 No results found 04:41:25 :t showIntAtBase 04:41:26 forall a. (Integral a) => a -> (Int -> Char) -> a -> String -> String 04:42:00 hmm what's the third argument 04:42:23 > showIntAtBase 2 intToDigit 255 "" 04:42:24 "11111111" 04:42:32 oh 04:42:33 right 04:42:36 :D 04:44:07 -!- augur has quit (Read error: Connection reset by peer). 04:44:18 -!- augur has joined. 04:44:31 -!- IanWizard has joined. 04:45:00 I made a program in TeX for overlaying every page of output with a grid. I also made a program in TeX for overlaying specific pages with pictures from plain PBM files. 04:45:15 The #brainfuck topic said to come here. 04:47:29 indeed 04:47:50 oerjan: i feel our current topic may give some UNWARRANTED FIRST IMPRESSIONS to newbies :D 04:48:32 you misspelled ENTIRELY ACCURATE 04:48:53 I've been googling, but can't find anything... I've never used BF before, would it be possible to read from a file and do math based on what's in the file, with BF? 04:49:11 basically, does it support reading in a file in any way? 04:49:19 IanWizard: only standard input 04:49:25 IanWizard: No, it only supports (in UNIX terms) stdin and stdout. 04:49:38 which may come from a file though 04:49:49 You could redirect stdin from a file 04:50:14 IanWizard: CLEARLY YOU NEED PSOX 04:50:14 ^ 04:50:16 [injoke rimshot] 04:50:29 elliott: hey i was pondering whether to mention PSOX 04:50:42 I was *trying* to mention PSOX, but had forgotten the name. 04:51:12 * Sgeo still has PSOX on ping, apparently 04:51:17 psox psox psox psox psox psox psox psox psox psox psox 04:51:50 IanWizard: PSOX is a wrapping layer which can be used to give BF (and possibly other esolangs) extra capabilities 04:52:01 What does "PSOX on ping" mean? 04:52:20 zzo38, I have my client set up to hilight if it sees PSOX just the same as if it saw my nick 04:52:20 zzo38: that his client pings him when it's mentioned 04:52:49 oerjan: it's also very dead 04:52:56 i don't think we need to _recommend_ it to anyone ;D 04:53:21 It's only dead because people other than me had 0 interest, so I lost interest 04:57:04 -!- CakeProphet has quit (Ping timeout: 264 seconds). 04:58:38 -!- augur has quit (Read error: Connection reset by peer). 04:58:47 -!- augur has joined. 05:01:42 -!- augur has quit (Read error: Connection reset by peer). 05:01:59 -!- augur has joined. 05:03:27 Now you can include picture in your document while still remaining device independent, not using any specials or nonstandard fonts or anything like that. The quality is not perfect but it should be good enough for some purposes. However, you have to decide the placement manually. 05:04:51 -!- augur has quit (Read error: Connection reset by peer). 05:05:12 -!- augur has joined. 05:06:00 One command might be useful in TeX, is the command \hidecs takes a control sequence of two or more letters and damages its entry in the hash table. 05:11:13 -!- augur has quit (Read error: Connection reset by peer). 05:11:25 -!- augur has joined. 05:13:53 -!- IanWizard has quit (Quit: Leaving). 05:19:10 @hoogle Alternative a => [a x] -> a [x] 05:19:11 Control.Applicative many :: Alternative f => f a -> f [a] 05:19:11 Control.Applicative some :: Alternative f => f a -> f [a] 05:19:11 Prelude sequence :: Monad m => [m a] -> m [a] 05:19:54 > many . map pure $ "abc" :: String 05:19:55 Couldn't match expected type `GHC.Types.Char' 05:19:55 against inferred type... 05:20:02 :t many . map pure $ "abc" 05:20:03 forall (f :: * -> *). (Applicative f) => [[f Char]] 05:20:21 oh wait 05:20:38 @hoogle Alternative a => [a x] -> a x 05:20:39 Data.Foldable asum :: (Foldable t, Alternative f) => t (f a) -> f a 05:20:39 Control.Monad msum :: MonadPlus m => [m a] -> m a 05:20:39 Control.Applicative (<|>) :: Alternative f => f a -> f a -> f a 05:23:05 I do not get haskell's existential qualifiers 05:23:13 hm? 05:23:40 Like, I understand how they are used 05:24:02 what don't you understand? 05:24:08 -!- zzo38 has left. 05:24:12 it may help to know that typeclasses can't always be resolved statically 05:24:15 and there's typeclass dictionaries for this purpose 05:24:22 (a lot of people think all typeclass resolution is done at compile-time, which is just not true) 05:24:42 so e.g. data Foo = Foo (forall a. (Num a) => a) will store the Num dictionary in there 05:24:45 or I forget the syntax, but yeah 05:25:37 but I do not understand you get from the universal qualifier to using it for existential purposes 05:26:15 like, (forall a. Num a => a) is something that is all Nums 05:26:36 data Foo = forall a. Num a => Foo a 05:27:20 oerjan: So is Foo a mean that "a" is a Num or that "a" is all Nums? 05:27:26 like, (forall a. Num a => a) is something that is all Nums 05:27:26 no 05:27:35 well 05:27:37 that's not a good type to use 05:27:41 because i got it wrong :) 05:27:53 coppro: it means that a is a Num 05:27:58 but note that the type of (Foo x) is Foo 05:28:00 coppro: it means that for all a s.t. Num a, Foo a is a value of type Foo a 05:28:02 not (Foo a) for some a 05:28:05 oerjan: nope 05:28:20 er oops 05:28:24 *of type Foo 05:28:26 -!- derrik has quit (Quit: left). 05:28:27 coppro: 05:28:35 elliott@katia:~$ cat >foo.hs 05:28:35 data Foo = forall a. Num a => Foo a 05:28:35 elliott@katia:~$ ghci -XExistentialQuantification foo.hs 05:28:35 *Main> :t Foo 9 05:28:35 Foo 9 :: Foo 05:28:35 *Main> :t Foo 05:28:37 Foo :: Num a => a -> Foo 05:28:41 hth :P 05:29:26 coppro: it is essentially defining an existential _type_ by writing down the _universal_ type of its constructor 05:29:32 oerjan: Oh ok 05:29:43 thanks 05:30:21 oerjan: what, that is the last thing i'd expected to have worked as an explanation... 05:30:27 clearly i misunderstood the nature of coppro's misunderstanding :D 05:30:34 coppro: although that is much clearer with the GADT syntax 05:30:37 yeah 05:30:39 data Foo where 05:30:42 Foo :: (Num a) => a -> Foo 05:30:48 implicit "forall a." after that :: ofc 05:30:54 that's why i showed the constructor type 05:30:57 above 05:32:57 yeah I really like GADT 05:43:42 -!- oklopol has joined. 05:43:49 * oklopol feeds elliott 05:43:55 sup 05:43:56 NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 05:44:07 sup U 05:44:09 * oerjan prepares the gremling catcher 05:44:10 finally a straight non-nerd in the channel!!!!!!!!!! 05:44:13 *-g 05:44:18 OUR LONG TEMPORARY NATIONAL OERJAN-INDUCED NIGHTMARE IS OVER 05:44:58 elliott: would you have been available this week out of q 05:45:13 'fraid not 05:45:15 good 05:45:31 because i'm here now 05:45:35 oh is that good, im gonna go drop everything then and get on a plane somewhere to do something totally non-required 05:45:37 back on #eso 05:45:58 thats the ESO channel stupid 05:46:18 european space organization 05:46:23 it's also the nickname of #esoteric 05:47:05 my nickname for #esoteric is esoteric 05:47:21 well your nickname is wrong then 05:47:22 that couldn't possibly cause any confusion whatsoever 05:47:25 monqy: oh? what is it? 05:47:36 esoteric 05:47:48 yes, you said that, but what _is_ it 05:48:28 :D 05:48:39 i love irc 05:49:57 very ircsome 05:50:10 i still don't really get " oh is that good, im gonna go drop everything then and get on a plane somewhere to do something totally non-required" 05:50:20 oklopol: 05:50:20 oklopol> elliott: would you have been available this week out of q 05:50:20 'fraid not 05:50:21 good 05:50:24 wanted to do something really availableish 05:50:32 "look at me all doing these things because they sound like fun" 05:50:38 "coulda been all with oklopol but i hate him haha" 05:50:53 ah 05:51:13 yeah well it's not like i actually wanted to meet you you piece of nigger 05:51:30 racism is illegal oklopol 05:52:00 who's being raciist 05:52:02 *racist 05:52:17 no one 05:52:41 they wouldn't let a black guy in my room in paris because he was black 05:53:10 why have neither xkcd nor girl genius updated yet :( 05:53:34 oerjan outs himself as an xkcd reader 05:53:43 no oerjan............ no stop.................. 05:53:46 it's not precisely a secret 05:53:47 wow there's an oxymoron 05:53:59 (should be deprived of)oxy(gen )moron 05:53:59 girlzngames hasnt updated for a month :( 05:54:00 what oxymoron? 05:54:20 oklopol: ARE YOU INSULTING THE GREAT AGATHA HETERODYNE? 05:54:48 monqy: is that bad, i looked at it but im too tired to really interpret 05:55:06 * elliott checks. unfortunately, ctrl-alt-del updated today. 05:55:09 i will find a good one 05:55:12 oerjan: no i was being sexist because i had a good bigot spree going on 05:55:17 ah. 05:55:29 you norwegian fisher homo 05:55:36 monqy: its on the bad webcomics wiki along with every other webcomic in existence 05:55:40 http://www.girlzngames.com/comics/2010-12-22-Christmas-Gamer-Greetings.jpg classic 05:55:49 oh 05:55:51 wow 05:55:56 yes 05:55:56 that's impressive 05:56:30 http://www.girlzngames.com/comics/2011-01-05-Feel-the-Love.jpg 05:56:42 monqy: have you ever read Minimum Security, it's this anarcho-primitivist comic, and it's just so amazing 05:56:47 it stars a bunch of animals 05:56:48 and they like 05:56:53 fuck up nuclear power plants 05:56:55 and free entire zoos 05:56:57 sounds amazing 05:56:58 and have guns 05:56:59 and jesus 05:57:03 its just so disturbing 05:57:17 http://stephaniemcmillan.org/ 05:57:19 guh where is it 05:57:25 oh maybe its the comic category 05:57:39 Minimum Security has gone through several phases. From 1998-2004, it was a weekly editorial cartoon, commenting on the most egregious outrages of the day. In 2005, I started using regular characters. The cartoon got picked up by United Media’s comics.com, where it evolved into a more humorous, gag-a-day comic strip with some sequential stories. 05:57:41 d/win 4 05:57:43 oh my god shut up just give me a link 05:57:55 monqy: but yeah it's lit. the scariest comic 05:58:01 Victoria: A guinea pig with a vision, she’s the brains of the Resistance and its Minister of Agit-Prop. She’s all about plan, strategy, tactics, ideology and method. Possessing logic, clarity and a magnificent ego, she fancies herself the furry, potato-shaped mastermind of the revolution. 05:58:10 Bananabelle: Kranti’s best friend since preschool, Bananabelle is a lovely, cheerful person with a good heart, but her loyalties are divided. A sustainable economy, or swanky shoes? She’d like both. She’ll help out at a community garden or attend a protest, but she’s not sure about all this revolution business – a little love and being a good example ought to be sufficient. 05:58:16 Chip: The cultured son of a major corporate bigwig, he has everything except the one thing he really craves: Kranti’s love. He’d settle for her lukewarm indifference, but he doesn’t even get that. When he calls her on his diamond-studded, solid gold cell phone, she never answers — alas, alas. Bananabelle, however, thinks he’s the hottest thing since this season’s Manolo Blahniks. 05:58:18 jesus 05:58:22 oh god 05:58:23 Bunnista: He’s an action-oriented rabbit, furious about the shrinking wilderness, the vivisection that took his eye, and pretty much everything else as well. Impatient with the fine points of political philosophy, all he wants is to destroy human civilization. His favorite method is blowing up infrastructure. 05:58:25 that's the best character 05:58:33 THE VIVISECTION THAT TOOK HIS EYE 05:58:44 and pretty much everything else as well 05:58:50 monqy: pretty sure that Bunnista is a protagonist btw 05:58:59 "Impatient with the fine points of political philosophy, all he wants is to destroy human civilization. His favorite method is blowing up infrastructure." <-- good guy 06:00:13 is he actually supposed to be a good guy or does minimum security not have real life morals 06:00:24 either way what 06:00:33 either way/regardless 06:01:09 monqy: anarcho-primitivist remember 06:01:11 so yes, no morals 06:01:28 -!- azaq23 has quit (Quit: Leaving.). 06:01:51 i meant like how fairy tales have moral lessons is minimal security supposed to be how it's good to be angry and blow up infrastructure 06:02:13 * oklopol likes many of the new xkcd's 06:02:19 i thnk its just about how all civilisation is bad and anybody who doesnt want to blow it up is bad 06:02:36 told through really disturbing ~jokes~ with anthropomorphic animals doing terrible (= good) things 06:03:29 who cares about moral lessons when there's explosions and violence involved 06:03:56 philosophy crap < explosions and violence < sex 06:07:53 http://en.wikipedia.org/wiki/File:Minimumsecurity.jpg oh wow 06:07:55 is this real 06:07:56 was this published 06:11:39 ?unmtl StateT s m a 06:11:39 s -> m (a, s) 06:12:39 ?unmtl giytvfrde 06:12:39 giytvfrde 06:13:26 i think i won't do anything today or tomorrow or the day after that or the day after that or the day after that 06:13:38 or the day before today 06:13:48 i did a lot yesterday 06:15:27 -!- augur has quit (Read error: Connection reset by peer). 06:15:38 -!- augur has joined. 06:15:46 for instance i learned that if i want to get a hot barely legal girlfriend all i have to do is to stop working, use drugs for the next 10 years and get some brain damage 06:16:44 seemed to have worked for this one dude at least, he had a rather disfigured face as well 06:17:28 ?unmtl RWST a b (RWST b a (RWST a b ST)) a 06:17:28 err: `RWST a b (RWST b a (RWST a b ST)) a' is not applied to enough arguments. 06:17:35 oerjan: where's IO's Monad instance :( 06:17:53 ?src IO >>= 06:17:53 Source not found. I feel much better now. 06:18:00 ?src IO (>>=) 06:18:00 m >>= k = bindIO m k 06:18:09 ?src bindIO 06:18:09 Source not found. I've seen penguins that can type better than that. 06:18:22 i meant in ghc :P 06:18:23 * elliott grep 06:18:24 s 06:18:24 penguins don't have fingers 06:18:49 ah, GHC/Base 06:18:51 .lhs 06:18:54 Penguins *do* have phalanges, however. 06:18:54 for bindIO 06:18:58 and the instance 06:19:46 elliott: http://www.haskell.org/ghc/docs/latest/html/libraries/base-4.3.1.0/src/GHC-Base.html#Monad 06:20:09 pikhq: well who doesn't 06:20:23 oklopol: Non-vertebrates. 06:20:40 And a very small handful of vertebrates. 06:21:09 this is bizarre 06:21:38 if i say non-vertebrates don't count, am i being phylist or what? 06:21:58 the instance defines (>>) in terms of (>>=), and exactly the same of as the default instance, but there's thenIO, which looks like it does the (>>) stuff 06:22:05 oklopol: There's much more non-vertebrates than vertebrates, even if we only consider the animal clade. 06:22:09 oh vertebrates is a subphylum 06:22:42 pikhq: there's also more primes than non-vertebrates, but you can't really have a conversation with most of them 06:23:08 at least not a very *product*ive one 06:23:18 Also, fuck Linnaean taxonomy. 06:23:49 that's a very taxonomist thing to say 06:23:58 Clades are the only form of super-species grouping that make any sense at all. 06:24:04 all taxonomists are created equal you know 06:24:08 *taxonomies 06:26:43 * pikhq dislikes classification that is devoid of meaning 06:26:47 ?unmtl RWST a b ST a 06:26:47 err: `RWST a b ST a' is not applied to enough arguments, giving `/\A. a -> ST -> a (A, ST, b)' 06:26:51 * pikhq likes even *less* classification with negative meaning. 06:27:29 ?unmtl RWST a b m a 06:27:29 err: `RWST a b m a' is not applied to enough arguments, giving `/\A. a -> m -> a (A, m, b)' 06:27:33 ?unmtl RWST a b m a x 06:27:34 a -> m -> a (x, m, b) 06:27:40 how well does having a tree work for species classification? i mean usually you get the problem that you have to choose the order of branchings, say when you want to separate blue animals from red and animals with big dicks from ones with small dicks; does the fact that you will often be kind of following when the species actually temporally branched solve this 06:27:51 do you get what i mean 06:28:07 ?unmtl RWS a b m x 06:28:07 a -> m -> (x, m, b) 06:28:19 oh hm 06:28:30 oklopol: Tolerably, but you do get very confusing edge cases. 06:28:30 oerjan: hm implementing IOT is hard 06:28:35 (things to say to scare oerjan) 06:28:39 Ring species despise you. ;) 06:28:54 ?unmtl RWST a b c (RWST b c a (RWST c a b ST)) a 06:28:54 a -> c -> b -> a -> c -> b -> ST (a, c, b, a, c, b, a) 06:29:28 Though, that problem is pretty inherent in any model which assumes that there are strict boundaries delimiting "species". 06:29:36 When there really aren't. 06:30:27 With the common definition of "Can they breed together?", how do you distinuish between different asexual species? 06:30:45 can they breed together is problematic because of aforementioned rings 06:30:51 i guess 06:30:54 also 06:31:22 elliott: SMTT. fnord. 06:31:26 that it's not a transitive relation 06:31:29 er 06:31:35 *elliott: STMT. fnord. 06:31:41 nice :D 06:31:43 oerjan: i've written STT, mind you 06:31:50 oh maybe i should just reuse it? 06:31:53 it's kind of lame though 06:31:56 Sgeo: The mere notion of what a "species" *is* is one of the big questions in biology, TBH. 06:31:59 wait, it only actually handles STRefs 06:32:07 newtype STT s m a = STT (STTState s -> m (a, STTState s)) 06:32:08 well sort of 06:32:09 but anyway 06:32:31 elliott: ghc _does_ make IO almost equivalent to ST RealWorld... 06:32:48 (only a couple newtype wrappings away) 06:33:05 ?src IO 06:33:05 Source not found. :( 06:33:12 NO FUN 06:33:15 oerjan: yeah, but mine is a pure-apart-from-unsafeCoerce-for-heterogeneous-maps STRef-only ST 06:33:17 Sgeo: But, generally, one simply picks a definition that makes sense in the context you're dealing in. 06:33:22 so it's not really applicable here 06:34:11 Sgeo: With asexual species, one would most generally resort to "things with a preponderance of similar traits." or some such. 06:35:18 we could have aRb if creature a can breed with creature b, then define species as equivalence classes of S, another equivalence relation such that aSb iff aRb and (for all c, aRc iff bRc). 06:35:19 With relatively clear boundaries for reproduction, one uses the "Can they breed together?" bit... 06:35:32 then asexual thingies would of course be species themselves 06:35:56 With ring species, well, *wince* 06:36:07 pikhq: well mine takes that into account 06:36:24 but of course if there's a very continuous ring, then you will get everyone in a different species 06:36:39 oklopol: Fortunately, that's not what happens. 06:36:47 * oerjan wonders if there are sphere species 06:37:02 Instead, you get individual groups which can interbreed with the neighboring groups. 06:37:14 they'd have to live both in the arctic, antarctic and the tropics, for one thing... 06:37:21 if you have "species" A, B and C such that aRb and bRc for all x \in X, but never aRc, then my definition makes A, B and C different species 06:37:23 If it weren't for that biologists would give up now. :P 06:37:39 oklopol: That is a neat definition. 06:37:48 pikhq: standard trick in math really 06:37:57 oh wait 06:38:00 oklopol: Though only works with species that are capable of breeding. :) 06:38:04 pikhq: yep 06:38:23 Fortunately, dealing with asexual entities is less *confusing*. 06:38:53 Because you get groups with clear, distinct traits rather than a continuum of interbreeding groups. 06:39:07 (though gene transfer hates you) 06:39:16 oklopol: define R better. do you mean "mate and produce viable offspring?" 06:39:38 quintopia: choose your favorite 06:39:50 quintopia: Presumably "mate and produce viable offspring with no external influence". 06:40:08 so coyotes and red wolves are the same species? 06:40:25 i would say produce a creature x which is in the same species as a and b w.r.t. the current population 06:40:30 There's some species which can be *coaxed* into producing offspring, but will generally refuse otherwise. 06:40:33 hmm 06:40:59 yeah that should work, it just occasionally further subdivides species 06:41:34 quintopia: How readily do the two interbreed? 06:41:55 pikhq: red wolves are almost gone due to interbreeding in the wild 06:42:14 They are most certainly the same species, then. 06:42:23 alrighty 06:42:48 Just like the dog and the (gray) wolf are same species. 06:42:58 (and that is utterly uncontroversial) 06:43:02 by what i've understood the usual definition is, i'd say they are the same species, isn't that kind of the point of having races 06:43:31 erm 06:43:35 are they called races............ 06:43:43 Subspecies. 06:43:51 because "lupus" and "familiaris" are just two ways to spell the same word 06:44:13 quintopia: Actually, the classification for domestic dog is "Canis lupus familiaris". 06:44:46 so how are subspecies defined? 06:44:49 so... "" and "familiaris" are just two ways to spell the same word? 06:44:49 oerjan: IOT m a -> IO (m a) should be safe-ish, right? 06:44:56 oh wait 06:45:13 wolf is like lupus lupus is it 06:45:24 oklopol: No, C. lupus. 06:45:43 quintopia: Generally, arbitrarily based on what taxonomists feel is "enough" distinction between two given populations. 06:45:48 okay so then my joke was valid 06:46:01 ah i see. it is also known as canis familiaris equally often. thus my confusion 06:46:25 Yeah, that's fairly old taxonomy. 06:46:30 sometimes it's also called dog 06:46:46 oklopol: Insufficiently specific. 06:46:54 it is? 06:46:58 There's rather a lot of things called "dog". 06:47:04 oklopol: do you mean golden retriever or dingo? 06:47:09 they are different subspecies after all 06:47:44 oklopol: it's never lupus 06:47:52 i mean the set of creatures that can mate with my dog and produce offspring which are not wolves. 06:47:59 or other weirdos 06:48:25 Ah, see, the problem is there's many species *called* "dog", even though they can't interbreed with yours. 06:48:25 dingos are not dogs 06:48:34 Dingos are dogs. 06:48:50 your mother is a dog 06:48:56 oklopol is a dog 06:48:56 Anyways. 06:49:13 what are called dogs without being able to interpreed with mien? 06:49:15 *mine 06:49:41 Lycaon pictus, Speothos venaticus, Cuon alpinus, Nyctereutes procyonoides, Atelocynus microtis, and species in genus Cynomys are all commonly called dogs. 06:50:04 please tell me that was from memory 06:50:08 It wasn't. 06:50:09 :D 06:50:24 your dog can't breed with a prairie dog 06:50:29 although i'd like to see it try 06:50:33 ;D 06:50:40 Also, all but Cynomys are in the clade Canidae. 06:51:14 Cynomys is prairie dog, in case you missed that oklopol 06:51:24 * oklopol realizes his definition separates boys and girls into different species, and in fact then everyone is their own species 06:51:44 eh 06:51:49 good enough for computer science 06:52:07 just give every creature an ip 06:52:16 *v6 06:52:23 well obv 06:52:36 Huh. The tanuki is an invasive species in Europe. TIL. 06:52:39 quintopia: i most certainly missed that 06:52:41 how many thousands of years of animals can we track with ipv6 addresses 06:52:55 quintopia: forevery many 06:53:26 i'm gonna go to the uni for just a LITTLE bit, then back to my holiday -> 06:53:26 keep in mind that the dead ones have to keep their addresses, because they are distinct from the living ones genetically 06:53:30 hf 06:53:42 -!- monqy has quit (Quit: hello). 06:54:04 -!- augur has quit (Read error: Connection reset by peer). 06:54:18 -!- augur has joined. 06:56:14 -!- augur has quit (Read error: Connection reset by peer). 06:56:14 ok runIOT is very difficult 06:56:20 I once knew a hunter who went out for big game, and managed to kill a puma, a mountain lion, a cougar, a catamount, and a panther, all with a single bullet. 06:56:30 -!- augur has joined. 06:57:01 (yes i use oxford commas, biotches) 06:57:09 so does everyone good 06:57:23 i don't know about genetic differences, but dead guys are at least always their own species: lemma 1: if you fuck a dead guy, he won't get pregnant, proof omitted; thus trivially if a is dead, aRb is false for all b, and thus a and b cannot belong to the same species 06:58:04 INDEED 06:58:34 you can find the full proof in my thesis 06:58:40 moreover, dead guys will never try to mate with one another 06:59:00 ?hoogle permutations 06:59:00 Data.List permutations :: [a] -> [[a]] 06:59:01 hence the clause about no external influence takes care of them 06:59:14 quintopia: if a dead guy is its own species, but doesn 06:59:15 argh 06:59:27 quintopia: if a dead guy is its own species, but doesn't want to mate itself, does that make it a different subspecies from itself? 06:59:36 yes 06:59:43 the relation is not reflexive 06:59:50 it is not an equivalence relation then 06:59:57 so it is not a proper equivalence class 07:00:27 Huh, a Gmail add caught my eye 07:00:36 however, certain female lizards, reproducing by parthenogenesis, do satisfy the relation reflexively 07:00:39 so 07:00:41 not reflexive? umm i masturbate all the time! 07:00:45 "I'm hiding in your inbox - www.*******.com - please don't tell anyone I'm here. Know any good jokes?" 07:00:49 good point 07:01:05 it is an equivalence class that mammals don't satisfy 07:01:08 and birds too 07:01:10 quintopia: the relation R is not an equivalence relation, no, S is. 07:01:22 yes 07:01:37 but R cannot be applied meaningfully to birds and mammals 07:01:41 and most other things 07:01:46 why not? 07:01:55 ur a mamal 07:02:01 oh because everyone is their own species? 07:02:13 at least not as an equivalence relation 07:02:22 it is some other kind of relation 07:02:26 well right 07:03:03 but yeah probably buys and girls should be formalized since this will only work for boygirlious creatures anyway 07:03:24 or at least just mateous creatures but all the cool mateates are boygirlious anyway. 07:03:32 i dunno 07:03:35 worms are p cool 07:03:41 especially the ones that do penis jousting 07:03:55 umm, worms are basically dicks 07:04:15 dicks...with dicks! 07:04:19 :O 07:04:27 -!- BeedaWeeda has quit (Quit: The internet is full, go away.). 07:04:43 What's the status of IPv4? 07:05:01 lol still not depleted? 07:05:02 -!- BeedaWeeda has joined. 07:05:03 ask ARIN or something. we don't care anymore 07:05:12 -!- BeedaWeeda has quit (Changing host). 07:05:13 -!- BeedaWeeda has joined. 07:05:16 oh right -> 07:05:20 bai 07:05:48 -!- BeedaWeeda has quit (Client Quit). 07:06:38 -!- BeedaWeeda has joined. 07:06:39 -!- BeedaWeeda has quit (Changing host). 07:06:39 -!- BeedaWeeda has joined. 07:07:45 :t callCC 07:07:48 forall a (m :: * -> *) b. (MonadCont m) => ((a -> m b) -> m a) -> m a 07:08:02 ?src MonadCon 07:08:02 Source not found. Do you think like you type? 07:08:03 ?src MonadCont 07:08:03 class (Monad m) => MonadCont m where 07:08:03 callCC :: ((a -> m b) -> m a) -> m a 07:09:03 Sgeo: RIPE depletion quite in August 2012. 07:09:10 Sgeo: APNIC depletion a while back. 07:09:35 Erm, s/quite/ 07:09:37 Erm, s/quite// 07:09:53 Sgeo: ARIN depletion anywhere from early 2012 to 2014, depending on who you listen to. 07:10:10 And AFRINIC could probably last until the heat death of the universe. 07:10:15 Why doesn't the RIPE estimate vary more? 07:10:20 oh wait, IO (m a) is really dangerous, it should be m (IO a) 07:10:21 ugh 07:10:52 Sgeo: There is variance, but it's just not that controversial that it'll happen sometime mid-2012. 07:11:04 So I just named the estimate that I like most. 07:11:41 The CEO of ARIN is saying depletion will happen by Jan. 2012, but statistical estimates all put it much later. 07:11:58 I wonder if there's somethin he knows that we don't. 07:12:29 oh wait, m (IO a) is just as unsafe 07:13:40 -!- cheater_ has joined. 07:16:08 -!- BeedaWeeda has quit (Quit: The internet is full, go away.). 07:17:49 runIOT :: (Monad m) => (forall b. m b -> (b,r)) -> IOT m a -> IO (a,r) 07:17:52 oerjan: it might even be safe 07:19:21 huh 07:19:29 runIOT run (IOT f) = 07:19:29 IO $ \s -> 07:19:29 case run (f (RW s)) of 07:19:29 ((RW new_s, a), r) -> (# new_s, (a, r) #) 07:19:29 :D 07:22:25 does anyone know if the original colossal cave adventure has been ported to C/linux ? 07:23:59 cheater_: It should be in your distro's bsdgames packages, as "adventure". 07:24:08 that's not the original one 07:24:23 It's a port to C from the original FORTRAN. 07:24:31 it's not even the 1994 "original" one 07:24:40 nah, it's a rewrite 07:24:52 the original fortran sources are available, a conversion should not be difficult. 07:25:15 for example "get all" does not work 07:25:15 but that's just one minor difference out of very very many 07:25:23 You could probably build it directly, actually. 07:25:28 you cant ive tried iirc 07:25:45 http://jerz.setonhill.edu/if/canon/Adventure.htm 07:26:25 that is indeed a blog post. 07:26:37 Ah, it seems to be a port of Don Woods' expansion on the original. 07:26:56 Because Crowther's original had gone missing. 07:27:07 nah it's available 07:27:19 Wasn't at the time. 07:27:36 Crowther, Will. "Adventure." Original FORTRAN source code. 1975-76. http://jerz.setonhill.edu/if/crowther/ (recovered from a backup of Don Woods's student account at Stanford.) Edited to compile under g77 (Matthew Russoto, 2007). Windows Executable (David Kinder, 2007). 07:27:49 not bad 07:27:57 didnt compile for me 07:29:59 The original depends on 36-bit words. 07:41:45 god dammit Lymee now i'm wondering how much of the ghc rts depends on libc 07:43:02 unfortunately ghc doesn't really have a bit-precise data type mechanism 07:43:09 you can use Ptrs and copy structures into them 07:43:11 but that's Ugly 07:43:19 and it means the lower-level stuff will be really painful 08:04:33 -!- augur has quit (Read error: Connection reset by peer). 08:04:40 -!- augur has joined. 08:08:28 ?pl \f x -> (x, f x) 08:08:28 ap (,) 08:10:22 ?ty second >>> (. join (,)) 08:10:22 forall c a. (a -> c) -> a -> (a, c) 08:10:27 :t truncate 08:10:28 forall a b. (RealFrac a, Integral b) => a -> b 08:10:34 Deewiant: That's preferable to ap (,)? :P 08:10:52 It's what I'd've thought of first 08:14:43 tracking an n and doing (start + n delta) is preferable to repeatedly adding delta when using floating point, right? 08:15:25 I guess so, it's two sources of imprecision instead of n 08:19:26 *Main> last (seconds 1 id) 08:19:27 (1.0,1.0) 08:19:27 *Main> last (sampleSecond id 0 44000) 08:19:27 (0.99997723,0.99997723) 08:19:27 yikes 08:24:27 good morning 08:24:33 -!- falso___ has changed nick to fALSO. 08:27:54 elliott: Well, probably not *much* of the RTS depends on libc, considering that it runs on Xen. 08:31:01 how does the RTS allocate memory? malloc? mmap? 08:31:38 sbrk! (Probably not.) 08:31:44 sample :: SignalC a -> Time -> Float -> Float -> SignalD a 08:31:44 sample f start dt ns = sample' 0 f start dt (ns/dt) 08:31:44 where sample' !n f start dt nsamp 08:31:44 | n > nsamp = [] 08:31:44 | otherwise = ap (,) f (start + n*dt) : sample' (n+1) f start dt nsamp 08:31:45 good 08:31:47 Vorpal: gc 08:34:09 oh wait not good, that's bad for some reason 08:36:05 oh wait it's good 08:36:33 a list is probably the worst possible choice for a SignalD mind you 08:36:56 elliott, and how does the gc allocate it 08:37:03 Vorpal: how does malloc allocate things 08:37:05 how does mmap allocate things 08:37:14 garbage collector means "allocator and collector" 08:37:14 elliott, well, malloc uses sbrk or mmap usually 08:37:28 elliott, yes but the gc must request the memory from the OS somehow :P 08:37:42 elliott, or things would segfault 08:37:47 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage 08:38:20 aha, block allocation layer 08:38:21 Vorpal: A GC generally implements its own allocator. 08:38:27 Vorpal: So, it allocates via malloc and mmap. 08:38:31 Erm. 08:38:32 sbrk. 08:38:33 Not malloc. 08:38:35 pikhq, hm 08:38:37 Vorpal: its obviously not as simple as regular allocation 08:38:41 Vorpal: because everything is in a thunk 08:38:42 elliott, of course 08:38:50 so yeah, see above :P 08:39:00 "At the bottom, talking to the OS, is the megablock allocator (rts/sm/MBlock.c, includes/rts/storage/MBlock.h). It is responsible for delivering megablocks, correctly aligned, to the upper layers." 08:39:09 That's probably the place to peek if curious enough. 08:39:16 right 08:39:17 Also "megablock" sounds fabulous. 08:39:30 fizzie: And is almost certainly nothing that interesting. 08:39:49 fizzie: it will surely most likely be in platform code 08:39:52 no mmap on windows 08:40:10 elliott: There's a drop-in replacement, though. 08:40:14 ret = osGetMBlocks(n); 08:40:33 in posix/OSMem.c... 08:40:38 / A wrapper around mmap(), to abstract away from OS differences in 08:40:38 / the mmap() interface. 08:40:46 Vorpal: mmap on POSIX 08:41:06 VirtualAlloc on Windows 08:41:19 right 08:41:55 Well, rather, a handful of replacements; there's different functions for "Get me a page" and "Get me a page that mirrors a file". 08:42:17 Anyways, point is the *functionality* is part of the API, making it nothing too painful to work with. 08:42:22 (unlike fork()) 08:45:17 Anyways. Mere *allocation* is essentially a solved problem; a specific implementation is going to be about as interesting as a specific implementation of quicksort. 08:45:43 It's deallocation that's hard. 08:48:42 yeah ghc doesn't even try deallocating >:) 08:49:18 Good thing I got my unbound spool of tape in the mail today. 08:49:47 -!- augur has quit (Read error: Connection reset by peer). 08:49:55 -!- augur has joined. 08:52:50 pikhq: what 08:54:23 coppro: What, I was ordering parts for my Turing machine, and that came in today. 08:55:23 ah 08:55:48 pikhq, given the size of it, I guess the postage must have been prohibitive? 08:56:25 Vorpal: no no no 08:56:35 you see, it gets thinner as it goes along 08:56:40 elliott, ah. 08:56:51 so the first cell takes up half the envelope 08:57:00 but the rest tapers to an (infinite) point 08:57:07 (it gets smaller in every dimension) 08:57:13 right 08:57:18 (including thickness :D) 08:57:21 The reader is a truly impressive piece of work. 08:57:23 Paper tape, the storage method of kings: http://zem.fi/g2/d/17070-4/p1100859.jpg 08:57:25 so they just ship it rolled up 08:57:29 pikhq, I can imagine 08:57:47 fizzie, where did you take that photo? 08:58:04 pikhq: yeah it uses magnets and light to read instead of doing it directly 08:58:08 that way it doesn't have to get smaller as it moves 08:58:18 Vorpal: It's the UK National Museum of Computing's rebuild of Colossus, the Lorenz-cipher-breaker thing. 08:58:24 -!- oerjan has quit (Quit: leaving). 08:58:25 ah 08:58:26 basically it shoots the right coloured beam of light to just reflect the specific cell it wants 08:58:31 which magnetises the tape cell 08:58:36 then it pulls up with the magnet 08:58:49 and the reaction causes the value to be put on to the platter 08:58:58 elliott: I've not tried it for cells that would be below a Planck distance in wavelength. 08:59:09 The quite-probably ionizing radiation kinda scares me. 08:59:47 pikhq: yes well, you _are_ meant to operate it in a vacuum in a container the size of a galaxy. 09:00:19 I'm kinda cheating. I've got a TARDIS on backorder. 09:00:23 pikhq: in fact, since it means the platter can move less (i.e. not at all), normal operation operates exclusively on the atom at the very tip of the tape 09:00:25 the feats of modern technology are truly marvelous 09:01:23 oh, the writing mechanism is really cool; it has two lasers, one really hot, one really cold, and it mixes them both at the current tape cell to cause it to undergo a chemical reaction which transforms it into the right value. 09:01:27 science facts 09:01:48 elliott, what is the MTBF? 09:02:07 Vorpal: why would it fail? 09:02:08 -!- augur has quit (Read error: Connection reset by peer). 09:02:19 elliott, well, the reader and writer may 09:02:22 -!- augur has joined. 09:02:39 Vorpal: it uses the infinite sequence of bits as an entropic power source 09:02:46 ah 09:02:46 so there's little worry about that 09:02:51 nifty 09:03:01 it's not doing anything strenuous, just firing a few lasers at a single atom and turning an electromagnet on and off 09:03:06 Good thing, too. It requires more power the further you get in the tape. 09:03:31 indeed 09:03:40 have to generate light of ever more ridiculous wavelengths to shine to read 09:03:47 Precisely. 09:03:52 this conversation is awesome 09:04:02 what about seek time 09:04:08 Irrelevant. 09:04:12 ah yes 09:04:25 pikhq, only relevant for the start of the tape I guess 09:04:29 Vorpal: Like I said, it uses the last atom exclusively in normal usage. 09:04:34 elliott, ah 09:04:36 So no spatial seeking is necessary. 09:04:39 coppro: it's just making me want one 09:05:00 Vorpal: Interestingly, just cutting off the tape before this last atom results in a catastrophic system meltdown. 09:05:08 I need one of those infinite sequence power supplies in my laptop... 09:05:18 elliott, oh, why? 09:05:30 Vorpal: PHYSICS HAS YET TO EXPLAIN. 09:05:34 ah 09:05:35 elliott: Just need to take a trip to the frictionless pulley store. 09:06:20 Vorpal: Interestingly, you can exploit the random appearance of tachyons during the tape-reading process to serve as a halting oracle. 09:06:36 oh nice 09:06:43 It's not very practical, though; if the computation goes on forever, then an infinite number of tachyons hit your sensor all at once. 09:06:53 The results are quite spectacular but usually fatal. 09:06:56 elliott, hm, even if seek time is non-existent, how long does it take to read a single symbol? 09:07:16 BUT WHAT'S A FEW GALAXIES BETWEEN FRIENDS WHO WANT TO DECIDE THE GOLDBACH CONJECTURE???? 09:07:46 of course, of course 09:07:48 Vorpal: As long as it takes for light to make it there and back. Technically, turning an electromagnet on and off should be included in time, but in practice, the machine operates so quickly that the electromagnet is never off. 09:08:12 So, since the head is mere millimetres above the tape: practically no time at all. 09:08:21 ah 09:08:40 What about wear and tear 09:08:45 Infinitely small tape cells should wear out infinitely fast 09:08:48 elliott, something similar would apply for writing of course 09:09:17 Patashu: There's nothing to wear out. 09:09:30 But you said it had chemical reactions 09:09:35 So inevitably atoms will escape 09:09:51 Patashu: Yes, this is why it uses a self-repairing mechanism. 09:09:57 in evitably your mom will escape my chemical reactions 09:10:00 *inevitably 09:10:12 Patashu: The atom gets destroyed roughly every other clock cycle, but it is duplicated by a simple mechanism and put back into place constantly. 09:10:25 Since it's just a single atom, this is a simple process, compared to scanning every single tape cell, which would take literally forever. 09:10:26 QED 09:10:32 elliott, a bit like those self-repairing mc structures? using pistons and so on? 09:10:38 lol 09:10:42 turing machines compared to pistons in minecraft 09:10:42 (infinitely small ones of course) 09:10:53 Vorpal: Precisely, if one block of cobblestone could be used to access infinite bits. 09:10:54 you know, minecraft represents an infinitely large space 09:10:57 let's set up a piston driven turing machine 09:10:59 Patashu: Incorrect. 09:11:02 elliott, ah yes 09:11:04 it represents one 09:11:06 it just doesn't implement it 09:11:09 Heh. 09:11:10 because of floating point inaccuracies 09:11:25 Patashu: Things start breaking way before the actual coordinates hit floating point limits. 09:11:37 IIRC, it's only like a few solid months of walking to the place where repeated addition and the like fuck everything up. 09:11:40 elliott, implementation limits 09:11:46 your mom's floating point starts breaking before the actual coordinates hit repeated addition implementation limits 09:11:57 name one thing that breaks down not because of floating point inaccuracies 09:12:06 Patashu, heard of the "far lands"? 09:12:09 Patashu: The whole game is floating point, so I don't know what you mean. 09:12:13 elliott, implementation limits 09:12:20 yes I have 09:12:21 Yeah, but they're reachable ones. 09:12:22 I am thinking of them atm 09:12:22 Patashu, http://www.minecraftwiki.net/wiki/Far_Lands 09:12:23 yeah 09:12:36 Notch used to say that the bugs were way too far out to ever be relevant. 09:12:38 But... they're not. 09:12:38 if minecraft's floats and doubles were swapped for e.g. bigdecimal 09:12:40 far lands not happen 09:12:53 Patashu: that would be a terrible idea 09:12:57 as far as performance goes 09:12:59 it would indeed 09:13:33 when are we getting 128 bit floating point units? 09:13:35 Patashu: Elliottcraft just uses a fixed-point sixty-four-bit integer with four bits of ... decimal. 09:13:37 (Binary?) 09:13:54 elliott, s/uses/will use/ 09:13:57 Yeah yeah. 09:14:16 1,073,741.82 kilometres in every direction ain't bad. 09:14:20 (Including vertically.) 09:14:20 wouldn't that have awful rounding off errors if you were heading in any non-orthogonal direction 09:14:35 Patashu: The player position is stored with more precision in memory 09:14:48 Everything is just rounded upon serialisation 09:15:24 Hmm, I suppose I could use full sixty-four bit coordinates and then use an additional sixteen bits or so for fractional stuff 09:15:42 Since most things don't have such precise positions 09:15:49 1,073,741.82 kilometres in every direction ain't bad. 09:15:53 This was both positive and negative, BTW 09:16:04 Err, wait, did I fuck it up 09:16:12 I did 09:16:30 1.1529215 × 10 to the power of 15 kilometres 09:16:33 Noice 09:16:39 (That's for sixty-bit + four-bit) 09:17:10 1.1529215 * (10 to the power of 15 kilometres) 09:17:16 hahahahahaha 09:19:35 Patashu: I'm not sure what you mean, anyway 09:19:57 by? 09:20:12 wouldn't that have awful rounding off errors if you were heading in any non-orthogonal direction 09:20:31 imagine I'm an object and I want to move a short distance at a 30 degree angle 09:20:37 how do you represent that without rounding errors? 09:20:44 rounding errors even worse than would be in floating points, btw 09:21:23 Patashu: that only affects save/load 09:21:37 I'm storing things with higher precision in memory, but nobody will notice the clamping on save/load :P 09:21:46 aah 09:21:56 so when you save and reload, the co-ordinate system is moved to your new location as the origin 09:22:02 and once again you can walk XXX months before you'll see the far lands 09:22:11 Whaat, no :) 09:22:15 well it would work right? 09:22:26 That would require, like, rewriting every single chunk file, I think. 09:23:19 I'm not seeing why 09:23:23 Chunks could be referenced relatively 09:23:44 As in when you save you say 'ok this chunk is the new origin chunk and it's numbered N in X and M in Y, so I'll look near N and M for the next chunks' 09:23:45 or something 09:23:48 Wait, that's actually literally equivalent to using some form of bigfloat, it just pushes the problem to the chunk storage layer. 09:24:25 Hmm, yeah I suppose it is in a way 09:24:49 I mean, it makes the in-memory storage fixed, but it still requires resolving it all on load 09:25:00 And you couldn't walk from really far out to origin without running into FARRRR LANDS. 09:25:04 Without saving and loading, I mean 09:25:12 Patashu: Anyway, there'd be no far lands with fixed point 09:25:17 Since precision is retained throughout the whole range 09:25:19 Yeah, it would just end abruptly 09:25:22 That's not fun :( 09:25:25 Patashu: No, it would wrap around :) 09:25:26 How will you advertise an infinitely large world 09:25:45 Patashu: I've half-jokingly considered putting stupid shit as the borders of the world. 09:25:54 Like the ice mountains said to surround the flat earth. 09:26:23 Patashu: Anyway, I can advertise way-more-infinite-than-Minecraft worlds, especially since I have a plan for arbitrary y coordinates too :P 09:26:26 Fuck the height limit. 09:27:27 write blocks until you reach the topmost one, then indicate you're done and move to the next x,z co-ordinate? generate higher y level chunks when your tower sticks up higher than 128 blocks? 09:28:01 I'm not sure what that's supposed to mean; there might not be a topmost block -- or well, sure there will be, but there won't be a bottom most block. 09:28:05 Patashu, or your mines go down more than 128? 09:28:10 Just imagine a hashtable of (x/n,y/n,z/n) -> chunk 09:28:13 Where / is integer division 09:28:17 And n is sixty-four or so 09:28:27 I can clump a bunch of chunks together in a single file and then rely on the filesystem for the rest 09:28:29 elliott, why a hashtable, why not an octtree? 09:28:33 ah, bottommost, good point 09:28:42 what's an octtree? 09:28:56 sorry, octree* 09:28:58 Do octtrees even work for infinite spaces 09:29:00 http://en.wikipedia.org/wiki/Octree 09:29:05 elliott, hm, not sure 09:29:18 It doesn't look like it would 09:29:24 elliott, a binary tree would work for an infinite range, you would just have to rebalance it 09:29:31 of course that is one axis 09:29:41 but that is cheap 09:29:51 Or I could just do what I already plan :P 09:30:08 elliott, the issue with hash table is that worst case performance is horrible :P 09:30:24 use a good hash algorithm then 09:30:29 even so 09:30:30 Vorpal: It's not a hash table 09:30:33 Not really 09:30:35 It's a B-tree 09:30:37 you said it was, okay 09:30:39 Because it's your filesystem :P 09:30:41 lol 09:30:42 Yes, that was an explanatory tool. 09:30:43 haha 09:30:45 elliott, well B-tree is fine 09:31:03 I'm literally just going to store world/x-y-z files :P 09:31:09 That contain like sixteen by sixteen chunks each. 09:31:14 Well. 09:31:17 Eight by eight by eight, say. 09:31:40 Wait, that makes chunk files at least 128 megabytes :P 09:31:40 so, is your world generation algorithm going to extend infinitely far downwards? 09:31:46 will it just keep generating denser and denser compressed rock? 09:31:55 elliott, you could do sparse files 09:32:14 OK, how about four by four by four, then it's like thirty two megabytes, even if I have two bytes per block. 09:32:18 elliott, add a header at the start to indicate which chunks are valid, then use fseek() to make the file sparse 09:32:20 How big are mcregion's files anyway? 09:32:28 elliott, they vary 09:32:29 pretty compact I'd think 09:32:36 Patashu: I have plans for various underworld type things with large lava-like caverns. 09:32:44 If I have a Nether, it'll be at a certain block layer :P 09:32:48 elliott, iirc they have 1024 chunks each or such 09:32:53 lava is cool. but would the generation be homogenous after a certain point? 09:32:56 Vorpal: Yeah, but like approximate kilobyte/megabyte sizes 09:33:09 Patashu: Probably. 09:33:14 Patashu: But with biomes. 09:33:20 Patashu: No reason biomes can't be vertical too. 09:33:37 elliott, largest one I have is 6 MB 09:33:44 elliott, iirc each chunk is gzip compressed 09:33:47 or something like that 09:34:13 Yeah, I'll probably gzip them before storage; storing them packed in memory isn't feasible, and RLE is a waste of time when I could just steal an algorithm 09:35:21 * elliott reads people taking Infinite Solutions seriously. 09:35:23 elliott, wait a second, how would this work on @? 09:35:41 Vorpal: How would what work 09:35:50 elliott, would the OS do transparent gzip when writing out to disk after a hint? 09:35:53 or what 09:35:57 Serialisation is obviously overridable 09:36:01 ah 09:36:12 elliott, it didn't sound like that before 09:36:14 but sure 09:36:16 makes sense 09:36:27 Tricky though, in that you have to make sure it bijects properly 09:36:38 elliott, well the gzip case is simple 09:36:40 But there can obviously be a "gzip compression" function from serialisers to serialisers 09:37:13 elliott, anyway it doesn't have to serialise to exactly the same does it? gzip decompression is speced, but decompression is not iirc 09:37:15 err 09:37:19 compression is not* 09:37:30 meaning you can do various efficient ways to compress it 09:37:39 speed/time tradeoffs etc 09:37:42 I mean that you can't serialise all strings as "x" 09:37:49 i.e., your serialisation has to include all aspects of the object 09:37:54 hm 09:37:55 (Apart from things not exposed publicly) 09:38:10 elliott, metadata and such? 09:38:15 yeah let's just abandon state 09:38:17 Just internal fields 09:38:21 It's not acceptable to hit the reset button and have everything break because an object doesn't serialise and restore properly 09:38:27 and our objects always reset upon serialization 09:38:27 what a great idea! 09:38:49 elliott, speaking of which I had level.dat corrupted on a local bukkit test server when I had a power failure 09:39:00 elliott, seed changed and several chunks re-generated 09:39:22 Vorpal: But I thought the example of losing power for orthogonal persistence was contrived?!!!?!?!?!! 09:39:27 HOW COULD TROLLS MISLEAD ME SO 09:39:32 elliott, I meant for mc :P 09:39:35 elliott, not for your system 09:39:48 Vorpal: I meant that tripping over your power cord is a common way used to explain the benefits of orthogonal persistence 09:39:54 right 09:40:04 "EVERYONE USES UPS LOL AND ALSO, UPS IS PERFECT ALWAYS" is a common response. 09:40:10 elliott, well in this case it was "fuck the electricity company" 09:40:24 3200 houses affected or something like that 09:40:30 large part of this town anyway 09:40:35 for about an hour 09:40:45 elliott, I wish I could afford an UPS 09:41:12 Meh, they make noise and are bulky 09:41:18 Just use a laptop :P 09:41:23 elliott, bulky is not an issue for me, noisy however is 09:41:34 elliott, yeaaaah like where to connect MIDI? :P 09:41:37 It's just a buzzing, I gather 09:41:41 (midi over usb = fail) 09:41:44 But why bother 09:41:47 Vorpal: Why's it fail 09:42:03 I suspect latency 09:42:04 I'm sure you can get laptops with MIDI ports, anyway :P 09:42:07 elliott, because of the latency. Especially since the latency isn't stable 09:42:12 THUNDERBOOOOOOLT 09:42:15 Sorry 09:42:19 An Intel marketroid just took my laptop 09:42:20 Very rude 09:42:47 okokokokokokokokokokokokokokokokoko 09:42:50 elliott, I'm not sure that one has any hard latency requirements in the spec :P 09:43:27 elliott, also usb isn't isolated, MIDI requires opto-isolators to be used at each end of the cable 09:43:30 It's basically PCIe: The External Port, innit 09:43:34 elliott, this decouples the circuits 09:44:13 elliott, with midi cable I no ground "buzz", but with USB I get it. To the same electrical piano that is. 09:44:40 LEARN TO WORK WITH THE BUZZ 09:44:48 very droll 09:44:51 The first solution to any technical problem in music production is obviously to exploit it for all it's worth. 09:44:56 hah 09:45:10 elliott, yeah but it doesn't work for everything. 09:45:18 Just make symphonies of buzz 09:45:22 It's called eight-bit 09:46:42 elliott, ground buzz doesn't sound like a SID chipset at all :P 09:46:56 Afraid you might INNOVATE???? 09:47:10 metal was born because guitar amps sucked 09:47:28 PRECISELY 09:47:37 AND THAT'S WHY I MUST NOT YIELD TO SAID TEMPTATION 09:47:46 elliott, touche 09:47:51 i have this guitar amp that is so shitty, you have no idea. 09:47:55 I don't like metal really 09:47:56 it would almost fit in my pocket 09:48:02 it's powered by a couple of batteries 09:48:07 and it makes everything sound so terrible 09:48:08 elliott, does it go to 10 or 11? 09:48:10 i cannot believe it even exists 09:48:12 Vorpal: 9 09:48:14 :P 09:48:17 elliott, ouch 09:48:20 my amp so big it would destroy everything 09:48:40 oklopol: I have a less crappy amplifier (although I'm not exactly sure why), I just have that monstrosity too :P 09:48:51 Oh right, that theremin. GOTTA HAVE GOOD AMPS FOR THEREMIN 09:48:55 don't you use one for right 09:48:56 elliott, what brand/model is it? 09:48:58 LOGIC N JUSTIFICATION 09:49:02 Vorpal: The shitty one? 09:49:04 elliott, yes 09:49:08 I don't think it even HAS a brand. 09:49:13 aaaah.... 09:49:14 Does "made in China" count? Because it probably has a sticker on it saying that. 09:49:15 can you put like huge distortion on the theremin and make it sound just horrible 09:49:26 oklopol: overdriven theremin is quite a thing 09:49:28 quite a... thing 09:49:37 heh 09:50:09 elliott, suggestion: aplay /dev/sda 09:50:20 elliott, NTFS sometimes sound quite good 09:50:31 oh /dev/sda starts off really nice here 09:50:40 crunchy sounds then a rapidly repeating beep 09:50:50 ok you can't just stop the beep DEVELOP that shit man 09:51:09 Vorpal: does aplay have seeking 09:51:10 elliott, is it GPT or MBR? 09:51:17 elliott, not that I'm aware of 09:51:23 elliott, possibly it can start at an offset 09:51:28 elliott, try listen to the partitions too 09:51:33 GPT 09:51:52 huh, partition four sounds the same at the start 09:52:07 oh, i have no swap, heh 09:52:11 was gonna play my swap for some fun 09:52:19 Vorpal: sudo aplay /dev/mem <-- SAFEST THING POSSIBLE 09:52:28 elliott, err no 09:52:31 not safe at all 09:52:36 Vorpal: Note joke :P 09:52:50 Aww, /dev/input/mice is not very fun sounding at all 09:52:58 hm, my /dev/sda is a bit of whitish noise, then a second of quietness, then a rapid regular ticking that goes on for quite a while 09:53:11 Didn't you send me a partition ogg once 09:53:16 yes 09:53:19 Oh /dev/core starts out good 09:53:22 elliott, I don't have that file anyway 09:53:22 But then just more lameo silence 09:53:24 any more 09:53:24 What is it with zeroes 09:53:37 elliott, I don't even have the original NTFS partition it came from 09:53:41 /dev/random is amusingly silent 09:54:10 the music of linux 09:54:17 Oh /dev/sda2 is a nice thing 09:54:19 elliott, actually /dev/sda sounds about the same as /dev/sda1 for me. So I guess it was the mostly empty /boot I listened too there... the clicking is probably the ext* superblock backups 09:54:31 This has actual substance, I guess HFS+ is very musical 09:54:34 It's more uh 09:54:38 Textural than toneful though 09:54:43 whoa /dev/sda2 (root iirc) sounds nice 09:54:44 [asterisk]tuneful 09:54:47 nice beat to it 09:54:49 3/4 I think 09:54:54 Hahaha seriously? 09:55:04 Oh man /dev/sda3 09:55:09 ext4 starts off brutal 09:55:10 elliott, no, it is only vagually like it, for a bit 09:55:17 tick tick tick tick 09:55:22 my /dev/sda3.... 09:55:22 whoa 09:55:24 whoa 09:55:26 What 09:55:27 WHOA 09:55:30 elliott, it is swap 09:55:38 Dammit, I want to turn swap on just to experience that 09:55:45 Compare BSD binaries to GNU, statically linked if possible 09:55:49 elliott, well used swap (before switch to new computer) too 09:55:54 Can I ask for an ogg of swap, or are you afraid I'll somehow reverse psychoacoustic compression and get your passwords ;) 09:55:56 elliott, whoa there is some metal here 09:55:57 and what not 09:56:07 elliott, I'll think about it 09:56:08 I take it "metal" is your word for "noise" 09:56:18 Deewiant: /bin/ls is fun 09:56:19 elliott, no, some of it sounds like overdriven guitar 09:56:22 -!- Phantom_Hoover has joined. 09:56:23 there is quite a bit of noise too 09:56:29 Oh, I actually like /bin/ls 09:56:39 I mean, as far as atonal binary noise goes 09:56:54 Assertion 'pa_atomic_load(&(s)->_ref) >= 1' failed at pulse/stream.c:1848, function pa_stream_disconnect(). Aborting. 09:56:54 Aborted by signal Aborted... 09:56:54 Assertion 'pa_atomic_load(&(s)->_ref) >= 1' failed at pulse/stream.c:1848, function pa_stream_disconnect(). Aborting. 09:56:54 Aborted by signal Aborted... 09:56:54 Segmentation fault 09:56:58 There were like five thousand of those errors 09:56:59 herp derp 09:56:59 elliott, /dev/sdb3 is similar, but different 09:57:06 sda3 sounds better 09:57:08 definitely 09:57:31 Playing raw data '/usr/bin/emacs' : Unsigned 8 bit, Rate 8000 Hz, Mono 09:57:33 Sounds like bloat 09:57:39 are you guys going to make an album of this stuff 09:57:46 Patashu, haha 09:57:53 Patashu: Don't tempt me. 09:57:55 send the proceeds to charity 09:58:00 lol 09:58:01 I hit ext4 on my lvm listening 09:58:02 Send the proceeds to GNU :P 09:58:05 or that 09:58:06 actual lvm is very quiet 09:58:20 Machine code sounds disappointingly random 09:58:25 Some nice flourishes of beeps here though 09:58:38 It keeps interrupting the fuzz for some bleep soloing, I guess it's binary data 09:58:45 elliott, empty ext2 has a more rapid pulse than empty ext4 btw 09:58:46 Padding or whatnot 09:59:28 elliott, my /usr/bin/emacs sounds quite nice for some bits 09:59:31 vim sounds nicer than emacs 09:59:33 mostly the start 09:59:38 then it is just noise 09:59:44 I know a guy who'd listen to a box set of this 09:59:54 wha... /usr/bin/soffice was short 09:59:57 oh, shell script 10:00:18 how is binary data being interpreted as sound? 10:00:23 even wav has a header I think 10:00:29 Patashu, Playing raw data '/usr/bin/soffice' : Unsigned 8 bit, Rate 8000 Hz, Mono 10:00:31 Patashu: eight kilohertz, mono, unsigned 10:00:32 that is how 10:00:44 you can change it with parameters to aplay 10:00:45 -rwxr-xr-x 1 root root 6.4K 2011-01-29 06:11 /usr/lib/openoffice/program/soffice 10:00:48 oh FFS, where's the real openoffice 10:00:57 aha 10:01:04 -rwxr-xr-x 1 root root 63 2011-01-29 05:39 /usr/lib/openoffice/program/swriter 10:01:05 ><_ 10:01:06 so you could play the same file a large number of ways 10:01:06 >_< 10:01:15 elliott, there is /usr/lib/libreoffice/program/oosplash.bin at least 10:01:37 elliott, I think it is dlopened() by a wrapper basically 10:01:40 Ah, it's /usr/lib/openoffice/program/soffice.bin 10:01:45 libsofficeapp.so => /usr/lib/openoffice/program/../basis-link/program/libsofficeapp.so (0x00007f3712e5f000) 10:01:47 no it isn't, that is way to short 10:01:49 hm 10:01:50 -rw-r--r-- 1 root root 503K 2011-01-29 06:59 /usr/lib/openoffice/program/../basis-link/program/libsofficeapp.so 10:01:51 Argh 10:01:54 Where are you hiding the bloat 10:02:17 elliott, why don't you have libreoffice? 10:02:25 -rw-r--r-- 1 root root 13M 2011-01-29 06:59 libswlx.so 10:02:25 Good enough 10:02:34 Vorpal: You realise it's literally identical to go.oo 10:02:37 And the answer is Ubuntu 10:02:43 elliott, ah 10:02:50 find /usr/lib/openoffice -type f -exec du -h {} + | sort -g 10:02:53 How surprising, OpenOffice sounds like shit 10:03:07 elliott, hm /dev/input/mice is silent? 10:03:12 even when moving the mouse I mean 10:03:24 Yeah, I think you can't generate big enough values anywhere near quickly enough 10:03:28 /usr/lib/libreoffice/basis3.3/program/libswlx.so here is 12 megs. 10:03:31 Just like /dev/random is silent but /dev/urandom isn't 10:03:35 fizzie: Already found, see above 10:03:37 Ah, you found that too, yes. 10:03:59 Vorpal: /usr/bin/ghostscript sure is short 10:04:03 ELF, though 10:04:11 hm 10:04:26 elliott, eh, you mean /usr/bin/gs ? 10:04:32 Nope, I mean what I say 10:04:33 I have no /usr/bin/ghostscript 10:04:42 /usr/local/lib/ghc-7.0.4/ghc is the soundtrack to a life of purity. 10:04:46 gs (1) - Ghostscript (PostScript and PDF language interpreter and previewer) 10:04:48 The Haskell monks blast it all day at full volume. 10:04:57 -rw-r--r-- 1 root root 10346152 2011-04-01 16:35 /usr/lib/libgs.so.9.01 10:05:02 That's more of Ghostscript. 10:05:07 lrwxrwxrwx 1 root root 2 2011-05-09 12:57 /usr/bin/ghostscript -> gs 10:05:09 Are you expecting it to be spooky? 10:05:11 Just a link, it seems. 10:05:15 fizzie: Yes definitely. 10:05:38 10M/usr/bin/gs 10:05:40 /bin/busybox sure is... busy. 10:05:42 elliott, gs is NOT short 10:05:50 -rwxr-xr-x 1 root root 6.2K 2010-09-22 01:50 /usr/bin/gs 10:05:55 huh 10:06:01 weird 10:06:15 Oh busybox is nice 10:06:23 elliott, static? 10:06:35 -!- jcp|other has quit (Read error: Operation timed out). 10:06:39 elliott, it is just noise on my system 10:06:43 -!- jcp has quit (Ping timeout: 240 seconds). 10:07:14 Vorpal: It has nice breaks 10:07:28 elliott, not for me 10:10:01 FLACs sound predictably random. 10:10:09 Compare these: /usr/lib/perl5/core_perl/CORE/libperl.so /usr/lib/libruby.so.1.9.1 /usr/lib/libpython2.7.so.1.0 /usr/lib/libpython3.2mu.so.1.0 10:10:43 why is this aif silent :( 10:10:49 Deewiant: im scared 10:11:23 If the music gets worse, that's probably not a good sign 10:11:32 Eh? :P 10:11:40 -!- cheater_ has quit (Ping timeout: 255 seconds). 10:11:40 Hmm, Python sounds like what talking to Guido must be like. 10:11:57 -!- jcp has joined. 10:12:29 Well, assuming that Python should be cleaner than Perl etc 10:13:31 Wow, I played this eight khz mono unsigned eight-bit raw file and it sounded exactly like the original 10:14:10 How... unexpected 10:14:26 It's positively shocking. 10:14:52 nsearch.optim sounds The Best. 10:17:57 -!- javawizard has joined. 10:18:22 debian-testing-i386-netinst.iso sounds boring 10:18:32 OH it started a beat. 10:18:50 dootdoot doot doot doot 10:19:40 OK are you going to do anything with that beat. 10:21:31 elliott, nsearch.optim ? 10:21:36 yes 10:21:42 elliott, what is that 10:21:52 oerjan's nsearch, parallelised 10:21:56 Vorpal: definitely listen to a debian ISO 10:22:01 it is subtle but brilliant. 10:22:03 elliott, don't have a copy around 10:22:16 elliott, anyway, what is oerjan's nsearch? 10:22:25 Searching for... something. 10:22:43 Try a .hi 10:22:44 elliott, searching for what? files? prime numbers? 10:22:50 Deewiant: What's it sound like 10:22:54 I don't know 10:22:54 Vorpal: Bases 10:22:58 ah 10:23:07 I don't have any big his here 10:23:23 Yes I do 10:23:29 Don't really wanna pause Debian though 10:23:31 -!- cheater_ has joined. 10:24:42 Deewiant: Oh man. 10:24:50 Shiro/Interpreter.hi is a brief but amazing work of art. 10:25:14 elliott, how does it sound if rot13 is applied on it 10:25:40 elliott, I mean, does it make any noticeable difference 10:26:12 Depends how many characters are alphabetical :P 10:26:22 elliott, well for Shiro/Interpreter.hi I meant 10:26:25 bbl 10:26:43 dxsrNCNCXiNpjsFEoaoskNmdEPZykBhRioLyCLWLYwQpnSeUiuJTWfBygIkCpfcIoKZzvCRaMfeHKlgIRNLjlztLQyRGiprdpKwYTWbnbCQgvAnMXaoAXEvtmzHhnUJvrqAnsjBuDaYLCPHDfVfWDxprSaEIOAFeyzwGlRhlqqHIotJCbpKyELVnvsSHMzYduNmpvOwHZZPJwQlULtlRxESOsHTPhUVYYLzPWdfaXQZKbYwNGGINZzaJYUHFMZSEumJOrNwraMuUFbZhCYcjqocBdKeqRtfoHgNYphbRaTFpirbjkIkKylTBefQcmupblnokQhRptZqDAnrRRxXsRruZRtbuxrCrqvrHjwxPtdqJwwXzxJVZFPyzytrjHPelsccooPACOCBWovETJbjzfVqyLCldNhpvMHarRusUTDplfIArtbABCDEFGHIJKLMNOP 10:26:43 QRSATBUCVDWEXFYGZHIJKLMNaObPcQdReSfTgUhViWjXkYlZmnopqrsatbucvdwexfygzijknopqrstuvwxyzKUpxuSzzuPUqaUUxeLjmzcvCxXAcYFhlVBTGVdRoSTJcdDsXROtlHZZLxcbvhBgMTqoqScncaCKkhxavyHTPFnxLlaPIqLcymAblXJXXBWdwQDUGlaJgzvUaXiHhBaUDeVlTZtncSUWoFZWZRuEOzZzUNBEveWZVrZeKXpJXNeCBdtzCCAcQDLDnGeAnHduAKJwbcKuOMlrRcqTEUhdLNyMTjkGgUIGrXSXECsYeSTYXspOYMetLlJlWJEVxhlaxddpdxsdVwZhtMShUainrejvGfmfWtIoYTLwoUkGoqgpsquOtGhbuczXNRBcPzJwrzwybLIzEuFXzdfgSnZoAnfnBpdSClByfDoZPhEvfaFhbD 10:26:43 GKddBytHVISJOutHKbLyGRLKtMNsYJDgNcsCXxOnTwiPzQQjjpvvSRPRvYSRgIsTDCUZRVsfYueWXYYXkSXOZCBWbWoQkCBXYYXCWimwMVaabbElectPENdYZxeWVUsfVoRQqgKGyhPAzBGisDULjJUkgYlAulDggPnPmqcnKpoIDWpyFAphFqDESrezsIatBvUxsuUnvbKelwlAkCxfCLNHyPzghCUSMVwHnraEaYcEVeHcrJDRwuDyVGaPkpNwwfzYXQdqTgvsUIRplkTiZZmpcABCBDEFqozMDkKGHwTWkoEtneREpdHsMyIRauJuLCghIGFONsLAhnhgbMskKrDOxFKumxrLSyQymMqdgOZCvawUNOMEoQPQRSKTiMdUbyxwvutsrqpnmlkjihgfecZWVTOLHEBzoUIdRnSACDFGJKMNPymainShiroInterpr 10:26:48 eterShiroFingerprintShiroFingerprintsShiroFungeSpaceShiroIPShiroMonadShiroTypesShiroUtilsShiroValueMaybeTbasebytestringcontainersfilepathghcprimintegergmpmtloldlocaleprocessrandomtimetransformersunixControlMonadInstancesGHCBaseGHCFloatGHCNumDataByteStringDataByteStringCharDataTimeCalendarGregorianDataTimeFormatParseDataTimeLocalTimeLocalTimeControlMonadTransErrorControlExceptionControlMonadDataBitsDataCharDataFunctorDataMaybeGHCClassesGHCEnumGHCE 10:26:53 rrGHCIOExceptionGHCIOHandleGHCIOHandleFDGHCIOHandleTextGHCListGHCRealGHCShowPreludeSystemEnvironmentSystemExitSystemIODataMapSystemFilePathSystemFilePathPosixGHCOrderingGHCIntegerTypemergeByteStringrectangleToByteStringtextifycatchShirocurrentIPgoh 10:26:57 A brief selection of the alphabetical strings in that file 10:27:03 Big block of "InscoreInscoreInscoreInscore..." at one point. 10:37:20 elliott, is that before or after rot13? 10:37:45 X-D 10:37:49 After; GHC stores everything ROT encoded. 10:37:53 elliott, aha 10:37:53 Saves bits. 10:37:56 LOL 10:37:56 Totally. 10:38:09 elliott, but come on, "dxsrNCNCXiNpjsFEoaoskNmdEPZykBhRioLyCLWLYwQpnS" doesn't look terribly sensible even if cut up 10:38:27 That will be from machine code or whatever :P 10:38:34 elliott, oh right, a .hi is binary 10:38:44 forgot that 10:39:14 elliott, GPT or MBR, which one do you recommend? 10:45:39 back 10:45:47 Vorpal: is this actual advice you're asking for 10:46:04 elliott, possibly I will apply it yes 10:46:32 I would fake-suggest GPT, on the pretend-reason that it makes your disk more secure. (Since it then won't work in not-modern-enough systems.) 10:46:38 Vorpal: MBR; it is supported by far more tools. 10:46:43 right 10:46:46 -!- cheater_ has quit (Ping timeout: 255 seconds). 10:46:47 Vorpal: Plus: 10:46:48 Vorpal: "As of 2010, most current OSs support GPT, although some (including Mac OS X and Windows) only support booting to GPT partitions on systems with EFI firmware." 10:46:55 elliott, that precludes UEFI boot though 10:46:56 So unless you want to use your EFI capability too... 10:47:02 Vorpal: Big whoop :P 10:47:11 elliott, I do have EFI on the computer in question 10:47:15 EFI is worse than the BIOS 10:47:21 You don't need another OS before your OS 10:47:32 elliott, what about openfirmware then? 10:47:39 That's not an OS, that's a Forth 10:47:42 hah 10:47:46 Which is a perfectly cromulent low-level interface :P 10:47:59 Compare Commodores booting into BASIC 10:48:26 Vorpal: You should try coreboot 10:49:19 elliott, well I'm not risking bricking the system 10:49:55 I think I had a coreboot-supported MB here somewhere. 10:50:10 Vorpal: Not system, motherboard 10:50:17 Cheapest part of any system, apart from like, the mouse 10:50:18 elliott, nor the mobo :P 10:50:19 Or maybe the HD 10:50:31 elliott, anyway the sata cable is cheaper 10:50:51 elliott, anyway coreboot doesn't support the mobo in question so... 10:51:05 Hmm, I ought to start assembling my rig sometime 10:51:07 Then you just *make* it support it. 10:51:18 WITH MORE RAM THAN VORPAL'S 10:51:32 If I cannot get the best processor with infinite RAM completely passively cooled I will have failed miserably. 10:51:40 elliott, sure, I'm happy with the amount I have. I don't need more. But I could fit in more if I needed. 10:51:40 I will be forced to commit suicide. 10:51:51 Vorpal: I WILL HAVE TO EXCEED YOUR MOBO'S CAPACITY THEN 10:52:01 BTW, which CPU did you go with? 10:52:04 elliott, that is 32 GB 10:52:23 I should just get enough RAM that I can run absolutely everything from a RAM disk. 10:52:24 EVEN OS X 10:52:42 elliott, I don't remember the model code off-hand. 10:52:43 bbl 10:52:48 Vorpal: i7? 10:59:33 -!- cheater_ has joined. 11:07:24 -!- elliott has left ("Leaving"). 11:07:28 -!- elliott has joined. 11:37:32 * elliott reverts TehZ. 11:39:32 -!- elliott has quit (Remote host closed the connection). 11:40:00 -!- elliott has joined. 11:40:14 * elliott reverts TehZ. 11:40:14 Phantom_Hoover: You have 4 new messages. '/msg lambdabot @messages' to read them. 11:40:20 He... doesn't seem to have said anything. 11:40:35 You could, y'know, look at recent changes. 11:42:58 -!- ais523 has joined. 11:43:02 hi ais523; Feather 11:43:25 and here we see an expertly-executed example of the Drive-By Mindfuck 11:43:28 Type mismatch: ais523 is not of type command 11:43:42 ais523: no, but hi : person -> command 11:43:45 elliott, erm, ctrl-F Teh shows nothing. 11:43:50 I suppose that has to be value rather than person or something. 11:44:01 Phantom_Hoover: church-turing thesis 11:44:05 elliott: aha 11:44:05 fwiw, Feather isn't of type command or expression, either 11:44:07 and the sequence operator I have can only handle base types 11:44:32 ais523: was that an actual error or do they look more like "?" 11:44:40 elliott, hmm, it seems a little ambiguous. 11:45:11 ais523, is it telling that I have meta-deja vu from that exchange between you and elliott? 11:45:16 it's not, just the rest of the article is kind of crappy too 11:45:32 Phantom_Hoover: it's much what you'd expect from me/elliott banter 11:46:17 elliott, well, it's certainly not a theorem, so he's correct by that standard. 11:46:42 It could be misunderstood for either, really. 11:46:55 ais523, ah, but the meta-deja vu applies to Feather. 11:47:18 you know, I've got really good about not thinking about Feather 11:47:42 -!- elliott_ has joined. 11:47:52 much like it takes me about three or four minutes to remember the rules of The Game 11:47:55 wow, it should /not/ be that easy to throw away data irreversibly 11:48:23 ais523: you should really set some time aside dedicated to going insane sometime 11:48:27 -!- elliott has quit (Read error: Connection reset by peer). 11:48:27 find / | xargs shred? 11:48:29 ais523: then you could get Feather over with nice and quickly 11:48:32 that's pretty easily 11:48:33 also, no, 11:48:39 I was trying to hit backspace 11:48:43 but it shut down my computer instead 11:48:44 ah 11:48:48 and threw away all my open programs 11:48:57 OK, that's a great typo 11:48:59 another enter key would have thrown away any unsaved documents I had open, too, if I had any 11:49:04 tl;dr fuck computers 11:49:09 many programs will autosave in response to the sighup 11:49:13 -!- boily has joined. 11:49:28 gui programs will generally just ask you instead 11:49:29 in a recovery file 11:49:30 they exist, you know 11:49:36 ah, yes 11:49:40 Emacs doesn't, even the GUI version 11:49:41 although I think is save for most of them 11:49:44 nor does Nethack, or Firefox 11:49:48 but GNOME tends to be really hasty 11:49:55 and start asking whether you want to kill them 11:49:58 and enter will accept that 11:50:06 find / | xargs shred? 11:50:13 And then ais realised he was in a terminal window. 11:50:34 I wonder if it's actually possible for me to not think of ais as "ais" 11:50:42 Phantom_Hoover: it's fine, shred?(1) isn't a real command 11:50:46 and if it were, would probably prompt first 11:51:00 ais523: you should change your legal name to "ais DXXIII" 11:51:07 elliott_: nah 11:51:07 best name ever 11:51:11 ais523, you have a symlink to shred called shredd in the current directory. 11:51:18 Wait, that wouldn't work. 11:51:23 ais523: but it preserves your heritage! 11:51:24 I've used aisDXXIII in posts about INTERCAL before now 11:51:33 Phantom_Hoover: nope, I removed . from the current directory 11:51:42 `addquote Phantom_Hoover: nope, I removed . from the current directory 11:51:43 umm, from the path 11:51:46 482) Phantom_Hoover: nope, I removed . from the current directory 11:51:51 elliott_: good catch, that's a great thinko 11:51:59 You coincidentally have an enhanced version of shred called shred2. 11:52:06 elliott@katia:~/hello$ rm -rf . 11:52:07 rm: cannot remove directory: `.' 11:52:11 apparently ESR uses . on path, some of thescripts he wrote required it 11:52:12 STOP ARGUING WITH ME I TOLD YOU TO REMOVE IT 11:52:18 elliott_: rm is allowed to special-case . 11:52:23 ais523: >:( 11:52:31 this is the same reasoning that allows it to special-case / 11:52:40 on the basis that rm -r / inevitably has to remove . at some point 11:52:52 that is _so_ cheating 11:52:57 I love the way that the BSD people were looking for a loophole in POSIX to allow rm -rf / to not work by default 11:53:09 whereas the GNU people just did it, without caring that it probably violated the standard 11:53:25 http://esolangs.org/wiki/Schrodilang ;; heh, those categories 11:54:10 yep, that's a nice touch 11:54:42 hmm, [[Nandypants]], someone made a stupid BF derivative by mistake? 11:55:05 people must really start thinking less imperatively 11:55:22 I think any imperative tarpit will end up close to BF unless you go to a lot of effort to make it different 11:56:35 elliott_: as for the Church-Turing thesis, there's a part of Gödel, Escher, Bach which lists about twenty different formulations of it 11:56:47 :t Data.Map.lookupWithDefault 11:56:48 Not in scope: `Data.Map.lookupWithDefault' 11:56:49 some of which are trivially true, some of which are obviously only-on-faith, some of which are somewhere in between 11:57:06 I think any imperative tarpit will end up close to BF unless you go to a lot of effort to make it different <-- hm... what other imperative tarpits exist that are different? 11:57:07 :t Data.Map.findWithDefault 11:57:08 forall a k. (Ord k) => a -> k -> M.Map k a -> a 11:57:18 Vorpal: I can't think of any offhand 11:57:23 although I wouldn't be completely surprised if there was one 11:57:31 ?pl \x -> findWithDefault x x m 11:57:31 flip (join findWithDefault) m 11:57:34 I suppose MiniMAX is relatively different, although I'm not so certain it's imperative 11:58:10 Malbolge. 11:58:23 Malbolge isn't a tarpit 11:58:33 Well yeah, it isn't TC. 11:58:47 it isn't? 11:59:06 Patashu, finite memory space. 11:59:14 What about oerjan's attempt at making it TC? 11:59:38 ais523, a befunge98-inf-space tarpit could be made. Remove instructions until you get a small set that is still TC 12:01:00 ais523, what about OISCs? 12:01:07 hmm, yes 12:01:14 I suppose that explains why MiniMAX is different, because it's an OISC 12:01:17 ah 12:01:27 an OISC can't be massively BF-like, because none of BF's instructions are TC by themselves 12:01:27 and the befunge subset? 12:01:57 I imagine a befunge subset would be rather larger than BF, due to p and g being the only way to get infinite memory, and those requiring coordinates and a separate stack 12:03:29 aww, lsystems were as easy to do in haskell as i suspected 12:04:02 ais523, it wouldn't need the numbers would it? You could construct all numbers from 1 and - I think. 11- (0) 11-1- (-1) 11-11-1-- (0-(-1) = 1, can be extended to 2 and so on, but I can't be bothered) 12:04:18 Vorpal: indeed, but it's still being rather complicated 12:04:29 -!- derrik has joined. 12:04:57 ais523, you will need a stack and p and g. I suggest w for turning. You can feed it constant values to do fixed turning 12:05:13 then we can dispose []<>^vx etc 12:05:34 and of course _ 12:05:39 (and | by extension) 12:06:31 ais523, no need for string mode, simple byte based IO is enough etc. I guess I'll try to make a serious attempt at this perhaps... 12:07:04 'w' pops a value and determines direction? 12:07:06 Vorpal: it's still going to end up more complex than BF 12:07:09 mod 4? 12:07:13 ais523, that is true 12:07:15 or two integers? 12:07:30 Patashu: I think it turns left or right depending on zero or nonzero 12:07:35 Patashu, it does a I can't remember which way round 12:07:42 and turns left/right depending on which one is largest 12:07:45 ah, it's positive/negative/zero? 12:07:46 aah 12:07:49 okay, that's useful 12:08:00 | and _ are the ones ais523 described 12:08:19 do we need logical not hm? I guess that can be emulated with w 12:08:42 :t Text.Parsec.sepBy 12:08:43 Couldn't find qualified module. 12:08:49 Vorpal: | and _ don't do turn left and turn right, they turn in two specific directions depending on negative or positive 12:08:49 :t Text.ParserCombinators.Parsec.sepBy 12:08:50 forall tok st a sep. Text.ParserCombinators.Parsec.Prim.GenParser tok st a -> Text.ParserCombinators.Parsec.Prim.GenParser tok st sep -> Text.ParserCombinators.Parsec.Prim.GenParser tok st [a] 12:08:54 holy shit :D 12:08:57 it's quite common to approach a _ from the left, for instance 12:09:00 *depending on zero or nonzero 12:09:04 ais523, yes 12:09:39 duplicate top of stack shouldn't be needed 12:10:02 (11-11-p11-11-g11-11-g should do the trick) 12:10:44 can be used to swap, but I can't be arsed to write that one out 12:13:35 ais523, I *think* this should be bf-complete " ,-1@gpw~" (quotes not part of string, but needed to show that space is included, otherwise wire crossing issue would probably arise) 12:13:37 http://esolangs.org/wiki/Black_and_white_and_read_all_over stupid 12:14:00 Vorpal: you can probably arrange for commands to cancel each other out in each direction, thus not needing space 12:14:39 ais523, possibly. Anyway it isn't that much larger than bf in number of instructions 12:15:30 ais523, this would require befunge, not unefunge of course, since unefunge lacks w, instead I think it uses _ and # (and possibly j) to be able to branch 12:19:00 oolzybub and murphy programs are pretty 12:20:10 !befunge98 11-1-.a,@ 12:20:13 ​-1 12:20:27 !befunge98 11-11-1--.a,@ 12:20:28 1 12:20:33 VARIABLES ARE p /p*/, p /q*/. 12:20:33 dynast(3) <-> 12:20:34 (. do (. if? not? exists/dynast 5 ,then 12:20:34 create/countably/many/dynasts #myself#, 5 .) .) ,then 12:20:34 (. for each prime /p*|p/ below #myself#+2 do 12:20:34 for each prime /q*|q/ below /p*|pp/+1 do 12:20:36 if? not? exists/dynast /p*|p|p/+/q*|q|q/ ,then 12:20:38 copy/dynast #myself#, /p*|ppp/, /q*|qqq/ .) 12:20:40 pretty 12:20:51 !befunge98 11-11-1-11-1---.a,@ 12:20:52 0 12:20:54 err 12:20:56 !befunge98 11-11-1-11-1--.a,@ 12:20:56 0 12:21:00 !befunge98 11-11-1-11-1-.a,@ 12:21:00 ​-1 12:21:20 !befunge98 11-11-1-1--.a,@ 12:21:21 2 12:21:26 :) 12:22:14 !befunge98 211p11g11g..a,@ 12:22:14 2 2 12:22:31 !befunge98 3y.4y.a,@ 12:22:32 1128682830 90 12:32:41 -!- pumpkin has quit (Remote host closed the connection). 12:32:52 -!- copumpkin has joined. 12:32:52 -!- copumpkin has quit (Changing host). 12:32:52 -!- copumpkin has joined. 12:34:17 Deewiant, ais523, should the funge-space in this tarpit version warp around as usual or should an IP head out into the "void" forever instead? 12:34:56 Vorpal: I doubt it matters, it depends a lot on what you consider a tarpit to be 12:35:00 wrapping sounds more useful 12:35:06 mhm 12:36:48 wrapping makes it less of a tarpit 12:38:32 ais523: Can I ask questions about VHDL of you in the form of an IRC log? 12:38:56 elliott_: you're physically capable of doing so, certainly 12:38:59 you may even get replies 12:39:07 and I won't be offended by the attempt to ask 12:39:12 Delightful! 12:39:33 http://codu.org/logs/log/_esoteric-minecraft/2011-07-06 <-- /What I don't understand how to do/ onwards (it's mostly Vorpal telling me to ask you instead) 12:39:46 [...migrating conversation] 12:39:57 Vorpal: Yeah, but that doesn't actually help me go from "logical tree with clock input" => "MC circuit". 12:40:05 There is no "clock input" block in Minecraft. 12:40:09 So there's a mismatch. 12:40:12 * ais523 reads 12:40:31 ais523: (The context is a synthesiser for Redstone logic in Minecraft.) 12:40:35 elliott_, that is where synthesis comes into it. And I have no clue how to write a program that does that. 12:40:39 (Which is basically just NOR wires.) 12:41:17 elliott_, you need to synth D-flipflops and possibly SR-latches too 12:41:24 elliott_: the usual trick, and the one VHDL is obviously intended to use (and I suspect the synthesizers use behind the scenes) is to split your circuit up into two different sorts of blocks: combinational logic (arbitrary logic with no time dependence), and 1-cycle delays 12:41:52 ais523, what about gate delay then? 12:41:53 in fact, FPGAs are made up out of elements that consist of a lookup table (with four or six bits of input), followed by an optional 1-cycle delay 12:42:15 ais523: Hmm, so I make a bunch of "sub-components" which are just pure logic trees involving no clock, and then I have connections like "Output X of block abc connected to input Y of block def with one cycle delay"? 12:42:18 ais523, and how does it do latches then? 12:42:33 Vorpal: normally the length of a cycle is chosen to be large enough that gate delay is irrelevant compared to cycle length 12:42:37 elliott_, yes then you reduced it to a problem of wire routing 12:42:48 elliott_: yep, pretty much 12:43:19 now, if you're on a hardware system where gate delay is very large, or where clock routing would be difficult, it's normally better to make an asynchronous circuit rather than a synchronous circuit 12:43:28 that doesn't require a separate clock at all 12:43:36 ais523: I would say "I'm still not sure how I go from a tree of expressions with a clock input to that form", but I suspect the answer is either "you don't" or "that's an entire research field and industry, here's a link to ten classic papers". 12:44:22 elliott_: it's not actually masssively hard, as long as the expressions themselves aren't doing anything particularly nonstandard 12:44:26 elliott_, how would you do latches in a tree of that form? 12:44:31 and if they are, your synthesis tool normally shouts and you and spouts warnings 12:44:38 Vorpal: a D latch is a one-cycle delay 12:44:47 ais523, hm. What about SR-latch? 12:45:13 it's ((output OR S) AND NOT R) followed by a one-cycle delay 12:45:21 where "output" is the output of that delay 12:45:23 elliott_, anyway you need to be able to calculate shortest clock cycle that would work I think. 12:45:25 elliott_, erm, if you have a tree of expressions, how does time actually matter? 12:45:31 ais523: I have a feeling my components will look something like: 12:45:33 foo(A,B,C) => D,E,F 12:45:33 begin 12:45:34 A nor B nor ~C => D 12:45:34 A nor ~C => E 12:45:34 A => F 12:45:34 end 12:45:36 ais523, heh 12:45:38 ais523: Where C could be a clock, say. 12:45:42 ais523: So literally as simple as it gets. 12:45:46 -!- pikhq has quit (Ping timeout: 250 seconds). 12:45:49 elliott_: that syntax is confusing me, is it reverse VHDL? 12:45:51 I'll probably have a few other primitive logical operations to "simplify" things. 12:45:56 Phantom_Hoover: Because you can have a clock input. 12:45:56 (VHDL does D <= A nor B nor not C) 12:46:04 ais523: Yes, apparently :P 12:46:07 elliott_, not if it's a tree? 12:46:09 ais523: Inputs are ABC, outputs are DEF. 12:46:14 Phantom_Hoover: 12:46:16 foo(A,B,C) => D,E,F 12:46:16 begin 12:46:16 A nor B nor ~C => D 12:46:16 A nor ~C => E 12:46:16 A => F 12:46:17 end 12:46:17 well, that's combinational 12:46:20 yeah 12:46:24 no clock dependence there 12:46:26 Phantom_Hoover: In a file elsewhere, you specify that C gets a clock input. 12:46:32 aha 12:46:39 You'd also specify literal Minecraft block locations for the other inputs and the final output of the main component. 12:46:43 what you're doing wrong, compared to standard calculation, is making both edges of the clock relevant 12:46:46 elliott_, I'm not sure if that counts as a tree... 12:46:51 Phantom_Hoover: "A nor B nor ~C" is a tree. 12:47:00 ais523, DDR FPGA! ;) 12:47:06 ais523: You're going to be shocked by me not quite understanding, I'm sure. 12:47:28 elliott_: let's see... in ordinary circuit design, you make everything in the circuit update at the "leading edge" of the clock, when it changes from 0 to 1 12:47:34 and have the change from 1 to 0 have no effect 12:47:47 Ah, hmm 12:47:53 there are physical reasons why doing that is a good idea 12:48:00 I literally made that example up without thinking because Vorpal said to use a clock input ;) 12:48:08 Gah, ;) looks way sleazier than I always intend 12:48:23 (Vorpal's mention of DDR memory is relevant, that's memory which uses both edges of the clock in order to go twice as fast as anything else on the board, it's a bit of a disgusting hack) 12:48:27 elliott_, no I meant in general, not for purely combinatorial circuits of course 12:48:32 ais523: Well, with Minecraft there's fun things like the not gates burning out if you flip them too much. 12:48:32 ais523, yeah, my suggestion was to do that but with the physics ticks as the clock. 12:48:53 Phantom_Hoover: Wait, is there still that sixteen block limit? 12:48:56 anyway, the trick is to not use your clock input like other sorts of logic input 12:48:59 Grumble grumble grumble. 12:49:03 ais523: Right. 12:49:03 elliott_: can you get around that by doing A nor A? 12:49:09 or does that burn out too? 12:49:10 elliott_, what sixteen block limit? 12:49:17 You mean for wires? 12:49:18 Yes. 12:49:20 ais523: I think you can, but a not gate (one redstone torch) is a lot smaller. 12:49:24 ais523, there are some stuff that uses two clocks 90 degrees out of phase, to do QDR 12:49:31 Vorpal: I am aware 12:49:43 ais523, and I think there is some insane memory used in gaming consoles (PS3 and such) that has octal data rate... 12:49:45 that's even more of a disgusting hack, and likely causes all sorts of problems for the engineers making those things 12:49:50 Hmm, does fancy ASIC synthesis involve any kind of three-dimensional layout? 12:50:02 I have a feeling the kind of complexities involved here are super-super-exponential :) 12:50:03 probably, even if it's just to cross wires 12:50:04 minecraft redstone is disgusting, no way around it 12:50:16 "Pack this circuit into a twenty by twenty by twenty box for me." "No. Argh. My brain. Stop. It hurts." 12:50:29 standard ASIC synthesis techniques wouldn't like having to do that, but they'd be capable of doing it 12:50:41 elliott_, no no, "here is the outline made out of intersecting cuboids that you have to fit it into" 12:50:41 Patashu, it gets even worse with pistons. 12:50:45 also, you really don't want to know how circuits are place and routed for FPGAs and ASICs in real life 12:50:47 so I can imagine 12:50:55 to do a complex sequence of pistons you have to activate them with slight delay? 12:51:04 so I'll tell you anyway: they get powerful computers to run overnight trying lots of placements with genetic algorithms, until it happens to fit 12:51:07 and then just run with it 12:51:09 the result is generally a mess 12:51:17 Yay, genetic 12:51:31 ais523, for smaller ones in FPGAs it just takes a few minutes usually 12:51:40 or do you mean the silicon layout? 12:51:47 Vorpal: no, I mean that layout 12:51:56 ais523, huh 12:51:59 it takes just a few minutes for small programs, because the routing doesn't need to be very good to make it fit 12:52:02 ais523: Anyway, is this high-level type of design correct?: You define your combinatorial circuits and whatever as the main bulk of the thing, and then you have a separate file naming the "main" circuit, and giving the Minecraft block positions of where each input signal should come from, and where each output signal should go to 12:52:05 the larger the program, the harder it is to fit it on the board 12:52:11 Obviously I'm still not sure how to do clocks, but that's the basic idea 12:52:23 Then you'd build buttons and levers and whatnot on top of it so you can actually use the inputs 12:52:25 elliott_, how do you plan to do latches? 12:52:29 elliott_: yep, that'd probably work 12:52:30 And, I dunno, noteblocks or doors or whatever at the outputs 12:52:31 what are you guys planning? minecraft circuit design? 12:52:35 seems like it 12:52:37 oh, you're making a song creator 12:52:40 Patashu: No 12:52:49 elliott_: look up the "master/slave J/K flip-flop" somewhere 12:52:53 Patashu, VHDL-oid → redstone compiler. 12:52:54 Patashu: I'm trying to figure out how feasible a Minecraft synthesis tool is :) 12:53:06 ais523, I know what a J/K one is, but not what a master/slave J/K one is... 12:53:06 Vorpal: Do latches require any special handling? 12:53:09 it's a standard circuit that you can make into various types of flip/flop 12:53:09 *googles* 12:53:16 would a midi -> minecraft noteblock approximator be easier or harder 12:53:25 elliott_, probably, do you plan to use VHDL syntax? 12:53:27 or your own? 12:53:28 Vorpal: it's basically a particular set of internals for a J/K, which has the advantage that it can be done entirely with combinatorial components 12:53:29 Patashu: Way easier 12:53:38 Vorpal: Dunno; if VHDL, definitely a subset. 12:53:47 And the actual layout file will be custom because it's, you know, Minecraft-specific. 12:53:58 the clock speed is going to be freakishly low, but it's Minecraft so it probably doesn't matter 12:54:13 elliott_, then look up how you define a process in vhdl, for sequential circuits. That is like a FSM written in VHDL basically 12:54:16 Sure it matters, you don't want your door opening two seconds after you hit your button 12:54:51 ais523: But yeah, how should I handle clock inputs if not through a regular logical input? 12:55:07 it's just a regular logical input in terms of synthesis 12:55:14 you just only use it as the clock input to a delay block 12:55:17 and not in any other way 12:55:41 ais523, err routing needs to be done so all parts get the clock at the same time 12:55:59 Vorpal: actually, that's not strictly necessary as long as the clock is slow enough 12:56:07 and in actual FPGAs I would guess that the clock wires are hard-wired, no? 12:56:09 it's just that the more symmetrical the clock routing, the faster you can clock it 12:56:21 indeed 12:56:23 ais523: Would it be fair to say that a redstone synthesiser would be way beyond my knowledge and abilities of synthesis at this point? :-P 12:56:23 and in actual FPGAs, there are hardwired symmetrical clock wires in order to help bring the clock speed up 12:56:32 "How hard can it be?", I thought. "It's just NOR gates." 12:56:33 elliott_: I wouldn't say way beyond 12:56:51 I'd say if you really cared about doing it, and focused on it for a few weeks, you could probably get there 12:56:54 but you'd likely get bored first 12:57:05 That's just a general me-related assessment, nothing related to the project :P 12:57:10 elliott_, if you just want combinatorial expressions without any state then yes, it is much simpler 12:57:21 Vorpal: Surely you can simulate state with the former. 12:57:32 Minecraft seems pretty much perfectly suited for asynchronous design, actually 12:57:35 I just want delay handling and basic logics. 12:57:38 Yes, LOGICS plural. 12:57:45 but it has the downside of making the input programs harder to write 12:57:51 Without handling of time it's pretty much useless because you can't make circuits that actuall ydo aynthing. 12:58:02 ais523, indeed, everything is clocked in a way, redstone updates on ticks of the game engine 12:58:14 Vorpal: which would make the main problem of asynchronous design way easier to solve 12:58:17 ais523: Well, it can't be harder than the current method of creating redstone circuits (= manually designing and laying them out by hand) 12:58:21 ais523, I think almost all my redstone circuits (some fairly complex) have been mostly asynchronous 12:58:32 I thought there was a redstone developer tool? 12:58:36 sounds better than 'by hand' 12:58:37 you can rely on wires to transmit signals at a consistent rate 12:58:40 I have done a few clocked ones, but usually only for some part 12:58:43 what are the semantics of redstone, anyway? 12:58:48 Patashu: Probably just "Paint: The Redstone Edition" 12:59:01 ais523: NOR wires and a NOT torch, as I understand it 12:59:12 ais523: Plus signals only travel along a wire for sixteen blocks and then you need a repeater 12:59:12 what do you mean by "NOR wires"? 12:59:14 ais: complex 12:59:16 Repeaters also have a delay setting 12:59:19 From zero to eight or so 12:59:20 ais523, well, the redstone wire transmits a wire instantly up to 15 blocks along the wire. Then you need to add a repeater (adds a 1 tick delay) 12:59:28 if you want it going any further I mean 12:59:30 ais523: If you're up for opening a browser... http://www.minecraftwiki.net/wiki/Redstone_circuits 12:59:40 ais523: NOR wires and a NOT torch, as I understand it 12:59:41 It summarises the mechanism briefly 12:59:42 Erm, no. 12:59:53 Wires, and a 3-input NOR gate. 13:00:02 Well, right, same thing. :p 13:00:10 You create the gate by laying wire, that's all that matters. 13:00:23 ais523, then there are redstone torches, which are basically inverters. Can be used to make a NOR gate. You can make "connect wire-together" style OR of course, but that has the obvious disadvantage of flowing back into the inputs 13:00:26 No, the gate needs a torch and a semiconducting block. 13:00:49 Phantom_Hoover, "semiconducting block"? 13:01:12 Vorpal, non-transparent and non-redstone or repeater. 13:01:44 ais523, there are a number of quirks as well, like repeater in front of solid block doesn't just power the block, but actually powers through it. (can be used to make a physical OR or AND gate with pistons, that is quite a bit slower though) 13:02:11 hmm, I think I prefer CUBE's way of doing things 13:02:18 CUBE? 13:02:20 So what's the VHDL for 13:02:20 foo(A,B,C) => D,E,F 13:02:20 begin 13:02:21 A nor B nor ~C => D 13:02:21 A nor ~C => E 13:02:21 A => F 13:02:21 Vorpal, a lot of the edge cases are frankly nondeterministic. 13:02:23 end 13:02:24 Phantom_Hoover, http://www.minecraftwiki.net/wiki/File:Pistongates.png <-- I seen those before (I made one of them) 13:02:25 Including the declaration 13:02:28 (not me who took the screenshot) 13:03:03 Vorpal, a lot of the edge cases are frankly nondeterministic. <-- some are deterministic and can be exploited 13:03:17 Vorpal, sure, but consider the 2x2 piston door. 13:03:19 Yeah yeah, but that's not relevant to synthesis. 13:03:32 Phantom_Hoover, yeah that depends on chunk boundary as far as I can tell 13:03:49 wow, chunk boundaries affect redstone processing? 13:03:52 Vorpal, sceptical of that. 13:04:21 I think we've successfully scared ais523 away. 13:04:42 this Minecraft stuff is just too complex for me to visualise 13:04:49 it seems like a particularly crazy set of primitives to use 13:04:53 ais523: It's not; Vorpal is overcomplicating things because he's Vorpal. 13:04:56 elliott_, well.. library IEEE; using ... blah blah; entity foo is port (A,B,C: in std_logic; D, E, F: out std_logic) end foo; 13:05:00 followed by 13:05:17 elliott_: based on the page you linked 13:05:34 ais523: They're also overcomplicating things because they're a minutiae wiki. 13:05:40 architecture whatever of foo is begin D <= A nor B nor not C; E <= A nor not C; F <= A; end whatever; 13:05:49 I should have just referred you to Phantom_Hoover, GOD OF ALL EXPLANATION. 13:05:54 Vorpal: Wow well fuck that I'm using my own syntax. 13:05:56 elliott_: fair enough 13:06:04 I noticed that page has a design for an edge-triggered D flip-flop, though 13:06:13 which is the only sequential circuit you need 13:06:20 and everything else can just be logic gates 13:06:21 ais523, the issue with mc redstone is basically that there are quite a few edge cases. If you keep away from them it is quite simple 13:06:40 ais523: So I take it combinatorial circuits can't call out to other circuits? You have to lay it out more manually. 13:06:47 ais523, OK, basically, torches can be placed on a block, and will power all blocks they are immediately adjacent to when on. 13:06:58 elliott_: sure they can, as long as you know what you mean by "call out" 13:07:04 (Except the block they're placed on.) 13:07:11 ais523: I don't. 13:07:17 If the block they're placed on is powered, the torch is deactivated. 13:07:19 elliott_: heh 13:07:25 Phantom_Hoover, is that ground-torch or wall torch? 13:07:29 Vorpal, either., 13:07:32 ah right 13:07:33 the normal equivalent to function calls in VHDL is effectively just #define from C 13:07:38 Phantom_Hoover, wall torch powers block below? 13:07:43 Yes. 13:07:46 heh 13:07:48 you just have standard arrangements of wires, that you inline in more complicated versions 13:07:51 ais523: I mean e.g. foo(A,B) => C; begin C <= bar(A,B) nor A; end; 13:08:03 ais523: Yeah, I suppose inlining is basically the name of the game 13:08:07 elliott_: yes, you just inline 13:08:11 ais523: At the end of it all there's only one circuit 13:08:17 With a bunch of fixed-position outputs and inputs 13:08:35 elliott_, nope, that doesn't make sense. You do some wire connecting to an entity instead. 13:08:38 in vhdl I mean 13:08:38 well, /I/ don't just inline, because my whole Master's project (that lead into my PhD) was looking into ways to not have to inline 13:08:41 but everyone else does 13:08:56 functions are usually built in ones, like rising_edge(signal) iirc 13:09:12 ais523, so how did you manage to not inline? 13:09:12 Vorpal: actually, that's an abbreviation for signal'event and signal = '1' 13:09:25 ais523, okay I was using signal as a variable name here 13:09:29 forgot that it was a keyword 13:09:32 Vorpal: so was I 13:09:35 ah 13:09:36 I also forgot it was a keyword 13:09:36 elliott_, nope, that doesn't make sense. You do some wire connecting to an entity instead. 13:09:41 Um, ais523 just said what I said made sense. 13:09:46 ais523, I think it is? 13:09:56 elliott_, hm 13:10:00 Vorpal: yes it is, I couldn't have forgotten it was a keyword if it wasn't a keyword 13:10:26 Vorpal: as long as you know a function isn't being accessed from two places simultaneously, you can basically connect it to a multiplexer/demultiplexer 13:10:34 hmm, I should so abbreviate that to mudem 13:10:44 true 13:11:03 there's a lot of mathematical basis behind calculating when that optimisation is safe and when it isn't 13:11:43 ais523, btw it is interesting how not (a xor b) is a == b (if a and b are single bits). 13:11:54 why is that interesting? 13:11:54 no shit sherlock 13:12:03 XOR is the NOT EQV 13:12:04 hm, I just think it is 13:12:06 ooold 13:12:07 elliott_, I know 13:12:08 s/the // 13:12:09 it is cool though 13:13:18 Hmm, is "Q" usually used as the variable name for the final output of a logical operation? 13:13:24 yes 13:13:24 yep 13:13:30 ais523, how do you make a monostable circuit in vhdl? 13:13:43 same way you make any other time-dependent circuit 13:13:46 hm 13:13:59 I want to know how too actually 13:14:05 Hmm, is "Q" usually used as the variable name for the final output of a logical operation? 13:14:16 a one-cycle monostable is simplest, it's just a one-cycle delay 13:14:22 Clearly it's for charge, representing the charge passed through the wire. 13:14:28 for a multiple-cycle monostable, it's probably clearest to use a counter 13:14:35 or else a shift register 13:14:38 depending on what you're trying to do 13:14:45 Hmm, is "Q" usually used as the variable name for the final output of a logical operation? 13:14:46 yes 13:14:46 aah 13:14:47 in answer to that? 13:14:52 counters are going to be better for long delays 13:15:01 elliott_: my yes was an answer to your question about q 13:15:05 right 13:15:11 Phantom_Hoover was joking, I think 13:15:32 Wow, what the hell is XNOR for. 13:15:48 Also: Is it just me, or is a good thirty percent of what synthesisers do common subexpression elimination? 13:15:53 XNOR or EQV comes in useful sometimes 13:16:14 elliott_: hmm, I didn't actually know they did CSE, although it wouldn't surprise me 13:16:24 sometimes they do common subexpression introduction, for fanout reasons 13:16:33 ais523: Well, if your primary method of composing programs is inlining... 13:16:42 ais523: "An XNOR gate can be constructed from four NOR gates implementing the expression "(A NOR N) NOR (B NOR N) where N = A NOR B"." 13:16:47 ais523: Surely at the lower level, N would be inlined here? 13:16:56 And thus it would be up to CSE to find out that it didn't have to construct two identical (A nor B) gates. 13:17:07 elliott_: actually, it all gets converted into lookup tables 13:17:21 it'll see there's only two inputs, and just put the truth table for an XNOR right into the FPGA 13:17:33 FPGAs aren't based on NOR/NAND behind the scenes 13:17:52 ais523, how is a lookup table constructed in silicon hm... 13:17:58 ais523: Well OK yes but redstone is. 13:18:06 ais523: Maybe I should convert it all to lookup tables and then convert it back to redstone. 13:18:14 elliott_: yep, so standard synthesis techniques wouldn't map directly onto Minecraft 13:18:28 what causes a redstone torch to burn out? 13:18:34 A xnor B => Q; 13:18:34 N := A nor B; 13:18:34 Q <= (A nor N) nor (B nor N); 13:18:34 end; 13:18:34 I have a feeling that making that := construction do anything but introduce a macro-esque thing is a Bad Idea. 13:18:40 (I mean, relying on it to not duplicate things.) 13:18:43 what causes a redstone torch to burn out? <-- toggling too fast 13:18:49 Vorpal: ah, that makes sense 13:19:06 Vorpal: I really hate Notch for that. 13:19:12 "Hmm... a virtual world... anything is possible..." 13:19:13 ais523, I think it is basically to stop lag killing the game. Toggling every third cycle seems to work fine. 13:19:21 "I know! I'll introduce arbitrary physical limitations!" 13:19:32 elliott_, like... falling too far kills you? 13:19:37 there's a bukkit plugin for redstone chips 13:19:41 but that's not esoteric anymore 13:19:47 Patashu, there are several iirc 13:19:50 yeah 13:19:54 redstonechips, craftbook... 13:19:57 yep, I was thinking that it was probably going to be something to do with preventing circuits taking up too much processor power 13:20:20 Patashu, I "love" how craftbook has a NOT-chip that is larger than a pure redstone inverter 13:20:30 it's probably for consistency 13:20:37 like if you put a craftbook chip down and realize 'darn, I actually need NOT' 13:20:39 you can just hot swap it 13:20:41 on the other hand, craftbook *does* have some useful ones. Like light detector, water detector, and so on 13:21:05 Patashu: it reminds me of the 0-ohm resistors you can buy 13:21:09 the IO ones are moderately useful in craftbook. PRNG too. 13:21:10 exactly 13:21:19 in case you happen to need a wire with the form factor of a resistor, say for wire-crossing on PCBs 13:21:26 I've suggested a circuitry system for terraria that involves wireless connections only, to < 1309976515 323147 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Something has gone terribly amiss on Codu :P 18:22:03 confidence in prgmr rising and rising 18:22:04 hey Gregor 18:22:08 IM GETTING MY FIRST MONTH OF PRGMR FREE 18:22:10 BECAUSE THEY LOVE ME 18:22:35 but the mouse was struggling till the end, is it just like mouse reflexes? 18:23:13 confidence in prgmr rising and rising <-- you are kidding right? 18:23:30 I'm guessing the nervous system that controls the twitches is disabled after higher brain functions. 18:23:39 Inasmuch as a hamster *has* higher brain functions. 18:23:43 Vorpal: yes :D 18:23:55 elliott_, so you won't get prgmr next time I guess 18:24:05 Vorpal: nothin' wrong with them 18:24:07 Gregor just has bad luck 18:24:17 elliott_, and you too 18:24:27 no i have all the luck 18:24:41 elliott_, you didn't get your vps yet 18:25:29 Phantom_Hoover: maybe we should tell the youtube people that only the hamster's nervous system was tortured. although probably torturing a large logical gate constitutes a horrible thing to do if it comes in a cute container. 18:25:57 oklopol, says the large logical gate. 18:26:00 `addquote ... only the hamster's nervous system was tortured. although probably torturing a large logical gate constitutes a horrible thing to do if it comes in a cute container. 18:26:05 483) ... only the hamster's nervous system was tortured. although probably torturing a large logical gate constitutes a horrible thing to do if it comes in a cute container. 18:26:11 Phantom_Hoover: well at least i have some looping going on 18:26:34 Hamsters iterate. 18:26:37 oklopol, somehow I doubt that hamsters are a fixed boolean gate. 18:26:46 but i think the twitching system is. 18:26:59 well 18:27:53 probably it's like incredibly complicated, but it certainly doesn't seem very interesting. 18:28:07 but i guess that doesn't really matter when discussing how bad it is to torture it 18:28:39 because for instance torturing people without IO is considered horrible (even more horrible than torturing those with IO) 18:28:53 althouhg humans 18:28:54 argh 18:29:01 oklopol, really, cats are even worse. 18:29:10 although different rules apply to humans so that's a bad example 18:29:18 Phantom_Hoover: you mean at torturing? 18:29:29 i'm aware 18:29:37 but cats are cute 18:29:55 they are at least as cute as mice 18:30:09 so i don't think it's that unethical if they torture mice 18:30:50 http://www.google.com/search?q=ugly%20cat&tbm=isch 18:30:52 i wish someone would write these rules down in a nice and accessible way, it has taken me years and years to deduce them from listening to idiots 18:30:52 cute stuff 18:36:35 -!- Gregor has set topic: TOPIC: Are hamsters Turing-complete? | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 18:36:56 http://www.google.com/search?q=ugly%20cat&tbm=isch 18:36:57 ahahaha 18:37:13 `delquote 483 18:37:14 ​*poof* 18:37:20 `addquote [...] only the hamster's nervous system was tortured. although probably torturing a large logical gate constitutes a horrible thing to do if it comes in a cute container. 18:37:21 483) [...] only the hamster's nervous system was tortured. although probably torturing a large logical gate constitutes a horrible thing to do if it comes in a cute container. 18:37:26 Yeesh :P 18:37:54 the problem with that is every idiot in the planet wants to repeat what Phantom_Hoover said when they see it 18:37:58 *on 18:38:17 Hey, what'd I say? 18:38:30 i'm not saying you're an idiot 18:38:44 Yeah, I'm just wondering which thing you're referring to. 18:38:47 ohhhhh 18:38:52 just the says the large logical gate 18:39:16 i mean it's funny but it's kind old 18:39:24 i mean 18:39:32 humor. humor is kinda old after this many years. 18:39:41 whats humor 18:40:29 In other news, someone on /r/AskScience thinks Minkowski space is hyperspace from Star Wars. 18:40:52 Is there any relation at all? 18:41:37 The most often-used Minkowski space is the 3+1 dimensional one, which is a hyperspace by one definition. 18:41:46 what R^4? :D 18:41:51 oh is it a physics thing 18:41:58 Phantom_Hoover: Not the Star Wars one though ;P 18:42:04 oklopol, well, no, it's a maths thing used in physics. 18:42:06 Yes, but Star Wars "hyperspace" is nothing more than advanced phlebotinum. 18:42:19 And yet, subspace is BETTER. 18:42:30 Gregor: That's Star Trek. 18:42:35 Exactly! 18:42:44 Like I said: Better :P 18:42:48 ... No argument there. :P 18:42:49 pikhq, yes, please stop lecturing me on things you know damn well I understand. 18:43:45 Phantom_Hoover: ... I was lecturing? 18:44:37 pikhq, you were about to launch into one of your "hey let me tell you all about this thing you just brought up", even though I know perfectly well what the difference is. 18:45:01 Phantom_Hoover: Actually, no, I wasn't. 18:45:18 pikhq, then let the matter end here. 18:45:28 There's really nothing more to be said about Star Wars "hyperspace". It's advanced phlebotinum. Absolutely nothing else *exists* about it. 18:45:33 Mmkay. 18:45:57 pikhq: Related: http://codu.org/tmp/doubletie2.jpg 18:46:02 oklopol, so yeah, it normally means R^4 with a weird distance metric. 18:46:18 Gregor: T3h awesome. 18:46:27 I have invented the future of neckties. 18:47:05 Actually, yes.. 18:47:34 According to the documentary "Back to the Future", it will be custom to wear multiple ties in a mere 4 years. 18:47:38 :) 18:48:00 OK, you're the second person to mention that, I guess I need to find that scene :P 18:48:07 http://images.wikia.com/bttf/images/1/19/Mockfry.jpg 18:48:17 i cant wait 18:49:04 On a scale from one to ten, my doubletie style is far, far better than that :P 18:49:17 No argument. 18:49:25 pikhq: Related: http://codu.org/tmp/doubletie2.jpg <-- Is that two different ties in one? 18:50:01 Vorpal: Yup 18:50:15 God. 2015 is 4 years from now. Where's my flying Delorean? 18:50:16 Gregor, try three now 18:50:36 pikhq, living in the future sucks. 18:51:03 Vorpal: *shakes fist* 18:51:13 Two works well because humans are all symmetrically :P 18:51:14 The past just keeps coming up to us and tries to make us feel guilty. 18:51:34 `addquote pikhq, living in the future sucks. The past just keeps coming up to us and tries to make us feel guilty. 18:51:35 484) pikhq, living in the future sucks. The past just keeps coming up to us and tries to make us feel guilty. 18:51:42 Gregor, but yours are intertwined anyway 18:51:49 Dammit, I mixed the tenses. 18:51:56 I don't want that going down for posterity! 18:51:57 Vorpal: Yeah, but to get them that way I have to wrap them 'round my neck somehow. 18:52:01 `delquote 484 18:52:03 Vorpal: And the way I do that is one in each direction. 18:52:03 ​*poof* 18:52:08 Vorpal: Any other way would create an imbalance. 18:52:13 `addquote pikhq, living in the future sucks. The past just keeps coming up to us and trying to make us feel guilty. 18:52:14 Gregor, ah so two 4 then, two at front, two at back 18:52:15 484) pikhq, living in the future sucks. The past just keeps coming up to us and trying to make us feel guilty. 18:52:21 ... wow :P 18:52:32 Gregor, like the idea? 18:52:42 Gregor, you know you have to try it 18:53:07 Gregor, anyway isn't having only one tie imbalanced? 18:53:33 Vorpal: Yeah, half of what goes into tying a tie is about balancing it again. 18:54:30 Anyway, the point is that doubleties rule and >=tripleties will have to wait 'til at least 2015 :P 18:55:02 -!- Lymee has quit (Ping timeout: 255 seconds). 18:55:58 Gregor, hm... what about ties all around? 18:56:18 probably the actual mechanism for them being attached to you would have to be modified 18:56:25 ... wow X-P 18:56:35 I mean, it would likely be bulky otherwise 18:56:53 Gregor, no? 18:57:16 Here I go and invent the future of neckties. 18:57:24 And everybody's like "Oh we want the future of the future of neckties" 18:57:46 i'm not, all i'm saying is you shouldn't wear a tie at all 18:58:02 the future is about taking your clothes off, not putting more of them on 18:58:15 Gregor, have you tried wearing it like in back to the future? 18:58:19 side by side I mean 18:58:52 Vorpal: That doesn't even make any sense with a normal collar ... hell, it barely makes sense with a modified collar, you'd need to clip them for them to not get in each others' way and they'd always make you look stout. 18:59:21 Gregor: imo tie number two doesn't show enough, it might as well just be coloring on tie #1. 18:59:37 you don't see its glans for instance 18:59:46 oklopol: But it adds /texture/ as well as color. 18:59:49 well you won't with a suit anyway i guess 18:59:56 Gregor, anything wrong with stoutness? 19:00:21 Gregor: sures 19:00:26 Vorpal: If you're >6ft tall, you can probably afford to look a bit stout, otherwise you should be aiming in the other direction :P 19:00:42 Gregor, what is that in SI? 19:01:11 Vorpal: ~1.8m 19:01:21 Gregor, 1.8? that is short :P 19:01:27 Friggin' nords. 19:01:28 I'm 1.89 meters 19:01:52 i'm 1.8 and i consider myself pretty short 19:01:52 actually last I checked I was 1.895, which means I should round it to 1.9 19:02:01 wow shut up 19:02:06 elliott_, what? 19:02:08 well 19:02:08 Friggin' nords. 19:02:09 in finland 19:02:14 in europe, everyone's just tiny 19:02:17 Need I say it again: 19:02:19 FRIGGIN' 19:02:19 NORDS 19:02:22 what!? 19:02:27 Nordic peoples :P 19:02:46 fNORDS 19:02:48 Gregor, are we unusually tall? I thought that was a myth 19:02:56 everything's a myth, everything is true 19:03:02 I mean, you surely have tall people in US too 19:03:10 there are short peoples here in Sweden as well 19:03:15 Vorpal: The average is taller. 19:03:29 I know someone in my age who is like 1.5-1.6 or so 19:03:38 I'm (I guess) about 1.77m, and slightly above average for American men. 19:03:53 wait that preposition was a Swedishism right? 19:04:02 it isn't "in my age" in English is it? 19:04:08 it's correct 19:04:14 yay 19:04:16 It's not correct :P 19:04:19 sure is 19:04:19 ah... 19:04:30 Gregor is just kind of a wank 19:04:31 "in my age group" would be right in some circumstances, but just "my age" 19:04:33 Gregor, what is the correct way to say it then, someone who is about as old as you are 19:04:46 Gregor, with no preposition for the latter? 19:04:47 "about my age" to emphasize that it's an estimate. 19:05:00 "I know someone about my age who ..." 19:05:00 oh that's how he used it 19:05:17 sorry i'm not actually reading what Vorpal is saying 19:05:21 "i min ålder" is idiomatic in Swedish, but obviously not in English 19:05:27 Vorpal would not believe my height :P 19:05:38 elliott_ is 0.65m 19:05:38 elliott_, I know you are short, forgot how short. 19:05:42 about 1.5m 19:05:44 ah 19:06:10 But he's also probably still at a growin' age. 19:06:16 elliott_, you aren't fully grown yet though. The person who I mentioned above is. 19:06:21 I was also short when I was 8 19:07:12 I was like 10ft tall when I was 8. I shrank. A lot. 19:07:18 olsner, oh so was I, I was only second tallest in my class in school :P 19:07:27 I forgot how tall that was though 19:07:50 "in my age" is most certainly correct english but mostly as in "in your age i already had a job" but when talking to yourself 19:08:07 -!- Lymee has joined. 19:08:20 oklopol, ah 19:08:32 oklopol: That's "at your age" or "at my age", not "in your age" or "in my age". "In age" would be talking about age in the sense of an epoch of time. 19:08:39 -!- BeedaWeeda has joined. 19:08:39 -!- BeedaWeeda has quit (Changing host). 19:08:39 -!- BeedaWeeda has joined. 19:08:49 Gregor: sure 19:08:51 when i was your age 19:08:54 Like "in my age" would probably mean "in the era of my youth" 19:09:00 at is better 19:09:56 Long story short: oklopol lies, trust those who natively speak English and its over-the-pond derivative. 19:10:01 :P 19:10:26 trust... americans? 19:10:31 you can certainly say things like "you shouldn't do that in your age" 19:10:38 besides, even I feel short sometimes. At the local Aikido club there is one guy who I estimate is about 2 meters tall. 19:10:41 Gregor, ^ 19:10:46 elliott_, you aren't fully grown yet though. The person who I mentioned above is. 19:10:49 Vorpal: FRIGGIN' 19:10:51 Vorpal: NORDS 19:10:56 i'm a few inches taller than my mother, so don't get too hasty :) 19:11:01 Gregor, well he is definitely above average up here 19:11:13 Vorpal: 2m is above average (nearly?) everywhere :P 19:11:25 Gregor, yeah 19:11:32 elliott_, ouch 19:11:42 short mother 19:11:47 elliott_, well I'm taller than both my parents (who are already rather tall) 19:11:56 Gregor, how tall are you? 19:12:01 you can certainly say things like "you shouldn't do that in your age" 19:12:05 In metric, I guess about 1.77m 19:12:11 Gregor, ah, quite short 19:12:18 I've never heard 'in' used that way. 19:12:22 neither have I 19:12:24 Vorpal: SLIGHTLY TALL >_< 19:12:28 Friggin' nords. 19:12:29 Phantom_Hoover, it was a language mixup indeed 19:12:30 It's always 'at'. 19:12:39 Phantom_Hoover: I've given up :P 19:12:40 short mother 19:12:41 shother 19:12:46 shortest 19:12:57 i'm sure i'll find a use that sounds okay 19:13:06 Short Mother, the new gangsta' rap hit by monqy. 19:13:16 you people just lack imagination 19:13:21 oklopol: I told you one :P 19:13:35 " I've never heard 'in' used that way." <<< me neither, what does that have to do with anything 19:13:42 Gregor: true 19:14:17 Gregor: but not a whole sentence that sounds good 19:14:52 In my age, we entertained ourselves by pushing a hoop with a stick down a dirt road. 19:14:53 Gregor: 1.77m isn't quite "short" just because Vorpal says so, but it's not exactly tall either... untall perhaps 19:15:02 ah yeah 19:16:26 "you shouldn't do that in your age" is rather hard to interpret 19:16:42 Y'know, I'll bet that hoop-with-a-stick game is actually really friggin' difficult. 19:16:49 no it's not 19:16:51 I guess it depends on the shape of the hoop. 19:17:02 If it's like a hula-hoop, it'd be nigh on impossible. 19:17:03 the average is 1.815m apparently 19:17:19 olsner: Average where? 19:17:24 sweden obviously 19:17:29 because they're swedes 19:17:57 Y'know, I'll bet that hoop-with-a-stick game is actually really friggin' difficult. <-- hm? 19:18:12 oklopol: Well, coulda been Scandinavia, or all the Nordic countries. 19:18:25 Vorpal: Where you push a hoop with a stick, trying to keep it upright. 19:18:59 Gregor: NO 19:19:09 Gregor, I'm not familiar with that game 19:19:21 oklopol: " I guess it depends on the shape of the hoop. If it's like a hula-hoop, it'd be nigh on impossible." 19:20:10 W|A on "average human height in Sweden": Input interpretation: "human | height | Sweden | highest point" 19:20:12 XD 19:20:18 "Assuming a list | Use multiplication instead" 19:21:22 Gregor: usually it's like a bike wheel 19:21:36 so easy 19:21:43 Well, that's better than a hula-hoop ... 19:21:43 i mean without the actual tire 19:21:46 AH 19:21:52 Then that's a lot easier, yes. 19:22:01 Because it's actually relatively stable upright. 19:22:24 oklopol: Why do you have so much experience with hoop-and-stick? :P 19:22:34 well exactly as stable as one with the tire if it's moving, point is you can actually do something with the stick 19:22:50 Gregor: my fetish: learning pointless skills 19:23:23 `addquote oklopol: Why do you have so much experience with hoop-and-stick? :P Gregor: my fetish: learning pointless skills 19:23:24 485) oklopol: Why do you have so much experience with hoop-and-stick? :P Gregor: my fetish: learning pointless skills 19:23:48 i have actually tried that only once but there's really nothing to learn 19:25:58 Gregor: okay i give up, can you make "in your age" make sense as well? :D 19:26:31 maybe just the same way but that sounds just kind of weird 19:26:45 oklopol: In my age, we entertained ourselves by pushing a hoop with a stick down a dirt road; in your age, you entertained yourself with heroin and prostitutes. 19:27:07 hmm right like when HE was a kiddo 19:27:31 btw i saw my first prostitute about a week ago 19:27:56 `addquote btw i saw my first prostitute about a week ago 19:27:57 486) btw i saw my first prostitute about a week ago 19:27:59 Is "saw" a euphemism here :P 19:28:05 :D 19:28:07 he just looked at him 19:28:09 staring 19:28:19 they were usually kind of ugly 19:28:45 i (literally) saw some cute ones in germany of all places, but i was not alone so didn't try 19:29:08 ..."try" because sex is so hard to get right. 19:29:43 With a legit partner, sure. With a prostitute, not so much :P 19:30:08 lesson learned: partners make sex unneccessarily difficult 19:30:19 *legit 19:30:50 good thing my partner is an ex con........... SEX con......... 19:31:09 have you lost the bet yet? 19:31:20 wait what were the rules, can you take it up the old blackie? 19:31:45 if im still a virgin by seventeen you give me money, hint, you are going to be giving me money 19:32:12 and i'm asking what is considered virginity 19:33:10 okay i thought i got tachycardia but it was just the neighbor playing music 19:33:12 elliott_, wait what? oklopol gives money to people who are virgins at a certain age? 19:33:40 yeah Vorpal i'm not giving you bonus for being virgin at 20 19:33:55 oklopol, what about 22? 19:34:04 nope 19:34:18 i'm not sure i could feed the whole channel 19:34:18 oklopol, anyway I has already been 17 19:34:27 have* 19:34:28 gah 19:35:06 "anyway I has already been 17" is actually more valid english than your earlier sentence, since it's actually in use by many interesting people 19:35:17 hm 19:35:35 bad sentence 19:35:36 go away 19:35:36 no natives though :D 19:35:47 hopefully 19:36:51 in your age you probably don't hear much as a general i have my own grammar type of thing, but it seems to be a relatively common swedishism 19:37:24 anyway 22 is nothing compared to SOME PEOPLE i know who are still virgins 19:39:57 oklopol, so why wouldn't elliott_ be a virgin by 17? the odds are in his favour 19:40:18 well let me let you in on it 19:40:23 everyone else ignore me for just a little bit 19:40:27 done? 19:40:28 okay 19:41:03 so Vorpal see i'm actually a devout christian and i'm trying to keep him a virgin until he gets married 19:41:25 XD 19:41:34 with most people on the channel i have some sort of technique of doing this, with elliott it's an open bet 19:41:45 with you, well, i really didn't have to do anything 19:41:52 okay everyone can unignore me now 19:41:53 tell them 19:42:11 -!- azaq23 has joined. 19:42:19 Vorpal: could you please tell them? 19:42:31 i don't wanna be silent :\ 19:42:39 i wanna be hurd 19:42:48 whoops 19:42:49 freudian slip 19:43:03 thank god i was ignored because i certainly didn't want anyone in on *that* 19:43:39 `say sadjkf 19:43:41 No output. 19:43:43 argh 19:43:54 `tell sadjkf 19:43:56 No output. 19:43:59 :( 19:44:03 my life is ruined 19:44:03 oklopol, so why wouldn't elliott_ be a virgin by 17? the odds are in his favour 19:44:04 What are you trying to do :P 19:44:06 gee thanks :D 19:44:12 Gregor: trying to get people to unignore me 19:44:15 and i'm asking what is considered virginity 19:44:18 we hashed out the entire definition 19:44:21 `echo It's echo, genius :P 19:44:22 It's echo, genius :P 19:44:27 Gregor: thanks 19:44:37 i wanna be hurd <-- gnu hurd? 19:44:40 yeaaaah right 19:44:41 `echo please unignore me now okay, says oklopol 19:44:42 please unignore me now okay, says oklopol 19:44:49 erm 19:44:53 whoops typo 19:44:54 *hird 19:44:58 oklopol, ah 19:45:24 gee thanks :D <-- well come on, you are a geek. 19:45:45 Gregor: `echo is kind of silly 19:45:53 oklopol: Dood ... it's UNIX >_< 19:45:55 `which echo 19:45:57 ​/bin/echo 19:46:02 `which which 19:46:03 ​/usr/bin/which 19:46:05 who's ignoring the oklo? 19:46:07 (Debian in fact) 19:46:11 Gregor: i know it's unix 19:46:15 Vorpal: geek =/= socially retarded 19:46:22 i happen to be socially retarded, but they're not the same thing. 19:46:26 olsner: everyone ignored me for a while 19:46:30 because i asked 19:46:33 elliott_: No, more like geek (subsetof) socially retarded :P 19:46:38 oklopol: I didn't 19:47:01 i'm neither a geek nor socially retarded, i'm just kind of stupid 19:47:17 olsner: well then you're an asshole i guess :( 19:47:26 I guess so 19:47:26 olsner: don't tell anyone what you heard plz 19:47:27 i ignored oklopol when he told me to ignore him 19:47:39 that is 19:48:01 i did not heed his command 19:48:11 that is 19:48:13 i heard the whole thing 19:48:14 `run ln -s /bin/echo bin/say 19:48:15 oklopol: heard? I saw text but heard nothing 19:48:16 No output. 19:48:22 `say lulstupidcommands 19:48:23 lulstupidcommands 19:48:35 Gregor: thanks, that's actually possible to guess 19:48:50 unlike echo, what the fuck is that supposed to mean 19:49:01 i'm not in a cave 19:49:11 really? 19:49:36 Except that `echo is quite guessable if you know what HackEgo is :P 19:50:27 -!- CakeProphet has joined. 19:50:27 -!- CakeProphet has quit (Changing host). 19:50:27 -!- CakeProphet has joined. 19:50:43 Gregor: well i know, didn't actively remember because it's so incredibly uninteresting 19:50:43 flip some consonants in that name and you'll get HagEcho 19:50:47 :D 19:51:00 olsner: now there's something i can understand 19:51:01 -!- Lymia has joined. 19:51:02 elliott_: No, more like geek (subsetof) socially retarded :P 19:51:02 yawn 19:51:06 foldl, applied to a binary operator, a starting value (typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right 19:51:14 the idea of having two different identites intrigues me. 19:51:50 i saw the most horrible geek, he was like the most geek geek ever and he was at this party and he was being such a geek and everyone was like wow now that guy's a geek 19:51:52 easily intrigued? 19:51:53 i tell the best stories i know 19:53:04 his shirt looked like one of those star trek shirts although it was slightly different 19:53:10 geekhood and social retardation may be correlated but loads of people have either without having both 19:54:01 -!- Lymee has quit (Ping timeout: 246 seconds). 19:57:18 i usually try to tell people i'm a mathematician as fast as possible so they know i'm a geek 19:57:39 ooh, mathematician 19:58:10 people have very different reactions really 19:58:10 I say I'm an informatician. 19:58:17 informatician :D 19:58:48 something for everyone 19:58:52 #1 reason to use the word "informatics" instead of "computer science": Nobody thinks they know what informatics means, whereas people think they know (but in fact do not know) what computer science means :) 19:59:10 my title is "Developer" ... I guess I'm a programmer 19:59:28 #2 reason: Nobody asks you to fix their computer if you tell them you're an informatician. 19:59:30 same with math really, could someone supply me with the math version of informatics 19:59:41 numerology 19:59:44 maybe 19:59:51 hehehehehe 19:59:53 i actually told this norwegian woman i do math 19:59:55 and she says 19:59:58 with a straight face 20:00:05 oh that's cool, i'm reading a book on numerology 20:00:16 and i'm like 20:02:49 ok, I now proclaimed me a Certified WOMM Certification Engineer 20:04:59 oh and then there was another norwegian who was like "wow i love math, i remember when our math teacher taught us that one is not actually REALLY one!" 20:05:09 wow what 20:05:16 haha 20:06:18 what can i say to that 20:07:05 just think about it, the one thing she has committed in her memory about WHAT MATH REALLY IS ABOUT is some misunderstanding of set theory of her teacher's 20:07:19 or whatever, i don't really know what her teacher had misunderstood 20:07:46 I say I'm an informatician. 20:07:55 i kind of like "computing theorist" but it sounds really pretentious :D 20:08:05 computing theorist is good 20:08:47 i guess i could just say i study informatics as well, ca theory is just computer science anyway 20:09:14 says majority voting of unis at least 20:09:37 hey 20:10:01 what if i started saying i study symbolic dynamics 20:10:01 :D 20:10:27 (the theory of CA when you only run them for a single step.) 20:11:01 (but same topology, measures and techniques) 20:12:05 (and has more mathy content because you it mixes well with linear algebra when you take the n states as the basis of R^n) 20:12:10 *-you 20:12:48 mm i love talking about math 20:13:10 i could just barely drag myself out of the university because there was just so much math there 20:16:36 what does "symbolic dynamics" sound if you don't know anything about anythign? 20:16:38 *anything 20:16:41 *like 20:16:52 i happen to be socially retarded, but they're not the same thing. <-- there is a correlation though I would say 20:17:53 unlike echo, what the fuck is that supposed to mean <-- that is a what the command is called on *nix, and on DOS too iirc. And so on. 20:17:57 Vorpal: I already said there's a correlation 20:18:03 Vorpal: obviously i know that 20:18:05 olsner, yes saw that a bit down 20:18:12 oklopol, so what was the issue with "echo" then 20:18:44 Vorpal: i didn't guess it 20:19:16 obviously i couldn't guess it or no one would've asked me what i was doing 20:19:34 unlike echo, what the fuck is that supposed to mean 20:19:53 It echos what you put on its command line? 20:20:00 " unlike echo, what the fuck is that supposed to mean" <<< um, that's like the most used command for that... come one man learn ur stuffs.... 20:20:17 what a social retard that oklopol 20:20:24 such a famous bisexual 20:21:30 Yeah, like Marlon Brando. 20:21:40 And Caligula. 20:22:07 uhhuh 20:22:21 those were the days 20:22:25 and cthulhu 20:26:21 And... Keeley Hawes? 20:26:34 I feel cheated by Ashes to Ashes now. 20:27:02 bisexuals are people too... 20:27:03 `addquote such a famous bisexual Yeah, like Marlon Brando. And Caligula. And... Keeley Hawes? I feel cheated by Ashes to Ashes now. 20:27:04 487) such a famous bisexual Yeah, like Marlon Brando. And Caligula. And... Keeley Hawes? I feel cheated by Ashes to Ashes now. 20:34:00 ...wait was that a frog on my floor 20:34:05 -!- Lymia has changed nick to Lymee. 20:34:39 i swear i saw something jump in the air 20:35:53 -!- boily has quit (Ping timeout: 276 seconds). 20:36:58 i have to go to the office 20:37:00 see you later 20:37:17 -!- BeedaWeeda has quit (Ping timeout: 264 seconds). 20:37:52 -!- BeedaWeeda has joined. 20:37:53 -!- BeedaWeeda has quit (Changing host). 20:37:53 -!- BeedaWeeda has joined. 20:40:37 oklopol and offices, two things which could not be more opposed. 21:03:11 -!- Tritonio has joined. 21:49:09 -!- pumpkin has joined. 21:49:09 -!- pumpkin has quit (Changing host). 21:49:09 -!- pumpkin has joined. 21:51:01 -!- Lymia has joined. 21:51:55 -!- copumpkin has quit (Ping timeout: 240 seconds). 21:52:17 -!- pumpkin has changed nick to copumpkin. 21:53:01 -!- Lymee has quit (Disconnected by services). 21:53:01 -!- Lymia has changed nick to Lymee. 22:21:12 Vorpal: What happens if you synthesise (a <= not a) 22:23:21 Vorpal: IMPORTANT QUESTIONS 22:29:17 elliott_, feedback loop, burnout. 22:29:57 -!- Lymee has quit (Read error: Connection reset by peer). 22:30:11 Phantom_Hoover: I mean IRL. 22:30:17 Or was that your answer. 22:30:27 I guess that would be a clock of some kind? 22:30:47 -!- Lymee has joined. 22:32:22 Phantom_Hoover: Erm, it has no "after time", so I presume it's just a halt-and-catch-fire scenario. 22:48:39 -!- pikhq_ has joined. 22:51:17 -!- pikhq has quit (Ping timeout: 255 seconds). 22:52:55 Uh. 22:54:23 -!- Lymee has quit (Ping timeout: 260 seconds). 22:54:43 I haven't a clue what best to do right now. 22:55:13 A recruiter from Google emailed me. 22:55:17 -!- Sgeo_ has joined. 22:56:14 -!- Sgeo has quit (Ping timeout: 255 seconds). 22:56:27 I have no idea how best to say "I am currently a student, but please feel free to hire me." :P 22:56:56 -!- Tritonio has quit (Quit: Leaving). 22:59:05 the day pikhq_ discovered spam 23:00:54 Vorpal: What happens if you synthesise (a <= not a) <-- no idea 23:02:46 elliott_: Piss-poor spam. What sort of spammer uses an @google.com address and gives the phone number of Google's main campus? 23:04:59 i dunno a bad one???? 23:06:33 -!- Lymee has joined. 23:07:03 -!- NihilistDandy has quit (Remote host closed the connection). 23:09:38 pikhq_, faked email? 23:09:44 Elaborate practical joke? 23:10:13 It just seems so utterly improbable yet legit. 23:10:57 pikhq_, you can totally trust us to give you a reference. 23:21:09 -!- myndzi\ has joined. 23:21:09 -!- myndzi has quit (Read error: Connection reset by peer). 23:32:54 -!- elliott_ has quit (Ping timeout: 258 seconds). 23:34:02 -!- Lymee has quit (Ping timeout: 255 seconds). 23:34:21 Conclusion: myndzi = elliott = Lymia. 23:36:49 * Phantom_Hoover → sleep 23:36:50 -!- Phantom_Hoover has left ("Leaving"). 23:36:54 -!- Phantom_Hoover has quit (Quit: Leaving). 23:47:04 -!- Lymee has joined.