00:01:44 -!- augur has quit (Remote host closed the connection).
00:19:58 -!- GreaseMonkey has quit (Quit: The Other Game).
00:25:25 <ais523> <Slashdot> We are helping a Slashdot reader conduct academic research by experimenting with a new feature for a handful of stories. Next to every comment, anyone can restate a point that they think the commenter is making. The goal is to encourage listening and to highlight interesting points.
00:25:31 <ais523> this is going to end in disaster :)
00:27:04 <oerjan> I believe ais523 has a bad feeling about this feature.
00:27:39 -!- nooga has quit (Ping timeout: 260 seconds).
00:28:07 <ais523> Does oerjan's summarry... elegantly distill meaning? uncover a good point? clarify the message? provoke unnecessarily? umm, it's not a summary
00:30:55 <oerjan> i see ais523 is missing the option of "make a cheap joke".
00:31:13 <ais523> oerjan: that was a quote from Slashdot's summary thing
00:31:17 <ais523> so blame Slashdot for that
00:31:30 <ais523> those are the options you can vote on summaries with
00:33:27 <ais523> wait, you can do summaries of the summaries with your votes
00:33:35 <ais523> but there doesn't seem to be any way to vote on /those/
00:33:40 * ais523 was hoping for an infinite regress
00:36:25 <oerjan> > fix (fun "vote on") :: Expr
00:36:25 <lambdabot> vote on (vote on (vote on (vote on (vote on (vote on (vote on (vote on (vot...
00:37:51 <oerjan> > fix (fun "summarized in") :: Expr
00:37:52 <lambdabot> summarized in (summarized in (summarized in (summarized in (summarized in (...
00:39:25 <lambdabot> forall a. (SimpleReflect.FromExpr a) => String -> a
00:39:43 <lambdabot> forall a. (SimpleReflect.FromExpr a) => a
00:39:59 <oerjan> basically, f = fun "f"
00:40:27 <oerjan> > foldr (.) id [f,f,f] x :: Expr
00:41:10 <oerjan> Expr is a more specific type, an instance of FromExpr
00:41:54 -!- ais523 has quit (Remote host closed the connection).
00:41:57 <oerjan> and then there is an instance (FromExpr a, FromExpr b) => FromExpr (a -> b) or so which is used when you apply f as a function.
00:44:19 <lambdabot> f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (...
00:45:02 <lambdabot> Ambiguous type variable `a' in the constraints:
00:45:06 <oerjan> > foldr ($) x [f,f,f] -- shorter
00:45:06 <lambdabot> f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (...
00:47:17 <monqy> "Force something to be an expression."
00:47:38 <oerjan> useful for that, maybe
00:47:57 <lambdabot> Ambiguous type variable `a' in the constraints:
00:48:18 <oerjan> or more usefully, in places where putting :: Expr isn't easy
00:48:33 <lambdabot> f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (...
00:48:34 -!- invariable has changed nick to variablre.
00:48:35 -!- variablre has changed nick to variable.
00:49:04 <oerjan> > fix (join $ expr . f)
00:49:04 <lambdabot> Couldn't match expected type `m a'
00:49:05 <lambdabot> against inferred type `SimpleRef...
00:49:19 <lambdabot> f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (...
00:49:25 -!- augur has joined.
00:49:34 <oerjan> > iterate (expr . join f) x !! 3
00:49:36 <lambdabot> f (f (f x x) (f x x)) (f (f x x) (f x x))
00:50:02 <oerjan> i guess the expr . isn't really needed there
00:50:58 -!- augur has quit (Remote host closed the connection).
00:51:28 <oerjan> > f . expr . g . expr $ h x :: Expr
00:59:59 -!- MSleep has joined.
01:01:57 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946...
01:02:22 -!- MDude has quit (Ping timeout: 260 seconds).
01:02:23 <lambdabot> [x,f x y,f (f x y) x,f (f (f x y) x) (f x y),f (f (f (f x y) x) (f x y)) (f...
01:03:09 <oerjan> > fix(scanl(flip f)x.(y:))
01:03:11 <lambdabot> [x,f y x,f x (f y x),f (f y x) (f x (f y x)),f (f x (f y x)) (f (f y x) (f ...
01:03:39 <oerjan> > fix(scanl(flip f)y.(x:))
01:03:40 <lambdabot> [y,f x y,f y (f x y),f (f x y) (f y (f x y)),f (f y (f x y)) (f (f x y) (f ...
01:05:14 -!- augur has joined.
01:16:57 -!- calamari has left ("Leaving").
01:17:07 -!- itidus20 has joined.
01:30:44 -!- kmc has quit (Quit: Leaving).
01:51:02 -!- evincar has joined.
01:51:14 -!- tswett has quit (Changing host).
01:51:14 -!- tswett has joined.
01:51:47 <evincar> I've had an excellent but also terrible idea.
01:52:01 <evincar> Well, I had it in the past, but it's resurfaced with further development.
01:52:34 <evincar> I know I'm not well-liked in here, so only if anyone cares will I go on.
01:57:03 <oerjan> it might be more productive to wait until a time when people here are active.
01:58:17 <evincar> That's true. Although people are very industrious about logreading in here.
01:58:30 <evincar> And I know elliott expressed interest in this concept once before.
01:58:56 <monqy> is it an interesting concept
02:02:13 <evincar> monqy: A long time ago I had the notion that functions are like verbs and nouns are like objects...
02:02:22 <evincar> ...and you can do computation with both of them, so why not also with adjectives/sets?
02:02:54 <evincar> So, in such a language, all terms denote sets/types, and your basic operation is something like type conversion.
02:03:44 <evincar> So for example "2" would denote "the set of all things of which there are exactly two".
02:04:39 <evincar> "+" is "the set of all operations which return the sum of their operands"
02:04:48 <evincar> Of which there are several, and it's the compiler's job to choose which.
02:05:23 <cheater> so how did you arrive at this idea?
02:05:53 <evincar> Initially, out of the blue.
02:05:58 <evincar> It resurfaced because I was reading this: http://www.panix.com/~tehom/allnoun/allnoun8.faq
02:06:09 <cheater> you know what, blue is not my color
02:06:54 <monqy> arrived out of the red and green
02:07:00 <evincar> Of course, that describes a rather different language.
02:07:27 <evincar> It relates agents to roles to implicitly express relationships.
02:07:55 <evincar> Whereas I'm thinking of merely sequencing roles.
02:08:06 <cheater> that idea "of yours" is mine evincar. i called it "descriptive" or "declarative" languages and told you about it. and in fact you didn't get it at first.
02:08:06 <monqy> "sequencing roles"?
02:08:44 <cheater> which indicates to me that i should probably make a blog post about the idea or something.
02:08:47 -!- kmc has joined.
02:09:15 <evincar> cheater: Was it you I had this discussion with? I think we independently arrived at related things back then and then just ranted at one another.
02:09:39 <evincar> But a blog post would be good.
02:09:45 <monqy> I must not have been around back then
02:10:17 <evincar> It was...quite a while ago I should think, but I don't recall exactly when.
02:10:28 <evincar> I guess I could laboriously logsearch.
02:11:13 <cheater> search for "descriptive" or "declarative"
02:11:26 <HackEgo> 2007-08-07.txt:04:58:15: <Sukoshi`> Yet another Descriptive Idea from Figs.
02:11:34 <cheater> we have also had a car analogy with ferrari cars.
02:11:40 <HackEgo> 2007-06-07.txt:07:21:11: * pikhq really goes into uncontrollable laughter when comparing the capabilities of those POS machines and a UNIX box. . . (fine, so we're comparing tricycles to Ferraris. . . Still.)
02:11:47 <monqy> `pastelogs ferrari
02:11:51 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.5544
02:12:23 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.3244
02:12:55 <oerjan> `log <cheater>.*?descriptive
02:12:59 <HackEgo> 2011-09-21.txt:02:12:55: <oerjan> `log <cheater>.*?descriptive
02:13:02 <oerjan> `log <cheater>.*?descriptive
02:13:06 <HackEgo> 2011-09-21.txt:02:11:13: <cheater> search for "descriptive" or "declarative"
02:13:17 <oerjan> NOT IMMENSELY ENCOURAGING
02:13:32 <oerjan> `log <cheater>.*?declarative
02:13:35 <HackEgo> 2011-09-21.txt:02:13:32: <oerjan> `log <cheater>.*?declarative
02:13:38 <oerjan> `log <cheater>.*?declarative
02:13:42 <HackEgo> 2011-09-21.txt:02:13:32: <oerjan> `log <cheater>.*?declarative
02:13:49 <oerjan> `log <cheater_>.*?declarative
02:13:51 <HackEgo> 2011-08-09.txt:19:30:25: <cheater_> NihilistDandy, i like to differentiate between "declarative" and "constructive"
02:14:00 <monqy> `pastelogs <cheater.*declarative
02:14:04 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.17723
02:14:25 <monqy> `pastelogs <cheater.*descriptive
02:14:29 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.27718
02:14:41 <cheater> `pastelogs cheater.*evincar
02:14:45 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.19057
02:15:02 <monqy> 2010-11-18.txt:09:25:39: <cheater99> i hate you and everything you stand for, evincar
02:15:34 <evincar> Hey, I remember that video.
02:16:17 <evincar> I might have gone by evincarofautumn? Possibly? Or eoa?
02:17:19 <evincar> Except for possible nick length limits.
02:17:57 <HackEgo> 2011-09-21.txt:02:17:53: <evincar> `log <cheater.*adjective
02:18:23 <oerjan> `log ^<cheater_>.*?declarative
02:18:40 <cheater> what's wrong with HackEgo?
02:18:40 <evincar> He was cheater99 before...
02:18:43 <oerjan> `log ^<cheater.*adjective
02:18:44 <monqy> `pastelogs evincar.*adjective
02:18:47 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.30696
02:19:08 <evincar> What the hell did I call myself back then?
02:19:33 <HackEgo> 2007-03-27.txt:16:17:31: <Figs> shortest combinations to get to n
02:20:10 <oerjan> it just doesn't start with that...
02:20:36 <monqy> it starts with the hour
02:20:38 <HackEgo> 2011-02-11.txt:00:03:45: <elliott> I want to ask you not to think a "timer snob" of Korean fans as "just" a equipment to prevent "fan death". ― 韓斌/Yes0song (談笑 筆跡 다지모) 07:16, 19 February 2008 (UTC)]]
02:20:45 <monqy> the date is part of the filename
02:21:56 <cheater> either way the idea was that in constructive languages (what you know as imperative) programs are built out of verbs, nouns, and adjectives. in declarative languages (what you know as functional) programs are built out of nouns and adjectives. the idea for descriptive languages was to use adjectives only, and use predicate composition to specify concrete concepts.
02:22:04 <oerjan> `log [<]cheater.*adjective
02:22:07 <HackEgo> 2011-09-21.txt:02:17:53: <evincar> `log <cheater.*adjective
02:22:18 <evincar> Alright, so we're roughly on the same page.
02:22:25 <cheater> an underspecified concept can be seen as a curried function.
02:22:27 <oerjan> `log : [<]cheater.*adjective
02:22:31 <HackEgo> 2010-09-22.txt:22:59:12: <cheater99> why is there no adjective form of holland?
02:22:46 <cheater> is there not? it's hollandaise, isn't it?
02:22:47 <evincar> I mean, in a concatenative language all terms denote functions, and the basic operation is function composition.
02:23:19 <cheater> i think composition in this case looks different.
02:23:21 <evincar> So it's not such a stretch to say all terms are nouns denoting sets (I don't think of adjectives as fundamental really).
02:23:31 <evincar> Or rather, they're interchangeable.
02:23:45 <cheater> it is just an intersection of sets, not a composition of functions as assignments from one set to another.
02:24:14 <evincar> I don't know if intersection works exactly.
02:24:37 <evincar> Can you give a more concrete example?
02:24:40 <oerjan> CakeProphet: at this point i was just experimenting with how to avoid getting the search itself back as a hit
02:25:08 <cheater> when you are trying to specify a certain person you start naming specific descriptive adjectives
02:25:18 <evincar> I feel like that's...just Prolog.
02:25:24 <cheater> each such adjective defines a set of people
02:25:24 <evincar> And I'm going for something different.
02:25:51 <cheater> but those sets intersect to a smaller and smaller subset until you have a singleton set
02:26:09 <evincar> Which is roughly equivalent to a normal form.
02:26:27 <evincar> Something you can use as a value proper.
02:26:37 <evincar> Rather than, like, a thunk.
02:26:49 <cheater> i don't see the distinction as important
02:26:51 <evincar> It's a stretch of an analogy.
02:26:59 <cheater> underspecified functions are more important
02:27:32 <cheater> it's just that you bottom out when you finish your specification and could start overspecifying or specifying contradictions
02:29:26 <cheater> i think you can make very good optimizations to such a language, given a strong enough topology for the space you are working in
02:30:14 <cheater> it's a topologist's language
02:30:20 <evincar> I guess I'm leaning toward something more general.
02:30:25 <evincar> And less like a logic language.
02:31:26 <cheater> what are you leaning towards?
02:32:07 -!- sebbu2 has joined.
02:32:07 -!- sebbu2 has quit (Changing host).
02:32:07 -!- sebbu2 has joined.
02:32:29 -!- sebbu has quit (Ping timeout: 260 seconds).
02:33:55 <evincar> I guess like I said before (then got sidetracked from) the core concept would be "everything is a type" and type conversion would be the basic operation.
02:34:15 <evincar> You'd be doing graph-reduction, internally.
02:34:21 <evincar> Like a functional language.
02:34:28 <pikhq_> C also sucks. Even as a systems language.
02:35:07 <evincar> Then use the lesser of two evils, obviously.
02:35:42 <pikhq_> But jeeze, it is a freaking *ordeal* just to get a freaking binary into RAM on x86.
02:42:32 -!- hagb4rd has joined.
02:44:51 <evincar> Hmm. If you allow types to take parameters, you just get regular old dependent typing.
02:45:10 <evincar> But there's not necessarily any provision in this system for parameters.
02:45:26 <evincar> But there's no distinction between values and types.
02:48:10 <evincar> I guess...if "+" is a set of operations and "x" and "y" are singleton sets, then "m + n" really denotes a conversion from the type "m x n" to the type "m + n".
02:48:20 <evincar> It's only reducible to the arithmetic result incidentally.
02:48:43 <evincar> Hurgh this is wrong and bad.
02:48:55 <evincar> I feel like there's something to it though.
02:49:25 <evincar> Ugh, s/"x" and "y"/"m" and "n"/.
02:56:55 * pikhq_ should not be NIHing a systems language
02:57:22 <monqy> bad nih is best nih
02:59:52 <HackEgo> 172) <AnMaster> cpressey, oh go to zzo's website. He is NIH <Phantom_Hoover> AnMaster, really? I was strongly under the impression that zzo was invented here. \ 474) <NihilistDandy> elliott: His mouse obeys the law of the excluded middle :/ \ 506) <NihilistDandy> MY CONTINUITY <NihilistDandy> MY FANFICTION <NihilistDandy>
03:00:36 -!- azaq23 has quit (Quit: Leaving.).
03:00:53 <evincar> Not in Here; Not Invented Here; -ilistDandy.
03:02:33 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
03:02:35 <lambdabot> http://code.haskell.org/lambdabot/COMMANDS
03:03:11 <lambdabot> Plugin `compose' failed with: Unknown command: ""
03:03:55 <pikhq_> I can't even get myself to want to touch this any more, IT'S ALL BAD
03:04:06 * oerjan recommends @@ instead of @.
03:07:10 <evincar> def (length cons x (xs)) (+ 1 (length xs))
03:07:32 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
03:07:35 <lambdabot> @ executes plugin invocations in its arguments, parentheses can be used.
03:07:35 <lambdabot> The commands are right associative.
03:07:35 <lambdabot> is the same as: @ (@pl (@undo code))
03:08:00 <evincar> Then..."def x y" and "+ x y" are assumed to be reducible, and everything else is just pattern matching.
03:08:24 <evincar> But you could do interesting things with relations.
03:08:38 <evincar> Because e.g. "def x y" is considered a true proposition.
03:09:51 <CakeProphet> obviously we now need to make lambdabot turing complete.
03:10:04 <oerjan> Madoka-Kaname: you're not supposed to need nested @@'s
03:10:53 <CakeProphet> can we define our own commands or do we have to hack lambdabot?
03:11:01 <CakeProphet> I suppose adding S and K would be sufficient.
03:11:36 <oerjan> there are places to add information, but not new commands afaik
03:11:55 <lambdabot> [1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,48...
03:12:12 <lambdabot> [2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,26...
03:12:40 <lambdabot> [0,1,8,81,1024,15625,279936,5764801,134217728,3486784401,100000000000,31384...
03:12:46 <lambdabot> [2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,26...
03:13:14 <CakeProphet> so does having a finite output change the turing completeness of Haskell?
03:13:23 <oerjan> > zipWith (^) [0..] [1..]
03:13:24 <lambdabot> [0,1,8,81,1024,15625,279936,5764801,134217728,3486784401,100000000000,31384...
03:13:26 <CakeProphet> since the evaluation semantics are based on need..
03:14:21 <CakeProphet> so the fact that there's a set of problems it won't fully compute due to the finite output size does not change turing completeness?
03:14:22 <oerjan> as long as it is unbounded
03:14:48 <oerjan> CakeProphet: a _turing machine_ does not have infinite output
03:15:17 <oerjan> also, it is customary to consider decision machines which only output yes or no as sufficient
03:16:08 <CakeProphet> I realize output in the typical sense is not considered in turing completeness
03:16:38 <CakeProphet> but since output seems to directly affect Haskell's evaluation semantics I thought perhaps this an exception where it could be considered.
03:17:55 <oerjan> you only need String -> String functions, or similar, to show Haskell TC
03:18:04 <oerjan> and the strings can be finite
03:18:26 <CakeProphet> so I guess evaluation strategy doesn't either?
03:18:39 <oerjan> well it might, if there was no other way of defining a result
03:18:41 <CakeProphet> because in circumstances without IO Haskell effectively evaluates nothing.
03:20:58 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\"
03:21:07 <Madoka-Kaname> @yhjulwwiefzojcbxybbruweejw yhjulwwiefzojcbxybbruweejw
03:21:12 <Patashu> so what does this thing do
03:21:16 <oerjan> i don't think it looks at its argument
03:21:25 <oerjan> it's just one of the quote databases
03:21:50 <oerjan> (now exactly _why_ those quotes are selected - well that would be telling.)
03:22:26 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
03:22:30 <Patashu> @yhjulwwiefzojcbxybbruweejw
03:22:30 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\"
03:22:32 <Patashu> @yhjulwwiefzojcbxybbruweejw
03:22:58 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\"
03:23:03 <Patashu> @yhjulwwiefzojcbxybbruweejw V
03:23:04 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\"
03:24:10 <monqy> > let v = show v in v
03:24:11 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\...
03:24:19 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\...
03:24:27 <Patashu> ok, that explains that bit
03:25:08 <Patashu> > show.show.show.show.show 3
03:25:10 <lambdabot> ["\"\\\"\\\\\\\"'3'\\\\\\\"\\\"\""]
03:25:27 <lambdabot> <no location info>: parse error on input `+'
03:25:31 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\...
03:25:34 <lambdabot> "\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]]^^__``aab...
03:25:46 <lambdabot> "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]]^^__``aabbccd...
03:25:52 <lambdabot> "D\136\184bfl\184bph\196\204\216\184bph\196\224\208\184brl\184d`h\184dbl\18...
03:28:01 <oerjan> > let v = show $ map succ v in v
03:28:02 <lambdabot> "\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]]^^__``aab...
03:28:04 <lambdabot> "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]]^^__``aabbccd...
03:28:24 <oerjan> but why does the quote one stop after , ?
03:28:53 -!- augur has quit (Remote host closed the connection).
03:29:44 -!- itidus20 has left ("Leaving").
03:30:16 <oerjan> > let v = show . take 11 $ map succ v in v
03:30:23 <oerjan> > let v = show . take 10 $ map succ v in v
03:30:45 <oerjan> still, a little unsatisfactory
03:31:29 <lambdabot> Overlapping instances for GHC.Show.Show (a -> GHC.Base.String)
03:32:02 -!- evincar has quit (Quit: Bah. Homework time.).
03:32:49 <oerjan> it's caleskell . which does it
03:33:35 <lambdabot> No instance for (GHC.Show.Show (f GHC.Base.String))
03:34:11 <oerjan> > fix (show.) :: [String]
03:35:09 <lambdabot> Occurs check: cannot construct the infinite type: a = f a
03:35:15 <oerjan> <CakeProphet> man that's so useful <-- clearly the identity plugin is intended for use in plugin transformers
03:35:18 <lambdabot> Occurs check: cannot construct the infinite type: a = f a
03:37:27 <CakeProphet> oerjan: if only there were plugin transformers
03:37:46 -!- augur has joined.
03:38:11 <lambdabot> <no location info>: not an expression: `'
03:39:48 <monqy> try parentheses??/
03:40:24 <lambdabot> @ executes plugin invocations in its arguments, parentheses can be used.
03:40:24 <lambdabot> The commands are right associative.
03:40:24 <lambdabot> is the same as: @ (@pl (@undo code))
03:40:41 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m a -> (a -> m b) -> m b
03:40:50 <oerjan> i don't think it's @@ that has problems
03:41:38 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m a -> (a -> m b) -> m b
03:41:55 <oerjan> @djinn forall m a b. (Monad m) => m a -> (a -> m b) -> m
03:42:04 <oerjan> @djinn forall m a b. (Monad m) => m a -> (a -> m b) -> m b
03:42:43 <monqy> @@'s fault for not providing a good error message
03:42:44 <oerjan> @djinn forall (m :: * -> *) a b. (Monad m) => m a -> (a -> m b) -> m b
03:42:56 <oerjan> monqy: it was @djinn's error message
03:42:57 <monqy> oh djinn's fault maybe
03:43:07 <monqy> djinn;s fault for not providing a good error mesasge
03:43:07 <Madoka-Kaname> @@ (@djinn (@exec text $ head $ tail $ splitOn "." (@type (.))))
03:43:09 <lambdabot> Plugin `compose' failed with: Unknown command: "exec"
03:43:17 <monqy> and @@'s fault for not saying it was djinn;s fault
03:43:41 <Madoka-Kaname> @@ (@djinn (@run text $ head $ tail $ splitOn "." (@type (.))))
03:43:54 <Madoka-Kaname> @@ (@djinn (@run text $ head $ tail $ splitOn "." (@type \(.\))))
03:43:59 <Madoka-Kaname> @@ (@djinn (@run text $ head $ tail $ splitOn "." (@type id)))
03:44:11 <CakeProphet> @@ @pl @unpl @pl @djinn @pl @djinn @type id
03:44:40 <oerjan> Madoka-Kaname: i'd suggest looking at what @djinn's argument actually _is_
03:44:43 <Madoka-Kaname> @run text $ head $ tail $ splitOn "." "forall a. a -> a"
03:44:48 <CakeProphet> @@ @pl @unpl @type @pl @djinn @type @pl @djinn @type id
03:46:24 <Madoka-Kaname> @run text $ head $ tail $ dropUntil (!=".") "forall a. a -> a"
03:46:25 <lambdabot> Not in scope: `dropUntil'Not in scope: `!='
03:46:46 <Madoka-Kaname> @run text $ head $ tail $ dropUntil (/=".") "forall a. a -> a"
03:48:02 <CakeProphet> @@ @pl @unpl @pl @djinn @type let (@pl @djinn @type id) in id
03:48:33 <Madoka-Kaname> @@ @djinn @run text $ head $ tail $ dropWhile (/=".") @type id
03:48:45 <oerjan> sadly too many lambdabot commands don't give output formatted for chaining
03:48:50 <Madoka-Kaname> @@ @djinn @run text . head . tail . dropWhile (/=".") "@type id"
03:49:07 <lambdabot> There's Couldn't match expected type `GHC.Types.Int'
03:49:59 <Madoka-Kaname> @@ @djinn @run text $ "(b -> a -> c) -> a -> b -> c"
03:51:50 <oerjan> @@ @run text $ " (@type id) "
03:52:06 <CakeProphet> @@ @vixen @type (,,,,,,,,,,)
03:52:06 <lambdabot> Plugin `compose' failed with: Unknown command: "vixen"
03:52:27 <lambdabot> I brought myself down. I impeached myself by resigning.
03:52:30 <oerjan> @@ @run text @show @type id
03:53:09 <lambdabot> The second point is that coming out--coming back and saying that black Americans aren't as good as black Africans--most of them , basically, are just out of the trees. Now, let's face it, they are.
03:53:28 <Madoka-Kaname> @@ @djinn @run text $ dropWhile(==".") $ dropWhile(/=".") $ @show @type id
03:53:39 <Madoka-Kaname> @@ @djinn @run text $ dropWhile (==".") $ dropWhile (/=".") @show @type id
03:53:48 <Madoka-Kaname> @@ @djinn @run text $ dropWhile (==".") $ dropWhile (/=".") ". a -> a"
03:54:08 <Madoka-Kaname> @@ @djinn (@run text $ dropWhile (==".") $ dropWhile (/=".") @show @type id)
03:54:19 <Madoka-Kaname> @@ @djinn (@run text $ dropWhile ( == "." ) $ dropWhile ( /= "." ) @show @type id)
03:54:23 <lambdabot> Plugin `compose' failed with: Unknown command: "vixen-on"
03:56:58 <monqy> wheres thje list help
03:59:38 -!- pumpkin has joined.
04:04:30 -!- oerjan has quit (*.net *.split).
04:04:30 -!- Zuu has quit (*.net *.split).
04:04:31 -!- fungot has quit (*.net *.split).
04:04:31 -!- qnix has quit (*.net *.split).
04:04:32 -!- copumpkin has quit (*.net *.split).
04:04:33 -!- cheater2 has quit (*.net *.split).
04:04:33 -!- aloril has quit (*.net *.split).
04:04:34 -!- yiyus has quit (*.net *.split).
04:04:35 -!- Deewiant_ has quit (*.net *.split).
04:04:36 -!- coppro has quit (*.net *.split).
04:04:36 -!- EgoBot has quit (*.net *.split).
04:04:36 -!- quintopia has quit (*.net *.split).
04:04:38 -!- augur has quit (*.net *.split).
04:04:38 -!- Patashu has quit (*.net *.split).
04:04:38 -!- BeholdMyGlory has quit (*.net *.split).
04:04:39 -!- CakeProphet has quit (*.net *.split).
04:04:39 -!- atehwa_ has quit (*.net *.split).
04:04:41 -!- fizzie has quit (*.net *.split).
04:04:41 -!- chickenzilla has quit (*.net *.split).
04:04:42 -!- Wamanuz2 has quit (*.net *.split).
04:04:44 -!- lambdabot has quit (*.net *.split).
04:04:44 -!- twice11 has quit (*.net *.split).
04:04:44 -!- hagb4rd has quit (*.net *.split).
04:04:44 -!- sebbu2 has quit (*.net *.split).
04:04:44 -!- kmc has quit (*.net *.split).
04:04:45 -!- MSleep has quit (*.net *.split).
04:04:45 -!- Madoka-Kaname has quit (*.net *.split).
04:04:46 -!- Nisstyre has quit (*.net *.split).
04:04:46 -!- DH____ has quit (*.net *.split).
04:04:47 -!- lifthrasiir has quit (*.net *.split).
04:04:47 -!- Gregor has quit (*.net *.split).
04:14:12 -!- Madoka-Kaname has joined.
04:14:31 -!- CakeProphet has joined.
04:14:31 -!- CakeProphet has quit (Changing host).
04:14:31 -!- CakeProphet has joined.
04:15:04 -!- pumpkin has changed nick to copumpkin.
04:35:28 <CakeProphet> I try to do something incredibly simple and I get garbage output.
04:35:37 <monqy> like what / like what
04:36:34 <CakeProphet> hold on emacs is a bitch to copypaste from.
04:37:14 <CakeProphet> basically just ^@^@^@^@^@^@^@^@^@ ad infinitum
04:37:26 <CakeProphet> I'm trying to iterate over a linked list and print each element for my lab...
04:39:17 <CakeProphet> for(iter=strList2.end(); iter != start; iter--) {
04:40:15 <CakeProphet> start = strList2.begin(); start++; start++;
04:40:15 <monqy> and what's the body
04:40:45 <monqy> how long is strList2
04:41:22 <monqy> could something be wrong with the iterator?
04:41:31 <monqy> I dunno how C++ iterators work
04:42:10 <CakeProphet> basically an iterator is a kind of pointer-like object.
04:42:36 <CakeProphet> ++ increments its position and -- decrements. * accesses the element it points to, and == and != check to see if iterators point to the same thing.
04:45:04 -!- invariable has joined.
04:45:27 <CakeProphet> yeah I have no clue this code looks fine to me.
04:46:13 -!- variable has quit (Ping timeout: 252 seconds).
04:46:31 <CakeProphet> I think I need to start with --strList2.end()
04:47:12 <CakeProphet> because strList2.end() points to the location after the list
04:47:48 <CakeProphet> would probably be easier to use rbegin to do reverse iteration.
04:48:11 <CakeProphet> but it's one of those labs where they supply some of the code for you, and they declared the iterators are iterator and not reverse_iterator
04:50:16 <CakeProphet> yeah iterators seem like one of the most annoying ways to iterator.
04:50:48 <CakeProphet> I'd rather use an integer index, honestly.
04:58:30 <CakeProphet> but with C++ it's almost exactly the same as using an index, except now more verbose
04:59:37 <copumpkin> you don't get off-by-one errors for linear traversals, and it's likely more efficient on structures that don't support indexing easily
05:01:34 <CakeProphet> most things with inefficient indexing in stl doesn't have the option to be indexed.
05:06:53 -!- evincar has joined.
05:08:07 <pikhq_> It's at least vaguely tolerable with C++0x, though. for(int &x : any_damned_thing_containing_ints) { ... }
05:08:30 <pikhq_> Yes, that does precisely what you think.
05:09:00 <evincar> CakeProphet: You can use the reverse_iterator adaptor to make a reverse iterator out of your forward iterator. :P
05:09:22 <evincar> Assuming it's not actually a "forward iterator" but a bidirectional one.
05:09:39 <CakeProphet> pikhq_: that's not bad. how does it determine the any-damned-thing-containing-ints part?
05:09:41 <evincar> Oh. Probably by reimplementing it.
05:09:53 <evincar> Reimplementing reverse_iterator, that is.
05:10:34 <evincar> I know, I was just correcting myself to avoid getting flamed for saying something that was slightly off.
05:11:47 <evincar> ...depending on what about, o'course.
05:12:27 <pikhq_> CakeProphet: for(foo &x : bar) is syntactic sugar for (if bar's a foo[]) for(int i = 0; i < sizeof(bar); i++) {foo &x=bar[i]; ...} or (if bar's an object with begin() and end()) foo(auto i = bar.begin(); i != bar.end(); ++i) {foo &x=*i; ... }
05:13:02 <evincar> sizeof(bar)/sizeof(*bar), actually...
05:13:31 <evincar> C++0x: solving problems with C++ that should have been solved ages ago.
05:13:38 <pikhq_> CakeProphet: Pretty much.
05:13:40 <evincar> Yeah, auto is for type inference in declarations.
05:13:54 <evincar> decltype is for type inference...elsewhere.
05:14:00 <evincar> And then there are the ugly-ass lambdas.
05:14:32 <evincar> Also, fucking rvalue references. Solving a problem that should never have been there in the first place.
05:14:35 <pikhq_> The lambdas aren't that bad syntactically. Though conceptually they're utterly awful, due to C++ *not being friggin' garbage collected*.
05:14:51 <evincar> That's ostensibly what shared_ptr and friends are about.
05:15:03 <evincar> See, every time you say something awful about C++...
05:15:12 <evincar> ...I can just respond like the standards committee does.
05:15:20 <evincar> With libraries and awful hacks and stuff.
05:15:27 <pikhq_> Reference counting: because everything bad about manual memory allocation plus everything bad about automatic memory allocation equals "good".
05:16:35 <evincar> You can use a garbage collector in C++.
05:16:41 <evincar> It's just that nobody does.
05:17:26 <pikhq_> Actually, it's only C++11 that makes it possible for a conformant implementation to be garbage collected...
05:17:52 <pikhq_> (due to some perverse edge cases that a GC would inevitably break, IIRC)
05:17:52 <evincar> Oh, with vanilla "new", I guess.
05:18:00 <evincar> I was thinking of allocators in general.
05:18:14 <pikhq_> Ah. Yeah, not that bad to use Boehm.
05:18:29 <evincar> You can safely write an allocator that allocates from pools allocated with "new".
05:18:38 <evincar> You would just have to use it explicitly.
05:18:46 <evincar> Or write a gc_ptr<T> or something.
05:18:49 <pikhq_> Like I said, not that bad to use Boehm.
05:18:58 <evincar> It's definitely preferable.
05:19:31 <evincar> I can only give C++ credit for one thing:
05:19:39 <pikhq_> IIRC you can just have a class inherit from gc to allocate with Boehm.
05:19:48 <evincar> Somehow succeeding at being "all things to all developers".
05:21:05 <CakeProphet> seriously, why doesn't pop in C++ RETURN anything.
05:21:22 <pikhq_> Because that would make sense.
05:21:37 <pikhq_> Seriously, why the eff would you not want pop to actually hand you a value?
05:22:15 <evincar> It's because it would have to return by value.
05:22:39 <evincar> And there's no way to determine inside the implementation of pop() whether the caller expects a value.
05:22:42 <evincar> So you have to generate it.
05:23:00 <evincar> So top() (stack) or back()/front() returns by reference.
05:23:13 <evincar> And pop() or pop_back()/pop_front() returns void.
05:23:26 <pikhq_> Y'know what this means?
05:23:41 <CakeProphet> for swapping the front and end of a linked list.
05:23:49 <pikhq_> C++ is not a solution, it is a problem to which you find solutions.
05:23:51 <evincar> std::swap(puzzle.front(), puzzle.back()) // FTFY
05:24:09 <evincar> Remember mutable variables?
05:24:19 <evincar> (A bad thing, but a thing nonetheless.)
05:25:21 <evincar> ...most of the reason C++ gets a bad reputation is the horrid C-style code that's written in it.
05:25:22 <CakeProphet> yeah after using Perl and Haskell it'll take a while to adapt to C++'s idioms
05:25:43 <evincar> I wish C++ got a bad reputation for the GENUINELY BAD THINGS ABOUT IT.
05:27:16 <pikhq_> evincar: Funny, I give C++ a bad rep for it's poorly implemented "high-level" concepts.
05:27:50 <CakeProphet> hmmm, so I guess the best way to shift to leftmost character to the end would be to pop_front then push_back.
05:28:05 <evincar> Ditto. Although the hacks are largely to support generation of efficient code...
05:28:31 <evincar> ...but that code is largely only "efficient" according to the standards of older optimisation technology.
05:29:12 <pikhq_> Well, it also has some pretty comical encapsulation breaks.
05:29:20 <pikhq_> Such as "changing private members breaks ABI"
05:29:23 <evincar> CakeProphet: v.push_back(v.front()); v.pop_front(); is about as short as you can get.
05:29:39 <pikhq_> And "though technically undefined behavior, #define private public is fun times."
05:30:06 <evincar> Technically nothing. UB is just that and you get what you pay for. :P
05:31:25 <evincar> How would you propose to preserve data layout in the event of changing members?
05:31:44 <evincar> The size might change, so you can't make any guarantees about derived classes.
05:31:51 <pikhq_> First, don't try to be "C, plus this".
05:32:01 <pikhq_> This solves most of your problems, really.
05:32:12 <evincar> Those necessarily break if you're implementing data layout in the usual way.
05:32:16 <evincar> Which is the most efficient way.
05:32:23 <pikhq_> sizeof becomes completely moot, for instance.
05:32:51 <evincar> C++ is C plus stuff fundamentally.
05:32:52 <pikhq_> CakeProphet: C++0x still has a sizable common subset with C, and has its semantics hacked into C semantics.
05:32:58 <evincar> C++11 tries to make it look like it isn't.
05:33:10 <evincar> It's supposed to be more beginner-friendly.
05:33:21 <pikhq_> It's the source of pretty much all the problems with C++'s attempts at high-level concepts.
05:33:22 <evincar> To try to get people to actually use what have been considered best practices for years.
05:34:03 <evincar> pikhq_, could you offer some examples?
05:34:11 <evincar> In general I agree, but I'm curious.
05:35:34 <pikhq_> evincar: The aforementioned issue with private members, for one. If C++ didn't have to really consider C, then it could (for instance) access private members via a means *other* than "pointer plus an offset".
05:35:56 <pikhq_> Another obvious fault is that it goes to great lengths to retain C's manual memory allocation.
05:36:01 <evincar> But that's not the most efficient way to do it.
05:36:28 <evincar> The (painful) motto of C++ is "you don't pay for what you don't use".
05:36:41 <evincar> If you want a stable ABI, use a pointer to a private implementation.
05:36:53 <pikhq_> No, the most efficient way to do it is to get a custom ASIC.
05:37:03 <pikhq_> What's that, you're running on general-purpose silicon? Guess you've already sacrificied efficiency.
05:38:03 <evincar> Point is, C++ makes the (bad) decision of trying to build abstraction atop low-level features in such a way that it's still efficient.
05:38:15 <evincar> Rather than make an optimising compiler for a truly high-level language...
05:38:39 <evincar> ...you end up making a trivial compiler for a low-level language with lots of sugar.
05:39:01 <evincar> One that doesn't necessarily support every possible optimisation, because the information just isn't there.
05:39:15 <evincar> You end up with hideous complexity in compilers and optimisers.
05:39:33 <evincar> Yes, though mostly in libraries.
05:39:39 <pikhq_> Because you have to hack around all the abstraction leaks.
05:39:43 <evincar> But still, it's there, and it's compile-time overhead as well.
05:40:08 <pikhq_> Templates are probably a lot of the blame in compile-time overhead, though.
05:40:31 <CakeProphet> but how do I link a file when compiling with g++?
05:40:31 <pikhq_> It's a misfeature that doesn't even come from the misguided design goals.
05:40:48 <evincar> CakeProphet: g++ foo.o bar.o invokes the linker (ld).
05:41:04 <evincar> If you want to just make an object file, use g++ -c foo.cpp
05:41:13 <evincar> But if you want to compile and link, omit -c.
05:42:00 <CakeProphet> g++ file.cpp was giving me undefined reference errors, but g++ -c file.cpp worked fine.
05:42:14 <evincar> That's because the undefined references were link errors.
05:42:26 <CakeProphet> right... so how did they get linked with the -c option?
05:42:35 <evincar> You just made an object file.
05:42:57 <evincar> C++'s fucking build model.
05:43:30 <evincar> I value the ability to produce native binaries. Really I do.
05:44:03 <CakeProphet> I like how my professor's lab comes with free errors that I have to solve.
05:44:29 <evincar> But object files (.o) and libraries thereof (.a) should not be the thing I work with.
05:44:46 <evincar> I should be able to think at the module level without any of the crufty details.
05:45:00 <evincar> Like how inclusion is LITERALLY TEXT SUBSTITUTION.
05:47:16 <CakeProphet> so what happens when I try to link two object files with two mains.
05:48:15 <CakeProphet> also is it possible to compile and link in one command?
05:49:02 <evincar> You can say g++ foo.cpp bar.cpp whatever.cpp -o executable to compile and link and make a binary with a particular name.
05:49:43 <evincar> But if you have two main()s, you'll get a "duplicate symbol" error from ld.
05:51:05 <CakeProphet> puzzle.cpp:15:46: warning: deprecated conversion from string constant to ‘char*’
05:52:30 <evincar> Because you're not technically supposed to modify string constants.
05:59:13 <pikhq_> evincar: Not merely technically.
05:59:37 <pikhq_> I'm pretty sure that'll get you a segfault; constants get stuck in read-only pages.
05:59:42 <evincar> Yeah, UB is around every corner...
06:00:02 <evincar> I wonder if any non-trivial C++ program is fully standards-conformant?
06:00:27 <evincar> sad that I have to wonder that.
06:00:40 <pikhq_> I strongly doubt any non-trivial POSIX C program that's fully standards-conformant.
06:00:51 <pikhq_> At a minimum, everyone neglects _POSIX_C_SOURCE
06:02:14 <evincar> Not to mention names that are secretly (and sometimes ambiguously) reserved by POSIX standards.
06:02:30 <evincar> Which may or may not bite you in the future.
06:03:25 <evincar> The main thing that bothers me when I'm working in C is that I want to check every error and handle every potential failure.
06:03:38 <evincar> And not use fixed-size buffers for everything.
06:03:51 <pikhq_> I don't *think* there's anything POSIX uniquely reserves.
06:04:06 <pikhq_> In large part because it *has* _POSIX_C_SOURCE.
06:04:54 <evincar> What does this page mean then? http://pubs.opengroup.org/onlinepubs/007904975/functions/xsh_chap02_02.html
06:05:40 <pikhq_> Oh, sure enough, it does reserve names.
06:05:51 <evincar> Macros definitely have restrictions, but I'm not sure about the wording on types and functions.
06:06:39 <evincar> Because <string.h> and <stdlib.h> reserve str[a-z]+, it's illegal to define a function called strip(). :P
06:07:09 <evincar> Where illegal = non-POSIX-conformant.
06:07:19 <pikhq_> That's documenting an ISO C reservation.
06:07:48 * CakeProphet recently had to explain why Maybe in Haskell was more type-safe than null in other languages.
06:07:50 <pikhq_> Just like the stdint.h reservation.
06:08:08 <CakeProphet> I thought it would be obvious but I guess not to someone who's spent all of their programming years working with languages like C++ and Java.
06:08:57 <pikhq_> The reservations are a bit... Extreme, though.
06:13:36 <CakeProphet> I wonder if I could make the worst programming language ever.
06:13:55 <CakeProphet> like, a language that is incredibly conceptually muddled.
06:14:06 <CakeProphet> with parts of it being high-level and others parts being extremely low-level
06:14:15 <CakeProphet> thus requiring a bunch of boilerplate to do anything.
06:16:42 <CakeProphet> I was thinking also make all of the primitive constructs Haskell based.
06:17:33 <evincar> I look away for five minutes and you guys get these notions.
06:17:58 <CakeProphet> so you're forced to write functional code in a way that's not convenient at all.
06:18:48 <CakeProphet> I'm not sure how perl would make it worse because perl is a beautiful language suitiable for all porpoises.
06:18:53 <shachaf> CakeProphet: Silly person. NullPointerException is value error, not a type error!
06:19:07 <CakeProphet> shachaf: well it is a value error in those languages.
06:19:16 <CakeProphet> I had to explain that it /could/ be a type error.
06:19:17 <shachaf> A value error is a value error, man.
06:20:59 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
06:21:07 <HackEgo> Can't open perl script "print 2+2": No such file or directory
06:22:06 <CakeProphet> `perl -e "$,=' '; print grep {int(rand(2))} qw(caramel pumpkin banana peach)"
06:22:12 <CakeProphet> `perl -e "$,=' '; print grep {int(rand(2))} qw(caramel pumpkin banana peach)"
06:22:40 <CakeProphet> `perl -e '$,=" "; print grep {int(rand(2))} qw(caramel pumpkin banana peach)'
06:23:06 <shachaf> CakeProphet: Try shachafbot. Just type ",pick option option option"
06:23:43 <shachaf> It's such a real bot, you don't even know how real it is.
06:23:51 <CakeProphet> `perl -e '$,=" "; print (grep {int(rand(2))} qw(caramel pumpkin banana peach))'
06:23:53 <evincar> `perl -e 'BEGIN { *CORE::GLOBAL::die = sub { CORE::die "A useless message.\n" } } die "This will not be printed."'
06:23:58 <CakeProphet> srkgjsdfjsersfddddsfddddddddddddddddddddddddddddddddddddddddddddddddddd
06:24:21 <CakeProphet> `run perl -e '$,=" "; print (grep {int(rand(2))} qw(caramel pumpkin banana peach))'
06:24:22 <HackEgo> caramel pumpkin banana peach
06:24:42 <CakeProphet> `run perl -e '$,=" "; print (grep {int(rand(2))} qw(caramel pumpkin banana peach))'
06:24:52 <CakeProphet> I'm pretty sure peach doesn't go well with anything else.
06:26:25 <evincar> `perl -e 'BEGIN { *CORE::GLOBAL::exit = sub { my ($code, $message) = @_; print $message; CORE::exit($code); } } exit(0, "Success!");'
06:42:53 -!- evincar has quit (Quit: Food and possibly sleep.).
06:50:44 -!- nooga has joined.
06:51:36 <CakeProphet> pikhq_: so in a traditional linked list with sentinel value
06:51:43 <CakeProphet> what is the value of sentinel->next and sentinel->prev?
07:15:15 -!- monqy has quit (Quit: hello).
07:19:21 -!- augur has joined.
07:28:11 -!- Jafet has joined.
07:42:43 -!- ive has quit (Quit: leaving).
07:49:05 -!- Wamanuz2 has joined.
07:49:05 -!- lambdabot has joined.
07:49:05 -!- twice11 has joined.
07:51:01 -!- kmc has joined.
07:51:01 -!- hagb4rd has joined.
07:51:01 -!- sebbu2 has joined.
07:51:01 -!- MSleep has joined.
07:51:01 -!- Nisstyre has joined.
07:51:01 -!- DH____ has joined.
07:51:01 -!- lifthrasiir has joined.
07:51:01 -!- Gregor has joined.
07:51:12 -!- Deewiant_ has joined.
07:51:12 -!- coppro has joined.
07:51:12 -!- EgoBot has joined.
07:51:12 -!- quintopia has joined.
07:51:29 -!- Zuu has joined.
07:51:29 -!- fungot has joined.
07:51:29 -!- qnix has joined.
07:51:52 -!- fizzie has joined.
07:51:52 -!- Patashu has joined.
07:51:52 -!- BeholdMyGlory has joined.
07:51:52 -!- atehwa_ has joined.
07:51:52 -!- chickenzilla has joined.
07:53:59 -!- cheater2 has joined.
07:53:59 -!- aloril has joined.
07:53:59 -!- yiyus has joined.
07:54:07 <Patashu> to you guys it looks like a few people rejoined
07:54:10 <Patashu> to me everyone's flooding back in
08:00:22 <CakeProphet> it might be special cased, unless it can track memory allocation and terminate after a certain point.
08:04:29 <olsner> funny how it prints "Terminated" when the code *doesn't* terminate
08:04:50 <Patashu> how dare this computer program not be an ideal turing machine
08:08:43 <fungot> CakeProphet: i wished that the weather had spared them this choking and venomous fnord of peculiar fumes. mr. machen's narrative, a triumph of carving. when the colony house fire, and bought an impressive wreath, though the ell was more recent. not even the nether slopes of saturn might boast. verses and
08:09:43 <fungot> olsner: ' matt eliot his fust mate, talked a lot too, only he was again' folks's doin' any heathen things. told abaout an island east of fnord whar they was a fnord and fnord hoarsely at something which amused him. then,
08:16:23 <fizzie> Maybe a setrlimit-style memory limit which terminates the process?
08:17:50 <Patashu> so [1..] isn't an infinite list, it only has 2^32 or 2^64 entries in it?
08:17:52 <Patashu> or does haskell use bigints?
08:18:29 <fizzie> > array (1, 2^36) [(2^36, "it's lonely back here")]
08:18:30 <lambdabot> mueval-core: out of memory (requested 550293733376 bytes)
08:18:50 <Patashu> > array (1, 2^72) [(2^72, "it's lonely back here")]
08:18:51 <lambdabot> array *Exception: Error in array index; -1 not in range [0..0)
08:19:05 <Patashu> > array (1, 2^64) [(2^64, "it's lonely back here")]
08:19:06 <lambdabot> array *Exception: Error in array index; -1 not in range [0..0)
08:19:12 <Patashu> > array (1, 2^63-1) [(2^63-1, "it's lonely back here")]
08:19:33 <Patashu> > array (1, 2^50) [(2^50, "it's lonely back here")]
08:19:34 <lambdabot> mueval-core: out of memory (requested 8796094070784 bytes)
08:19:34 <fizzie> The way it dies seems a bit arbitrary sometimes.
08:19:40 <Patashu> > array (1, 2^55) [(2^55, "it's lonely back here")]
08:19:47 <Patashu> > array (1, 2^52) [(2^52, "it's lonely back here")]
08:19:55 <Patashu> > array (1, 2^51) [(2^51, "it's lonely back here")]
08:20:08 <Patashu> > array (1, 1.5*2^50) [(1.5*2^50, "it's lonely back here")]
08:20:09 <lambdabot> Ambiguous type variable `t' in the constraints:
08:21:07 -!- Vorpal has joined.
08:21:07 <Patashu> so somewhere between 2^50 and 2^51
08:23:14 <fizzie> The number of bytes it reports seems a bit arbitrary too.
08:23:16 <fizzie> <fizzie> > let t = 2000000000000000 in array (1, t) [(t, "it's lonely back here")]
08:23:16 <fizzie> <lambdabot> mueval-core: out of memory (requested 6735699902464 bytes)
08:23:16 <fizzie> <fizzie> > let t = 2100000000000000 in array (1, t) [(t, "it's lonely back here")]
08:23:16 <fizzie> <lambdabot> mueval-core: out of memory (requested 15868577710080 bytes)
08:23:16 <fizzie> <fizzie> > let t = 2200000000000000 in array (1, t) [(t, "it's lonely back here")]
08:23:17 <fizzie> <lambdabot> mueval-core: out of memory (requested 7409270521856 bytes)
08:25:22 <Patashu> 15868577710080 is 2^43.85etc
08:25:32 <fizzie> <fizzie> > let t = 2^51 in array (1, t) [(t, "it's lonely back here")]
08:25:32 <fizzie> <lambdabot> Terminated
08:25:32 <fizzie> <fizzie> > let t = 2^51+2^49 in array (1, t) [(t, "it's lonely back here")]
08:25:32 <fizzie> <lambdabot> mueval-core: out of memory (requested 4398047559680 bytes)
08:25:59 <Patashu> thought it would stop after a certain number
08:30:47 -!- nooga has quit (Ping timeout: 258 seconds).
08:32:22 <Patashu> > let t = 2^51+2^49 in array (1, t) [(t, "it's lonely back here")]
08:32:31 <Patashu> > let t = 2^51 in array (1, t) [(t, "it's lonely back here")]
08:32:43 <Patashu> why is it different this time
08:34:22 <fizzie> Anyway, there's some sort of a wraparound issue there.
08:34:46 <fizzie> <fizzie> > let t = 2196875771904 in array (1, t) [(t, "it's lonely back here")]
08:34:46 <fizzie> <lambdabot> mueval-core: out of memory (requested 17592170315776 bytes)
08:34:48 <fizzie> <fizzie> > let t = 2197375771904 in array (1, t) [(t, "it's lonely back here")]
08:34:48 <fizzie> <lambdabot> mueval-core: out of memory (requested 3987734528 bytes)
08:35:04 <fizzie> Some of the numbers in-between took very long time and got the "thread killed" message.
08:35:26 <fizzie> It seems to happen around where the "requested N bytes" goes a bit over N = 2^44.
08:38:01 <olsner> hmm, my cpu has 48 bits virtual address space (and I assume that's "standard" for 64-bit cpus), so 2^44 should be too small
08:38:43 <fizzie> Half of that goes to the kernel.
08:38:47 <olsner> but maybe the virtual address space is just fragmented
08:39:02 <olsner> right, but that should still leave 47 bits of userspace
08:39:05 <fizzie> Anyway, even if it doesn't fit in the address space, it's not supposed to wrap around like that.
08:43:27 <fizzie> > let t = 2196877864960 in array (1, t) [(t, "it's lonely back here")]
08:43:29 <lambdabot> mueval-core: out of memory (requested 17592186044416 bytes)
08:43:33 <fizzie> > let t = 2196877864961 in array (1, t) [(t, "it's lonely back here")]
08:43:42 <fizzie> (Found with a manual binary search.)
08:44:27 <olsner> mueval tries to set that (6^(12::Int)) as its total memory limit, apparently... I wonder what unit that is
08:46:49 <fizzie> It's the largest (integer) power of 6 that's less than 2^32, but I guess it could be something totally arbitrary.
08:48:08 <olsner> afaict the number gets used to set RLIMIT_AS, which is in bytes
08:48:44 <fizzie> If it's done with System.Posix.Resource, that sounds like the most likely thing.
08:49:13 <olsner> it is, http://code.haskell.org/mubot/mueval/Mueval/Resources.hs
08:51:58 <fizzie> Funny bit of trivia: OS X doesn't have a RLIMIT_AS at all.
08:52:48 <olsner> in other words, don't run lambdabot on OS X? :)
08:55:18 <fizzie> packResource ResourceTotalMemory = (#const RLIMIT_AS)
08:55:28 <fizzie> I see they have an #ifdef for systems that lack it.
08:55:44 <fizzie> Though I can't recall if OS X headers provide the #define and just ignore it, or if they completely lack it.
09:03:48 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
09:04:47 <CakeProphet> how would one go about learning all of these details?
09:32:34 <CakeProphet> http://en.wikipedia.org/wiki/Bugatti_Veyron
09:34:42 <fizzie> That seems to be some sort of a car device.
09:35:57 <CakeProphet> yes it's the fastest street-legal car in the world.
09:37:04 <fizzie> It does not look like you could fit a large amount of luggage into it. Is there even place for the cat?
09:37:19 <CakeProphet> I'm sure you could fit one person and a cat in there.
09:37:39 <CakeProphet> it's a mid-engine car so there's not a lot of passenger space.
09:38:15 -!- Vorpal has joined.
09:39:17 <CakeProphet> the engine is essentially two V8's fused together. it's a pretty amazing feat of engineering.
09:40:15 <fizzie> Yes, but I'm not often in *that* much of a hurry to get the cat anywhere. I think I'll skip.
09:40:43 <CakeProphet> It uses special Michelin PAX run-flat tyres, designed specifically to accommodate the Veyron's top speed, which reportedly cost €25,000 per set.
09:41:15 <CakeProphet> I believe the car itself is sold for 1.7 million. Though I believe they stopped selling them.
09:41:40 <Vorpal> CakeProphet: what is this weird car you are talking about?
09:41:44 <fizzie> With that sort of price, does it even come with a Befunge interpreter or something?
09:41:50 <CakeProphet> http://en.wikipedia.org/wiki/Bugatti_Veyron
09:42:25 <fizzie> CakeProphet: That would perhaps be nice if there weren't all the other people in the way.
09:42:37 <Jafet> Buy your own road and drive it there
09:42:50 <Jafet> Live on the Isle of Man
09:42:55 <CakeProphet> May noted that at top speed the engine consumes 45,000 litres (9,900 imp gal) of air per minute (as much as a human breathes in four days).
09:43:17 <fizzie> On the Isle of Man, where all men are real men, and all cars are like that.
09:43:42 <CakeProphet> as far as I can tell it's basically the best car ever made.
09:44:22 <fizzie> For some values of best, certainly.
09:45:01 <CakeProphet> top speed, acceleration, handling, stability, quality of engineering.
09:45:16 <CakeProphet> but not passenger capacity or trunk space, no.
09:45:31 <fizzie> Or practicality. (What do you *do* with that top speed and acceleration?)
09:45:43 <fizzie> I'll get excited when they make the flying model; at least that'd make me feel like it's the future.
09:46:05 <CakeProphet> Clarkson test drove the Veyron from Alba, northern Italy to London in a race against James May and Richard Hammond who made the journey in a Cessna 182 aeroplane.
09:46:31 <Jafet> Because Cessna is awesome
09:46:34 <fizzie> They had that car-train-motorcycle race, I remember seeing that thing.
09:46:50 <fizzie> The only thing of that show I've seen, probably.
09:46:52 <CakeProphet> motorcycles are generally faster than cars.
09:47:14 <CakeProphet> a high-end motorcycle easily travels faster than the Bugatti Veyron.
09:47:17 <Jafet> The acceleration is to produce frame-dragging that increases the apparent size of the owner's small penis
09:47:20 <fizzie> Everything seems to be capable of the speed limit speeds, anyway.
09:47:35 <Vorpal> <CakeProphet> as far as I can tell it's basically the best car ever made. <-- not at all. It is useless when moving to a new house, you can't fit a lot in that car
09:47:45 <fizzie> I've heard there's such a thing.
09:47:53 <CakeProphet> do people actually pay attention to those?
09:47:59 <fizzie> Around here, certainly.
09:48:04 <fizzie> You get ticketed if not.
09:48:19 <Vorpal> CakeProphet: which country do you live in then?
09:48:23 * CakeProphet routinely drives to Atlanta at about 90 mph.
09:48:37 <CakeProphet> speed limit on those roads ranges from 55 mph to 75 mph
09:49:06 <fizzie> I mean, sure, "people" in general drive at k*l, where l is the speed limit and k is something from 1 to 1.2, but still.
09:49:37 <Vorpal> CakeProphet: anyway, a sports car is kind of useless for most purposes. I very much doubt that car you mentioned have a towbar...
09:49:39 <CakeProphet> in palces where I know cops are never present I usually go about 105
09:50:06 <CakeProphet> Vorpal: no, though it is all wheel drive and has retarded horse power / torque so it could probably tow something.
09:50:39 <Vorpal> CakeProphet: and you can't really fit a lot of stuff in the car.
09:50:51 <CakeProphet> the final production Veyron engine produces 1,001 metric horsepower (736 kW; 987 bhp) of motive power, and generates 1,250 newton metres (922 ft·lbf) of torque.[1][14] The nominal figure has been stated by Bugatti officials to be conservative, with the real total being 1,020 metric horsepower (750 kW; 1,006 bhp) or more.
09:50:53 -!- sebbu2 has changed nick to sebbu.
09:50:58 <fizzie> Highway speed limits don't go higher than 120 km/h (75 mph) here, and even if you add a generous 1.2 multiplier, that's 144 km/h (90 mph), so at most you need to be able to drive that fast. A top speed of 400 km/h (250 mph) sounds a bit... excessive.
09:51:03 <CakeProphet> Vorpal: yes you've driven that point home.
09:51:08 <Vorpal> CakeProphet: even two parents + two children + packing for 4 days vacation would not fit
09:51:20 <Vorpal> CakeProphet: so what actual use is a car like that?
09:51:30 <CakeProphet> to take one or two people a large distance very quickly.
09:51:46 <Vorpal> 120 km/h is the maximum existing speed limit around here anyway.
09:52:21 <CakeProphet> also, to escape police, to have fun, to escape a large section of the world before a meteor crashes into it.
09:52:33 <fizzie> I really believe the point is more about what other people think of the car's owner.
09:52:45 <Vorpal> CakeProphet: the police would still note down the registration number...
09:52:50 <Vorpal> so it wouldn't really help
09:53:05 <CakeProphet> no I actually think the point is to be an amazing work of engineering.
09:53:23 <fizzie> Well, that's the point for the people who made it.
09:53:37 <Vorpal> fizzie: you mean, that the owner has no sense and doesn't care much for actual use of the product nor the environment.
09:53:55 <fizzie> Vorpal: That's just one opinion; other people might thing "whoa, nice car".
09:54:13 <fizzie> It looks rather car chasey from the photos.
09:54:15 * CakeProphet takes note: #esoteric does not appreciate a good car.
09:54:30 <fizzie> I could imagine a Surname, Firstname Surname driving a car like that.
09:54:46 <fizzie> CakeProphet: Conclusion made with a sample size of N=2?
09:54:59 <CakeProphet> also speaking of evading police, my friend who drives a motorcycle can pretty much always outrun the police before they have time to get his license plate.
09:55:28 <Vorpal> CakeProphet: I certainly do. A Volvo station wagon with hybrid electrical/bio-fuel engine is a good car IMO.
09:55:32 <CakeProphet> most cops don't even bother with motorcycles.
09:56:03 <fizzie> With the sort of scaled-by-your-wages fines (and I believe license-suspension reasonably easily) you get here, I wouldn't think "pretty much always" would be quite good enough.
09:56:42 <Vorpal> fizzie: same system in Sweden
09:56:56 <CakeProphet> you Europeans and your apparently strict traffic laws.
09:58:03 <Vorpal> CakeProphet: much less accidents over here than in US
09:58:22 <CakeProphet> changing the speed limit does not correlate to more accidents.
09:58:36 <fizzie> http://en.wikipedia.org/wiki/Top_Gear_Race_to_the_North <- this was the thing I saw.
09:58:42 <Vorpal> CakeProphet: [citation needed]
09:58:49 <Vorpal> because as far as I know it does
09:59:14 <Vorpal> a lower speed means that the car travels less distance during your reaction time if a wild animal runs onto the road for example.
09:59:20 <Vorpal> and braking distance is also reduced
09:59:58 <CakeProphet> Vorpal: http://en.wikipedia.org/wiki/Autobahn
10:00:00 <fizzie> Didn't we do the whole car accident discussion/comparison already not long ago?
10:00:09 <Vorpal> You would expect a country like Sweden, with bad winters and so on to have more accidents per capita than a US state like California, but no. Not the case.
10:00:26 <fizzie> Per distance traveled is the more sensible metric, anyway.
10:00:29 <Vorpal> fizzie: indeed, with pikhq iirc, who is sensible
10:00:39 <Vorpal> fizzie: even then iirc Sweden is better of than US.
10:00:39 <fizzie> And I can't get W|A to report it, even though I think it did before.
10:00:48 <CakeProphet> Moreover, international accident statistics demonstrate that limited access grade separated roads such as Autobahns and motorways have much greater road traffic safety regardless of speed limit, suggesting that high speed alone isn't a deciding factor.
10:01:56 <Vorpal> CakeProphet: what about the reaction time/braking distance issue I mentioned above.
10:02:00 <Vorpal> are you saying it is false?
10:02:40 <CakeProphet> but to what extent this curbs avoiding an accident is questionable. In many cases you don't have control of your car anyways.
10:02:44 <Vorpal> CakeProphet: then on a given road a lower speed limit means fewer accidents, and more importantly: fewer accidents with deadly outcome.
10:03:13 <Vorpal> I would like to continue this discussion, but I need to leave for university now
10:03:49 <CakeProphet> The Synthesis of Safety Research Related to Speed and Speed Limits report sponsored by the Federal Highway Administration published in 1998 found that changing speed limits on low and moderate speed roads appeared to have no significant effect on traffic speed or the number of crashes, whilst on high-speed roads such as freeways, increased speed limits generally resulted in higher traffic speeds and more crashes. It is a
10:04:02 <fizzie> Ah, I found the right W|A query formulation. "Sweden road accidents causing death / total road traffic" => 0.5902 deaths per hundred million vehicle kilometres; US 0.891.
10:04:09 <Jafet> We'd curb accidents by removing the pesky humans from the dashboard
10:05:57 <fizzie> Google's doing that right now.
10:06:13 <fizzie> They already had that one crash which they were all "it's the human's fault again".
10:06:24 <fizzie> Possibly a coverup by the Google AI overlords.
10:08:06 <CakeProphet> suddenly 4 gigs of RAM is no longer enough to not worry about.
10:09:30 <fizzie> Yes, and getting 4G sticks of DDR2 to a motherboard with only two stupid slots is annoyingly expensive. Last I looked, it was more than twice the price of an equivalent amount (and stick-count) of faster DDR3 RAM.
10:10:48 <cheater> you pay for the historical value
10:12:20 <CakeProphet> uh... why is there a cat process sleeping my computer.
10:14:01 <fizzie> It's better to let sleeping cats lie.
10:14:17 <Jafet> Better than zombie cats.
10:35:23 -!- nooga has joined.
10:59:05 <CakeProphet> > showIntAtBase 2 intToDigit (foldl1 (+) [1..100]) ""
10:59:14 <CakeProphet> > showIntAtBase 3 intToDigit (foldl1 (+) [1..100]) ""
10:59:31 <CakeProphet> > map (\x -> showIntAtBase x intToDigit (foldl1 (+) [1..100]) "") [1..]
10:59:32 <lambdabot> ["*Exception: Numeric.showIntAtBase: applied to unsupported base 1
10:59:35 <CakeProphet> > map (\x -> showIntAtBase x intToDigit (foldl1 (+) [1..100]) "") [2..]
10:59:36 <lambdabot> ["1001110111010","20221001","1032322","130200","35214","20503","11672","683...
10:59:55 <CakeProphet> > map (\x -> showIntAtBase x intToDigit (foldl1 (+) [1..100]) "") evens
11:00:04 <CakeProphet> > map (\x -> showIntAtBase x intToDigit (foldl1 (+) [1..100]) "") $ filter even [1..]
11:00:05 <lambdabot> ["1001110111010","1032322","35214","11672","5050","2b0a","1baa","13ba","faa...
11:04:01 <fizzie> Sadly intToDigit only goes up to 15. :/
11:04:25 <Jafet> @let showAtBase b n=(\(i,f)->(show=<<i)++"."++(show=<<f)) $ splitAt(floor(log n/log b)+1) $ dropWhile(==0) $ unfoldr(\x->let(i,r)=let d=floor(x/b)in(d,x-b*fromIntegral d)in Just(i,r*b)) n
11:04:38 <Jafet> > showAtBase (exp 1) pi
11:04:40 <lambdabot> "10.10100202000211112002010112000101020200211201001201121000112101000020021...
11:04:51 <Jafet> > take 30 $ showAtBase (exp 1) (pi :: CReal)
11:04:58 <Jafet> > take 25 $ showAtBase (exp 1) (pi :: CReal)
11:05:07 <Jafet> > take 20 $ showAtBase (exp 1) (pi :: CReal)
11:11:32 <Patashu> > take 20 $ showAtBase (pi) (pi :: CReal)
11:13:08 <Jafet> > showAtBase pi pi
11:13:10 <lambdabot> "10.00000000000000000000000000000000000000000000000000000000000000000000000...
11:13:20 <Jafet> > showAtBase 10 pi
11:13:22 <lambdabot> "3.141592653589793115997963468544185161590576171875000000000000000000000000...
11:13:33 <Patashu> pi should be defined as an infinite list
11:13:39 <Patashu> when more precision is demanded it calculates it
11:14:05 <lambdabot> 3.1415926535897932384626433832795028841972
11:14:54 -!- copumpkin has quit (Ping timeout: 252 seconds).
11:15:32 -!- copumpkin has joined.
11:16:11 -!- DH____ has quit (Read error: Connection reset by peer).
11:57:39 -!- MSleep has changed nick to MDude.
12:05:00 -!- oerjan has joined.
12:20:54 <CakeProphet> Patashu: you could do this yourself you know.
12:29:50 <CakeProphet> > let acot x = (pi/2) - arctan x; pid digits = let unity = 10 ^ (digits+10); pi' = 4 * (4* arccot 5 unity - arccot 239 unity) in pi' `div` (10^10) in pid 1000
12:29:51 <lambdabot> Not in scope: `arctan'Not in scope: `arccot'Not in scope: `arccot'
12:30:03 <CakeProphet> > let arccot x = (pi/2) - atan x; pid digits = let unity = 10 ^ (digits+10); pi' = 4 * (4* arccot 5 unity - arccot 239 unity) in pi' `div` (10^10) in pid 1000
12:30:04 <lambdabot> Ambiguous type variable `a' in the constraints:
12:32:03 <oerjan> yay iwc isn't ending (i think. that was a particularly obscure final annotation line.)
12:32:31 <CakeProphet> Patashu: http://en.literateprograms.org/Pi_with_Machin's_formula_(Haskell)
12:33:14 <lambdabot> class (Fractional a) => Floating a where
12:33:14 <lambdabot> exp, log, sqrt, sin, cos, tan :: a -> a
12:33:14 <lambdabot> asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh :: a -> a
12:33:59 <oerjan> it's just asin.recip, anyway
12:35:08 <fizzie> CReal's pi is defined in terms of atan; "pi = 16 * atan (fromRational (1 % 5)) - 4 * atan (fromRational (1 % 239))"
12:36:03 <oerjan> because tan x = 1 / tan (pi/2 - x)
12:38:05 <oerjan> our norwegian trigonometry and calculus classes never bothered with any of that co-stuff
12:38:32 <fizzie> The domains may differ; Wikipedia's "usually defined as" lists gives -pi/2 < y < pi/2 for y = atan(x), and 0 < y < pi for y = acot(x).
12:39:10 <fizzie> And our Finnish trigonometry does not really speak of cosecants, secants and cotangents either.
12:39:26 <oerjan> well, that's just because each grows asymptotic at the boundary
12:39:26 <CakeProphet> AMERICAN TRIGONOMETRY IS SUPERIOR HAHAHAHAHA
12:39:44 <oerjan> oh wait we have cosine of course, but not secant
12:40:08 <fizzie> "The acronyms "SOHCAHTOA" and "OHSAHCOAT" are commonly used mnemonics for these ratios." Not here they aren't!
12:40:13 <Jafet> Reduce[ArcTan[x] == ArcCot[1/x], x]
12:40:20 <CakeProphet> your feeble peninsula will be analyzed with the might of our extra trigonometric functions.
12:40:40 <fizzie> I'm not sure if there's a Finnish mnemonic.
12:41:21 <fizzie> I think I saw a "soh-cah-toa" reference in some webcomic or other.
12:41:41 <oerjan> i've seen it mentioned
12:42:47 <fizzie> The "opposite" and "adjacent" in Finnish both start with 'v' ("vastakkainen/vastainen", "viereinen") so we're even mnemonically oppressed by the language.
12:43:13 <fizzie> "SVHKVHTVV" would not be very helpful.
12:43:16 <CakeProphet> why is office libre really really inconsistent about everything.
12:44:25 <CakeProphet> I select "heading 2" for one heading and it does bold and italics, I do the same for a different heading and it formats it differently
12:45:11 <fizzie> Does your superior American trigonometry also cover versine, vercosine, coversine, haversine, exsecant and such?
12:46:22 <fizzie> http://upload.wikimedia.org/wikipedia/commons/9/9d/Circle-trig6.svg so pretty.
12:47:27 <fizzie> Haven't had any "style inconsistency" issues in OpenOffice (back when it was called that); though it sometimes is necessary to select all + clear formatting, if the document has originally non-style-based modifications here and there.
12:48:06 <fizzie> "The hacoversed cosine, also called hacovercosine or cohavercosine and written hacovercosin(\theta)"
12:48:27 <oerjan> "now you are just making things up."
12:56:28 -!- oerjan has quit (Quit: leaving).
12:57:51 <fizzie> > let pfx = ["ha", "co", "ver"]; f = (++ "sine") . concat; r = randoms $ mkStdGen 6667 in f . take (head r `mod` 20) $ (pfx !!) . (`mod` length pfx) <$> tail r
12:58:07 <fizzie> "hahahahasine", the funniest trigonometric function there is.
12:58:39 <fizzie> (Also I don't know how to get real random numbers out of lambdabot.)
12:58:59 <CakeProphet> > ((++"sine").(`replicateM` ["ha","co","ver"])) =<< [0..]
12:59:00 <lambdabot> Couldn't match expected type `GHC.Types.Char'
12:59:11 <CakeProphet> > ((++"sine").join.(`replicateM` ["ha","co","ver"])) =<< [0..]
12:59:12 <lambdabot> Couldn't match expected type `GHC.Types.Char'
13:00:02 <CakeProphet> > map ((++"sine").join) $ ((`replicateM` ["ha","co","ver"])) =<< [0..]
13:00:04 <lambdabot> ["sine","hasine","cosine","versine","hahasine","hacosine","haversine","coha...
13:00:19 <CakeProphet> > map ((++"sine").join) $ ((`replicateM` ["ha","co","ver"])) =<< [5..]
13:00:21 <lambdabot> ["hahahahahasine","hahahahacosine","hahahahaversine","hahahacohasine","haha...
13:00:34 <CakeProphet> > map ((++"sine").join) $ ((`replicateM` ["ha","co","ver"])) =<< [3..]
13:00:36 <lambdabot> ["hahahasine","hahacosine","hahaversine","hacohasine","hacocosine","hacover...
13:02:23 <fizzie> > elemIndex "hacocoversine" . map ((++"sine").join) $ ((`replicateM` ["ha","co","ver"])) =<< [0..]
13:13:38 <CakeProphet> > filter (\x -> (==) `on` length (elemIndices '[' x) (elemIndices ']' x)) $ (`replicateM` "+-[].,") =<< [0..]
13:13:39 <lambdabot> Couldn't match expected type `[GHC.Types.Int] -> a -> b'
13:13:58 <CakeProphet> > filter (\x -> ((==) `on` length) (elemIndices '[' x) (elemIndices ']' x)) $ (`replicateM` "+-[].,") =<< [0..]
13:13:59 <lambdabot> ["","+","-",".",",","++","+-","+.","+,","-+","--","-.","-,","[]","][",".+",...
13:14:14 <fizzie> Good program. Best friend.
13:14:50 -!- copumpkin has quit (Ping timeout: 258 seconds).
13:15:16 -!- copumpkin has joined.
13:17:12 <CakeProphet> > filter (\x -> let count = (`elemIndices` x); ls = count '['; rs = count ']' in ls < rs && ((==) `on` length) numl numr) $ (`replicateM` "+-[].,") =<< [0..]
13:17:13 <lambdabot> Not in scope: `numl'Not in scope: `numr'
13:17:21 <CakeProphet> > filter (\x -> let count = (`elemIndices` x); ls = count '['; rs = count ']' in ls < rs && ((==) `on` length) ls ra) $ (`replicateM` "+-[].,") =<< [0..]
13:17:25 <CakeProphet> > filter (\x -> let count = (`elemIndices` x); ls = count '['; rs = count ']' in ls < rs && ((==) `on` length) ls rs) $ (`replicateM` "+-[].,") =<< [0..]
13:17:26 <lambdabot> ["[]","+[]","-[]","[+]","[-]","[]+","[]-","[].","[],","[.]","[,]",".[]",",[...
13:18:31 <fizzie> > let v d [] = d == 0; v d ('[':xs) = v (d+1) xs; v d (']':xs) = d > 0 && v (d-1) xs; v d (_:xs) = v d xs in drop 10000 . filter (v 0) $ (`replicateM` "+-[].,") =<< [0..]
13:18:33 <lambdabot> [",.-.,+",",.-.,-",",.-.,.",",.-.,,",",.-,++",",.-,+-",",.-,+.",",.-,+,",",...
13:19:04 <CakeProphet> > filter (\x -> let count = (`elemIndices` x); ls = count '['; rs = count ']' in ls <= rs && ((==) `on` length) ls rs) $ (`replicateM` "+-[].,") =<< [0..]
13:19:05 <lambdabot> ["","+","-",".",",","++","+-","+.","+,","-+","--","-.","-,","[]",".+",".-",...
13:19:40 <CakeProphet> > filter (\x -> let count = (`elemIndices` x); ls = count '['; rs = count ']' in ls <= rs && ((==) `on` length) ls rs) $ (`replicateM` "+-[].,") =<< [4..]
13:19:41 <lambdabot> ["++++","+++-","+++.","+++,","++-+","++--","++-.","++-,","++[]","++.+","++....
13:19:52 <CakeProphet> > filter (\x -> let count = (`elemIndices` x); ls = count '['; rs = count ']' in ls <= rs && ((==) `on` length) ls rs) $ (`replicateM` "+-[].,") =<< [20..]
13:19:54 <lambdabot> ["++++++++++++++++++++","+++++++++++++++++++-","+++++++++++++++++++.","++++...
13:20:12 <CakeProphet> man there sure are a lot of brainfuck programs.
13:22:22 <fizzie> > elemIndex "[[]]][" . filter (\x -> let count = (`elemIndices` x); ls = count '['; rs = count ']' in ls <= rs && ((==) `on` length) ls rs) $ (`replicateM` "+-[].,") =<< [0..]
13:22:39 <fizzie> Slightly lessens the awesome.
13:24:38 <fizzie> > all (uncurry (<)) $ zip [2,6] [3,5]
13:24:55 <fizzie> Maybe if you test something like that. (Disclaimer: haven't thought it through.)
13:25:23 <CakeProphet> > filter (\x -> let count = (`elemIndices` x); ls = count '['; rs = count ']' in all (uncurry (<)) (zip ls rs) && ((==) `on` length) ls rs) $ (`replicateM` "+-[].,") =<< [0..]
13:25:23 <lambdabot> ["","+","-",".",",","++","+-","+.","+,","-+","--","-.","-,","[]",".+",".-",...
13:25:24 <fizzie> > all $ zipWith (<) [2,6] [3,5]
13:25:25 <lambdabot> Couldn't match expected type `a -> GHC.Bool.Bool'
13:26:33 <CakeProphet> > filter (\x -> let count = (`elemIndices` x); ls = count '['; rs = count ']' in and (zipWith (<) ls rs) && ((==) `on` length) ls rs) $ (`replicateM` "+-[].,") =<< [0..]
13:26:34 <lambdabot> ["","+","-",".",",","++","+-","+.","+,","-+","--","-.","-,","[]",".+",".-",...
13:26:52 <CakeProphet> can you think of a situation where that fails?
13:33:20 <lambdabot> Data.Function on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
13:33:20 <lambdabot> Text.PrettyPrint.HughesPJ OneLineMode :: Mode
13:33:20 <lambdabot> Text.Parsec.Char oneOf :: Stream s m Char => [Char] -> ParsecT s u m Char
13:36:12 <fizzie> > let progs = (`replicateM` "+-[].,") =<< [0..]; cake = filter (\x -> let count = (`elemIndices` x); ls = count '['; rs = count ']' in and (zipWith (<) ls rs) && ((==) `on` length) ls rs) progs; v d [] = d == 0; v d ('[':xs) = v (d+1) xs; v d (']':xs) = d > 0 && v (d-1) xs; v d (_:xs) = v d xs in elemIndex False $ zipWith (==) (filter (v 0) progs) cake
13:38:05 -!- hagb4rd has quit (Ping timeout: 260 seconds).
13:43:01 -!- Phantom_Hoover has joined.
13:43:15 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
13:43:16 <CakeProphet> am I a bad person for using (`f` x) instead of flip f x?
13:45:15 <CakeProphet> @pl \ls rs -> and (zipWith (<) ls rs) && ((==) `on` length) ls rs
13:45:16 <lambdabot> ap (ap . (((&&) . and) .) . zipWith (<)) ((==) `on` length)
13:46:19 <CakeProphet> @pl \x -> and (zipWith (<) (elemIndices '[' x) (elemIndices ']' x)) && ((==) `on` length) (elemIndices '[' x) (elemIndices ']' x)
13:46:20 <lambdabot> ap ((&&) . and . ap (zipWith (<) . elemIndices '[') (elemIndices ']')) (ap (((==) `on` length) . elemIndices '[') (elemIndices ']'))
13:49:25 <nooga> what are you doing?
13:53:48 <Phantom_Hoover> http://www.reddit.com/r/math/comments/kmhjj/mind_blown_in_linear_algebra_class_today_when_the/
13:54:00 <Phantom_Hoover> Help this person really annoys me and I feel bad for it.
13:56:17 <fizzie> You are a bad person for being annoyed when other people are happy and excited.
13:57:15 <fizzie> Ut-oh, how do I cancel a topic edit in XChat?
13:57:23 <fizzie> I accidentally all over the topic textbox.
13:57:32 <fizzie> Why is that even a textbox in the first place?
13:57:46 <fizzie> (This is from another client.)
13:58:44 <fizzie> Hrm, restoring it to the original form and then clicking away at least didn't change the topic. But maybe it needs a CR anyway to happen. Who knows.
14:00:27 -!- Madoka-Kaname has quit (Ping timeout: 258 seconds).
14:01:42 <Gregor> fizzie: Only hitting enter will change the topic. If you type /topic in the normal input box, it'll refetch the original topic.
14:01:52 -!- boily has joined.
14:02:15 <fizzie> Good. I was *so scared*.
14:26:05 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:27:07 -!- FireFly has joined.
14:54:12 -!- copumpkin has joined.
15:16:04 -!- Deewiant_ has quit (Ping timeout: 252 seconds).
15:16:51 -!- Deewiant has joined.
15:40:59 -!- Guest63383 has joined.
15:41:00 -!- Guest63383 has quit (Excess Flood).
15:44:58 -!- variable- has joined.
16:02:12 -!- pumpkin has joined.
16:03:55 -!- copumpkin has quit (Ping timeout: 260 seconds).
16:31:18 -!- augur has quit (Remote host closed the connection).
16:48:56 -!- CakeProphet has quit (Ping timeout: 252 seconds).
16:50:30 -!- pumpkin has changed nick to copumpkin.
16:52:53 -!- augur has joined.
16:57:50 -!- ais523 has joined.
17:05:30 -!- elliott has joined.
17:07:22 -!- elliott has quit (Read error: Connection reset by peer).
17:07:24 -!- elliott_ has joined.
17:17:14 <Vorpal> hm reading the last iwc annotation, it seems it is going to continue?
17:25:12 -!- azaq23 has joined.
17:28:28 <elliott_> hmph, no respond to my issue after, like, A WHOLE DAY :p
17:30:59 <elliott_> Vorpal: https://github.com/phonohawk/HsOpenSSL/issues/3
17:42:07 <Vorpal> elliott_: template haskell uses bytecode interpreter? huh. Well, I guess it makes sense.
17:42:25 <Vorpal> elliott_: what are you using openssl bindings for?
17:42:28 <elliott_> Vorpal: Consider cross-compiling
17:42:50 <elliott_> And because iterIO depends on them; it'd be nice if that kind of auxiliary stuff was split up from the package but it isn't
17:43:11 <Vorpal> elliott_: and why are you using iterIO?
17:43:21 <elliott_> Iteratee-based IO is an alternative to lazy IO that offers better error handling, referential transparency, and convenient composition of protocol layers or parsers. This package provides iteratees based around pipe operators for hooking together application components and directing data flow. New users should see the tutorial in the Data.IterIO module documentation. Highlights of the library include:
17:43:21 <elliott_> Heavy emphasis on ease of use, ease of learning, and uniformity of mechanism.
17:43:21 <elliott_> Consistent EOF and error handling to avoid resource leaks and other issues in corner cases.
17:43:23 <elliott_> A set of iteratee parsing combinators providing LL(*) parsing while generally not consuming large amounts of memory for backtracking.
17:43:26 <elliott_> Seamless integration with attoparsec for LL(1) parsing.
17:43:28 <elliott_> See Data.IterIO for a discussion of the differences between iterIO and the two previous iteratee implementations (iteratee and enumerator).
17:43:36 <elliott_> Unless you know of a better iteratee package?
17:43:55 <elliott_> I don't want to write manual network code.
17:44:26 <elliott_> If not iterIO I'd use enumerator, but I find iterIO easier to understand and more powerful
17:44:46 <Vorpal> elliott_: of course, real programmers would just poke the relevant registers on the NIC manually
17:44:57 <Vorpal> or get butterflies to do it
17:46:11 <elliott_> Vorpal: Well, I could just use standard handle-based IO, iteratees are probably slightly overkill, but I don't see why I should stop using them just because of a dependency issue
17:46:28 <elliott_> And it's not like they have much overhead in terms of code to using them so there's no harm done
17:46:54 <elliott_> It would be nice if I could make the packet reading/writing code work directly with iteratees rather than having to go through the cereal library
17:47:02 <elliott_> That might be good for performance, I'll have to see
17:47:23 <Vorpal> elliott_: what are you doing networking for though?
17:48:41 <elliott_> Anyway, I'm trying to do things The Right Way, and iteratees are definitely The Right Way :-P
17:49:48 <Vorpal> I like that compared to lisp of scheme, explicit recursion is a lot more rare in haskell.
17:50:05 <elliott_> Explicit recursion is rare in CL
17:50:19 <Vorpal> elliott_: well yeah. But compared to scheme then
17:50:24 <Vorpal> and some lisp dialects
17:50:32 <elliott_> Well, nobody writes programs in scheme :D
17:50:32 <Vorpal> iirc it isn't all that uncommon in elisp
17:51:45 <elliott_> Anyway, the iterIO maintainer fixed a bug I reported and released the new version to Hackage an hour after I emailed him about it, so I'm disinclined to switch to something else :)
17:52:07 -!- copumpkin has changed nick to gribbles.
17:55:55 <elliott_> Also it lets me avoid Handles which is nice, since they have buffer support I don't need.
18:02:34 -!- Ngevd has joined.
18:05:58 -!- gribbles has changed nick to copumpkin.
18:13:25 -!- Ngevd has quit (Ping timeout: 260 seconds).
18:34:00 -!- Ngevd has joined.
18:38:22 <Gregor> Ngevd: I am so glad that my idle comment has permanently changed your IRC identity.
18:38:45 <Ngevd> Ngevd is easier to explain than Taneb
18:40:42 <ais523> I've been trying to figure out the new name
18:40:53 <ais523> at first I thought it was rot-13 or a variant, but it doesn't seem to be
18:41:00 <Ngevd> I almost had the additional middle name Elliott
18:41:08 <Ngevd> Which would make my initials NGEvD
18:41:29 <ais523> and yet another elliott would be really confusing, there are already at least two
18:41:50 <Ngevd> It's an old family name
18:41:52 <elliott_> <ais523> and yet another elliott would be really confusing, there are already at least two
18:42:00 <elliott_> ais523: I think everything about Taneb makes communication here more confusing
18:42:01 <Gregor> Ngevd is an old family name??? (lololol)
18:42:02 <ais523> that have been, in here
18:42:07 <Gregor> My old family name is Dodifer :P
18:42:25 <elliott_> "The esolanger who is aware of IWC's existence who is regularly in #esoteric and who lives in Hexham" was pretty ambiguous before he came along :P
18:42:38 <ais523> wait, there are two Hexhamers in #esoteric?
18:42:47 <Ngevd> And we have never me
18:43:04 <ais523> given that Hexham is minor enough that elliott_ was surprised that I'd heard of it
18:43:10 <ais523> (and I hadn't done much more than hear of it)
18:43:14 <Ngevd> You've heard of it!?
18:43:19 <Gregor> It's surprising that they've never met given that the entire population of Hexham is six pigs and twelve farmers to maintain the six pigs.
18:43:27 <ais523> well, obviously; more surprising is that I'd heard of it before I'd met elliott_
18:44:03 <ais523> I've heard of lots of other places too, like Stourbridge and Halesowen
18:45:26 <elliott_> <ais523> wait, there are two Hexhamers in #esoteric?
18:45:34 <elliott_> ais523: Yes, this was as surprising to me as it was to you.
18:45:41 <elliott_> `pastelogs don't tell me you live in hexham
18:45:55 <ais523> I thought it was reasonably well-known that elliott_ lived in hexham
18:46:02 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.22620
18:46:06 <ais523> so presumably it was Ngevd that noticed the issue first
18:46:14 <ais523> elliott_: that was useless!
18:46:20 <Ngevd> It was Phantom_Hoover who noticed the issue
18:46:20 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.30798
18:47:06 <ais523> 2008-03-14.txt:20:48:37: <Deewiant> google suggests hexham, england
18:47:10 <ais523> I wonder what that was about
18:47:28 <elliott_> Gregor: http://codu.org/logs/_esoteric/
18:47:53 <Gregor> elliott_: That is an excellent question.
18:47:53 <Deewiant> ais523: 2008-03-14 21:47:59( AnMaster) ehird, where are you from btw? (as in what country?)
18:48:00 <elliott_> I was wondering why `log was missing so much.
18:48:19 <elliott_> ais523: tl;dr Taneb mentioned he was from Northumberland, PH said "please don't tell me you live in Hexham", Taneb freaked out.
18:48:28 <elliott_> The next day, I heard about it, freaked out.
18:48:31 <ais523> Deewiant: ah, so elliott_ was a known hexham/just-next-to-hexham resident before the codu logs started
18:48:35 <elliott_> Henceforth we have vowed to never cross paths ever.
18:48:44 <elliott_> ais523: codu logs contain all clog logs
18:49:26 <ais523> what about cmeme logs? or have they vanished?
18:49:44 <ais523> also, you two will probably meet each other by chance, but not recognise each other
18:49:46 <ais523> and may already have done so
18:50:13 <Ngevd> I'm well known in Ponteland of all places
18:50:24 <Ngevd> I've never actually been outside of a car in Ponteland
18:50:27 <ais523> one of you should wear a hat with a stellated icosahedron on
18:50:47 <Ngevd> I sometimes where a John Egbert shirt in Hexham
18:50:57 <Ngevd> That is, in the middle of Hexham
18:51:11 <elliott_> the greatest achievement anyone has ever achieved
18:51:17 <Ngevd> Long story which I have already told
18:55:07 <Gregor> elliott_: Latest regen of logs to fix the quit bug did weird things. Fixing more bugs :P
18:55:12 -!- augur has quit (Remote host closed the connection).
18:55:16 <cheater> http://en.wikipedia.org/wiki/Ponteland
18:55:24 <cheater> come to think of it they recorded this on wikipedia
18:55:45 <cheater> next thing they'll start giving names and wikipedia articles to distinctive dog piles
18:58:33 <Ngevd> next thing they'll start giving names piles and distinctive articles to wikipedia dog
18:59:33 -!- Ngevd has quit (Quit: what a big quitter he is, eh?).
19:10:09 -!- augur has joined.
19:30:04 <Gregor> elliott_: Bug found, fixing.
19:31:21 -!- elliott has joined.
19:31:37 -!- elliott_ has quit (Read error: Connection reset by peer).
19:31:39 <elliott> -NickServ- Last failed attempt from: Elliott!3lli0tt@cpc1-woki6-2-0-cust904.6-2.cable.virginmedia.com on Sep 21 18:35:20 2011.
19:31:45 <elliott> Somebody needs to teach this fucker a lesson.
19:31:47 <elliott> This is like the third time.
19:32:04 <elliott> fizzie: Vorpal: Is there a way to go from that to their current nick?
19:32:29 <Vorpal> elliott: not that I know of.
19:32:39 <elliott> Lame. How am I going to yell at him now?
19:33:10 <Vorpal> elliott: I had a similar issue once, but then the ident proved to help me find him/her. Turned out to be a misconfigured pidgin client trying to id as for another network.
19:33:23 <olsner> if it's an actual attempt at stealing your account, maybe freenode's operators can find him for you
19:33:32 <elliott> olsner: I suspect it's simply: someone else called elliott.
19:33:37 <elliott> Especially considering the uppercase E.
19:33:47 <elliott> Also, freenode don't give a fuck about account owners, or they wouldn't drop nicks after like three days of no use.
19:34:57 <Gregor> elliott: To answer your previous question, there has never been any missing days in the log, and you're crazy for thinking there had been.
19:34:58 <Vorpal> elliott: not 3 days iirc?
19:35:02 <Vorpal> more like a week or two?
19:35:11 <elliott> `pastelogs don't tell me you live in hexham
19:35:20 <elliott> Vorpal: It's something like thirty to sixty days, I forget exactly, but it's ridiculous.
19:35:24 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.7949
19:35:32 <HackEgo> 2011-09-21.txt:18:45:26: <elliott_> <ais523> wait, there are two Hexhamers in #esoteric?
19:35:37 <elliott> Gregor: And that's why there are no more lines in that pastelogs :P
19:35:38 <Vorpal> elliott: it seems to drop after extended inactivity
19:35:45 <elliott> Vorpal: No, it's not automatic.
19:36:00 <Vorpal> elliott: oh right, many other networks do automatic dropping
19:36:02 <elliott> Someone has to go into #freenode and say "give me this nick" and they'll do it immediately if it hasn't been logged into for something like a month or two.
19:36:07 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.11100
19:36:09 <elliott> It should be much longer than that.
19:36:18 <Vorpal> elliott: most networks actually do it automatic.
19:36:20 <olsner> oh, HEXHAMers, now I finally managed to parse that word
19:36:20 <ais523> elliott: they don't seem to have a fixed time, it depends on other things
19:36:24 <Phantom_Hoover> <elliott> -NickServ- Last failed attempt from: Elliott!3lli0tt@cpc1-woki6-2-0-cust904.6-2.cable.virginmedia.com on Sep 21 18:35:20 2011.
19:36:29 <elliott> Vorpal: Isn't freenode's whole idea to be unlike "most networks"
19:36:34 <elliott> Most networks are terrible
19:36:37 <elliott> Phantom_Hoover: I hope so.
19:36:50 <Gregor> elliott: As near as I can tell, that is in fact the only line that matches exactly "don't tell me you live in hexham"
19:36:53 <olsner> I tried to make it into hex-hammers but it was not spelled the right way for that to work
19:36:55 <elliott> ais523: They do, but they claim to be slightly more wary if it's just reached that time.
19:37:06 <elliott> ais523: I'm fairly sure that's lies though, I've got about ten nicks dropped no questions asked.
19:37:07 <Gregor> `pastelogs don't tell me you live in hexham
19:37:12 <elliott> Gregor: http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.7949
19:37:16 <elliott> 2011-07-16.txt:16:01:00: <Phantom_Hoover> Please don't tell me you live in Hexham.
19:37:21 <elliott> That was missing previously.
19:37:30 <elliott> `pastelogs really makes me hate being alive
19:37:30 <Gregor> Oh; yeah, that's there now :P
19:37:33 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.17403
19:37:34 <elliott> I bet this'll get us 345 back.
19:37:37 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.19220
19:37:42 <elliott> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.19220
19:37:48 <elliott> `logurl 2011-04-03.txt:19:48:31:
19:37:50 <HackEgo> http://codu.org/logs/log/_esoteric/2011-04-03
19:37:56 <Gregor> Apparently when you have a random bug that causes certain quits to conclude that no lines belong to any channel, it's easy to scrub whole giant swaths of history.
19:38:06 <ais523> elliott: they claim to be more wary on dropping someone's only alternate nick
19:38:23 <Vorpal> Gregor: quits on what form?
19:38:26 <elliott> 14:38:28: <elliott> 21:54:38 <catseye> HAAAAAAAAAAAAAAAAAAAAAAAAAAAA
19:38:26 <elliott> 14:38:28: <elliott> 21:54:48 <catseye> i had OS/2 Warp once.
19:38:26 <elliott> 14:38:28: <elliott> 21:55:02 <catseye> i had all those fucking floppies
19:38:26 <elliott> 14:38:28: <elliott> 21:55:04 <catseye> it never worked.
19:38:26 <elliott> 14:38:28: <elliott> some people are just poets
19:38:27 <elliott> Would like to reaffirm this as best poem.
19:38:33 <Gregor> Vorpal: I'm not rightly sure *shrugs*
19:38:46 <elliott> ais523: That's never happened to me. I don't remember how long elliott had been unused when I got it dropped, but it wasn't long.
19:38:51 <elliott> I feel no guilt because it was stolen from me in the first place :P
19:38:58 <olsner> elliott: I don't see the poetry
19:39:01 * Vorpal has quit (' -- DROP TABLE logs)
19:39:16 <elliott> olsner: You're not looking hard enough.
19:39:21 <elliott> Try saying the lines aloud, as poetry.
19:39:26 * Vorpal has quit ('; DROP TABLE logs; --)
19:39:54 <elliott> 14:54:26: <elliott> 11:14:27 <cpressey> There's a squirrel that lives near my building that I see every so often. I can recognize it's the same squirrel because it has no tail. It is a constant reminder that, visually speaking anyway, squirrels are approximately 50% tail.
19:39:55 <elliott> I think I was just doing a best-of-cpressey day :P
19:39:59 <ais523> elliott: it does look like a poem to me, just not a very good one
19:40:12 <elliott> ais523: How can a complete summary of computing be a bad poem?
19:40:17 <ais523> what color are the squirrels in the US?
19:40:26 <olsner> the one with the squirrel is nice
19:40:42 <Vorpal> ais523: hm... Grey iirc?
19:40:53 <Vorpal> and brown in EU right?
19:40:53 <ais523> Vorpal: I'd prefer a reply from an American
19:40:57 <olsner> the most squirrelly color of them all, squirrel-colored
19:41:04 <Phantom_Hoover> 2011-09-21.txt:18:48:19: <elliott_> ais523: tl;dr Taneb mentioned he was from Northumberland, PH said "please don't tell me you live in Hexham", Taneb freaked out.
19:41:09 <ais523> they're most commonly grey in the UK, although there are a few red ones left in scotland
19:41:22 <Phantom_Hoover> He was complaining about the rain and then I said that.
19:41:47 <Vorpal> ais523: well yeah, the grey US ones are taking over in UK iirc. Think I saw a BBC produced program about that some years ago.
19:41:53 <ais523> there are no other esolangers in Birmingham, right?
19:41:59 <elliott> Phantom_Hoover: He definitely said Northumberland before that.
19:42:03 <Vorpal> maybe one of the idlers
19:42:14 <cheater> ais523: squirrels are very popular in london, they pretty much do not exist in germany
19:42:31 <Phantom_Hoover> elliott, sure, and that raised my suspicion, but a day before I asked him if he was in Hexham.
19:42:34 <ais523> or was that literally correct?
19:42:43 <elliott> Phantom_Hoover: Fiiiiiiiine.
19:42:43 <Vorpal> I seen them in Sweden. Not very common here. Been a year or so since I last saw one
19:42:46 <fizzie> I'm tempred to say "Taneb is from Heham?!" too, we haven't had enough shock yet.
19:42:48 <ais523> elliott hasn't always been in Hexham, at least
19:43:01 <Phantom_Hoover> Vorpal, can we please have a talk about the pluperfect.
19:43:16 <elliott> Phantom_Hoover: It's been years, he will never learn.
19:43:24 <elliott> At least he's mostly worked out his "has/have/had"s by this point.
19:43:25 <cheater> popular, because they are put there by the city. squirrels don't thrive on their own, they're not rats.
19:44:15 <Vorpal> speaking of animals, I got a bit of a scare today. I was driving up a highway exit today. A very curved one with poor visibility. Then I suddely saw two deer in the ditch on the side of the road. Thankfully not trying to cross the road.
19:44:28 <ais523> there was a squirrel living in the roof of the library at school
19:44:35 <ais523> it used to bask inside the flourescent lights
19:44:44 <Vorpal> I'm unsure if I would have been able to brake given the visibility there.
19:45:04 <Vorpal> <Phantom_Hoover> Vorpal, can we please have a talk about the pluperfect. <-- the what?
19:45:19 <ais523> the porter (basically like a groundsman for the inside of a building) used to catch it every now and then, apparently using a trap baited with Bounty bars (which it really liked), and release it in the nearby woods
19:45:25 <ais523> but it always seemed to find its way back
19:45:41 <olsner> Phantom_Hoover: that's not pluperfect
19:45:44 <ais523> it's surprisingly how quickly you get used to a squirrel running around inside the ceiling cavity
19:45:51 <Vorpal> Phantom_Hoover: I simply dropped the "have" there somehow
19:46:00 <Vorpal> Phantom_Hoover: yes, we have them, we call them pluskvamperfekt
19:46:11 <cheater> ais523: surprisingly... surprising?
19:46:14 <ais523> pluperfect is "had verbed"
19:46:46 <Vorpal> Phantom_Hoover: anyway it was a simple typo of dropping a word.
19:46:51 <Vorpal> what's so bad about that?
19:47:19 <Vorpal> Phantom_Hoover: I meant to write "I have seen them"
19:47:48 <olsner> Phantom_Hoover: hmm, "had seen" is pluperfect, and I guess that's what you meant when you wrote just "seen" ... "saw" is definitely not pluperfect though
19:47:52 <cheater> typo is short for typographical error
19:48:03 <cheater> dropping a word is certainly an error in typography
19:48:13 <Phantom_Hoover> Yeah, except 'have seen', which is what Vorpal meant, is just perfect.
19:48:22 <elliott> <cheater> What is descriptivism? Etymology is literally meaning.
19:49:00 <fizzie> Phantom_Hoover: They have both "have fooed" and "had fooed" forms, and even the auxiliary verb is very similar to English; 'har' + 'hade' vs. 'have' + 'had'.
19:49:35 <elliott> cheater: If I only made fun of everyone else's stupid remarks and not yours too, that would be discrimination.
19:50:15 <elliott> Are you really trying the "I'M A VICTIM OF THE AWFUL ELLIOTT MONSTER" tack?
19:50:36 <Vorpal> elliott: cheater: why don't you two just /ignore each other?
19:51:18 <olsner> that would leave cheater unfairly unridiculed compared to the rest of us
19:51:43 <Phantom_Hoover> Vorpal, because elliott finds it fun and cheater craves attention.
19:51:56 <elliott> Vorpal: cheater won't /ignore me because he wouldn't be able to claim I'm stalking him around to make fun of him, I won't /ignore him since nobody else wants to deal with him just to point out his crap.
19:52:08 <Vorpal> Phantom_Hoover: Good points.
19:52:29 <Vorpal> elliott: I tend to ignore him, but he change nick every so often.
19:52:41 <elliott> Vorpal: So do most people.
19:53:00 <Phantom_Hoover> Vorpal, yes, sometimes he even adds numbers to the end of his nick WHAT IGNORE SYSTEM COULD COPE
19:53:42 <Vorpal> Phantom_Hoover: problem is, I know I different cheater on a different network who is okayish. I tried ignoring on nick* + isp but that changed too a few times.
19:54:05 <fizzie> Anyway! Quite a lot of squirrels in Finland, at least in some regions. I see them on the route to work/back once a week, and last year there was one practically every morning in one location.
19:54:22 <cheater> i am surprised squirrels don't just freeze over there
19:54:49 <elliott> Vorpal: Tell the other cheater to /nick personwhoplaysbytherules.
19:54:53 <fizzie> They do change color in winter.
19:55:07 <elliott> Also, does your client not do per-network ignores? Mine doesn't, but actually I'm not sure why.
19:55:08 <elliott> That would be a useful feature.
19:55:59 <Vorpal> <elliott> Also, does your client not do per-network ignores? Mine doesn't, but actually I'm not sure why. <-- nope, that would be useful.
19:56:18 <fizzie> You don't see them around that much in the middle of the winter though.
19:56:20 <Vorpal> elliott: anyway I'm planning on writing my own irc client
19:56:30 <elliott> Vorpal: You were planning that months ago.
19:56:41 <olsner> Vorpal: heh, that sounded a bit like "Of course it doesn't! That would be useful."
19:56:44 <Vorpal> elliott: I learned project management from you
19:56:57 <fizzie> Irssi does per-network ignores.
19:57:01 <Vorpal> olsner: what did? my reply?
19:57:13 <olsner> yes, the one about it not doing per-network ignores
19:57:15 <Vorpal> Phantom_Hoover: no that would be even worse
19:57:20 <elliott> Vorpal: You mean the guy who wrote a compliant Funge interpreter in three days and who wrote something that could fully parse huge Minecraft dumps within three days?
19:57:29 <elliott> (OK, OK, exception that proves the rule.)
19:57:40 <Vorpal> fizzie: I tried irssi, never really liked it. It gets annoying to remember that /w 82 is #minecraft or whatever
19:57:55 <elliott> I suggest not being a member of any channels named #minecraft, they're all awful.
19:58:07 <Vorpal> Phantom_Hoover: would never get anywhere
19:58:07 <ais523> we should find a network that doesn't have a #minecraft yet
19:58:14 <ais523> and create a channel dedicated to something better there
19:58:14 <fizzie> Vorpal: There are scripts to help dealing with that, but sure, it's not very optimal.
19:58:20 <elliott> I bet OFTC doesn't, but I bet they'd also not allow one.
19:58:40 <Vorpal> elliott: it is actually a minecraft server channel for that server. Like our MC channel, but for that network. A much smaller network than freenode. So it works.
19:58:56 <elliott> ais523: Software in the Public Interest's official IRC network;
19:59:01 <fizzie> In fact, don't een be on any channels that have "minecraft" as substring, it's safer that way.
19:59:07 <elliott> ais523: so by proxy Debian's, OpenOffice's, Arch Linux's, OpenWrt's, ...
19:59:13 <Vorpal> only reason I'm on OFTC is #llvm
19:59:27 <Vorpal> elliott: wait, you mean #archlinux on here is not official?
19:59:39 <elliott> Vorpal: Well, I guess you can be a member of SPI without using OFTC.
19:59:45 <Phantom_Hoover> nonononono, you get to thing about how awesome the thing will be and then go on to thinking about how awesome something else will be it is the best.
19:59:45 <elliott> And nothing stops people having multiple official channels.
19:59:54 <elliott> Vorpal: Software in the Public Interest. Keep up.
20:00:00 <Vorpal> elliott: I never heard of it
20:00:24 <Vorpal> Phantom_Hoover: doesn't help me meet deadlines
20:00:31 <elliott> OFTC have their own ircd for some reason.
20:00:52 <elliott> Anyway, I guess it's likely that Debian are the main users of OFTC. :p
20:00:55 <Vorpal> elliott: really? I thought it was just a patched ratbox or some such
20:00:59 <elliott> But a fair number of software projects have their channels there.
20:01:04 <elliott> Vorpal: Well, it's "oftc-hybrid".
20:01:09 <elliott> Most IRCs are derivatives of other IRCs.
20:01:30 <ais523> elliott: hmm, somehow I expected that lot to all be on Freenode
20:01:32 <Vorpal> elliott: anyway freenode have their own too. A patched charybdis
20:01:54 <Vorpal> elliott: the only major recent ircd that is not a fork of something else that I can think of is inspircd.
20:02:12 <elliott> ais523: Debian were on freenode, then jumped ship to OFTC.
20:02:13 <Vorpal> and the only two good major ircds I know of are inspircd and charybdis.
20:02:22 <elliott> Vorpal: ngircd isn't a derivative of anything
20:02:33 <Vorpal> elliott: who uses it though?
20:02:45 <elliott> Vorpal: Who uses inspircd?
20:02:51 <elliott> ais523: Basically OFTC is the result of freenode being incompetent and awful. :p
20:03:04 <Vorpal> oftc is worse if anything
20:03:21 <elliott> I haven't heard of any troubles with them, but I haven't been on much.
20:03:36 <elliott> Phantom_Hoover: s/FreeNode/freenode/, and what do you mean what do they do? They run an IRC network.
20:03:58 <Vorpal> elliott: yeah getting a cloak for your host seemed utterly complex, and was only given when you could show you had a good reason to need one or some such shit
20:04:22 <elliott> Vorpal: That doesn't mean that they're worse, it just means that they're more conservative, which is kind of the point.
20:04:24 <Vorpal> I would be okay with normal cloak like freenode, or the network scrambling the host name
20:04:55 <elliott> Phantom_Hoover: They're not exactly very professional, and their policies are pretty bad.
20:05:09 <elliott> I think the staffers are not well-liked by a lot of people, but I don't really keep track of this stuff.
20:05:37 <Vorpal> elliott: iirc some of the worst people got booted from the staff. Still a few bad ones left. But I don't really keep up with that either.
20:05:41 <elliott> Phantom_Hoover: I would say so :P
20:05:55 <Vorpal> I know someone who does, so I get to hear some of it that way, of course that is biased.
20:06:43 <Gregor> "The Zune HD web browser scores 5/100 in the Acid3 test." X-D
20:06:51 <elliott> A certain person who we don't know who it is at _all_ complained, then Plazma, etc.
20:07:06 <pikhq_> Gregor: Quite "impressive" considering in-development IE gets 100/100.
20:07:20 <Vorpal> Gregor: that is fucking terrible. Considering even IE6 got more iirc.
20:07:37 <Gregor> Vorpal: The Zune's browser is uniquely bad. You have to use it to believe it.
20:07:48 * pikhq_ would be willing to bet on a port of IE5
20:07:49 <Vorpal> firefox 6 gets 100/100 of course
20:07:59 <Gregor> pikhq_: I have discovered that the greatest thing about the Zune is that it has legitimate fanboys who I can troll endlessly since they're fans of literally the worst media player ever made.
20:08:17 <pikhq_> Vorpal: IE5 is the most portable IE.
20:08:28 <Vorpal> pikhq_: eh, it still requires windows doesn't it?
20:08:29 <Gregor> Phantom_Hoover: Mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmrrrrp?
20:08:31 <pikhq_> Vorpal: It actually ran on not-Windows!
20:08:37 <Vorpal> pikhq_: oh right, mac os
20:08:47 <pikhq_> Vorpal: It was offered for Windows, Solaris, and HP-UX.
20:08:58 <Vorpal> pikhq_: and iirc mac os classic
20:08:58 <pikhq_> IE for Mac was a completely different product that shared the brand name.
20:09:15 <pikhq_> IE for UNIX was a direct port.
20:09:30 <Vorpal> pikhq_: IE for mac was quite weird. Of course it shared the "moving mouse pointer = slower download" issue of all classic mac os
20:09:43 <Vorpal> that was more due to the OS
20:09:48 <Gregor> Anyway, the Zune, with Liberate (to get rid of their shitty UI and reintroduce a shittier one but with better app compatibility) and an FTP server is approaching a tolerable device.
20:10:10 <Gregor> Though the lack of hardware volume buttons is seriously the worst offense any media player could commit.
20:10:11 <pikhq_> Yeah, the design of classic Mac OS was pretty ridiculous.
20:10:46 <pikhq_> It made plenty of sense on the first few Mac models.
20:10:57 <Vorpal> pikhq_: I used Mac OS 9
20:11:00 <pikhq_> And got to be utterly ridiculous when running on PowerPCs.
20:11:59 <pikhq_> Shame they didn't switch to A/UX in the late 80s, though.
20:12:54 <elliott> Gregor: How do you adjust the volume on a Shuffle, I wonder
20:13:34 <olsner> using the volume control, perhaps
20:13:35 <elliott> Gregor: Hmm, it has volume buttons?
20:13:44 <elliott> Gregor: And one other button, right?
20:13:51 <elliott> olsner: The Shuffle has ~no controls.
20:13:56 <Gregor> The new ones have five I think ...
20:14:05 <elliott> I'm talking about the ones that are basically headphones.
20:14:10 <pikhq_> elliott: Some had hardware buttons, some had buttons *on the fucking headphones*.
20:14:13 <Gregor> The shuffle has always had controls, just no screen.
20:14:16 <elliott> No I mean the ones before that.
20:14:28 <pikhq_> Before that, they had hardware volume buttons.
20:14:34 <Gregor> There has never been a shuffle with no controls whatsoever, just (like pikhq_ said) they've been in stupid places.
20:14:50 <elliott> "It also no longer had volume or track controls on the device itself. Instead, the packaged iPod earbuds included a three-button device on the right earbud cord."
20:14:52 <pikhq_> There was nothing intervening. Went from buttons on the device to buttons on the fucking headphones, the right dicks.
20:14:56 <elliott> So lame, it should have a one-button device.
20:15:03 <elliott> One button goes to the next option, sitting for enough time on one option selects it.
20:15:08 <elliott> And a "do nothing" option in each menu.
20:15:37 <Gregor> Anyway, point being, even when Apple went "lol NO SCREEN", they STILL put hardware volume, because OF COURSE YOU PUT HARDWARE VOLUME CONTROLS.
20:15:39 <pikhq_> It's already pretty dang useless.
20:16:03 <pikhq_> I want to play random music approx. never.
20:16:43 <Gregor> They should make a CloudShuffle that just plays completely random garbage from iTunes via Verizon 3G :P
20:16:47 <elliott> pikhq_: You might not, but 99 percent of iPod user s do.
20:16:49 <Gregor> With no controls (EXCEPT VOLUME)
20:17:04 <elliott> Gregor: It should just tune into random radio frequencies.
20:17:09 <elliott> For three minutes at a time.
20:17:15 <Gregor> elliott: Not terrible enough.
20:17:17 <pikhq_> elliott: Yeah, fuck that shit.
20:17:32 <elliott> Gregor: How do you propose to make it more terrible
20:17:39 <Gregor> elliott: CloudShuffle :P
20:17:48 <Gregor> Except, only select songs that are in the, say, 25 most popular on iTunes.
20:18:06 <Gregor> So it's repetitive, horrible, and there's not a damned thing you can do about it.
20:18:10 <elliott> Gregor: Dude, that still plays music (please give your idiotic jokes that "DATS NOT MUSIC" to /dev/null).
20:18:13 <elliott> This would just play static.
20:18:16 <elliott> Different static. Every three minutes.
20:18:23 <elliott> The chances of hitting on a real radio are approximately 0 :P
20:18:29 <Gregor> I thought you implied that it actually seeked :P
20:18:35 <elliott> Fuck no, it just picks a random frequency.
20:18:36 <Gregor> Not just completely random frequencies, but random /stations/ :P
20:18:37 <pikhq_> 25 most popular on itunes.co.jp will make it even more repetitive.
20:18:57 <elliott> So you go "please stop here, please stop here" when it briefly passes over a real station on the path to Radio Bzzzzzzt.
20:19:11 <Phantom_Hoover> elliott, dude, radio frequencies are wide enough that you'd get real stations often enough.
20:19:24 <elliott> Phantom_Hoover: You're implying that it only picks from frequencies actually used for radio.
20:19:39 <elliott> Here's a list of frequencies that could, theoretically, be used to transfer sounds of some sort: Every frequency.
20:19:58 <Phantom_Hoover> elliott, except receiving almost all of those is impossible.
20:20:13 -!- sllide has joined.
20:20:15 <elliott> Phantom_Hoover: If it picks a station it can't receive, it just kills the user.
20:20:16 <Gregor> Also, bringing a RFShuffle on a plane is illegal :P
20:20:43 <pikhq_> elliott: That would be totally awesome if it picks up ELF band.
20:20:57 <elliott> You might even get some whalesong!
20:21:09 <elliott> quintopia: It comes with its own nuclear power station.
20:21:23 <elliott> Apple: "The smallest media player, ever."
20:21:30 <elliott> Fuck You Industries: "It's so big. So big. You don't even know. So big."
20:22:07 <pikhq_> The US runs a radio station on 76 Hz.
20:22:30 <Gregor> Idonno, I still feel like the CloudShuffle is the superior device.
20:22:45 <ais523> pikhq_: how long would an antenna need to be to pick that up with any reasonable amount of gain?
20:22:56 <elliott> Gregor: The problem is that it'd actually be not entirely terrible sometimes :P
20:23:02 <elliott> I mean, people, in general, don't mind pop music.
20:23:07 <Gregor> elliott: But that's the draw!
20:23:08 <pikhq_> elliott: It exists to provide one-way transmission to submarines world-wide.
20:23:09 <ais523> in the millilightsecond range, I think
20:23:23 <Gregor> Even with shiny Appleness, the RFShuffle would never sell a single unit :P
20:23:31 <Gregor> People would actually be stupid enough to buy CloudShuffle.
20:23:40 <elliott> Gregor: Well, yeah, I'm telling you to stop being holier-than-thou on IRC and to go sell this thing :P
20:23:59 <Gregor> But ... but I am holier than thou :(
20:24:34 <pikhq_> ais523: I'm not entirely sure how big the receiving antennas are. The broadcasting site is a few square miles, though.
20:24:46 <elliott> Gregor: Actually the "internet streaming-based shuffley device" idea is a really good one.
20:24:56 <elliott> Gregor: Residential connections will be fast enough to act as servers for that soon enough.
20:24:57 <Gregor> Noooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo D-8
20:25:15 <pikhq_> Russia also has a station on 82 Hz.
20:25:19 <elliott> Gregor: It sure beats syncing a shitload of FLACs to a device that doesn't have nearly enough space to store all of them.
20:26:36 <Vorpal> pikhq_: yes, except didn't they shut them down since then iirc?
20:26:51 <pikhq_> Vorpal: What, and risk losing funding?
20:27:06 <Vorpal> pikhq_: in Russia though?
20:27:22 <pikhq_> Okay, Russia probably did, because the fall of the USSR was pretty... Harsh.
20:27:33 <Vorpal> pikhq_: that is an understatement
20:27:56 <pikhq_> On the other hand, I'd imagine it wouldn't take too much to run once it's already set up.
20:28:12 <pikhq_> Most of your cost is going to be laying out miles and miles of antenna.
20:28:28 <elliott> What's the highest frequency anyone does radio on :P
20:28:39 <Vorpal> pikhq_: given the length of the antenna wouldn't the resistance in the antenna be a rather significant problem?
20:29:11 <Vorpal> and anyway, if it is worldwide the current usage will be huge anyway
20:29:33 <pikhq_> Oh, huh. Technically, they're not using antennas for that.
20:29:45 <pikhq_> They're running leads into the earth to use the *planet* as an antenna.
20:29:47 <elliott> Don't they have a facility that uses the Earth itself as an antenna.
20:30:03 <elliott> http://upload.wikimedia.org/wikipedia/commons/3/3d/Clam_Lake_ELF.jpg
20:30:28 <Vorpal> pikhq_: that is sure going to require a HUGE current to work?
20:31:20 <pikhq_> Well, there's no *known* health risks, at least.
20:31:44 -!- monqy has joined.
20:31:45 <pikhq_> It probably would be, because there is no way a 76 Hz wave is going to ionise.
20:33:27 <pikhq_> elliott: Anyways, seems the highest radio frequency used for data is somewhere around 90 GHz.
20:33:36 <elliott> Pssht, I have CPUs faster than that.
20:33:51 <pikhq_> And there's an permitted-unlicensed band at 60 GHz.
20:34:27 <Vorpal> pikhq_: whoa. 90 GHz? Where is that in relation to visible light?
20:34:48 <pikhq_> Vorpal: Visible light starts at 405 THz.
20:34:55 <elliott> A radio station that broadcasted on the light spectrum would be THE COOLEST.
20:35:08 <Vorpal> elliott: well there is data communcation using
20:35:24 <Vorpal> so, technically that is way over 90 GHz
20:35:31 <Vorpal> of course it is not exactly radio
20:35:50 <Vorpal> pikhq_: where does infrared start?
20:36:10 <elliott> Vorpal: Sorry but I cannot see infrared with my eyes.
20:36:24 <Vorpal> The US maintained two sites, in the Chequamegon-Nicolet National Forest, Wisconsin and the Escanaba River State Forest, Michigan (originally named Project Sanguine, then downsized and rechristened Project ELF prior to construction), until they were dismantled, beginning in late September 2004.
20:36:31 <Vorpal> looks like US tore them down
20:37:05 <Vorpal> pikhq_: infrared is quite large then. What part is normally used for remotes and such? Probably near visible light since normal digital cameras can capture th at
20:37:39 <Vorpal> elliott: a DVD drive uses visible light to transfer data. A very short distance, sure, but still
20:37:40 <pikhq_> Yeah, that's somewhere in near infrared...
20:37:58 <pikhq_> From ~200 THz to ~400 THz.
20:37:59 <elliott> Vorpal: AND I CAN'T SEE IT
20:38:05 <elliott> I want a radio station where I can GO AND VIEW THE BEAMS
20:38:22 <Vorpal> elliott: I imagine it would be a soft glow over everything
20:38:35 <Vorpal> anyway it wouldn't work well, because there is too much noise in visible light
20:38:51 <Vorpal> pikhq_: interestingly on digital cameras IR light from remotes tend to look bluish-white
20:38:51 <pikhq_> elliott: That'd be a shitty radio station — most of the point of using radio for modulation is that most things we build with are radio-transparent.
20:39:02 <elliott> pikhq_: I DON'T CARE HOW SHITTY IT IS
20:39:22 <pikhq_> Vorpal: I'd be willing to bet each color sensor is having about equal response to it, then.
20:39:45 <Vorpal> elliott: oh and looking at a broadcast radio antenna would probably blind you. They tend to be around 60 000 W
20:40:08 <elliott> Vorpal: Coooooooooooooooooooooooooooooooooooooooooooooooool
20:40:21 <pikhq_> Vorpal: I don't think that says that much about the lumens.
20:40:22 <elliott> <Vorpal> pikhq_: interestingly on digital cameras IR light from remotes tend to look bluish-white
20:40:26 <elliott> I feel this is an appropriate time to state
20:40:31 <Vorpal> pikhq_: hm. Or it was just too intense when aimed at the actual lamp. I should check it out reflected against a white wall. Of course, I don't know if the white wall reflects in IR...
20:40:53 <elliott> I need another X chromosome and statistical unlikelihood.
20:40:56 <Vorpal> elliott: they can't see in IR either
20:40:58 <elliott> ONLY THEN CAN I SEE MORE COLOURS
20:41:14 <pikhq_> Incidentally, the estimated amount of energy the Sun's light striking the Earth imparts is about 174 PW.
20:41:20 <elliott> Vorpal: I DON'T CARE, THEY CAN SEE MORE COLOURS
20:41:38 <pikhq_> Yes, that is the right unit; petawatts.
20:42:04 <pikhq_> Phantom_Hoover: And humans can see quite well in near UV if you remove their lenses.
20:42:08 <Vorpal> Phantom_Hoover: not enough to see a remote though
20:43:09 <Vorpal> wait a second, what exactly defines IR? Isn't it basically "wavelengths below what a human can see"?
20:43:21 <pikhq_> It's a very loosely defined term.
20:43:26 <Vorpal> which means humans seeing ANYTHING from IR would be absurd.
20:44:11 <pikhq_> But it seems to mean "Wavelengths below what a human can see that are produced largely by object's heat"
20:45:04 <pikhq_> Well, if there's a strict max on the wavelength that roughly corresponds to the bottom of human range, then *some* humans could plausibly see it. Presuming that the limits of the visible range are variable.
20:45:07 <Vorpal> yeah seeing in the full IR would be weird.
20:45:26 <Vorpal> so would full UV of course
20:46:07 -!- oerjan has joined.
20:46:28 -!- boily has quit (Quit: WeeChat 0.3.5).
20:47:42 <fizzie> I don't think near infrared (the night vision/TV remote) zone has much to do with heat.
20:48:15 <Vorpal> lower IR certainly does though
20:48:18 <fizzie> Thermal imaging long-wavelength IR, sure.
20:48:32 <oerjan> if it's hot enough, it does :P
20:48:33 <fizzie> The name-share is a bit confusing.
20:48:45 <oerjan> (as does visual light, of course)
20:49:51 <Vorpal> oerjan: oh btw, I think the English term is "visible light", not "visual light"
20:50:26 <oerjan> actually the peak wavelength of a blackbody never reaches below somewhere in blue
20:52:04 <oerjan> http://en.wikipedia.org/wiki/File:PlanckianLocus.png
20:54:20 <fizzie> But that's just the peak; I assume the intensity overall (incl. UV) will increase if you keep increasing the temperature.
20:54:42 <oerjan> http://en.wikipedia.org/wiki/Black_body
20:55:23 <oerjan> "When an object is visually white, it is emitting a substantial fraction as ultraviolet radiation.
20:56:30 <ais523> Vorpal: you're right on that
21:00:09 <oerjan> ok well the peak radiation does reach UV, it's the total color which has blue as limit
21:01:10 <Vorpal> oerjan: but that is only because we can't see UV I assume?
21:01:31 <Vorpal> <pikhq_> Phantom_Hoover: And humans can see quite well in near UV if you remove their lenses. <-- anyone described what it looked like?
21:01:46 <Vorpal> I don't really want to remove my lens to find out
21:01:52 <ais523> pikhq_: I imagine humans wouldn't be able to focus on anything at all if you removed their lens
21:01:54 <ais523> so it'd just be a blur
21:02:04 <ais523> also, the near UV would be picked up primarily by blue cones
21:02:07 <Vorpal> ais523: yes but what colour I mean
21:02:11 <ais523> so UV would be visible as a shade of blue
21:02:16 <Vorpal> ais523: well yes, but what shade I meant
21:02:29 <Vorpal> would it be bluer than anything they seen before?
21:02:49 <ais523> my guess is it'd be the purple that you see coming out from UV lights (because their color tends to overlap into the visible range a bit)
21:02:59 <Vorpal> ais523: also you could insert an artificial lens I guess?
21:03:01 <ais523> it wouldn't be bluer, it'd just be less red and less green for its brightness
21:03:38 <ais523> Vorpal: did you know that a human's black-and-white vision has a wider field-of-view than their color vision?
21:03:56 <ais523> I've done an experiment where a colored object was placed in such a place that I could see it, just not tell what color it was
21:04:10 <oerjan> from the planck's law formula, it seems like every frequency's emission is increasing with temperature.
21:04:13 <ais523> and you just think "I don't know what color that is", it doesn't look like anything
21:04:14 <Vorpal> never done the experiment though
21:04:18 <ais523> and if you try to visualise it, it's a sort of grey
21:04:24 <ais523> as that's what you visualise colorless things /as/
21:04:36 <ais523> or at least, what I visualise them as, and probably most humans
21:04:39 <Vorpal> ais523: oh the other hand you can't see the outline very clearly either
21:05:11 <Vorpal> ais523: so visualizing it would be a blur, and possibly a headache
21:05:45 <ais523> well, I knew what the object actually was, just not its color
21:05:47 <elliott> <ais523> I've done an experiment where a colored object was placed in such a place that I could see it, just not tell what color it was
21:05:52 <elliott> ais523: where was it placed?
21:05:55 <ais523> as I'd been told, and seen examples of the object in several colors
21:06:00 <ais523> elliott: far to the right of my field of vision
21:06:00 <Vorpal> <ais523> or at least, what I visualise them as, and probably most humans <-- I prefer the checkerboard pattern of transparent found in image editors
21:06:03 <ais523> it was moved in slowly until I could see it
21:06:22 <ais523> Vorpal: but you don't think uncolored objects in real life look like that, surely?
21:06:28 <elliott> ais523: hmm, it's very hard for me to perceive my lack of colour vision there but I suppose that's the point
21:06:36 <elliott> you can't exactly tell you have no colour vision in dreams, either
21:06:46 <ais523> elliott: yes, you remember the colors of things in the boundary
21:06:51 <elliott> I think that's kind of wonderful, in that complete colourblindness isn't greyscale, it's just uncoloured
21:06:59 <ais523> and have a reflex action to look at something that moves into it that you can't see the color of and don't know
21:07:08 -!- pumpkin has joined.
21:07:09 <Vorpal> elliott: there is no colours in dreams? Huh? I'm pretty sure I seen vividly green grass and red flowers in dreams
21:07:22 <oerjan> ais523: since violet triggers red cones as well, i'd expect UV to do the same ...
21:07:25 <ais523> Vorpal: you don't have color vision during dreams, because your eyes are shut
21:07:34 <elliott> Vorpal: some dreams have colour, some don't
21:07:38 <Vorpal> ais523: well yes, you don't have vision at all
21:07:40 <ais523> oerjan: violet /light/ doesn't, but violet /color/ does
21:07:51 <elliott> I imagine colour turns on with lucidity but don't quote me on that
21:07:52 <ais523> because it involves a mix of red, blue, and purple light
21:08:00 <oerjan> ais523: um yes it does.
21:08:00 <elliott> ais523: hmm, I think I just managed to look leftwards enough to perceive the colourlessness of things there, but I dunno
21:08:04 <elliott> could have just been me fooling myself
21:08:23 <ais523> oerjan: the color response curve of cones is a bell curve, isn't it?
21:08:29 <Vorpal> elliott: probably, anyway if you turned your eyes then no.
21:09:01 -!- copumpkin has quit (Ping timeout: 258 seconds).
21:09:06 <oerjan> ais523: i'm pretty sure it's not.
21:09:20 <ais523> oerjan: http://en.wikipedia.org/wiki/Cone_%28vision%29
21:09:29 <ais523> why bother having an argument when you can just check Wikipedia?
21:09:59 <olsner> arguments are more fun, obviously
21:10:12 <oerjan> ais523: you just search faster :P
21:10:31 <ais523> oerjan: that's because I went straight to Wikipedia, and guessed the article name and disambiguator
21:10:46 <ais523> it turns out that that isn't the primary disambiguator, but someone had thoughtfully already added a redirect
21:11:12 <fizzie> That thing is not very well modeled with a Gaussian.
21:13:52 <oerjan> but violet _is_ the shortest pure spectral color wavelength.
21:14:19 <oerjan> so why does it look redder than blue?
21:15:51 <fizzie> You could easily imagine the tail of the red curve overtaking the tail of the blue in the short end.
21:17:08 <fizzie> CIE "standard observer" response functions (used in the XYZ colorspace, and indirectly in Lab) are based on rather bad 1920s approximations of the spectral response of humans; http://en.wikipedia.org/wiki/CIE_1931_color_space#Color_matching_functions
21:20:28 -!- pumpkin has changed nick to copumpkin.
21:21:17 <elliott> What is it with the past harshing our vibe?
21:23:52 <HackEgo> 2011-02-10.txt:20:49:55: <oerjan> <elliott> Gregor: disable that <-- now that's a bit harsh, might want to announce the result to the channel anyhow though
21:24:13 <HackEgo> 2011-09-21.txt:21:21:17: <elliott> What is it with the past harshing our vibe?
21:24:15 -!- Madoka-Kaname has joined.
21:24:23 <HackEgo> 2011-09-21.txt:21:24:19: <elliott> `log harshing
21:24:29 <HackEgo> 2011-09-21.txt:21:24:19: <elliott> `log harshing
21:24:37 <HackEgo> 2011-09-21.txt:21:24:33: <Gregor> `log harsh.*vibe
21:24:47 <Gregor> `pastelogs harsh.*vibe
21:24:52 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.9945
21:25:10 <elliott> See, nobody else is as cool as me.
21:25:19 <oerjan> elliott: i have an idea for using `log without it returning `log searches, unfortunately it only works if everyong uses it
21:25:27 <Gregor> `pastelogs harsh.*buzz
21:25:28 <HackEgo> http://codu.org/logs/log/_esoteric/2011-05-21
21:25:29 <oerjan> namely, put [] around one of the chars
21:25:31 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.28118
21:25:37 <elliott> oerjan: ais523 has a perfect solution to it
21:25:52 <Gregor> That's right, only I would mix those metaphors :P
21:25:56 <elliott> oerjan: anyway, I deliberately left them in :)
21:26:05 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.26726
21:26:20 <elliott> Apparently "harshing my mellow" is vastly more popular than the vibe-based alternative.
21:26:24 <Gregor> Apparently oklopol is the ultimate killjoy.
21:26:25 <elliott> At least according to Google suggestions.
21:27:04 <ais523> elliott: that only works when searching /for/ `log searches
21:27:31 <HackEgo> 2010-10-07.txt:22:47:08: <alise> cpressey: PC-BSD; pontificate
21:28:00 <ais523> `log [^]]njanoewhr;awheroiawer
21:28:40 <elliott> `run log "asoijdhdsghsglfg" | grep -v '<elliott> `run log "asoijdhdsghsglfg"'
21:29:18 -!- augur has quit (Remote host closed the connection).
21:31:09 <fizzie> The `log [^]]foo will still find the bazillion earlier plain `log foos.
21:32:00 -!- augur has joined.
21:32:19 <elliott> <oerjan> elliott: i have an idea for using `log without it returning `log searches, unfortunately it only works if everyong uses it
21:32:26 <elliott> This one only works if everyong uses it, too.
21:33:00 <elliott> egrep -v '\d\d:\d\d:\d\d: <[^>]*> `log'
21:33:00 <Vorpal> huh, why is gmail marking every single new mail I get as "important" based on words it contain.
21:33:10 <elliott> egrep -v '\d\d:\d\d:\d\d: <[^>]*> `(log|pastelogs)'
21:33:11 <Vorpal> I wonder if I can turn that off. It is bloody useless
21:33:18 <elliott> Vorpal: I hid the markers.
21:33:33 <Vorpal> elliott: doesn't help wrt using IMAP client for gmail
21:34:11 <elliott> It doesn't do it for IMAP, apart from the "important" folder.
21:34:15 <elliott> At least according to a quick search.
21:34:22 <elliott> So just delete that folder.
21:34:28 <elliott> What, you can disable conversation view in Gmail now.
21:34:31 <Vorpal> hm. guess that would work
21:34:42 <Vorpal> elliott: you can? Why would that be useful though?
21:35:27 <Vorpal> actually I can think why it would be useful. Gmail likes to put every mail I get from the automated course web system thingy at university in a single convo
21:35:32 <Vorpal> that is kind of annoying
21:36:09 <fizzie> "sed 's/Gregor/Gre\xE2\x80\x8Bgor/g'"?-)
21:36:37 <Vorpal> okay there are other reasons: "Important mainly because of your interaction with messages in the conversation" for example
21:36:39 <Gregor> fizzie: I have no idea to what you refer.
21:36:43 <Vorpal> whatever that one really means
21:36:46 <olsner> UTF-8 ... is that Grègor?
21:37:03 <oerjan> <fizzie> > all $ zipWith (<) [2,6] [3,5]
21:37:04 <fizzie> It has both "Gre" and "gor" in it, so probably not.
21:37:06 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
21:37:09 <fizzie> It smells like some sort of a nick-ping avoidance thing.
21:37:18 <Vorpal> fizzie: where is that from?
21:37:21 <oerjan> > or $ zipWith (<) [2,6] [3,5]
21:37:28 <fizzie> elliot, Vorpal: bin/log.
21:37:32 <oerjan> > and $ zipWith (<) [2,6] [3,5]
21:37:39 <elliott> oerjan: Does having (fmap f x) behave differently to (x >>= return . f) violate the monad laws?
21:37:43 <fizzie> oerjan: CakeCake already said that.
21:37:55 <oerjan> elliott: Monad or Functor
21:37:59 <Gregor> fizzie: I was considering making the same nick-ping avoidance for everyone, but decided only I'm important.
21:38:13 <oerjan> elliott: nothing applicative in there
21:38:29 <Vorpal> Gregor: why not just insert a UTF-8 zero width space?
21:38:40 <Gregor> Vorpal: DUHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
21:38:41 <Vorpal> I don't know any irc client smart enough to nick ping over that
21:38:45 <elliott> `fetch http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/0eea30ea7bb0/bin/log
21:38:46 <HackEgo> 2011-09-21 21:38:46 URL:http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/0eea30ea7bb0/bin/log [185/185] -> "log" [1]
21:38:56 <Vorpal> Gregor: oh is that what you did. I thought olsner said it was Grègor?
21:38:59 <oerjan> elliott: most types have at most one valid fmap candidate, i believe
21:39:13 <Vorpal> elliott: you removed the anti-nick ping?
21:39:14 <Gregor> Vorpal: olsner was wrong :P
21:39:14 <oerjan> elliott: and since x >>= return . f must be one, they must be equal
21:39:29 <elliott> Vorpal: It wasn't an anti-nick ping, it was corrupting certain sections of the log for one specific term.
21:39:33 <Gregor> fizzie: Damn you for letting elliott see that >_<
21:39:51 <olsner> ah, I missed the e before the \x stuff, it looked like it replaced the e
21:39:52 <Vorpal> elliott: so you are against inserting zero width space?
21:39:52 <elliott> oerjan: Hmm, I guess it doesn't matter actually
21:39:53 <oerjan> elliott: in any case it's a gross violation of the intent
21:39:59 <olsner> the rest was pure guess
21:40:06 <elliott> Vorpal: <elliott> Vorpal: It wasn't an anti-nick ping, it was corrupting certain sections of the log for one specific term.
21:40:07 <fizzie> Gregor: Actually I thought (at first glance) it was converting "Gregor" into something derogatory, and that elliott had added it. :p
21:40:09 <elliott> That is the reason I reverted.
21:40:26 <Vorpal> elliott: so there was a bug in where it inserted that zero width space?
21:40:35 <elliott> Vorpal: <fizzie> "sed 's/Gregor/Gre\xE2\x80\x8Bgor/g'"?-)
21:40:40 <elliott> <elliott> Vorpal: It wasn't an anti-nick ping, it was corrupting certain sections of the log for one specific term.
21:40:42 <Vorpal> elliott: yes, it seems okay
21:40:47 <elliott> I will henceforth continue this conversation entirely with quotes.
21:40:48 <elliott> <elliott> Vorpal: It wasn't an anti-nick ping, it was corrupting certain sections of the log for one specific term.
21:40:50 <Vorpal> elliott: it seems like an anti-nick ping for me
21:40:59 <Vorpal> elliott: stop being such an arse
21:41:19 <Vorpal> seriously, anti nick-ping with zero width space is an awesome idea
21:41:29 <elliott> I'm glad to hear you think that. However that was not an anti nick-ping.
21:41:49 <Vorpal> elliott: so it would still ping Gregor? Are you suggesting that?
21:42:19 <elliott> Vorpal: I was unaware that freenode had added a feature to their servers where there would always be a user with the nick "Gregor" on #esoteric.
21:42:38 <Vorpal> elliott: ... you are just being stupid now
21:42:51 <Gregor> He's saying that it's an anti-Gregor-ping, not a (general) anti-nick-ping, And wah wah wah :P
21:43:15 <elliott> Gregor: I'm not really saying anything, I'm just trying to get Vorpal to stop talking to me.
21:43:30 <Vorpal> Gregor: can you get a current user list from inside bin/log?
21:43:40 <Vorpal> then you could insert a zero width space in each nick in there
21:43:55 <HackEgo> _ai \ _corewars \ _esoteric \ _esoteric-minecraft \ _glogbot \ _matrixofsolidity \ _plof \ _scapegoat \ index.php \ log \ log.css \ log.js \ raw \ stalker.php
21:44:01 <elliott> `ls /var/irclogs/_esoteric/????-??-??-raw.txt
21:44:03 <HackEgo> ls: cannot access /var/irclogs/_esoteric/????-??-??-raw.txt: No such file or directory
21:44:06 <Vorpal> elliott: so you would have to parse it manually for nicks
21:44:08 <elliott> `ls /var/irclogs/_esoteric/????-??-??.raw.txt
21:44:09 <HackEgo> ls: cannot access /var/irclogs/_esoteric/????-??-??.raw.txt: No such file or directory
21:44:16 <elliott> `ls /var/irclogs/_esoteric
21:44:17 <Vorpal> better solution please
21:44:18 <HackEgo> 2003-01-18-raw.txt \ 2003-01-18.txt \ 2003-01-19-raw.txt \ 2003-01-19.txt \ 2003-01-20-raw.txt \ 2003-01-20.txt \ 2003-01-21-raw.txt \ 2003-01-21.txt \ 2003-01-22-raw.txt \ 2003-01-22.txt \ 2003-01-23-raw.txt \ 2003-01-23.txt \ 2003-01-24-raw.txt \ 2003-01-24.txt \ 2003-01-25-raw.txt \ 2003-01-25.txt \ 2003-01-26-raw.txt
21:44:26 <elliott> Vorpal: What on earth is not better about that?
21:44:31 <elliott> You can package up the "list of current users" into a command.
21:44:44 <elliott> `run cat 2003-01-18-raw.txt | egrep 'NAMES|JOIN|PART|QUIT'
21:44:46 <HackEgo> cat: 2003-01-18-raw.txt: No such file or directory
21:44:47 <Vorpal> elliott: something that doesn't need to parse every single log from the start to get the current user list?
21:44:58 <Vorpal> if every file start with NAMES then fine
21:45:02 <Vorpal> otherwise it is annoying
21:45:02 <Deewiant> `run cat /var/irclogs/_esoteric/2003-01-18-raw.txt | egrep 'NAMES|JOIN|PART|QUIT'
21:45:04 <HackEgo> < 1042851425 ? :clog!unknown@unknown.invalid JOIN :#esoteric. \ < 1042851425 ? :clog!nef@bespin.org JOIN #esoteric. \ < 1042851716 ? :hcf!unknown@unknown.invalid QUIT :. \ < 1042852578 ? :deltab!unknown@unknown.invalid QUIT :brunner.freenode.net irc.freenode.net. \ < 1042852625 ? :deltab!~deltab@espians.com JOIN
21:45:15 <Gregor> Honestly the solution I would probably do is just s/\(<[^>]*\)\(.>\)/\1ZWSHERE\2/g'
21:45:26 <Gregor> But I suspect elliott would zap that too.
21:45:28 <elliott> Gregor: People can ping inside messages.
21:45:38 <Vorpal> Gregor: brain parse error
21:46:04 <Gregor> elliott: Yes, but that's considerably more rare than just the nick talking. I'm just trying to reduce, not eliminate.
21:46:09 <Vorpal> Gregor: it is your bot, you can just override whatever elliott does
21:46:20 <Gregor> It's HackBot. HackBot is anarchy.
21:46:27 <Vorpal> well okay, but you run it
21:46:47 <ais523> Gregor: clearly you should modify HackEgo's output routines, so they can't be tinkered with from inside the bot
21:46:49 <fizzie> HackBot edit-wars: the best.
21:47:18 <elliott> <Vorpal> well okay, but you run it
21:47:33 <elliott> In which Vorpal is confronted with the idea that not everyone operates on the Vorpal principles of "repeatedly revert until the other party gets bored".
21:48:02 <oerjan> ais523: i didn't think it was possible to modify HackEgo's output routine
21:48:17 <elliott> oerjan: It is if you have access to the machine it runs on.
21:48:22 <Gregor> oerjan: How do you think I added botloop avoidance?
21:48:23 <ais523> oerjan: from inside the bot, no
21:48:56 <oerjan> elliott: Gregor: the "Learn to read context" course is thataway.
21:49:15 <Gregor> oerjan: Context is for losers.
21:49:19 <elliott> oerjan: <ais523> Gregor: clearly you should modify HackEgo's output routines, so they can't be tinkered with from inside the bot
21:49:39 <Vorpal> oerjan: you is the one failing at context.
21:49:46 <oerjan> elliott: i was pointing out it is already impossible to tinker
21:49:49 <Gregor> Madoka-Kaname: Gureegoru
21:49:51 <elliott> The "learn to use the word are" course is thataway.
21:50:00 <elliott> oerjan: You are misparsing.
21:50:11 <elliott> oerjan: "They" =/= the output routines.
21:51:03 <Gregor> "They" there was the ping avoidance codezzz.
21:51:08 <oerjan> Vorpal: /whois is your friend
21:51:36 <Vorpal> Important mainly because you often read messages with this label. <-- what? You mean no label at all? Just sitting there in my inbox?
21:52:03 <Vorpal> <oerjan> Vorpal: /whois is your friend <-- did that, but "+ [Madoka-Kaname] (~moe@unaffiliated/cirno-chan): Moe Moe Power~ <3" meant nothing to me
21:52:17 <Vorpal> I see no mention of "Lymia" there, nor do I know the normal host of that user.
21:52:41 <Vorpal> okay further down there is logged in as, but due to a bug that line sometimes show up in the server tab in my irc client
21:52:47 <oerjan> Vorpal: you don't see a line with account : Lymia ?
21:53:03 <Vorpal> oerjan: as I said just above, it ended up in the wrong tab for unknown reasons
21:53:37 <elliott> Gregor: Anyway, the annoying thing about ping-avoidance is that it makes `log non-idempotent.
21:53:48 <elliott> Well, I suppose it isn't already, since it takes a random line, but the point is that it messes up copying.
21:53:50 <Gregor> *waaaaaaaaaaaaaaaaaaaaaah*
21:54:03 <elliott> Ah, now I'm convinced, I'll add it immediately
21:54:05 <Vorpal> elliott: ddg sometimes make some hilarious mis-suggestions. Try "code indentation" (without quotes)
21:54:11 <fizzie> "Better call the WAAH-bulance."
21:54:20 <Vorpal> It suggested a LaTeX package, nice touch but not quite what I wanted
21:54:51 <elliott> Vorpal: It prioritises user-content sites like StackExchange, I think.
21:54:58 <elliott> It also searches API docs and the like.
21:55:10 <Vorpal> elliott: so very geared towards programmers?
21:55:26 <elliott> Vorpal: Only if it thinks the API docs are relevant.
21:55:32 <elliott> StackExchange is not programmer-only.
21:55:47 <elliott> http://stackexchange.com/sites
21:56:02 <elliott> Jewish Life and Learning beta
21:56:02 <elliott> Q&A for those who base their lives on Jewish law and tradition and anyone interested in learning more
21:56:04 <oerjan> ok putty definitely does not copy zero-length spaces
21:56:12 <elliott> Gardening and Landscaping beta
21:56:12 <elliott> Q&A for gardeners and landscapers
21:56:35 <Vorpal> elliott: are they quite as well frequented as the programming parts though?
21:56:40 -!- Phantom_Hoover has quit (Quit: Leaving).
21:58:47 <elliott> They're separate sites and all.
21:58:53 <elliott> StackExchange =/= Stack Overflow.
22:02:26 <Vorpal> oh come on, ddg special cases xkcd
22:04:26 <Vorpal> elliott: try searching xkcd. It inlines the last comic
22:04:37 <Vorpal> didn't for a few other web comics I tried
22:04:40 <elliott> Vorpal: I bet it does that for anything it thinks is a webcomic. Or maybe any blog.
22:04:58 <elliott> But anyway, good punishment for searching for xkcd.
22:05:01 <Vorpal> elliott: hm https://duckduckgo.com/goodies.html indicates otherwise
22:05:09 <Vorpal> it lists it as a "special query"
22:05:35 -!- sllide has quit (Ping timeout: 260 seconds).
22:07:54 <elliott> https://duckduckgo.com/?q=(%3E_%3C) -- lol
22:10:03 <ais523> monqy: hey, I didn't know you played Crawl
22:10:12 <ais523> Henzell's learndb has you credited as the author of the "autodie" script
22:10:30 <elliott> I did, that's how I got the squarelos stuff
22:10:39 <monqy> ais523: i dont play crawl
22:10:55 <elliott> crawl is a bad game for bad people
22:11:09 <ais523> and you created autodie to get the same effect as playing by hand, just much faster?
22:12:02 <monqy> if by same effect you mean getting things out of the way, yes
22:12:21 -!- Patashu has joined.
22:12:43 <monqy> it's called autodie because of its suicidal tendencies
22:13:26 <monqy> I was trying to (partially) automate crawl in hope that I could get a bunch of the boring parts out of the way in hope that i could enjoy it. but then i got fed up with scripting crawl (its lua and i dislike lua etc etc etc)
22:14:27 <monqy> so now I'm just giving up on crawl until it gets to a point where I like it (though I'm doubtful this will ever happen) or someone makes a fork I like (doubtful here as well)
22:21:31 <oerjan> <ais523> that's, umm, bizarre
22:21:52 <ais523> monqy: did you see autorobin?
22:22:00 <oerjan> more bizarre is that i joked about it before it happened
22:22:01 <ais523> also, dtsund has made a fork with a similar idea to what you just suggested
22:22:04 <Vorpal> elliott: you were right about feedback to ddg.
22:22:06 <ais523> but it hasn't shortened the game much yet
22:22:09 <monqy> I've heard of that fork as well
22:22:10 * oerjan swats elliott with synchronicity -----###
22:22:18 <Vorpal> elliott: works well. Quick response, something like half an hour or so.
22:23:05 <monqy> despite not playing the game, I do still hang around in ##crawl (and ##crawl-dev but you probably noticed me there)
22:23:36 <Vorpal> elliott: seems it is used for the colour picker, though he did agree that I had a good point about it seeming a little strange to normal users who did not know the workings of the code.
22:24:40 <Vorpal> elliott: I think this issue, or more accurately the quick and informative response, made me like the site more. Would never have gotten that from google XD
22:26:09 <oerjan> `log next-door neighbor
22:26:10 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/log: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/log: cannot execute: Success
22:26:34 <oerjan> Gregor: WHAT ARE YOU DOING
22:26:46 <monqy> `log next-door neighbour
22:26:48 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/log: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/log: cannot execute: Success
22:27:19 <oerjan> monqy: i'm pretty sure i don't spell it british. hm or maybe i did, because of the context.
22:27:21 <HackEgo> bin/log: POSIX shell script text executable
22:27:28 <HackEgo> -rw-r--r-- 1 5000 0 185 Sep 21 22:27 bin/log
22:27:38 <Gregor> `run chmod 0755 bin/log
22:27:46 <elliott> bet she used this alt. nick
22:27:50 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
22:27:55 <oerjan> `log next-door neighbor
22:28:00 <HackEgo> 2011-09-21.txt:22:26:09: <oerjan> `log next-door neighbor
22:28:04 <monqy> elliott: would that be lymee or Madoka-Kaname
22:28:23 <oerjan> `log next[- ]door neighbou?r
22:28:26 <HackEgo> 2011-07-12.txt:19:53:16: <oerjan> by some freak coincidence taneb is elliott's next door neighbor
22:30:58 <oerjan> `log live in [Hh]exham
22:31:01 <HackEgo> 2011-01-22.txt:00:58:06: <Phantom_Hoover> elliott, I know you live in Hexham and I know your surname.
22:31:08 <oerjan> `log live in [Hh]exham
22:31:12 <HackEgo> 2011-07-16.txt:21:47:10: <elliott> Taneb: Are you serious do you live in Hexham.
22:31:28 <Gregor> oerjan: It's already case-insensitive
22:31:37 <HackEgo> 2011-09-21.txt:22:31:33: <Gregor> `log lIvE In HEXam
22:31:42 <Gregor> It is not spelling-insensitive though :P
22:31:57 <HackEgo> 2011-09-21.txt:18:45:41: <elliott_> `pastelogs don't tell me you live in hexham
22:38:50 -!- nooga has quit (Ping timeout: 260 seconds).
22:41:42 -!- ais523 has quit (Remote host closed the connection).
22:43:18 <oerjan> <Vorpal> I seen them in Sweden. Not very common here. Been a year or so since I last saw one
22:43:48 <oerjan> i've seen a squirrel outside my window not long ago
22:44:06 <oerjan> may have been this week, or previous one
22:44:39 <Gregor> When europeople come to Purdue, they frequently comment on how many squirrels there are here.
22:44:50 <Gregor> And my response is "... huh? Y'know, we have chipmunks too. And jackrabbits."
22:45:32 <oerjan> um chipmunks are squirrels
22:45:53 <Gregor> oerjan: Yesyes, but in common parlance they're not.
22:46:45 <Gregor> One also doesn't frequently say "Look at that big squirrel!" when talking about a woodchuck.
22:47:36 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:47:54 -!- micahjohnston has joined.
22:48:30 -!- audy has joined.
22:48:52 <oerjan> <elliott> fizzie: Tempred? <-- fizzie tempered his temptations. he's secretly a vulcan, you know.
22:49:23 <Vorpal> Gregor: well okay, one says "oh I guess it is Groundhog Day"
22:49:44 <Vorpal> (sorry, that was a Slash'EM reference)
22:50:22 <Gregor> Vorpal: In the same way that one only refers to humans as animals when specifically making a point about humans being animals. Otherwise the term "non-human animals" is unnecessary and cumbersome. This is the nature of species names in common parlance, they're neither particularly accurate nor particularly (whatever the word is for "including all species derived from a common ancestor")
22:50:59 <oerjan> <Vorpal> Phantom_Hoover: I simply dropped the "have" there somehow
22:51:06 <Vorpal> Gregor: are you sure there is a word for "including all species derived from a common ancestor"?
22:51:24 <Gregor> Vorpal: I'm quite sure that there's the inverse, not sure about that word.
22:51:34 <oerjan> i believe one of the differences between norwegian and swedish is that swedes frequently drop the "have" in perfect forms
22:52:03 <Vorpal> Gregor: what would the inverse be?
22:52:21 <Gregor> Vorpal: ... not including all species derived from a common ancestor ...
22:52:49 <Gregor> e.g. since birds evolved from dinosaurs but birds aren't commonly referred to as dinosaurs, the name "dinosaur" is <that>
22:52:57 <Vorpal> Gregor: I thought you meant a single word for the inverse...
22:53:07 <Gregor> There is a single word for that.
22:53:26 <Vorpal> oerjan: we do? Never noticed
22:53:49 <Vorpal> I would actually say "Jag har sett" in that case
22:54:49 <oerjan> Gregor: um i was responding to your earlier comment
22:54:52 <Gregor> oerjan: Oh, I thought we were g---right :P
22:55:02 <Gregor> Yeah, clade is right for the original, but it's also a noun :P
22:55:10 <oerjan> so for the later one, "not clade", or paraphyletic iirc
22:55:19 <Gregor> Paraphyletic being the inverse.
22:55:44 <Gregor> Point is, species names in common parlance are neither particularly accurate nor particularly monophyletic.
22:57:09 <oerjan> Vorpal: "När jag varit i Norge ..." or so, i think it maybe for subordinate clauses only
22:57:17 <Gregor> And that, my friends, is why chipmunks are not squirrels :P
22:57:32 <Vorpal> oerjan: hm. That works, if somewhat informal
22:57:47 <elliott> Gregor: Your MOM is a squirrel.
22:58:10 <elliott> "The industry standard for image resizing
22:58:10 <elliott> Enlarge images up to 1000% without sacrificing quality" -- uh huh
22:59:05 <Gregor> elliott: It's trivial to /enlarge/ images arbitrarily without sacrificing quality.
22:59:17 <Gregor> Hell, with no interpolation at all you're not sacrificing quality.
22:59:27 <elliott> Gregor: In common parlance...
23:09:36 <elliott> Gregor: We're still waiting for the *tsh*.
23:14:12 -!- elliott has set topic: god bless haskell america | 12345678!&^ | http://codu.org/logs/_esoteric/.
23:15:32 <Gregor> Did ... did you just interpret that as a US date?
23:15:42 <elliott> didn't realise that this wa sthe 9th month
23:15:49 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.20061
23:15:51 -!- calamari has joined.
23:16:02 -!- elliott has set topic: Esolang event @ Hel/Finland on 3.10.2011: https://wiki.helsinki.fi/display/lambda/esoteeriset+ohjelmointikielet | god bless haskell america | 12345678!&^ | http://codu.org/logs/_esoteric/.
23:16:05 -!- calamari has left.
23:18:16 -!- calamari has joined.
23:31:06 <elliott> ?pl do foo <- st; return (foo >>= f)
23:31:07 <lambdabot> expecting letter or digit, variable, "(", "`", "!!", ".", operator or end of input
23:31:10 <elliott> ?undo do foo <- st; return (foo >>= f)
23:31:10 <lambdabot> st >>= \ foo -> return (foo >>= f)
23:31:13 <elliott> ?. pl undo do foo <- st; return (foo >>= f)
23:31:59 -!- copumpkin has joined.
23:36:37 -!- FireFly has quit (Quit: FireFly).
23:38:14 <elliott> oerjan: you didn't make a nice operator for that
23:38:44 <oerjan> most of the weird operators were after my time, anyhow.
23:38:54 <oerjan> there aren't really that many in the haskell report.
23:39:39 <elliott> oerjan: ooh, I wonder if your haskell style can be traced to a defined lineage, since it was probably before haskell's internet explosion in popularity when they all mixed together apart from Utrecht
23:40:14 <oerjan> elliott: it's a rather weird thing to want anyhow, since you are using return on a monadic action
23:40:33 <elliott> yeah turns out I didn't want it :)
23:40:38 <oerjan> in fact, i don't think there's any reason why they need to be the same monad
23:40:57 <oerjan> :t do foo <- ?st; return (foo >>= ?f)
23:40:58 <lambdabot> forall (m :: * -> *) (m1 :: * -> *) a b. (?st::m (m1 a), Monad m, ?f::a -> m1 b, Monad m1) => m (m1 b)
23:41:55 <oerjan> of course it's not _that_ weird, you could easily use a parser monad to build some other monad's actions
23:43:04 <oerjan> i'm sure my haskell style has changed somewhat.
23:43:27 <elliott> oerjan: actually no it seems I do need it... but anyway
23:43:37 <elliott> and probably, but still :P
23:43:50 <elliott> I don't suppose you recall reading one gigantic codebase and nothing else when learning Haskell, that would be convenient to trace it
23:44:36 <oerjan> look at http://oerjan.nvg.org/esoteric/Unlambda.hs it is one of the first haskell programs i wrote
23:45:02 <elliott> hmm, I wonder if 2001 is after when the styles started melding together
23:45:10 <oerjan> heh i just intended by 2 there
23:45:21 <elliott> I like how you import everything qualified
23:45:22 <oerjan> now i have this weird 4 with intermediate 2 thing
23:45:35 <elliott> '.' -> do c <- IO.hGetChar h; return (Dot c)
23:45:39 <elliott> I like the part where you didn't know what fmap was
23:46:03 <oerjan> yes, lots of things i would change today
23:46:05 <elliott> I also like how you abused Show :(
23:46:09 <elliott> (like here means don't like)
23:46:20 <elliott> (Computation cp1) >>= f = Computation cp where
23:46:20 <elliott> cp dat1 cont2 = cp1 dat1 cont1 where
23:46:20 <elliott> cont1 dat2 a = cp2 dat2 cont2 where
23:46:42 <oerjan> i probably didn't know Show was not meant for displaying stuff, you know :P
23:46:46 <elliott> well this is certainly unique code :P
23:47:14 <elliott> callCC f = Computation cp where
23:47:15 <elliott> cp dat cont = cp2 dat cont where
23:47:15 <elliott> (Computation cp2) = f cont
23:47:19 <elliott> oerjan: well I don't exactly see nested where that often :P
23:47:23 <elliott> unless you need it because of scoping
23:47:46 <elliott> newtype Filename = FN String
23:47:54 <elliott> did they not have FilePath back then?
23:48:05 <elliott> <elliott> (Computation cp1) >>= f = Computation cp where
23:48:05 <elliott> <elliott> cp dat1 cont2 = cp1 dat1 cont1 where
23:48:05 <elliott> <elliott> cont1 dat2 a = cp2 dat2 cont2 where
23:48:05 <elliott> <elliott> (Computation cp2) = f a
23:48:57 <oerjan> elliott: seems i didn't know about field names :P
23:49:10 <elliott> Chunk x st >>= f = f x `mappend` Fuck (liftM (>>= f) st)
23:49:10 <elliott> my solution may be suboptimal
23:49:49 -!- Jafet has quit (Quit: Leaving.).
23:51:02 <elliott> oerjan: incidentally couldn't Set be made a monad if (Ord a) => were added to all its constructors
23:51:03 <oerjan> elliott: (Computation cp2) = f a uses the a parameter of the surrounding function, so the last where is definitely needed
23:51:27 <elliott> oerjan: oh darn it does too
23:53:33 <oerjan> <elliott> did they not have FilePath back then? <-- i think this is pretty much pure haskell 98 libraries
23:54:09 <lambdabot> System.IO openFile :: FilePath -> IOMode -> IO Handle
23:54:21 <elliott> you'd still need the newtype admittedly
23:58:33 <oerjan> as for abusing Show, i sometimes defined newtype RawString = Raw String; instance Show RawString where show (Raw s) = s
23:59:49 <oerjan> and i think i have somewhere a [[a]] instance which displays a matrix/table