←2009-06-25 2009-06-26 2009-06-27→ ↑2009 ↑all
00:00:11 <nooga> okay
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:14 <ehird> ah
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:01:46 <ehird> s
00:01:49 <nooga> but
00:02:18 <ehird> omg
00:02:20 <ehird> 3d scanner‽‽‽
00:02:22 <ehird> hoshit
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:45 <nooga> built*
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:12 <ehird> afaik
00:03:50 <pikhq> ehird: RepRap also costs orders of magnitude less.
00:03:55 <ehird> yeah, i know
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:05:19 <ehird> WHOA
00:05:21 <ehird> it works!
00:05:29 <pikhq> Yes.
00:05:38 <nooga> oh
00:06:00 <GregorR> Sweet
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:06:49 <ehird> scan
00:06:49 <ehird> tweak
00:06:51 <ehird> reprint
00:07:10 <pikhq> ehird: Yeah... Viva le revolucion.
00:08:06 <Warrigal> What we need is a milling machine.
00:08:25 * GregorR mills around.
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:23:58 <CESSMASTER> @take 10 cycle "HOLY SHIT MJ DIED"
00:23:58 <lambdabot> Maybe you meant: time type
00:24:04 <CESSMASTER> :/
00:24:10 <CESSMASTER> @cycle "holy shit mj died"
00:24:11 <lambdabot> Unknown command, try @list
00:24:19 <CESSMASTER> what's the
00:24:19 <CESSMASTER> oh
00:24:22 <CESSMASTER> fuck you lambdabot
00:24:29 <CESSMASTER> >take 10 cycle "HOLY SHIT MJ DIED"
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:03 <lambdabot> "HOLY SHIT "
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:33 <lambdabot> "HOLY SHIT "
00:25:39 <Warrigal> s/end/ends/
00:25:44 <CESSMASTER> >take 10 $ cycle ["HOLY SHIT MJ DIED"]
00:26:02 <CESSMASTER> >cycle ["HOLY SHIT MJ DIED"]
00:26:10 * CESSMASTER is worthless
00:26:30 <Warrigal> CESSMASTER: you keep not including a space after the >.
00:26:38 <CESSMASTER> hahahaha
00:26:40 <CESSMASTER> fuck's sake
00:26:46 <CESSMASTER> > cycle ["HOLY SHIT MJ DIED"]
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:56 <Warrigal> > repeat "HOLY SHIT MJ DIED"
00:26:58 <lambdabot> ["HOLY SHIT MJ DIED","HOLY SHIT MJ DIED","HOLY SHIT MJ DIED","HOLY SHIT MJ ...
00:27:05 <Warrigal> No need for redundancy.
00:27:11 <CESSMASTER> thx Warrigal
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:33 <lambdabot> mueval: ExitFailure 1
00:27:35 <lambdabot> Ambiguous occurrence `var'
00:27:35 <lambdabot> It could refer to either `Data.Number.Symbolic....
00:27:35 <ehird> > var $ cycle "*cough* "
00:27:37 <lambdabot> Ambiguous occurrence `var'
00:27:37 <lambdabot> It could refer to either `Data.Number.Symbolic....
00:27:41 <ehird> > (var $ cycle "*cough* ") :: Expr
00:27:43 <lambdabot> Ambiguous occurrence `var'
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:49 <CESSMASTER> FUUUUCK
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:27:59 <Warrigal> @hoogle var
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> Ambiguous occurrence `var'
00:28:02 <lambdabot> It could refer to either `Data.Number.Symbolic....
00:28:05 <ehird> ffffffff
00:28:39 <ehird> > var "fuck you i want the simplereflect one" :: Expr
00:28:41 <lambdabot> Ambiguous occurrence `var'
00:28:41 <lambdabot> It could refer to either `Data.Number.Symbolic....
00:28:43 <ehird> RAGE
00:28:44 <oerjan> ehird: it's a lexical import error, not a type error
00:28:49 <ehird> argh
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:29 <lambdabot> (GHC.B...
00:29:37 <ehird> > SimpleReflect.var (cycle "*cough* ") :: Expr
00:29:39 <lambdabot> *cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *cough* *co...
00:29:42 <ehird> FUCK YEAH
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:33 <lambdabot> Add a type signature
00:30:38 <ehird> add your mom.
00:30:51 <oerjan> fun is specifically overloaded, it is also used for functions
00:31:07 <oerjan> while var is just Expr
00:31:24 <ehird> yeah
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:32:56 <oerjan> good grief
00:33:00 <oerjan> @help @
00:33:01 <lambdabot> @ [args].
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> For example: @ @pl @undo code
00:33:01 <lambdabot> is the same as: @ (@pl (@undo code))
00:33:28 <ehird> @help @@
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:01 <oerjan> (argument)
00:34:09 <oerjan> @help echo
00:34:10 <lambdabot> echo <msg>. echo irc protocol string
00:34:14 <oerjan> bah
00:34:22 <oerjan> @list read
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:34:50 <oerjan> @read "test"
00:34:51 <lambdabot> test
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:35:17 <oerjan> grmbl
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:38:49 <GregorR> Uhuh :P
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:41:42 <lambdabot> Not in scope: `quickCheck'
00:41:48 <pikhq> Curses.
00:42:07 <ehird> @check let 2+2 = 5 in (\_ -> 2+2 == 5)
00:42:08 <lambdabot> "OK, passed 500 tests."
00:42:12 <ehird> pikhq:
00:42:13 <ehird> :-)
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:42:50 <pikhq> Still funny.
00:42:53 <ehird> :P
00:43:12 <oerjan> @check let 42 = 6*9 in (\_ -> 42 == 6*9)
00:43:14 <lambdabot> "Falsifiable, after 0 tests:\n()\n"
00:43:46 <Warrigal> > let True = False in True
00:43:48 <lambdabot> True
00:44:04 <pikhq> @check let 6*9 = 42 in (\_ -> 42 == 6*9)
00:44:06 <lambdabot> "OK, passed 500 tests."
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:43 <ehird> Yes.
00:44:44 <ehird> Yes it is.
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 <pikhq> Well. Yeah.
00:45:19 <ehird> It's just pattern matching there.
00:45:24 <Warrigal> You're assigning nothing.
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:39 <lambdabot> ()
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:46:12 <ehird> irrelevant
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:27 <ehird> hurf durf
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:51 <Gracenotes> after all, it's not an emulator D:
00:49:54 <ehird> Gracenotes: Well, it has access to your linux drives...
00:49:58 <ehird> As Z:\ or whatever.
00:50:02 <Gracenotes> that is true
00:50:09 <Gracenotes> homedir
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:27 <pikhq> True.
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> <no location info>:
00:55:25 <lambdabot> lexical error in string/character literal at end o...
00:55:34 <oerjan> :t intercalate
00:55:35 <lambdabot> forall a. [a] -> [[a]] -> [a]
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:00 <pikhq> "Intercalate"? :D
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:19 <Gracenotes> given its.. oddness o_O
00:56:23 <oerjan> hm wait
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:02 <oerjan> good grief
00:57:28 <Gracenotes> zomgors
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...
00:58:29 <Gracenotes> unwords
00:58:30 <ehird> Erm.
00:58:34 <ehird> Gracenotes: o ya
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:43 <Gracenotes> plugh
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:21 <ehird> pikhq: @.
01:01:22 <ehird> Not $.
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:33 <pikhq> ehird: I fail.
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:15 <GregorR> >_> <_<
01:02:51 <ehird> Gracenotes: NOT HASKELL. GET THE FUCK OUT.
01:02:59 <Gracenotes> lols.
01:03:05 <GregorR> Yeah Gracenotes! Geez!
01:03:17 <ehird> XD
01:03:29 <ehird> !haskell do n <- randomRIO (0,1); print n
01:03:31 <pikhq> At least it's not C++.
01:03:36 * ehird kicks !haskell.
01:03:38 <ehird> `haskell do n <- randomRIO (0,1); print n
01:03:39 <HackEgo> No output.
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:03:59 <GregorR> `run ghc 2>&1
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:16 <ehird> oerjan: damn you.
01:05:20 <ehird> That was, like, my job.
01:05:21 <oerjan> :D
01:05:25 <ehird> :(
01:05:32 <oerjan> sorry :(
01:05:41 <ehird> oerjan: btw, your code is TOO VERBOSE.
01:05:42 <pikhq> ehird: Apparently it does.
01:05:42 <ehird> Try randomRIO.
01:05:43 <pikhq> Impressive.
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:05:59 <ehird> ...
01:06:03 <ehird> GregorR: "% 1"?
01:06:03 <ehird> :-P
01:06:04 <oerjan> ehird: randomRIO cannot give an infinite list afair
01:06:08 <GregorR> Yup.
01:06:12 <ehird> oerjan: ah
01:06:15 <AnMaster> <pikhq> Most of them to 17. <-- why 17
01:06:20 <ehird> oerjan: just do
01:06:24 <ehird> oerjan: a sequence cycle thingy.
01:06:26 <ehird> i guess.
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:06:54 <AnMaster> except 17
01:06:57 <AnMaster> of course
01:07:08 <pikhq> Yeah...
01:07:23 <oerjan> hm
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:07:45 <AnMaster> what is @pl?
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:25 <AnMaster> err
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:30 <AnMaster> it just adds spaces?
01:08:34 <AnMaster> @pl a.b.c
01:08:34 <lambdabot> a . b . c
01:08:46 <pikhq> @pl a (b c)
01:08:46 <lambdabot> a (b c)
01:08:51 <pikhq> Curses.
01:08:59 <pikhq> Need a good example.
01:09:00 <AnMaster> it makes NO sese
01:09:03 <AnMaster> sense*
01:09:10 <oerjan> !haskell import System.Random; main = sequence_ . replicate 200 $ fmap (putStr . (["hurf","durf","hurd"]!!)) randomRIO (0,2)
01:09:11 <Warrigal> @pl \x -> x y z
01:09:12 <lambdabot> flip ($ y) z
01:09:22 <pikhq> Like that.
01:09:23 <Gracenotes> @pl func f g = map f . filter g
01:09:24 <lambdabot> func = (. filter) . (.) . map
01:09:33 <AnMaster> äl
01:09:35 <AnMaster> err'
01:09:39 <AnMaster> pikhq*
01:09:41 <Gracenotes> @unpl (. filter) . (.) . map
01:09:42 <lambdabot> (\ g m d -> map g (filter m d))
01:09:49 <AnMaster> pikhq, I don't know haskell yet
01:09:57 <AnMaster> so what do you mean
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:12 <oerjan> darn
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:13 <Warrigal> > nubBy (((==0).).gcd) [2..]
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:17 * AnMaster googles
01:11:21 <Warrigal> Lovely.
01:11:22 * Gracenotes goggles
01:11:36 <Warrigal> > nubBy (((==1).).gcd) [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:46 <Warrigal> > nubBy (((/=1).).gcd) [2..]
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:51 <Warrigal> Whew.
01:11:57 <Warrigal> @unpl nubBy (((/=1).).gcd) [2..]
01:11:57 <lambdabot> nubBy (\ e h -> (gcd e h) /= 1) [2 ..]
01:11:59 <upyr[emacs]> hm
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:15 <Warrigal> ...TO THE UNTRAINED EYE
01:12:19 <pikhq> AnMaster: No arguments! Only curry!
01:12:21 <ehird> Warrigal: no it's not
01:12:22 <ehird> not really
01:12:32 <Gracenotes> delicious curry
01:12:34 <Warrigal> ehird: no?
01:12:34 -!- nooga has joined.
01:12:36 <AnMaster> pikhq, ah
01:12:58 <Warrigal> @. pl unpl nubBy (((/=1).).gcd) [2..]
01:12:59 <lambdabot> nubBy (flip flip 1 . ((/=) .) . gcd) [2..]
01:13:08 <Warrigal> flip flip 1
01:13:18 -!- Dewio has joined.
01:13:20 <Warrigal> Wow.
01:13:26 <pikhq> flip flip 1. Man.
01:13:42 <Warrigal> @type flip flip flip flip
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:18 <Gracenotes> oh wait. that would be (flip flip) 1
01:14:26 <Gracenotes> @type flip flip
01:14:27 <lambdabot> forall a b c. b -> (a -> b -> c) -> a -> c
01:14:33 <Gracenotes> foiled again!
01:14:53 <Warrigal> Yeah, remember that Haskell doesn't behave like natural language unless you stuff it with $.
01:15:03 <Gracenotes> @type flip flip flip flip flip flip
01:15:05 <lambdabot> forall a b c a1 c1. (a1 -> ((a -> b -> c) -> b -> a -> c) -> c1) -> a1 -> c1
01:15:17 <Gracenotes> application is leftassociativish
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 <Warrigal> That is unreadable.
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:22 <lambdabot> Parse error at "->" (column 5)
01:16:23 <ehird> er
01:16:25 <ehird> @djinn (a1 -> ((a -> b -> c) -> b -> a -> c) -> c1) -> a1 -> c1
01:16:26 <lambdabot> f a b = a b (\ c d e -> c e d)
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:26 <Warrigal> @unpl ((/=) .)
01:17:27 <lambdabot> (\ a d -> (/=) (a d))
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:12 <ehird> Warrigal: >>>
01:19:20 <ehird> @hoogle >>>
01:19:20 <Warrigal> What's its fixity?
01:19:20 <lambdabot> Control.Arrow (>>>) :: Arrow a => a b c -> a c d -> a b d
01:19:30 <Gracenotes> ch-ch-ch-ch-ch-ch-changes
01:20:21 <Warrigal> Hmm, it's pretty weakly-binding.
01:20:23 <oerjan> > (0$0>>>)
01:20:24 <lambdabot> The operator `Control.Category.>>>' [infixr 1] of a section
01:20:25 <lambdabot> must have ...
01:20:57 <Warrigal> I'm not sure I can use it.
01:21:14 <Gracenotes> > (0$0>>>2)
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:24 <Gracenotes> it should be fine.
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:20 <Gracenotes> still, not much different than .
01:22:26 <Warrigal> Yeah, I can use that.
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:20 <Gracenotes> stop nubbing me! it hurts
01:23:24 <oerjan> @pl nubBy (\ e h -> 1 < (gcd e h)) [2 ..]
01:23:24 <lambdabot> nubBy (((1 <) .) . gcd) [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:23:49 <lambdabot> has three argument...
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:24:36 <Gracenotes> >>>_<<<
01:24:50 <Warrigal> Hey, cool, thhere's a <<<.
01:24:59 <ehird> <<< = .
01:25:04 <Warrigal> Same fixity as >>>.
01:25:12 <ehird> > f <<< g
01:25:14 <lambdabot> No instance for (GHC.Show.Show (cat a c))
01:25:14 <lambdabot> arising from a use of `M268796...
01:25:20 -!- Dewi has quit (Read error: 101 (Network is unreachable)).
01:25:20 <ehird> > (f <<< g) x :: Expr
01:25:22 <Gracenotes> <<< is moar general
01:25:22 <lambdabot> Add a type signature
01:25:32 <Warrigal> It's moär general.
01:25:46 <Gracenotes> you need to tell it what type g is
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:26 <Gracenotes> aren't you tricky, Warrigal!
01:26:57 <oerjan> Warrigal: ä ö ü all are completely fine german umlauts
01:27:17 <nooga> ä
01:27:46 <nooga> yes, because you can't write FUHRER without Ü
01:27:53 <Gracenotes> *UE
01:28:06 <nooga> shit =,=
01:28:10 <Gracenotes> my surname had an umlaut before my ancestors came over to America
01:28:11 <nooga> FÜHRER
01:28:21 <Gracenotes> yes, an umlaut on a u
01:28:42 <nooga> Schnitzenmüller?
01:28:44 <nooga> :D
01:28:56 <Gracenotes> :o how did you guess!
01:29:43 <GregorR> My surname had an umlaut. Richärds.
01:30:39 <nooga> łóńśćążźęń
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:34:36 <GregorR> þornography!
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:13 <pikhq> Think, even.
01:37:23 <oerjan> pikhq: that's because you're such a neöphyte
01:37:30 <GregorR> Coördinate with me.
01:37:39 <GregorR> Coöperate with the use of co-stuff.
01:37:50 <pikhq> See.
01:38:00 <pikhq> I just suck at thinking of words on demand.
01:38:34 <pikhq> Coägulate?
01:39:21 <Gracenotes> i has a kitteh for us
01:39:33 <oerjan> diäreses looks more poëtic
01:39:35 <Gracenotes> name is kitteh
01:39:35 <oerjan> *look
01:39:55 <pikhq> Loök.
01:40:02 <oerjan> pikhq: BZZZZZZT
01:40:12 <oerjan> not two syllables
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:13 <pikhq> Also, woüld.
01:41:20 <oerjan> as if i carë
01:41:34 * Gracenotes tries pronouncing this conversation, gives up
01:41:47 * pikhq mäkës hïs vöwëls mëtäl.
01:41:50 <oerjan> ITYM pronoüncïng
01:42:01 <Gracenotes> ITID
01:42:54 <pikhq> ÏT̈ŸM̈ ̈p̈r̈ön̈öün̈c̈ı̈n̈g̈.̈
01:43:27 <Gracenotes> IDWYT
01:44:11 <pikhq> ÏD̈ẄŸT̈=̈ẅḧä?
01:44:50 -!- ehird has quit (Remote closed the connection).
01:44:50 <Gracenotes> acronym hangman time
01:45:03 <Gracenotes> time to guess words for each letter
01:45:24 <Gracenotes> :X
01:45:42 <pikhq> N̈ËÏN̈!̈
01:45:50 -!- ehird_ has changed nick to ehird.
02:05:07 -!- GreaseMonkey has joined.
02:17:47 -!- DarkPants has joined.
02:22:22 -!- GreaseMonkey has quit (Nick collision from services.).
02:22:31 -!- DarkPants has changed nick to GreaseMonkey.
02:31:44 <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:09 <GregorR> 6) You're in!
02:33:16 <pikhq> I am a giant bucket!
02:33:22 <pikhq> </don hertzfeldt>
02:37:21 <oerjan> GregorR: don't you mean EGGCELLENT?
02:41:19 <GregorR> OK, A) that's EGG-SALAD-NT
02:41:22 <GregorR> And B, no.
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:08 <pikhq> Spoon?
02:43:25 <pikhq> SPOON!
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:28:53 <augur> GregorR: <3
03:29:47 <augur> entropy decreasing in a closed system isnt impossible
03:29:56 <GregorR> The next comic covers that :P
03:30:03 <augur> oh ok
03:30:59 <pikhq> Ah, Dinosaur Comics.
03:31:01 <pikhq> Such good writing.
03:31:30 <GregorR> Such bad art ;)
03:31:32 <augur> teehee
03:31:41 <augur> you know
03:31:44 <augur> i collect fetishes
03:31:47 <augur> like butterflies
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:33:28 <augur> pikhq: boring.
03:33:28 <GregorR> pikhq: Ouch ;P
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:37 <GregorR> THE MAD SEXORZ
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:27 <pikhq> *Personal*?
03:38:31 <pikhq> What, is that your foot?
03:39:11 <GregorR> Yeah.
03:39:20 <pikhq> Ooooow.
03:39:20 <GregorR> Well, /was/
03:39:24 <GregorR> My foot is quite foot-like now.
03:39:29 <pikhq> What, you lost your foot?
03:39:31 <pikhq> Oh.
04:02:08 -!- oerjan has quit ("Good night").
04:42:16 -!- comex has quit ("leaving").
04:44:17 -!- comex has joined.
04:44:42 -!- fungebob has quit ("ChatZilla 0.9.85 [Firefox 3.0.11/2009060215]").
04:47:36 <Warrigal> So chromates.jpg there is a picture of GregorR's foot reacting allergically to chrome?
04:48:03 <GregorR> Yes.
04:48:15 <GregorR> Specifically, chromium-tanned leather.
04:48:37 <Warrigal> Ah.
04:49:03 * Warrigal types the URL into Google Image Search.
04:49:05 <Warrigal> No results. Huh.
04:49:16 <GregorR> lol
04:49:22 <GregorR> I don't think there are any links to it :P
04:49:41 * Warrigal just goes to that page.
04:50:10 <Warrigal> Huh. That's vomit-inducing?
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:55:44 <GregorR> ... stone?
04:56:01 <Warrigal> Linoleum?
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:39 <Warrigal> Plastic tiles.
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:02:40 <comex> google chrome
05:02:48 * comex runs
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:13:50 <Gracenotes> SUP
05:14:04 <Gracenotes> so. anyone program in any esoteric languages lately.
05:14:33 <GregorR> NEVER
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:14:52 <pikhq> No.
05:15:17 <Gracenotes> who would do such a dastardly thing
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:09 <pikhq> Yes.
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:36 <immibis> in their nick
05:21:37 <pikhq> That's not a list.
05:21:41 <immibis> its a regex
05:21:43 <pikhq> That's a syntax error.
05:21:44 <pikhq> :)
05:21:48 <pikhq> Syntax. Error.
05:22:03 <gracenotes> ['\0'..] // "imbs"
05:22:10 <immibis> what language is that?
05:22:21 <pikhq> Haskell.
05:22:34 <gracenotes> s/\/\//\\\\/
05:23:10 <pikhq> > ['\0'..]
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:24:33 <pikhq> Yay.
05:26:33 <immibis> ['\177'..]
05:26:42 <immibis> > ['\177'..]
05:26:44 <lambdabot> "\177\178\179\180\181\182\183\184\185\186\187\188\189\190\191\192\193\194\1...
05:26:54 <immibis> ['\777'..]
05:27:08 <immibis> > ['\777'..]
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 chr :: Int -> Char
05:27:39 <lambdabot> Data.Char intToDigit :: Int -> Char
05:27:39 <lambdabot> Data.ByteString.Char8 index :: ByteString -> Int -> Char
05:27:51 <gracenotes> what, wait.... what... L died? O_O
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:28:32 <gracenotes> :D
05:28:44 <gracenotes> well, modulo more 50 chapters
05:28:57 <pikhq> Does not exist.
05:28:58 * immibis ?
05:29:02 <pikhq> That's bad fanfiction.
05:29:07 <gracenotes> oh I see. discontinuity. :P
05:29:07 <pikhq> Death Note.
05:29:40 <gracenotes> now, where did I put my CDs...
05:29:57 <immibis> somewhere in the galaxy most likely
05:29:59 <gracenotes> pesky little things
05:30:14 <gracenotes> a bold assertion, immy
05:30:49 <pikhq> > fromZipList $ fmap chr $ (+) <$> (fmap ord ['\0'..]) <*> cycle [1]
05:30:50 <lambdabot> Not in scope: `fromZipList'
05:30:51 <immibis> s/y/i
05:30:53 <pikhq> Erm.
05:31:07 <immibis> @help
05:31:07 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
05:31:11 <immibis> @list
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:31:53 <pikhq> Oh well.
05:31:54 <gracenotes> capitalize
05:32:21 <immibis> @help fmap
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:15 <immibis> what does $ do?
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:42 <immibis> > atoi
05:33:44 <lambdabot> Not in scope: `atoi'
05:33:47 <pikhq> Oh, already pointfree.
05:33:49 <pikhq> XD
05:33:54 <gracenotes> *FMAP* *FMAP* *FMAP* *FMAP* *FMAP* *FMAP*
05:33:54 <immibis> @hoogle Int -> String
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:05 <immibis> i don't know haskell
05:34:12 <pikhq> Clearly.
05:34:18 <immibis> or lambdabot...
05:34:21 <immibis> @help hoogle
05:34:22 <lambdabot> hoogle <expr>. Haskell API Search for either names, or types.
05:34:23 <gracenotes> oh, let's mock the un-haskell-knower!
05:34:34 <gracenotes> it's okay :x
05:34:48 <pikhq> @hoogle Num -> String
05:34:48 <lambdabot> Warning: Unknown type Num
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:02 <gracenotes> (for the appropriate typeclass)
05:35:10 <gracenotes> es
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:27 <pikhq> There we go.
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:34 <immibis> what does zipwith do?
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:40 <lambdabot> Not in scope: `zipWidth'
05:38:46 <immibis> oops
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> No instance for (GHC.Num.Num [a])
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 <gracenotes> hotter :D
05:39:05 <lambdabot> No instance for (GHC.Num.Num [a])
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:34 <immibis> well what does it do?
05:39:39 <immibis> > let numbers = 1:(+) (1) (tail numbers) in numbers
05:39:40 <lambdabot> No instance for (GHC.Num.Num [a])
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:26 <immibis> s/pascal/haskell/
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:40:59 <immibis> no i'm just guessing
05:41:06 <Warrigal> GregorR: what did?
05:41:10 <gracenotes> oh, that's good too
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:43 <lambdabot> Add a type signature
05:41:45 <immibis> > let numbers = 1:2:9:7:map (1-) numbers in numbers
05:41:46 <gracenotes> er, about Pascal
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:41:52 <immibis> that was pointless
05:42:21 <gracenotes> it was cyclic
05:42:28 <immibis> yes and pointless
05:42:30 <immibis> > numbers
05:42:32 <lambdabot> Not in scope: `numbers'
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:13 <lambdabot> arising from a use of `GHC....
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:43:58 <GregorR> Heh. Statements.
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:25 <lambdabot> Defined.
05:44:25 <Warrigal> > numbers
05:44:27 <lambdabot> [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:29 * Warrigal bows
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:44 <immibis> still pointless but meh
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:45:37 <gracenotes> whoa :o
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> No instance for (GHC.Num.Num [a])
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:47:36 <lambdabot> [0,1,2,0,3,1]
05:47:45 <Warrigal> Yay!
05:48:19 <Warrigal> @let mex = head . foldr delete [0..]
05:48:20 <lambdabot> Defined.
05:48:46 <immibis> @let numbers = numbers + 1
05:48:47 <lambdabot> <local>:7:0:
05:48:47 <lambdabot> Multiple declarations of `L.numbers'
05:48:47 <lambdabot> Declared at: <lo...
05:48:53 <immibis> @let abcd = abcd + 1
05:48:55 <lambdabot> Defined.
05:48:59 <immibis> O.o
05:49:02 <immibis> > abcd
05:49:08 <lambdabot> mueval-core: Prelude.read: no parse
05:49:08 <lambdabot> mueval: ExitFailure 1
05:49:13 <immibis> okay...
05:49:22 <gracenotes> SYSTEM FAILURE ... SYSTEM FAILURE ... SYSTEM FAILURE ... SYSTEM FAILURE
05:49:39 <GregorR> @let zeros = 0:zeros
05:49:40 <lambdabot> Defined.
05:49:52 <GregorR> > zeros
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:06 <GregorR> @let zees = 'z':zees
05:50:07 <lambdabot> Defined.
05:50:11 <GregorR> Time to catch some ...
05:50:12 <GregorR> > zees
05:50:14 <lambdabot> "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...
05:50:20 <GregorR> OMG I'M HILL LARRY US
05:50:59 * Warrigal ponders.
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:10 <gracenotes> append " in systemfailure"
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:52:36 <Warrigal> @hoogle Bits
05:52:37 <lambdabot> module Data.Bits
05:52:37 <lambdabot> Data.Bits class Num a => Bits a
05:52:37 <lambdabot> package bitset
05:52:42 <Warrigal> > "foo" ++ "bar"
05:52:44 <lambdabot> "foobar"
05:53:21 <Warrigal> > xor 3 5
05:53:22 <lambdabot> Add a type signature
05:53:26 <Warrigal> > xor 3 5 :: Integer
05:53:28 <lambdabot> 6
05:53:57 <GregorR> > putStr "Add a type signature"
05:53:57 <gracenotes> bow down to xor, your bitwise god!
05:53:58 <lambdabot> <IO ()>
05:54:01 <GregorR> >_<
05:54:17 <GregorR> > unsafePerformIO . putStr "Add a type signature"
05:54:18 <lambdabot> Not in scope: `unsafePerformIO'
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:40 <gracenotes> that's what it's named
05:54:49 <immibis> > import System.IO
05:54:51 <lambdabot> <no location info>: parse error on input `import'
05:54:56 <gracenotes> !haskell main = putStrLn "Add a type signature"
05:54:58 <EgoBot> Add a type signature
05:55:03 <immibis> > import IO
05:55:05 <lambdabot> <no location info>: parse error on input `import'
05:55:14 <immibis> > openFile
05:55:15 <lambdabot> Not in scope: `openFile'
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:26 <lambdabot> Not in scope: `mex'
05:55:35 <immibis> > (openFile "hello" WriteMode)
05:55:36 <lambdabot> Not in scope: `openFile'Not in scope: data constructor `WriteMode'
05:55:43 <gracenotes> !haskell main = putStrLn "> \"sup\""
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:45 <EgoBot> > "sup"
05:55:47 <lambdabot> Add a type signature
05:55:48 <lambdabot> "sup"
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:18 <lambdabot> (line 1, column 103):
05:57:19 <lambdabot> unexpected "="
05:57:19 <lambdabot> expecting ";" or "in"
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> (line 1, column 70):
05:57:57 <lambdabot> unexpected "="
05:57:57 <lambdabot> expecting variable, "(", operator, ":", "++", "<+>", ";" or "in"
05:57:59 <Warrigal> Er.
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:07 <Warrigal> @pl-resume
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:40 <immibis> @help pl-resume
05:59:41 <lambdabot> pl-resume. Resume a suspended pointless transformation.
05:59:43 <Warrigal> I think I prefer the original...
05:59:44 <immibis> @help pl
05:59:45 <lambdabot> pointless <expr>. Play with pointfree code.
06:00:16 <immibis> what is .?
06:00:40 <Warrigal> > map ((+1) . (*3)) [1,2,3,4,5]
06:00:42 <lambdabot> [4,7,10,13,16]
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:07:24 <pikhq> :P
06:15:19 <immibis> > map (+1) . (map
06:15:21 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
06:16:11 <immibis> > 2**2
06:16:13 <lambdabot> 4.0
06:16:16 <immibis> > 2**3
06:16:17 <lambdabot> 8.0
06:16:29 <immibis> > map (**1000) [1..]
06:16:31 <lambdabot> [1.0,1.0715086071862674e301,Infinity,Infinity,Infinity,Infinity,Infinity,In...
06:17:10 <immibis> > map (**0.0001) [1..]
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:11 <immibis> > 0**0
06:18:12 <lambdabot> 1.0
06:18:17 <immibis> > 0**0.0000000000000000000000000000001
06:18:19 <lambdabot> 0.0
06:18:24 <immibis> > 1.#INF
06:18:26 <lambdabot> Not in scope: data constructor `INF'Not in scope: `.#'
06:36:23 <immibis> > 1/0
06:36:25 <lambdabot> Infinity
06:36:29 <immibis> > 1/1/0
06:36:30 <lambdabot> Infinity
06:36:33 <immibis> > 1/(1/0)
06:36:35 <lambdabot> 0.0
06:36:45 <immibis> > 0**(1/0)
06:36:47 <lambdabot> 0.0
06:37:04 <immibis> > 0**(1/(1/0))
06:37:05 <lambdabot> 1.0
06:37:14 <immibis> > (1/3) * 3
06:37:15 <lambdabot> 1.0
06:40:24 -!- kar8nga has joined.
07:02:11 -!- immibis has quit ("If you think nobody cares, try missing a few payments").
07:02:26 -!- pikhq has quit (Remote closed the connection).
07:08:17 -!- pikhq has joined.
07:08:19 -!- pikhq has quit (Read error: 54 (Connection reset by peer)).
07:08:51 -!- kar8nga has quit (Remote closed the connection).
07:13:31 -!- pikhq has joined.
07:16:51 -!- kar8nga has joined.
07:31:45 -!- gracenotes has changed nick to Gracenotes.
07:34:13 -!- kar8nga has quit (Read error: 110 (Connection timed out)).
07:41:43 -!- MigoMipo has joined.
07:47:26 -!- tombom has joined.
07:50:22 -!- tombom_ has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:04:38 -!- tombom__ has joined.
08:14:24 -!- tombom has quit (Read error: 110 (Connection timed out)).
08:14:25 -!- tombom__ has changed nick to tombom.
08:14:25 -!- tombom_ has quit (Read error: 110 (Connection timed out)).
08:22:31 -!- amca has joined.
08:53:19 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server").
08:56:56 -!- evenant has quit (Read error: 104 (Connection reset by peer)).
08:57:09 -!- evenant has joined.
09:24:31 -!- MigoMipo has joined.
09:53:13 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
10:22:51 -!- MigoMipo has quit (Nick collision from services.).
10:22:52 -!- MigoMipo_ has joined.
10:50:18 -!- MigoMipo_ has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server").
10:50:29 -!- MigoMipo has joined.
10:52:37 -!- GreaseMonkey has quit ("HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it").
11:16:02 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server").
11:28:19 -!- MigoMipo has joined.
11:30:44 -!- KingOfKarlsruhe has joined.
12:06:52 -!- sebbu has quit (Read error: 110 (Connection timed out)).
12:26:43 -!- FireFly has joined.
12:34:09 -!- upyr[emacs] has joined.
12:38:05 -!- BeholdMyGlory has joined.
13:40:43 -!- sebbu has joined.
14:11:24 -!- BeholdMyGlory has quit (Remote closed the connection).
14:16:16 -!- BeholdMyGlory has joined.
14:35:14 -!- MigoMipo has quit (Read error: 60 (Operation timed out)).
15:04:47 -!- augur has quit (Read error: 110 (Connection timed out)).
15:13:21 -!- labo has joined.
15:54:05 -!- ais523 has joined.
15:59:58 -!- nooga has joined.
16:00:38 -!- augur has joined.
16:00:38 <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:01:49 <ais523> hi ehird_
16:02:10 <ehird_> hi
16:02:21 <ehird_> oh. my bouncer is back.
16:02:36 <ais523> welcome ehird
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:51 <ehird_> and i am back!
16:04:53 <ehird_> what the fuck
16:04:55 <ehird_> why did i rename
16:04:57 -!- ehird_ has changed nick to ehird.
16:04:59 <ehird> ????
16:05:06 <nooga> ?
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:07:39 <ehird> ah
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:14:35 <ehird> how unexpected
16:17:29 <pikhq> nooga: Prince.
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:27 <ehird> nooga: :-D
16:18:30 <ehird> he means what he said!
16:18:57 <nooga> uhm
16:24:35 * ehird learns agda.
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 <ehird> oh, law.
16:27:43 <lambdabot> <no location info>: parse error on input `)'
16:27:49 <ehird> shush lambdabot
16:43:20 <nooga> algebraic slime
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:44:59 <AnMaster> hi ais523
16:46:27 <ais523> hi
16:47:33 <ehird> Torque.
16:47:41 <Slereah_> http://www.hcn.zaq.ne.jp/cabic508/rsf/mq.swf
16:47:45 <Slereah_> Good night, sweet prince
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:03:52 <ehird> 1h56m to go
17:04:08 <ais523> ehird: ooh, I was planning ot
17:04:10 <ais523> *to
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:00 <ehird> (needs js)
17:05:03 <ehird> very omnious
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:08:46 <ehird> IHBT
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:25 <ais523> last year's wasn't
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:47 <ehird> :P
17:12:54 <ehird> (yes, that's how long a nop takes to write)
17:12:56 <ehird> (hurr hurr)
17:12:56 <ais523> you'd be surprised
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:35 <ehird> ADJKADSJKAHDFG
17:25:53 -!- KingOfKarlsruhe has quit (Remote closed the connection).
17:26:32 -!- pikhq_ has joined.
17:26:35 <nooga> ok
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:32:04 <pikhq_> Yes, it does.
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:29 <ehird> :p
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:50:15 <pikhq> :P
17:50:25 <ehird> :P
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:03:18 <ehird> </rant>
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:32 <GregorR-L> He's Steve Jobs :P
18:04:37 <GregorR-L> That's all the evidence I need.
18:04:46 <ehird> Righty ho then.
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:06:07 <GregorR-L> NUH UH BUDDHA'S THAT FAT GUY
18:06:10 <GregorR-L> AND THEY WORSHIP HIM
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:15 <pikhq> Indeed.
18:11:50 <amca> "Sometimes I think Im agnostic, but other times Im not so sure" ;)
18:12:08 <pikhq> AAAGH.
18:12:09 <ehird> Secular is ... even more inaccurate.
18:12:36 <pikhq> "Secular". "Of the world"?
18:12:50 <pikhq> Yeah...
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:20:50 <nooga> don't be stewpid
18:26:26 <ehird> Grr.
18:26:27 <ehird> You know what?
18:26:30 <ehird> GnuPG needs an API.
18:26:31 <ehird> a good 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 <ehird> well, it does
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:27:42 <pikhq> Yes.
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:16 <ehird> ?
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:03 <GregorR-L> ...
18:33:04 <GregorR-L> You're an idiot.
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:15 <GregorR-L> The concern is overusing keys.
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:20 <ehird> Yeah.
18:36:27 <ehird> I'll use OpenSSL.
18:36:41 <AnMaster> have fun with that API!
18:36:49 <ehird> AnMaster: Lovely Haskell bindings, bitch.
18:36:59 <AnMaster> ehird, fair enough
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:46:56 <nooga> OJDOJ
18:47:21 <ehird> http://vimeo.com/4353898?pg=embed&sec=
18:47:23 <ehird> this
18:47:23 <ehird> is
18:47:25 <ehird> awesome.
18:56:16 <ehird> ais523: four minutes to go
18:56:18 <ehird> until icfp
18:58:14 <ais523> yep
18:59:04 <ehird> no, nope. time has passed since then :P
18:59:12 <ais523> well, ok
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:00 <ais523> heh
19:01:05 <ehird> ais523: you are now yawning.
19:01:15 <ais523> no, I'm not
19:01:17 <ehird> also breathing manually.
19:01:19 <ehird> dammit!
19:01:28 <ehird> you're like superman. superyawningandbreathingman.
19:04:17 <ehird> omg
19:04:19 <ehird> ais523: fancy design!
19:04:22 <ehird> for ICFP at least
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:04:49 <ehird> Yes it has.
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:05:59 <ehird> where?
19:06:06 <ais523> #icfp-contest
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:12 <ais523> and no, it isn't
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:28 <ais523> or were, at least
19:07:39 <ehird> So... you can't copy-paste. Okay..
19:07:41 <ehird> *...
19:07:58 <ehird> ais523: Why no INTERCAL/
19:08:02 <ehird> s/\/$/?/
19:08:08 <ais523> this thing is full of double-precision floats
19:08:15 <ehird> Ha.
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:04 <ais523> mouse worked
19:09:28 <ehird> lol
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:49 <ehird> Boring.
19:09:54 <ais523> yep, a boring esolang
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:08 <ais523> ehird: read!
19:11:12 <ehird> i am!
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:16:54 <ehird> :P
19:17:00 <ehird> meh
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:19:39 <ehird> Fun bonanza!
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:18 <ehird> Gracenotes: shush
19:22:26 <GregorR-L> The 13-body problem: Menage á Treize
19:22:35 <nooga> huh
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:25:49 <ehird> diver's
19:25:51 <ehird> japanese
19:25:53 <ehird> phrases
19:26:00 <ehird> ais523: MWAHAHA! AGDA WILL WIN! or no.
19:26:01 <ehird> not.
19:26:17 <Gracenotes> divers >_<
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:26:55 <ehird> oh
19:26:56 <ehird> darn
19:27:05 <GregorR-L> A placebo placeholder though.
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:36 <ehird> Deewiant: wat
19:27:41 <Deewiant> A machine trying to boot keeps on printing GRUB
19:27:45 <Deewiant> > repeat "GRUB "
19:27:46 <lambdabot> ["GRUB ","GRUB ","GRUB ","GRUB ","GRUB ","GRUB ","GRUB ","GRUB ","GRUB ","G...
19:27:58 <Deewiant> It's still going :-D
19:28:13 <Deewiant> Screenful of GRUB
19:28:13 <ehird> :D
19:28:17 <ehird> > cycle "GRUB "
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:22 <lambdabot> Defined.
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:25 <GregorR-L> > grubby
19:28:28 <lambdabot> "GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB...
19:28:29 <Deewiant> ehird: :-D
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:07 <ehird> "GRUB".
19:29:16 <Deewiant> Exactly :-D
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:15 <ehird> ...Also that...
19:31:20 <Deewiant> That means everything is as normal?
19:31:25 <ehird> :D
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:43:48 <ehird> — October 2005
19:44:04 <ais523> and they're correct
19:44:58 <ehird> yep
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:28 <Deewiant> What specs?
20:02:49 <ehird> Deewiant: icfp
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:54 <ehird> ↑ from 2007
20:02:59 <ehird> You can't find less than 8ms on a >19"?
20:03:00 <ehird> Srsly?
20:03:18 <ehird> 2ms 24"s are terribly common now; I doubt it was that bad two years ago...
20:03:56 <Deewiant> Oh yeah, I forgot about ICFP
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:23 <Deewiant> Really, how's that
20:04:30 <ehird> Boring. Not challenging.
20:04:32 <ehird> Lame.
20:05:52 <Deewiant> Based on a quick scan: write a VM and and then programs for it? Or wut?
20:06:20 <ehird> Pretty much.
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:07 <Deewiant> Yep
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:11:51 <pikhq> ;)
20:11:56 <Deewiant> True, but it's not necessary
20:12:39 * pikhq wonders how you could use monads more complex than just do {} blocks for I/O without grokking them.
20:12:57 <ais523> you can probably use Parsec without really understanding monads
20:12:58 <ehird> pikhq: Easily.
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:14:45 <pikhq> Indeed.
20:15:06 <Deewiant> You might learn it as a more convenient syntax than concatmapping all over the plac
20:15:09 <Deewiant> e
20:15:27 * pikhq is trying to figure out monadic transformations.
20:20:16 -!- tombom has quit ("Peace and Protection 4.22.2").
20:21:05 <ehird> pikhq: They're monads that contain other monads.
20:21:11 <ehird> pikhq: e.g. StateT Integer (IO String).
20:21:13 <pikhq> Yes.
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:22:58 <Deewiant> Only the one in mtl.
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:17 <Deewiant> Hence, don't use mtl's ListT.
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:30 <ehird> March '08
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:18 <pikhq> Yes, well.
20:27:26 <pikhq> I can wish for a halting oracle, can't I?
20:27:34 <ehird> Shur :P
20:27:36 <pikhq> Makes everything easy!
20:28:30 <ehird> Yah.
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:29 <ehird> QED.
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:26 <ehird> Let me restate.
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:06 <ehird> Or basically
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:23 <ehird> You are wrong.
20:33:37 <pikhq> This, of course, means that TM+oracle is trivially equivalent to the infinity machine.
20:33:42 <ehird> Yep.
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:09 <Gracenotes> :)
20:34:15 <Gracenotes> but really, your proof is going the wrong way
20:34:20 <Gracenotes> even if its conclusion is valid
20:34:22 <Gracenotes> imho
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:34:56 <ehird> ?
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:46:30 <Gracenotes> ehird: 2 minutes, huh
20:46:35 <Gracenotes> .. >_>
20:47:02 <ehird> ಠ_ಠ
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:01 <AnMaster> sigh
21:13:09 <AnMaster> hilarious....
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:04 <Gracenotes> billions and billions and billions!
21:20:31 <ais523> I have powertop installed
21:20:42 <Gracenotes> (extra billions for emphasis)
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:48 <ehird> Well...
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:07 <ehird> Yes it does.
21:26:08 <ehird> Tegra.
21:26:10 <AnMaster> ah
21:26:15 <ehird> Based on ARM.
21:26:18 <AnMaster> right
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:36 <Warrigal> :-P
21:44:58 <ehird> Warrigal: use Arduino!
21:45:05 <ehird> AKA What do we know
21:45:23 <ehird> Ar du ui no
21:45:23 <ehird> Wha tdu we kno
21:45:28 <ehird> → 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.
21:52:26 * Warrigal nod-shrugs.
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:46 <AnMaster> hm
22:13:49 <AnMaster> right
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:11 <ehird> gamut
22:15:17 <ehird> sounds like flakkk
22:15:20 <ehird> nor
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:17:34 <AnMaster> oh wait
22:17:37 <AnMaster> worse than I though
22:17:41 <AnMaster> thought*
22:17:55 <AnMaster> it wants HSV...?
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:07 <GregorR> e.g. "#FFFFFF"
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:20 <AnMaster> is the line
22:20:27 <AnMaster> what is the issue there
22:20:32 <ais523> missing quotes, I guess
22:20:47 <ehird> Yeah, no shit :P
22:20:50 <AnMaster> hm right
22:50:14 -!- mercibeaucul has joined.
22:50:39 <mercibeaucul> good evening, #esoteric.
22:50:46 <ais523> evening
22:51:04 <ais523> are you new here? or have I just not been paying attention for the last week/month/year/
22:51:16 <mercibeaucul> yes, I am new as of right now
22:51:26 <ais523> welcome, then
22:51:39 <ais523> quick, someone say something interesting!
22:51:53 <mercibeaucul> o_O
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:53:53 <mercibeaucul> hmmm
22:53:57 <mercibeaucul> curiosity, I suppose
22:54:06 <mercibeaucul> plus, I esoteric is one of my favorite words ;)
22:54:09 <ais523> heh
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:44 <mercibeaucul> python will be my first language, I believe
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:48 <mercibeaucul> oh, I'm not too high up yet
22:55:52 <ais523> apparently there's a college professor somewhere who teaches Ook! as a first language
22:56:03 <bsmntbombdood> why ook?
22:56:05 <mercibeaucul> but I do love Algebra and Logic and Calculus
22:56:06 <bsmntbombdood> that's retarded
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:13 <ehird> :-P
22:56:20 <mercibeaucul> ehird, I almost agree
22:56:23 <mercibeaucul> but sometimes it's frustrating
22:56:25 <pikhq> mercibeaucul: Then you'll like good programming.
22:56:26 <bsmntbombdood> ook is just about the worst language evar
22:56:32 <ais523> there are worse langs
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:44 <ehird> Oh.
22:56:45 <ehird> Then Haskell.
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:30 <mercibeaucul> the concepts fascinate me
22:57:32 <ehird> a mathematician is anyone who knows anything about mathematics modulo trivial things like arithmetic :-P
22:57:35 <mercibeaucul> I'd love to learn about physics as well
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:57:57 <ehird> Or Perl.
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:46 <ehird> I think
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:58:58 <ehird> oh
22:59:01 <ehird> heh
22:59:07 <pikhq> Warrigal: In order grok Haskell, you have to grok a lot of computer science.
22:59:14 <ehird> Ehh not really
22:59:18 <Warrigal> I didn't know that
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:27 <ais523> which is worrying
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:03 <mercibeaucul> ehird, o_O
23:00:05 <ehird> rather heterogenous culture, this place.
23:00:06 <ehird> :\
23:00:08 <pikhq> Fourth? Hmm.
23:00:12 <ehird> well
23:00:13 <ehird> Sukoshi
23:00:15 <ehird> that other one
23:00:15 <ais523> ehird: tbh, that's probably about the same proportion as on the internet as a hole
23:00:17 <ehird> plus some leeway
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:32 <ais523> *as a whole
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:43 <ehird> i'm not convinced
23:00:44 * pikhq misses Sukoshi. :/
23:00:46 <ehird> :p
23:00:53 <ais523> ehird: well, CADIE seemed to use Myspace
23:00:56 <ais523> or something similar, at least
23:01:00 <ehird> blogspot.
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:10 <mercibeaucul> ehird - true.
23:01:39 <mercibeaucul> I am not a fan of the social networking shit
23:01:43 <ais523> neither am I
23:01:45 <mercibeaucul> I hold it on the same level as television
23:01:47 <ais523> nor are most of the people here, I imagine
23:01:52 <pikhq> Nor I.
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:14 <mercibeaucul> actually, yes, I believe I do too.
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:38 <mercibeaucul> ha
23:02:39 <ais523> some of them can't live without background noise, it seems
23:02:48 <mercibeaucul> yeah, same with lots of young peope
23:02:50 <mercibeaucul> people*
23:02:57 <mercibeaucul> my younger sister sleeps with hannah montana playing every night
23:02:58 <mercibeaucul> :cringe:
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:20 <mercibeaucul> same
23:03:25 <mercibeaucul> I need quiet to concentrate.
23:03:32 <ais523> I really like exams
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:47 <ehird> ever :-)
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:23 <mercibeaucul> hah
23:04:33 <mercibeaucul> definitely. I enjoy math homework, though
23:04:36 <mercibeaucul> as long as it doesn't take too long
23:04:40 <mercibeaucul> and I don't have to do it stoned
23:04:52 <pikhq> "I understand the concept. Now could we move on, I don't want to do busywork."
23:04:59 <ais523> yes, a good opinion
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:20 <ehird> "Far ouuuut."
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:43 <ais523> aargh
23:05:57 <ehird> ais523: eh?
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:14 <ehird> sure you can
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:34 <mercibeaucul> haha
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:47 <ais523> yes
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:10 <pikhq> ehird: Shaddup.
23:07:11 <ais523> and here in #esoteric, we'd make it deliberately stupid
23:07:27 <mercibeaucul> :) all of my best friends are programmers
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:48 <ais523> Velato, and Fugue
23:07:48 <ehird> er, notes.
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:01 <mercibeaucul> ah, I miss early college days :(
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:10 <ehird> yah
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:08:41 <AnMaster> sions.)
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:30 <mercibeaucul> haha, care to elaborate?
23:09:36 <ehird> ais523: looks like a parse tree
23:09:40 <AnMaster> ais523, a bit of LostKingdom
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:11 <mercibeaucul> hahah
23:10:14 <AnMaster> ais523, just a short section.
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 <AnMaster> pikhq, ?
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:19 <mercibeaucul> should I check it out?
23:11:20 <pikhq> AnMaster: I saw "very large" after I started loading the image.
23:11:20 <AnMaster> it helps debugging.
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:40 <AnMaster> :P
23:11:42 <ais523> I've got stuck quite near the start
23:11:43 <AnMaster> and in gimp
23:11:44 <ehird> pikhq: have you upgraded yet?
23:11:47 <mercibeaucul> I've never played a text adventure before
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:00 <mercibeaucul> along with WoW
23:12:01 <ehird> It was written in BF-BASIC, which is a perfectly palatable, if minimalist, basic.
23:12:04 <ehird> *BASIC
23:12:05 <mercibeaucul> so I never played any
23:12:11 <ehird> Really, not much harder than using gcc-bf...
23:12:16 <ais523> well, OK
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:36 <mercibeaucul> has anyone every played "King's Quest" or
23:12:38 <AnMaster> blue are dummy to ensure that the start node is first
23:12:40 <mercibeaucul> Quest for Glory?
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:52 <mercibeaucul> random old games
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:12:56 <mercibeaucul> ehird, those were the best games.
23:13:01 <mercibeaucul> lucasarts..
23:13:02 <mercibeaucul> do I know of that?
23:13:03 <pikhq> ais523: 50 lines of Tcl?
23:13:04 <mercibeaucul> let me look
23:13:11 <pikhq> I've done it.
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:37 <ais523> even so
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:41 <mercibeaucul> I loved Sierra games so much
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:13:56 <pikhq> Lemme see.
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:18 <mercibeaucul> oh really? absolutely loved that game
23:14:20 <mercibeaucul> along with Haunted Mansion
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:14:57 <mercibeaucul> what about crystal caves?
23:15:00 <ais523> for instance: http://golf.shinh.org/reveal.rb?Brainfuck+FIXED/murky-satyr/1218285720&js
23:15:08 <mercibeaucul> this is bringing me back to my childhood.. :(
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:23 <AnMaster> ais523, Colossal Cave?
23:16:28 <ais523> AnMaster: the samee
23:16:30 <ais523> *same
23:16:30 <ehird> AnMaster: that's what ADVENT is.
23:16:33 <AnMaster> right
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:22 <mercibeaucul> are any of you users of Reddit?
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:20 <AnMaster> ehird, true
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:32 <AnMaster> :P
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:00 <ehird> loops
23:20:02 <ais523> so each command that runs takes a length of time proportional to the length of the program
23:20:09 <ehird> ais523: errrrrr
23:20:10 <ais523> loops, you concatenate the loop interior onto the start of the program
23:20:10 <ehird> ais523: s++;
23:20:16 <ais523> ehird: you're thinking C
23:20:16 <AnMaster> argh
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:30 <ehird> copy on write
23:20:31 <ehird> /shrug
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:15 <AnMaster> ehird, true
23:21:39 <mercibeaucul> you two are amusing
23:21:46 <AnMaster> err ok
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:00 <ehird> what did I do?
23:22:01 <mercibeaucul> agreed
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:25 <AnMaster> hah!
23:22:26 <ehird> No!
23:22:28 <ehird> Don't do that!
23:22:35 <ehird> You can't get anything right.
23:22:44 <mercibeaucul> <3
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:13 <AnMaster> FireFly, timing issue...
23:24:19 <ais523> wait, that is a disagreement, isn't it/
23:24:23 <ais523> no, it's a paradox
23:24:27 <FireFly> :3
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:09 <mercibeaucul> o_O
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:19 <FireFly> Kinda
23:25:28 <mercibeaucul> sorry, my mind must be elsewhere.
23:25:33 <GregorR> Or balls ... just in his/her mouth?
23:25:41 <ehird> GregorR: Stay classy.
23:25:56 <mercibeaucul> hmmm, I don't know Gregor
23:26:08 <ehird> That's to be expected.
23:26:13 <ehird> I imagine you don't know most people here.
23:26:22 <mercibeaucul> No, sir.
23:26:30 <GregorR> ehird: Phelatio is totally classy.
23:26:41 <mercibeaucul> agreed, for most occasions
23:26:51 <ehird> Like a royal banquet.
23:27:00 <mercibeaucul> ball banquet.
23:27:03 <GregorR> Parties, weddings, ordering fast food, orgies.
23:27:21 <GregorR> <mercibeaucul> ball banquet. X-D
23:27:26 <ehird> Family reunions.
23:27:34 <mercibeaucul> definitely
23:27:36 <GregorR> ehird: Only in Georgia.
23:27:43 <mercibeaucul> Lan parties
23:28:18 <ehird> Deathbeds
23:28:33 <mercibeaucul> nursing homes ?
23:28:45 <GregorR> So anyway, hi mercibeaucul, a good first impression I'm sure :P
23:28:56 <mercibeaucul> Ha, wonderful. Good evening, Gregor
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:29:37 <mercibeaucul> hmmm
23:29:51 <mercibeaucul> curiosity, conversation,
23:29:54 <mercibeaucul> boredom with #askreddit
23:29:59 <mercibeaucul> shh don't tell them
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:38 <mercibeaucul> yes, that too
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:30:56 <AnMaster> heh
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:11 <ehird> Oh.
23:31:12 <ehird> Nevermind.
23:31:16 <ehird> The one we _don't_ do.
23:31:16 <ais523> no, that's something else entirely
23:31:25 <ais523> and not on-topic here
23:31:25 <ehird> ais523: Shush.
23:31:25 <AnMaster> ehird, ....
23:31:32 <AnMaster> ais523, exactly
23:31:38 <mercibeaucul> secrets don't make friends >:O
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:31:57 <AnMaster> nor would I
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:39 <ais523> could be, certainly
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:37 <GregorR> ehird: WHAT NOW
23:34:43 <ais523> GregorR: you machine-generated that!
23:34:46 <ais523> that's cheating!
23:34:49 <mercibeaucul> ah, the Turing machine
23:34:50 <GregorR> ais523: Yes. And?
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:35:58 <AnMaster> (brainfuck is TC though)
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:25 <AnMaster> ehird, that is a glob
23:36:32 <ehird> Brainfuddleck?
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 <ehird> mercibeaucul: No.
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:03 <ehird> modulo spelling.
23:37:06 <ais523> mercibeaucul: not really; it's a sort of simple system that can be used to modern any copmuter
23:37:08 <ais523> *model
23:37:12 <mercibeaucul> ah, I see.
23:37:14 -!- pikhq has set topic: Also Haskell. | Don't go to http://tunes.org/~nef/logs/esoteric/?C=N;O=D.
23:37:16 <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:35 <GregorR> ehird: :P
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:37:56 * AnMaster glares at pikhq
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:09 <mercibeaucul> or am I off again?
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:16 <ehird> JUSTIFICATION
23:38:19 <ehird> mercibeaucul: he also did the turing test
23:38:26 <ehird> for AI
23:38:26 <AnMaster> ais523, I think fizzie might not
23:38:30 <AnMaster> but not sure
23:38:38 <Warrigal> The AP Computer Science test was in Java.
23:38:39 <mercibeaucul> right, ok.
23:38:40 <ais523> and my opinion of Java isn't as low as some people's
23:38:46 <GregorR> Warrigal: I took both :P
23:38:55 <ais523> grr... surely there's /some/ language we all hate
23:38:55 <AnMaster> COBOL anyone?
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:00 <AnMaster> ais523, COBOL
23:39:04 <Warrigal> Ah.
23:39:07 <ehird> COBOL... Grace Hopper was cool.
23:39:19 <AnMaster> ehird, grace hopper?
23:39:25 <ehird> Grace Hopper
23:39:26 <ehird> err
23:39:28 <ehird> http://en.wikipedia.org/wiki/Grace_Hopper
23:39:34 <ehird> Invented COBOL.
23:39:36 <ehird> Early programmer.
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:14 <ehird> hi oerjan
23:41:16 <ehird> we've been defending cobol
23:41:21 <oerjan> hi ehird
23:41:28 <AnMaster> oerjan, hiwc!
23:41:30 <mercibeaucul> that's awesome that that specific quote is attributed to her
23:41:31 * AnMaster runs
23:41:32 <Warrigal> She didn't invent the term "computer bug".
23:41:34 <pikhq> Defending COBOL?
23:41:35 <mercibeaucul> sad that I didn't knwo that.
23:41:38 <ais523> oerjan's our resident mathematician
23:41:43 <ehird> Warrigal: You are wrong.
23:41:44 <mercibeaucul> also
23:41:44 * pikhq shudders
23:41:46 <mercibeaucul> "A ship in a harbor is safe, but that is not what a ship is built for."
23:41:52 <mercibeaucul> that's a good one, as well
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:52 <Warrigal> ehird: source?
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:13 <ehird> I rest my case.
23:44:30 <AnMaster> ehird, there is no reference there on that page?
23:44:30 <Warrigal> Hmm.
23:44:36 <ehird> AnMaster: Yes there is.
23:44:42 <AnMaster> oh right
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:44:56 <AnMaster> on wikimedia
23:45:06 <ehird> ...what?
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:02 <AnMaster> might have been better
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:33 <AnMaster> I too rest my case
23:46:41 <ehird> ......what?
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 <ehird> ...yes, and?
23:46:56 <AnMaster> there is no reference list at the bottom there
23:46:57 <AnMaster> duh
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:12 <ehird> system.
23:47:13 <AnMaster> ehird, they == wikiquote
23:47:17 <ehird> Not all wikimedia wikis.
23:47:17 <AnMaster> ehird, exactly
23:47:18 <ehird> Oh.
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:54:55 <AnMaster> ais523, and what was that
23:54:57 <AnMaster> ah
23:55:02 <ais523> because databases are separate from programs nowadays
23:55:04 <pikhq> Indeed.
23:55:16 <pikhq> It's been misused a lot.
23:55:25 <ais523> what, SQL or COBOL?
23:55:27 <ais523> or both?
23:55:34 <AnMaster> ais523, btw you said you compiled ick with gcc-bf?
23:55:37 <pikhq> COBOL.
23:55:41 <pikhq> SQL less so.
23:55:44 <AnMaster> ais523, or did I misremember
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:21 <ais523> let me look
23:56:22 <AnMaster> ais523, and how large was the rel?
23:56:24 <AnMaster> rle*
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:33 <ehird> use clang
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:57:45 <AnMaster> $ du -sh etc/hworld1.bfrle.c
23:57:45 <AnMaster> 898K etc/hworld1.bfrle.c
23:57:55 <pikhq> AnMaster: tcc.
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:11 <AnMaster> pikhq, too much work
23:58:24 <pikhq> ... ./configure&&make&&make install?
23:58:32 <AnMaster> ais523, you said it used write() iirc?
23:58:40 <ais523> no, not even that
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:54 <ais523> bye mercibeaucul
23:58:57 <pikhq> mercibeaucul: See ya.
23:59:05 <AnMaster> mercibeaucul, cya
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:24 <pikhq> GregorR: She.
23:59:32 <GregorR> Now that she's gone, BACK TO THE ORGY
23:59:43 <pikhq> XD
23:59:47 <ais523> stop it, not you too!
23:59:48 <AnMaster> pikhq, anyway, that is an ~91400 lines long main()
←2009-06-25 2009-06-26 2009-06-27→ ↑2009 ↑all