00:00:11 okay 00:00:21 Some facilities simply aren't required for most things. Like magnets. 00:00:25 so it's cheap 'rapid' prototyping machine 00:00:29 pikhq: http://makerbot.com/ any idea how this compares to the reprap? 00:00:32 nooga: it is rapid. 00:00:43 If you want to be able to make magnets, use a separate RepRap magnet-making module. 00:00:52 ehird: It's got the same capabilities, but it is easier to put together. 00:01:04 The MakerBot guys are also involved in RepRap. 00:01:14 ah 00:01:16 IIRC, it uses the same driving circuitry. 00:01:32 nooga: All rapid prototypers are like that. 00:01:39 reprap needs a special module to do circular stuff 00:01:43 Most of them are a *bit* faster, but not by a whole lot. 00:01:45 as opposed to lots of rectangle 00:01:46 s 00:01:49 but 00:02:18 omg 00:02:20 3d scanner‽‽‽ 00:02:22 hoshit 00:02:31 things that come out from reprap look like they were build from glued, plastic string AFAIR 00:02:44 nooga: give 'em a paintjob 00:02:45 built* 00:02:50 Same with all rapid prototypers. 00:02:51 nooga: most 3d printers aren't any better 00:03:11 Some of them have smaller bits of string. 00:03:11 http://upload.wikimedia.org/wikipedia/commons/6/60/3D_scanning_and_printing.jpg ← reprap isn't quite this good though 00:03:12 afaik 00:03:50 ehird: RepRap also costs orders of magnitude less. 00:03:55 yeah, i know 00:04:02 It's like comparing an 8086 to an IBM mainframe. ;) 00:04:03 i saw a rapid prototyper in tv that built objects by shooting laser beams into a bucket of some powder 00:04:16 nooga: Those are significantly more expensive. 00:04:24 Obviously, they produce better results. 00:04:49 [[30 November 2008, First "in the wild" replication occurring. Replication completed by Wade Bortz, the first user outside of the developers team to produce a complete set for another person. Sale is completed in person after meeting over internet.]] 00:04:54 wade bortz = jackass 00:05:04 charging for pressing "print" and sticking a few things together 00:05:17 20 April, 2009 - Announcement of first electronic circuit boards produced automatically with a RepRap. Using an automated control system and a swappable head system capable of printing both plastic and conductive solder. Part is later integrated into the RepRap that made it.[5] 00:05:19 WHOA 00:05:21 it works! 00:05:29 Yes. 00:05:38 oh 00:06:00 Sweet 00:06:38 pikhq: with a 3d scanner and a reprap 2 everything would rock 00:06:48 print out something, makeshift stuff with straws 00:06:49 scan 00:06:49 tweak 00:06:51 reprint 00:07:10 ehird: Yeah... Viva le revolucion. 00:08:06 What we need is a milling machine. 00:08:25 * GregorR mills around. 00:08:30 * GregorR mills around ... mechanically! 00:08:43 Warrigal: There's someone working on RepRap's milling. 00:09:09 http://4.bp.blogspot.com/_sKFX5zDfq4o/Sesjm2mXP2I/AAAAAAAAAZE/_sGIdeO_jsM/s1600-h/just-finished.jpg ← reprap circuit 00:09:15 http://4.bp.blogspot.com/_sKFX5zDfq4o/Sesjs9Sv3-I/AAAAAAAAAZM/IqZlMRskt5c/s1600-h/components.jpg 00:09:28 "Finally, here it is fitted to the RepRap machine that made it and working: " 00:09:36 http://www.youtube.com/watch?v=9miG2U3PR8w&eurl=http%3A%2F%2Fblog%2Ereprap%2Eorg%2F2009%5F04%5F01%5Farchive%2Ehtml&feature=player_embedded 00:09:42 -!- BeholdMyGlory has quit (Remote closed the connection). 00:12:28 Mill parts out of plastic, expose the plastic to chemicals or high-energy light to harden it, use the resulting plastic to mill more stuff out of plastic. 00:13:45 pikhq: Dependent types will break your mind. Normally, types depend on types and values depend on values. With typeclasses, values depend on types. With dependent types? Types depend on values. 00:13:56 You can have an argument that must be above 0, and the caller has to prove that. 00:14:03 You can have a type-safe printf that does: 00:14:09 printf :: (fmt :: String) -> CalculatePrintfType fmt 00:14:30 and CalculatePrintfType gets the string -- at compile-time, so you have to prove things about it if it's not literal -- and returns the right type. 00:14:35 Of course, typing then becomes TC. 00:15:51 -!- FireFly has quit ("Later"). 00:20:03 Making Haskell impossible to implement. :P 00:20:13 pikhq: No, not impossible. 00:20:18 Also, Haskell doesn't have them. 00:20:26 It's perfectly possible; your type-checking just might not halt. 00:22:38 I vote for type-checking that uses heuristics, always halts, and never gives a false positive for type errors. 00:22:52 You might get run-time type errors, of course. 00:23:27 Also, someone find me something mind-breaking plz. 00:23:58 @take 10 cycle "HOLY SHIT MJ DIED" 00:23:58 Maybe you meant: time type 00:24:04 :/ 00:24:10 @cycle "holy shit mj died" 00:24:11 Unknown command, try @list 00:24:19 what's the 00:24:19 oh 00:24:22 fuck you lambdabot 00:24:29 >take 10 cycle "HOLY SHIT MJ DIED" 00:24:34 > cycle "holy shit mj cried " 00:24:36 "holy shit mj cried holy shit mj cried holy shit mj cried holy shit mj crie... 00:24:53 > take 10 cycle "HOLY SHIT MJ DIED" 00:24:55 Couldn't match expected type `[a]' 00:25:01 > take 10 (cycle "HOLY SHIT MJ DIED") 00:25:03 "HOLY SHIT " 00:25:26 But right parentheses at the end of expressions suck. Therefore, 00:25:31 > take 10 $ cycle "HOLY SHIT MJ DIED" 00:25:33 "HOLY SHIT " 00:25:39 s/end/ends/ 00:25:44 >take 10 $ cycle ["HOLY SHIT MJ DIED"] 00:26:02 >cycle ["HOLY SHIT MJ DIED"] 00:26:10 * CESSMASTER is worthless 00:26:30 CESSMASTER: you keep not including a space after the >. 00:26:38 hahahaha 00:26:40 fuck's sake 00:26:46 > cycle ["HOLY SHIT MJ DIED"] 00:26:48 ["HOLY SHIT MJ DIED","HOLY SHIT MJ DIED","HOLY SHIT MJ DIED","HOLY SHIT MJ ... 00:26:56 -!- nooga has quit (Remote closed the connection). 00:26:56 > repeat "HOLY SHIT MJ DIED" 00:26:58 ["HOLY SHIT MJ DIED","HOLY SHIT MJ DIED","HOLY SHIT MJ DIED","HOLY SHIT MJ ... 00:27:05 No need for redundancy. 00:27:11 thx Warrigal 00:27:20 > cycle "*cough* " 00:27:21 "*cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *c... 00:27:27 > text $ cycle "*cough* " 00:27:33 mueval-core: Prelude.read: no parse 00:27:33 > var $ cycle "*cough* " 00:27:33 mueval: ExitFailure 1 00:27:35 Ambiguous occurrence `var' 00:27:35 It could refer to either `Data.Number.Symbolic.... 00:27:35 > var $ cycle "*cough* " 00:27:37 Ambiguous occurrence `var' 00:27:37 It could refer to either `Data.Number.Symbolic.... 00:27:41 > (var $ cycle "*cough* ") :: Expr 00:27:43 Ambiguous occurrence `var' 00:27:43 It could refer to either `Data.Number.Symbolic.... 00:27:45 >cycle "i know a song that gets on everybody's nerves, and this is how it goes: " 00:27:49 FUUUUCK 00:27:56 > cycle "i know a song that gets on everybody's nerves, and this is how it goes: " 00:27:57 "i know a song that gets on everybody's nerves, and this is how it goes: i ... 00:27:59 @hoogle var 00:28:00 Distribution.PackageDescription Var :: c -> Condition c 00:28:00 Language.Haskell.TH VarE :: Name -> Exp 00:28:00 Language.Haskell.TH.Syntax VarE :: Name -> Exp 00:28:01 > (var :: String -> Expr) $ cycle "*cough* " 00:28:02 Ambiguous occurrence `var' 00:28:02 It could refer to either `Data.Number.Symbolic.... 00:28:05 ffffffff 00:28:39 > var "fuck you i want the simplereflect one" :: Expr 00:28:41 Ambiguous occurrence `var' 00:28:41 It could refer to either `Data.Number.Symbolic.... 00:28:43 RAGE 00:28:44 ehird: it's a lexical import error, not a type error 00:28:49 argh 00:29:04 you cannot fix it without the module name 00:29:27 > SimpleReflect.var 00:29:29 Overlapping instances for GHC.Show.Show 00:29:29 (GHC.B... 00:29:37 > SimpleReflect.var (cycle "*cough* ") :: Expr 00:29:39 *cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *co... 00:29:42 FUCK YEAH 00:30:10 > SimpleReflect.var (cycle "*cough* ") 00:30:11 *cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *co... 00:30:21 > fun (cycle "*cough* ") :: Expr 00:30:23 *cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *co... 00:30:32 > fun (cycle "*cough* ") 00:30:33 Add a type signature 00:30:38 add your mom. 00:30:51 fun is specifically overloaded, it is also used for functions 00:31:07 while var is just Expr 00:31:24 yeah 00:32:47 @@ @echo @run cycle "*cough* " 00:32:48 echo; msg:IrcMessage {msgServer = "freenode", msgLBName = "lambdabot", msgPrefix = "oerjan!n=oerjan@hagbart.nvg.ntnu.no", msgCommand = "PRIVMSG", msgParams = ["#esoteric",":@@ @echo @run cycle \"* 00:32:48 cough* \""]} rest:" \"*cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *c..." 00:32:56 good grief 00:33:00 @help @ 00:33:01 @ [args]. 00:33:01 @ executes plugin invocations in its arguments, parentheses can be used. 00:33:01 The commands are right associative. 00:33:01 For example: @ @pl @undo code 00:33:01 is the same as: @ (@pl (@undo code)) 00:33:28 @help @@ 00:33:28 help . Ask for help for . Try 'list' for all commands 00:33:49 the initial @ is not allowed for help 00:34:01 (argument) 00:34:09 @help echo 00:34:10 echo . echo irc protocol string 00:34:14 bah 00:34:22 @list read 00:34:23 dummy provides: eval choose id read show dummy bug get-shapr faq paste learn map shootout botsnack thanks thx thank you ping wiki oldwiki docs source fptools hackage 00:34:50 @read "test" 00:34:51 test 00:35:01 @@ @read @run cycle "*cough* " 00:35:02 Plugin `compose' failed with: Prelude.read: no parse 00:35:14 oh right it doesn't end 00:35:17 grmbl 00:36:17 @faq Can Haskell bring about world peace? 00:36:18 The answer is: Yes! Haskell can do that. 00:38:42 @faq Does @faq use an actual FAQ? 00:38:43 The answer is: Yes! Haskell can do that. 00:38:49 Uhuh :P 00:41:08 * pikhq discovers quickCheck. 00:41:21 pikhq: That's what @check is 00:41:40 > let 2+2 = 5 in quickCheck (\_ -> 2+2 == 5) 00:41:42 Not in scope: `quickCheck' 00:41:48 Curses. 00:42:07 @check let 2+2 = 5 in (\_ -> 2+2 == 5) 00:42:08 "OK, passed 500 tests." 00:42:12 pikhq: 00:42:13 :-) 00:42:23 @check let 2+2 = 5 in (\_ -> 1+1 == 2) 00:42:24 "* Exception: :1:176-182: Non-exhaustive patterns in function + 00:42:32 pikhq: ... as we can see, that shadows the real +. 00:42:33 Yay. I have proven that 2+2 is 5 when you define it to be 5. 00:42:46 ehird: Yes, I know that that' 00:42:47 s what it's doing. 00:42:50 Still funny. 00:42:53 :P 00:43:12 @check let 42 = 6*9 in (\_ -> 42 == 6*9) 00:43:14 "Falsifiable, after 0 tests:\n()\n" 00:43:46 > let True = False in True 00:43:48 True 00:44:04 @check let 6*9 = 42 in (\_ -> 42 == 6*9) 00:44:06 "OK, passed 500 tests." 00:44:39 What it's doing is creating a new function (*) that shadows the old one, and that new function is defined using pattern matching. 00:44:43 Yes. 00:44:44 Yes it is. 00:44:56 Thus why "let True = False" doesn't work. 00:45:07 It works, just pathologically. 00:45:13 pikhq: "let Just a = Just 2" sets a to 2. 00:45:17 That ought to be an error, not because the existing rules imply it should be an error, but because there's no reason to use an equation whose LHS contains no variables. 00:45:19 Well. Yeah. 00:45:19 It's just pattern matching there. 00:45:24 You're assigning nothing. 00:45:26 pikhq: So "let True = False" attempts to match False with True and fails. 00:45:32 Warrigal: it's just like 'f True = ...' 00:45:37 > let True = False in () 00:45:39 () 00:45:46 > (\True -> ()) False 00:45:48 * Exception: :1:130-140: Non-exhaustive patterns in lambda 00:45:51 Well, okay, not quite. 00:46:03 let True = False doesn't attempt to match False with True until you evaluate one of the variables in the LHS, True. 00:46:03 tbh I'd prefer the latter behaviour 00:46:10 but it's irreleavnt 00:46:12 irrelevant 00:49:10 > let x+_ = x in (+) <$> [0..10] <*> [10..20] 00:49:11 [0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,... 00:49:27 hurf durf 00:49:40 hmmm. If a program I install on wine has a virus, it probably shouldn't affect everything else, I'm guessing? 00:49:51 after all, it's not an emulator D: 00:49:54 Gracenotes: Well, it has access to your linux drives... 00:49:58 As Z:\ or whatever. 00:50:02 that is true 00:50:09 homedir 00:50:12 ehird: Not necessarily. He could have it configured to only expose ~/.wine/drive_c. 00:50:19 pikhq: Yes, but he wouldn't be asking if he did that. 00:50:27 True. 00:50:39 as you may infer, I am not excessively knowledgeable about wine 00:50:52 If you want to be safe, boot up a VM. 00:51:01 Gracenotes: or run it as "nobody" 00:51:59 Gracenotes: what about liquor? 00:52:43 ehird: On GNU Hurd, that's easy. 00:53:11 ... Granted, that's because GNU Hurd does not have "login", but instead gives you a login shell running as UID {}. 00:53:15 On GNU Hurd, everything is especially easy as long as it involves bashing your head against the wall. 00:53:21 (Everything involves this in Hurd.) 00:53:54 (in GNU Hurd, you may be logged in as 0 or more users.) 00:54:29 (in GNU Hurd, processes have been replaced with frolicking unicorns) 00:54:54 No, no, they've got processes. 00:54:58 (in GNU Hurd, my name is misspelled.) 00:55:18 ehird: Hird also has meaning. 00:55:23 > cycle . map intercalate "ur" $ ["hf","df",hd"] 00:55:25 : 00:55:25 lexical error in string/character literal at end o... 00:55:34 :t intercalate 00:55:35 forall a. [a] -> [[a]] -> [a] 00:55:55 > cycle . map intercalate "ur" $ ["hf","df","hd"] 00:55:55 Man, Haskell has some of the coolest function names. 00:55:57 Couldn't match expected type `[a]' 00:56:00 "Intercalate"? :D 00:56:01 i should make BSD Elliutt 00:56:07 pikhq: because join was taken :D 00:56:11 apparently there was a minicontroversy about it though 00:56:19 given its.. oddness o_O 00:56:23 hm wait 00:56:54 > cycle . map (intercalate "ur" . return) $ ["hf","df","hd"] 00:56:56 ["hf","df","hd","hf","df","hd","hf","df","hd","hf","df","hd","hf","df","hd"... 00:57:02 good grief 00:57:28 zomgors 00:57:51 > cycle . map (intercalate "ur" . map return) $ ["hf","df","hd"] 00:57:53 ["hurf","durf","hurd","hurf","durf","hurd","hurf","durf","hurd","hurf","dur... 00:58:12 > intercalate " " . cycle . map (intercalate "ur" . map return) $ ["hf","df","hd"] 00:58:14 "hurf durf hurd hurf durf hurd hurf durf hurd hurf durf hurd hurf durf hurd... 00:58:22 > intercalate " " . cycle . map (intercalate "ur" . map return) $ ["hf","df","hd!"] 00:58:24 "hurf durf hurdur! hurf durf hurdur! hurf durf hurdur! hurf durf hurdur! hu... 00:58:29 unwords 00:58:30 Erm. 00:58:34 Gracenotes: o ya 01:00:12 $pl intercalate " " . cycle . map (intercalate "ur" . map return) $ {"hf","df","hd!"] 01:00:37 that's already point-free anyhow 01:00:43 plugh 01:00:55 And not semantically correct, anyways. 01:01:01 $pl intercalate " " . cycle . map (intercalate "ur" . map return) ["hf","df","hd!"] 01:01:21 pikhq: @. 01:01:22 Not $. 01:01:24 Syntatically, I meant. 01:01:28 @pl intercalate " " . cycle . map (intercalate "ur" . map return) ["hf","df","hd!"] 01:01:29 intercalate " " . cycle . map (intercalate "ur" . map return) ["hf", "df", "hd!"] 01:01:33 ehird: I fail. 01:01:58 !c int i; for (i = 0; i < 100; i++) { printf("%curf ", (rand() % 2) ? 'h' : 'd'); } 01:02:00 hurf durf hurf hurf hurf hurf durf durf hurf hurf durf hurf durf hurf hurf durf durf durf durf durf hurf durf hurf hurf durf durf durf hurf hurf hurf hurf durf durf durf hurf hurf hurf durf hurf durf hurf hurf hurf hurf durf hurf durf durf hurf durf hurf durf hurf durf durf hurf durf durf durf hurf hurf hurf durf hurf durf hurf durf hurf hurf hurf durf hurf durf hurf durf hurf durf durf hurf durf hurf durf durf durf durf durf hurf hurf durf hurf durf 01:02:15 >_> <_< 01:02:51 Gracenotes: NOT HASKELL. GET THE FUCK OUT. 01:02:59 lols. 01:03:05 Yeah Gracenotes! Geez! 01:03:17 XD 01:03:29 !haskell do n <- randomRIO (0,1); print n 01:03:31 At least it's not C++. 01:03:36 * ehird kicks !haskell. 01:03:38 `haskell do n <- randomRIO (0,1); print n 01:03:39 No output. 01:03:42 (for which there are no complete implementations) 01:03:45 GregorR: Make it work, bitchnizzle. 01:03:49 pikhq: yes there is 01:03:59 `run ghc 2>&1 01:04:00 /bin/bash: line 1: ghc: command not found 01:04:14 All extant C++ implementations limit the amount of recursions that a C++ template may have. 01:04:18 Most of them to 17. 01:04:31 pikhq: Comeau C++ implements the whole of C++, iirc. 01:04:39 !cxx for (int i = 0; i < 100; i++) { cout << ((rand() % 2) ? 'h' : 'd') << "urf "; } 01:04:43 hurf durf hurf hurf hurf hurf durf durf hurf hurf durf hurf durf hurf hurf durf durf durf durf durf hurf durf hurf hurf durf durf durf hurf hurf hurf hurf durf durf durf hurf hurf hurf durf hurf durf hurf hurf hurf hurf durf hurf durf durf hurf durf hurf durf hurf durf durf hurf durf durf durf hurf hurf hurf durf hurf durf hurf durf hurf hurf hurf durf hurf durf hurf durf hurf durf durf hurf durf hurf durf durf durf durf durf hurf hurf durf hurf durf 01:04:57 !haskell import System.Random; main = do g <- newStdGen; putStr . take 500 . unwords . map (["hurf","durf","hurd"]!!) $ randomRs (0,2) g 01:05:00 durf hurf hurd hurd hurf hurf hurf hurd hurd hurf durf durf hurd durf hurd durf hurd durf durf hurf hurf hurd hurd durf durf hurf hurf hurf hurf hurf durf durf hurd durf durf hurf hurf hurf hurd hurf hurf durf hurd durf hurf durf hurd hurf durf hurd durf hurd hurd durf durf hurd hurf hurd hurd durf durf durf hurd hurf hurd hurf hurd durf hurf hurd hurf durf durf hurf hurd hurd hurd hurd durf hurf durf hurf hurd hurf hurf durf durf hurd hurd durf durf 01:05:16 oerjan: damn you. 01:05:20 That was, like, my job. 01:05:21 :D 01:05:25 :( 01:05:32 sorry :( 01:05:41 oerjan: btw, your code is TOO VERBOSE. 01:05:42 ehird: Apparently it does. 01:05:42 Try randomRIO. 01:05:43 Impressive. 01:05:47 !cxx for (int i = 0; i < 100; i++) { cout << ((rand() % 1) ? 'h' : 't') << "ur" << ((rand() % 1) ? 'f' : 'd') << " "; } 01:05:49 turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd turd 01:05:59 ... 01:06:03 GregorR: "% 1"? 01:06:03 :-P 01:06:04 ehird: randomRIO cannot give an infinite list afair 01:06:08 Yup. 01:06:12 oerjan: ah 01:06:15 Most of them to 17. <-- why 17 01:06:20 oerjan: just do 01:06:24 oerjan: a sequence cycle thingy. 01:06:26 i guess. 01:06:29 AnMaster: C++ standard designers said so. 01:06:46 pikhq, I mean it is uneven in all bases right? 01:06:54 except 17 01:06:57 of course 01:07:08 Yeah... 01:07:23 hm 01:07:28 hm. I'm trying to get @pl to accept various famous quotes, but that darn punctuation.. 01:07:29 20 would make sense, so would 16 01:07:45 what is @pl? 01:08:04 @pl She should have died hereafter: There would have been a time for such a word. To-morrow and to-morrow and to-morrow 01:08:05 She should have died hereafter : There would have been a time for such a word . To - morrow and to - morrow and to - morrow 01:08:05 Turns something into pointless form s/pointless/point-free/ 01:08:25 err 01:08:27 @pl \a -> She should have died hereafter: There would have been a time for such a word. To-morrow and to-morrow and to-morrow 01:08:27 (She should have died hereafter :) . subtract morrow . subtract (morrow and to) . subtract (morrow and to) . (. To) . flip (join (flip (flip (flip (There would have been) time) for) such)) word 01:08:30 it just adds spaces? 01:08:34 @pl a.b.c 01:08:34 a . b . c 01:08:46 @pl a (b c) 01:08:46 a (b c) 01:08:51 Curses. 01:08:59 Need a good example. 01:09:00 it makes NO sese 01:09:03 sense* 01:09:10 !haskell import System.Random; main = sequence_ . replicate 200 $ fmap (putStr . (["hurf","durf","hurd"]!!)) randomRIO (0,2) 01:09:11 @pl \x -> x y z 01:09:12 flip ($ y) z 01:09:22 Like that. 01:09:23 @pl func f g = map f . filter g 01:09:24 func = (. filter) . (.) . map 01:09:33 äl 01:09:35 err' 01:09:39 pikhq* 01:09:41 @unpl (. filter) . (.) . map 01:09:42 (\ g m d -> map g (filter m d)) 01:09:49 pikhq, I don't know haskell yet 01:09:57 so what do you mean 01:10:03 !haskell import System.Random; main = sequence_ . replicate 200 $ putStr . (["hurf","durf","hurd"]!!) =<< randomRIO (0,2) 01:10:06 hurfdurfdurfdurfhurddurfhurfhurfdurfhurddurfdurfhurfhurfdurfdurfhurfhurdhurddurfhurfdurfhurfhurdhurddurfhurfhurdhurfhurddurfhurfhurdhurfhurfhurfhurfhurfhurdhurddurfhurdhurfhurfdurfhurddurfhurdhurdhurdhurdhurddurfdurfdurfhurdhurdhurdhurdhurdhurfdurfhurfhurdhurfhurfdurfhurdhurfhurfhurddurfdurfdurfhurfhurdhurfdurfhurfhurfhurfhurfdurfdurfhurfhurfhurddurfhurfhurfdurfhurfhurfhurfdurfdurfhurfhurfdurfdurfdurfdurfhurfhurddurfhurfhurddurfhurdhurfdurfhurdhurfhur 01:10:12 Point-free form is a concept common to all functional languages. 01:10:12 darn 01:10:30 pikhq: and concatenative ones, like stack-based 01:10:51 Gracenotes: Ah, concatenative languages. 01:10:57 pikhq, I'm not damiliar with the concept 01:10:59 That type of language so many ignore. 01:11:13 > nubBy (((==0).).gcd) [2..] 01:11:15 [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,2... 01:11:17 * AnMaster googles 01:11:21 Lovely. 01:11:22 * Gracenotes goggles 01:11:36 > nubBy (((==1).).gcd) [2..] 01:11:38 [2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,... 01:11:46 > nubBy (((/=1).).gcd) [2..] 01:11:48 [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101... 01:11:51 Whew. 01:11:57 @unpl nubBy (((/=1).).gcd) [2..] 01:11:57 nubBy (\ e h -> (gcd e h) /= 1) [2 ..] 01:11:59 hm 01:12:12 !haskell import System.Random; main = putStr . take 500 . unwords . map (["hurf","durf","hurd"]!!) . randomRs (0,2) =<< newStdGen 01:12:12 The unpl'd version is much more readable. 01:12:14 hurd hurf durf durf hurf hurf hurd hurd hurd hurf hurf hurd hurf hurf hurf hurd hurf hurf hurd hurd hurd hurd hurd durf hurf durf hurf durf hurf durf hurd durf durf durf hurf hurf hurd hurf hurd hurd durf hurf hurf durf hurd hurf hurd hurd hurd hurd hurf hurd hurd hurf hurd hurf durf hurf hurf hurf hurf hurd hurd hurf durf hurd hurd hurd durf hurf hurd hurf durf hurd durf hurd hurf durf hurd durf durf hurf hurf hurd hurf hurf hurd hurd durf hurd hurd 01:12:15 ...TO THE UNTRAINED EYE 01:12:19 AnMaster: No arguments! Only curry! 01:12:21 Warrigal: no it's not 01:12:22 not really 01:12:32 delicious curry 01:12:34 ehird: no? 01:12:34 -!- nooga has joined. 01:12:36 pikhq, ah 01:12:58 @. pl unpl nubBy (((/=1).).gcd) [2..] 01:12:59 nubBy (flip flip 1 . ((/=) .) . gcd) [2..] 01:13:08 flip flip 1 01:13:18 -!- Dewio has joined. 01:13:20 Wow. 01:13:26 flip flip 1. Man. 01:13:42 @type flip flip flip flip 01:13:44 forall a b c a1 c1. (a1 -> ((a -> b -> c) -> b -> a -> c) -> c1) -> a1 -> c1 01:13:52 flip flip 1 isn't even, like, a good idea 01:14:18 oh wait. that would be (flip flip) 1 01:14:26 @type flip flip 01:14:27 forall a b c. b -> (a -> b -> c) -> a -> c 01:14:33 foiled again! 01:14:53 Yeah, remember that Haskell doesn't behave like natural language unless you stuff it with $. 01:15:03 @type flip flip flip flip flip flip 01:15:05 forall a b c a1 c1. (a1 -> ((a -> b -> c) -> b -> a -> c) -> c1) -> a1 -> c1 01:15:17 application is leftassociativish 01:15:59 > nubBy ((.) (flip flip 1) ((.) ((.) (/=)) gcd)) [2..] 01:16:01 [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101... 01:16:05 @type flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip 01:16:07 forall a b c a1 c1. (a1 -> ((a -> b -> c) -> b -> a -> c) -> c1) -> a1 -> c1 01:16:12 @unpl flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip flip 01:16:13 That is unreadable. 01:16:13 (\ cg cj -> cg cj (\ g h i -> g i h)) 01:16:21 @unpl (a1 -> ((a -> b -> c) -> b -> a -> c) -> c1) -> a1 -> c1 01:16:22 Parse error at "->" (column 5) 01:16:23 er 01:16:25 @djinn (a1 -> ((a -> b -> c) -> b -> a -> c) -> c1) -> a1 -> c1 01:16:26 f a b = a b (\ c d e -> c e d) 01:16:26 > nubBy ((.) (flip flip 1) $ (.) ((.) (/=)) gcd) [2..] 01:16:28 [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101... 01:16:33 That, on the other hand, is readable. 01:17:16 Of course, if you want to use as few parentheses as possible... 01:17:26 @unpl ((/=) .) 01:17:27 (\ a d -> (/=) (a d)) 01:17:39 \a d e -> a d /= e, how about. 01:18:07 -!- fungebob has joined. 01:18:11 > flip nubBy [2..] $ flip flip 1 . (\a d e -> a d /= e) . gcd 01:18:13 [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101... 01:18:44 Someone find me a reverse compose operator so I can eliminate the remaining parentheses. 01:19:12 Warrigal: >>> 01:19:20 @hoogle >>> 01:19:20 What's its fixity? 01:19:20 Control.Arrow (>>>) :: Arrow a => a b c -> a c d -> a b d 01:19:30 ch-ch-ch-ch-ch-ch-changes 01:20:21 Hmm, it's pretty weakly-binding. 01:20:23 > (0$0>>>) 01:20:24 The operator `Control.Category.>>>' [infixr 1] of a section 01:20:25 must have ... 01:20:57 I'm not sure I can use it. 01:21:14 > (0$0>>>2) 01:21:15 No instance for (GHC.Num.Num (cat a b)) 01:21:16 arising from the literal `0' at ... 01:21:24 it should be fine. 01:21:32 you just can't make it a section with $ around 01:21:52 > nubBy (((1<).).gcd) [2..] 01:21:53 Lemme think. a . b . c is a . b . c; a . b >>> c is c . a . b.; a >>> b . c is b . c . a; a >>> b >>> c is c . b . a. 01:21:54 [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101... 01:22:16 Gracenotes: that (0$0 thing is just a trick to make lambdabot give the fixity 01:22:20 still, not much different than . 01:22:26 Yeah, I can use that. 01:22:55 @unpl nubBy (((1<).).gcd) [2..] 01:22:55 nubBy (\ e h -> 1 < (gcd e h)) [2 ..] 01:23:01 > flip nubBy [2..] $ gcd >>> flip flip 1 . \a d e -> a d /= e 01:23:03 [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101... 01:23:11 Behold, the prime number generator with no parentheses. 01:23:20 stop nubbing me! it hurts 01:23:24 @pl nubBy (\ e h -> 1 < (gcd e h)) [2 ..] 01:23:24 nubBy (((1 <) .) . gcd) [2..] 01:23:47 > flip nubBy [2..] $ gcd >>> flip flip 1 >>> \a d e -> a d /= e 01:23:49 The lambda expression `\ a d e -> a d GHC.Classes./= e' 01:23:49 has three argument... 01:24:05 lambdabot: oi, quit giving us user-friendly error messages. 01:24:21 Gracenotes: what do you expect that to do? 01:24:29 > flip nubBy [2..] $ gcd >>> flip flip 1 <<< \a d e -> a d /= e 01:24:31 [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101... 01:24:36 >>>_<<< 01:24:50 Hey, cool, thhere's a <<<. 01:24:59 <<< = . 01:25:04 Same fixity as >>>. 01:25:12 > f <<< g 01:25:14 No instance for (GHC.Show.Show (cat a c)) 01:25:14 arising from a use of `M268796... 01:25:20 -!- Dewi has quit (Read error: 101 (Network is unreachable)). 01:25:20 > (f <<< g) x :: Expr 01:25:22 <<< is moar general 01:25:22 Add a type signature 01:25:32 It's moär general. 01:25:46 you need to tell it what type g is 01:25:58 (Diaeresis, not umlaut. If it occurs over an o, it's a diaeresis. If it occurs over an a, it's an umlaut. But *this* one's a diaeresis.) 01:26:26 aren't you tricky, Warrigal! 01:26:57 Warrigal: ä ö ü all are completely fine german umlauts 01:27:17 ä 01:27:46 yes, because you can't write FUHRER without Ü 01:27:53 *UE 01:28:06 shit =,= 01:28:10 my surname had an umlaut before my ancestors came over to America 01:28:11 FÜHRER 01:28:21 yes, an umlaut on a u 01:28:42 Schnitzenmüller? 01:28:44 :D 01:28:56 :o how did you guess! 01:29:43 My surname had an umlaut. Richärds. 01:30:39 łóńśćążźęń 01:31:27 Mine had a glottal stop and a click. 01:31:37 My surname had an umlaut. Ric'här!s. 01:31:45 GregorR: sounds like steps to open a safe 01:32:02 ^^^ Note the laziness in scrolling up through my history and not even removing the rest of the line :P 01:32:07 GregorR: i think your parents were just trying to explain away your genetic speech errors, GregorR 01:32:07 this was the channel that carried on with the long s's and thorns, right? :) 01:32:45 þat may be þe truþ 01:33:00 Where'd my thorn script go? D-8 01:34:03 it rose up against you 01:34:36 þornography! 01:36:44 where are þe þorns ? 01:36:50 Warrigal: Over an o can also be a diaresis. I just, uh, can't think of an example right now. 01:37:05 Anyone else thing of oö? 01:37:13 Think, even. 01:37:23 pikhq: that's because you're such a neöphyte 01:37:30 Coördinate with me. 01:37:39 Coöperate with the use of co-stuff. 01:37:50 See. 01:38:00 I just suck at thinking of words on demand. 01:38:34 Coägulate? 01:39:21 i has a kitteh for us 01:39:33 diäreses looks more poëtic 01:39:35 name is kitteh 01:39:35 *look 01:39:55 Loök. 01:40:02 pikhq: BZZZZZZT 01:40:12 not two syllables 01:40:29 oërjan: I like making it into two syllables. 01:40:48 that would just be loönatic 01:40:49 hm. So I'll be taking syntax next spring semester, a linguistics course 01:40:57 Did yoü seë what I did there? :P 01:41:10 where I can hopefully learn about divers hierarchies of grammars 01:41:13 Also, woüld. 01:41:20 as if i carë 01:41:34 * Gracenotes tries pronouncing this conversation, gives up 01:41:47 * pikhq mäkës hïs vöwëls mëtäl. 01:41:50 ITYM pronoüncïng 01:42:01 ITID 01:42:54 ÏT̈ŸM̈ ̈p̈r̈ön̈öün̈c̈ı̈n̈g̈.̈ 01:43:27 IDWYT 01:44:11 ÏD̈ẄŸT̈=̈ẅḧä? 01:44:50 -!- ehird has quit (Remote closed the connection). 01:44:50 acronym hangman time 01:45:03 time to guess words for each letter 01:45:24 :X 01:45:42 N̈ËÏN̈!̈ 01:45:50 -!- ehird_ has changed nick to ehird. 02:05:07 -!- GreaseMonkey has joined. 02:17:47 -!- DarkPants has joined. 02:22:22 -!- GreaseMonkey has quit (Nick collision from services.). 02:22:31 -!- DarkPants has changed nick to GreaseMonkey. 02:31:44 EXCELLENT CONVERSATION STARTER: 02:31:50 1) Get a raw egg, in shell. 02:31:59 2) Go up to the person you're trying to start a conversation with. 02:32:22 3) Get them to look at you by only holding up the egg and saying "Egg." This will get their attention, as it makes not a fekking bit of sense. 02:32:47 4) SMASH the egg of your head, then breathe deeply and scream "EGG!" as the egg drips down your face. 02:33:05 5) Just stare at the person until they're forced to say /something/. 02:33:09 6) You're in! 02:33:16 I am a giant bucket! 02:33:22 02:37:21 GregorR: don't you mean EGGCELLENT? 02:41:19 OK, A) that's EGG-SALAD-NT 02:41:22 And B, no. 02:42:13 (It's important that it be "egg" because you can't let the person know that you're capable of speaking more than one syllable at a time) 02:43:08 Spoon? 02:43:25 SPOON! 02:43:33 * pikhq snaps a spoon in half 02:51:14 http://www.qwantz.com/index.php?comic=1049 lawlehcoptahs 02:53:36 -!- nooga has quit (Remote closed the connection). 02:53:55 -!- upyr[emacs] has quit (Remote closed the connection). 03:28:53 GregorR: <3 03:29:47 entropy decreasing in a closed system isnt impossible 03:29:56 The next comic covers that :P 03:30:03 oh ok 03:30:59 Ah, Dinosaur Comics. 03:31:01 Such good writing. 03:31:30 Such bad art ;) 03:31:32 teehee 03:31:41 you know 03:31:44 i collect fetishes 03:31:47 like butterflies 03:32:02 only i just collect knowledge of them 03:32:07 I personally collect sexualities. I am of every known sexuality ... at once! 03:32:13 im always searching for new and crazy fetishes 03:32:18 i have never found a new and crazy one. :( 03:32:26 I don't know what that means :P 03:33:19 I have a suggestion, although it's more on the "crazy" side and something that's actually extremely disgusting, and only came to my mind because I was thinking "what's extremely disgusting?", and nothing to do with fetishes. 03:33:20 augur: I have one for you. Fulfilling someone else's fetish that you do not share. 03:33:28 pikhq: boring. 03:33:28 pikhq: Ouch ;P 03:34:21 Anyway, chrome allergy fetish. I need to find somebody with a chrome allergy fetish so we can have mad pus-y sex (note that "pus-y" is not the same as "pussy", but in fact means "covered in pus") 03:34:34 http://codu.org/chromates.jpg <-- find somebody who finds this HAWT 03:34:37 THE MAD SEXORZ 03:34:53 Excuse me, I need to go VOMIT REPEATEDLY. 03:35:22 GregorR: Clearly, you mean pusÿ. 03:36:11 no he means pussy. 03:36:11 Also, holy fuck. What the fuck? 03:36:48 You haven't seen that? lawl, I use that picture whenever I want to induce vomiting in unsuspecting others :P 03:37:06 "pussy" is the appropriate spelling for the adjective derived from "pus" 03:37:20 augur: Yeah, but there MIGHT be an ambiguity issue. 03:37:44 I thought I had seen everything vomit-inducing on the Internet, except of course for Two Girls One Cup. 03:37:47 I stand corrected. 03:37:54 GregorR: i know :3 03:38:11 pikhq: That's just my personal stash of vomit-inducitude :P 03:38:27 *Personal*? 03:38:31 What, is that your foot? 03:39:11 Yeah. 03:39:20 Ooooow. 03:39:20 Well, /was/ 03:39:24 My foot is quite foot-like now. 03:39:29 What, you lost your foot? 03:39:31 Oh. 04:02:08 -!- oerjan has quit ("Good night"). 04:42:16 -!- comex has quit ("leaving"). 04:44:17 -!- comex has joined. 04:44:42 -!- fungebob has quit ("ChatZilla 0.9.85 [Firefox 3.0.11/2009060215]"). 04:47:36 So chromates.jpg there is a picture of GregorR's foot reacting allergically to chrome? 04:48:03 Yes. 04:48:15 Specifically, chromium-tanned leather. 04:48:37 Ah. 04:49:03 * Warrigal types the URL into Google Image Search. 04:49:05 No results. Huh. 04:49:16 lol 04:49:22 I don't think there are any links to it :P 04:49:41 * Warrigal just goes to that page. 04:50:10 Huh. That's vomit-inducing? 04:50:25 I've seen spaghetti sauce that looked like that. 04:50:40 That big toenail makes me kind of uncomfortable, though. 04:50:44 ... spaghetti sauce is not made of human blood :P 04:51:04 My toenails got hard and really difficult to cut. 04:54:48 There are parts that look like spaghetti sauce, parts that look like sausage, parts that look like molting skin, and parts that just look like skin. 04:55:19 There are also parts that look like toenail, hair, fabric, and stone. 04:55:44 ... stone? 04:56:01 Linoleum? 04:56:25 Oh, the tile. No, those would be tiles :P 04:57:26 Which I suppose is closer to linoleum than stone *shrugs* 04:57:32 Non-trademarked generic plastic tiling. 04:57:39 Plastic tiles. 04:57:55 Well, something soft and plasticine anyway *shrugs* 04:58:31 Idonno, they're tiles, I'm not a tile expert X-D 04:58:41 We have stone tiles! Or maybe they're actually plastic as well. 04:58:59 Stone tiles certainly exist, but I'm equally certain that the tiles in that picture are /not/ stone. 04:59:16 my eyes react allergically to chrome 04:59:24 * Warrigal compares the rough surface of his tiles to the rough surface of his imitation stone countertops and the smooth surface of his marble countertop. 04:59:37 comex: ... how does chrome end up in one's eyes? 05:00:09 GregorR: nevermind, it's just a horrible joke I'm making because it's 12am 05:00:11 The tiles were the coldest, followed by the imitation, followed by the marble. 05:00:34 * Warrigal indicts comex into the ET Club. 05:00:47 GregorR: I wonder if there's chrome in any eyedrops. 05:01:00 pikhq: Uhhh ... I'm gonna go with no. 05:01:17 Rather, I'd certainly hope not for your sake. 05:01:28 Chrome allergies in the eyes? *Ow*. 05:01:44 I wonder if any living matter naturally contains large amounts of chrome. 05:02:28 Red meat is comparable high in chromium. All meat contains chromium, and it's less common in (most) plant life. 05:02:38 But none of that is in enough of a proportion to elicit a reaction in me. 05:02:40 google chrome 05:02:48 * comex runs 05:03:11 When people ask me if I use Google Chrome, I just say "No, I'm allergic" and watch them be confused. 05:03:37 -!- immibis has joined. 05:04:20 s/comparable/comparably/ up there ... 05:13:50 SUP 05:14:04 so. anyone program in any esoteric languages lately. 05:14:33 NEVER 05:14:38 To do such a thing would be madness. 05:14:51 As would be giving oneself a nick with "Gr" as the first two characters. 05:14:52 No. 05:15:17 who would do such a dastardly thing 05:15:34 Or, in fact, having a letter `elem`['A'..'Z'] in the nick. 05:20:50 thats only uppercase letters... 05:21:09 Yes. 05:21:23 -!- Gracenotes has changed nick to gracenotes. 05:21:23 That was intentional. 05:21:25 Or having a letter [^imbs] 05:21:36 in their nick 05:21:37 That's not a list. 05:21:41 its a regex 05:21:43 That's a syntax error. 05:21:44 :) 05:21:48 Syntax. Error. 05:22:03 ['\0'..] // "imbs" 05:22:10 what language is that? 05:22:21 Haskell. 05:22:34 s/\/\//\\\\/ 05:23:10 > ['\0'..] 05:23:11 "\NUL\SOH\STX\ETX\EOT\ENQ\ACK\a\b\t\n\v\f\r\SO\SI\DLE\DC1\DC2\DC3\DC4\NAK\S... 05:23:23 The list of Unicode characters. :) 05:24:26 > fmap ord ['\0'..] 05:24:27 [0,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,... 05:24:33 Yay. 05:26:33 ['\177'..] 05:26:42 > ['\177'..] 05:26:44 "\177\178\179\180\181\182\183\184\185\186\187\188\189\190\191\192\193\194\1... 05:26:54 ['\777'..] 05:27:08 > ['\777'..] 05:27:10 "\777\778\779\780\781\782\783\784\785\786\787\788\789\790\791\792\793\794\7... 05:27:39 @hoogle Int -> Char 05:27:39 Data.Char chr :: Int -> Char 05:27:39 Data.Char intToDigit :: Int -> Char 05:27:39 Data.ByteString.Char8 index :: ByteString -> Int -> Char 05:27:51 what, wait.... what... L died? O_O 05:27:58 > fmap chr $ (+) <$> (fmap ord ['\0'..]) <*> cycle [1] 05:28:00 "\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\S... 05:28:11 gracenotes: The series is over now. 05:28:32 :D 05:28:44 well, modulo more 50 chapters 05:28:57 Does not exist. 05:28:58 * immibis ? 05:29:02 That's bad fanfiction. 05:29:07 oh I see. discontinuity. :P 05:29:07 Death Note. 05:29:40 now, where did I put my CDs... 05:29:57 somewhere in the galaxy most likely 05:29:59 pesky little things 05:30:14 a bold assertion, immy 05:30:49 > fromZipList $ fmap chr $ (+) <$> (fmap ord ['\0'..]) <*> cycle [1] 05:30:50 Not in scope: `fromZipList' 05:30:51 s/y/i 05:30:53 Erm. 05:31:07 @help 05:31:07 help . Ask for help for . Try 'list' for all commands 05:31:11 @list 05:31:11 http://code.haskell.org/lambdabot/COMMANDS 05:31:16 > getZipList $ zipList (fmap chr $ (+) <$> (fmap ord ['\0'..])) <*> zipList $ cycle [1] 05:31:17 the annoying constructoring-and-unconstructoring 05:31:17 Not in scope: `zipList'Not in scope: `zipList' 05:31:35 > getZipList $ ZipList (fmap chr $ (+) <$> (fmap ord ['\0'..])) <*> ZipList $ cycle [1] 05:31:36 Couldn't match expected type `GHC.Types.Int' 05:31:47 I is doing something wrong. 05:31:53 Oh well. 05:31:54 capitalize 05:32:21 @help fmap 05:32:22 help . Ask for help for . Try 'list' for all commands 05:32:31 > fmap chr $ fmap (+1) $ fmap ord ['\0'..] 05:32:32 "\SOH\STX\ETX\EOT\ENQ\ACK\a\b\t\n\v\f\r\SO\SI\DLE\DC1\DC2\DC3\DC4\NAK\SYN\E... 05:32:46 your expression is not majuscule enough! 05:32:56 ... Why I was trying to do that is beyond me. 05:33:15 what does $ do? 05:33:19 > fmap . fmap . fmap chr (+1) ord ['\0'..] 05:33:20 Couldn't match expected type `t -> a -> a1 -> b' 05:33:33 Guess that was wrong, wrong, wrong, and more wrong. Anyways. 05:33:42 > atoi 05:33:44 Not in scope: `atoi' 05:33:47 Oh, already pointfree. 05:33:49 XD 05:33:54 *FMAP* *FMAP* *FMAP* *FMAP* *FMAP* *FMAP* 05:33:54 @hoogle Int -> String 05:33:55 Language.Haskell.TH tupleDataName :: Int -> Name 05:33:55 Language.Haskell.TH tupleTypeName :: Int -> Name 05:33:55 Language.Haskell.TH.Syntax tupleDataName :: Int -> Name 05:33:55 immibis: atoi? Really? 05:34:05 i don't know haskell 05:34:12 Clearly. 05:34:18 or lambdabot... 05:34:21 @help hoogle 05:34:22 hoogle . Haskell API Search for either names, or types. 05:34:23 oh, let's mock the un-haskell-knower! 05:34:34 it's okay :x 05:34:48 @hoogle Num -> String 05:34:48 Warning: Unknown type Num 05:34:48 Distribution.Text display :: Text a => a -> String 05:34:48 Prelude show :: Show a => a -> String 05:34:52 a -> String is "show". String -> a, is read 05:35:00 Oh, right. It was show. *Duh*. 05:35:02 (for the appropriate typeclass) 05:35:10 es 05:35:46 Allow me to break your brain here. 05:36:05 > fibo = 0:1:zipWith (+) fibs (tail fibs) 05:36:06 : parse error on input `=' 05:36:17 > let fibs = 0:1:zipWith (+) fibs (tail fibs) in fibs 05:36:18 [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946... 05:36:27 There we go. 05:36:31 okay... still can't find my CD... I'll have to download again 05:36:34 All the fibonacci sequence. 05:36:39 Whole. Freaking. Thing. :) 05:37:34 what does zipwith do? 05:37:46 here's a variant of the above that's even more magical 05:37:55 > fix $ (0:) . (1:) . (=<< [1..]) . ((<*>) . ((return .) . (+) <$>) <*> (. subtract 1)) . (!!) 05:37:56 [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946... 05:38:28 > let numbers = 1:zipWidth (+1) (tail numbers) 05:38:29 not an expression: `let numbers = 1:zipWidth (+1) (tail numbers)' 05:38:38 > let numbers = 1:zipWidth (+1) (tail numbers) in numbers 05:38:40 Not in scope: `zipWidth' 05:38:46 oops 05:38:47 > let numbers = 1:zipWith (+1) (tail numbers) in numbers 05:38:49 Couldn't match expected type `[t]' 05:38:55 > let numbers = 1:zipWith (+) 1 (tail numbers) in numbers 05:38:57 No instance for (GHC.Num.Num [a]) 05:38:57 arising from the literal `1' at > let numbers = 1:zipWith (+) (1) (tail numbers) in numbers 05:39:05 hotter :D 05:39:05 No instance for (GHC.Num.Num [a]) 05:39:05 arising from the literal `1' at maybe you don't want to use zipWith at all.. 05:39:34 well what does it do? 05:39:39 > let numbers = 1:(+) (1) (tail numbers) in numbers 05:39:40 No instance for (GHC.Num.Num [a]) 05:39:41 arising from a use of `GHC.Num.+' at <... 05:39:53 > let numbers = 1:+ (1) (tail numbers) in numbers 05:39:55 Couldn't match expected type `[a]' 05:40:04 > let numbers = 1:+ 1 (tail numbers) in numbers 05:40:06 Couldn't match expected type `[a]' 05:40:09 > let numbers = 1:map (+1) numbers in numbers -- this might work 05:40:11 [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... 05:40:22 i know nothing about pascal 05:40:26 s/pascal/haskell/ 05:40:51 you seem to be picking up its syntax well 05:40:52 That ... made almost /too/ much sense. 05:40:58 It's pronounced HAS-kəll, right? 05:40:59 no i'm just guessing 05:41:06 GregorR: what did? 05:41:10 oh, that's good too 05:41:15 i know nothing about pascal s/pascal/haskell/ 05:41:33 > let numbers = 1:map (1-) numbers in numbers 05:41:35 [1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,... 05:41:41 yeah, I brought up Haskell to my C++ teacher, he thought I was talking about Haskell 05:41:41 > let numbers = 1:2:9:7map (1-) numbers in numbers 05:41:43 Add a type signature 05:41:45 > let numbers = 1:2:9:7:map (1-) numbers in numbers 05:41:46 er, about Pascal 05:41:46 [1,2,9,7,0,-1,-8,-6,1,2,9,7,0,-1,-8,-6,1,2,9,7,0,-1,-8,-6,1,2,9,7,0,-1,-8,-... 05:41:52 that was pointless 05:42:21 it was cyclic 05:42:28 yes and pointless 05:42:30 > numbers 05:42:32 Not in scope: `numbers' 05:42:50 > let numbers = 1:map (1-) numbers in numbers; show numbers 05:42:51 : parse error on input `;' 05:42:56 > let numbers = 1:map (1-) numbers in numbers: show numbers 05:42:57 Couldn't match expected type `[t]' 05:43:02 > let numbers = 1:map (1-) numbers in numbers show numbers 05:43:04 Couldn't match expected type `(a -> GHC.Base.String) -> [t1] -> t' 05:43:11 > let numbers = 1:map (1-) numbers in numbers > show numbers 05:43:12 No instance for (GHC.Num.Num GHC.Types.Char) 05:43:13 arising from a use of `GHC.... 05:43:25 ok what separates statements? 05:43:46 immibis: what are you trying to do? 05:43:51 > let numbers = 1:map (1-) numbers in numbers 05:43:53 [1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,... 05:43:57 I think that's what you're trying to do. 05:43:58 Heh. Statements. 05:44:04 idk what i am trying to od 05:44:10 > let numbers = 0:1:2:3:4:5:6 05:44:12 not an expression: `let numbers = 0:1:2:3:4:5:6' 05:44:15 Then stop trying to do it, because you won't succeed. 05:44:23 @let numbers = 0:1:2:3:4:5:6:[] 05:44:25 Defined. 05:44:25 > numbers 05:44:27 [0,1,2,3,4,5,6] 05:44:28 let numbers = 0:1:2:3:4:5:6:map (0*) numbers in numbers 05:44:29 * Warrigal bows 05:44:37 > let numbers = 0:1:2:3:4:5:6:map (0*) numbers in numbers 05:44:38 [0,1,2,3,4,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,... 05:44:44 still pointless but meh 05:44:47 > let numbers = 0:1:2:3:4:5:6:map (2*) numbers in numbers 05:44:48 [0,1,2,3,4,5,6,0,2,4,6,8,10,12,0,4,8,12,16,20,24,0,8,16,24,32,40,48,0,16,32... 05:45:24 > let numbers = 0:1:2:3:4:5:6:zipWith (*) numbers (tail numbers) in numbers 05:45:26 [0,1,2,3,4,5,6,0,2,6,12,20,30,0,0,12,72,240,600,0,0,0,864,17280,144000,0,0,... 05:45:37 whoa :o 05:46:09 > let numbers = 2:1:zipWith (/) numbers (tail numbers) in numbers 05:46:10 [2.0,1.0,2.0,0.5,4.0,0.125,32.0,3.90625e-3,8192.0,4.76837158203125e-7,1.717... 05:46:16 > let numbers = 2:1:zipWith (/) numbers (head numbers) in numbers 05:46:17 Occurs check: cannot construct the infinite type: a = [a] 05:46:39 > let numbers = 2:1:zipWith (+) numbers (1) in numbers 05:46:41 No instance for (GHC.Num.Num [a]) 05:46:41 arising from the literal `1' at > let numbers = 2:1:zipWith (+) numbers (numbers[]2) in numbers 05:46:52 Couldn't match expected type `[a1] -> t -> [a]' 05:46:53 > let numbers = 2:1:zipWith (+) numbers (numbers[2]) in numbers 05:46:55 Couldn't match expected type `[t] -> [a]' 05:47:34 > let mex = head . foldr delete [0..] in map mex [[],[0],[0,1],[1],[0,1,2],[0,2]] 05:47:36 [0,1,2,0,3,1] 05:47:45 Yay! 05:48:19 @let mex = head . foldr delete [0..] 05:48:20 Defined. 05:48:46 @let numbers = numbers + 1 05:48:47 :7:0: 05:48:47 Multiple declarations of `L.numbers' 05:48:47 Declared at: @let abcd = abcd + 1 05:48:55 Defined. 05:48:59 O.o 05:49:02 > abcd 05:49:08 mueval-core: Prelude.read: no parse 05:49:08 mueval: ExitFailure 1 05:49:13 okay... 05:49:22 SYSTEM FAILURE ... SYSTEM FAILURE ... SYSTEM FAILURE ... SYSTEM FAILURE 05:49:39 @let zeros = 0:zeros 05:49:40 Defined. 05:49:52 > zeros 05:49:54 [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,... 05:50:06 @let zees = 'z':zees 05:50:07 Defined. 05:50:11 Time to catch some ... 05:50:12 > zees 05:50:14 "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz... 05:50:20 OMG I'M HILL LARRY US 05:50:59 * Warrigal ponders. 05:51:13 > let systemfailure = "SYSTEM FAILURE ...":systemfailure 05:51:15 not an expression: `let systemfailure = "SYSTEM FAILURE ...":systemfailure' 05:51:26 try not to use @let for onetime things 05:51:52 * GregorR fekks around with lambdabot evilly. 05:51:56 > let systemfailure = 'S':'Y':'S':'T':'E':'M':' ':'F':'A':'I':'L':'U':'R':'E':' ':'.':'.':'.':' ':systemfailure 05:51:58 not an expression: `let systemfailure = 'S':'Y':'S':'T':'E':'M':' ':'F':'A'... 05:52:10 append " in systemfailure" 05:52:16 > let systemfailure = 'S':'Y':'S':'T':'E':'M':' ':'F':'A':'I':'L':'U':'R':'E':' ':'.':'.':'.':' ':systemfailure in systemfailure 05:52:18 "SYSTEM FAILURE ... SYSTEM FAILURE ... SYSTEM FAILURE ... SYSTEM FAILURE ..... 05:52:20 > let systemfailure = 'S':'Y':'S':'T':'E':'M':' ':'F':'A':'I':'L':'U':'R':'E':' ':'.':'.':'.':' ':systemfailure in systemfailure 05:52:22 "SYSTEM FAILURE ... SYSTEM FAILURE ... SYSTEM FAILURE ... SYSTEM FAILURE ..... 05:52:30 is there a better way to write strings? 05:52:36 @hoogle Bits 05:52:37 module Data.Bits 05:52:37 Data.Bits class Num a => Bits a 05:52:37 package bitset 05:52:42 > "foo" ++ "bar" 05:52:44 "foobar" 05:53:21 > xor 3 5 05:53:22 Add a type signature 05:53:26 > xor 3 5 :: Integer 05:53:28 6 05:53:57 > putStr "Add a type signature" 05:53:57 bow down to xor, your bitwise god! 05:53:58 05:54:01 >_< 05:54:17 > unsafePerformIO . putStr "Add a type signature" 05:54:18 Not in scope: `unsafePerformIO' 05:54:25 I forget what that's named :P 05:54:39 Oh, or lambdabot has I/O blocked for SOME reason :P 05:54:40 that's what it's named 05:54:49 > import System.IO 05:54:51 : parse error on input `import' 05:54:56 !haskell main = putStrLn "Add a type signature" 05:54:58 Add a type signature 05:55:03 > import IO 05:55:05 : parse error on input `import' 05:55:14 > openFile 05:55:15 Not in scope: `openFile' 05:55:24 > let shuttle fwd rev n = x : shuttle (fwd++[x]) (x:rev) (n+1) where x = mex (take (div n 2) (zipWith xor fwd rev)) in shuttle [] [] 0 05:55:26 Not in scope: `mex' 05:55:35 > (openFile "hello" WriteMode) 05:55:36 Not in scope: `openFile'Not in scope: data constructor `WriteMode' 05:55:43 !haskell main = putStrLn "> \"sup\"" 05:55:45 > let mex = head . foldr delete [0..]; shuttle fwd rev n = x : shuttle (fwd++[x]) (x:rev) (n+1) where x = mex (take (div n 2) (zipWith xor fwd rev)) in shuttle [] [] 0 05:55:45 > "sup" 05:55:47 Add a type signature 05:55:48 "sup" 05:55:54 > let mex = head . foldr delete [0..]; shuttle fwd rev n = x : shuttle (fwd++[x]) (x:rev) (n+1) where x = mex (take (div n 2) (zipWith xor fwd rev)) in shuttle [] [] 0 :: [Integer] 05:55:55 [0,0,1,0,2,1,0,2,1,0,2,1,3,2,1,3,2,4,3,0,4,3,0,4,3,0,4,1,2,3,1,2,4,1,2,4,1,... 05:57:10 Now to figure out how to write that without parentheses! 05:57:18 @pl let mex = head . foldr delete [0..]; shuttle fwd rev n = x : shuttle (fwd++[x]) (x:rev) (n+1) where x = mex (take (div n 2) (zipWith xor fwd rev)) in shuttle [] [] 0 :: [Integer] 05:57:18 (line 1, column 103): 05:57:19 unexpected "=" 05:57:19 expecting ";" or "in" 05:57:56 @pl let shuttle fwd rev n = x : shuttle (fwd++[x]) (x:rev) (n+1) where x = head . foldr delete [0..] $ (take (div n 2) (zipWith xor fwd rev)) in shuttle [] [] 0 :: [Integer] 05:57:57 (line 1, column 70): 05:57:57 unexpected "=" 05:57:57 expecting variable, "(", operator, ":", "++", "<+>", ";" or "in" 05:57:59 Er. 05:58:49 > fix (\shuttle fwd rev n -> (\x -> x : shuttle (fwd++[x]) (x:rev) (n+1)) (head . foldr delete [0..] $ (take (div n 2) (zipWith xor fwd rev)))) [] [] 0 :: [Integer] 05:58:51 [0,0,1,0,2,1,0,2,1,0,2,1,3,2,1,3,2,4,3,0,4,3,0,4,3,0,4,1,2,3,1,2,4,1,2,4,1,... 05:58:59 @pl fix (\shuttle fwd rev n -> (\x -> x : shuttle (fwd++[x]) (x:rev) (n+1)) (head . foldr delete [0..] $ (take (div n 2) (zipWith xor fwd rev)))) [] [] 0 05:59:03 fix (flip ap (((((head . foldr delete [0..]) .) . flip (take . flip div 2)) .) . zipWith xor) . ((ap . (ap .) . ((ap (:) .) .)) .) . flip flip (1 +) . (flip .) . (((.) .) .) . ((flip .) .) . flip 05:59:03 flip (flip (:)) . ((.) .) . (ap .) . (. ((. return) . (++))) . (.)) [] [] 0 05:59:03 optimization suspended, use @pl-resume to continue. 05:59:07 @pl-resume 05:59:12 fix ((`ap` (((((head . foldr delete [0..]) .) . flip (take . flip div 2)) .) . zipWith xor)) . (liftM2 (liftM2 (ap (:))) .) . flip flip (1 +) . ((flip . (((.) . flip) .)) .) . flip flip (flip (:)) . 05:59:12 (((.) . ap) .) . (. ((. return) . (++))) . (.)) [] [] 0 05:59:19 It's a veritable flipbook. 05:59:40 @help pl-resume 05:59:41 pl-resume. Resume a suspended pointless transformation. 05:59:43 I think I prefer the original... 05:59:44 @help pl 05:59:45 pointless . Play with pointfree code. 06:00:16 what is .? 06:00:40 > map ((+1) . (*3)) [1,2,3,4,5] 06:00:42 [4,7,10,13,16] 06:06:06 Are you familiar with function composition? 06:07:02 > map ((+1) . (*3)) [1..] 06:07:03 [4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,7... 06:07:15 Screw finite lists. 06:07:24 If you really want 5 elements of that, take 5. 06:07:24 :P 06:15:19 > map (+1) . (map 06:15:21 : parse error (possibly incorrect indentation) 06:16:11 > 2**2 06:16:13 4.0 06:16:16 > 2**3 06:16:17 8.0 06:16:29 > map (**1000) [1..] 06:16:31 [1.0,1.0715086071862674e301,Infinity,Infinity,Infinity,Infinity,Infinity,In... 06:17:10 > map (**0.0001) [1..] 06:17:11 [1.0,1.0000693171203765,1.0001098672638327,1.0001386390456164,1.00016095674... 06:17:37 >map (**(1/(10*1000))) [1..] 06:17:42 > map (**(1/(10*1000))) [1..] 06:17:43 [1.0,1.0000693171203765,1.0001098672638327,1.0001386390456164,1.00016095674... 06:17:49 > map (**(1/(10**1000))) [1..] 06:17:51 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.... 06:18:02 > map (**(1/(10**1000))) [0..] 06:18:04 [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.... 06:18:11 > 0**0 06:18:12 1.0 06:18:17 > 0**0.0000000000000000000000000000001 06:18:19 0.0 06:18:24 > 1.#INF 06:18:26 Not in scope: data constructor `INF'Not in scope: `.#' 06:36:23 > 1/0 06:36:25 Infinity 06:36:29 > 1/1/0 06:36:30 Infinity 06:36:33 > 1/(1/0) 06:36:35 0.0 06:36:45 > 0**(1/0) 06:36:47 0.0 06:37:04 > 0**(1/(1/0)) 06:37:05 1.0 06:37:14 > (1/3) * 3 06:37:15 1.0 06:40:24 -!- kar8nga has joined. 07:02:11 -!- immibis has quit ("If you think nobody cares, try missing a few payments"). 07:02:26 -!- pikhq has quit (Remote closed the connection). 07:08:17 -!- pikhq has joined. 07:08:19 -!- pikhq has quit (Read error: 54 (Connection reset by peer)). 07:08:51 -!- kar8nga has quit (Remote closed the connection). 07:13:31 -!- pikhq has joined. 07:16:51 -!- kar8nga has joined. 07:31:45 -!- gracenotes has changed nick to Gracenotes. 07:34:13 -!- kar8nga has quit (Read error: 110 (Connection timed out)). 07:41:43 -!- MigoMipo has joined. 07:47:26 -!- tombom has joined. 07:50:22 -!- tombom_ has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:04:38 -!- tombom__ has joined. 08:14:24 -!- tombom has quit (Read error: 110 (Connection timed out)). 08:14:25 -!- tombom__ has changed nick to tombom. 08:14:25 -!- tombom_ has quit (Read error: 110 (Connection timed out)). 08:22:31 -!- amca has joined. 08:53:19 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 08:56:56 -!- evenant has quit (Read error: 104 (Connection reset by peer)). 08:57:09 -!- evenant has joined. 09:24:31 -!- MigoMipo has joined. 09:53:13 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 10:22:51 -!- MigoMipo has quit (Nick collision from services.). 10:22:52 -!- MigoMipo_ has joined. 10:50:18 -!- MigoMipo_ has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 10:50:29 -!- MigoMipo has joined. 10:52:37 -!- GreaseMonkey has quit ("HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it"). 11:16:02 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 11:28:19 -!- MigoMipo has joined. 11:30:44 -!- KingOfKarlsruhe has joined. 12:06:52 -!- sebbu has quit (Read error: 110 (Connection timed out)). 12:26:43 -!- FireFly has joined. 12:34:09 -!- upyr[emacs] has joined. 12:38:05 -!- BeholdMyGlory has joined. 13:40:43 -!- sebbu has joined. 14:11:24 -!- BeholdMyGlory has quit (Remote closed the connection). 14:16:16 -!- BeholdMyGlory has joined. 14:35:14 -!- MigoMipo has quit (Read error: 60 (Operation timed out)). 15:04:47 -!- augur has quit (Read error: 110 (Connection timed out)). 15:13:21 -!- labo has joined. 15:54:05 -!- ais523 has joined. 15:59:58 -!- nooga has joined. 16:00:38 -!- augur has joined. 16:00:38 uh yea! you know, i'm dead, i'm dead, and you know it (dead dead, really, really dead) ! 16:01:18 -!- ehird_ has joined. 16:01:49 hi ehird_ 16:02:10 hi 16:02:21 oh. my bouncer is back. 16:02:36 welcome ehird 16:02:39 -!- ehird_ has quit (Client Quit). 16:02:39 assuming ehird is your bouncer 16:02:44 -!- ehird has changed nick to ehird_. 16:03:55 dead dead, really, really dead 16:04:51 and i am back! 16:04:53 what the fuck 16:04:55 why did i rename 16:04:57 -!- ehird_ has changed nick to ehird. 16:04:59 ???? 16:05:06 ? 16:05:15 Becauſe þou art fooliſh indeed. 16:07:29 probably you connected to your bouncer with the nick ehird_ 16:07:34 and the bouncer changed its own name to match 16:07:39 ah 16:11:20 who will be the new king of pop since the previous one is dead? 16:14:32 04:41 gracenotes: yeah, I brought up Haskell to my C++ teacher, he thought I was talking about Haskell 16:14:35 how unexpected 16:17:29 nooga: Prince. 16:18:03 pikhq: fair enough 16:18:15 ehird: 04:41 gracenotes: yeah, I brought up Haskell to my C++ teacher, he thought I was talking about Haskell < what? 16:18:27 nooga: :-D 16:18:30 he means what he said! 16:18:57 uhm 16:24:35 * ehird learns agda. 16:27:41 > (consent may be implicit, but only 16:27:41 > if the implication is caused explicitly.) 16:27:43 : parse error (possibly incorrect indentation) 16:27:43 oh, law. 16:27:43 : parse error on input `)' 16:27:49 shush lambdabot 16:43:20 algebraic slime 16:44:03 Are turing tarpits full of algebraic slime? 16:44:20 And the fossilised remains of combinatory birds 16:44:46 and abstract cucumbers 16:44:59 hi ais523 16:46:27 hi 16:47:33 Torque. 16:47:41 http://www.hcn.zaq.ne.jp/cabic508/rsf/mq.swf 16:47:45 Good night, sweet prince 16:52:00 dead dead, really, really dead 16:55:50 nooga is having issues with this. 16:57:05 obvious remake from "i'm bad" 16:57:19 -!- GregorR-L has joined. 17:03:46 ais523: are you doing icfp this year? 17:03:52 1h56m to go 17:04:08 ehird: ooh, I was planning ot 17:04:10 *to 17:04:15 didn't realise it was so close to the start 17:04:58 http://icfpcontest.org/countdown.php 17:05:00 (needs js) 17:05:03 very omnious 17:05:09 * ais523 wonders why it starts at 19:00:16 our time 17:05:13 it's the seconds field that confuses me 17:05:26 Probably related to the problem. 17:08:44 "Infinite Compression Explained" —FrozenVoid, /prog/ 17:08:46 IHBT 17:11:09 ais523: It might be that their box is 16 seconds unsynchronized. The countdown is done so that the .php page generates a "countdown(nnnn);" script block, where 'nnnn' is the starting value (in seconds) of the counter. 17:11:58 The contest will run from Friday 26 to Monday 29 June, 2009. This web page will contain the problem statement, and other instructions. 17:11:59 The contest will start at 13:00:16, CDT, GMT-5, and run for 72 hours. There will also be a lightning round, which will last 24 hours. 17:12:02 (And not the starting time of the contest.) 17:12:12 the contest is declared to start at :16 17:12:13 Oh. Well, that's the fun, then. 17:12:22 anyway, I hope that this year's task is one that can plausibly be done in INTERCAL 17:12:25 last year's wasn't 17:12:35 and I'd probably happily turn down a chance to win for a chance to mess about with esolangs 17:12:41 nothing can be done in three days in intercal 17:12:47 :P 17:12:54 (yes, that's how long a nop takes to write) 17:12:56 (hurr hurr) 17:12:56 you'd be surprised 17:13:00 (or run, hurr hurr) 17:13:06 continuation.i was done in less than 24 hours 17:15:48 -!- pikhq_ has joined. 17:15:49 -!- pikhq has quit (Nick collision from services.). 17:16:08 -!- pikhq_ has changed nick to pikhq. 17:24:54 HODMSPKRLAJDNKUTRAM 17:25:35 ADJKADSJKAHDFG 17:25:53 -!- KingOfKarlsruhe has quit (Remote closed the connection). 17:26:32 -!- pikhq_ has joined. 17:26:35 ok 17:27:53 So, my Internet went all "LA smoke signal" for a bit there. 17:31:46 pikhq_: Satellite internet sure must tax TCP error correction. 17:32:04 Yes, it does. 17:33:58 I wonder if you can DDoS TCP by keeping claiming the packet was invalid. 17:35:31 -!- pikhq has quit (Read error: 110 (Connection timed out)). 17:48:59 -!- pikhq_ has changed nick to pikhq. 17:49:17 ehird: Not much of a DDoS. 17:49:29 :p 17:49:42 ehird: it would just be a standard DOS 17:49:49 but AFAICT, that would just mess up the connection from you to them 17:50:13 It'd be more like forcing them to DOS you. 17:50:15 :P 17:50:25 :P 17:55:51 -!- MigoMipo has joined. 18:00:06 haha, apparently steve jobs is a practicing buddhist 18:00:11 i guess modulo the whole material possessions bit 18:02:08 It's the Western adaptation of Buddhism. Y'know, with the non-theism, but without the actual need to believe anything. 18:03:16 I'm always quite annoyed when atheists give buddhists some slack while rightfully criticizing other religions their culture is closer to; it seems they want to block out all the non-secular, non-humanitarian parts of buddhism to paint it as some kind of "religion done right". 18:03:18 18:04:07 Steve Jobs is a practicing lunatic. 18:04:21 He's obnoxious, but how's he a lunatic? 18:04:32 He's Steve Jobs :P 18:04:37 That's all the evidence I need. 18:04:46 Righty ho then. 18:04:47 "Atheist" is a crappy term. 18:04:57 Buddhism is an atheistic religion. (generally) 18:05:10 Yeah, "atheist" is inaccurate. 18:05:20 Nobody says "oh, you're a religious atheist". 18:05:23 But areligious sounds stuuuuuuuuuupid. 18:05:26 They worship Buddha, that's their god! 18:05:58 Man, people who fail to realise there's more than one Buddha. :P 18:06:02 Buddhists are so calm and loving to everyone and everything. That's why they have Naraka! 18:06:07 NUH UH BUDDHA'S THAT FAT GUY 18:06:10 AND THEY WORSHIP HIM 18:07:05 ... Maybe Japanese Buddhism. Which considers the Buddha a kami. 18:07:35 -!- comex has quit (hubbard.freenode.net irc.freenode.net). 18:07:35 -!- ehird has quit (hubbard.freenode.net irc.freenode.net). 18:07:41 (also, man, "kami" as translated into English really misses the point.) 18:07:42 -!- comex_ has joined. 18:07:45 -!- ehird has joined. 18:09:48 How's "secular" instead of "atheist"? 18:10:37 The problem with the word 'atheist' is only that its ambiguous use has muddied the term (same is true of 'agnostic') 18:11:15 Indeed. 18:11:50 "Sometimes I think Im agnostic, but other times Im not so sure" ;) 18:12:08 AAAGH. 18:12:09 Secular is ... even more inaccurate. 18:12:36 "Secular". "Of the world"? 18:12:50 Yeah... 18:13:13 * amca thought "secular" means "non-spiritual" 18:13:30 "Agnostic" does not mean "Well, Jesus /might/ be the messiah" :P 18:14:29 GregorR-L: Oh, but I have seen people say it does. 18:14:41 There are people who are seriously agnostic about, say, God, but not in the same way about Russell's Teapot. 18:14:50 Their minds are like unto useless mush. 18:16:20 amca: Nope. Adjective form of Latin for "world". 18:16:39 http://izismile.com/2009/06/26/the_victims_of_the_world_wide_web_42_photos.html 18:16:44 Gets misused to mean "not religious". 18:16:56 pikhq: Okay, seriously, man, that's tenuous. 18:17:05 We're not fucking speaking in Latin. 18:17:25 We're speaking in English and the hoi polloi have assigned a meaning to the word secular as used in English and therefore that is what it means. 18:18:08 No, we're speaking the unholy amalgamate of German, Celtic, Latin, and French, all in a pretty Anglo-Frisian wrapper. 18:18:39 pikhq: Also known as "English". 18:20:50 don't be stewpid 18:26:26 Grr. 18:26:27 You know what? 18:26:30 GnuPG needs an API. 18:26:31 a good api. 18:26:41 GregorR-L: what did directnet use to encrypt? 18:26:50 ehird: And not pipes? 18:27:17 pikhq: unfortunately, the unix platonic ideal doesn't help me get shit done when i want to gnupg up some stuff in haskell :P 18:27:22 well, it does 18:27:22 The thing is, GnuPG is written in such a way that creating a library for it is a bitch. 18:27:25 but not as I'd like 18:27:34 pikhq: i.e. "badly" 18:27:42 Yes. 18:28:06 Which is why the GnuPG library communicates with GPG via a pipe. 18:28:31 It used GPG optionally for authentication, AES for keys, and ... I forget what for the initial key exchange :P 18:29:01 Why does the public key exchange need to be encrypted? 18:29:12 -!- inurinternet has joined. 18:29:16 also, so you basically just give it to openssl? 18:29:48 I didn't use OpenSSL, but yeah. And the PUBLIC key exchange is not encrypted, the SYMMETRIC key exchange is. 18:30:11 GregorR-L: You wrote your own aes? :P 18:30:15 Also, why does it use symmetric keys 18:30:16 ? 18:30:19 No. There are other implementations out there. 18:30:40 Why does it use symmetric keys ...? Uh, I'm just gonna go with "because" 18:30:59 Symmetric keys suck yo :P 18:31:01 Its a bit silly, really, since the independent messages are just that, and really asymmetric encryption is fast enough for this now. 18:31:37 GregorR-L: Did you write DirectNet in the days where everyone used 400mhz x86s and talked over fibre-optic? 18:31:37 But there are some small concerns of overusing any given key, so it's better to establish a temporary symmetric key session, thereby only using your private key for the encryption of one (random) sequence. 18:31:53 I can't imagine asymmetric encryption ever being slow enough that it dwarfs network lag... 18:32:05 Also, gpg emailers use the same key for everything for years. :P 18:33:03 ... 18:33:04 You're an idiot. 18:33:15 GPG itself asymmetrically encrypts a session key. 18:33:20 GPG messages are an encrypted symmetric key, followed by the message --- yeah. 18:33:34 The message is encrypted with a temporary symmetric key. 18:33:59 I don't actually know all that much about gpg's actual encryption methods :p. 18:34:05 But yes, I am an idiot. 18:34:15 The concern is overusing keys. 18:34:46 gpg's solution would work if you s/encrypted symm/encrypted asymm/ and used it for the whole chat. 18:35:59 Might as well use AES, though. Easier to work with. 18:36:20 Yeah. 18:36:27 I'll use OpenSSL. 18:36:41 have fun with that API! 18:36:49 AnMaster: Lovely Haskell bindings, bitch. 18:36:59 ehird, fair enough 18:37:23 One issue for channels/group conversations is that someone could make their client not encrypt to $participant thus causing haywire. But I guess I could just reject said messages and make it consider the sender kicked out. 18:46:56 OJDOJ 18:47:21 http://vimeo.com/4353898?pg=embed&sec= 18:47:23 this 18:47:23 is 18:47:25 awesome. 18:56:16 ais523: four minutes to go 18:56:18 until icfp 18:58:14 yep 18:59:04 no, nope. time has passed since then :P 18:59:12 well, ok 18:59:20 I just nipped off to get dinner 18:59:22 and came back just in time 18:59:25 although you could mean 'yep when you said it' 18:59:35 ais523: write it in agda 18:59:47 it's like haskell without decent libraries and with dependent types! 19:00:02 and icfpcontest.org slooooooooooooooooooooows doooooooown. 19:00:36 yep, waiting for it to load now 19:00:51 * ehird yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawwwwwwwwwwwnnnnnnnnsssssssssssssssss. 19:00:56 * ehird yawns IRL due to saying yawn. 19:01:00 heh 19:01:05 ais523: you are now yawning. 19:01:15 no, I'm not 19:01:17 also breathing manually. 19:01:19 dammit! 19:01:28 you're like superman. superyawningandbreathingman. 19:04:17 omg 19:04:19 ais523: fancy design! 19:04:22 for ICFP at least 19:04:25 It's all red and stuff. 19:04:36 "The contest will run from Friday 26 to Monday 29 June, 2009. This web page will contain the problem statement, and other instructions." 19:04:40 Uhh... no it doesn't. 19:04:41 I'm reading the task description, someone posted it on a mirror 19:04:42 Wait, yes it does. 19:04:47 "Quit rattling your packages and put them back under the tree. It hasn't started yet." 19:04:49 Yes it has. 19:05:14 ais523: how can they have? The link does not work. 19:05:21 Specifications FAQs 19:05:30 could have been the people in charge who put them up 19:05:35 you did allow for the :16, right? 19:05:44 ais523: It has been 5 minutes. 19:05:50 ais523: Anyway, link? 19:05:52 also, no INTERCAL for me this year 19:05:54 ehird: see the IRC channel 19:05:59 where? 19:06:06 #icfp-contest 19:06:12 I'm disappointed you don't know that off by heart 19:07:05 ais523: It is not in the topic. 19:07:10 hmm... their VM reminds me of Malbolge 19:07:12 and no, it isn't 19:07:13 Do you want me to ask? Why couldn't you have just linked me? 19:07:17 but people are posting it every 10 seconds or so 19:07:28 or were, at least 19:07:39 So... you can't copy-paste. Okay.. 19:07:41 *... 19:07:58 ais523: Why no INTERCAL/ 19:08:02 s/\/$/?/ 19:08:08 this thing is full of double-precision floats 19:08:15 Ha. 19:08:33 So, uh... link please? 19:08:58 ugh, my copy-and-paste's stopped working 19:09:02 http://files.getdropbox.com/u/95516/icfp.pdf 19:09:04 mouse worked 19:09:28 lol 19:09:37 ok, this reminds me of an esolang 19:09:45 there are all sorts of arbitrary restrictions and weirdnesses for no reason 19:09:49 Boring. 19:09:54 yep, a boring esolang 19:09:59 Reminds me of http://www.boundvariable.org/. 19:10:02 ais523: no, the whole thing 19:10:13 it's basically the 2006 one, http://www.boundvariable.org/ + some minor changes 19:10:30 not really, as they don't even have a massive program to run 19:10:43 boundvariable was great; this one seems less so 19:10:50 they have a VM, but you have to write programs for it 19:10:52 as well as implement it 19:11:00 what exactly is the challenge here? 19:11:07 it seems very boring, not exactly challenging 19:11:08 ehird: read! 19:11:12 i am! 19:11:17 i'm just falling asleep every other line. 19:11:23 ais523: i don't mean, what do you have to do 19:11:26 i mean what's the challenge in it 19:15:42 ais523: why would I have it memorized? 19:15:48 I've never participated and only watched once 19:15:59 I've only participated once 19:16:03 and you were there then 19:16:54 :P 19:17:00 meh 19:18:20 19:17 mike_a_: damn, my brother is a rocket scientist, but he's in myanmar!! 19:18:20 19:17 mike_a_: he knows alll about this shit 19:18:23 Things such as basic physics! 19:19:06 ok, this contest looks really boring 19:19:34 Write a VM! Write some basic equations! Run some programs! And then, and then, WRITE YOUR OWN PROGRAMS!! 19:19:39 Fun bonanza! 19:20:55 19:16 mike_a_: this looks insanely hard 19:21:00 all mike_a lacks is a brain, poor thing 19:21:12 no, it's basically writing your own programs in a trivial annoying VM that solve the three-body problem 19:21:17 or in the last case, the 13-body problem 19:22:13 ehird, nooga: 21:41:46 er, about Pascal 19:22:16 how does that contradict what i said 19:22:18 Gracenotes: shush 19:22:26 The 13-body problem: Menage á Treize 19:22:35 huh 19:24:04 I will now proceed to pronounce divers japanese phrases 19:25:48 * ais523 is on the border of deciding not to participate after all 19:25:49 diver's 19:25:51 japanese 19:25:53 phrases 19:26:00 ais523: MWAHAHA! AGDA WILL WIN! or no. 19:26:01 not. 19:26:17 divers >_< 19:26:28 19:26 diginux: http://icfpcontest.org/binaries/bin4.obf 19:26:28 19:26 dankna: bin4 will not be released until after the lightning round 19:26:29 19:26 diginux: wtf?!?! 19:26:39 ais523: quick! wget it 19:26:42 and sell it on the black market 19:26:47 ehird: it's a text file 19:26:53 containing a placeholder 19:26:55 oh 19:26:56 darn 19:27:05 A placebo placeholder though. 19:27:14 but reselling placeholders on the black market sounds cool to me 19:27:31 Hahaha, I felt like I was in a horror movie or something just now 19:27:36 Deewiant: wat 19:27:41 A machine trying to boot keeps on printing GRUB 19:27:45 > repeat "GRUB " 19:27:46 ["GRUB ","GRUB ","GRUB ","GRUB ","GRUB ","GRUB ","GRUB ","GRUB ","GRUB ","G... 19:27:58 It's still going :-D 19:28:13 Screenful of GRUB 19:28:13 :D 19:28:17 > cycle "GRUB " 19:28:19 "GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB... 19:28:21 @let grubby = 'G':'R':'U':'B':' ':grubby 19:28:22 Defined. 19:28:23 Deewiant: Just wait until it starts hissing. 19:28:25 Yeah, that's the one I was going for. 19:28:25 > grubby 19:28:28 "GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB... 19:28:29 ehird: :-D 19:29:00 Deewiant: Then... a flash of light. A crack sound. Your monitor is broken now. The computer does not turn on. You walk out the door, visibly shaken. You hear a whirring noise. The computer is on. 19:29:05 The broken monitor starts filling with a word. 19:29:07 "GRUB". 19:29:16 Exactly :-D 19:29:30 that's a slightly strange behaviour 19:29:32 You run down the corridor screaming. 19:29:37 You see a TV in another room. 19:29:42 Well, at least it stopped when I pulled the drive it was booting from 19:29:44 The residents are sitting, relaxed. 19:29:52 The TV is filling with "GRUB" 19:30:13 You run around town, and all that is there is "GRUB". The people are in a trance, undisturbable from GRUB. 19:30:17 And then the grub burst out of the TV and OMG they're actual grubs nom nom 19:30:19 Aaaand I'm out of ideas. 19:30:24 GregorR-L: Good idea. 19:31:05 and then it turns out that everything is actually as normal, and you've become a tomato! D: 19:31:15 ...Also that... 19:31:20 That means everything is as normal? 19:31:25 :D 19:31:29 well, except you. http://tvtropes.org/pmwiki/pmwiki.php/Main/TomatoInTheMirror 19:33:42 (yeah, I've been reading much tvtropes lately...) 19:39:05 the wasabi peas that have been sitting in my duffel bag for 2 months must be pretty bland by now 19:42:19 -!- Slereah has joined. 19:43:46 "The wide-screen format, found in only 39.2 percent of laptops expected to ship this year, will become dominant in mid- to late 2006. It will nearly eclipse standard screen dimensions by the end of 2009, the market research firm estimates." 19:43:48 — October 2005 19:44:04 and they're correct 19:44:58 yep 19:45:15 good predictive powers. 19:46:20 19:45 andryk: I must create this machine? sorry, if this is stupid question.... 19:55:14 -!- Slereah_ has quit (Read error: 110 (Connection timed out)). 20:01:27 19:58 gwern finishes reading the specs 20:01:27 19:58 gwern: wow, this is tough. I don't even know how to begin creating a VM 20:01:33 why do people have trouble with this? 20:02:28 What specs? 20:02:49 Deewiant: icfp 20:02:50 "19" and smaller systems have 8ms or faster response rates, but I've not seen that with the bigger displays yet." 20:02:54 ↑ from 2007 20:02:59 You can't find less than 8ms on a >19"? 20:03:00 Srsly? 20:03:18 2ms 24"s are terribly common now; I doubt it was that bad two years ago... 20:03:56 Oh yeah, I forgot about ICFP 20:04:05 I'm not doing it this year 20:04:06 Deewiant: Keep having forgotten it; it's shit this year. 20:04:23 Really, how's that 20:04:30 Boring. Not challenging. 20:04:32 Lame. 20:05:52 Based on a quick scan: write a VM and and then programs for it? Or wut? 20:06:20 Pretty much. 20:06:23 The VM is like a bad esolang. 20:07:15 * pikhq learns more about monads 20:07:40 -!- BeholdMyGlory has quit (Remote closed the connection). 20:07:43 I understand the damned things, but little things like mapM, foldM, etc. are good to know. 20:08:39 So.. Basically, there's a difference between understanding what a monad *is* and all the ways you can use them. 20:09:07 Yep 20:09:18 One of them is necessary for most Haskell work, the other isn't. ;-) 20:11:46 Knowing what a monad is makes it much easier to actually use them. 20:11:51 ;) 20:11:56 True, but it's not necessary 20:12:39 * pikhq wonders how you could use monads more complex than just do {} blocks for I/O without grokking them. 20:12:57 you can probably use Parsec without really understanding monads 20:12:58 pikhq: Easily. 20:13:04 do blocks for State, Reader... 20:13:05 pikhq: Well, not list monad. 20:13:13 But what Deewiant said, and Parsec, and stuff. 20:13:27 I'd say List is quite doable too 20:13:44 Mmm. Well, you could use them, I guess, but not all *that* well. 20:14:35 if you don't know what monads do, you'd wonder why you'd use List as a monad 20:14:45 Indeed. 20:15:06 You might learn it as a more convenient syntax than concatmapping all over the plac 20:15:09 e 20:15:27 * pikhq is trying to figure out monadic transformations. 20:20:16 -!- tombom has quit ("Peace and Protection 4.22.2"). 20:21:05 pikhq: They're monads that contain other monads. 20:21:11 pikhq: e.g. StateT Integer (IO String). 20:21:13 Yes. 20:21:25 It didn't take too long to figure out. 20:21:29 pikhq: note - ListT violates the monad laws; pretend it doesn't exist. 20:21:42 ListT violates the monad laws? Lame. 20:21:54 Not Monad [], but ListT yes. 20:22:58 pikhq: http://www.haskell.org/haskellwiki/ListT_done_right; "amb has AmbT, which could be considered as 'ListT done right' (since Amb is identical to the list monad)." leads to my (old) implementation of McCarthy's amb operator, http://www.haskell.org/haskellwiki/Amb 20:22:58 Only the one in mtl. 20:23:03 ( http://www.randomhacks.net/articles/2005/10/11/amb-operator ) 20:23:15 Which also happens to be both the list monad and a ListT done right! 20:23:18 monadlib and others have the correct one (I'm fairly sure) 20:23:29 Haven't tested though since I've never used ListT. 20:24:02 I have low opinions of 'monads' which aren't monads. 20:24:17 Hence, don't use mtl's ListT. 20:24:18 Wow, my amb code is really good considering how old it is 20:24:27 Well, a bit over a year old. 20:24:30 March '08 20:24:33 So quite a bit over a year old then. 20:25:08 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 20:26:00 * pikhq wishes the type system could verify that instances of Monad followed the monad laws. 20:27:01 pikhq: halting problem yo 20:27:18 Yes, well. 20:27:26 I can wish for a halting oracle, can't I? 20:27:34 Shur :P 20:27:36 Makes everything easy! 20:28:30 Yah. 20:29:03 void isPrimeH(int p){if(isPrime(p))return;else while();} 20:29:14 One halting oracle, and I can test primality with ease! 20:29:16 -!- Sgeo has joined. 20:29:27 pikhq: won't necessarily be faster 20:29:51 ehird: Nice algorithm, though. 20:29:54 pikhq: Based on things similar, btw, earlier today I came up with an _alternative_ proof that Halts(p) cannot exist, even if you implement it on an Oracle where p is a TM program that cannot access Halts. 20:30:07 Let Verify(p) := Halts(if p then loop else ()). 20:30:22 Halts must always halt and return either true or false, and be correct. 20:30:26 Therefore, Entscheidungsproblem. 20:30:29 QED. 20:30:55 Halts itself cannot run on itself. 20:31:09 pikhq: What's that got to do with anything? 20:31:14 My proof does not depend on that. 20:31:21 Halts is running on TM+oracle, and accepts TM code... 20:31:25 pikhq: Yes, I know. 20:31:26 Let me restate. 20:31:33 ... Okay, I'm failing to see what your proof means, then. 20:31:34 Let Verify(p) := Halts(if p then loop else ()). 20:31:44 Verify(2 == 2) is obviously true, as "if 2==2 then loop". 20:31:47 So, it seems to be id. 20:32:02 BUT, say we feed it a program that, say, checks all twin primes. 20:32:06 Or basically 20:32:12 anything that involves looking at possibly infinite numbers 20:32:15 to verify something 20:32:23 Now, if we run it normally, we cannot tell if it will halt or just take a long time. 20:32:25 So it's not very useful to us! 20:32:32 But part of the definition of Halts is that it always halts. 20:32:47 Therefore, we can do Verify(stuff), and get its truth value, even if it needs to do infinite computation, in finite time! 20:32:51 so solving the halting problem means we can solve the verification problem, but that doesn't mean there aren't other decidable ways of solving the verification problem 20:33:00 Therefore, it solves the Entscheidungsproblem. 20:33:03 Why, yes. Okay, I get it now. 20:33:06 But the Entscheidungsproblem is impossible to solve! 20:33:09 Therefore, Halts cannot exist. 20:33:21 Gracenotes: In 1936 and 1937, Alonzo Church and Alan Turing, respectively, published independent papers showing that it is impossible to decide algorithmically whether statements in arithmetic are true or false, and thus a general solution to the Entscheidungsproblem is impossible. This result is now known as Church's Theorem or the Church–Turing Theorem (not to be confused with the Church–Turing thesis). 20:33:23 You are wrong. 20:33:37 This, of course, means that TM+oracle is trivially equivalent to the infinity machine. 20:33:42 Yep. 20:33:43 Which is, of course, impossible. 20:33:50 pikhq: Well, no, the infinity machine can go super fast. 20:33:57 But this does the infinite computation bit. 20:33:58 ehird: well, you're wrong when it comes to arithmetic with naturals and + 20:34:09 :) 20:34:15 but really, your proof is going the wrong way 20:34:20 even if its conclusion is valid 20:34:22 imho 20:34:25 No, the infinity machine can do an infinite number of operations in a single second. 20:34:32 btw do you have Entscheidungsproblem on tab complete? D: 20:34:36 pikhq: it can split further 20:34:39 Gracenotes: copy-paste :-P 20:34:49 Curses. It's countably infinite. 20:34:56 ? 20:35:40 It can do an arbitrary number of operations in a second, not an infinite amount of them. That's what I meant to say. 20:36:06 so "assuming halting, arithmetic" and "assuming arithmetic, halting" are different... 20:37:42 Anyway, I think the proof was quite good for having been thought up in about 2 minutes in the bathroom... 20:46:30 ehird: 2 minutes, huh 20:46:35 .. >_> 20:47:02 ಠ_ಠ 20:55:20 -!- BeholdMyGlory has joined. 21:01:11 -!- Judofyr has joined. 21:03:24 heh, I just dumped a dependency graph... dot generated a 3412x7640 image. 21:12:15 -!- inurinternet has quit (Read error: 113 (No route to host)). 21:13:00 Jun 26 22:08:53 phoenix rpc.statd[1335]: Unable to read state from '/var/lib/nfs/state': errno 0 (Success) 21:13:01 sigh 21:13:09 hilarious.... 21:13:22 "British Gas Business: This computer consumes around 300 watts. Click here to reveal how you can use it to save your business thousands." Uhh, you can run a decent desktop computer on like 60-90 watts... 21:13:28 300 isn't anything special :P 21:14:18 -!- augur_ has joined. 21:14:18 -!- augur has quit (Read error: 104 (Connection reset by peer)). 21:15:37 -!- GregorR-L has quit (Read error: 110 (Connection timed out)). 21:20:04 billions and billions and billions! 21:20:31 I have powertop installed 21:20:42 (extra billions for emphasis) 21:20:51 quite probably you can get a lot less than that 21:21:06 ais523: less than 60 watts won't do much useful 21:21:48 Well... 21:21:49 "The whole computer system consumes 1W (cpu, graphics, motherboard), which is really small compared to even Netbooks." 21:21:51 http://www.ubergizmo.com/15/archives/2009/06/nvidia_tegra_powers_sexy_new_netbooks_provides_days_of_battery_life.html 21:21:58 ok, that is impressive 21:22:12 Though it's rather silly; you could get a lot more performance out of that. You don't need 25 days without charging, really. 21:22:15 actually, all these numbers are rather large compared to what typical silicon chips use 21:22:24 2.5 days would be just as awesome and probably more than 10x faster. 21:22:38 well not quite as awesome, but just as useful 21:25:06 that link says it runs windows ce... hm why 21:26:03 it doesn't mention what cpu architecture it is? 21:26:04 AnMaster: The chip is very underpowered. 21:26:07 Yes it does. 21:26:08 Tegra. 21:26:10 ah 21:26:15 Based on ARM. 21:26:18 right 21:26:24 AnMaster: It's used in e.g. the new Zune. 21:26:32 I was considering arm since windows ce could run on it 21:26:32 So not really designed for a laptop/nettop. 21:36:16 AnMaster: Windows CE is a saner OS than Windows itself, at least. 21:36:39 (not to say it's sane, *but* there's only so much insanity you can have while running on embedded systems) 21:44:32 I came up with a design for a self-spinning top. What OS do you think it should use? Is there a version of Linux that can run on a microcontroller? 21:44:36 :-P 21:44:58 Warrigal: use Arduino! 21:45:05 AKA What do we know 21:45:23 Ar du ui no 21:45:23 Wha tdu we kno 21:45:28 → What do we know 21:49:58 I don't see how "ar" represents "wha". 21:50:26 In some accents, "whar". 21:50:48 Warrigal: at du we kno, then. Just make the w really soft. 21:50:55 Wha do we know, Ar do we know, blend. 21:52:26 * Warrigal nod-shrugs. 22:13:06 how do you convert from html colours to something like "r=0.9 b=0.7 g=1.0". 22:13:38 AnMaster: decode hex, divide by 255 22:13:42 Divide each hex byte by FF 22:13:46 hm 22:13:49 right 22:13:56 Also, switch the second and third. 22:14:16 Also, enjoy your floating point colors. That should have an... Interesting gamut. 22:14:59 pikhq, hahah. it is just that it seems graphviz wants that format... 22:15:11 gamut 22:15:17 sounds like flakkk 22:15:20 nor 22:15:27 pikhq, the example shows: color=".7 .3 1.0" 22:15:48 I tried to just give it html notation, but it didn't like it. 22:17:34 oh wait 22:17:37 worse than I though 22:17:41 thought* 22:17:55 it wants HSV...? 22:18:37 AnMaster: what's that an example of/ 22:19:03 ais523, as I said... graphviz... 22:19:49 actually the docs claims it accepts HTML notation too... wonder why that didn't work... 22:19:58 Uhhhh, graphviz does accept HTML notation. 22:20:02 I've used it plenty of times. 22:20:07 e.g. "#FFFFFF" 22:20:16 context: start >>> [shape=diamond,color=# <<< 84ed76]; 22:20:16 Warning: error.dot:2: ambiguous "84ed" splits into two names: "84" and "ed" 22:20:17 start [shape=diamond,color=#84ed76]; 22:20:20 is the line 22:20:27 what is the issue there 22:20:32 missing quotes, I guess 22:20:47 Yeah, no shit :P 22:20:50 hm right 22:50:14 -!- mercibeaucul has joined. 22:50:39 good evening, #esoteric. 22:50:46 evening 22:51:04 are you new here? or have I just not been paying attention for the last week/month/year/ 22:51:16 yes, I am new as of right now 22:51:26 welcome, then 22:51:39 quick, someone say something interesting! 22:51:53 o_O 22:51:53 fungot: you're good at saying interesting things, I hope 22:51:55 ais523: i am having a problem with tail recursion here? http://nonlogic.org/ dump/ text/ fnord i love how everything like that just remind me" of a typical " 2 keyboard revolution": you can have an even harder time porting over the awk stuff yet. 22:52:52 what brings you here, anyway? 22:53:53 hmmm 22:53:57 curiosity, I suppose 22:54:06 plus, I esoteric is one of my favorite words ;) 22:54:09 heh 22:54:18 this is where we plan, write, and discuss esoteric programming languages 22:54:33 ah, well unfortunately I have not yet learned to code 22:54:44 python will be my first language, I believe 22:54:52 it's not a bad one to start on 22:55:01 for now, my love lies in mathematics and literature 22:55:25 oh, hi mercibeaucul 22:55:32 wow, someone coming to esolangs before langs? :D 22:55:41 mercibeaucul: what sort of mathematics? 22:55:48 oh, I'm not too high up yet 22:55:52 apparently there's a college professor somewhere who teaches Ook! as a first language 22:56:03 why ook? 22:56:05 but I do love Algebra and Logic and Calculus 22:56:06 that's retarded 22:56:11 Ook, and not Brainfuck? That's dumb. 22:56:11 being high is very good for mathematics, just ask erdos 22:56:11 BF-style commands, and a syntax that doesn't leave people with preconceptions 22:56:13 :-P 22:56:20 ehird, I almost agree 22:56:23 but sometimes it's frustrating 22:56:25 mercibeaucul: Then you'll like good programming. 22:56:26 ook is just about the worst language evar 22:56:32 there are worse langs 22:56:35 pikhq: Lemme guess, Haskell? ;) 22:56:39 pikhq, the only issue I may have with programming is the fact that I'm a bit of a perfectionist 22:56:44 Oh. 22:56:45 Then Haskell. 22:56:46 Haskell is an excellent language, but awful as a first language 22:56:53 ais523: for a mathematician? are you sure? 22:56:55 it's good for perfectionists, though, I agree 22:57:00 ooh, for a mathematician, maybe not 22:57:08 And Python is definitely a good language to start with; lets you get your brain around how programmers think while being able to do useful things. 22:57:12 although it depends on whether it's maths as in theoretical computer science, or maths as in arithmetic 22:57:14 i mean, even not a terribly good one, you'd still have the background 22:57:15 ehird, I wouldn't consider myself a mathematician, but I do adore mathematics 22:57:30 the concepts fascinate me 22:57:32 a mathematician is anyone who knows anything about mathematics modulo trivial things like arithmetic :-P 22:57:35 I'd love to learn about physics as well 22:57:35 mercibeaucul: That will get you far. You have to be pretty perfectionist when programming. 22:57:48 computers are insanely pedantic 22:57:53 ...unless you use PHP! 22:57:57 Or Perl. 22:58:04 Haskell is awful as a first language? 22:58:11 first language to learn, I mean 22:58:20 it's pretty good as a first language to turn to to solve a problem 22:58:20 my only problem is that I have a short attention span - so if something doesn't keep me hooked I get bored 22:58:21 Warrigal: Before you say it was your first language, let me point out that you suck at coding <_< :-P 22:58:37 and what, it was Warrigal's first language? really? 22:58:44 ais523: first or second 22:58:46 I think 22:58:51 It wasn't even my first functional programming language. 22:58:58 My first functional programming language was Unlambda. 22:58:58 oh 22:59:01 heh 22:59:07 Warrigal: In order grok Haskell, you have to grok a lot of computer science. 22:59:14 Ehh not really 22:59:18 I didn't know that 22:59:20 I don't know whether I'd like to teach math or english - I am leaning towards math because I think I need to help encourage other females that math isn't just for men. I'm really sick of that mentality 22:59:24 It's just expressions + some funky stuff. 22:59:25 actually, my first functional lang was Unlambda too, I think 22:59:27 which is worrying 22:59:51 but it's actually rather good for learning functional thought in, even though it's more or less completely useless as a language for achieving anything productive 22:59:53 mercibeaucul: which makes you something like only the fourth female ever to come here since we started in 2002... 22:59:59 ehird: Types, monads, monoids, functors, applicative functors, functions, lists, tuples... 23:00:03 ehird, o_O 23:00:05 rather heterogenous culture, this place. 23:00:06 :\ 23:00:08 Fourth? Hmm. 23:00:12 well 23:00:13 Sukoshi 23:00:15 that other one 23:00:15 ehird: tbh, that's probably about the same proportion as on the internet as a hole 23:00:17 plus some leeway 23:00:25 the internet as a hole? how does that work? 23:00:26 Lessee, Sukoshi, mercibeaucul, and... I don't recall who else. 23:00:29 ais- that's not true. Lots of females hang out on Myspace ;) 23:00:32 *as a whole 23:00:39 mercibeaucul: ah, yes, we keep forgetting about places like Myspace 23:00:41 mercibeaucul: does that count as the internet? 23:00:43 i'm not convinced 23:00:44 * pikhq misses Sukoshi. :/ 23:00:46 :p 23:00:53 ehird: well, CADIE seemed to use Myspace 23:00:56 or something similar, at least 23:01:00 blogspot. 23:01:07 yes, but it was a Myspacy sort of page 23:01:07 it was just themed to look like myspace. 23:01:10 ehird - true. 23:01:39 I am not a fan of the social networking shit 23:01:43 neither am I 23:01:45 I hold it on the same level as television 23:01:47 nor are most of the people here, I imagine 23:01:52 Nor I. 23:01:56 a good way for the government to keep their people mindless and occupied 23:02:06 I hold it slightly lower than television. 23:02:14 actually, yes, I believe I do too. 23:02:23 Television has a couple of things that have given it merit. 23:02:30 at least on television you can find some interesting documentaries 23:02:31 television is good background noise for old people 23:02:38 ha 23:02:39 some of them can't live without background noise, it seems 23:02:48 yeah, same with lots of young peope 23:02:50 people* 23:02:57 my younger sister sleeps with hannah montana playing every night 23:02:58 :cringe: 23:03:06 ais523: ... You mean that music in the background is background noise for people? 23:03:12 strange, I'm young and I can't bear having just about any noise 23:03:20 same 23:03:25 I need quiet to concentrate. 23:03:32 I really like exams 23:03:37 I play a lot of music as I work on the computer. 23:03:40 quite possibly because they are so quiet 23:03:44 ais523: that's the first time that statement has ever been said 23:03:47 ever :-) 23:03:51 ais - I agree. And I also can only do well on them if there is no distraction 23:04:02 if someone is tapping their pencil it breaks my concentration 23:04:05 ehird: incorrect, I've said it before 23:04:07 ehird: Oh, I rather like exams. Easiest bit of class ever. 23:04:16 I don't like tests, but I like classes graded entirely on tests. 23:04:23 Now, *homework*, that's a pain. 23:04:23 hah 23:04:33 definitely. I enjoy math homework, though 23:04:36 as long as it doesn't take too long 23:04:40 and I don't have to do it stoned 23:04:52 "I understand the concept. Now could we move on, I don't want to do busywork." 23:04:59 yes, a good opinion 23:05:12 I make exceptions for homework that involve more than just proving bare understanding. 23:05:16 "Maan, it's like, you've got a two... and you clone it... and, it's like, you put them together so it has BOTH OF THEM... and you get a thing called 4, man..." 23:05:20 "Far ouuuut." 23:05:37 the worst type of homework was for music theory - having to convert chords and such 100+ times 23:05:39 s/involve/involves/ 23:05:43 aargh 23:05:57 ais523: eh? 23:05:57 Oh, God, music theory. So mind-numbing. 23:06:00 here, if we have to do something more than about 10 times, we typically automate it 23:06:04 but you can't do that with homework 23:06:12 Trivial, but mind-numbing. 23:06:14 sure you can 23:06:16 it'll just take longer 23:06:20 I mean, you aren't allowed to 23:06:23 unless you have great ocr and really fast handwriting 23:06:26 and who cares if it takes longer? this is #esoteric 23:06:34 haha 23:06:42 ais523: tbh, showing you can write a program to do a given action generically is worth far more than doing it by rote 23:06:47 yes 23:06:51 mercibeaucul: Here in programmer-land, we'd write a program that inputs chords and outputs other chords. :P 23:06:59 pikhq: hi! welcome to a few lines ago. 23:07:10 ehird: Shaddup. 23:07:11 and here in #esoteric, we'd make it deliberately stupid 23:07:27 :) all of my best friends are programmers 23:07:32 I'd write it in that programming language written in musical notation. :) 23:07:35 "Please enter chords as nanohertz values." 23:07:45 pikhq: there's more than one 23:07:48 Velato, and Fugue 23:07:48 er, notes. 23:07:52 they once taught me how to make a game where it chooses numbers randomly, which was pretty useful considering we used it to determine bowl hits 23:07:59 doesn't velato sound nicer? 23:08:01 ah, I miss early college days :( 23:08:09 Velato is an esoteric programming language by User:Rottytooth, which uses MIDI files as source code. Programs in Velato, like in Fugue, are defined by the pitch and order of notes. Velato is intended to allow for flexibility in composition, so functional programs will not necessarily sound like random notes. There is a tendency for Velato programs to have jazz-like harmonies. 23:08:10 yah 23:08:12 I don't know Velato, but I think it was me who wrote the first couple of Fugue programs 23:08:40 What a beautiful dependency graph... (For newcomers, this was dumped from a bf->C compiler I'm working on.) Dumped when about half of the SSA stuff is implemented (variables has not yet been renamed fully, nor are the sub-stuff inside if-blocks converted to SSA yet, that is the next step): http://rage.kuonet.org/~anmaster/tmp/depgraph.png (Be careful if you use Firefox. The image has quite large dimen 23:08:41 sions.) 23:09:12 mercibeaucul: Ignore everything AnMaster says, and you can be a recruit in my futile, not-entirely-serious endless war against him. 23:09:23 AnMaster: what exactly is on that graph? 23:09:26 (Sure is a good deal when you write it out like that, isn't it?) 23:09:26 mostly it seems to be tuples 23:09:30 haha, care to elaborate? 23:09:36 ais523: looks like a parse tree 23:09:40 ais523, a bit of LostKingdom 23:09:40 mercibeaucul: I've pretty much said it all 23:09:42 mercibeaucul: ehird and AnMaster both dislike each other's conversation styles 23:09:59 oh, and if it's LostKingdom, no wonder it's so pointlessly large 23:09:59 ais523, to be specific, it was dumped when an exception was thrown in the code working on converting it to SSA 23:10:11 hahah 23:10:14 ais523, just a short section. 23:10:19 http://www.rottytooth.com/velatotracks/print_h_5.mid ← velato programs do indeed sound nice 23:10:22 well, obviously, the graph fits in memory 23:10:23 I love when the internet makes me laugh out loud. 23:10:36 ais523, was rendered with graphviz then 23:10:39 I think i've laughed at loud at something on the internet about 10 times in my life 23:10:43 mercibeaucul: LostKingdom is one of the world's only computer games written in the internet 23:10:48 *written in an esolang 23:10:50 how did I manage that? 23:10:57 AnMaster: Sure, now you tell me. 23:10:59 it's computer-generated, and so massively large as a result 23:11:06 pikhq, ? 23:11:06 pikhq: Tell you what? 23:11:17 ais523, I made my compiler dump the current graph to a dot file when it throws an exception in graph parts of the code. 23:11:19 should I check it out? 23:11:20 AnMaster: I saw "very large" after I started loading the image. 23:11:20 it helps debugging. 23:11:25 My computer locked up for a few. 23:11:38 mercibeaucul: if you want to; it's a text adventure, and it's very difficult 23:11:39 pikhq, it works just fine in konqueror 3.5.10 23:11:40 :P 23:11:42 I've got stuck quite near the start 23:11:43 and in gimp 23:11:44 pikhq: have you upgraded yet? 23:11:47 I've never played a text adventure before 23:11:51 ais523: LostKingdom was NOT written in an esolang. 23:11:51 also, you'll need a pretty fast Brainfuck compiler/interpreter to be able to run it 23:11:58 but I have a few friends that failed out of college because of them ;) 23:11:59 ehird: well, it was compiled into one 23:12:00 along with WoW 23:12:01 It was written in BF-BASIC, which is a perfectly palatable, if minimalist, basic. 23:12:04 *BASIC 23:12:05 so I never played any 23:12:11 Really, not much harder than using gcc-bf... 23:12:16 well, OK 23:12:23 ais523: ... No. A naive interpreter can play it well. 23:12:24 substantially easier on the basis that gcc-bf isn't finished yet 23:12:27 ais523, btw the red edges are "IO order", the green are some temp "shadowed by" stuff calculated during the conversion. 23:12:31 It's freaking large, not computationally intensive. 23:12:31 mercibeaucul: wow, i've never heard of interactive fiction being described as addictive as WoW... 23:12:36 has anyone every played "King's Quest" or 23:12:38 blue are dummy to ensure that the start node is first 23:12:40 Quest for Glory? 23:12:45 pikhq: depends on /how/ naive the interp is 23:12:49 mercibeaucul: i played 5 minutes of them and died. 23:12:52 random old games 23:12:53 and whether it's O(n) in the length of the program 23:12:54 lucasarts games are much better. 23:12:56 ehird, those were the best games. 23:13:01 lucasarts.. 23:13:02 do I know of that? 23:13:03 ais523: 50 lines of Tcl? 23:13:04 let me look 23:13:11 I've done it. 23:13:13 there are also some dotted ones that represents ordering, but graph was even huger with that, so I stripped them. 23:13:13 pikhq: 50 seems like a bit much for a BF interp 23:13:15 mercibeaucul: monkey island, full throttle, dig, etc. 23:13:24 like sierra games, but you don't die. 23:13:24 a naive implementation's about 20 lines in C 23:13:29 also actual gameplay. 23:13:30 ais523: It compiled Brainfuck to Tcl then executed it. :P 23:13:37 even so 23:13:40 ais523, anyway in the lower regions you can see some newly inserted phi nodes. And to the left... 23:13:40 pikhq: that's huge 23:13:41 I loved Sierra games so much 23:13:47 a golfed BF compiler can be like 5 lines 23:13:53 and random old games like Zak McKracken and the Alien Mindbenders.. 23:13:53 ehird: And I may have overestimated the length. 23:13:56 Lemme see. 23:14:05 ais523, and yes about tuples, that is how instructions are represented at that point 23:14:08 mercibeaucul: lucasarts made that 23:14:14 {Offset, Instruction, Parameters} 23:14:16 -!- Sgeo has quit (Connection timed out). 23:14:18 oh really? absolutely loved that game 23:14:20 along with Haunted Mansion 23:14:32 ehird: I was right. It was absurdly undense. 23:14:38 where Parameters varies depending on what Instruction it is. 23:14:57 what about crystal caves? 23:15:00 for instance: http://golf.shinh.org/reveal.rb?Brainfuck+FIXED/murky-satyr/1218285720&js 23:15:08 this is bringing me back to my childhood.. :( 23:15:14 that's a BF input in 3 lines of JS 23:15:22 plus a fourth that fixes a mistake in the original question 23:15:22 The switch statement is a good 30 or 40 lines. XD 23:15:37 mercibeaucul: well, text adventures date back to ADVENT 23:15:42 It wasn't entirely naive, though; it at least did RLE. 23:15:44 which I want to translate into INTERCAL some day 23:16:03 INTERCAL's lousy at string handling; but then, so is Fortran 23:16:21 incidentally, the interp that ships with LostKng is naïve 23:16:23 ais523, Colossal Cave? 23:16:28 AnMaster: the samee 23:16:30 *same 23:16:30 AnMaster: that's what ADVENT is. 23:16:33 right 23:16:51 it uses recursion to parse it into a parse tree for loops, and then just naïves it up. 23:17:22 are any of you users of Reddit? 23:17:32 ehird is; I read it but am not a user 23:17:32 ehird, well... using recursion to parse the loops is the sanest way I can think of 23:17:39 I read it from time to time. 23:17:45 recursion to parse loops is not a naive implementation 23:17:50 ehird, but are you saying it doesn't fold ++++ even? 23:18:02 because that is trivial even in an interpreter and will improve speed. 23:18:04 AnMaster: it doesn't afaik 23:18:08 it just isn't needed 23:18:10 lostkng isn't slow 23:18:14 you can do it at parse time even, for the basic stuff 23:18:16 it starts in a half second in ANY implementation 23:18:20 ehird, true 23:18:22 and is instant after that 23:18:29 ehird: are you sure about that any? 23:18:30 ehird, Err. Didn't in my bashfuck! 23:18:32 :P 23:18:39 ais523: shush you :p 23:18:43 many naive BF interps are O(n) in the length of the program 23:18:57 ais523, bashfuck took a few minutes to load lostking 23:19:08 since it was stored in a bash array iirc 23:19:27 a bit faster if you saved the pre-processed one 23:19:27 ais523: what do you mean by that? 23:19:45 ehird: naivest implementation I can think of uses a string to store the program 23:19:51 and removes the first element every command 23:19:58 ais523: no it doesn't, that breaks loop.s 23:20:00 ais523, how would you handle loop then 23:20:00 loops 23:20:02 so each command that runs takes a length of time proportional to the length of the program 23:20:09 ais523: errrrrr 23:20:10 loops, you concatenate the loop interior onto the start of the program 23:20:10 ais523: s++; 23:20:16 ehird: you're thinking C 23:20:16 argh 23:20:17 omg instant chopping of first element 23:20:21 I'm thinking someting higher-level 23:20:28 ais523: tons of languages do that when you take the tail 23:20:30 copy on write 23:20:31 /shrug 23:20:37 you are writing, for loops 23:20:55 ehird, manual copy then in a body recursive function. 23:21:06 AnMaster: that's not naive, that's willfully stupid 23:21:15 ehird, true 23:21:39 you two are amusing 23:21:46 err ok 23:21:50 yep, most of the channel just talk to both of them normally 23:21:54 what? i'm not even insulting him yet! 23:21:55 but arguments can be fun to watch 23:22:00 what did I do? 23:22:01 agreed 23:22:06 * ais523 waits for both of them to accuse each other of being trolls 23:22:07 did I unintentionally start an argument with him and I didn't notice? :D 23:22:09 ehird, not sure either in fact 23:22:21 AnMaster: I think we'd better disagree just to be sure. 23:22:22 for once I have to agree with you 23:22:25 hah! 23:22:26 No! 23:22:28 Don't do that! 23:22:35 You can't get anything right. 23:22:44 <3 23:23:25 ehird, wrong pronoun, but otherwise quite accurate. 23:23:45 but seriously I'm a bit busy atm 23:23:48 Hmm. For once I am without a retort. 23:24:02 [00:22:21] AnMaster: I think we'd better disagree just to be sure. 23:24:03 [00:22:21] for once I have to agree with you 23:24:09 So obviously, you agreed to disagree 23:24:13 FireFly, timing issue... 23:24:19 wait, that is a disagreement, isn't it/ 23:24:23 no, it's a paradox 23:24:27 :3 23:24:44 I'd have to say that paradox is one of my favorite existing concepts 23:24:49 I've always imagined that :3 is someone with the weirdest-shaped mouth ever. 23:25:04 or someone with balls falling out of his/her mouth 23:25:09 o_O 23:25:11 No. I've never imagined that. 23:25:18 You can have a 3-ish mouth for Miis on the Wii 23:25:19 Kinda 23:25:28 sorry, my mind must be elsewhere. 23:25:33 Or balls ... just in his/her mouth? 23:25:41 GregorR: Stay classy. 23:25:56 hmmm, I don't know Gregor 23:26:08 That's to be expected. 23:26:13 I imagine you don't know most people here. 23:26:22 No, sir. 23:26:30 ehird: Phelatio is totally classy. 23:26:41 agreed, for most occasions 23:26:51 Like a royal banquet. 23:27:00 ball banquet. 23:27:03 Parties, weddings, ordering fast food, orgies. 23:27:21 ball banquet. X-D 23:27:26 Family reunions. 23:27:34 definitely 23:27:36 ehird: Only in Georgia. 23:27:43 Lan parties 23:28:18 Deathbeds 23:28:33 nursing homes ? 23:28:45 So anyway, hi mercibeaucul, a good first impression I'm sure :P 23:28:56 Ha, wonderful. Good evening, Gregor 23:29:06 GregorR: Well, it *does* accurately reflect what you're like most of the time... 23:29:23 mercibeaucul, so what made you come here? 23:29:37 hmmm 23:29:51 curiosity, conversation, 23:29:54 boredom with #askreddit 23:29:59 shh don't tell them 23:30:26 22:52 ais523: what brings you here, anyway? 23:30:28 I think ehird likes reddit, but I don't know about the ask bit. 23:30:28 22:53 mercibeaucul: hmmm 23:30:30 22:53 mercibeaucul: curiosity, I suppose 23:30:32 22:54 mercibeaucul: plus, I esoteric is one of my favorite words ;) 23:30:38 yes, that too 23:30:45 * ais523 watches cyclic tag interpreter in Rubicon 23:30:49 AnMaster: #askreddit is an IRC channel........................... 23:30:49 Rubicon is just so fun to watch... 23:30:54 ehird, that sounds exactly like one of those joining for the *other* esoteric stuff. 23:30:56 heh 23:31:02 no, it's the right channel 23:31:06 (the esoteric stuff we don't do) 23:31:09 AnMaster: You mean the sex? 23:31:11 Oh. 23:31:12 Nevermind. 23:31:16 The one we _don't_ do. 23:31:16 no, that's something else entirely 23:31:25 and not on-topic here 23:31:25 ais523: Shush. 23:31:25 ehird, .... 23:31:32 ais523, exactly 23:31:38 secrets don't make friends >:O 23:31:42 ais523 is our pet on-topic-enforcer. He's so cute and powerless. 23:31:50 I wouldn't call me entirely powerless 23:31:57 nor would I 23:32:02 but yes, I do care a lot about the topicality 23:33:31 wouldn't it be nice if we could all get together and go to the park? 23:33:39 could be, certainly 23:33:44 but we mostly live in different countries 23:33:48 and different timezones 23:33:50 that's the one complaint I have about these things. 23:33:53 !bf +++++++++++++[>++>+++++++>++++++++>+++++++++<<<<-]>>-------.>.---.<<++++++.>>>-.-----.+.<++++.<+++++++++++++++.<.>>>-.<---.<<.>>>+++++.<++.+.>-.<<<.>.>-.<--.+++++++++++++..>---.<--.<.>>++++.>.<<<.>-------.>>.<++++++.+++++.<.>--.>----------.<<--.<.>>--.++.---.>--.<+++.<--.>-----..<++++++++.>+.<--.<++++++++++++++.------------------------------------. 23:33:53 The topic of this channel is esoteric programming. 23:34:06 EgoBot: no it's not, it's "David slowed his pace slightly as his ears, logging the channel to http://tunes.org/~nef/logs/esoteric/?C=N;O=D, noted that lambdabot was in their midst and decreed that everyone shall be nice to it. They also noted that the wiki is at http://esolangs.org/wiki/." 23:34:20 data BF = Inc Integer | Right Integer | In | Out | Loop [BF] 23:34:30 -!- GregorR has set topic: esoteric programming. 23:34:36 btw, if I was to rewrite that compiler from scratch, there is a lot I would do differently, I learnt a lot while working on it. Hm... Maybe I should... In any case I'm going to try to finish this part first... Lets see where that leads. 23:34:37 ehird: WHAT NOW 23:34:43 GregorR: you machine-generated that! 23:34:46 that's cheating! 23:34:49 ah, the Turing machine 23:34:50 ais523: Yes. And? 23:35:01 (at this point, ais523 puts the log link back in the topic due to the TOS.) 23:35:11 oh, good point, I missed that it was gone 23:35:14 GregorR, that seems extremely non-compact 23:35:16 Alan Turing - I recall something about him and a poisonous apple, and Apple's logo with the bite taken out of it 23:35:21 -!- Warrigal has set topic: http://tunes.org/~nef/logs/esoteric/?C=N;O=D http://tunes.org/~nef/logs/programming/?C=N;O=D. 23:35:24 I'm quite sure it could be done shorter 23:35:25 -!- ais523 has set topic: esoteric programming | logs: http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 23:35:49 mercibeaucul, that was brainf*ck, not a turing machine 23:35:51 -!- ehird has set topic: Don't go to http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 23:35:56 AnMaster: No it wasn't, it was brainfuck. 23:35:58 (brainfuck is TC though) 23:36:04 Alan Turing died by eating an apple. Therefore, all partially-eaten apples are symbols of Alan Turing's death. 23:36:06 ehird, ... that is what I said. 23:36:13 actually, the log links are pretty useful for someone new to a channel 23:36:14 * ehird makes languages named brainf***, brainf*ck, brainf**k etc. to confuse people. 23:36:16 AnMaster: No it's not. 23:36:19 AnMaster: You said "brainf*ck". 23:36:20 if they want to read up on history for any reason 23:36:25 ehird, that is a glob 23:36:32 Brainfuddleck? 23:36:46 is the Turing machine used as some sort of recognization of artificial intelligence? 23:36:48 ehird, if it is on the esowiki... 23:36:52 mercibeaucul: No. 23:36:52 It matches "brainffffffffffck" as well as "brainck". 23:36:59 Turing was multidiciplinary :P 23:37:03 mercibeaucul: that's the Turing test. 23:37:03 modulo spelling. 23:37:06 mercibeaucul: not really; it's a sort of simple system that can be used to modern any copmuter 23:37:08 *model 23:37:12 ah, I see. 23:37:14 -!- pikhq has set topic: Also Haskell. | Don't go to http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 23:37:16 Warrigal, search space was esowiki page titles 23:37:16 ais523: no, any turing-equivalent computer. 23:37:17 apart from some that can't be implemented in practice 23:37:18 Turing was ... homodiciplinary? 23:37:29 GregorR: I didn't know he was into BDSM too 23:37:31 ehird: I interpret "computer" as referring to RL ones 23:37:35 ehird: :P 23:37:36 Quit using the root "dicipline". 23:37:45 ais523: there is nothing in the laws of physics saying that super-turing machines are impossible. 23:37:50 -!- AnMaster has set topic: Erlang, Just because. | Don't go to http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 23:37:51 and I believe, although don't know for certain, that all computers currently in existence are not super-turing 23:37:56 * AnMaster glares at pikhq 23:38:07 oh wait, no, Turing had to do with defining algorithms.. 23:38:07 -!- ehird has set topic: Also Haskell, because we have lambdabot. | Don't go to http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 23:38:09 Jesus' multidiciplinary diciples diciplined their children. 23:38:09 or am I off again? 23:38:11 See? A JSUTIFICATION! 23:38:16 -!- ais523 has set topic: Java, so everyone hates the topic equally. | Don't go to http://tunes.org/~nef/logs/esoteric/?C=N;O=D. 23:38:16 JUSTIFICATION 23:38:19 mercibeaucul: he also did the turing test 23:38:26 for AI 23:38:26 ais523, I think fizzie might not 23:38:30 but not sure 23:38:38 The AP Computer Science test was in Java. 23:38:39 right, ok. 23:38:40 and my opinion of Java isn't as low as some people's 23:38:46 Warrigal: I took both :P 23:38:55 grr... surely there's /some/ language we all hate 23:38:55 COBOL anyone? 23:38:56 Both AP Computer Science tests? 23:38:59 Warrigal: I took it the last year it was in C++, and then the "advanced" one the first year it was in Java. 23:39:00 ais523, COBOL 23:39:04 Ah. 23:39:07 COBOL... Grace Hopper was cool. 23:39:19 ehird, grace hopper? 23:39:25 Grace Hopper 23:39:26 err 23:39:28 http://en.wikipedia.org/wiki/Grace_Hopper 23:39:34 Invented COBOL. 23:39:36 Early programmer. 23:39:43 ehird, feeling well? You didn't tell me to google for once... 23:39:51 and COBOL is actually remarkably good at what it was designed for 23:39:54 AnMaster: Also, invented the term "computer bug". 23:40:00 also that name sounds like a pun of "grasshopper" 23:40:06 And "It's easier to ask forgiveness than it is to get permission". 23:40:11 just, what it was designed for is rarely relevant in modern non-corporate programming 23:40:40 -!- BeholdMyGlory has quit (Remote closed the connection). 23:41:04 -!- oerjan has joined. 23:41:14 hi oerjan 23:41:16 we've been defending cobol 23:41:21 hi ehird 23:41:28 oerjan, hiwc! 23:41:30 that's awesome that that specific quote is attributed to her 23:41:31 * AnMaster runs 23:41:32 She didn't invent the term "computer bug". 23:41:34 Defending COBOL? 23:41:35 sad that I didn't knwo that. 23:41:38 oerjan's our resident mathematician 23:41:43 Warrigal: You are wrong. 23:41:44 also 23:41:44 * pikhq shudders 23:41:46 "A ship in a harbor is safe, but that is not what a ship is built for." 23:41:52 that's a good one, as well 23:41:53 "From then on, when anything went wrong with a computer, we said it had bugs in it." 23:41:57 http://upload.wikimedia.org/wikipedia/commons/8/8a/H96566k.jpg 23:42:08 Warrigal: She invented the term. 23:42:20 Oh. Defending COBOL at the time, not its current use. Acceptable. 23:43:31 ehird: I believe what she wrote in her notebook was "First case of actual bug found." 23:43:44 Warrigal: And "From then on, when anything went wrong with a computer, we said it had bugs in it." 23:43:52 ehird: source? 23:43:59 bugs aren't the only way to get computer malfunctions 23:44:01 http://en.wikiquote.org/wiki/Grace_Hopper 23:44:05 From then on, when anything went wrong with a computer, we said it had bugs in it. 23:44:05 On the removal of a 2-inch-long moth from the Harvard Mark I experimental computer at Harvard in August 1945, as quoted in Time (16 April 1984) 23:44:13 I rest my case. 23:44:30 ehird, there is no reference there on that page? 23:44:30 Hmm. 23:44:36 AnMaster: Yes there is. 23:44:42 oh right 23:44:42 "as quoted in Time (16 April 1984)." 23:44:50 they don't use the same system as everyone else 23:44:56 on wikimedia 23:45:06 ...what? 23:45:07 -!- labo has quit ("leaving"). 23:45:17 ehird, list of references at the bottom of the page 23:45:23 ehird: if you look at the notebook page on that page, it says "First actual case of bug being found." 23:45:32 Warrigal: I don't care; the quote is the relevant thing. 23:45:38 AnMaster: Wikimedia: I don't think that word means what you think it means. 23:45:42 It appears that the same page has two pieces of strong evidence in opposite directions. 23:45:58 ehird, sorry, "wiki's owned by wikimedia foundation" 23:46:02 might have been better 23:46:09 AnMaster: Wikipedia does that format.............................................. 23:46:23 Warrigal: One is direct, the other is indirect. 23:46:25 ehird, http://en.wikipedia.org/wiki/Static_single_assignment_form#References 23:46:31 AnMaster: Exactly. 23:46:33 I too rest my case 23:46:41 ......what? 23:46:50 You just disproved that Wikimedia people do it differently than a list at the bottom. 23:46:50 ehird, that format wasn't used on http://en.wikiquote.org/wiki/Grace_Hopper 23:46:56 ...yes, and? 23:46:56 there is no reference list at the bottom there 23:46:57 duh 23:47:04 23:44 AnMaster: they don't use the same system as everyone else 23:47:04 23:44 AnMaster: on wikimedia 23:47:11 What you're saying is wikiquote don't use the same sysetm. 23:47:12 system. 23:47:13 ehird, they == wikiquote 23:47:17 Not all wikimedia wikis. 23:47:17 ehird, exactly 23:47:18 Oh. 23:47:48 It's possible that the wording "First actual case" means that they had suspected they would find an actual bug somewhere, or that the "from then on" simply indicates that this incident led them to adopt terminology that was already known. 23:48:11 I rest my case and go to dinner. 23:48:20 Warrigal: The latter would be ridiculous. 23:48:31 Because the quote would then read awkwardly. 23:49:26 "The invention of the term is often erroneously attributed to Grace Hopper, who publicized the cause of a malfunction in an early electromechanical computer.[4]" 23:49:31 Says http://en.wikipedia.org/wiki/Computer_bug#Etymology 23:52:21 theory: for any oft-quoted statement of who invented something, you can find a Wikipedia article that says it's an urban legend 23:53:38 I think I've discovered respect for COBOL. 23:53:45 Based on the first compiled language? 23:53:52 That's actually respectable. 23:54:04 ... Just hasn't been since the invention of Algol. 23:54:17 Or the Lisp compiler, really. 23:54:45 COBOL is good for what it's designed for 23:54:53 although nowadays, we'd use SQL for that 23:54:55 ais523, and what was that 23:54:57 ah 23:55:02 because databases are separate from programs nowadays 23:55:04 Indeed. 23:55:16 It's been misused a lot. 23:55:25 what, SQL or COBOL? 23:55:27 or both? 23:55:34 ais523, btw you said you compiled ick with gcc-bf? 23:55:37 COBOL. 23:55:41 SQL less so. 23:55:44 ais523, or did I misremember 23:55:47 yes; it doesn't run because the compiler's buggy 23:55:56 but it will compile and produce BF output 23:55:57 I wonder where you can buy bare, thin screens like you get in laptops. 23:55:59 ais523, ah, but how large was the file 23:56:11 I have to put --rle on to avoid thrashing 23:56:15 and probably pretty big 23:56:21 let me look 23:56:22 ais523, and how large was the rel? 23:56:24 rle* 23:56:38 ais523: Has it created any correct output? 23:56:41 anyway calculating the full size without expanding is easy for that encoding you use 23:56:56 pikhq: yes, but only for a program using a carefully selected subset of C 23:56:57 pikhq, I think the hello world one was correct, but it was too large for me to actually run it 23:56:59 I have a hello world in it 23:57:08 AnMaster: it runs fine in my interp 23:57:27 ais523, yeah, but gcc trashes on it when you try to compile a C file generated from it 23:57:27 And ais523 has a rubbish Centrino laptop... 23:57:33 use clang 23:57:35 So, certainly not up to taking random ISO C code. 23:57:36 even so, the hello world had to use inline asm in order to do output 23:57:45 $ du -sh etc/hworld1.bfrle.c 23:57:45 898K etc/hworld1.bfrle.c 23:57:55 AnMaster: tcc. 23:58:03 I think I'm down to a bit less, but too busy to wait the 5-10 minutes for that to compile 23:58:11 pikhq, too much work 23:58:24 ... ./configure&&make&&make install? 23:58:32 ais523, you said it used write() iirc? 23:58:40 no, not even that 23:58:45 it looped a pointer along the string 23:58:49 all right, #esoteric, it was wonderful to eavesdrop on your channel, and thanks for having me, but I'm leaving now. Goodnight! 23:58:51 calling inline asm for the . instruction 23:58:54 pikhq, wget, ./configure --prefix=$HOME/local/tcc/version 23:58:54 bye mercibeaucul 23:58:57 mercibeaucul: See ya. 23:59:05 mercibeaucul, cya 23:59:05 -!- mercibeaucul has left (?). 23:59:16 Now that he's gone, BACK TO THE ORGY 23:59:23 AnMaster: In the time you waited for it to compile, you could have installed tcc. 23:59:24 * ehird figures out how to make a laptop ~.4" thin. Macbook Air and Dell Adamo, TAKE THAT! 23:59:24 GregorR: She. 23:59:32 Now that she's gone, BACK TO THE ORGY 23:59:43 XD 23:59:47 stop it, not you too! 23:59:48 pikhq, anyway, that is an ~91400 lines long main()