00:00:21 <Warrigal> Some facilities simply aren't required for most things. Like magnets.
00:00:25 <nooga> so it's cheap 'rapid' prototyping machine
00:00:29 <ehird> pikhq: http://makerbot.com/ any idea how this compares to the reprap?
00:00:32 <ehird> nooga: it is rapid.
00:00:43 <Warrigal> If you want to be able to make magnets, use a separate RepRap magnet-making module.
00:00:52 <pikhq> ehird: It's got the same capabilities, but it is easier to put together.
00:01:04 <pikhq> The MakerBot guys are also involved in RepRap.
00:01:16 <pikhq> IIRC, it uses the same driving circuitry.
00:01:32 <pikhq> nooga: All rapid prototypers are like that.
00:01:39 <ehird> reprap needs a special module to do circular stuff
00:01:43 <pikhq> Most of them are a *bit* faster, but not by a whole lot.
00:01:45 <ehird> as opposed to lots of rectangle
00:02:31 <nooga> things that come out from reprap look like they were build from glued, plastic string AFAIR
00:02:44 <ehird> nooga: give 'em a paintjob
00:02:50 <pikhq> Same with all rapid prototypers.
00:02:51 <ehird> nooga: most 3d printers aren't any better
00:03:11 <pikhq> Some of them have smaller bits of string.
00:03:11 <ehird> http://upload.wikimedia.org/wikipedia/commons/6/60/3D_scanning_and_printing.jpg ← reprap isn't quite this good though
00:03:50 <pikhq> ehird: RepRap also costs orders of magnitude less.
00:04:02 <pikhq> It's like comparing an 8086 to an IBM mainframe. ;)
00:04:03 <nooga> i saw a rapid prototyper in tv that built objects by shooting laser beams into a bucket of some powder
00:04:16 <pikhq> nooga: Those are significantly more expensive.
00:04:24 <pikhq> Obviously, they produce better results.
00:04:49 <ehird> [[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 <ehird> wade bortz = jackass
00:05:04 <ehird> charging for pressing "print" and sticking a few things together
00:05:17 <ehird> 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:06:38 <ehird> pikhq: with a 3d scanner and a reprap 2 everything would rock
00:06:48 <ehird> print out something, makeshift stuff with straws
00:07:10 <pikhq> ehird: Yeah... Viva le revolucion.
00:08:06 <Warrigal> What we need is a milling machine.
00:08:30 * GregorR mills around ... mechanically!
00:08:43 <pikhq> Warrigal: There's someone working on RepRap's milling.
00:09:09 <ehird> http://4.bp.blogspot.com/_sKFX5zDfq4o/Sesjm2mXP2I/AAAAAAAAAZE/_sGIdeO_jsM/s1600-h/just-finished.jpg ← reprap circuit
00:09:15 <ehird> http://4.bp.blogspot.com/_sKFX5zDfq4o/Sesjs9Sv3-I/AAAAAAAAAZM/IqZlMRskt5c/s1600-h/components.jpg
00:09:28 <ehird> "Finally, here it is fitted to the RepRap machine that made it and working: "
00:09:36 <ehird> 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 <Warrigal> 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 <ehird> 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 <ehird> You can have an argument that must be above 0, and the caller has to prove that.
00:14:03 <ehird> You can have a type-safe printf that does:
00:14:09 <ehird> printf :: (fmt :: String) -> CalculatePrintfType fmt
00:14:30 <ehird> 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 <ehird> Of course, typing then becomes TC.
00:15:51 -!- FireFly has quit ("Later").
00:20:03 <pikhq> Making Haskell impossible to implement. :P
00:20:13 <ehird> pikhq: No, not impossible.
00:20:18 <ehird> Also, Haskell doesn't have them.
00:20:26 <ehird> It's perfectly possible; your type-checking just might not halt.
00:22:38 <Warrigal> I vote for type-checking that uses heuristics, always halts, and never gives a false positive for type errors.
00:22:52 <Warrigal> You might get run-time type errors, of course.
00:23:27 <Warrigal> Also, someone find me something mind-breaking plz.
00:24:34 <ehird> > cycle "holy shit mj cried "
00:24:36 <lambdabot> "holy shit mj cried holy shit mj cried holy shit mj cried holy shit mj crie...
00:24:53 <Warrigal> > take 10 cycle "HOLY SHIT MJ DIED"
00:24:55 <lambdabot> Couldn't match expected type `[a]'
00:25:01 <Warrigal> > take 10 (cycle "HOLY SHIT MJ DIED")
00:25:26 <Warrigal> But right parentheses at the end of expressions suck. Therefore,
00:25:31 <Warrigal> > take 10 $ cycle "HOLY SHIT MJ DIED"
00:25:44 <CESSMASTER> >take 10 $ cycle ["HOLY SHIT MJ DIED"]
00:26:30 <Warrigal> CESSMASTER: you keep not including a space after the >.
00:26:48 <lambdabot> ["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:58 <lambdabot> ["HOLY SHIT MJ DIED","HOLY SHIT MJ DIED","HOLY SHIT MJ DIED","HOLY SHIT MJ ...
00:27:20 <ehird> > cycle "*cough* "
00:27:21 <lambdabot> "*cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *c...
00:27:27 <ehird> > text $ cycle "*cough* "
00:27:33 <lambdabot> mueval-core: Prelude.read: no parse
00:27:33 <ehird> > var $ cycle "*cough* "
00:27:35 <lambdabot> It could refer to either `Data.Number.Symbolic....
00:27:35 <ehird> > var $ cycle "*cough* "
00:27:37 <lambdabot> It could refer to either `Data.Number.Symbolic....
00:27:41 <ehird> > (var $ cycle "*cough* ") :: Expr
00:27:43 <lambdabot> It could refer to either `Data.Number.Symbolic....
00:27:45 <CESSMASTER> >cycle "i know a song that gets on everybody's nerves, and this is how it goes: "
00:27:56 <CESSMASTER> > cycle "i know a song that gets on everybody's nerves, and this is how it goes: "
00:27:57 <lambdabot> "i know a song that gets on everybody's nerves, and this is how it goes: i ...
00:28:00 <lambdabot> Distribution.PackageDescription Var :: c -> Condition c
00:28:00 <lambdabot> Language.Haskell.TH VarE :: Name -> Exp
00:28:00 <lambdabot> Language.Haskell.TH.Syntax VarE :: Name -> Exp
00:28:01 <ehird> > (var :: String -> Expr) $ cycle "*cough* "
00:28:02 <lambdabot> It could refer to either `Data.Number.Symbolic....
00:28:39 <ehird> > var "fuck you i want the simplereflect one" :: Expr
00:28:41 <lambdabot> It could refer to either `Data.Number.Symbolic....
00:28:44 <oerjan> ehird: it's a lexical import error, not a type error
00:29:04 <oerjan> you cannot fix it without the module name
00:29:27 <ehird> > SimpleReflect.var
00:29:29 <lambdabot> Overlapping instances for GHC.Show.Show
00:29:37 <ehird> > SimpleReflect.var (cycle "*cough* ") :: Expr
00:29:39 <lambdabot> *cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *co...
00:30:10 <oerjan> > SimpleReflect.var (cycle "*cough* ")
00:30:11 <lambdabot> *cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *co...
00:30:21 <oerjan> > fun (cycle "*cough* ") :: Expr
00:30:23 <lambdabot> *cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *co...
00:30:32 <ehird> > fun (cycle "*cough* ")
00:30:51 <oerjan> fun is specifically overloaded, it is also used for functions
00:31:07 <oerjan> while var is just Expr
00:32:47 <oerjan> @@ @echo @run cycle "*cough* "
00:32:48 <lambdabot> 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 <lambdabot> cough* \""]} rest:" \"*cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *c..."
00:33:01 <lambdabot> @ executes plugin invocations in its arguments, parentheses can be used.
00:33:01 <lambdabot> The commands are right associative.
00:33:01 <lambdabot> is the same as: @ (@pl (@undo code))
00:33:28 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
00:33:49 <oerjan> the initial @ is not allowed for help
00:34:10 <lambdabot> echo <msg>. echo irc protocol string
00:34:23 <lambdabot> 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:35:01 <oerjan> @@ @read @run cycle "*cough* "
00:35:02 <lambdabot> Plugin `compose' failed with: Prelude.read: no parse
00:35:14 <oerjan> oh right it doesn't end
00:36:17 <oerjan> @faq Can Haskell bring about world peace?
00:36:18 <lambdabot> The answer is: Yes! Haskell can do that.
00:38:42 <GregorR> @faq Does @faq use an actual FAQ?
00:38:43 <lambdabot> The answer is: Yes! Haskell can do that.
00:41:08 * pikhq discovers quickCheck.
00:41:21 <ehird> pikhq: That's what @check is
00:41:40 <pikhq> > let 2+2 = 5 in quickCheck (\_ -> 2+2 == 5)
00:42:07 <ehird> @check let 2+2 = 5 in (\_ -> 2+2 == 5)
00:42:23 <ehird> @check let 2+2 = 5 in (\_ -> 1+1 == 2)
00:42:24 <lambdabot> "* Exception: <interactive>:1:176-182: Non-exhaustive patterns in function +
00:42:32 <ehird> pikhq: ... as we can see, that shadows the real +.
00:42:33 <pikhq> Yay. I have proven that 2+2 is 5 when you define it to be 5.
00:42:46 <pikhq> ehird: Yes, I know that that'
00:42:47 <pikhq> s what it's doing.
00:43:12 <oerjan> @check let 42 = 6*9 in (\_ -> 42 == 6*9)
00:43:14 <lambdabot> "Falsifiable, after 0 tests:\n()\n"
00:44:04 <pikhq> @check let 6*9 = 42 in (\_ -> 42 == 6*9)
00:44:39 <pikhq> 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:56 <pikhq> Thus why "let True = False" doesn't work.
00:45:07 <ehird> It works, just pathologically.
00:45:13 <ehird> pikhq: "let Just a = Just 2" sets a to 2.
00:45:17 <Warrigal> 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 <ehird> It's just pattern matching there.
00:45:26 <ehird> pikhq: So "let True = False" attempts to match False with True and fails.
00:45:32 <ehird> Warrigal: it's just like 'f True = ...'
00:45:37 <ehird> > let True = False in ()
00:45:46 <ehird> > (\True -> ()) False
00:45:48 <lambdabot> * Exception: <interactive>:1:130-140: Non-exhaustive patterns in lambda
00:45:51 <ehird> Well, okay, not quite.
00:46:03 <Warrigal> 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 <ehird> tbh I'd prefer the latter behaviour
00:46:10 <ehird> but it's irreleavnt
00:49:10 <pikhq> > let x+_ = x in (+) <$> [0..10] <*> [10..20]
00:49:11 <lambdabot> [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:40 <Gracenotes> hmmm. If a program I install on wine has a virus, it probably shouldn't affect everything else, I'm guessing? </paranoid>
00:49:54 <ehird> Gracenotes: Well, it has access to your linux drives...
00:49:58 <ehird> As Z:\ or whatever.
00:50:12 <pikhq> ehird: Not necessarily. He could have it configured to only expose ~/.wine/drive_c.
00:50:19 <ehird> pikhq: Yes, but he wouldn't be asking if he did that.
00:50:39 <Gracenotes> as you may infer, I am not excessively knowledgeable about wine
00:50:52 <ehird> If you want to be safe, boot up a VM.
00:51:01 <ehird> Gracenotes: or run it as "nobody"
00:51:59 <oerjan> Gracenotes: what about liquor?
00:52:43 <pikhq> ehird: On GNU Hurd, that's easy.
00:53:11 <pikhq> ... Granted, that's because GNU Hurd does not have "login", but instead gives you a login shell running as UID {}.
00:53:15 <ehird> On GNU Hurd, everything is especially easy as long as it involves bashing your head against the wall.
00:53:21 <ehird> (Everything involves this in Hurd.)
00:53:54 <pikhq> (in GNU Hurd, you may be logged in as 0 or more users.)
00:54:29 <Gracenotes> (in GNU Hurd, processes have been replaced with frolicking unicorns)
00:54:54 <pikhq> No, no, they've got processes.
00:54:58 <ehird> (in GNU Hurd, my name is misspelled.)
00:55:18 <pikhq> ehird: Hird also has meaning.
00:55:23 <oerjan> > cycle . map intercalate "ur" $ ["hf","df",hd"]
00:55:25 <lambdabot> lexical error in string/character literal at end o...
00:55:55 <oerjan> > cycle . map intercalate "ur" $ ["hf","df","hd"]
00:55:55 <pikhq> Man, Haskell has some of the coolest function names.
00:55:57 <lambdabot> Couldn't match expected type `[a]'
00:56:01 <ehird> i should make BSD Elliutt
00:56:07 <ehird> pikhq: because join was taken :D
00:56:11 <Gracenotes> apparently there was a minicontroversy about it though
00:56:54 <oerjan> > cycle . map (intercalate "ur" . return) $ ["hf","df","hd"]
00:56:56 <lambdabot> ["hf","df","hd","hf","df","hd","hf","df","hd","hf","df","hd","hf","df","hd"...
00:57:51 <oerjan> > cycle . map (intercalate "ur" . map return) $ ["hf","df","hd"]
00:57:53 <lambdabot> ["hurf","durf","hurd","hurf","durf","hurd","hurf","durf","hurd","hurf","dur...
00:58:12 <ehird> > intercalate " " . cycle . map (intercalate "ur" . map return) $ ["hf","df","hd"]
00:58:14 <lambdabot> "hurf durf hurd hurf durf hurd hurf durf hurd hurf durf hurd hurf durf hurd...
00:58:22 <ehird> > intercalate " " . cycle . map (intercalate "ur" . map return) $ ["hf","df","hd!"]
00:58:24 <lambdabot> "hurf durf hurdur! hurf durf hurdur! hurf durf hurdur! hurf durf hurdur! hu...
01:00:12 <pikhq> $pl intercalate " " . cycle . map (intercalate "ur" . map return) $ {"hf","df","hd!"]
01:00:37 <oerjan> that's already point-free anyhow
01:00:55 <pikhq> And not semantically correct, anyways.
01:01:01 <pikhq> $pl intercalate " " . cycle . map (intercalate "ur" . map return) ["hf","df","hd!"]
01:01:24 <pikhq> Syntatically, I meant.
01:01:28 <ehird> @pl intercalate " " . cycle . map (intercalate "ur" . map return) ["hf","df","hd!"]
01:01:29 <lambdabot> intercalate " " . cycle . map (intercalate "ur" . map return) ["hf", "df", "hd!"]
01:01:58 <GregorR> !c int i; for (i = 0; i < 100; i++) { printf("%curf ", (rand() % 2) ? 'h' : 'd'); }
01:02:00 <EgoBot> 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:51 <ehird> Gracenotes: NOT HASKELL. GET THE FUCK OUT.
01:03:29 <ehird> !haskell do n <- randomRIO (0,1); print n
01:03:31 <pikhq> At least it's not C++.
01:03:38 <ehird> `haskell do n <- randomRIO (0,1); print n
01:03:42 <pikhq> (for which there are no complete implementations)
01:03:45 <ehird> GregorR: Make it work, bitchnizzle.
01:03:49 <ehird> pikhq: yes there is
01:04:00 <HackEgo> /bin/bash: line 1: ghc: command not found
01:04:14 <pikhq> All extant C++ implementations limit the amount of recursions that a C++ template may have.
01:04:18 <pikhq> Most of them to 17.
01:04:31 <ehird> pikhq: Comeau C++ implements the whole of C++, iirc.
01:04:39 <GregorR> !cxx for (int i = 0; i < 100; i++) { cout << ((rand() % 2) ? 'h' : 'd') << "urf "; }
01:04:43 <EgoBot> 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 <oerjan> !haskell import System.Random; main = do g <- newStdGen; putStr . take 500 . unwords . map (["hurf","durf","hurd"]!!) $ randomRs (0,2) g
01:05:00 <EgoBot> 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:20 <ehird> That was, like, my job.
01:05:41 <ehird> oerjan: btw, your code is TOO VERBOSE.
01:05:42 <pikhq> ehird: Apparently it does.
01:05:47 <GregorR> !cxx for (int i = 0; i < 100; i++) { cout << ((rand() % 1) ? 'h' : 't') << "ur" << ((rand() % 1) ? 'f' : 'd') << " "; }
01:05:49 <EgoBot> 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:06:04 <oerjan> ehird: randomRIO cannot give an infinite list afair
01:06:15 <AnMaster> <pikhq> Most of them to 17. <-- why 17
01:06:24 <ehird> oerjan: a sequence cycle thingy.
01:06:29 <pikhq> AnMaster: C++ standard designers said so.
01:06:46 <AnMaster> pikhq, I mean it is uneven in all bases right?
01:07:28 <Gracenotes> hm. I'm trying to get @pl to accept various famous quotes, but that darn punctuation..
01:07:29 <AnMaster> 20 would make sense, so would 16
01:08:04 <Gracenotes> @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 <lambdabot> 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 <pikhq> Turns something into pointless form s/pointless/point-free/
01:08:27 <Gracenotes> @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 <lambdabot> (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:59 <pikhq> Need a good example.
01:09:10 <oerjan> !haskell import System.Random; main = sequence_ . replicate 200 $ fmap (putStr . (["hurf","durf","hurd"]!!)) randomRIO (0,2)
01:09:49 <AnMaster> pikhq, I don't know haskell yet
01:10:03 <oerjan> !haskell import System.Random; main = sequence_ . replicate 200 $ putStr . (["hurf","durf","hurd"]!!) =<< randomRIO (0,2)
01:10:06 <EgoBot> hurfdurfdurfdurfhurddurfhurfhurfdurfhurddurfdurfhurfhurfdurfdurfhurfhurdhurddurfhurfdurfhurfhurdhurddurfhurfhurdhurfhurddurfhurfhurdhurfhurfhurfhurfhurfhurdhurddurfhurdhurfhurfdurfhurddurfhurdhurdhurdhurdhurddurfdurfdurfhurdhurdhurdhurdhurdhurfdurfhurfhurdhurfhurfdurfhurdhurfhurfhurddurfdurfdurfhurfhurdhurfdurfhurfhurfhurfhurfdurfdurfhurfhurfhurddurfhurfhurfdurfhurfhurfhurfdurfdurfhurfhurfdurfdurfdurfdurfhurfhurddurfhurfhurddurfhurdhurfdurfhurdhurfhur
01:10:12 <pikhq> Point-free form is a concept common to all functional languages.
01:10:30 <Gracenotes> pikhq: and concatenative ones, like stack-based
01:10:51 <pikhq> Gracenotes: Ah, concatenative languages.
01:10:57 <AnMaster> pikhq, I'm not damiliar with the concept
01:10:59 <pikhq> That type of language so many ignore.
01:11:15 <lambdabot> [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:38 <lambdabot> [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:48 <lambdabot> [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:57 <Warrigal> @unpl nubBy (((/=1).).gcd) [2..]
01:11:57 <lambdabot> nubBy (\ e h -> (gcd e h) /= 1) [2 ..]
01:12:12 <oerjan> !haskell import System.Random; main = putStr . take 500 . unwords . map (["hurf","durf","hurd"]!!) . randomRs (0,2) =<< newStdGen
01:12:12 <Warrigal> The unpl'd version is much more readable.
01:12:14 <EgoBot> 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:19 <pikhq> AnMaster: No arguments! Only curry!
01:12:21 <ehird> Warrigal: no it's not
01:12:34 -!- nooga has joined.
01:12:58 <Warrigal> @. pl unpl nubBy (((/=1).).gcd) [2..]
01:12:59 <lambdabot> nubBy (flip flip 1 . ((/=) .) . gcd) [2..]
01:13:18 -!- Dewio has joined.
01:13:44 <lambdabot> forall a b c a1 c1. (a1 -> ((a -> b -> c) -> b -> a -> c) -> c1) -> a1 -> c1
01:13:52 <Gracenotes> flip flip 1 isn't even, like, a good idea
01:14:27 <lambdabot> forall a b c. b -> (a -> b -> c) -> a -> c
01:14:53 <Warrigal> Yeah, remember that Haskell doesn't behave like natural language unless you stuff it with $.
01:15:05 <lambdabot> forall a b c a1 c1. (a1 -> ((a -> b -> c) -> b -> a -> c) -> c1) -> a1 -> c1
01:15:59 <Warrigal> > nubBy ((.) (flip flip 1) ((.) ((.) (/=)) gcd)) [2..]
01:16:01 <lambdabot> [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 <ehird> @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 <lambdabot> forall a b c a1 c1. (a1 -> ((a -> b -> c) -> b -> a -> c) -> c1) -> a1 -> c1
01:16:12 <ehird> @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 <lambdabot> (\ cg cj -> cg cj (\ g h i -> g i h))
01:16:21 <ehird> @unpl (a1 -> ((a -> b -> c) -> b -> a -> c) -> c1) -> a1 -> c1
01:16:25 <ehird> @djinn (a1 -> ((a -> b -> c) -> b -> a -> c) -> c1) -> a1 -> c1
01:16:26 <Warrigal> > nubBy ((.) (flip flip 1) $ (.) ((.) (/=)) gcd) [2..]
01:16:28 <lambdabot> [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 <Warrigal> That, on the other hand, is readable.
01:17:16 <Warrigal> Of course, if you want to use as few parentheses as possible...
01:17:39 <Warrigal> \a d e -> a d /= e, how about.
01:18:07 -!- fungebob has joined.
01:18:11 <Warrigal> > flip nubBy [2..] $ flip flip 1 . (\a d e -> a d /= e) . gcd
01:18:13 <lambdabot> [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 <Warrigal> Someone find me a reverse compose operator so I can eliminate the remaining parentheses.
01:19:20 <lambdabot> Control.Arrow (>>>) :: Arrow a => a b c -> a c d -> a b d
01:20:21 <Warrigal> Hmm, it's pretty weakly-binding.
01:20:24 <lambdabot> The operator `Control.Category.>>>' [infixr 1] of a section
01:21:15 <lambdabot> No instance for (GHC.Num.Num (cat a b))
01:21:16 <lambdabot> arising from the literal `0' at ...
01:21:32 <Gracenotes> you just can't make it a section with $ around
01:21:52 <oerjan> > nubBy (((1<).).gcd) [2..]
01:21:53 <Warrigal> 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 <lambdabot> [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 <oerjan> Gracenotes: that (0$0 thing is just a trick to make lambdabot give the fixity
01:22:55 <oerjan> @unpl nubBy (((1<).).gcd) [2..]
01:22:55 <lambdabot> nubBy (\ e h -> 1 < (gcd e h)) [2 ..]
01:23:01 <Warrigal> > flip nubBy [2..] $ gcd >>> flip flip 1 . \a d e -> a d /= e
01:23:03 <lambdabot> [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 <Warrigal> Behold, the prime number generator with no parentheses.
01:23:24 <oerjan> @pl nubBy (\ e h -> 1 < (gcd e h)) [2 ..]
01:23:47 <Gracenotes> > flip nubBy [2..] $ gcd >>> flip flip 1 >>> \a d e -> a d /= e
01:23:49 <lambdabot> The lambda expression `\ a d e -> a d GHC.Classes./= e'
01:24:05 <Warrigal> lambdabot: oi, quit giving us user-friendly error messages.
01:24:21 <Warrigal> Gracenotes: what do you expect that to do?
01:24:29 <Gracenotes> > flip nubBy [2..] $ gcd >>> flip flip 1 <<< \a d e -> a d /= e
01:24:31 <lambdabot> [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:25:14 <lambdabot> No instance for (GHC.Show.Show (cat a c))
01:25:20 -!- Dewi has quit (Read error: 101 (Network is unreachable)).
01:25:20 <ehird> > (f <<< g) x :: Expr
01:25:58 <Warrigal> (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:57 <oerjan> Warrigal: ä ö ü all are completely fine german umlauts
01:27:46 <nooga> yes, because you can't write FUHRER without Ü
01:28:10 <Gracenotes> my surname had an umlaut before my ancestors came over to America
01:29:43 <GregorR> My surname had an umlaut. Richärds.
01:31:27 <GregorR> Mine had a glottal stop and a click.
01:31:37 <GregorR> My surname had an umlaut. Ric'här!s.
01:31:45 <Gracenotes> GregorR: sounds like steps to open a safe
01:32:02 <GregorR> ^^^ Note the laziness in scrolling up through my history and not even removing the rest of the line :P
01:32:07 <oerjan> GregorR: i think your parents were just trying to explain away your genetic speech errors, GregorR
01:32:07 <Gracenotes> this was the channel that carried on with the long s's and thorns, right? :)
01:32:45 <nooga> þat may be þe truþ
01:33:00 <GregorR> Where'd my thorn script go? D-8
01:34:03 <oerjan> it rose up against you
01:36:44 <nooga> where are þe þorns ?
01:36:50 <pikhq> Warrigal: Over an o can also be a diaresis. I just, uh, can't think of an example right now.
01:37:05 <pikhq> Anyone else thing of oö?
01:37:23 <oerjan> pikhq: that's because you're such a neöphyte
01:37:39 <GregorR> Coöperate with the use of co-stuff.
01:38:00 <pikhq> I just suck at thinking of words on demand.
01:39:33 <oerjan> diäreses looks more poëtic
01:40:29 <pikhq> oërjan: I like making it into two syllables.
01:40:48 <oerjan> that would just be loönatic
01:40:49 <Gracenotes> hm. So I'll be taking syntax next spring semester, a linguistics course
01:40:57 <pikhq> Did yoü seë what I did there? :P
01:41:10 <Gracenotes> where I can hopefully learn about divers hierarchies of grammars
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:42:54 <pikhq> ÏT̈ŸM̈ ̈p̈r̈ön̈öün̈c̈ı̈n̈g̈.̈
01:44:50 -!- ehird has quit (Remote closed the connection).
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 <GregorR> EXCELLENT CONVERSATION STARTER:
02:31:50 <GregorR> 1) Get a raw egg, in shell.
02:31:59 <GregorR> 2) Go up to the person you're trying to start a conversation with.
02:32:22 <GregorR> 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 <GregorR> 4) SMASH the egg of your head, then breathe deeply and scream "EGG!" as the egg drips down your face.
02:33:05 <GregorR> 5) Just stare at the person until they're forced to say /something/.
02:33:16 <pikhq> I am a giant bucket!
02:37:21 <oerjan> GregorR: don't you mean EGGCELLENT?
02:41:19 <GregorR> OK, A) that's EGG-SALAD-NT
02:42:13 <GregorR> (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:33 * pikhq snaps a spoon in half
02:51:14 <GregorR> 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:29:47 <augur> entropy decreasing in a closed system isnt impossible
03:29:56 <GregorR> The next comic covers that :P
03:30:59 <pikhq> Ah, Dinosaur Comics.
03:31:01 <pikhq> Such good writing.
03:31:44 <augur> i collect fetishes
03:32:02 <augur> only i just collect knowledge of them
03:32:07 <GregorR> I personally collect sexualities. I am of every known sexuality ... at once!
03:32:13 <augur> im always searching for new and crazy fetishes
03:32:18 <augur> i have never found a new and crazy one. :(
03:32:26 <GregorR> I don't know what that means :P
03:33:19 <GregorR> 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 <pikhq> augur: I have one for you. Fulfilling someone else's fetish that you do not share.
03:34:21 <GregorR> 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 <GregorR> http://codu.org/chromates.jpg <-- find somebody who finds this HAWT
03:34:53 <GregorR> Excuse me, I need to go VOMIT REPEATEDLY.
03:35:22 <pikhq> GregorR: Clearly, you mean pusÿ.
03:36:11 <augur> no he means pussy.
03:36:11 <pikhq> Also, holy fuck. What the fuck?
03:36:48 <GregorR> You haven't seen that? lawl, I use that picture whenever I want to induce vomiting in unsuspecting others :P
03:37:06 <augur> "pussy" is the appropriate spelling for the adjective derived from "pus"
03:37:20 <GregorR> augur: Yeah, but there MIGHT be an ambiguity issue.
03:37:44 <pikhq> I thought I had seen everything vomit-inducing on the Internet, except of course for Two Girls One Cup.
03:37:47 <pikhq> I stand corrected.
03:37:54 <augur> GregorR: i know :3
03:38:11 <GregorR> pikhq: That's just my personal stash of vomit-inducitude :P
03:38:31 <pikhq> What, is that your foot?
03:39:24 <GregorR> My foot is quite foot-like now.
03:39:29 <pikhq> What, you lost your foot?
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 <Warrigal> So chromates.jpg there is a picture of GregorR's foot reacting allergically to chrome?
04:48:15 <GregorR> Specifically, chromium-tanned leather.
04:49:03 * Warrigal types the URL into Google Image Search.
04:49:22 <GregorR> I don't think there are any links to it :P
04:50:25 <Warrigal> I've seen spaghetti sauce that looked like that.
04:50:40 <Warrigal> That big toenail makes me kind of uncomfortable, though.
04:50:44 <GregorR> ... spaghetti sauce is not made of human blood :P
04:51:04 <GregorR> My toenails got hard and really difficult to cut.
04:54:48 <Warrigal> 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 <Warrigal> There are also parts that look like toenail, hair, fabric, and stone.
04:56:25 <GregorR> Oh, the tile. No, those would be tiles :P
04:57:26 <GregorR> Which I suppose is closer to linoleum than stone *shrugs*
04:57:32 <GregorR> Non-trademarked generic plastic tiling.
04:57:55 <GregorR> Well, something soft and plasticine anyway *shrugs*
04:58:31 <GregorR> Idonno, they're tiles, I'm not a tile expert X-D
04:58:41 <Warrigal> We have stone tiles! Or maybe they're actually plastic as well.
04:58:59 <GregorR> Stone tiles certainly exist, but I'm equally certain that the tiles in that picture are /not/ stone.
04:59:16 <comex> 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 <GregorR> comex: ... how does chrome end up in one's eyes?
05:00:09 <comex> GregorR: nevermind, it's just a horrible joke I'm making because it's 12am
05:00:11 <Warrigal> 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 <pikhq> GregorR: I wonder if there's chrome in any eyedrops.
05:01:00 <GregorR> pikhq: Uhhh ... I'm gonna go with no.
05:01:17 <pikhq> Rather, I'd certainly hope not for your sake.
05:01:28 <pikhq> Chrome allergies in the eyes? *Ow*.
05:01:44 <Warrigal> I wonder if any living matter naturally contains large amounts of chrome.
05:02:28 <GregorR> Red meat is comparable high in chromium. All meat contains chromium, and it's less common in (most) plant life.
05:02:38 <GregorR> But none of that is in enough of a proportion to elicit a reaction in me.
05:03:11 <GregorR> 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 <GregorR> s/comparable/comparably/ up there ...
05:14:04 <Gracenotes> so. anyone program in any esoteric languages lately.
05:14:38 <GregorR> To do such a thing would be madness.
05:14:51 <GregorR> As would be giving oneself a nick with "Gr" as the first two characters.
05:15:34 <pikhq> Or, in fact, having a letter `elem`['A'..'Z'] in the nick.
05:20:50 <immibis> thats only uppercase letters...
05:21:23 -!- Gracenotes has changed nick to gracenotes.
05:21:23 <pikhq> That was intentional.
05:21:25 <immibis> Or having a letter [^imbs]
05:21:37 <pikhq> That's not a list.
05:21:43 <pikhq> That's a syntax error.
05:23:11 <lambdabot> "\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 <pikhq> The list of Unicode characters. :)
05:24:26 <pikhq> > fmap ord ['\0'..]
05:24:27 <lambdabot> [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:26:44 <lambdabot> "\177\178\179\180\181\182\183\184\185\186\187\188\189\190\191\192\193\194\1...
05:27:10 <lambdabot> "\777\778\779\780\781\782\783\784\785\786\787\788\789\790\791\792\793\794\7...
05:27:39 <pikhq> @hoogle Int -> Char
05:27:39 <lambdabot> Data.Char intToDigit :: Int -> Char
05:27:39 <lambdabot> Data.ByteString.Char8 index :: ByteString -> Int -> Char
05:27:58 <pikhq> > fmap chr $ (+) <$> (fmap ord ['\0'..]) <*> cycle [1]
05:28:00 <lambdabot> "\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\SOH\S...
05:28:11 <pikhq> gracenotes: The series is over now.
05:29:02 <pikhq> That's bad fanfiction.
05:29:57 <immibis> somewhere in the galaxy most likely
05:30:49 <pikhq> > fromZipList $ fmap chr $ (+) <$> (fmap ord ['\0'..]) <*> cycle [1]
05:31:07 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
05:31:11 <lambdabot> http://code.haskell.org/lambdabot/COMMANDS
05:31:16 <pikhq> > getZipList $ zipList (fmap chr $ (+) <$> (fmap ord ['\0'..])) <*> zipList $ cycle [1]
05:31:17 <gracenotes> the annoying constructoring-and-unconstructoring
05:31:17 <lambdabot> Not in scope: `zipList'Not in scope: `zipList'
05:31:35 <pikhq> > getZipList $ ZipList (fmap chr $ (+) <$> (fmap ord ['\0'..])) <*> ZipList $ cycle [1]
05:31:36 <lambdabot> Couldn't match expected type `GHC.Types.Int'
05:31:47 <pikhq> I is doing something wrong.
05:32:22 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
05:32:31 <pikhq> > fmap chr $ fmap (+1) $ fmap ord ['\0'..]
05:32:32 <lambdabot> "\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 <gracenotes> your expression is not majuscule enough!
05:32:56 <pikhq> ... Why I was trying to do that is beyond me.
05:33:19 <pikhq> > fmap . fmap . fmap chr (+1) ord ['\0'..]
05:33:20 <lambdabot> Couldn't match expected type `t -> a -> a1 -> b'
05:33:33 <pikhq> Guess that was wrong, wrong, wrong, and more wrong. Anyways.
05:33:47 <pikhq> Oh, already pointfree.
05:33:54 <gracenotes> *FMAP* *FMAP* *FMAP* *FMAP* *FMAP* *FMAP*
05:33:55 <lambdabot> Language.Haskell.TH tupleDataName :: Int -> Name
05:33:55 <lambdabot> Language.Haskell.TH tupleTypeName :: Int -> Name
05:33:55 <lambdabot> Language.Haskell.TH.Syntax tupleDataName :: Int -> Name
05:33:55 <pikhq> immibis: atoi? Really?
05:34:22 <lambdabot> hoogle <expr>. Haskell API Search for either names, or types.
05:34:48 <pikhq> @hoogle Num -> String
05:34:48 <lambdabot> Distribution.Text display :: Text a => a -> String
05:34:48 <lambdabot> Prelude show :: Show a => a -> String
05:34:52 <gracenotes> a -> String is "show". String -> a, is read
05:35:00 <pikhq> Oh, right. It was show. *Duh*.
05:35:46 <pikhq> Allow me to break your brain here.
05:36:05 <pikhq> > fibo = 0:1:zipWith (+) fibs (tail fibs)
05:36:06 <lambdabot> <no location info>: parse error on input `='
05:36:17 <pikhq> > let fibs = 0:1:zipWith (+) fibs (tail fibs) in fibs
05:36:18 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946...
05:36:31 <gracenotes> okay... still can't find my CD... I'll have to download again
05:36:34 <pikhq> All the fibonacci sequence.
05:36:39 <pikhq> Whole. Freaking. Thing. :)
05:37:46 <gracenotes> here's a variant of the above that's even more magical
05:37:55 <gracenotes> > fix $ (0:) . (1:) . (=<< [1..]) . ((<*>) . ((return .) . (+) <$>) <*> (. subtract 1)) . (!!)
05:37:56 <lambdabot> [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 <immibis> > let numbers = 1:zipWidth (+1) (tail numbers)
05:38:29 <lambdabot> not an expression: `let numbers = 1:zipWidth (+1) (tail numbers)'
05:38:38 <immibis> > let numbers = 1:zipWidth (+1) (tail numbers) in numbers
05:38:47 <immibis> > let numbers = 1:zipWith (+1) (tail numbers) in numbers
05:38:49 <lambdabot> Couldn't match expected type `[t]'
05:38:55 <immibis> > let numbers = 1:zipWith (+) 1 (tail numbers) in numbers
05:38:57 <lambdabot> arising from the literal `1' at <inter...
05:39:03 <immibis> > let numbers = 1:zipWith (+) (1) (tail numbers) in numbers
05:39:05 <lambdabot> arising from the literal `1' at <inter...
05:39:20 <gracenotes> maybe you don't want to use zipWith at all..
05:39:39 <immibis> > let numbers = 1:(+) (1) (tail numbers) in numbers
05:39:41 <lambdabot> arising from a use of `GHC.Num.+' at <...
05:39:53 <immibis> > let numbers = 1:+ (1) (tail numbers) in numbers
05:39:55 <lambdabot> Couldn't match expected type `[a]'
05:40:04 <immibis> > let numbers = 1:+ 1 (tail numbers) in numbers
05:40:06 <lambdabot> Couldn't match expected type `[a]'
05:40:09 <gracenotes> > let numbers = 1:map (+1) numbers in numbers -- this might work
05:40:11 <lambdabot> [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 <immibis> i know nothing about pascal
05:40:51 <gracenotes> you seem to be picking up its syntax well
05:40:52 <GregorR> That ... made almost /too/ much sense.
05:40:58 <Warrigal> It's pronounced HAS-kəll, right?
05:41:15 <GregorR> <immibis> i know nothing about pascal <immibis> s/pascal/haskell/
05:41:33 <immibis> > let numbers = 1:map (1-) numbers in numbers
05:41:35 <lambdabot> [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 <gracenotes> yeah, I brought up Haskell to my C++ teacher, he thought I was talking about Haskell
05:41:41 <immibis> > let numbers = 1:2:9:7map (1-) numbers in numbers
05:41:45 <immibis> > let numbers = 1:2:9:7:map (1-) numbers in numbers
05:41:46 <lambdabot> [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:42:50 <immibis> > let numbers = 1:map (1-) numbers in numbers; show numbers
05:42:51 <lambdabot> <no location info>: parse error on input `;'
05:42:56 <immibis> > let numbers = 1:map (1-) numbers in numbers: show numbers
05:42:57 <lambdabot> Couldn't match expected type `[t]'
05:43:02 <immibis> > let numbers = 1:map (1-) numbers in numbers show numbers
05:43:04 <lambdabot> Couldn't match expected type `(a -> GHC.Base.String) -> [t1] -> t'
05:43:11 <immibis> > let numbers = 1:map (1-) numbers in numbers > show numbers
05:43:12 <lambdabot> No instance for (GHC.Num.Num GHC.Types.Char)
05:43:25 <immibis> ok what separates statements?
05:43:46 <Warrigal> immibis: what are you trying to do?
05:43:51 <Warrigal> > let numbers = 1:map (1-) numbers in numbers
05:43:53 <lambdabot> [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 <Warrigal> I think that's what you're trying to do.
05:44:04 <immibis> idk what i am trying to od
05:44:10 <immibis> > let numbers = 0:1:2:3:4:5:6
05:44:12 <lambdabot> not an expression: `let numbers = 0:1:2:3:4:5:6'
05:44:15 <Warrigal> Then stop trying to do it, because you won't succeed.
05:44:23 <Warrigal> @let numbers = 0:1:2:3:4:5:6:[]
05:44:28 <immibis> let numbers = 0:1:2:3:4:5:6:map (0*) numbers in numbers
05:44:37 <immibis> > let numbers = 0:1:2:3:4:5:6:map (0*) numbers in numbers
05:44:38 <lambdabot> [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:47 <immibis> > let numbers = 0:1:2:3:4:5:6:map (2*) numbers in numbers
05:44:48 <lambdabot> [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 <immibis> > let numbers = 0:1:2:3:4:5:6:zipWith (*) numbers (tail numbers) in numbers
05:45:26 <lambdabot> [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:46:09 <immibis> > let numbers = 2:1:zipWith (/) numbers (tail numbers) in numbers
05:46:10 <lambdabot> [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 <immibis> > let numbers = 2:1:zipWith (/) numbers (head numbers) in numbers
05:46:17 <lambdabot> Occurs check: cannot construct the infinite type: a = [a]
05:46:39 <immibis> > let numbers = 2:1:zipWith (+) numbers (1) in numbers
05:46:41 <lambdabot> arising from the literal `1' at <inter...
05:46:50 <immibis> > let numbers = 2:1:zipWith (+) numbers (numbers[]2) in numbers
05:46:52 <lambdabot> Couldn't match expected type `[a1] -> t -> [a]'
05:46:53 <immibis> > let numbers = 2:1:zipWith (+) numbers (numbers[2]) in numbers
05:46:55 <lambdabot> Couldn't match expected type `[t] -> [a]'
05:47:34 <Warrigal> > let mex = head . foldr delete [0..] in map mex [[],[0],[0,1],[1],[0,1,2],[0,2]]
05:48:19 <Warrigal> @let mex = head . foldr delete [0..]
05:48:46 <immibis> @let numbers = numbers + 1
05:48:47 <lambdabot> Multiple declarations of `L.numbers'
05:49:08 <lambdabot> mueval-core: Prelude.read: no parse
05:49:22 <gracenotes> SYSTEM FAILURE ... SYSTEM FAILURE ... SYSTEM FAILURE ... SYSTEM FAILURE
05:49:54 <lambdabot> [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:14 <lambdabot> "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...
05:51:13 <immibis> > let systemfailure = "SYSTEM FAILURE ...":systemfailure
05:51:15 <lambdabot> not an expression: `let systemfailure = "SYSTEM FAILURE ...":systemfailure'
05:51:26 <gracenotes> try not to use @let for onetime things
05:51:52 * GregorR fekks around with lambdabot evilly.
05:51:56 <immibis> > let systemfailure = 'S':'Y':'S':'T':'E':'M':' ':'F':'A':'I':'L':'U':'R':'E':' ':'.':'.':'.':' ':systemfailure
05:51:58 <lambdabot> not an expression: `let systemfailure = 'S':'Y':'S':'T':'E':'M':' ':'F':'A'...
05:52:16 <immibis> > let systemfailure = 'S':'Y':'S':'T':'E':'M':' ':'F':'A':'I':'L':'U':'R':'E':' ':'.':'.':'.':' ':systemfailure in systemfailure
05:52:18 <lambdabot> "SYSTEM FAILURE ... SYSTEM FAILURE ... SYSTEM FAILURE ... SYSTEM FAILURE .....
05:52:20 <GregorR> > let systemfailure = 'S':'Y':'S':'T':'E':'M':' ':'F':'A':'I':'L':'U':'R':'E':' ':'.':'.':'.':' ':systemfailure in systemfailure
05:52:22 <lambdabot> "SYSTEM FAILURE ... SYSTEM FAILURE ... SYSTEM FAILURE ... SYSTEM FAILURE .....
05:52:30 <immibis> is there a better way to write strings?
05:53:57 <GregorR> > putStr "Add a type signature"
05:54:17 <GregorR> > unsafePerformIO . putStr "Add a type signature"
05:54:25 <GregorR> I forget what that's named :P
05:54:39 <GregorR> Oh, or lambdabot has I/O blocked for SOME reason :P
05:54:51 <lambdabot> <no location info>: parse error on input `import'
05:54:56 <gracenotes> !haskell main = putStrLn "Add a type signature"
05:55:05 <lambdabot> <no location info>: parse error on input `import'
05:55:24 <Warrigal> > 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:35 <immibis> > (openFile "hello" WriteMode)
05:55:36 <lambdabot> Not in scope: `openFile'Not in scope: data constructor `WriteMode'
05:55:45 <Warrigal> > 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:54 <Warrigal> > 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 <lambdabot> [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 <Warrigal> Now to figure out how to write that without parentheses!
05:57:18 <Warrigal> @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:56 <Warrigal> @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 <lambdabot> expecting variable, "(", operator, ":", "++", "<+>", ";" or "in"
05:58:49 <Warrigal> > 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 <lambdabot> [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 <Warrigal> @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 <lambdabot> 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 <lambdabot> flip (flip (:)) . ((.) .) . (ap .) . (. ((. return) . (++))) . (.)) [] [] 0
05:59:03 <lambdabot> optimization suspended, use @pl-resume to continue.
05:59:12 <lambdabot> 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 <lambdabot> (((.) . ap) .) . (. ((. return) . (++))) . (.)) [] [] 0
05:59:19 <pikhq> It's a veritable flipbook.
05:59:41 <lambdabot> pl-resume. Resume a suspended pointless transformation.
05:59:43 <Warrigal> I think I prefer the original...
05:59:45 <lambdabot> pointless <expr>. Play with pointfree code.
06:00:40 <Warrigal> > map ((+1) . (*3)) [1,2,3,4,5]
06:06:06 <pikhq> Are you familiar with function composition?
06:07:02 <pikhq> > map ((+1) . (*3)) [1..]
06:07:03 <lambdabot> [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 <pikhq> Screw finite lists.
06:07:24 <pikhq> If you really want 5 elements of that, take 5.
06:15:21 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
06:16:31 <lambdabot> [1.0,1.0715086071862674e301,Infinity,Infinity,Infinity,Infinity,Infinity,In...
06:17:11 <lambdabot> [1.0,1.0000693171203765,1.0001098672638327,1.0001386390456164,1.00016095674...
06:17:37 <immibis> >map (**(1/(10*1000))) [1..]
06:17:42 <immibis> > map (**(1/(10*1000))) [1..]
06:17:43 <lambdabot> [1.0,1.0000693171203765,1.0001098672638327,1.0001386390456164,1.00016095674...
06:17:49 <immibis> > map (**(1/(10**1000))) [1..]
06:17:51 <lambdabot> [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 <immibis> > map (**(1/(10**1000))) [0..]
06:18:04 <lambdabot> [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:17 <immibis> > 0**0.0000000000000000000000000000001
06:18:26 <lambdabot> Not in scope: data constructor `INF'Not in scope: `.#'
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 <nooga> 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:02:21 <ehird_> oh. my bouncer is back.
16:02:39 -!- ehird_ has quit (Client Quit).
16:02:39 <ais523> assuming ehird is your bouncer
16:02:44 -!- ehird has changed nick to ehird_.
16:03:55 <nooga> dead dead, really, really dead
16:04:57 -!- ehird_ has changed nick to ehird.
16:05:15 <pikhq> Becauſe þou art fooliſh indeed.
16:07:29 <ais523> probably you connected to your bouncer with the nick ehird_
16:07:34 <ais523> and the bouncer changed its own name to match
16:11:20 <nooga> who will be the new king of pop since the previous one is dead?
16:14:32 <ehird> 04:41 gracenotes: yeah, I brought up Haskell to my C++ teacher, he thought I was talking about Haskell
16:18:03 <nooga> pikhq: fair enough
16:18:15 <nooga> ehird: 04:41 gracenotes: yeah, I brought up Haskell to my C++ teacher, he thought I was talking about Haskell < what?
16:18:30 <ehird> he means what he said!
16:27:41 <ehird> > (consent may be implicit, but only
16:27:41 <ehird> > if the implication is caused explicitly.)
16:27:43 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
16:27:43 <lambdabot> <no location info>: parse error on input `)'
16:44:03 <Slereah_> Are turing tarpits full of algebraic slime?
16:44:20 <Slereah_> And the fossilised remains of combinatory birds
16:44:46 <nooga> and abstract cucumbers
16:47:41 <Slereah_> http://www.hcn.zaq.ne.jp/cabic508/rsf/mq.swf
16:52:00 <nooga> dead dead, really, really dead
16:55:50 <ehird> nooga is having issues with this.
16:57:05 <nooga> obvious remake from "i'm bad"
16:57:19 -!- GregorR-L has joined.
17:03:46 <ehird> ais523: are you doing icfp this year?
17:04:08 <ais523> ehird: ooh, I was planning ot
17:04:15 <ais523> didn't realise it was so close to the start
17:04:58 <ehird> http://icfpcontest.org/countdown.php
17:05:09 * ais523 wonders why it starts at 19:00:16 our time
17:05:13 <ais523> it's the seconds field that confuses me
17:05:26 <ehird> Probably related to the problem.
17:08:44 <ehird> "Infinite Compression Explained" —FrozenVoid, /prog/
17:11:09 <fizzie> 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 <ehird> 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 <ehird> 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 <fizzie> (And not the starting time of the contest.)
17:12:12 <ais523> the contest is declared to start at :16
17:12:13 <fizzie> Oh. Well, that's the fun, then.
17:12:22 <ais523> anyway, I hope that this year's task is one that can plausibly be done in INTERCAL
17:12:35 <ais523> and I'd probably happily turn down a chance to win for a chance to mess about with esolangs
17:12:41 <ehird> nothing can be done in three days in intercal
17:12:54 <ehird> (yes, that's how long a nop takes to write)
17:13:00 <ehird> (or run, hurr hurr)
17:13:06 <ais523> 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 <nooga> HODMSPKRLAJDNKUTRAM
17:25:53 -!- KingOfKarlsruhe has quit (Remote closed the connection).
17:26:32 -!- pikhq_ has joined.
17:27:53 <pikhq_> So, my Internet went all "LA smoke signal" for a bit there.
17:31:46 <ehird> pikhq_: Satellite internet sure must tax TCP error correction.
17:33:58 <ehird> 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 <pikhq> ehird: Not much of a DDoS.
17:49:42 <ais523> ehird: it would just be a standard DOS
17:49:49 <ais523> but AFAICT, that would just mess up the connection from you to them
17:50:13 <pikhq> It'd be more like forcing them to DOS you.
17:55:51 -!- MigoMipo has joined.
18:00:06 <ehird> haha, apparently steve jobs is a practicing buddhist
18:00:11 <ehird> i guess modulo the whole material possessions bit
18:02:08 <pikhq> It's the Western adaptation of Buddhism. Y'know, with the non-theism, but without the actual need to believe anything.
18:03:16 <ehird> 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:04:07 <GregorR-L> Steve Jobs is a practicing lunatic.
18:04:21 <ehird> He's obnoxious, but how's he a lunatic?
18:04:47 <pikhq> "Atheist" is a crappy term.
18:04:57 <pikhq> Buddhism is an atheistic religion. (generally)
18:05:10 <ehird> Yeah, "atheist" is inaccurate.
18:05:20 <ehird> Nobody says "oh, you're a religious atheist".
18:05:23 <ehird> But areligious sounds stuuuuuuuuuupid.
18:05:26 <GregorR-L> <amazing-ignorance>They worship Buddha, that's their god!</amazing-ignorance>
18:05:58 <pikhq> Man, people who fail to realise there's more than one Buddha. :P
18:06:02 <ehird> Buddhists are so calm and loving to everyone and everything. That's why they have Naraka!
18:07:05 <pikhq> ... 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 <pikhq> (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 <amca> How's "secular" instead of "atheist"?
18:10:37 <GregorR-L> The problem with the word 'atheist' is only that its ambiguous use has muddied the term (same is true of 'agnostic')
18:11:50 <amca> "Sometimes I think Im agnostic, but other times Im not so sure" ;)
18:12:09 <ehird> Secular is ... even more inaccurate.
18:12:36 <pikhq> "Secular". "Of the world"?
18:13:13 * amca thought "secular" means "non-spiritual"
18:13:30 <GregorR-L> "Agnostic" does not mean "Well, Jesus /might/ be the messiah" :P
18:14:29 <ehird> GregorR-L: Oh, but I have seen people say it does.
18:14:41 <ehird> There are people who are seriously agnostic about, say, God, but not in the same way about Russell's Teapot.
18:14:50 <ehird> Their minds are like unto useless mush.
18:16:20 <pikhq> amca: Nope. Adjective form of Latin for "world".
18:16:39 <nooga> http://izismile.com/2009/06/26/the_victims_of_the_world_wide_web_42_photos.html
18:16:44 <pikhq> Gets misused to mean "not religious".
18:16:56 <ehird> pikhq: Okay, seriously, man, that's tenuous.
18:17:05 <ehird> We're not fucking speaking in Latin.
18:17:25 <ehird> 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 <pikhq> No, we're speaking the unholy amalgamate of German, Celtic, Latin, and French, all in a pretty Anglo-Frisian wrapper.
18:18:39 <ehird> pikhq: Also known as "English".
18:26:30 <ehird> GnuPG needs an API.
18:26:41 <ehird> GregorR-L: what did directnet use to encrypt?
18:26:50 <pikhq> ehird: And not pipes?
18:27:17 <ehird> 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 <pikhq> The thing is, GnuPG is written in such a way that creating a library for it is a bitch.
18:27:25 <ehird> but not as I'd like
18:27:34 <ehird> pikhq: i.e. "badly"
18:28:06 <pikhq> Which is why the GnuPG library communicates with GPG via a pipe.
18:28:31 <GregorR-L> It used GPG optionally for authentication, AES for keys, and ... I forget what for the initial key exchange :P
18:29:01 <ehird> Why does the public key exchange need to be encrypted?
18:29:12 -!- inurinternet has joined.
18:29:16 <ehird> also, so you basically just give it to openssl?
18:29:48 <GregorR-L> I didn't use OpenSSL, but yeah. And the PUBLIC key exchange is not encrypted, the SYMMETRIC key exchange is.
18:30:11 <ehird> GregorR-L: You wrote your own aes? :P
18:30:15 <ehird> Also, why does it use symmetric keys
18:30:19 <GregorR-L> No. There are other implementations out there.
18:30:40 <GregorR-L> Why does it use symmetric keys ...? Uh, I'm just gonna go with "because"
18:30:59 <ehird> Symmetric keys suck yo :P
18:31:01 <GregorR-L> 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 <ehird> GregorR-L: Did you write DirectNet in the days where everyone used 400mhz x86s and talked over fibre-optic?
18:31:37 <GregorR-L> 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 <ehird> I can't imagine asymmetric encryption ever being slow enough that it dwarfs network lag...
18:32:05 <ehird> Also, gpg emailers use the same key for everything for years. :P
18:33:15 <pikhq> GPG itself asymmetrically encrypts a session key.
18:33:20 <GregorR-L> GPG messages are an encrypted symmetric key, followed by the message --- yeah.
18:33:34 <GregorR-L> The message is encrypted with a temporary symmetric key.
18:33:59 <ehird> I don't actually know all that much about gpg's actual encryption methods :p.
18:34:05 <ehird> But yes, I am an idiot.
18:34:46 <ehird> gpg's solution would work if you s/encrypted symm/encrypted asymm/ and used it for the whole chat.
18:35:59 <pikhq> Might as well use AES, though. Easier to work with.
18:36:49 <ehird> AnMaster: Lovely Haskell bindings, bitch.
18:37:23 <ehird> 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:47:21 <ehird> http://vimeo.com/4353898?pg=embed&sec=
18:56:16 <ehird> ais523: four minutes to go
18:59:04 <ehird> no, nope. time has passed since then :P
18:59:20 <ais523> I just nipped off to get dinner
18:59:22 <ais523> and came back just in time
18:59:25 <ehird> although you could mean 'yep when you said it'
18:59:35 <ehird> ais523: write it in agda
18:59:47 <ehird> it's like haskell without decent libraries and with dependent types!
19:00:02 <ehird> and icfpcontest.org slooooooooooooooooooooows doooooooown.
19:00:36 <ais523> yep, waiting for it to load now
19:00:51 * ehird yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawwwwwwwwwwwnnnnnnnnsssssssssssssssss.
19:00:56 * ehird yawns IRL due to saying yawn.
19:01:05 <ehird> ais523: you are now yawning.
19:01:17 <ehird> also breathing manually.
19:01:28 <ehird> you're like superman. superyawningandbreathingman.
19:04:19 <ehird> ais523: fancy design!
19:04:25 <ehird> It's all red and stuff.
19:04:36 <ehird> "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 <ehird> Uhh... no it doesn't.
19:04:41 <ais523> I'm reading the task description, someone posted it on a mirror
19:04:42 <ehird> Wait, yes it does.
19:04:47 <ehird> "Quit rattling your packages and put them back under the tree. It hasn't started yet."
19:05:14 <ehird> ais523: how can they have? The link does not work.
19:05:21 <ehird> <a class='nav' href="javascript:alert('Quit rattling your packages and put them back under the tree. It hasn\'t started yet.');">Specifications</a> <a class="nav" href="http://icfpcontest.org/faq.php">FAQs</a>
19:05:30 <ais523> could have been the people in charge who put them up
19:05:35 <ais523> you did allow for the :16, right?
19:05:44 <ehird> ais523: It has been 5 minutes.
19:05:50 <ehird> ais523: Anyway, link?
19:05:52 <ais523> also, no INTERCAL for me this year
19:05:54 <ais523> ehird: see the IRC channel
19:06:12 <ais523> I'm disappointed you don't know that off by heart
19:07:05 <ehird> ais523: It is not in the topic.
19:07:10 <ais523> hmm... their VM reminds me of Malbolge
19:07:13 <ehird> Do you want me to ask? Why couldn't you have just linked me?
19:07:17 <ais523> but people are posting it every 10 seconds or so
19:07:39 <ehird> So... you can't copy-paste. Okay..
19:07:58 <ehird> ais523: Why no INTERCAL/
19:08:08 <ais523> this thing is full of double-precision floats
19:08:33 <ehird> So, uh... link please?
19:08:58 <ais523> ugh, my copy-and-paste's stopped working
19:09:02 <ais523> http://files.getdropbox.com/u/95516/icfp.pdf
19:09:37 <ais523> ok, this reminds me of an esolang
19:09:45 <ais523> there are all sorts of arbitrary restrictions and weirdnesses for no reason
19:09:59 <ehird> Reminds me of http://www.boundvariable.org/.
19:10:02 <ehird> ais523: no, the whole thing
19:10:13 <ehird> it's basically the 2006 one, http://www.boundvariable.org/ + some minor changes
19:10:30 <ais523> not really, as they don't even have a massive program to run
19:10:43 <ais523> boundvariable was great; this one seems less so
19:10:50 <ais523> they have a VM, but you have to write programs for it
19:10:52 <ais523> as well as implement it
19:11:00 <ehird> what exactly is the challenge here?
19:11:07 <ehird> it seems very boring, not exactly challenging
19:11:17 <ehird> i'm just falling asleep every other line.
19:11:23 <ehird> ais523: i don't mean, what do you have to do
19:11:26 <ehird> i mean what's the challenge in it
19:15:42 <ehird> ais523: why would I have it memorized?
19:15:48 <ehird> I've never participated and only watched once
19:15:59 <ais523> I've only participated once
19:16:03 <ais523> and you were there then
19:18:20 <ehird> 19:17 mike_a_: damn, my brother is a rocket scientist, but he's in myanmar!!
19:18:20 <ehird> 19:17 mike_a_: he knows alll about this shit
19:18:23 <ehird> Things such as basic physics!
19:19:06 <ais523> ok, this contest looks really boring
19:19:34 <ehird> Write a VM! Write some basic equations! Run some programs! And then, and then, WRITE YOUR OWN PROGRAMS!!
19:20:55 <ehird> 19:16 mike_a_: this looks insanely hard
19:21:00 <ehird> all mike_a lacks is a brain, poor thing
19:21:12 <ais523> no, it's basically writing your own programs in a trivial annoying VM that solve the three-body problem
19:21:17 <ais523> or in the last case, the 13-body problem
19:22:13 <Gracenotes> ehird, nooga: 21:41:46 <gracenotes> er, about Pascal
19:22:16 <ehird> how does that contradict what i said
19:22:26 <GregorR-L> The 13-body problem: Menage á Treize
19:24:04 <Gracenotes> 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:26:00 <ehird> ais523: MWAHAHA! AGDA WILL WIN! or no.
19:26:28 <ehird> 19:26 diginux: http://icfpcontest.org/binaries/bin4.obf
19:26:28 <ehird> 19:26 dankna: bin4 will not be released until after the lightning round
19:26:29 <ehird> 19:26 diginux: wtf?!?!
19:26:39 <ehird> ais523: quick! wget it
19:26:42 <ehird> and sell it on the black market
19:26:47 <ais523> ehird: it's a text file
19:26:53 <ais523> containing a placeholder
19:27:14 <ehird> but reselling placeholders on the black market sounds cool to me
19:27:31 <Deewiant> Hahaha, I felt like I was in a horror movie or something just now
19:27:41 <Deewiant> A machine trying to boot keeps on printing GRUB
19:27:46 <lambdabot> ["GRUB ","GRUB ","GRUB ","GRUB ","GRUB ","GRUB ","GRUB ","GRUB ","GRUB ","G...
19:28:19 <lambdabot> "GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB...
19:28:21 <GregorR-L> @let grubby = 'G':'R':'U':'B':' ':grubby
19:28:23 <ehird> Deewiant: Just wait until it starts hissing.
19:28:25 <Deewiant> Yeah, that's the one I was going for.
19:28:28 <lambdabot> "GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB...
19:29:00 <ehird> 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 <ehird> The broken monitor starts filling with a word.
19:29:30 <ais523> that's a slightly strange behaviour
19:29:32 <ehird> You run down the corridor screaming.
19:29:37 <ehird> You see a TV in another room.
19:29:42 <Deewiant> Well, at least it stopped when I pulled the drive it was booting from
19:29:44 <ehird> The residents are sitting, relaxed.
19:29:52 <ehird> The TV is filling with "GRUB"
19:30:13 <ehird> You run around town, and all that is there is "GRUB". The people are in a trance, undisturbable from GRUB.
19:30:17 <GregorR-L> And then the grub burst out of the TV and OMG they're actual grubs nom nom
19:30:19 <ehird> Aaaand I'm out of ideas.
19:30:24 <ehird> GregorR-L: Good idea.
19:31:05 <Gracenotes> and then it turns out that everything is actually as normal, and you've become a tomato! D:
19:31:20 <Deewiant> That means everything is as normal?
19:31:29 <Gracenotes> well, except you. http://tvtropes.org/pmwiki/pmwiki.php/Main/TomatoInTheMirror
19:33:42 <Gracenotes> (yeah, I've been reading much tvtropes lately...)
19:39:05 <Gracenotes> 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 <ehird> "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:45:15 <ehird> good predictive powers.
19:46:20 <ehird> 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 <ehird> 19:58 gwern finishes reading the specs
20:01:27 <ehird> 19:58 gwern: wow, this is tough. I don't even know how to begin creating a VM
20:01:33 <ehird> why do people have trouble with this?
20:02:50 <ehird> "19" and smaller systems have 8ms or faster response rates, but I've not seen that with the bigger displays yet."
20:02:59 <ehird> You can't find less than 8ms on a >19"?
20:03:18 <ehird> 2ms 24"s are terribly common now; I doubt it was that bad two years ago...
20:04:05 <ais523> I'm not doing it this year
20:04:06 <ehird> Deewiant: Keep having forgotten it; it's shit this year.
20:04:30 <ehird> Boring. Not challenging.
20:05:52 <Deewiant> Based on a quick scan: write a VM and and then programs for it? Or wut?
20:06:23 <ehird> 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 <pikhq> I understand the damned things, but little things like mapM, foldM, etc. are good to know.
20:08:39 <pikhq> So.. Basically, there's a difference between understanding what a monad *is* and all the ways you can use them.
20:09:18 <Deewiant> One of them is necessary for most Haskell work, the other isn't. ;-)
20:11:46 <pikhq> Knowing what a monad is makes it much easier to actually use them.
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 <ais523> you can probably use Parsec without really understanding monads
20:13:04 <Deewiant> do blocks for State, Reader...
20:13:05 <ehird> pikhq: Well, not list monad.
20:13:13 <ehird> But what Deewiant said, and Parsec, and stuff.
20:13:27 <Deewiant> I'd say List is quite doable too
20:13:44 <pikhq> Mmm. Well, you could use them, I guess, but not all *that* well.
20:14:35 <ais523> if you don't know what monads do, you'd wonder why you'd use List as a monad
20:15:06 <Deewiant> You might learn it as a more convenient syntax than concatmapping all over the plac
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 <ehird> pikhq: They're monads that contain other monads.
20:21:11 <ehird> pikhq: e.g. StateT Integer (IO String).
20:21:25 <pikhq> It didn't take too long to figure out.
20:21:29 <ehird> pikhq: note - ListT violates the monad laws; pretend it doesn't exist.
20:21:42 <pikhq> ListT violates the monad laws? Lame.
20:21:54 <ehird> Not Monad [], but ListT yes.
20:22:58 <ehird> 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:23:03 <ehird> ( http://www.randomhacks.net/articles/2005/10/11/amb-operator )
20:23:15 <ehird> Which also happens to be both the list monad and a ListT done right!
20:23:18 <Deewiant> monadlib and others have the correct one (I'm fairly sure)
20:23:29 <Deewiant> Haven't tested though since I've never used ListT.
20:24:02 <pikhq> I have low opinions of 'monads' which aren't monads.
20:24:18 <ehird> Wow, my amb code is really good considering how old it is
20:24:27 <ehird> Well, a bit over a year old.
20:24:33 <ehird> 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 <ehird> pikhq: halting problem yo
20:27:26 <pikhq> I can wish for a halting oracle, can't I?
20:27:36 <pikhq> Makes everything easy!
20:29:03 <pikhq> void isPrimeH(int p){if(isPrime(p))return;else while();}
20:29:14 <pikhq> One halting oracle, and I can test primality with ease!
20:29:16 -!- Sgeo has joined.
20:29:27 <ehird> pikhq: won't necessarily be faster
20:29:51 <pikhq> ehird: Nice algorithm, though.
20:29:54 <ehird> 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 <ehird> Let Verify(p) := Halts(if p then loop else ()).
20:30:22 <ehird> Halts must always halt and return either true or false, and be correct.
20:30:26 <ehird> Therefore, Entscheidungsproblem.
20:30:55 <pikhq> Halts itself cannot run on itself.
20:31:09 <ehird> pikhq: What's that got to do with anything?
20:31:14 <ehird> My proof does not depend on that.
20:31:21 <pikhq> Halts is running on TM+oracle, and accepts TM code...
20:31:25 <ehird> pikhq: Yes, I know.
20:31:33 <pikhq> ... Okay, I'm failing to see what your proof means, then.
20:31:34 <ehird> Let Verify(p) := Halts(if p then loop else ()).
20:31:44 <ehird> Verify(2 == 2) is obviously true, as "if 2==2 then loop".
20:31:47 <ehird> So, it seems to be id.
20:32:02 <ehird> BUT, say we feed it a program that, say, checks all twin primes.
20:32:12 <ehird> anything that involves looking at possibly infinite numbers
20:32:15 <ehird> to verify something
20:32:23 <ehird> Now, if we run it normally, we cannot tell if it will halt or just take a long time.
20:32:25 <ehird> So it's not very useful to us!
20:32:32 <ehird> But part of the definition of Halts is that it always halts.
20:32:47 <ehird> 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 <Gracenotes> 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 <ehird> Therefore, it solves the Entscheidungsproblem.
20:33:03 <pikhq> Why, yes. Okay, I get it now.
20:33:06 <ehird> But the Entscheidungsproblem is impossible to solve!
20:33:09 <ehird> Therefore, Halts cannot exist.
20:33:21 <ehird> 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:37 <pikhq> This, of course, means that TM+oracle is trivially equivalent to the infinity machine.
20:33:43 <pikhq> Which is, of course, impossible.
20:33:50 <ehird> pikhq: Well, no, the infinity machine can go super fast.
20:33:57 <ehird> But this does the infinite computation bit.
20:33:58 <Gracenotes> ehird: well, you're wrong when it comes to arithmetic with naturals and +
20:34:15 <Gracenotes> but really, your proof is going the wrong way
20:34:25 <pikhq> No, the infinity machine can do an infinite number of operations in a single second.
20:34:32 <Gracenotes> btw do you have Entscheidungsproblem on tab complete? D:
20:34:36 <ehird> pikhq: it can split further
20:34:39 <ehird> Gracenotes: copy-paste :-P
20:34:49 <pikhq> Curses. It's countably infinite.
20:35:40 <pikhq> 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 <Gracenotes> so "assuming halting, arithmetic" and "assuming arithmetic, halting" are different...
20:37:42 <ehird> Anyway, I think the proof was quite good for having been thought up in about 2 minutes in the bathroom...
20:55:20 -!- BeholdMyGlory has joined.
21:01:11 -!- Judofyr has joined.
21:03:24 <AnMaster> 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 <AnMaster> Jun 26 22:08:53 phoenix rpc.statd[1335]: Unable to read state from '/var/lib/nfs/state': errno 0 (Success)
21:13:22 <ehird> "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 <ehird> 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:31 <ais523> I have powertop installed
21:20:51 <ais523> quite probably you can get a lot less than that
21:21:06 <ehird> ais523: less than 60 watts won't do much useful
21:21:49 <ehird> "The whole computer system consumes 1W (cpu, graphics, motherboard), which is really small compared to even Netbooks."
21:21:51 <ehird> http://www.ubergizmo.com/15/archives/2009/06/nvidia_tegra_powers_sexy_new_netbooks_provides_days_of_battery_life.html
21:21:58 <ais523> ok, that is impressive
21:22:12 <ehird> 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 <ais523> actually, all these numbers are rather large compared to what typical silicon chips use
21:22:24 <ehird> 2.5 days would be just as awesome and probably more than 10x faster.
21:22:38 <ehird> well not quite as awesome, but just as useful
21:25:06 <AnMaster> that link says it runs windows ce... hm why
21:26:03 <AnMaster> it doesn't mention what cpu architecture it is?
21:26:04 <ehird> AnMaster: The chip is very underpowered.
21:26:24 <ehird> AnMaster: It's used in e.g. the new Zune.
21:26:32 <AnMaster> I was considering arm since windows ce could run on it
21:26:32 <ehird> So not really designed for a laptop/nettop.
21:36:16 <pikhq> AnMaster: Windows CE is a saner OS than Windows itself, at least.
21:36:39 <pikhq> (not to say it's sane, *but* there's only so much insanity you can have while running on embedded systems)
21:44:32 <Warrigal> 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:58 <ehird> Warrigal: use Arduino!
21:45:05 <ehird> AKA What do we know
21:49:58 <Warrigal> I don't see how "ar" represents "wha".
21:50:26 <pikhq> In some accents, "whar".
21:50:48 <ehird> Warrigal: at du we kno, then. Just make the w really soft.
21:50:55 <ehird> Wha do we know, Ar do we know, blend.
22:13:06 <AnMaster> how do you convert from html colours to something like "r=0.9 b=0.7 g=1.0".
22:13:38 <ais523> AnMaster: decode hex, divide by 255
22:13:42 <GregorR> Divide each hex byte by FF
22:13:56 <GregorR> Also, switch the second and third.
22:14:16 <pikhq> Also, enjoy your floating point colors. That should have an... Interesting gamut.
22:14:59 <AnMaster> pikhq, hahah. it is just that it seems graphviz wants that format...
22:15:17 <ehird> sounds like flakkk
22:15:27 <AnMaster> pikhq, the example shows: color=".7 .3 1.0"
22:15:48 <AnMaster> I tried to just give it html notation, but it didn't like it.
22:18:37 <ais523> AnMaster: what's that an example of/
22:19:03 <AnMaster> ais523, as I said... graphviz...
22:19:49 <AnMaster> actually the docs claims it accepts HTML notation too... wonder why that didn't work...
22:19:58 <GregorR> Uhhhh, graphviz does accept HTML notation.
22:20:02 <GregorR> I've used it plenty of times.
22:20:16 <AnMaster> context: start >>> [shape=diamond,color=# <<< 84ed76];
22:20:16 <AnMaster> Warning: error.dot:2: ambiguous "84ed" splits into two names: "84" and "ed"
22:20:17 <AnMaster> start [shape=diamond,color=#84ed76];
22:20:32 <ais523> missing quotes, I guess
22:50:14 -!- mercibeaucul has joined.
22:51:04 <ais523> are you new here? or have I just not been paying attention for the last week/month/year/
22:51:39 <ais523> quick, someone say something interesting!
22:51:53 <ais523> fungot: you're good at saying interesting things, I hope
22:51:55 <fungot> 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 <ais523> what brings you here, anyway?
22:54:06 <mercibeaucul> plus, I esoteric is one of my favorite words ;)
22:54:18 <ais523> this is where we plan, write, and discuss esoteric programming languages
22:54:33 <mercibeaucul> ah, well unfortunately I have not yet learned to code
22:54:52 <ais523> it's not a bad one to start on
22:55:01 <mercibeaucul> for now, my love lies in mathematics and literature
22:55:25 <ehird> oh, hi mercibeaucul
22:55:32 <ehird> wow, someone coming to esolangs before langs? :D
22:55:41 <ehird> mercibeaucul: what sort of mathematics?
22:55:52 <ais523> apparently there's a college professor somewhere who teaches Ook! as a first language
22:56:11 <pikhq> Ook, and not Brainfuck? That's dumb.
22:56:11 <ehird> being high is very good for mathematics, just ask erdos
22:56:11 <ais523> BF-style commands, and a syntax that doesn't leave people with preconceptions
22:56:25 <pikhq> mercibeaucul: Then you'll like good programming.
22:56:35 <ehird> pikhq: Lemme guess, Haskell? ;)
22:56:39 <mercibeaucul> pikhq, the only issue I may have with programming is the fact that I'm a bit of a perfectionist
22:56:46 <ais523> Haskell is an excellent language, but awful as a first language
22:56:53 <ehird> ais523: for a mathematician? are you sure?
22:56:55 <ais523> it's good for perfectionists, though, I agree
22:57:00 <ais523> ooh, for a mathematician, maybe not
22:57:08 <pikhq> 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 <ais523> although it depends on whether it's maths as in theoretical computer science, or maths as in arithmetic
22:57:14 <ehird> i mean, even not a terribly good one, you'd still have the background
22:57:15 <mercibeaucul> ehird, I wouldn't consider myself a mathematician, but I do adore mathematics
22:57:32 <ehird> a mathematician is anyone who knows anything about mathematics modulo trivial things like arithmetic :-P
22:57:35 <pikhq> mercibeaucul: That will get you far. You have to be pretty perfectionist when programming.
22:57:48 <ais523> computers are insanely pedantic
22:57:53 <ehird> ...unless you use PHP!
22:58:04 <Warrigal> Haskell is awful as a first language?
22:58:11 <ais523> first language to learn, I mean
22:58:20 <ais523> it's pretty good as a first language to turn to to solve a problem
22:58:20 <mercibeaucul> 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 <ehird> Warrigal: Before you say it was your first language, let me point out that you suck at coding <_< :-P
22:58:37 <ais523> and what, it was Warrigal's first language? really?
22:58:44 <ehird> ais523: first or second
22:58:51 <Warrigal> It wasn't even my first functional programming language.
22:58:58 <Warrigal> My first functional programming language was Unlambda.
22:59:07 <pikhq> Warrigal: In order grok Haskell, you have to grok a lot of computer science.
22:59:20 <mercibeaucul> 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 <ehird> It's just expressions + some funky stuff.
22:59:25 <ais523> actually, my first functional lang was Unlambda too, I think
22:59:51 <ais523> 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 <ehird> mercibeaucul: which makes you something like only the fourth female ever to come here since we started in 2002...
22:59:59 <pikhq> ehird: Types, monads, monoids, functors, applicative functors, functions, lists, tuples...
23:00:05 <ehird> rather heterogenous culture, this place.
23:00:15 <ais523> ehird: tbh, that's probably about the same proportion as on the internet as a hole
23:00:25 <ehird> the internet as a hole? how does that work?
23:00:26 <pikhq> Lessee, Sukoshi, mercibeaucul, and... I don't recall who else.
23:00:29 <mercibeaucul> ais- that's not true. Lots of females hang out on Myspace ;)
23:00:39 <ais523> mercibeaucul: ah, yes, we keep forgetting about places like Myspace
23:00:41 <ehird> mercibeaucul: does that count as the internet?
23:00:44 * pikhq misses Sukoshi. :/
23:00:53 <ais523> ehird: well, CADIE seemed to use Myspace
23:00:56 <ais523> or something similar, at least
23:01:07 <ais523> yes, but it was a Myspacy sort of page
23:01:07 <ehird> it was just themed to look like myspace.
23:01:47 <ais523> nor are most of the people here, I imagine
23:01:56 <mercibeaucul> a good way for the government to keep their people mindless and occupied
23:02:06 <pikhq> I hold it slightly lower than television.
23:02:23 <pikhq> Television has a couple of things that have given it merit.
23:02:30 <mercibeaucul> at least on television you can find some interesting documentaries
23:02:31 <ais523> television is good background noise for old people
23:02:39 <ais523> some of them can't live without background noise, it seems
23:02:57 <mercibeaucul> my younger sister sleeps with hannah montana playing every night
23:03:06 <pikhq> ais523: ... You mean that music in the background is background noise for people?
23:03:12 <ehird> strange, I'm young and I can't bear having just about any noise
23:03:37 <pikhq> I play a lot of music as I work on the computer.
23:03:40 <ais523> quite possibly because they are so quiet
23:03:44 <ehird> ais523: that's the first time that statement has ever been said
23:03:51 <mercibeaucul> ais - I agree. And I also can only do well on them if there is no distraction
23:04:02 <mercibeaucul> if someone is tapping their pencil it breaks my concentration
23:04:05 <ais523> ehird: incorrect, I've said it before
23:04:07 <pikhq> ehird: Oh, I rather like exams. Easiest bit of class ever.
23:04:16 <Warrigal> I don't like tests, but I like classes graded entirely on tests.
23:04:23 <pikhq> Now, *homework*, that's a pain.
23:04:52 <pikhq> "I understand the concept. Now could we move on, I don't want to do busywork."
23:05:12 <pikhq> I make exceptions for homework that involve more than just proving bare understanding.
23:05:16 <ehird> "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:37 <mercibeaucul> the worst type of homework was for music theory - having to convert chords and such 100+ times
23:05:39 <pikhq> s/involve/involves/
23:05:57 <pikhq> Oh, God, music theory. So mind-numbing.
23:06:00 <ais523> here, if we have to do something more than about 10 times, we typically automate it
23:06:04 <ais523> but you can't do that with homework
23:06:12 <pikhq> Trivial, but mind-numbing.
23:06:16 <ehird> it'll just take longer
23:06:20 <ais523> I mean, you aren't allowed to
23:06:23 <ehird> unless you have great ocr and really fast handwriting
23:06:26 <ais523> and who cares if it takes longer? this is #esoteric
23:06:42 <ehird> 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:51 <pikhq> mercibeaucul: Here in programmer-land, we'd write a program that inputs chords and outputs other chords. :P
23:06:59 <ehird> pikhq: hi! welcome to a few lines ago.
23:07:11 <ais523> and here in #esoteric, we'd make it deliberately stupid
23:07:32 <pikhq> I'd write it in that programming language written in musical notation. :)
23:07:35 <ehird> "Please enter chords as nanohertz values."
23:07:45 <ais523> pikhq: there's more than one
23:07:52 <mercibeaucul> 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 <ehird> doesn't velato sound nicer?
23:08:09 <ehird> 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:12 <ais523> I don't know Velato, but I think it was me who wrote the first couple of Fugue programs
23:08:40 <AnMaster> 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:09:12 <ehird> mercibeaucul: Ignore everything AnMaster says, and you can be a recruit in my futile, not-entirely-serious endless war against him.
23:09:23 <ais523> AnMaster: what exactly is on that graph?
23:09:26 <ehird> (Sure is a good deal when you write it out like that, isn't it?)
23:09:26 <ais523> mostly it seems to be tuples
23:09:36 <ehird> ais523: looks like a parse tree
23:09:40 <ehird> mercibeaucul: I've pretty much said it all
23:09:42 <ais523> mercibeaucul: ehird and AnMaster both dislike each other's conversation styles
23:09:59 <ais523> oh, and if it's LostKingdom, no wonder it's so pointlessly large
23:09:59 <AnMaster> ais523, to be specific, it was dumped when an exception was thrown in the code working on converting it to SSA
23:10:19 <ehird> http://www.rottytooth.com/velatotracks/print_h_5.mid ← velato programs do indeed sound nice
23:10:22 <ais523> well, obviously, the graph fits in memory
23:10:23 <mercibeaucul> I love when the internet makes me laugh out loud.
23:10:36 <AnMaster> ais523, was rendered with graphviz then
23:10:39 <ehird> I think i've laughed at loud at something on the internet about 10 times in my life
23:10:43 <ais523> mercibeaucul: LostKingdom is one of the world's only computer games written in the internet
23:10:48 <ais523> *written in an esolang
23:10:50 <ais523> how did I manage that?
23:10:57 <pikhq> AnMaster: Sure, now you tell me.
23:10:59 <ais523> it's computer-generated, and so massively large as a result
23:11:06 <ehird> pikhq: Tell you what?
23:11:17 <AnMaster> 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:20 <pikhq> AnMaster: I saw "very large" after I started loading the image.
23:11:25 <pikhq> My computer locked up for a few.
23:11:38 <ais523> mercibeaucul: if you want to; it's a text adventure, and it's very difficult
23:11:39 <AnMaster> pikhq, it works just fine in konqueror 3.5.10
23:11:42 <ais523> I've got stuck quite near the start
23:11:44 <ehird> pikhq: have you upgraded yet?
23:11:51 <ehird> ais523: LostKingdom was NOT written in an esolang.
23:11:51 <ais523> also, you'll need a pretty fast Brainfuck compiler/interpreter to be able to run it
23:11:58 <mercibeaucul> but I have a few friends that failed out of college because of them ;)
23:11:59 <ais523> ehird: well, it was compiled into one
23:12:01 <ehird> It was written in BF-BASIC, which is a perfectly palatable, if minimalist, basic.
23:12:11 <ehird> Really, not much harder than using gcc-bf...
23:12:23 <pikhq> ais523: ... No. A naive interpreter can play it well.
23:12:24 <ais523> substantially easier on the basis that gcc-bf isn't finished yet
23:12:27 <AnMaster> ais523, btw the red edges are "IO order", the green are some temp "shadowed by" stuff calculated during the conversion.
23:12:31 <pikhq> It's freaking large, not computationally intensive.
23:12:31 <ehird> mercibeaucul: wow, i've never heard of interactive fiction being described as addictive as WoW...
23:12:38 <AnMaster> blue are dummy to ensure that the start node is first
23:12:45 <ais523> pikhq: depends on /how/ naive the interp is
23:12:49 <ehird> mercibeaucul: i played 5 minutes of them and died.
23:12:53 <ais523> and whether it's O(n) in the length of the program
23:12:54 <ehird> lucasarts games are much better.
23:13:03 <pikhq> ais523: 50 lines of Tcl?
23:13:13 <AnMaster> there are also some dotted ones that represents ordering, but graph was even huger with that, so I stripped them.
23:13:13 <ais523> pikhq: 50 seems like a bit much for a BF interp
23:13:15 <ehird> mercibeaucul: monkey island, full throttle, dig, etc.
23:13:24 <ehird> like sierra games, but you don't die.
23:13:24 <ais523> a naive implementation's about 20 lines in C
23:13:29 <ehird> also actual gameplay.
23:13:30 <pikhq> ais523: It compiled Brainfuck to Tcl then executed it. :P
23:13:40 <AnMaster> ais523, anyway in the lower regions you can see some newly inserted phi nodes. And to the left...
23:13:40 <ehird> pikhq: that's huge
23:13:47 <ehird> a golfed BF compiler can be like 5 lines
23:13:53 <mercibeaucul> and random old games like Zak McKracken and the Alien Mindbenders..
23:13:53 <pikhq> ehird: And I may have overestimated the length.
23:14:05 <AnMaster> ais523, and yes about tuples, that is how instructions are represented at that point
23:14:08 <ehird> mercibeaucul: lucasarts made that
23:14:14 <AnMaster> {Offset, Instruction, Parameters}
23:14:16 -!- Sgeo has quit (Connection timed out).
23:14:32 <pikhq> ehird: I was right. It was absurdly undense.
23:14:38 <AnMaster> where Parameters varies depending on what Instruction it is.
23:15:00 <ais523> for instance: http://golf.shinh.org/reveal.rb?Brainfuck+FIXED/murky-satyr/1218285720&js
23:15:14 <ais523> that's a BF input in 3 lines of JS
23:15:22 <ais523> plus a fourth that fixes a mistake in the original question
23:15:22 <pikhq> The switch statement is a good 30 or 40 lines. XD
23:15:37 <ais523> mercibeaucul: well, text adventures date back to ADVENT
23:15:42 <pikhq> It wasn't entirely naive, though; it at least did RLE.
23:15:44 <ais523> which I want to translate into INTERCAL some day
23:16:03 <ais523> INTERCAL's lousy at string handling; but then, so is Fortran
23:16:21 <ehird> incidentally, the interp that ships with LostKng is naïve
23:16:30 <ehird> AnMaster: that's what ADVENT is.
23:16:51 <ehird> it uses recursion to parse it into a parse tree for loops, and then just naïves it up.
23:17:32 <ais523> ehird is; I read it but am not a user
23:17:32 <AnMaster> ehird, well... using recursion to parse the loops is the sanest way I can think of
23:17:39 <pikhq> I read it from time to time.
23:17:45 <ais523> recursion to parse loops is not a naive implementation
23:17:50 <AnMaster> ehird, but are you saying it doesn't fold ++++ even?
23:18:02 <AnMaster> because that is trivial even in an interpreter and will improve speed.
23:18:04 <ehird> AnMaster: it doesn't afaik
23:18:08 <ehird> it just isn't needed
23:18:10 <ehird> lostkng isn't slow
23:18:14 <AnMaster> you can do it at parse time even, for the basic stuff
23:18:16 <ehird> it starts in a half second in ANY implementation
23:18:22 <ehird> and is instant after that
23:18:29 <ais523> ehird: are you sure about that any?
23:18:30 <AnMaster> ehird, Err. Didn't in my bashfuck!
23:18:39 <ehird> ais523: shush you :p
23:18:43 <ais523> many naive BF interps are O(n) in the length of the program
23:18:57 <AnMaster> ais523, bashfuck took a few minutes to load lostking
23:19:08 <AnMaster> since it was stored in a bash array iirc
23:19:27 <AnMaster> a bit faster if you saved the pre-processed one
23:19:27 <ehird> ais523: what do you mean by that?
23:19:45 <ais523> ehird: naivest implementation I can think of uses a string to store the program
23:19:51 <ais523> and removes the first element every command
23:19:58 <ehird> ais523: no it doesn't, that breaks loop.s
23:20:00 <AnMaster> ais523, how would you handle loop then
23:20:02 <ais523> so each command that runs takes a length of time proportional to the length of the program
23:20:10 <ais523> loops, you concatenate the loop interior onto the start of the program
23:20:16 <ais523> ehird: you're thinking C
23:20:17 <ehird> omg instant chopping of first element
23:20:21 <ais523> I'm thinking someting higher-level
23:20:28 <ehird> ais523: tons of languages do that when you take the tail
23:20:37 <ais523> you are writing, for loops
23:20:55 <AnMaster> ehird, manual copy then in a body recursive function.
23:21:06 <ehird> AnMaster: that's not naive, that's willfully stupid
23:21:50 <ais523> yep, most of the channel just talk to both of them normally
23:21:54 <ehird> what? i'm not even insulting him yet!
23:21:55 <ais523> but arguments can be fun to watch
23:22:06 * ais523 waits for both of them to accuse each other of being trolls
23:22:07 <ehird> did I unintentionally start an argument with him and I didn't notice? :D
23:22:09 <AnMaster> ehird, not sure either in fact
23:22:21 <ehird> AnMaster: I think we'd better disagree just to be sure.
23:22:22 <AnMaster> for once I have to agree with you
23:22:35 <ehird> You can't get anything right.
23:23:25 <AnMaster> ehird, wrong pronoun, but otherwise quite accurate.
23:23:45 <AnMaster> but seriously I'm a bit busy atm
23:23:48 <ehird> Hmm. For once I am without a retort.
23:24:02 <FireFly> [00:22:21] <ehird> AnMaster: I think we'd better disagree just to be sure.
23:24:03 <FireFly> [00:22:21] <AnMaster> for once I have to agree with you
23:24:09 <FireFly> So obviously, you agreed to disagree
23:24:19 <ais523> wait, that is a disagreement, isn't it/
23:24:44 <mercibeaucul> I'd have to say that paradox is one of my favorite existing concepts
23:24:49 <ehird> I've always imagined that :3 is someone with the weirdest-shaped mouth ever.
23:25:04 <mercibeaucul> or someone with balls falling out of his/her mouth
23:25:11 <ehird> No. I've never imagined that.
23:25:18 <FireFly> You can have a 3-ish mouth for Miis on the Wii
23:25:33 <GregorR> Or balls ... just in his/her mouth?
23:25:41 <ehird> GregorR: Stay classy.
23:26:08 <ehird> That's to be expected.
23:26:13 <ehird> I imagine you don't know most people here.
23:26:30 <GregorR> ehird: Phelatio is totally classy.
23:26:51 <ehird> Like a royal banquet.
23:27:03 <GregorR> Parties, weddings, ordering fast food, orgies.
23:27:21 <GregorR> <mercibeaucul> ball banquet. X-D
23:28:45 <GregorR> So anyway, hi mercibeaucul, a good first impression I'm sure :P
23:29:06 <ehird> GregorR: Well, it *does* accurately reflect what you're like most of the time...
23:29:23 <AnMaster> mercibeaucul, so what made you come here?
23:30:26 <ehird> 22:52 ais523: what brings you here, anyway?
23:30:28 <AnMaster> I think ehird likes reddit, but I don't know about the ask bit.
23:30:28 <ehird> 22:53 mercibeaucul: hmmm
23:30:30 <ehird> 22:53 mercibeaucul: curiosity, I suppose
23:30:32 <ehird> 22:54 mercibeaucul: plus, I esoteric is one of my favorite words ;)
23:30:45 * ais523 watches cyclic tag interpreter in Rubicon
23:30:49 <ehird> AnMaster: #askreddit is an IRC channel...........................
23:30:49 <ais523> Rubicon is just so fun to watch...
23:30:54 <AnMaster> ehird, that sounds exactly like one of those joining for the *other* esoteric stuff.
23:31:02 <ais523> no, it's the right channel
23:31:06 <AnMaster> (the esoteric stuff we don't do)
23:31:09 <ehird> AnMaster: You mean the sex?
23:31:16 <ehird> The one we _don't_ do.
23:31:16 <ais523> no, that's something else entirely
23:31:42 <ehird> ais523 is our pet on-topic-enforcer. He's so cute and powerless.
23:31:50 <ais523> I wouldn't call me entirely powerless
23:32:02 <ais523> but yes, I do care a lot about the topicality
23:33:31 <mercibeaucul> wouldn't it be nice if we could all get together and go to the park?
23:33:44 <ais523> but we mostly live in different countries
23:33:48 <ais523> and different timezones
23:33:50 <mercibeaucul> that's the one complaint I have about these things.
23:33:53 <GregorR> !bf +++++++++++++[>++>+++++++>++++++++>+++++++++<<<<-]>>-------.>.---.<<++++++.>>>-.-----.+.<++++.<+++++++++++++++.<.>>>-.<---.<<.>>>+++++.<++.+.>-.<<<.>.>-.<--.+++++++++++++..>---.<--.<.>>++++.>.<<<.>-------.>>.<++++++.+++++.<.>--.>----------.<<--.<.>>--.++.---.>--.<+++.<--.>-----..<++++++++.>+.<--.<++++++++++++++.------------------------------------.
23:33:53 <EgoBot> The topic of this channel is esoteric programming.
23:34:06 <ehird> 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 <Warrigal> data BF = Inc Integer | Right Integer | In | Out | Loop [BF]
23:34:30 -!- GregorR has set topic: esoteric programming.
23:34:36 <AnMaster> 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:43 <ais523> GregorR: you machine-generated that!
23:35:01 <ehird> (at this point, ais523 puts the log link back in the topic due to the TOS.)
23:35:11 <ais523> oh, good point, I missed that it was gone
23:35:14 <AnMaster> GregorR, that seems extremely non-compact
23:35:16 <mercibeaucul> 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 <AnMaster> 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 <AnMaster> 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 <ehird> AnMaster: No it wasn't, it was brainfuck.
23:36:04 <Warrigal> Alan Turing died by eating an apple. Therefore, all partially-eaten apples are symbols of Alan Turing's death.
23:36:06 <AnMaster> ehird, ... that is what I said.
23:36:13 <ais523> 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 <ehird> AnMaster: No it's not.
23:36:19 <ehird> AnMaster: You said "brainf*ck".
23:36:20 <ais523> if they want to read up on history for any reason
23:36:46 <mercibeaucul> is the Turing machine used as some sort of recognization of artificial intelligence?
23:36:48 <AnMaster> ehird, if it is on the esowiki...
23:36:52 <Warrigal> It matches "brainffffffffffck" as well as "brainck".
23:36:59 <ehird> Turing was multidiciplinary :P
23:37:03 <Warrigal> mercibeaucul: that's the Turing test.
23:37:06 <ais523> mercibeaucul: not really; it's a sort of simple system that can be used to modern any copmuter
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 <AnMaster> Warrigal, search space was esowiki page titles
23:37:16 <ehird> ais523: no, any turing-equivalent computer.
23:37:17 <ais523> apart from some that can't be implemented in practice
23:37:18 <GregorR> Turing was ... homodiciplinary?
23:37:29 <ehird> GregorR: I didn't know he was into BDSM too
23:37:31 <ais523> ehird: I interpret "computer" as referring to RL ones
23:37:36 <Warrigal> Quit using the root "dicipline".
23:37:45 <ehird> 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 <ais523> and I believe, although don't know for certain, that all computers currently in existence are not super-turing
23:38:07 <mercibeaucul> 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 <Warrigal> Jesus' multidiciplinary diciples diciplined their children.
23:38:11 <ehird> 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:19 <ehird> mercibeaucul: he also did the turing test
23:38:26 <AnMaster> ais523, I think fizzie might not
23:38:38 <Warrigal> The AP Computer Science test was in Java.
23:38:40 <ais523> and my opinion of Java isn't as low as some people's
23:38:55 <ais523> grr... surely there's /some/ language we all hate
23:38:56 <Warrigal> Both AP Computer Science tests?
23:38:59 <GregorR> 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:07 <ehird> COBOL... Grace Hopper was cool.
23:39:28 <ehird> http://en.wikipedia.org/wiki/Grace_Hopper
23:39:43 <AnMaster> ehird, feeling well? You didn't tell me to google for once...
23:39:51 <ais523> and COBOL is actually remarkably good at what it was designed for
23:39:54 <ehird> AnMaster: Also, invented the term "computer bug".
23:40:00 <AnMaster> also that name sounds like a pun of "grasshopper"
23:40:06 <ehird> And "It's easier to ask forgiveness than it is to get permission".
23:40:11 <ais523> 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:16 <ehird> we've been defending cobol
23:41:30 <mercibeaucul> that's awesome that that specific quote is attributed to her
23:41:32 <Warrigal> She didn't invent the term "computer bug".
23:41:38 <ais523> oerjan's our resident mathematician
23:41:43 <ehird> Warrigal: You are wrong.
23:41:46 <mercibeaucul> "A ship in a harbor is safe, but that is not what a ship is built for."
23:41:53 <ehird> "From then on, when anything went wrong with a computer, we said it had bugs in it."
23:41:57 <ehird> http://upload.wikimedia.org/wikipedia/commons/8/8a/H96566k.jpg
23:42:08 <ehird> Warrigal: She invented the term.
23:42:20 <pikhq> Oh. Defending COBOL at the time, not its current use. Acceptable.
23:43:31 <Warrigal> ehird: I believe what she wrote in her notebook was "First case of actual bug found."
23:43:44 <ehird> Warrigal: And "From then on, when anything went wrong with a computer, we said it had bugs in it."
23:43:59 <ais523> bugs aren't the only way to get computer malfunctions
23:44:01 <ehird> http://en.wikiquote.org/wiki/Grace_Hopper
23:44:05 <ehird> From then on, when anything went wrong with a computer, we said it had bugs in it.
23:44:05 <ehird> 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:30 <AnMaster> ehird, there is no reference there on that page?
23:44:36 <ehird> AnMaster: Yes there is.
23:44:42 <ehird> "as quoted in Time (16 April 1984)."
23:44:50 <AnMaster> they don't use the same system as everyone else
23:45:07 -!- labo has quit ("leaving").
23:45:17 <AnMaster> ehird, list of references at the bottom of the page
23:45:23 <Warrigal> ehird: if you look at the notebook page on that page, it says "First actual case of bug being found."
23:45:32 <ehird> Warrigal: I don't care; the quote is the relevant thing.
23:45:38 <ehird> AnMaster: Wikimedia: I don't think that word means what you think it means.
23:45:42 <Warrigal> It appears that the same page has two pieces of strong evidence in opposite directions.
23:45:58 <AnMaster> ehird, sorry, "wiki's owned by wikimedia foundation"
23:46:09 <ehird> AnMaster: Wikipedia does that format..............................................
23:46:23 <ehird> Warrigal: One is direct, the other is indirect.
23:46:25 <AnMaster> ehird, http://en.wikipedia.org/wiki/Static_single_assignment_form#References
23:46:31 <ehird> AnMaster: Exactly.
23:46:50 <ehird> You just disproved that Wikimedia people do it differently than a list at the bottom.
23:46:50 <AnMaster> ehird, that format wasn't used on http://en.wikiquote.org/wiki/Grace_Hopper
23:46:56 <AnMaster> there is no reference list at the bottom there
23:47:04 <ehird> 23:44 AnMaster: they don't use the same system as everyone else
23:47:04 <ehird> 23:44 AnMaster: on wikimedia
23:47:11 <ehird> What you're saying is wikiquote don't use the same sysetm.
23:47:17 <ehird> Not all wikimedia wikis.
23:47:48 <Warrigal> 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 <Warrigal> I rest my case and go to dinner.
23:48:20 <ehird> Warrigal: The latter would be ridiculous.
23:48:31 <ehird> Because the quote would then read awkwardly.
23:49:26 <FireFly> "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 <FireFly> Says http://en.wikipedia.org/wiki/Computer_bug#Etymology
23:52:21 <ais523> 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 <pikhq> I think I've discovered respect for COBOL.
23:53:45 <pikhq> Based on the first compiled language?
23:53:52 <pikhq> That's actually respectable.
23:54:04 <pikhq> ... Just hasn't been since the invention of Algol.
23:54:17 <pikhq> Or the Lisp compiler, really.
23:54:45 <ais523> COBOL is good for what it's designed for
23:54:53 <ais523> although nowadays, we'd use SQL for that
23:55:02 <ais523> because databases are separate from programs nowadays
23:55:16 <pikhq> It's been misused a lot.
23:55:34 <AnMaster> ais523, btw you said you compiled ick with gcc-bf?
23:55:47 <ais523> yes; it doesn't run because the compiler's buggy
23:55:56 <ais523> but it will compile and produce BF output
23:55:57 <ehird> I wonder where you can buy bare, thin screens like you get in laptops.
23:55:59 <AnMaster> ais523, ah, but how large was the file
23:56:11 <ais523> I have to put --rle on to avoid thrashing
23:56:15 <ais523> and probably pretty big
23:56:22 <AnMaster> ais523, and how large was the rel?
23:56:38 <pikhq> ais523: Has it created any correct output?
23:56:41 <AnMaster> anyway calculating the full size without expanding is easy for that encoding you use
23:56:56 <ais523> pikhq: yes, but only for a program using a carefully selected subset of C
23:56:57 <AnMaster> pikhq, I think the hello world one was correct, but it was too large for me to actually run it
23:56:59 <ais523> I have a hello world in it
23:57:08 <ais523> AnMaster: it runs fine in my interp
23:57:27 <AnMaster> ais523, yeah, but gcc trashes on it when you try to compile a C file generated from it
23:57:27 <ehird> And ais523 has a rubbish Centrino laptop...
23:57:35 <pikhq> So, certainly not up to taking random ISO C code.
23:57:36 <ais523> even so, the hello world had to use inline asm in order to do output
23:58:03 <AnMaster> I think I'm down to a bit less, but too busy to wait the 5-10 minutes for that to compile
23:58:24 <pikhq> ... ./configure&&make&&make install?
23:58:32 <AnMaster> ais523, you said it used write() iirc?
23:58:45 <ais523> it looped a pointer along the string
23:58:49 <mercibeaucul> 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 <ais523> calling inline asm for the . instruction
23:58:54 <AnMaster> pikhq, wget, ./configure --prefix=$HOME/local/tcc/version
23:58:57 <pikhq> mercibeaucul: See ya.
23:59:05 -!- mercibeaucul has left (?).
23:59:16 <GregorR> Now that he's gone, BACK TO THE ORGY
23:59:23 <pikhq> 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:32 <GregorR> Now that she's gone, BACK TO THE ORGY
23:59:48 <AnMaster> pikhq, anyway, that is an ~91400 lines long main()