←2012-01-03 2012-01-04 2012-01-05→ ↑2012 ↑all
00:00:21 <oerjan> oh wait it's show?
00:00:37 <kallisti> well I installed both show and simple-reflect but it seems to be using show.
00:00:49 <kallisti> I'm not sure that it matters
00:00:58 <kallisti> but even after installing show it installed simple-reflect when I told it to
00:01:25 <kallisti> Configuring show-0.4.1.2...
00:03:33 <kallisti> I have a feeling it has something to do with a misconfigured system.
00:03:40 <kallisti> I have both GHC 6 and 7 on this computer.
00:03:48 <oerjan> kallisti: what does Prelude.negate x give?
00:04:08 <kallisti> same thing.
00:04:24 <elliott> <kallisti> elliott: what are some things I should have done before compiling and installing GHC?
00:04:27 <elliott> removing everything
00:04:28 <oerjan> kallisti: iirc they are not supposed to mix packages for different ghc versions
00:04:36 <kallisti> elliott: define "everything"
00:04:36 <elliott> anyway
00:04:37 <elliott> no
00:04:39 <elliott> it's not a misconfiguration
00:04:43 <elliott> the library is just fucked up
00:04:51 <elliott> come on, ghc bugs don't manifest as subtle wrongness where "a" is used for no reason
00:05:04 <kallisti> elliott: -shrug-
00:05:10 <kallisti> so does it work on your system.
00:05:17 <kallisti> with your snazzy GHC 7
00:05:31 <kallisti> and perfectly configuredness etc
00:05:45 <elliott> negate = withReduce $ fun "negate" `iOp` negate `dOp` negate
00:05:46 <elliott> iOp :: (Expr -> Expr) -> (Integer -> Integer) -> Expr -> Expr
00:05:46 <elliott> iOp rr ff aa = (rr a ) { intExpr = ff <$> intExpr aa }
00:05:46 <elliott> dOp :: (Expr -> Expr) -> (Double -> Double) -> Expr -> Expr
00:05:46 <elliott> dOp rr ff aa = (rr aa ) { doubleExpr = ff <$> doubleExpr aa }
00:06:04 <oerjan> O_o
00:06:04 <elliott> instance (Show a, FromExpr b) => FromExpr (a -> b) where
00:06:05 <elliott> fromExpr ff aa = fromExpr $ op L 10 " " ff (lift aa)
00:06:17 <elliott> cba to figure out the bug
00:06:30 <oerjan> elliott: that rr a should have been rr aa, no? :D
00:06:48 <kallisti> hm on the source I looked at it was a not aa
00:07:07 <elliott> oerjan: aha
00:07:07 <elliott> yep
00:07:08 <oerjan> kallisti: see the second iOp line
00:07:09 <kallisti> iOp r f a = (r a ) { intExpr = f <$> intExpr a }
00:07:10 <elliott> a is the variable "a"
00:07:12 <kallisti> on hackage
00:07:18 <elliott> kallisti: http://hackage.haskell.org/packages/archive/show/0.4.1.2/doc/html/src/SimpleReflect.html
00:07:23 <elliott> I don't care what source you're looking at, it's the wrong one
00:07:29 <kallisti> oh hm
00:07:34 <kallisti> Debug.SimpleReflect.Expr
00:07:46 <elliott> that's not the show package
00:07:50 <kallisti> I would have spotted it much earlier if I were looking at the right source. :P
00:07:51 <elliott> which is what lambdabot uses
00:07:56 <elliott> otoh it might be newer/less buggy
00:08:04 <kallisti> http://hackage.haskell.org/packages/archive/simple-reflect/0.2/doc/html/src/Debug-SimpleReflect-Expr.html#Expr
00:08:14 <elliott> anyway
00:08:15 <elliott> http://hackage.haskell.org/packages/archive/numbers/2009.8.9/doc/html/Data-Number-Symbolic.html
00:08:16 <elliott> same package as Dif
00:08:18 <elliott> probably works better :P
00:08:22 <elliott> :t Data.Number.Symbolic.var
00:08:23 <lambdabot> forall a. String -> Sym a
00:08:25 <elliott> yay
00:08:46 <oerjan> kallisti: um you were clearly using show-0.4.1.2 in what you pasted
00:08:53 <oerjan> not simple-reflect
00:09:28 * kallisti is well-known for his attention to detail.
00:09:46 <elliott> you don't say
00:10:03 <kallisti> well, technically, yes. I ACTION'd it
00:10:13 <kallisti> :>
00:10:42 * kallisti compiles mueval yet again.
00:11:20 -!- Jafet has quit (Quit: Leaving.).
00:12:01 -!- Jafet has joined.
00:12:14 -!- NihilistDandy has joined.
00:12:17 <kallisti> elliott: you never explained why I shouldn't move mueval into /usr/bin
00:12:27 <kallisti> or maybe you did and I forgot
00:12:47 <zzo38> To make include file by search path, I have made the <|> for IO and the choice for any Alternative and then make as follows:
00:12:56 <zzo38> loadInputFile = parseInputFile >=> either ((>> exitFailure) . hPutStrLn stderr . show ) (fmap join . sequence . fmap loadIncludeFiles);
00:13:06 <zzo38> parseInputFile n = theSearchPath >>= (<|> fileErr n) . choice . fmap (parseFromFile (mmlParser <* eof) . (</> n));
00:13:15 <zzo38> loadIncludeFiles (Include x) = loadInputFile x; loadIncludeFiles x = return [x];
00:14:15 <zzo38> Is this the proper way or is there better ways?
00:14:50 <kallisti> elliott: also what's the difference between mueval and mueval-core?
00:15:21 <elliott> oerjan: hm in (f x), what precedence is f at
00:15:31 <elliott> kallisti: i don't know
00:15:53 <oerjan> elliott: 11 or so...
00:16:17 <kallisti> I don't recall seeing the Report mention a precedence for function application.
00:16:27 <oerjan> iirc showsPrec uses 11 for the level above operators?
00:16:53 <oerjan> the haskell report doesn't assign any numbers to non-operator syntax afair
00:18:00 <kallisti> oh nice Symbolic does reductions
00:18:07 <kallisti> like actual reductions
00:18:18 <kallisti> deriving cos yields -sin x
00:18:33 <oerjan> also, the let, case and \ expressions don't fit into simple precedence
00:19:35 <oerjan> they are high from the left, but cannot be put right after application, and are greedy/low to the right
00:22:59 <elliott> kallisti: simplereflect does too, they're just manual
00:23:02 <elliott> you have to ask for them
00:23:28 -!- Phantom_Hoover has joined.
00:23:41 <Phantom_Hoover> Oh, Jesus, Vi Hart is now affiliated with Khan Academy.
00:24:13 <Phantom_Hoover> @tell Sgeo You are no longer allowed to use any Khan Academy resources. Thank you for your coöperation.
00:24:14 <lambdabot> Consider it noted.
00:24:27 <Sgeo> What's wrong with Vi Hart?
00:24:28 <lambdabot> Sgeo: You have 2 new messages. '/msg lambdabot @messages' to read them.
00:24:39 <Sgeo> @messages
00:24:39 <lambdabot> oerjan said 8d 11h 14m 17s ago: well i have a hunch that you need a bit of self-esteem more than you need intelligence.
00:24:39 <lambdabot> Phantom_Hoover said 26s ago: You are no longer allowed to use any Khan Academy resources. Thank you for your coöperation.
00:25:22 <Phantom_Hoover> Sgeo, tau advocate, not to mention that I strongly suspect that she's what SMBC terms a math enthusiast, i.e. someone more concerned with the trappings of maths than the actual substance.
00:25:45 <oerjan> lambdabot: i don't like your reverse amnesia
00:26:17 <Phantom_Hoover> I haven't watched her videos in a while, but ISTR them having a large element of "look at this cool thing maths is so beautiful!" without actually explaining the underlying maths.
00:26:57 <kallisti> > let derivs f x = takeWhile (/=0) . map val . iterate df . f $ dVar x in derivs (^3) (Data.Number.Symbolic.var "x")
00:26:59 <lambdabot> [x*x*x,(x+x)*x+x*x,2*x+x+x+x+x,6]
00:27:05 <kallisti> .....6?
00:27:42 <oerjan> yes, 6
00:27:44 <kallisti> > let derivs f x = takeWhile (/=0) . map val . iterate df . f $ dVar x in derivs (^3) (Data.Number.Symbolic.con "x")
00:27:45 <lambdabot> No instance for (GHC.Num.Num [GHC.Types.Char])
00:27:45 <lambdabot> arising from a use of `de...
00:27:56 <kallisti> > let derivs f x = takeWhile (/=0) . map val . iterate df . f $ dVar x in derivs (^3) (Data.Number.Symbolic.con 5)
00:27:57 <lambdabot> [125,75,30,6]
00:28:04 <kallisti> hm, okay.
00:28:09 <kallisti> oh right
00:28:15 <zzo38> 6 is certainly the correct answer in [x*x*x,(x+x)*x+x*x,2*x+x+x+x+x,6]
00:28:25 <zzo38> But I don't know why they didn't simplify the other results more
00:29:12 <elliott> oerjan: hm what precedence is \ at
00:29:16 <elliott> > 2 + \e -> e
00:29:17 <lambdabot> *Exception: show: No overloading for function
00:29:29 <oerjan> elliott: i just told you above
00:29:37 <elliott> oerjan: ah
00:29:44 <elliott> oerjan: ok what's a _conservative_ precedence to assign \ :P
00:30:00 <oerjan> 11 from the left, -1 from the right?
00:30:33 <elliott> oerjan: *single precedence
00:30:41 <elliott> conservative as in, always valid but sometimes produces needless parens
00:30:50 <elliott> (yes -inf would count :P)
00:31:06 <oerjan> oh. -inf then
00:31:07 <elliott> @src shows
00:31:07 <lambdabot> Source not found. You untyped fool!
00:31:09 <elliott> @src show
00:31:10 <lambdabot> show x = shows x ""
00:31:17 <elliott> oerjan: bah fine
00:32:13 <elliott> oerjan: hm what precedence is e at in (\_ -> e)
00:32:36 <oerjan> ...it's an arbitrary expression
00:32:53 <oerjan> so also -inf, i guess
00:33:08 <oerjan> or hm
00:33:16 <elliott> oerjan: ok what precedence would you showsPrec it at if you had to showsPrec an e in that position :P
00:33:23 <elliott> I guess (-1) would work
00:33:27 <elliott> except, no
00:33:30 <elliott> you want /no/ parens
00:33:33 <elliott> not /always/ parens
00:33:35 <elliott> so it's actually +inf
00:33:43 <elliott> so... 11
00:33:52 <oerjan> elliott: erm not really
00:34:05 <elliott> er wait no
00:34:07 <elliott> oerjan: ok it's +inf
00:34:35 <Phantom_Hoover> http://www.reddit.com/r/math/comments/o13r9/profile_of_eric_lander_mathematician_turned/
00:34:48 <Phantom_Hoover> Profile of a mathematician turned biologist.... turned killer
00:34:53 <oerjan> elliott: no, that way if e contains any operators it will be parenthesized
00:35:07 <elliott> oerjan: oh right it's > not <
00:35:11 <elliott> oerjan: ok so -1 then
00:35:53 -!- oerjan has quit (Quit: Good night).
00:36:37 <elliott> Phantom_Hoover: I was hoping it'd be actually that.
00:37:02 <Phantom_Hoover> Does the prospect of biomathematical murder entice you?
00:37:08 <elliott> Yes.
00:37:11 <elliott> Phantom_Hoover: What's a synonym of inspectable.
00:37:29 <Phantom_Hoover> Lookable.
00:37:41 <elliott> Phantom_Hoover: I hate you.
00:38:26 <Phantom_Hoover> (You cannot be a biomathematical murderer because you are a) a programmer and hence incapable of science and maths and b) an English pansy and hence incapable of killing anything.)
00:40:19 <kallisti> elliott: scrutinable
00:40:23 * Phantom_Hoover → sleep
00:40:27 -!- Phantom_Hoover has quit (Quit: Leaving).
00:41:32 <kallisti> elliott: auditable
00:41:35 <kallisti> examinable
00:41:57 <kallisti> investigable
00:43:49 * kallisti enjoys how particularly easy it is to define a recursive dual number for automatic differentiation.
00:44:01 <kallisti> so that you can continue taking derivatives of derivatives.
00:44:20 <kallisti> or compute values from differentiated numbers and differentiate that.
00:47:12 <elliott> http://hackage.haskell.org/package/ad does all that
00:49:30 * kallisti thinks it would be swell if Symbolic transformed x*x into x^2 and x*x^e to x^(e+1)
00:49:52 <kallisti> also x+x to 2*x, and x + C*x to (C+1)*x
00:50:20 <kallisti> perhaps I could convince them to let me patch it or something?
00:51:46 <kallisti> though I'd be more interested in a more generalized way to redefine display/reduction behavior.
00:54:14 <elliott> itt: cas
00:55:52 <kallisti> not quite, no.
00:56:12 <kallisti> unless a CAS can be embedded in Haskell's numeric typeclasses.
00:56:16 <kallisti> then yes, sure.
00:57:18 <kallisti> but I'm mostly interested in a few simple reductions.
00:57:59 <kallisti> not, say, sovling equations and performing complex algebra.
00:59:29 -!- Jafet has quit (Quit: Leaving.).
00:59:35 <kallisti> there's something called DoCon but it... apparently has no documentation
01:02:18 -!- iconmaster has joined.
01:02:30 -!- iconmaster has quit (Client Quit).
01:04:09 <kallisti> @tell iconmaster hi, your nick makes me think of ReBoot.
01:04:10 <lambdabot> Consider it noted.
01:05:36 <kallisti> it would be interesting to analyze the complexity of language implementations.
01:06:27 <kallisti> for example, why is Perl so slow? is it all constant factors is it non-constant stuff going on under the hood?
01:06:40 <kallisti> s/factors/factors or is it/
01:08:06 <kallisti> I would think it's mostly constant factors or linear factors.
01:08:52 <kallisti> variable interpolation would be linear (not counting stuff like @{[...]} which is basically an eval)
01:13:07 <elliott> kallisti: did you know: the asker of the highest-voted question of all time on SO only has 263 rep
01:13:52 <elliott> this is hilarious to me
01:13:54 <elliott> probably because
01:13:57 <elliott> i have gone completely off the deep end
01:14:08 <kallisti> yes
01:14:26 <kallisti> you're like me when I was playing WoW.
01:15:32 <olsner> elliott: which question?
01:16:08 <kallisti> "how do I shot web?"
01:16:28 <olsner> not "how is babby formed?" then?
01:18:34 <elliott> olsner: http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books
01:18:46 <elliott> it got converted to community wiki before they could reap the massive rep spoils :P
01:19:18 <elliott> slightly above an hour after being posted, even
01:36:54 -!- derdon has quit (Remote host closed the connection).
01:37:42 <kallisti> "I am a bug" is the worst thing I've ever read.
01:44:03 <elliott> wat
01:45:43 -!- lambdabot has quit (Ping timeout: 244 seconds).
02:02:44 <pikhq> Worse than "I am Error"?
02:31:30 -!- MDude has changed nick to MSleep.
02:41:05 -!- pikhq has quit (Ping timeout: 248 seconds).
02:41:07 -!- pikhq_ has joined.
02:55:55 <elliott> hi
03:09:01 -!- augur has joined.
03:18:29 -!- pikhq has joined.
03:21:18 -!- pikhq_ has quit (Ping timeout: 244 seconds).
03:29:38 -!- cheater has quit (Ping timeout: 268 seconds).
03:45:15 <itidus21> that list is pretty cool
03:47:46 <zzo38> I found some pinball game for Texas Instruments calculator, but you cannot choose which direction to nudge the table (it always does in a random direction when you push that button), and you have to wait ten seconds before nudging again otherwise you are accused of cheating.
03:49:27 <zzo38> Due to these rules, it isn't a very good game.
03:50:24 <itidus21> and on the strength of this accusation you are escorted from the premises bringing an early end to the game of pinball
03:52:30 <zzo38> Most computer pinball game you can at least select which direction to nudge the table! And does not have such a severe penalty (it isn't cheating to nudge the table, anyways). (Flipperless computer pinball games usually have no penalty for nudging the table, however.)
03:58:14 <ais523> zzo38: real pinball tables penalise you for nudging the table
03:58:26 <ais523> sometimes with a warning, but if you do it repeatedly, or hard enough, they lock both flippers and you automatically lose the ball
03:58:29 <zzo38> ais523: Yes they do; but only if you do it too hard or too much.
04:14:17 <quintopia> i have the best pinball game
04:14:26 <quintopia> it is a dos game
04:14:42 <quintopia> i can't remember what it's called but it is best
04:16:09 <zzo38> I have Visual Pinball, it has some flipperless games JiggleBox is best one.
04:17:23 <quintopia> i cant play it anymore
04:17:31 <quintopia> because i dont have a windows box
04:17:45 <quintopia> if i find it, i'll give it to you
04:18:14 <zzo38> Visual Pinball doesn't work on Wine either. It is only for Windows. But there can be make better one for many operating system and with open source, possibly.
04:18:58 <quintopia> i vote yes
04:19:10 <quintopia> but you have all these ideas and you never make them :/
04:19:14 <zzo38> I don't think this is a yes and no question
04:24:31 <itidus21> this pinball project which is under strict deadlines will require a new programming language like C and Haskell, but markedly superior
04:26:11 <elliott> like C and Haskell?
04:26:12 <elliott> simultaneously?
04:26:45 <itidus21> hmm.. it just has to be better than them
04:28:15 <ais523> it's hard to envisage a language that's better than C at everything and also better than Haskell at everything
04:28:22 <ais523> although if it existed, I'd probably use it
04:30:13 <pikhq> It's hard to envisage a language that's better than C at *everything* that's not a C-family language with stupid decisions omitted.
04:36:28 <itidus21> its necessary to make the pinball game
04:38:25 <quintopia> make it
04:39:18 <ais523> give me a lang that's better than C, Haskell, and Perl in every respect, and I'll write scapegoat in it
04:39:42 <zzo38> I am not saying it has to be done either
04:40:05 <pikhq> ais523: Wouldn't it be enough to be better than C and Haskell in every respect? *zing*
04:40:20 <ais523> neither's really good for one-off text processing
04:40:29 <elliott> ais523: @
04:40:36 <pikhq> What, and Perl is?
04:40:39 <ais523> doesn't yet exist
04:40:41 <pikhq> :P
04:40:44 <ais523> pikhq: surprisingly, yes
04:40:45 <elliott> ais523: neither does scapegoat
04:40:55 <pikhq> (yes, yes, I know, that's the *one* thing Perl actually does well.)
04:41:00 <zzo38> But my general idea, is that it has some kind of Forth-like virtual machine, which can be programmed in Forth but also in C or Haskell or other programming languages, but there are two separate programs: the one that sets the physical table parameters, and one which emulates the CPU of the pinball.
04:41:03 <quintopia> elliott: give him @ and he'll give you scapegoat
04:41:08 <quintopia> like he said
04:41:12 <pikhq> It *is* awk on steroids, after all.
04:41:17 <elliott> but what vcs will i develop @ with?
04:41:31 <zzo38> And unlike Visual Pinball and whatever, you must use physical parameters so the CPU emulation program cannot do anything that it cannot do physically, even if done by computer physics.
04:41:34 <pikhq> I see we have a cyclic dependency here.
04:41:36 <elliott> ais523: we need some mutual productive recursion so we can have @ and scapegoat be created codependently so they can be developed with each other
04:41:38 <ais523> elliott: something that sg imports well
04:41:46 <pikhq> I'm going to solve this in the standard elliott way.
04:41:48 <elliott> ais523: give me a bit of scapegoat and i'll give you a bit of @
04:41:56 <pikhq> elliott: You will develop @ with @ as the VCS.
04:42:15 <ais523> elliott: hmm… I'm guessing sg will at least mostly be written in ASCII, so the first bit is probably going to be 0
04:42:19 <elliott> pikhq: @ as the solution to every problem, offloading work to others... yep, checks out
04:42:21 <ais523> the second, harder to say
04:42:37 <elliott> ais523: I need 32 bits to get started
04:42:45 <elliott> in return i'll produce 64 bits of @
04:42:53 <zzo38> Text processing can be one thing Perl does well; but AWK can also do text processing it is designed for that purpose.
04:42:56 <pikhq> elliott: "Scap"
04:43:19 <ais523> elliott: are we just both going to come up with increasingly long header comments? :P
04:43:24 <pikhq> zzo38: Yup. And Perl is AWK with more stuff.
04:43:31 <ais523> but I can't even do that without knowing what language to write sg in
04:43:34 <elliott> ais523: no way, @ isn't textual
04:43:38 <elliott> ais523: just gimme the start of the README or something
04:43:40 <elliott> or LICENSE
04:43:40 <ais523> seriously, I probably would write it if I could think of an appropriate language
04:43:46 <pikhq> (in spirit, if not in a more strict sense)
04:43:53 <ais523> elliott: surely, @'s /comments/ can contain textual data, though?
04:43:56 <quintopia> it doesnt have to be the first 32 bits does it?
04:44:07 <quintopia> do the bits have to be consecutive?
04:44:08 <ais523> so you just need to start with the bits that mean "comment", then the content of the comment
04:44:14 <elliott> ais523: I'm giving you the bit format of it, certainly it's not going to start with a packed UTF-8 string
04:44:36 <elliott> ais523: anyway, I'd be trying to implement sg more actively if I remembered what the most recent model was
04:44:52 <zzo38> pikhq: Yes, Perl does have things like AWK
04:44:58 <ais523> as I said, I'd draw a picture of it if I were any good at drawing
04:45:00 <zzo38> So Perl can be used for text processing too
04:45:21 <elliott> ais523: just use LaTeX or something, there's diagram packages
04:45:30 <pikhq> Which, if it's designed for anything, that's what it's designed for.
04:45:31 <ais523> but I'd have to learn them
04:46:23 <elliott> ais523: ah, you're trying to do something successfully without learning!
04:46:27 <zzo38> To draw pictures, you can also use ImageMagick, GIMP, Microsoft Paint, METAFONT, SVG, ... depend what you make. I think there is some GNU diagram program to make diagrams, or something like that
04:46:28 <elliott> good luck, nobody has ever managed that.
04:46:38 <ais523> elliott: no
04:46:46 <ais523> I'm trying /not/ to do something, to avoid having to learn how
04:47:37 <ais523> that's reasonable, right?
04:47:46 <zzo38> I happen to think METAFONT and ImageMagick combined can make draw picture good for many uses.
04:48:21 * quintopia does all his drawing in php
04:49:02 <zzo38> Yes, PHP does have drawing function too.
04:50:08 <zzo38> I have done job asked by some other people, making program in PHP to draw pie charts.
05:05:40 <elliott> Wow, I've been programming for ~8 years.
05:09:06 <itidus21> wow, only 8..
05:09:19 <itidus21> apparently programming is about quality not quantity
05:11:02 -!- MDuck has joined.
05:11:12 <elliott> itidus21: 8 years is a pretty long time to do one thing.
05:11:31 <elliott> Anything over 8 would be stretching it a bit, anyway; I doubt I would have been very good at programming at 7.
05:11:35 <elliott> (Not to say I was any good at it at 8.)
05:11:35 <itidus21> it is if you actually do that thing instead of pretending to do it
05:12:50 <pikhq> itidus21: Please, like you wrote large, significant things when you were 15. :P
05:13:05 <itidus21> i never created anything signifigant ever :D
05:13:16 <itidus21> its the art of super procrastination
05:14:27 -!- MSleep has quit (Ping timeout: 244 seconds).
05:17:29 <itidus21> ok i get it anyway
05:17:45 <itidus21> so elliott is referring to programming when he knew how to program
05:17:55 <itidus21> not the screwing around training years
05:23:58 <Frooxius> But you learn all the time. When is the point where you "know how to program" and where you don't? I mean, I think it's somewhat gradual transition. Plus, you always learn new things, so you might think in the future that you didn't know how to program now x3
05:24:25 -!- lambdabot has joined.
05:25:08 <itidus21> the point is ~8 years ago
05:25:51 <itidus21> Frooxius: i think the concept of when does a child become an adult is related
05:27:42 <Frooxius> Yeah that's not sudden transition either. Though... some remain children in some ways for a long time :D
05:28:00 <itidus21> Frooxius: for someone like me, the process is about realizing i am not yet a programmer
05:28:07 <itidus21> having my ego smacked down
05:28:23 <itidus21> by that bastard cryst_eheh_heh
05:28:34 <itidus21> in a chatroom in a distant land
05:28:52 <itidus21> umm nevermind :D
05:28:58 <Frooxius> I never really consider myself anything that much, I just keep making stuff as best as I can and that's it. I don't need any label to do what I do.
05:29:46 <Frooxius> Plus I constantly think things I do are horrible anyway so... x3 It helps to improve them though
05:30:06 <Frooxius> Or throw into garbage and redo from scratch
05:32:33 <itidus21> i see myself as more of the john romero type.. except not as cool as him
05:32:52 <elliott> <itidus21> so elliott is referring to programming when he knew how to program
05:32:52 <elliott> <itidus21> not the screwing around training years
05:32:52 <elliott> no
05:33:10 <elliott> I programmed when I was 8 but I didn't know how to program when I was 8 :p
05:33:20 <itidus21> ah
05:33:28 <itidus21> so is it like learning to speak?
05:33:53 -!- Frooxius_ has joined.
05:34:43 <elliott> I doubt it. Maybe a foreign language, but I've never learned one.
05:34:50 <elliott> The easiest way to find out what it's like would be to do it.
05:35:08 <itidus21> oops.. ^s/speak/read
05:35:44 * kallisti didn't know how to program for maybe like a year? if he understands elliott correctly.
05:35:57 <kallisti> or, hmmm, a few months.
05:36:08 <itidus21> i screwed around in qbasic 1.0 with the help files at first
05:36:24 <elliott> kallisti: oh, you think you know how to program! how long ago did you start programming?
05:36:33 -!- Frooxius has quit (Ping timeout: 248 seconds).
05:36:36 <kallisti> I was 15. so, 5 years ago.
05:36:46 -!- Frooxius_ has changed nick to Frooxius.
05:36:49 <elliott> kallisti: congratulations, you're in your 5th year of not knowing how to program :)
05:36:57 * elliott doesn't know how to program either.
05:37:07 <kallisti> elliott: when does one learn to program, great sensei. :P
05:37:25 <elliott> you don't.
05:37:31 <kallisti> no one is programmers?
05:37:41 <kallisti> what we do?
05:37:48 <elliott> no, we're programmer
05:37:49 <elliott> s
05:37:49 <kallisti> how is shot web?
05:37:59 <itidus21> this guy i knew, he wanted to teach me stuff... he basically knocked me out of the ring when teaching me to try to actually make 2d games in c for windows
05:38:25 <itidus21> it was like *pow* *pow pow pow*
05:38:30 <kallisti> lol
05:38:33 <kallisti> why did you think of it as a competition?
05:38:44 <elliott> kallisti: because that's the only way he can frame it as losing
05:38:46 <itidus21> because im an asshole
05:39:02 <elliott> kallisti: observe him attempting to lose your question ^
05:39:11 <itidus21> lol elliott
05:39:41 <elliott> yes, i'm making a funny joke
05:39:42 <kallisti> I certainly don't think I've mastered programming by any means, nor do I have very much experience with good program design. But I feel that the past 5 years count for something.
05:40:47 <kallisti> a few weeks in, I remember asking #python what a delimiter was. :P
05:40:59 <kallisti> it used this word "delimiter" in the split method thing and I didn't know what that meant.
05:42:52 <zzo38> I have written part of a D&D prestige class called "Aberration Saver" that corresponds to the organization called "Aberration Saver"; I also wrote the title of a prestige class "Celestial Saver" and of spells "Circling the Square" and "Confuse Time" and "Confuse Objects" and of feats "Minimize Spell".
05:43:22 <zzo38> Maybe I should add one class for calculus or category theory or something like that, too.
05:45:06 <kallisti> lol.
05:45:25 <kallisti> motivic cohomology
05:48:44 <itidus21> i should clean my room some day
05:49:02 <kallisti> itidus21: what do you have to do right now?
05:49:04 <kallisti> why not clean it now?
05:49:49 <itidus21> it can wait a little longer..
05:49:49 <kallisti> !perl print int(rand(2)?'clean room":"definitely clean room"
05:49:52 <EgoBot> Can't find string terminator "'" anywhere before EOF at /tmp/input.2326 line 1.
05:49:58 <kallisti> !perl print int(rand(2)?'clean room':"definitely clean room"
05:49:59 <EgoBot> syntax error at /tmp/input.2368 line 1, at EOF \ Execution of /tmp/input.2368 aborted due to compilation errors.
05:50:15 <kallisti> !perl print (int(rand(2)?'clean room':"definitely clean room")
05:50:16 <EgoBot> syntax error at /tmp/input.2431 line 1, at EOF \ Execution of /tmp/input.2431 aborted due to compilation errors.
05:50:18 <kallisti> ?
05:50:45 <kallisti> !perl print int(rand(2)?'clean room':"definitely clean room"
05:50:46 <EgoBot> syntax error at /tmp/input.2508 line 1, at EOF \ Execution of /tmp/input.2508 aborted due to compilation errors.
05:50:47 <kallisti> olwkeojsdfoijiowejr
05:51:03 <kallisti> oh
05:51:07 <kallisti> !perl print int(rand(2))?'clean room':"definitely clean room"
05:51:08 <EgoBot> definitely clean room
05:51:09 <kallisti> :>
05:52:33 -!- Vorpal has joined.
05:59:24 <itidus21> i seek feedback on this http://pastebin.ca/2098801
06:06:09 <itidus21> in contrast with that scheme, an idea i am thinking about is http://pastebin.ca/2098804
06:10:51 -!- Klisz has quit (Read error: Connection timed out).
06:11:38 -!- Klisz has joined.
06:12:23 <itidus21> and adding the instructions {"w","a","s","d"} to change the current cell in the io matrix
06:12:40 <elliott> (mirrored to http://sprunge.us/GdOR, http://sprunge.us/UNSd)
06:12:57 <itidus21> lol
06:13:02 <elliott> how do you initialise the io matrix
06:13:08 <elliott> BF IO is based on one-dimensional bytestrings
06:13:16 <elliott> so how do you turn the input into a matrix?
06:14:39 <itidus21> hmm.. by violating everything near and dear about esolangs heheh
06:15:24 <itidus21> one analogy for what i have dubbed the io matrix is a bitmap
06:16:24 <itidus21> so all the input and output would act upon a bitmap
06:17:08 <elliott> you should check out paintfuck
06:17:11 <elliott> not the same thing but bitmap bf all the same
06:17:28 <itidus21> i also had the idea of a frame updating operator
06:18:44 <itidus21> so, wwwwaaaassssdddd would theoretically move a cursor of sorts in a box shape in the bitmap, and then an extra operator such as "e" would tell it to update
06:19:55 <itidus21> so ,w.w.w.w.a.a.a.a.s.s.s.s.d.d.d.d.e!# would theroetically draw a box made of #
06:20:54 <itidus21> my lack of comprehension of bf's [ and ] operators is probably signifigant at this stage :P
06:21:03 <itidus21> but doesn't really matter
06:22:58 <itidus21> hmm paintfuck seems to embody the idea of wasd as nsew
06:24:30 <elliott> <itidus21> so ,w.w.w.w.a.a.a.a.s.s.s.s.d.d.d.d.e!# would theroetically draw a box made of #
06:24:33 <elliott> this isn't a valid brainfuck program
06:24:38 <elliott> ! is just a notational convenience for /interpreters/
06:24:42 <elliott> it specifies input
06:24:47 <itidus21> ya
06:24:50 <elliott> you have to compute the ascii value of ! manually intsead
06:24:54 <itidus21> oh i see what you mean here
06:25:03 <itidus21> since... my input is my bitmap
06:25:14 <itidus21> i can't really have my cake and eat it
06:25:15 <elliott> (also, most interpreters don't support it -- it originated with the dbfi self-interpreter, which was forced to use such a scheme because it's all bf itself can host)
06:26:39 <itidus21> hmm
06:27:28 <itidus21> ^bf +++++++++++++++++++++++++++++++++++.
06:27:29 <fungot> #
06:27:57 <itidus21> +++++++++++++++++++++++++++++++++++w.w.w.w.a.a.a.a.s.s.s.s.d.d.d.d.e :-D
06:28:39 <itidus21> i guess i should focus on paintfuck direction notation
06:30:02 <itidus21> +++++++++++++++++++++++++++++++++++n.n.n.n.e.e.e.e.s.s.s.s.w.w.w.w.q (where q = some kind of.. end of frame/cellular automaton iteration operator)
06:30:50 <zzo38> I read some idea about a chess variant with an infinite number of rules. But I have different idea, which is a chess variant where the number of kind of pieces is exactly googolplex. You could have a 10x10 board indicating possible jumps, in each cell put a number 0 to 9. For each possible configuration of this board, assign a number 0 to 9. Each possible set of these value is the kind of piece. Its Haskell type would be: ((Ten, Ten) -> Ten) -
06:33:53 <itidus21> "q" is really intended here along the lines of vsync as if to say, the data is ready
06:34:11 <itidus21> well not like vsync.. but sort of like it
06:37:49 -!- zzo38 has quit (Quit: zzo38).
06:38:30 <itidus21> another goal i have in mind with such things is to use such a language to control a memory mapped array inside a given program
06:39:33 <itidus21> but the more i think about it the more ridiculous it seems
06:46:40 <itidus21> so this "memory mapped array" might look like: cell 0 = player1 paddle position, cell 1 = player2 paddle position, cell 3 = player1 points, cell 4 = player2 points, cell 5 = ball x position, cell 6 = ball y position
06:53:22 <elliott> <itidus21> "q" is really intended here along the lines of vsync as if to say, the data is ready
06:53:29 <elliott> it's called blitting... or flipping the buffer... or w/e
06:53:44 <itidus21> ah
06:56:29 <itidus21> so it's really a perverted goal of writing pong in a brainfuck derivative
06:56:47 <itidus21> or.. not the entire pong, but the logic of it
06:58:56 <itidus21> i have to admit paintfuck is very curious
07:01:10 -!- Klisz has quit (Quit: SLEEP, GLORIOUS SLEEP).
07:07:43 <itidus21> i won't truely be a BF programmer until i master the [ and ]
07:11:22 <elliott> kallisti: hi
07:11:42 <kallisti> hi
07:11:46 <kallisti> lo
07:11:47 <kallisti> l
07:12:46 <elliott> kallisti: i just descended into
07:12:50 <elliott> the furthest depths possible
07:12:56 <kallisti> quit it
07:12:58 <kallisti> do something productive
07:13:09 <kallisti> like me
07:13:14 <kallisti> sitting aorund watching SC2 games.
07:13:16 <elliott> http://meta.stackoverflow.com/questions/41976/question-title-that-doesnt-describe-the-problem
07:13:18 <elliott> i just read
07:13:19 <elliott> this
07:13:21 * kallisti paragon of productivity.
07:13:24 <elliott> i have hit absolute rock bottom
07:13:28 <elliott> because
07:13:29 <kallisti> lol
07:13:31 <elliott> it's actually really funny
07:14:00 <kallisti> no it's terrible
07:14:11 <kallisti> it's stepped in SO culture.
07:14:22 <elliott> so is your face
07:14:25 <elliott> qez
07:14:38 <kallisti> is qez like qed but cooler.
07:15:41 <elliott> yes
07:17:07 <kallisti> $.butterfly({ aLongList: ofParameters, whichAre: notExplained
07:17:09 <kallisti> });
07:18:08 <kallisti> elliott: there are so many things in this that are like...
07:18:13 <kallisti> self-deprecating.
07:18:20 <kallisti> like SO culture is to self-deprecate itself.
07:19:22 <elliott> kallisti: metastackoverflow is about 65% experienced users complaining about the terrible quality of most of the questions/answers
07:19:32 <kallisti> fun
07:20:47 <itidus21> is pollyanna even a user?
07:23:00 <elliott> itidus21: renamed
07:23:06 <elliott> @-references don't get updated when names change
07:23:06 <lambdabot> Unknown command, try @list
07:23:06 <itidus21> ahh
07:23:09 <elliott> infer from context appropriately :P
07:23:20 <elliott> (they really should get rewritten but i guess it's too heuristicy)
07:24:37 <kallisti> http://bicycles.stackexchange.com/
07:24:39 <kallisti> yesssss
07:24:42 <kallisti> just what I've been looking for.
07:25:14 <itidus21> apparently pollyanna is adam davis
07:25:43 <kallisti> http://cstheory.stackexchange.com/questions/9563/all-recursive-algorithms-are-inherently-not-inplace-isnt-it
07:25:47 <kallisti> loooooooooooooooooooooooooooooooooooooool
07:25:58 <elliott> "This question has an open bounty worth +50 reputation from Alan Turing ending in 7 days."
07:26:00 <elliott> you don't see that every day
07:26:06 <elliott> thanks turing
07:26:13 <kallisti> obviously all of those recursive tree algorithms in the STL are not in-place.
07:28:04 <kallisti> cstheory stackexchange doesn't get a lot of answers
07:28:08 <kallisti> elliott: THIS IS YOUR GOLDEN OPPORTUNITY
07:28:13 <kallisti> TO BECOME MASTER OF CSTHEORY STACKEXCHANGE
07:28:16 <kallisti> THINK OF THE REP
07:28:18 <kallisti> YOU COULD BE NUMBER 1
07:29:21 <ais523> "Porn Univeristy Of Blow Job"
07:29:35 <ais523> who even searches for that sort of thing? it's unlikely to be worded exactly like that even without the typo
07:30:35 * ais523 vaguely wonders what findthisall.com is actually for, given that it's trying so hard to drive traffic to itself
07:31:03 <kallisti> ais523: uh, what are you talking about. :P
07:31:10 <ais523> kallisti: wiki spam
07:31:15 <kallisti> oh
07:32:07 <elliott> ais523: hey, my degree is from the Porn University of Blow Job
07:32:34 <elliott> Blow Job is a wonderful little down, and I understand Adam Porn, the university's founder, was a very generous man indeed
07:32:35 <elliott> *town
07:32:41 <ais523> heh
07:32:50 <ais523> anyway, findthisall.com is responsible for about half the spam the wiki gets
07:33:02 <elliott> ais523: what's graue's email?
07:33:18 <ais523> the domain's oceanbase.org, you can probably guess the rest
07:33:28 <itidus21> Blow Job is a wonderful little down the way
07:33:51 <ais523> hmm, if we even had a spam blacklist, I could just put findthisall.com on it
07:33:53 <ais523> but we don't
07:34:34 <elliott> how long has the wikispam been going on? has to be at least two months by now, surely?
07:35:08 -!- kallisti has set topic: TODO: spam blacklist | http://codu.org/logs/_esoteric/.
07:35:27 <itidus21> perhaps a bot should be developed which posts wiki edit titles into the channel, and a capacity to delete those wiki edits
07:35:38 <ais523> findthisall.com started on 15th november 2011
07:35:40 <kallisti> yes let's spam the wiki and the channel at the same time
07:35:42 <kallisti> great idea.
07:36:06 <ais523> the other spambot that we have a lot started rather earlier, but it's harder to block in an automated way
07:39:25 * elliott sends an email off to graue
07:39:35 <elliott> I suggest we try and trick the spambots into spamming Graue if he doesn't reply :)
07:41:48 <kallisti> change the names/ids of every element on every page.
07:42:02 <kallisti> and the bots won't know where to find anything.
07:43:09 <elliott> kallisti: it doesn't really work like that...
07:43:33 * elliott decides kallisti needs to learn more about spamming software for reasons :)
07:43:46 <ais523> elliott: well, the bots are breaking the CAPTCHA
07:43:56 <kallisti> elliott: why does it not work like that.
07:44:06 <ais523> swapping the IDs for captcha answer and edit summary would probably work
07:44:25 <ais523> as the bots probably wouldn't notice that they'd swapped round, and they certainly aren't spamming the CAPTCHA answer into every text box on the page
07:44:36 <elliott> ais523: I rather suspect they might go on element order
07:44:44 <elliott> perhaps even rendered size
07:44:46 <ais523> ah, that's possible too
07:44:53 <elliott> or they might search for known text around the boxes
07:44:59 <elliott> like usage information and field labels
07:45:07 <elliott> site admins really won't want to mess with those, after all
07:45:10 <ais523> seems a little advanced for a spambot
07:45:25 <ais523> normally they just aim at low-hanging fruit
07:45:33 <fizzie> "Aren't you little short for a spambot."
07:45:41 <elliott> ais523: yeah, Esolang must be reeling in billions for them :P
07:45:49 <elliott> (I realise they're not specifically targeting Esolang)
07:46:14 <kallisti> elliott: I think you're expecting far too much from spambots.
07:46:16 <ais523> OK, now I'm curious
07:46:17 <kallisti> maybe /some/ do that.
07:46:21 * ais523 visits findthisall.com in w3m
07:46:31 <ais523> even if its purpose is to spread malware, I bet it doesn't spread it via w3m on Linux
07:46:47 <ais523> I mean, even if that combination is vulnerable, the chance that anyone would bother to try an exploit for it is basically 0
07:47:02 <kallisti> anyway if it's element order (which is pretty likely as well) then you can just add some hidden elements somewhere
07:47:29 <ais523> hmm, it's a list of searches it guesses I might be using, and some results
07:47:32 <ais523> although quite a few of them are empty
07:47:34 <fizzie> Hidden elements, which they ignore, since they try to approximate what a user would do.
07:47:35 <ais523> what an embarassing homepage
07:47:47 * ais523 searches for INTERCAL
07:48:01 <fizzie> Are you sure you're not looking for High Quality Euro Watches?
07:48:20 <ais523> heh, many of the results are just random URLs with irrelevant descriptions and INTERCAL worked into them somewhere
07:48:25 <ais523> this seems to be a clearinghouse for spam links
07:48:43 <ais523> as in, it's nothing but sponsored referrals
07:48:55 <elliott> ais523: i visited it, it's boring
07:48:57 <ais523> "Check results for INTERCAL on our free comparison site"
07:49:15 <ais523> elliott: indeed
07:49:24 <ais523> what a pointless thing to spam
07:49:43 <kallisti> ais523: I say you tias
07:49:52 <kallisti> and you may be pleasantly surprised at how dumb spambots actually are.
07:49:56 <ais523> they're relying on people searching for a term, finding findthisall.com, then completely forgetting what they were looking for and clicking on one of its links because they look interesting
07:50:14 <ais523> nah, every distinct website I visit increases the chance that one of them has a w3m exploit
07:50:17 <kallisti> and by you and I mean the owner of the wiki.
07:50:33 <ais523> kallisti: oh, you mean change the wiki layout?
07:50:34 <ais523> I can't
07:50:40 <kallisti> yes.
07:50:42 <kallisti> and yes I figured.
07:50:42 <ais523> there are several obvious solutions to the current rash of spam
07:50:51 <ais523> but graue isn't implementing any of them, or even responding to emails
07:51:04 <elliott> hmm, yay, I should hit the last SO privilege level before the 3 ridiculously huge ones today
07:51:18 <ais523> "You want information about search engine optimization and you would like to have it in a easy to understand format. If this is the case, this article will be perfect for you. We will lay out some of the most important tips and guidelines, in a way that you can quickly digest. The main thing to remember is that you need a solid strategy for which %LINK1% you'll be using, and how you'll use them, but we'll get to that in a moment."
07:51:21 <elliott> (it goes 5000, 10000, 15000, 20000)
07:51:29 <ais523> what does the 5000 level do?
07:51:49 <ais523> hmm, are you going to hit the top privelege level then delete the entire site?
07:51:50 <elliott> allows me to vote on suggested post edits and approve tag wiki edits
07:51:55 <elliott> ais523: yes, that's my master plan
07:51:59 <ais523> like EVE Online scammers?
07:52:52 <elliott> (10000 gets you moderation privileges like delete votes, handling flags, viewing deleted posts, etc.; 15000 lets you protect questions; 20000 lets you vote to delete answers, delete closed questions, edit tag wikis arbitrarily)
07:53:13 <elliott> I assume there's some secret level above those that lets you delete the site
07:53:17 <elliott> it'd only be logical
07:53:41 <ais523> "delete votes"? that sounds abusable
07:53:47 <elliott> hmm, the 10k rep privileges are kind of like wikipedia making people admins when they hit a certain edit count
07:53:52 <ais523> does it let you delete downvotes aimed at you?
07:53:58 <elliott> except not really, since people have to vote and accept your stuff to raise rep :)
07:54:03 <elliott> ais523: cast delete votes, that is
07:54:06 <elliott> i.e. cast votes to delete questions
07:54:08 <ais523> oh, I see
07:54:17 <ais523> and also cast votes to not delete, I take it?
07:54:33 <elliott> I don't think any of the voting systems work that way, they're mostly just 5 people -> action taken
07:54:39 <elliott> e.g. it takes 5 close votes to close a question
07:54:43 <ais523> ah, I see
07:55:05 <elliott> and you need a good amount of rep to cast them in the first place
07:55:12 <elliott> so the chances of a high-quality question being closed like that are low
07:55:38 <ais523> I guess 5 people with the ability to cast delete votes could delete the whole site, one question at a time
07:55:57 <elliott> heh
07:56:45 <ais523> hmm, I guess I'm one of the few people in the world with enough technical knowledge to delete Wikipedia's Main Page correctly, if I had admin privileges
07:56:50 <ais523> the thing would just get undeleted pretty quickly, though
07:57:10 <ais523> I'm amused that the safeguards against deleting it are so much higher than the safeguards against editing it
07:57:18 <fizzie> ais523: You've mentioned this before, in fact. Are you sure you're not harboring some Main Page deletion fantasies?
07:57:30 <elliott> He's talked about it at least 3 or 4 times.
07:57:37 <ais523> fizzie: it's because I've been trying to persuade Wikipedia to move it to Portal:Main for ages
07:57:41 <ais523> but I gave up after a while
07:57:42 <fizzie> Department of Wikiland Security may be in touch.
07:57:49 <ais523> hmm, I suppose I should claim that's the reason I left
07:57:52 <elliott> ais523: You can delete Esolang's main page. Nobody will notice if you just do it for a few minutes.
07:57:57 <elliott> Don't keep your urges cooped up inside.
07:58:02 <ais523> anyway, there's always a big debate about "can you actually /do/ that?"
07:58:09 <ais523> and the answer is "yes, if you know how, it's actually quite easy"
07:58:14 <ais523> but nobody ever believes me
07:58:43 <elliott> ais523: The one thing I must do with my life is to become a producer of creative works of sufficient notability that an article on any major work I create is guaranteed, and then to release such a work and title it Main Page.
07:58:55 <ais523> elliott: indeed
07:59:37 <elliott> I really want to have a universe sandbox so I can see what would happen before I commit to actually going to all that effort to making it happen.
08:00:13 <ais523> elliott: how do you know you're not in one at the moment, and simply held back your memories of the outside whilst inside it, in order to make sure you acted plausibly
08:00:31 <elliott> ais523: if that is the case, I salute its creator
08:00:33 <elliott> godspeed, me
08:00:50 <elliott> but it's inevitable that I /will/ end up doing all that, because it's specified in the parameters
08:00:54 <elliott> so I don't have to devote any effort to actually doing it
08:01:09 <elliott> probably the simplest way this will happen is for me to change my mind and devote effort to it
08:01:16 <elliott> ais523: Jimbo Wales' editcount is /under 9000/?
08:01:28 <ais523> would you expect it to be high?
08:01:33 <ais523> most of what he does doesn't require actual edits
08:01:36 <ais523> and he isn't even in charge any more
08:01:48 <ais523> also, he preferred to use a mailing list to wiki talk pages for discusison
08:01:50 <ais523> *discussion
08:01:56 <ais523> which is, I think, a mistake
08:02:03 <elliott> ais523: well, it's been 11 years
08:02:07 <fizzie> elliott: You can aim for the low-hanging fruit and just design an esolang called "Main Page".
08:02:11 <elliott> he's made under 818 edits per year
08:02:30 <elliott> that seems abnormally low for a founder who at least participated /moderately/ actively for a good while
08:02:51 <elliott> fizzie: do you really think any of us would object to putting a dab on our main page for that?
08:03:01 <elliott> I'd probably just link the trilime to it :P
08:03:53 <fizzie> What's that "I have plans for this file!" mean?
08:04:33 <elliott> fizzie: I uploaded it to put it on my Main Page redesign.
08:04:41 <elliott> You can't hotlink it from the theme files.
08:04:58 <elliott> Obviously I had to upload it before anyone actually knew about the redesign, though, to test it :p
08:05:31 <elliott> http://esoteric.voxelperfect.net/w/index.php?title=Main_Page&direction=next&oldid=21677
08:05:43 <elliott> I like how the last few edits before I replaced it were adding more "of the day"s
08:05:48 <elliott> it reached critical mass
08:06:38 <elliott> ais523: [[User:Fydo851ts563n‎]]
08:06:41 <fizzie> So what does the trilime symbolize?
08:06:45 <elliott> fizzie: nobody knows
08:07:00 <elliott> wait
08:07:02 <elliott> holy crap
08:07:07 <elliott> ais523: fizzie: the trilime is the matrix of solidity
08:07:07 <ais523> elliott: deleted
08:07:16 <ais523> elliott: but, umm, what?
08:07:24 <ais523> it predates us hearing about the matrix of solidity
08:07:31 <elliott> ais523: exactly!
08:07:37 <elliott> do you seriously believe the matrix of solidity didn't exist before we heard about it?
08:07:38 <fizzie> Linear time is no boundary for the matrix of solidity?
08:07:39 <elliott> we're /trapped/ in it
08:07:44 <elliott> further evidence: 1. limes are solid 2. if not the trilime, what else?
08:07:47 <ais523> elliott: s/trapped/locked/
08:08:14 <elliott> ais523: hmm, I suppose you could argue we're consensually locked
08:08:16 <elliott> deep
08:08:30 <ais523> elliott: but you're underage!
08:08:40 <elliott> ais523: not in the matrix of solidity!
08:08:47 <elliott> This is the Postfix program at host pendrell.textdrive.com.
08:08:48 <elliott> I'm sorry to have to inform you that your message could not
08:08:48 <elliott> be delivered to one or more recipients. It's attached below.
08:08:48 <elliott> For further assistance, please send mail to <postmaster>
08:08:48 <elliott> If you do so, please include this problem report. You can
08:08:48 <elliott> delete your own text from the attached returned message.
08:08:50 <elliott> The Postfix program
08:08:52 <elliott> <graue-deadnet@pendrell.textdrive.com>: maildir delivery failed: error writing
08:08:54 <elliott> message: Disc quota exceeded
08:08:56 <elliott> ais523: you lied to me
08:09:30 <ais523> elliott: well, that's the last known email address for Graue
08:09:38 <ais523> I didn't get an error about it when I sent there
08:09:42 <ais523> my guess is that it /is/ his email address
08:09:44 <ais523> but he no longer reads it
08:09:51 <ais523> and his disc quota has entirely filled up with mail
08:09:57 <ais523> explaining why I didn't get a bounce on my last email, but you did
08:10:00 <fizzie> Email of the day: "Uh, we have this exam for this course you're the assistant for tomorrow, do you have any idea who's preparing the questions?" "Er... the lecturer of the course flew to Tokio a week ago, left his laptop at home, and won't be back until the 16th..."
08:10:13 <elliott> ais523: searching elsewhere, scott at the same domain seems to be his email address too
08:10:19 <ais523> note that you're not going to get "disc quota exceeded" unless it can identify the user in question
08:10:22 <ais523> elliott: are you going to try it?
08:10:25 <elliott> ais523: maybe!
08:10:42 <elliott> failing that, I'll find out where he lives and take a crowbar
08:11:14 <elliott> sent, let's see if it bounces
08:12:43 <elliott> ais523: theory: graue likes spambots
08:13:01 <ais523> so how do you explain the ban on <div>?
08:13:04 <fizzie> I guess I got nominated to prepare an exam. "Oh well, let's check the previous one for ideas and the TeX template... bash: cd: edu/T-61.5140/exam: Permission denied"
08:13:13 <elliott> ais523: he also hates div and span tags
08:13:26 <elliott> fizzie: :D
08:13:33 <fizzie> It's SPAMbots he likes, not SPANbots.
08:13:40 <elliott> fizzie: ("Tokio".)
08:13:55 <fizzie> elliott: Whoops; went with the Finnish spelling.
08:14:31 <elliott> hmm, maybe i should sleep
08:14:37 <elliott> maybe i'll ask ais523 whether i should sleep
08:14:48 <ais523> elliott: I should sleep myself
08:14:51 <ais523> but I keep getting distracted
08:15:03 <ais523> either that, or I should stay awake until a sensible time to sleep and then sleep
08:15:11 <ais523> the thing is, I need to be awake at about 7pm
08:15:16 <fizzie> "drwx--S--- 3 [lecturer's account] edu 7168 2011-11-10 12:20 edu/T-61.5140/exam/" well that's just impolite.
08:15:20 <ais523> so if I don't go to sleep soon, I won't have time to fit in a good day's sleep
08:15:29 <ais523> fizzie: setgid? why?
08:15:34 <ais523> to a group that doesn't exist?
08:15:43 <elliott> why would the edu group not exist?
08:15:47 <fizzie> Huh? The 'edu' group exists just fine.
08:15:52 <fizzie> Inherited from the parent, probably.
08:16:08 <elliott> fizzie: Can't you just use a root escalation?
08:16:20 <ais523> oh, I read edu as the user, and 7168 as the group
08:16:42 <fizzie> Oh; right, I redacted the user.
08:16:50 <fizzie> To protect the guilty, and so on.
08:17:29 <fizzie> Oh well, the student-run exam archive probably has scanned copies of the old exams anyway.
08:17:52 <fizzie> (Not the 2011 ones, apparently.)
08:20:25 <elliott> fizzie: I wish the students could see this, it'd be so reassuring for them.
08:21:22 <elliott> fizzie: You should somehow work the channel into one of the questions, e.g. "Alice connects to her favourite IRC network irc.freenode.net and joins #esoteric. Bob sends her an automated welcome message. What is 2 + 2?"
08:22:56 -!- zzo38 has joined.
08:23:02 <fizzie> It's a re-re-exam anyway; the "main" one was last May, and a repeat opportunity last August; this one is just for the stragglers.
08:23:29 <fizzie> Three people have signed up for it, though I suppose there could always be a couple extra; signing up is in theory mandatory, in practice not.
08:23:49 <fizzie> How much can three people matter? Wait, no, not three people: three students.
08:24:02 <fizzie> Three smelly, unwashed students. (Disclaimer: they might not smell.)
08:24:12 <elliott> fizzie: You should just not give them an exam and they'll be so happy. Probably.
08:24:28 <elliott> "Is this an exam?" (correct answer "no")
08:26:10 <elliott> hmm, i just got another upvote
08:26:14 <elliott> maybe i _will_ sleep after all
08:26:24 <elliott> (cue ais523)
08:26:37 <Deewiant> fizzie: Why'd the lecturer leave his laptop at home and how do you know this? (I presume it wasn't an accident or you wouldn't know about it, unless he called you or something.)
08:27:38 <elliott> The lecturer was Deewiant all along.
08:27:46 <elliott> (Is Deewiant still even at that place? Finland is so confusing.)
08:28:07 <Deewiant> Yes, I'm at that place for a sufficiently broad value of "that place".
08:28:52 <elliott> Deewiant: University thingy thingy Google Wave. Without the Google part.
08:28:57 <elliott> Although Finland might merge with Google in the coming years.
08:29:21 <Deewiant> Yes, I'm at that university.
08:29:40 <elliott> Haven't you been there, like, ten years now? FINLAND.
08:29:48 <fizzie> Deewiant: He emailed me on 28th (of December) that "I'll be leaving for Tokyo tomorrow, back on Jan 16th, not going to take a computer with me, could you kindly update next year's details on the course's website?" Had (apparently; we haven't managed to contact him) completely forgotten about any exam.
08:30:06 <fizzie> Deewiant: I guess it's borderline possible he'd have a ready exam in his office? Though probably not very likely.
08:30:21 <Deewiant> fizzie: Worth a shot I guess.
08:30:26 <Deewiant> elliott: Like four, I think.
08:30:32 <elliott> Who the hell doesn't take a computer with them?
08:30:41 <elliott> That's like "I'm not taking clothes, or oxygen."
08:30:42 <fizzie> elliott: It's called a va-cay-shun.
08:30:52 <elliott> Naked space vacuum vacation.
08:30:59 <elliott> (The term is "holiday", foreigner.)
08:31:07 <elliott> wow, i just got another update!
08:31:09 <fizzie> Holy day.
08:31:15 <elliott> ais523: you should sleep, i don't need you to be awake to entertain me since i'm sleeping
08:31:19 <elliott> *upvote
08:32:41 <fizzie> elliott: Anyway, he's not answering his phone either, so I think it's the "unplugged" sort of a holiday. (I mean, don't people usually go to Tokyo to get rid of the hussle and bustle of civilization?)
08:33:03 <fizzie> Hussel-bussel. Anyway.
08:33:26 <fizzie> Tokyo, the last uncharted wilderness. And so on.
08:34:01 <fizzie> (Can you even get an Internet connection there? Maybe with a satellite phone...)
08:34:26 <elliott> I have a hard time believing it's possible to cross the street without a smartphone in Tokyo.
08:35:55 <elliott> I think ais523 fell asleep.
08:36:15 <Deewiant> fizzie: On an unrelated note, your ICS user web page is old enough that it's full of dead links.
08:36:39 <ais523> no, I'm still awake
08:36:41 <zzo38> I don't take computer to vacation.
08:36:51 <zzo38> I usually do take books, pencil, paper.
08:37:17 <zzo38> I don't take telephone to vacation either.
08:37:35 <elliott> Deewiant: Are you suggesting he adopt the FASCIST AALTO TEMPLATE? (I assume they have a template. It is possible they have a template. A template... might exist?)
08:37:51 <elliott> (Who the fuck calls a university Wave?!)
08:37:54 <Deewiant> elliott: He's using an out-of-date template.
08:38:18 <elliott> Deewiant: Yes, it's like the Confederate flag.
08:38:27 <elliott> Deewiant: You just can't handle: FREEDOM.
08:39:03 <Deewiant> I'm not saying he should use the new template, making up his own stuff is fine by me too.
08:40:24 <elliott> fizzie: You should tile whatever logo you guys used before Aalto as the background.
08:42:20 <fizzie> Maybe he went to Tokyo to DRIFT RACE. I've understood that's kind of what they do there.
08:42:46 <elliott> They have cars in Finland?
08:43:03 <fizzie> Horse-driven snowmobiles.
08:43:13 <Deewiant> Some use polar bears.
08:44:49 <fizzie> Sometimes when the two kinds meet there are... accidents.
08:45:11 <elliott> I really hope Finland is actually like that.
08:45:44 <elliott> ais523: here's a question for you: is efficient /// compilation (to a "standard" language, like C) possible?
08:45:50 <fizzie> You'll be so disappointed when your government finally exiles you here.
08:46:08 <ais523> elliott: hmm
08:46:14 <ais523> I can't think of an obvious way, but I'm not convinced it's impossible
08:47:01 <elliott> it's self-modifying, but at least code only modifies code /after/ it
08:47:11 <elliott> e.g., a replacement never does anything to /itself/
08:49:27 <elliott> @tell oerjan You should fix the Perl /// interpreter (per http://esolangs.org/wiki/Talk:Slashes) :P
08:49:27 <lambdabot> Consider it noted.
08:50:28 <zzo38> I try to make (Functor (forall x y. f x y)) to be a constraint but it doesn't seems to work
08:51:17 <itidus21> http://www.google.com/search?q="matrix+of+solidity"
08:51:31 <zzo38> It says it is expected kind `*' but `f x y' has kind `* -> *'
08:52:28 <elliott> zzo38: you can't have instances like that afaik
08:52:39 <elliott> but it's impossible to say the real error without knowing context
08:53:49 <elliott> itidus21: i like how we are second place
08:54:29 <itidus21> its actually surprising we aren't first place
08:54:32 <zzo38> But doesn't it have like the (,) functor and (->) functors have one additional type argument for all type of kind (*)
08:54:50 <itidus21> hmm ill try a better search engine
08:55:33 <itidus21> duckduckgo drops the ball on this one
08:55:56 <itidus21> bing drops the ball on this one
08:56:34 <elliott> ais523: why the hell is it 9 am?
08:56:49 <ais523> becaues it's almost 9am
08:57:42 <elliott> http://www.lifeoflight.com/channellinglibrary/merlin/533.html beloved beloved beloved
09:04:21 <elliott> ais523: becaues?
09:04:34 <ais523> s/whatever/whatever/
09:05:01 <ais523> bleh, we need a quick and easy to type way to say "just fix all the typos in what I've said recently"
09:05:04 <ais523> I suggest * on a line by itself
09:06:00 <itidus21> s/typed/intended
09:06:01 <elliott> sdiojf oe hefu ahfhiwe
09:06:03 <elliott> *
09:06:43 <elliott> bleh, i have to sleep now, or i'll end up sleeping at some even more terrible time
09:07:04 <elliott> ais523: wake me up before it gets too late, please, thanks
09:07:17 <itidus21> i think its a form of courtesy
09:07:34 <itidus21> or a form of acknowledging ones typos
09:08:56 -!- elliott has quit (Read error: Operation timed out).
09:10:01 <zzo38> Then how can I make constraints and classes that put multiple parameters in?
09:12:15 <Sgeo> zzo38, MPTCs?
09:12:24 <Sgeo> I assume your question is more advanced than that
09:12:35 <zzo38> Yes my question is more advanced than that
09:14:06 -!- nooga has joined.
09:20:09 <itidus21> vis a vis my http://sprunge.us/GdOR and http://sprunge.us/UNSd i would say
09:23:21 <itidus21> brainfuck and boolfuck use bf tape and io streams
09:23:53 <itidus21> smallfuck uses bf tape
09:24:33 <itidus21> paintfuck uses bf matrix
09:26:20 -!- nooga has quit (Ping timeout: 240 seconds).
09:27:29 <itidus21> what i had in mind is to use bf tape and io matrix
09:39:22 -!- ais523 has quit (Remote host closed the connection).
09:40:20 <itidus21> next insight here is that in such an io matrix, the pointer should have dimensions in addition to position
09:43:55 <itidus21> so that can position the pointer at (x,y) and stretch it to (width, height) and do an operation on that like increment, decrement or write a specific value to them all.
09:48:03 <zzo38> Is the left zero law for MonadPlus implied by the other Monad and Functor laws and by the type signatures?
09:55:16 <kallisti> zzo38: which laws? I can't think of one that would be related.
09:55:39 <kallisti> it needs mzero, which isn't defined anywhere else.
10:07:41 <zzo38> mzero :: m a, where it must work for any argument type. Which means that fmap on it must not affect it since there can be no value to affect (since fmap id = id, it cannot do other things), which means join on such a thing must be same too (join mzero = mzero) due to the (>>= return) = id law.
10:08:24 <zzo38> Did I do it wrong?
10:09:15 <zzo38> (Assuming that the class methods must be fully defined, of course)
10:11:33 <kallisti> zzo38: hm, but then is that because of other laws or simply because mzero :: m a ?
10:12:45 <zzo38> I think it is due to the functor laws. The (>>= return) law seem to imply that if fmap cannot affect something, then join cannot affect it either.
10:17:24 <zzo38> (I mean its value remain unaffected)
10:19:49 <kallisti> hmmm, I guess so?
10:19:54 <kallisti> this is too metamath for me. :P
10:20:35 <kallisti> what causes 2 + 2 = 4? is it the 4, the +, the =, the left 2, or the right 2?
10:22:05 <zzo38> I think it is the + that causes 2 + 2 to make 4
10:24:24 <kallisti> hmmm
10:24:42 <kallisti> I think the whole expression depends on its parts.
10:25:01 <kallisti> but yes, I think what you're saying makes sense as well.
10:25:12 <zzo38> Yes, I agree with that. Still, the main thing that causes addition to result in an answer is the addition.
10:25:33 <zzo38> But of course it won't work if you don't have something to add!
10:25:50 <itidus21> (1+1) + (1 + 1) = (1 + 1 + 1 + 1)
10:26:12 <kallisti> also if equality were defined differently you would not be able to say the same thing about the value of 4.
10:26:13 <zzo38> itidus21: That's different; it is caused by associative laws.
10:26:31 <zzo38> kallisti: Yes, that too.
10:31:14 <kallisti> anyway I'm not sure that they're connected anyway.
10:31:33 <kallisti> I'm pretty sure the zero law is just stemming from the simple fact that mplus and mzero form a monoid.
10:32:14 <kallisti> you could say it's a result of mplus in much the same way that 4 is the result of addition in the expression 2 + 2. if you want to think of it that way.
10:33:55 <kallisti> maybe if mplus had a default definition, with mzero being the minimal complete definition.
10:34:22 <zzo38> kallisti: I don't think so. The identity law (mplus mzero = flip mplus mzero = id) follow from a monoid, but left zero law (mzero >> x = mzero) is difference, it is a bit like multiplication but not really.
10:35:06 <kallisti> oh by left zero law I thought you meant mzero `mplus` x = mzero
10:35:26 <zzo38> No, that is called the left identity law.
10:36:08 <zzo38> Maybe you can understand my other comments and proof now that you know what I meant by left zero law.
10:36:18 <kallisti> yes that makes more sense.
10:36:55 <kallisti> oops. here I was, getting all philosophical.
10:40:20 <kallisti> or hmmm...
10:41:02 <kallisti> well, if the left zero law weren't true I don't think left identity for monads could be true either.
10:43:54 -!- GreaseMonkey has quit (Quit: The Other Game).
10:50:49 <kallisti> `? monad
10:50:59 <HackEgo> Monads are just monoids in the category of endofunctors.
10:51:05 * Sgeo has every desire to write some Template Haskell code very soon
10:51:12 <kallisti> Sgeo: wwhy?
10:51:34 <Sgeo> It's either that or writing very repetitive Haskell code
10:51:40 <kallisti> why?
10:51:43 <Sgeo> Although I've already been doing quite a bit of the latter :/
10:51:51 <Sgeo> Because I intend to make a binding to the AW SDK
10:52:04 <kallisti> oh. maybe,
10:52:21 <kallisti> repetitive in what way?
10:53:33 <Sgeo> Defining data structures in a regular way with a consistent naming pattern, and making consistently named functions that take those data structures as arguments
10:53:36 <Sgeo> Things like that
10:53:46 -!- sebbu2 has joined.
10:53:46 -!- sebbu2 has quit (Changing host).
10:53:46 -!- sebbu2 has joined.
10:55:10 <Sgeo> I will probably use a quasiquoter
10:55:34 <Sgeo> So I can copy/paste from Aw.h right into the thing without repeated search/replace and whatnot
10:55:42 <Sgeo> (Which I've been doing quite a bit of these past few days)
10:56:52 -!- sebbu has quit (Ping timeout: 252 seconds).
11:01:07 <kallisti> Sgeo: are you sure there's not an abstraction?
11:15:21 <itidus21> i think that i have a hidden motive with programming to try to use programming to bridge the gap between required data resources and available financial
11:17:00 <itidus21> like for example, 3d scanners, 2d scanners, cameras, video cameras, 3d cameras, motion capture, microphones etc.. all provide a lot of data resources
11:19:10 <itidus21> not to mention the cost of actors, painters, animators, film sets, voice actors to apply all these technologies to
11:22:01 <Frooxius> Abstract film? :3
11:22:02 -!- Jafet has joined.
11:22:32 -!- azaq23 has joined.
11:22:47 -!- azaq23 has quit (Max SendQ exceeded).
11:23:24 -!- azaq23 has joined.
11:23:28 <itidus21> Frooxius: well the idea is quite obvious "aha.. i can simulate all these things with a computer!" but then there is the need for 2d digital artists, animators, 3d modellers, music composers, render farms (in some cases)
11:24:34 <Frooxius> Hmm, I just saw an abstraction and actors and such, I'm not really paying attention much ^^'
11:24:58 <itidus21> oh, since i don't understand esolangs i just go off on my own tangents
11:25:21 <Frooxius> I made a short abstract (maybe? x3 ) film before though, if you're interested: http://www.youtube.com/watch?v=yQJYr13Ixew
11:25:43 <itidus21> basically my comments are not releveant or related to what was said before
11:26:59 -!- Jafet1 has joined.
11:27:21 -!- Jafet has quit (Ping timeout: 240 seconds).
11:33:12 -!- Jafet1 has quit (Ping timeout: 260 seconds).
11:35:55 -!- nooga has joined.
11:44:35 <Sgeo> kallisti, there probably are, but I can't think of anything off the top of my head that's remotely type-safe
11:45:03 <Sgeo> Or thread-safe
11:47:45 <zzo38> The type (c x y -> z) is a indexed comonad for any category c like (x -> z) is for a monoid x
11:48:00 <zzo38> The type (c x y -> z) is a indexed comonad for any category c like (x -> z) is a comonad for a monoid x
11:50:14 -!- zzo38 has quit (Remote host closed the connection).
12:07:24 <itidus21> i'm impressed by the language trigger having just read about it
12:08:30 -!- Jafet has joined.
12:08:32 <itidus21> ^?
12:08:38 <itidus21> ^help
12:08:38 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
12:08:56 <itidus21> `?
12:09:00 <HackEgo> cat: wisdom/: Is a directory
12:09:04 <itidus21> `help
12:09:07 <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/
12:11:25 -!- Phantom_Hoover has joined.
12:14:18 -!- monqy has quit (Quit: hello).
12:16:05 -!- nooga has quit (Ping timeout: 252 seconds).
12:37:39 -!- MDuck has changed nick to MDude.
12:38:57 -!- nooga has joined.
13:04:19 -!- nooga has quit (Ping timeout: 276 seconds).
13:29:09 -!- sebbu2 has changed nick to sebbu.
13:34:07 <itidus21> ^bf ,[.,]!hello
13:34:07 <fungot> hello
13:35:46 -!- Sgeo has quit (Read error: Connection reset by peer).
13:37:28 -!- Sgeo has joined.
13:41:57 <itidus21> ^bf ,[.,]!wb sgeo
13:41:57 <fungot> wb sgeo
13:42:23 <Sgeo> ty
13:42:34 <Sgeo> Only restarted comp because I was too lazy to clear up the clutter of programs
13:42:39 <Sgeo> Wanted a fresh start
13:42:44 <Sgeo> And now because of it I am noticing c2hs
13:45:03 <itidus21> so i was working independantly on a symbol independant thing a few days ago and just encountered the idea on the wiki (probably unconcious plagiarism on my part)
13:45:08 <itidus21> anyway, in this case the idea was
13:45:32 <itidus21> "" = 0, "x" = 1 where x is a particular symbol, "xx" = 2 where x is a particular symbol, "*" = infinity
13:46:14 <itidus21> in hindsight, the idea of "" = 0 doesn't look so great
13:46:54 <itidus21> but this would be designed to give something like aa+aa=aaaa
13:48:21 <itidus21> or maybe to say 'a' = 1, 'b' = 2, 'c' = 3... "abbccc"
13:49:54 <itidus21> nah.. nevermind..
13:51:44 <itidus21> i guess what my notion comes down to is that a symbol could encode a number by being a string of that number
13:51:58 <itidus21> ^in length
13:52:21 <itidus21> moving on...
13:53:55 <fizzie> You see unary numbers like that sometimes; e.g. in sed programs, since it's easy to add them.
13:55:27 <fizzie> And there's of course the combination of unary and boring brainfuck derivatives, http://www.esolangs.org/wiki/Unary
13:55:51 <itidus21> once, in a program lost to a hard disk crash, i had this idea of a rock paper scissors game where you could do sequences of rock paper scissors
13:57:04 <itidus21> i implemented it in c++ with allegro many years before coming here
13:57:19 <itidus21> it was a good idea... but hard disks die
13:57:49 <itidus21> anyway.. the idea was.. the 2 players had hitpoints... and different sequences take off different amounts of hitpoints
13:58:25 <itidus21> so rrr, ppp, sss gave you a bonus
13:58:38 <itidus21> but then there was more complicated sequences
13:58:53 <itidus21> up to possibly 8 in length i forget exactly
13:59:29 <itidus21> and so the game becomes about trying to complete a long sequence, while preventing the other playing completing a long sequence
13:59:42 <itidus21> ^s/playing/player
14:02:28 <itidus21> since uh.. at every round of the game, a rock will beat a scissors
14:03:20 <itidus21> so if you can predict what their pattern is you can try to head them off before they complete it
14:05:48 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .).
14:16:33 -!- nooga has joined.
14:17:12 <Phantom_Hoover> There.... is a box of Gardasil next to the butter in my fridge.
14:17:51 <Phantom_Hoover> At least my sandwich will be immune to cervical cancer *and* genital warts, I suppose.
15:25:16 <kallisti> I can't even tell if I'm tired or not.
15:40:52 * kallisti is reading "What every computer scientist should know about floating-point arithmetic"
15:41:03 <Phantom_Hoover> "It's insane."
15:44:16 <kallisti> "Floating-point arithmetic is considered an esoteric subject by many." -- first sentence.
15:44:40 <Phantom_Hoover> It is, because it's nuts.
15:45:29 <Phantom_Hoover> Or rather, it's designed for good enough accuracy over a wide range of precisions, not precise numerical computation.
15:45:38 <Phantom_Hoover> s/precisions/magnitudes/
15:46:18 <kallisti> "This is rather surprising, because floating-point is ubiquitous in computer systems: Almost every language has a floating-point datatype; computers from PCs to supercomputers have floating-point accelerators; most compilers will be called upon to compile floating-point algorithms from time to time; and virtually every operating system must handle floating-point exceptions such as overflow."
15:46:24 <kallisti> -- second sentence
15:47:25 <kallisti> I think I'll mostly be interested in the compiler and OS sections.
15:47:49 <kallisti> and not the "lol this is how overflow and rounding errors happen lololololo" section
15:49:33 <kallisti> oh hm it discusses the IEEE standard. That will be useful, because I haven't managed to find an open copy of it anywhere.
15:54:44 -!- Ngevd has joined.
15:54:47 <Ngevd> Hello!
15:57:45 <Ngevd> I like today's Gunnerkrigg court
15:59:23 <Ngevd> Today's Comments on a Postcard sounds awfully familiar...
16:19:49 <Deewiant> Hooray, I now have an (almost; no 5-1) complete set of up to 6-piece Nalimov endgame tablebases.
16:23:25 <Phantom_Hoover> Now, a complete set of 6-piece Nalimov endgame tablebases; tomorrow, the world!
16:31:07 <Deewiant> In the far future, perhaps a seven-piece set.
16:50:19 <Vorpal> <kallisti> oh hm it discusses the IEEE standard. That will be useful, because I haven't managed to find an open copy of it anywhere. <-- try IEEE?
16:51:41 <Vorpal> kallisti, here: http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=4610933
16:52:50 <Vorpal> I got my copy from there, can access it by university proxy, check if your university offers that too (if you study at one, I don't remember). If you don't I'm afraid I'm not allowed to distribute it though, and the pdf is marked with who downloaded it on the bottom of every page.
16:53:48 <kallisti> yes I can access it via my university.
16:54:01 <Vorpal> kallisti, then the problem is solved
16:54:08 <kallisti> not sure if I can do so on this computer though
16:54:11 <kallisti> I haven't checked.
16:54:28 <Vorpal> kallisti, my university offers a proxy service for such things, so I can do it from anywhere
16:55:58 <Sgeo> The /r/circlejerk CSS fooled me for a bit
16:57:02 <lahwran> you can downvote stuff there easy
16:58:29 <Sgeo> Not what I was referring to
17:03:10 <lahwran> then what were you referring to, oh wise CSS master?
17:06:32 -!- elliott has joined.
17:06:56 -!- Vorpal has quit (Ping timeout: 240 seconds).
17:08:57 <elliott> hi
17:08:58 <lambdabot> elliott: You have 1 new message. '/msg lambdabot @messages' to read it.
17:09:26 <elliott> wow, Graue deleted some spam
17:09:33 <elliott> @tell oerjan you owe me one
17:09:33 <lambdabot> Consider it noted.
17:10:09 <lahwran> @tell lambdabot derp
17:10:09 <lambdabot> Nice try ;)
17:10:41 <Sgeo> lahwran, look at who the commenters are.
17:11:08 -!- oklopol has quit (Read error: Connection reset by peer).
17:11:22 <lahwran> @tell lambdabot derp, okay?
17:11:22 <lambdabot> Consider it noted.
17:11:40 -!- Ngevd has quit (Read error: Connection reset by peer).
17:13:15 <lahwran> Sgeo: that's actually pretty impressive CSS
17:13:45 -!- Ngevd has joined.
17:18:13 -!- Taneb has joined.
17:18:50 -!- Ngevd has quit (Ping timeout: 240 seconds).
17:40:32 -!- augur has quit (Remote host closed the connection).
17:48:23 <kallisti> hi my name is kallisti
17:48:34 <Sgeo> Apparently earphones do not exist in the future.
17:48:41 * Sgeo goes back to watching DS9
17:49:12 * kallisti is uncharacteristically watching the entire first season of Trigun.
17:56:00 <fizzie> Did it have multiple seasons?
17:57:35 -!- oerjan has joined.
17:58:44 <elliott> hi oerjan, YOU MAY PAY ME IN BLOOD
17:59:39 -!- Klisz has joined.
18:01:19 <oerjan> *cough*
18:01:19 <lambdabot> oerjan: You have 2 new messages. '/msg lambdabot @messages' to read them.
18:01:22 <oerjan> @messages
18:01:23 <lambdabot> elliott said 9h 11m 50s ago: You should fix the Perl /// interpreter (per http://esolangs.org/wiki/Talk:Slashes) :P
18:01:23 <lambdabot> elliott said 51m 49s ago: you owe me one
18:02:03 <oerjan> ah but you used the reverse magical word
18:02:06 <oerjan> "should" that is
18:02:32 <elliott> oerjan: Yes, and then I emailed Graue at the CORRECT ADDRESS unlike everybody else, and got a response, and he deleted spam.
18:02:41 <elliott> And says he'll try and do something about it on the weekend.
18:02:43 <elliott> IN CONCLUSION
18:02:48 <elliott> PAY IN BLOOD, CORRECTED /// INTERPRETER
18:03:21 <oerjan> i don't think i've emailed graue recently at any address, so i don't see the point
18:03:57 <elliott> oerjan: ais did, and you whined at least once about Graue being non-responsive :P
18:04:00 <elliott> BLOOD!!!
18:04:22 <elliott> There are lots of bloggers out there that do not really comprehend the potential of their blogs; specifically, the money making potential of the blog and how it might be optimized to generate a reliable online income. Here are a number of reasons why anyone may make money blogging. Blogs are becoming increasingly popular due to the fact that they can be put to use for income generation. Online Marketers work with blogs for advertising and marketi
18:04:22 <elliott> ng and bloggers capitalize on that require and make dollars blogging. So why are blogs so rewarding? Well here are usually four reasons:
18:05:43 <Sgeo> Oh ffs, it took way too long for me to get the hint
18:05:46 <Sgeo> (in this episode)
18:06:43 -!- Taneb has quit (Quit: Goodbye).
18:07:12 <oerjan> i am slightly worried that there are three admins active and still they missed User:KuzyFueesi
18:07:41 <elliott> oerjan: ais uses rss which can reorder things
18:07:47 <elliott> dunno about keymaker
18:07:50 <elliott> graue only deleted one page, though
18:08:03 <elliott> @tell ais523 [[User:KuzyFueesi]]
18:08:03 <lambdabot> Consider it noted.
18:08:57 <oerjan> ...but does it have a 10 cutoff limit like the wordpress blog rss?
18:10:30 <elliott> Graaa upvote me you people.
18:10:33 <elliott> oerjan: I doubt it's that low.
18:14:57 -!- DCliche has joined.
18:16:07 <oerjan> !show slashes
18:16:09 <EgoBot> perl (sending via DCC)
18:17:07 * elliott thinks about techniques for efficient /// implementation
18:17:27 <oerjan> !slashes /test/ho///hm/test
18:17:29 <EgoBot> ho
18:17:31 <elliott> you could store the whole program in a trie somehow
18:17:37 <elliott> the only thing you need ordering for is ordering of execution
18:18:15 -!- Klisz has quit (Ping timeout: 244 seconds).
18:20:04 <oerjan> !slashes //hm/\??
18:20:05 <EgoBot> ​??
18:21:03 <oerjan> !slashes //h\m/\??
18:21:04 <EgoBot> hm?
18:24:14 <elliott> An article talking partly about J with a J code example from Programming in the 21st Century is #2 on proggit.
18:24:26 <elliott> Maybe proggit has merit after all.
18:24:43 <elliott> Of course, then I click the comments...
18:24:44 <Deewiant> Don't read the comments.
18:25:37 <elliott> Deewiant: But all the other links are boring!!!!!!
18:25:38 <elliott> :'(
18:38:33 -!- Zuu has quit (Ping timeout: 252 seconds).
18:44:03 -!- Ngevd has joined.
18:44:06 <Ngevd> Hello!
18:46:47 <Sgeo> Hi
18:49:35 <oerjan> !delinterp slashes
18:49:36 <EgoBot> ​Interpreter slashes deleted.
18:49:59 <oerjan> !addinterp slashesl perl http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
18:50:01 <EgoBot> ​Interpreter slashesl installed.
18:50:03 <oerjan> oops
18:50:06 <oerjan> !delinterp slashesl
18:50:06 <EgoBot> ​Interpreter slashesl deleted.
18:50:11 <oerjan> !addinterp slashes perl http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
18:50:13 <EgoBot> ​Interpreter slashes installed.
18:50:23 <oerjan> !slashes //h\m/\??
18:50:49 <oerjan> !slashes /test/ho/test
18:50:49 <EgoBot> ho
18:52:07 <oerjan> oh wait
18:53:49 <oerjan> !show slashes
18:53:51 <EgoBot> perl (sending via DCC)
18:54:51 * oerjan feels so anemic now
18:56:23 <elliott> what does anemic even mean
18:56:52 <oerjan> lack of red blood cells
18:56:59 <elliott> wat
18:57:03 <elliott> well i mean
18:57:04 <elliott> i knew that
18:57:12 <elliott> i just assumed there must be some hidden meaning i was missing for that to make sense
18:57:32 <oerjan> i just paid a blood debt, is all
18:57:35 <Ngevd> oerjan is actually anemic. He really needs to get to a hospital, stat
18:57:48 <elliott> oerjan: oh dur
18:58:16 <oerjan> Ngevd: a very plausible interpretation.
19:02:36 <elliott> ?pl \i o f a b -> i $ f (o a) (o b)
19:02:36 <lambdabot> (. (flip =<< ((flip . ((.) .)) .) . flip (.))) . (.) . (.) . (.)
19:02:39 <elliott> ?pl \a b -> i $ f (o a) (o b)
19:02:40 <lambdabot> (i .) . (. o) . f . o
19:02:56 <elliott> ?pl \a b c -> i $ f (o a) (o b) (o c)
19:02:56 <lambdabot> ((i .) .) . flip flip o . ((.) .) . (. o) . f . o
19:03:00 <elliott> ?pl \a b c d -> i $ f (o a) (o b) (o c) (o d)
19:03:00 <lambdabot> (((i .) .) .) . flip flip o . ((flip . ((.) .)) .) . flip flip o . ((.) .) . (. o) . f . o
19:03:06 <elliott> sigh
19:03:52 <oerjan> elliott: needs more on
19:04:52 <elliott> oerjan: well the problem with on is that it's just for binary operators...
19:04:57 <oerjan> :t (?i .: ?f) `on` o
19:04:58 <lambdabot> Couldn't match expected type `a -> b' against inferred type `Expr'
19:04:58 <lambdabot> In the second argument of `on', namely `o'
19:04:58 <lambdabot> In the expression: (?i .: ?f) `on` o
19:05:01 <oerjan> :t (?i .: ?f) `on` ?o
19:05:02 <lambdabot> forall a c b a1. (?i::a -> c, ?f::b -> b -> a, ?o::a1 -> b) => a1 -> a1 -> c
19:05:12 <elliott> it would be nice to regularise the scheme a bit so that you can more easily extend to further arguments.
19:05:19 <elliott> a la zipWithN vs. ZipList
19:05:46 <oerjan> i believe we wrote onN on a previous occasion
19:10:32 <elliott> oh did we
19:10:39 <elliott> i mean i don't want a typeclass hack
19:10:41 <elliott> just a more regular scheme
19:11:11 <elliott> @ty runWriter
19:11:12 <lambdabot> forall w a. Writer w a -> (a, w)
19:15:09 -!- DCliche has changed nick to Klisz.
19:24:37 <elliott> BOOM!
19:24:42 <oerjan> :t let onMore c f o a = c (f (o a)) o; onEnd f _ = f in onMore (onMore onEnd)
19:24:43 <lambdabot> forall t t1 t2. (t2 -> t2 -> t) -> (t1 -> t2) -> t1 -> t1 -> t
19:25:05 <oerjan> elliott: regular enough? :)
19:25:28 <oerjan> :t let onMore c f o a = c (f (o a)) o; onEnd f _ = f in onMore (onMore (onMore (onMore onEnd)))
19:25:29 <lambdabot> forall t t1 t2. (t2 -> t2 -> t2 -> t2 -> t) -> (t1 -> t2) -> t1 -> t1 -> t1 -> t1 -> t
19:25:43 <elliott> oerjan: heh, nice
19:26:07 <elliott> :t let onMore c f o a = c (f (o a)) o; onEnd f _ = f in (onMore . onMore . onMore . onMore) onEnd
19:26:08 <lambdabot> forall t t1 t2. (t1 -> t1 -> t1 -> t1 -> t2) -> (t -> t1) -> t -> t -> t -> t -> t2
19:26:23 <elliott> oerjan: it would be nice to specify i and o as an argument, though, but only once
19:26:28 <elliott> I guess that would be a pain though
19:26:36 <elliott> i.e. factor them out into an argument without having to repeat them
19:26:38 <elliott> I like it, though
19:26:45 <oerjan> elliott: um o _is_ factored out
19:27:12 <elliott> oerjan: oh, so it is
19:27:16 <elliott> I see, sorry :)
19:27:21 <elliott> onEnd is o there, right?
19:27:31 <oerjan> it's const
19:27:44 <elliott> oerjan: I'm asking what I'd replace to change o
19:27:53 <oerjan> onEnd is on0, really
19:28:07 <oerjan> and onMore onN = onSuccN
19:28:16 <oerjan> with on2 the usual one
19:28:21 <elliott> I can't tell whether you understand my question :P
19:29:07 <oerjan> elliott: o is the second argument of onN, as usual
19:31:46 <oerjan> :t let ioMore c f i o a = c (f (o a)) i o; ioEnd f i _ = i f in ioMore (ioMore (ioMore ioEnd))
19:31:47 <lambdabot> forall t t1 t2 t3. (t3 -> t3 -> t3 -> t) -> (t -> t1) -> (t2 -> t3) -> t2 -> t2 -> t2 -> t1
19:31:58 <elliott> oerjan: ok maybe i'm not expressing what I want
19:32:01 <elliott> oh, I see
19:32:02 <oerjan> elliott: there you go
19:32:17 <elliott> oerjan: neat, thanks -- it'd be nice if f came /after/ i and o though >__>
19:32:23 <elliott> although hmm i guess that's pretty easy
19:32:28 <oerjan> yeah
19:32:53 <elliott> :t let nest c i o f a = c i o (f (o a)); stop i _ f = i f in (nest.nest.nest) stop Endo appEndo
19:32:54 <lambdabot> forall a a1. ((a1 -> a1) -> (a1 -> a1) -> (a1 -> a1) -> a -> a) -> Endo a1 -> Endo a1 -> Endo a1 -> Endo a
19:32:59 <elliott> oerjan: :D
19:33:09 <elliott> generalised newtype-ish lifting
19:33:17 <oerjan> heh
19:33:54 * elliott then wonders if you could bundle i and o into _stop_
19:33:58 <elliott> so that it'd look like
19:34:03 <elliott> (nest.nest.nest) inEndo ...
19:34:08 <elliott> with inEndo being defined appropriately
19:34:12 <elliott> that would be the absolute ideal
19:36:40 <Ngevd> Now you've got me thinking about zipWithN
19:36:43 <oerjan> you can do it if you put inEndo first
19:36:48 <elliott> Ngevd: see ZipList
19:36:57 <elliott> oerjan: oh, indeed
19:36:59 <elliott> that's even better, too
19:37:12 <elliott> :t let nest c i o f a = c i o (f (o a)); stop i _ f = i f; inEndo f = f stop Endo appEndo in inEndo (nest.nest.nest)
19:37:13 <lambdabot> forall a a1. ((a1 -> a1) -> (a1 -> a1) -> (a1 -> a1) -> a -> a) -> Endo a1 -> Endo a1 -> Endo a1 -> Endo a
19:37:48 <elliott> hm stop seems so redundant there, the only place it's used is where you already know what i is
19:38:01 <elliott> :t let nest c i o f a = c i o (f (o a)); stop i _ f = i f; inEndo f = f stop Endo appEndo in inEndo stop
19:38:02 <lambdabot> forall a t. t -> Endo a -> a -> a
19:38:08 <elliott> he
19:38:09 <elliott> h
19:38:09 <oerjan> elliott: just use const i, then
19:38:23 <oerjan> er
19:38:26 <elliott> :t let nest c i o f a = c i o (f (o a)); inEndo f = f (const Endo) Endo appEndo in inEndo stop
19:38:27 <lambdabot> Not in scope: `stop'
19:38:28 <elliott> erm
19:38:29 <elliott> :t let nest c i o f a = c i o (f (o a)); inEndo f = f (const Endo) Endo appEndo in inEndo nest
19:38:30 <lambdabot> Couldn't match expected type `Endo a'
19:38:30 <lambdabot> against inferred type `t -> t1'
19:38:30 <lambdabot> Probable cause: `nest' is applied to too few arguments
19:38:33 <elliott> oerjan: i think not
19:38:39 <oerjan> just const
19:38:46 <elliott> well right
19:38:50 <elliott> :t let nest c i o f a = c i o (f (o a)); inEndo f = f const Endo appEndo in inEndo nest
19:38:51 <lambdabot> forall a a1. ((a1 -> a1) -> a -> a) -> Endo a1 -> Endo a
19:38:59 <elliott> @pl \c i o f a -> c i o (f (o a))
19:38:59 <lambdabot> flip flip (flip (.)) . (liftM2 ((.) . (.)) .)
19:39:03 <elliott> @pl \i o f a -> c i o (f (o a))
19:39:04 <lambdabot> (`ap` flip (.)) . (((.) . (.)) .) . c
19:39:06 <elliott> @pl \o f a -> c i o (f (o a))
19:39:06 <lambdabot> ap ((.) . (.) . c i) (flip (.))
19:39:09 <elliott> @pl \f a -> c i o (f (o a))
19:39:09 <lambdabot> (c i o .) . (. o)
19:39:11 <elliott> heh
19:39:44 <elliott> @let result = (.)
19:39:45 <lambdabot> Defined.
19:39:47 <elliott> @let argument = flip (.)
19:39:48 <lambdabot> Defined.
19:39:59 <elliott> :t \f a -> c i o (f (o a))
19:40:00 <lambdabot> Couldn't match expected type `t -> t1' against inferred type `Expr'
19:40:00 <lambdabot> In the first argument of `f', namely `(o a)'
19:40:00 <lambdabot> In the third argument of `c', namely `(f (o a))'
19:40:04 <elliott> :t \c i o f a -> c i o (f (o a))
19:40:05 <lambdabot> forall t t1 t2 t3 t4. (t -> (t1 -> t2) -> t3 -> t4) -> t -> (t1 -> t2) -> (t2 -> t3) -> t1 -> t4
19:40:13 <elliott> :t \c i o -> result (c i o) . argument o
19:40:13 <lambdabot> forall t a b (f :: * -> *) a1. (Functor f) => (t -> f a1 -> a -> b) -> t -> f a1 -> (a1 -> a) -> f b
19:40:15 <elliott> excellent
19:40:43 <elliott> : let nest k i o = result (k i o) . argument o; inEndo f = f const Endo appEndo in inEndo nest
19:40:45 <elliott> :t let nest k i o = result (k i o) . argument o; inEndo f = f const Endo appEndo in inEndo nest
19:40:46 <lambdabot> forall a a1. ((a1 -> a1) -> a -> a) -> Endo a1 -> Endo a
19:40:51 <elliott> oerjan: that's really nice, thank you!
19:41:39 <elliott> (those argument and result combinators are from http://conal.net/blog/posts/semantic-editor-combinators)
19:42:48 <oerjan> yeah i remember
19:44:06 <elliott> oerjan: i was inspired by seeing (~>) defined later based on that and Conal liking it, as (i ~> o) f = i . f . o
19:44:22 <elliott> nothing that can't be extended to more arguments is elegant enough! :p
19:44:48 <elliott> :t let nest k o = result (k o) . argument o; inEndo f = f (const Endo) appEndo in inEndo nest
19:44:49 <lambdabot> forall a a1. ((a -> a) -> a1 -> a1) -> Endo a -> Endo a1
19:44:59 <elliott> nicer still
19:45:28 <elliott> :t let nest k o = result (k o) . argument o; (i ~> o) f = f (const i) o; inEndo = Endo ~> appEndo in inEndo (nest . nest)
19:45:28 <lambdabot> forall a a1. ((a -> a) -> (a -> a) -> a1 -> a1) -> Endo a -> Endo a -> Endo a1
19:45:35 <elliott> oerjan: methinks that's as good as it gets :P
19:45:37 <elliott> oh ugh
19:45:41 <elliott> oerjan: what's with the monomorphism there?
19:46:05 <oerjan> hm?
19:46:11 <elliott> <elliott> :t let nest k o = result (k o) . argument o; (i ~> o) f = f (const i) o; inEndo = Endo ~> appEndo in inEndo (nest . nest)
19:46:11 <elliott> <lambdabot> forall a a1. ((a -> a) -> (a -> a) -> a1 -> a1) -> Endo a -> Endo a -> Endo a1
19:46:12 <elliott> why not
19:46:20 <elliott> ((a -> a) -> (b -> b) -> (c -> c)) -> Endo a -> Endo b -> Endo c
19:46:49 <elliott> @pl \k o -> (k o .) . (. o)
19:46:49 <lambdabot> (`ap` flip (.)) . (((.) . (.)) .)
19:46:53 <elliott> heh
19:48:54 <oerjan> :t appEndo
19:48:55 <lambdabot> forall a. Endo a -> a -> a
19:49:10 <elliott> it's just the newtype field
19:49:20 -!- ais523 has joined.
19:49:22 <elliott> <elliott> :t let nest k o = result (k o) . argument o; (i ~> o) f = f (const i) o; inEndo = Endo ~> appEndo in nest
19:49:25 <elliott> oops
19:49:27 <elliott> :t let nest k o = result (k o) . argument o; (i ~> o) f = f (const i) o; inEndo = Endo ~> appEndo in nest
19:49:28 <lambdabot> forall (f :: * -> *) a a1 b. (Functor f) => (f a -> a1 -> b) -> f a -> (a -> a1) -> f b
19:49:37 <Ngevd> Hello, ais523
19:49:44 <elliott> oerjan: i think nest's recursion might be restricting all the arguments of the result to have the same type, sort of thing
19:49:56 <elliott> argh lambdabot's (.) isn't helping
19:49:59 <elliott> ais523: hi, graue replied
19:50:45 <oerjan> elliott: yes, of course, because they all have o applied
19:51:57 <oerjan> o is passed as an argument, thus monomorphic. i suppose you could sprinkle some rank2
19:52:49 -!- Zuu has joined.
19:53:36 <elliott> oerjan: oh, ofc
19:53:42 <elliott> :t let nest k o = result (k o) P.. argument o; (i ~> o) f = f (const i) o; inEndo = Endo ~> appEndo in nest
19:53:43 <lambdabot> Couldn't find qualified module.
19:53:46 <elliott> :t let nest k o = result (k o) Prelude.. argument o; (i ~> o) f = f (const i) o; inEndo = Endo ~> appEndo in nest
19:53:47 <lambdabot> forall (f :: * -> *) a a1 b. (Functor f) => (f a -> a1 -> b) -> f a -> (a -> a1) -> f b
19:53:57 <elliott> :t let nest k o = (k o Prelude..) Prelude.. (Prelude.. o); (i ~> o) f = f (const i) o; inEndo = Endo ~> appEndo in nest
19:53:57 <lambdabot> forall a b c c1. ((a -> b) -> c -> c1) -> (a -> b) -> (b -> c) -> a -> c1
19:54:23 <ais523> elliott: what was the reply?
19:54:23 <lambdabot> ais523: You have 1 new message. '/msg lambdabot @messages' to read it.
19:54:56 <elliott> ais523: he'll see what he can do, but might not have time until the weekend or after
19:55:05 <ais523> oh, looks like he deleted exactly one spam page
19:55:08 <elliott> yeah :P
19:55:15 <elliott> doing his bit! :)
19:55:36 <elliott> so, I conclude that anyone who has sent email to Graue in, like, a year, has sent email to /dev/null
19:55:55 <elliott> ais523: I did mention AbuseFilter in my email
19:55:58 <elliott> you're welcome
19:56:08 <elliott> i was considering asking him to update MW too :P
19:56:44 <elliott> oerjan: hindley-milner sucks, restricting monomorphism like that :)
19:57:06 <ais523> elliott: you have to update MW to install AbuseFilter
19:57:15 <ais523> did you mention spam blacklist, and upgrading the CAPTCHA, too?
19:57:29 <elliott> oerjan: unfortunately I'd need a typeclass or something to fix it
19:57:44 <elliott> ais523: "It would be greatly appreciated if you could tighten the CAPTCHA, or
19:57:44 <elliott> install an extension like AbuseFilter to allow the admins to blacklist
19:57:44 <elliott> problem domains."
19:57:47 <elliott> --me
19:57:52 <elliott> (elliott)
19:59:05 <ais523> AbuseFilter does much more than blacklisting domains
19:59:09 <ais523> you can, say, blacklist regexps
19:59:21 <ais523> or even, say, forbid a user's first edit being to their own user page
19:59:23 <ais523> I'd love to do that
19:59:34 <elliott> ais523: yeah, but I (a) was annoyed enough about the spam to be writing it quickly and (b) didn't feel like writing marketing copy :P
19:59:50 <ais523> (and just throw up a message saying "editing your own user page on your first edit is a common behaviour for spambots, please edit a different page first, such as the sandbox, to prove you're human")
20:01:00 * elliott considers changing "Why not join us on IRC?" to "Why not join us in the matrix of solidity?"
20:01:05 <elliott> maybe once Graue isn't looking :D
20:08:28 <ais523> why do you consider /IRC/ to be the matrix of solidity?
20:08:33 <ais523> `pastlog matrix of solidity
20:09:08 <HackEgo> No output.
20:09:12 <elliott> `quote matrix of solidity
20:09:16 <HackEgo> 299) <treederwright> enjoy being locked in your matrix of solidity
20:09:20 <elliott> ais523: that's the origin of it, after all
20:09:34 <ais523> elliott: indeed
20:09:38 <elliott> we, on IRC, were closed-minded; treederwright enlightened us as to the matrix of solidity we are locked within
20:09:47 <ais523> I can't believe that "matrix of solidity" never came up in the logs before now, though
20:09:53 <ais523> so, I conclude that pastlog has broken again
20:09:57 <elliott> most likely
20:09:58 <ais523> `pastlog solidity
20:10:24 <HackEgo> 2011-11-10.txt:22:50:04: <Phantom_Hoover> `quote matrix of solidity
20:10:38 <elliott> @src replicateM
20:10:38 <lambdabot> replicateM n x = sequence (replicate n x)
20:10:40 <ais523> hmm
20:10:40 <elliott> @src replicateM_
20:10:40 <lambdabot> replicateM_ n x = sequence_ (replicate n x)
20:10:44 <elliott> @src sequence
20:10:44 <lambdabot> sequence [] = return []
20:10:44 <lambdabot> sequence (x:xs) = do v <- x; vs <- sequence xs; return (v:vs)
20:10:44 <lambdabot> -- OR: sequence = foldr (liftM2 (:)) (return [])
20:10:45 <elliott> @src sequence_
20:10:45 <lambdabot> sequence_ ms = foldr (>>) (return ()) ms
20:18:19 -!- augur has joined.
20:19:11 <oerjan> <ais523> so, I conclude that pastlog has broken again <-- i wonder if this is the same bug that sometimes causes `welcome to give only the nick: part
20:19:20 -!- Ngevd has quit (Ping timeout: 252 seconds).
20:19:34 <ais523> oerjan: hmm
20:19:47 <ais523> `welcome clog cmeme glogbot glogbackup
20:19:50 <HackEgo> clog: cmeme: glogbot: glogbackup: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
20:20:13 <oerjan> ais523: i _think_ it usually happens when HackEgo is just starting up after a long break
20:20:37 <oerjan> like something is timing out, maybe
20:20:52 <ais523> `pastlog matrix of solidity
20:21:01 <HackEgo> 2011-04-01.txt:23:42:21: * iconmaster is enjoying being locked in his matrix of solidity.
20:21:29 <ais523> `pastlog matrix of solidity
20:21:34 <ais523> oerjan: hmm, perhaps
20:21:38 <HackEgo> 2011-05-18.txt:20:14:43: <ais523_> also, I didn't know that the matrix of solidity thing was on the main page
20:21:49 <ais523> could just be a problem with trying to load all the logs into cache
20:21:54 <elliott> HackEgo is really slow
20:22:00 <elliott> so timing out after "waking up" sounds likely to me
20:22:18 <elliott> I'm not sure it would give partial output, though, and I /rewrote/ that piece of code
20:22:24 <elliott> `run echo -n hi; sleep 10000
20:22:26 <elliott> `run echo bye; sleep 10000
20:22:57 <HackEgo> hi
20:23:01 <HackEgo> bye
20:23:15 <oerjan> elliott: for `welcome, which i wrote, it's probably to do with the use of @ and ? subprocesses?
20:23:33 <elliott> oerjan: perhaps, yes
20:24:28 -!- Ngevd has joined.
20:24:33 <Ngevd> Hello!
20:24:45 <Ngevd> Remember my vocab tester thing I did a while back?
20:24:52 <Ngevd> I've decided to give it more features
20:25:01 <Ngevd> Because I am mad
20:25:07 <oerjan> a fnobbly cromulent vocab tester
20:25:21 <Ngevd> `words latin
20:25:29 <Ngevd> `words --help
20:25:29 <HackEgo> Argument "latin" isn't numeric in int at /hackenv/bin/words line 141. \
20:25:33 <HackEgo> Usage: words [-dhNo] [DATASETS...] [NUMBER_OF_WORDS] \ \ valid datasets: --eng-1M --eng-all --eng-fiction --eng-gb --eng-us --french --german --hebrew --russian --spanish --irish --german-medical --bulgarian --catalan --swedish --brazilian --canadian-english-insane --manx --italian --ogerman --portuguese --polish --gaelic --finnish --norwegian \ default: --eng-1M \ \ options: \ -h, --help this help text
20:25:48 <Ngevd> `words --italian
20:25:52 <HackEgo> convalco
20:26:03 <Ngevd> `words 10 --italian
20:26:07 <HackEgo> fughe soltinsava disperai rimentissa imitargogne abbero perter sbendaleghe crimpleme scolora
20:26:36 <oerjan> lascianza sperate vogni chintrate
20:29:29 <Ngevd> How does System.Environment.getArgs behave?
20:29:54 <oerjan> Ngevd: it gives a list argument strings
20:29:57 <oerjan> *of
20:30:19 <oerjan> excluding program name
20:30:34 <oerjan> in IO, of course
20:31:05 <oerjan> :t System.Environment.getArgs
20:31:06 <lambdabot> IO [String]
20:31:08 <Ngevd> So, if I ran "latin_vocab military", what would it give me?
20:31:11 <elliott> oerjan: "of course" -- many people would see no problem with getArgs being pure :/
20:31:13 <Ngevd> [military]?
20:31:16 <elliott> well apart from the existence of withArgs
20:31:19 <elliott> Ngevd: ["military"]
20:31:28 <Ngevd> Yes
20:31:45 <oerjan> elliott: there's a function to change it, though :P
20:31:55 <kallisti> > foldr (+) 0 [1..5] :: Sym Int
20:31:56 <lambdabot> 15
20:31:58 <kallisti> I am sad face :(
20:32:09 <elliott> oerjan: <elliott> well apart from the existence of withArgs
20:32:28 <elliott> kallisti: "i sure do like how Sym reduces expressions automatically" --kallisti
20:32:37 <oerjan> elliott: i cannot possibly read and write response simultaneously, duh
20:32:42 <elliott> oerjan: i do :)
20:32:57 <kallisti> elliott: obviously you should do exactly what I want in all situations.
20:33:01 <kallisti> er
20:33:04 <kallisti> s/you/it/
20:33:23 <oerjan> > foldr (+) 0 [1..5] :: Sym (Sym Int)
20:33:24 <lambdabot> 15
20:34:39 <kallisti> > foldr (+) 0 [1..5] :: Sym ((->) Int)
20:34:40 <lambdabot> `(->) GHC.Types.Int' is not applied to enough type arguments
20:34:40 <lambdabot> The first arg...
20:36:01 <elliott> :t runWriter
20:36:02 <lambdabot> forall w a. Writer w a -> (a, w)
20:40:37 -!- GreaseMonkey has joined.
20:41:50 <elliott> @src callCC
20:41:50 <lambdabot> Source not found. I feel much better now.
20:41:52 <elliott> grr
20:42:14 <oerjan> elliott: btw chu-carroll over at goodmath/badmath is doing a series on basic category theory
20:42:29 <elliott> oh cool
20:42:29 <oerjan> he just got to cartesian closed categories
20:42:35 <elliott> why didn't you tell me earlier :P
20:42:44 <elliott> i'll check it out
20:42:58 <oerjan> because there was just a post reminding me
20:43:10 <elliott> @src callCC
20:43:10 <lambdabot> Source not found. I feel much better now.
20:43:10 <elliott> @src callCC
20:43:10 <lambdabot> Source not found. :(
20:43:10 <elliott> @src callCC
20:43:10 <lambdabot> Source not found. Just what do you think you're doing Dave?
20:43:13 <elliott> :(
20:43:23 <oerjan> :t callCC
20:43:24 <lambdabot> forall a (m :: * -> *) b. (MonadCont m) => ((a -> m b) -> m a) -> m a
20:43:32 <oerjan> it's a method
20:44:18 <elliott> @src Cont callCC
20:44:18 <lambdabot> callCC f = Cont $ \c -> runCont (f (\a -> Cont $ \_ -> c a)) c
20:44:20 <elliott> thx
20:44:48 <oerjan> i wonder if they'll add writer and reader as methods like they're doing with state. oh hm reader would just be asks, wouldn't it
20:44:52 <oerjan> :t reader
20:44:52 <lambdabot> forall r a. (r -> a) -> Reader r a
20:44:56 <oerjan> :t asks
20:44:57 <lambdabot> forall r a (m :: * -> *). (MonadReader r m) => (r -> a) -> m a
20:45:17 <oerjan> :t writer
20:45:18 <lambdabot> forall a w. (a, w) -> Writer w a
20:45:28 <elliott> > callCC ($ [42,43]) >> callCC ($ [99])
20:45:29 <lambdabot> No instance for (GHC.Show.Show (m [t]))
20:45:29 <lambdabot> arising from a use of `M43411467...
20:45:34 <elliott> > runCont (callCC ($ [42,43]) >> callCC ($ [99])) id
20:45:35 <lambdabot> [99]
20:47:01 <oerjan> :t cont
20:47:02 <lambdabot> forall a r. ((a -> r) -> r) -> Cont r a
20:47:27 <oerjan> hm would that even make sense as a MonadCont method
20:47:36 <oerjan> :t ContT
20:47:37 <lambdabot> forall a (m :: * -> *) r. ((a -> m r) -> m r) -> ContT r m a
20:48:42 <oerjan> if you have a -> m r, and (a -> r) -> r, can you construct an m r
20:49:19 <oerjan> probably not
20:49:27 <elliott> oerjan: with what on m?
20:49:30 <elliott> MonadFix? if so, probably yes
20:49:35 <elliott> Monad? no
20:49:39 <Ngevd> How do you put breakpoints in ghci
20:49:49 <Ngevd> For debugging purposes
20:49:56 <oerjan> elliott: i was assuming it should be something generalizing cont
20:50:07 <elliott> oerjan: oh so MonadCont m?
20:50:29 <elliott> oh, I see
20:50:33 <elliott> you're asking whether cont could go in MonadCont
20:50:34 <oerjan> elliott: not quite
20:50:37 <oerjan> yeah
20:50:55 <elliott> oerjan: couldn't you just fix r = m r, and then run it?
20:50:57 <oerjan> all of reader, writer and state could go in the respective classes (and state will/does)
20:51:06 <elliott> and wire up the continuation to escape the outer continuation
20:51:13 <elliott> Cont is really special though
20:51:20 <elliott> like, most monad transformers commute
20:51:25 <elliott> most of them can lift callback operations in the base monad
20:51:31 <elliott> ContT can't do anything like that
20:51:44 <elliott> in a sense because it's the most general monad possible
20:51:57 <elliott> so you don't get any convenient extra laws :P
20:52:21 <shachaf> ContT is the most general monad possible?
20:52:23 <oerjan> perhaps that's sort of why... you can lift reader, writer and state because they are essentially commuting extensions
20:52:30 <elliott> shachaf: well you can build any monad with Cont
20:52:36 <shachaf> ContT = Cont anyway.
20:52:38 <elliott> http://blog.sigfpe.com/2008/12/mother-of-all-monads.html and so on
20:52:47 <shachaf> Yes.
20:52:52 <elliott> so ContT sort of gives you the raw monad structure and doesn't let you assume anything
20:52:52 <shachaf> But what about generalizations of Cont?
20:52:55 <shachaf> WHAT DO YOU SAY TO THOSE?
20:53:01 <elliott> shachaf: :'(
20:53:09 <elliott> <oerjan> perhaps that's sort of why... you can lift reader, writer and state because they are essentially commuting extensions
20:53:15 <elliott> oerjan: this is why i like the composable effects model
20:53:36 <elliott> it even supports Cont
20:53:45 <oerjan> huh
20:53:55 <shachaf> http://hackage.haskell.org/packages/archive/kan-extensions/2.1/doc/html/Data-Functor-KanExtension.html
20:53:56 <elliott> http://math.andrej.com/2010/09/27/programming-with-effects-ii-introducing-eff/
20:54:01 <elliott> (http://hackage.haskell.org/package/effects is a haskell impl)
20:54:07 <elliott> oerjan: hmm ListT has problems too
20:54:20 <elliott> I guess anything sufficiently control-flowy makes monad transformers go to hell
20:55:24 <elliott> shachaf: "compose" as a type variable? Seriously?
20:55:30 -!- oerjan has set topic: The real haskell overflow channel | TODO: spam blacklist | http://codu.org/logs/_esoteric/.
20:55:41 <shachaf> elliott: Why not?
20:55:52 <elliott> shachaf: It's so long!
20:55:58 <shachaf> Oh, you've been talking about Cont for a while in here.
20:56:02 * shachaf considers reading the backlog.
20:56:03 * shachaf nah
20:56:24 <elliott> shachaf: It's about whether you can put cont in MonadCont.
20:57:09 <oerjan> <elliott> I guess anything sufficiently control-flowy makes monad transformers go to hell <-- what about ErrorT
20:57:27 <elliott> shachaf: You should read that post on eff if you haven't; we finally have a decent alternatiev to monad transformers.
20:57:33 <elliott> oerjan: good question
20:57:41 <elliott> oerjan: people always put ErrorT just above IO or Identity, I forget why
20:57:52 <elliott> *alternative
20:58:01 <shachaf> elliott: Ugh. Added to the list of tabs.
20:58:48 <elliott> shachaf: You just can't handle the SNAZZ.
20:59:31 <shachaf> So much snazz.
21:15:07 <elliott> Gregor: Ping
21:19:57 -!- iconmaster has joined.
21:23:35 -!- azaq23 has quit (Quit: Leaving.).
21:25:16 -!- PiRSquared17 has joined.
21:27:43 <Gregor> elliott: Ponk
21:28:41 <PiRSquared17> pink
21:28:51 <oerjan> yellow polka-dot
21:29:40 <elliott> :t \str strList -> elem (map toLower str) $ convertToLower $ words strList
21:29:41 <lambdabot> Not in scope: `convertToLower'
21:29:48 <elliott> :t \str strList -> elem (map toLower str) $ id $ words strList
21:29:49 <lambdabot> [Char] -> String -> Bool
21:31:15 <elliott> :t any
21:31:16 <lambdabot> forall a. (a -> Bool) -> [a] -> Bool
21:31:53 <oerjan> <fizzie> Hussel-bussel. Anyway. <-- hussuru bussuru
21:33:14 <elliott> :t elem
21:33:15 <lambdabot> forall a. (Eq a) => a -> [a] -> Bool
21:33:31 -!- cswords has joined.
21:33:40 -!- cswords has quit (Read error: Connection reset by peer).
21:34:57 <oerjan> the ords of csw
21:36:50 <oerjan> Ngevd: so how often do you eat three tonnes of jarlsberg?
21:37:55 -!- rapido has joined.
21:38:27 <elliott> Gregor: Oh, right, you replied :P
21:38:34 <Ngevd> oerjan, so /that's/ why that sounded familiar
21:38:37 <elliott> Gregor: How does the log formatter know when someone leaves a channel; that requires unbounded lookback in the logs
21:40:33 <rapido> for almost 2 years, i'm obsessed with uniquely represented data structures
21:41:26 <elliott> rapido: hi
21:41:46 <rapido> elliott: hey, it's been a while
21:41:53 <elliott> indeed
21:42:02 <rapido> obsessions are good
21:42:18 <rapido> no?
21:42:48 <oerjan> no, obsessions are evil, you must dedicate your life to eradicate them all!
21:42:56 <oerjan> *ing
21:45:27 <elliott> the only good obsession is @
21:46:12 <olsner> hmm, there was something I was thinking about earlier that I thought belonged in #esoteric
21:46:18 <oerjan> ^ul ((@ )S:^):^
21:46:18 <fungot> @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ...too much output!
21:46:18 <rapido> i must admit - i want to pick your esoteric brains
21:46:21 <olsner> but I guess we'll never know
21:46:28 <kallisti> s/@/@ and Stack Overflow/
21:46:41 <rapido> anyone familiar with uniquely represented data structures?
21:47:06 <elliott> rapido: I take it you mean structures for which syntactic equality is semantic equality?
21:47:13 <oerjan> future log readers will wonder why that previous fungot line exceeds the irc length limit. of course it's really just because @ is that awesome.
21:47:13 <fungot> oerjan: as a veteran of the game. then i'll put a mean game of blackjack.
21:47:14 <elliott> By "I take it", I mean "I am going to wildly guess".
21:47:33 <elliott> oerjan: I think fungot might be conservative enough about the limits to prevent that :P
21:47:34 <fungot> elliott: and just what your porkhollow's fat ass needs.
21:47:45 <elliott> fungot: I love you too.
21:47:45 <fungot> elliott: his birthday is in a few minutes. wow he is so cool. two more large gizmos. it was once the island
21:48:19 <rapido> elliott: nah, its about unique representation (=layout in memory). But hey, who doesn't want to be unique?
21:48:40 <elliott> rapido: Unique howso? "Nobody else has thought of it"?
21:49:55 <rapido> example: http://www.cs.cmu.edu/~dgolovin/papers/btreap.pdf
21:50:09 <fizzie> ^bf ,>,[.<.>]! @
21:50:09 <fungot> @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ...
21:50:11 <oerjan> elliott: sure, as long as the name is no longer than 3 characters
21:50:22 <fizzie> Mhm, the ^ul lines are longer.
21:50:26 <oerjan> er, 2
21:50:52 <fizzie> Anyway, it doesn't go full 512-hog.
21:50:54 <rapido> you don't want others to know that you have been deleting the sexist remark
21:51:20 <elliott> rapido: "Uniquely
21:51:20 <elliott> represented data structures represent each logical state with a unique machine state.
21:51:20 <elliott> Such data structures are strongly history-independent; they reveal no information
21:51:20 <elliott> about the historical sequence of operations that led to the current logical state. For
21:51:20 <elliott> example, a uniquely represented file-system would support the deletion of a file in
21:51:20 <elliott> a way that, in a strong information-theoretic sense, provably removes all evidence
21:51:22 <elliott> that the file ever existed."
21:51:27 <elliott> rapido: OK, that _is_ what I said, then.
21:51:39 <elliott> If syntactic equality is semantic equality, every equivalent state has a single representation.
21:51:57 <elliott> Intensional equality, if you'd prefer.
21:51:58 <fizzie> The ^ul might go quite close, though.
21:52:48 <rapido> "Intensional equality" - that's a cool definition
21:53:31 <oerjan> ^ul ((0123456789)S:^):^
21:53:31 <fungot> 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123 ...too much output!
21:53:48 * elliott likes such definitions too, but for reasons of mathematical elegance more than information-hiding.
21:53:51 <rapido> elliott: it's hard to achieve strong history-independency
21:54:29 <elliott> I don't really care about the actual bits and bytes representation so long as the constructor tree is the same... but it's the same thing from a different level of abstraction, and the only difference will be the exact values of pointers.
21:54:29 <oerjan> 344
21:54:58 <rapido> but pondering on it for two years i finally think i have a good result - but it feels hacky
21:55:05 <kallisti> I would think Haskell would be a good playground for creating such structures.
21:55:17 <oerjan> > 324/9
21:55:18 <lambdabot> 36.0
21:55:25 <elliott> kallisti: Not if you care about the exact in-memory representation :P
21:55:50 <elliott> rapido: The simplest way to achieve history-dependency would be to deconstruct and reconstruct the structure on every operation, of course.
21:55:51 <kallisti> that's implementation dependent anyway...
21:56:12 <elliott> kallisti: Yes, in Haskell.
21:56:17 <elliott> Circular reasoning, man,.
21:56:40 <kallisti> elliott: well that makes sense because circular reasoning is circular.
21:57:10 <kallisti> > (:[])>=>(:[])>=>(:[]) $ "hi"
21:57:11 <lambdabot> ["hi"]
21:57:12 <elliott> Actually that's begging the question, I think. In the formal sense.
21:57:30 <kallisti> beggining the question is circular reasoning because it begs the question though. obviously.
21:57:35 <rapido> anyone familiar with cartesian trees (treaps?)
21:58:05 <kallisti> I am now.
21:58:25 <elliott> I have *heard* the term treap!
21:58:52 <rapido> they have the unique property that they have a unique representation
21:59:13 -!- Jafet has quit (Quit: Leaving.).
21:59:14 <rapido> for a fixed set of (x,y) pairs
22:00:59 <rapido> fixed in the sense that there is one unique cartesian tree for a set of (x,y) pairs
22:01:08 <rapido> am i boring you?
22:01:31 <elliott> totally. (no)
22:02:04 <kallisti> so it's kind of like a binary search tree except that it's also heap and it's sorted by position in the original sequence instead of by an ordering over the elements.
22:02:15 <kallisti> >_>?
22:02:22 -!- lax has joined.
22:02:24 <Ngevd> :t (>+>)
22:02:25 <lambdabot> Not in scope: `>+>'
22:02:27 <elliott> `welcome lax
22:02:29 <Ngevd> :t (>_>)
22:02:29 <lambdabot> parse error on input `)'
22:02:34 <HackEgo> lax: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
22:02:53 <lax> any friend hereeeeeeee
22:02:55 <lax> im ne win thisssssssssss
22:02:58 <lax> inthis
22:03:00 <elliott> yeah
22:03:02 <elliott> i'm friend
22:03:05 <elliott> sup
22:03:16 <lax> ohh thanksss
22:03:20 <lax> i was tryign this page
22:03:24 <lax> for hoursss
22:03:33 <lax> and finally i did it
22:03:34 * kallisti giggles gleefully.
22:03:37 <lax> thanks
22:03:39 <elliott> congrats
22:03:54 <lax> so u are chatting here?
22:03:59 <Ngevd> Yes
22:04:08 <Ngevd> Supposedly about esoteric programming languages
22:04:18 <lax> elliottttttttttttt
22:04:22 <lax> dotn leave meeeeeeee
22:04:26 <elliott> ais523: [[User:KuzyFueesi‎]]
22:04:29 <elliott> lax: hi
22:04:37 <lax> ahhh i tough u gone
22:04:41 <elliott> i never leave
22:04:43 <elliott> i'm actually a robot
22:04:48 <lax> dont go
22:04:58 <lax> ive just have some minutes here
22:05:05 <lax> nice to meet u here
22:05:08 <elliott> hello
22:05:15 <lax> im here
22:05:18 <elliott> me too
22:05:24 <Ngevd> I'm not
22:05:26 <kallisti> I'm here but not there.
22:05:29 <kallisti> whch is also here
22:05:30 <kallisti> hi.
22:05:43 <Ngevd> Hang on, one important question, lax. Do you live in a place called Hexham?
22:05:57 <lax> no
22:06:03 <lax> why
22:06:08 <Ngevd> Two of us here do
22:06:17 <elliott> lax: helsinki then
22:06:30 <lax> i cant get what she says
22:06:38 <kallisti> lax: anywhere in Scandinavia perhaps?
22:06:46 <elliott> is Ngevd female or am i
22:06:52 <elliott> i'm not even sure myself any more :(
22:07:06 <lax> noooo
22:07:13 <elliott> :'(
22:07:15 <fizzie> elliott: Everyone's always from either Hexinki or Helsham.
22:07:31 <lax> im from peru
22:07:35 <rapido> elliott: what about ternary logic? you don't have to be female or male
22:07:38 <lax> south america
22:07:40 <elliott> peru is right next to finland i think
22:07:44 <kallisti> lol
22:07:49 <elliott> rapido: I didn't imply that :P
22:07:52 <lax> noooo
22:08:00 <oerjan> perussia
22:08:05 <fizzie> elliott: mooz married someone from Peru, so in that sense at least.
22:08:11 <elliott> fizzie: Was it... lax?
22:08:24 <lax> my country
22:08:27 <fizzie> elliott: Not as far as I know, but I don't know much.
22:08:33 <Ngevd> Who's mooz?
22:08:42 <kallisti> lax: are you a fan of Immortal Technique? :>
22:08:47 <fizzie> Ngevd: Just this one guy, you know?
22:08:51 <lax> elliot?
22:08:54 <elliott> lax: hi
22:08:56 <elliott> i'm still here
22:09:02 <elliott> don't worry, i'll keep talking at least every 30 seconds so you know i'm here
22:09:05 <lax> who is mooz
22:09:20 <Ngevd> lax :Just this one guy, you know?
22:09:34 <lax> im want to talk to eliott
22:09:36 <lax> not u
22:09:43 <Ngevd> :(
22:09:45 <Ngevd> I am sad
22:09:54 <elliott> lax: good choice, Ngevd sucks
22:10:01 <kallisti> "Because a Cartesian tree is a binary tree, it is natural to use it as a binary search tree for an ordered sequence of values. " wow I'm genius
22:10:09 <elliott> lax: not as bad as kallisti tho
22:10:25 <lax> well i have to go eliott
22:10:29 <lax> nice to meet u here
22:10:34 <lax> thanks for u time
22:10:36 <kallisti> `words 50
22:10:39 <rapido> sometime i wonder if elliott is male, female and bimale - typing really fast at separate keyboards
22:10:40 <lax> u seem to be nice
22:10:44 <HackEgo> cont attambennisco kra attrepla alopath ventanc mahata publi polar casecr suffer lough poplicat dinge lat piry mire ant koo elved poblynwan langorzah jump bad same aurvadher grimen bie mile amuant spansum woolgtenie portung suff pula colli pat pulsifer pohy prot deschl nic hesitio auerly slro ttr invoke idicla hot rage
22:10:49 <fizzie> Ngevd: http://sbp.so/qsort (Also who on earth did that archive-page? Someone here?)
22:11:04 <elliott> rapido: as has been repeatedly established, i'm an amorphous, non-corporeal blob that lives on the internet
22:11:09 <lax> God bless u aliott
22:11:13 <elliott> good bye lax
22:11:15 <elliott> come again sometime!
22:11:15 <lax> take care
22:11:20 <kallisti> god bless aliott america
22:11:26 <lax> i dotn know how to use that chatt
22:11:31 <elliott> me neither
22:11:32 <lax> lol
22:11:35 <elliott> i just type words and they come out on the screen
22:11:37 <lax> but i have email
22:11:43 <elliott> oh good, what's your email
22:11:55 <lax> nellcita@hotmail.com
22:12:05 <elliott> have fun!!
22:12:07 <lax> thats the mail i use to chatt or facebook
22:12:09 <lax> ok
22:12:13 <lax> same there
22:12:34 <rapido> do not - i repeat - do not reveal your email! you will be spammed
22:12:37 <Ngevd> fizzie, so that's mooz
22:13:02 <lax> ohhhh eliott
22:13:05 <lax> u wotn do that
22:13:08 <elliott> rapido: you'll get spammed even if you don't :P
22:13:10 <elliott> lax: don't worry
22:13:13 <elliott> i'll protect you from the spambots
22:13:17 <elliott> it is... my duty
22:13:19 -!- derdon has joined.
22:13:20 <lax> ohh thanks
22:13:24 <lax> loves from peru
22:13:29 <lax> and wellcome
22:13:44 <kallisti> @tell monqy hi
22:13:44 <lambdabot> Consider it noted.
22:13:46 <fizzie> Ngevd: Indeed. He even was on-channel in 2003 or thereabouts.
22:13:56 <Ngevd> fizzie, Before my time then.
22:14:03 -!- lax has left.
22:14:06 <fizzie> elliott: You're such a... what's that term... "playa"?
22:14:06 <elliott> i have no idea what just happened
22:14:11 <rapido> you protect me from spambots? where do i sign?
22:14:15 <Ngevd> 2003, I was... using computers to write as many roman numerals as I could
22:14:26 <elliott> rapido: sorry, by invite only
22:14:58 <elliott> fizzie: http://upload.wikimedia.org/wikipedia/commons/2/26/Kluft-photo-Black-Rock-Desert-Aug-2005-Img_5081.jpg <-- me
22:15:02 <kallisti> elliott: I was loling so hard
22:15:07 <kallisti> through that conversation
22:15:22 <oerjan> Ngevd: clearly a job for INTERCAL
22:17:58 <elliott> fizzie: How does that syntax-highlighting work, anyway?
22:18:04 <elliott> Oh, it's manual.
22:18:04 <kallisti> http://en.wikipedia.org/wiki/Mu_(lost_continent)
22:18:07 <kallisti> huh. cool
22:18:37 <elliott> GenrePseudoscience
22:20:38 <rapido> manual syntax highlighting: *do* it
22:20:54 <rapido> or do *it*
22:21:02 <rapido> or just do it
22:21:39 -!- Ngevd has quit (Quit: Taneb cancelled playing Dwarf Fortress: Needs sleep).
22:21:48 <PiRSquared17> elliott: http://en.wikipedia.org/wiki/User:Ikluft is you?
22:21:55 <oerjan> do it
22:22:01 <elliott> PiRSquared17: wut
22:22:04 <elliott> PiRSquared17: no, why would it be?
22:22:13 <PiRSquared17> http://upload.wikimedia.org/wikipedia/commons/2/26/Kluft-photo-Black-Rock-Desert-Aug-2005-Img_5081.jpg <-- me
22:22:18 <PiRSquared17> ...
22:22:18 <elliott> oh
22:22:21 <elliott> <fizzie> elliott: You're such a... what's that term... "playa"?
22:22:23 <elliott> it's a picture of a playa
22:22:28 <PiRSquared17> lol
22:22:35 <oerjan> PiRSquared17: finnmark finnmark finnmark finnmark finnmark finnmark
22:22:41 <PiRSquared17> FINNMARK
22:23:00 <elliott> finnmark
22:23:05 <elliott> Gregor: :(
22:23:44 <elliott> ais523: wiki spam influx
22:24:51 <elliott> oh dear, i think my lightbulb is about to break
22:25:14 -!- rapido has quit (Quit: rapido).
22:25:16 <oerjan> are there enough elliotts to change it?
22:26:10 <elliott> I need @
22:27:14 <ais523> elliott: wiki's being slow loading
22:31:49 <ais523> OK, and deleted
22:32:04 <ais523> incidentally, people who aren't using a monospace font, how does your client kern uTu?
22:32:20 <ais523> it looks pretty weird on mine, the second u overlaps the bottom of the T, bu the first u doesn't
22:34:04 <elliott> same here, but I'm pretty sure that's correct
22:34:16 <elliott> or at least, T after u is what's incorrect :)
22:34:54 <kallisti> elliott: hi I'm reading "On computable numbers with an application to the entscheidungsproblem" by Alan Turing.
22:34:54 <ais523> arguably, that asymmetrical kerning is appropriate for camelCase
22:34:58 * kallisti getting his learn on.
22:37:30 <shachaf> kallisti: Why would you read about computable numbers?
22:37:37 <shachaf> Practically all numbers are uncomputable.
22:38:11 <oerjan> shachaf: so he can entscheid properly, duh
22:39:28 <oerjan> `addquote <Phantom_Hoover> There.... is a box of Gardasil next to the butter in my fridge. <Phantom_Hoover> At least my sandwich will be immune to cervical cancer *and* genital warts, I suppose.
22:39:31 <HackEgo> 795) <Phantom_Hoover> There.... is a box of Gardasil next to the butter in my fridge. <Phantom_Hoover> At least my sandwich will be immune to cervical cancer *and* genital warts, I suppose.
22:40:13 <ais523> OK, that is a good quote
22:40:15 <ais523> `quote
22:40:17 <ais523> `quote
22:40:18 <ais523> `quote
22:40:20 <ais523> `quote
22:40:21 <ais523> `quote
22:40:27 <HackEgo> 356) <tswett> Grr. Why does it exist? Why can't I kill it?
22:40:29 <HackEgo> 569) <fungot> elliott__: my fnord into normal life was a painful and difficult process. [...]
22:40:32 <HackEgo> 413) <oklopol> so about jacuzzis, do they usually have a way to make it it not heat but freeze the water?
22:40:54 <ais523> 413 is the best of those three
22:40:57 <iconmaster> heh result 413
22:40:57 <lambdabot> iconmaster: You have 1 new message. '/msg lambdabot @messages' to read it.
22:40:57 <ais523> but the other two are decent
22:41:05 <ais523> still waiting on two more
22:41:21 <HackEgo> 747) <pikhq_> Gregor is actually a rare species of mangoat <oerjan> the fashion sense comes from the mango part
22:41:21 <HackEgo> 45) <Aftran> It looks like my hairs are too fat. Can you help me split them?
22:41:34 <ais523> elliott: 45?
22:41:40 <oerjan> hey that's a classic!
22:41:54 <oerjan> gives such a nostalgic feeling
22:41:57 <ais523> is it a /good/ classic?
22:41:58 <elliott> indeed
22:42:04 <elliott> 747 is fairly lame
22:42:15 * oerjan swats elliott -----###
22:42:20 <elliott> i knew that would happen
22:42:47 <oerjan> elliott the cassandra
22:42:48 <olsner> I think I saw the mangoat quote live
22:42:53 <kallisti> shachaf: sorry, as a COMPUTER science major I'm only interesting in the COMPUTERable ones.
22:43:03 <ais523> elliott: indeed, but it's one of oerjan's better puns
22:43:05 <kallisti> even though that's "practically none" of them.
22:43:06 <ais523> I didn't see it coming
22:43:13 <elliott> `delquote 747
22:43:17 <HackEgo> ​*poof* <pikhq_> Gregor is actually a rare species of mangoat <oerjan> the fashion sense comes from the mango part
22:43:18 <elliott> it's just not as funny as the others sory
22:43:29 <elliott> `quote
22:43:29 <elliott> `quote
22:43:30 <elliott> `quote
22:43:30 <elliott> `quote
22:43:30 <oerjan> WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
22:43:31 <elliott> `quote
22:43:40 <HackEgo> 309) <fungot> oerjan: are you in an aware state when the only hammer you have is for variable assignation and blocks
22:43:44 <HackEgo> 641) <fungot> fizzie: it doesn't *use* raw cgi. to my deep fnord i'm only fnord of the job description. it's badly fnord also.
22:44:11 <elliott> so i just this second realised what "fungot" means
22:44:11 <fungot> elliott: in a good way though, so it's the left-right eye. you say yeah, but hang it on your wall. literally.
22:44:27 <oerjan> elliott: wait, for the first time?
22:44:34 <elliott> yes, unless i knew and then forgot
22:44:50 <HackEgo> 37) <Dylan> kaelis: yes kaelis, but however will get the horses to wear knickers?
22:44:50 <HackEgo> 77) <Warrigal> It's not incest if you're third cousins!
22:44:51 <HackEgo> 133) <coppro> what's the data of? [...] <Sgeo> Locations in a now deceased game called Mutation <coppro> I have no problems with you being interested in online games <coppro> but the necrophilia is disturbing
22:44:53 <olsner> elliott: what does it mean?
22:45:14 <elliott> olsner: funge bot
22:45:21 <olsner> oh, right, I knew that
22:45:25 <elliott> `delquote 37
22:45:31 <HackEgo> ​*poof* <Dylan> kaelis: yes kaelis, but however will get the horses to wear knickers?
22:45:32 -!- zzo38 has joined.
22:45:32 <oerjan> hm apparently there are people named fungot
22:45:32 <fungot> oerjan: the stuff scattered about your room. you of course it was a nasty pair, but he had already been a mass grave. the grisly abomination for your birthday. a number of interests.
22:45:46 <fizzie> "Funge-98 Bot" is even the realname of eir Twitter account.
22:46:01 <elliott> fizzie: And the name of the git repo interface thing, IIRC. I just never... made the connection.
22:46:18 <ais523> elliott: oh, I'd known it was funge bot all along, and your sudden realisation made me doubt that
22:46:26 <ais523> do you know the etymology behind thutubot's name, btw?
22:46:40 -!- oklopol has joined.
22:46:42 <fizzie> elliott: It's because e's such a FUN guy it crowds out then FUNGy part.
22:46:58 <fizzie> s/then/the/
22:47:07 <elliott> ais523: let me think...
22:47:10 <elliott> thutu + bot?
22:47:13 <ais523> yep
22:47:14 * olsner follows fungot on twitter
22:47:14 <fungot> olsner: that is a winner's attitude, and there is no particularly good human translation for this concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear con
22:47:16 <elliott> gasp!!!
22:47:27 <zzo38> ?messages
22:47:28 <lambdabot> itidus21 said 13d 16h 2m 2s ago: welcome back
22:47:28 <lambdabot> itidus21 said 13d 16h 1m 10s ago: it was funny for me at the time since you were joining and leaving at a high rate. but the joke has expired
22:47:28 <lambdabot> oerjan said 10d 13h 1m 54s ago: btw, fmap' shows that T is also a contravariant functor in its first argument.
22:47:35 <zzo38> ?messages
22:47:36 <lambdabot> You don't have any new messages.
22:47:44 <zzo38> ?messages
22:47:44 <lambdabot> You don't have any new messages.
22:47:45 <fizzie> I need to restart that Twitter script one day.
22:48:07 <elliott> oerjan: haskell quiz of the day: can any data type be given both a valid Functor and a valid Contrafunctor instance?
22:48:18 <oerjan> zzo38: lambdabot is supposed to only show them once, but there's some weird resetting going on occasionally...
22:48:24 <elliott> this is one of those quizzes where I don't know the answer, and want to find out.
22:48:38 <olsner> its last tweet was twat in May, apparently
22:48:39 <oerjan> elliott: data T a = T hth
22:48:51 <olsner> indeed fizzie needs to restart the script
22:49:06 <oerjan> or even data T a b = T a
22:49:10 <fizzie> I could try if it has bitrotted away right now.
22:50:02 <elliott> oerjan: hmm... i think that might violate the laws when _|_ is involved
22:50:08 <elliott> at least, data T a = T isn't a monad if you count bottoms
22:51:37 <fizzie> It's possible Twitter's authentication API changed and broke it, and that's why I haven't restarted.
22:52:15 <elliott> fizzie: They're OAuth-only these days, I think.
22:52:18 <oerjan> elliott: who said anything about monad
22:52:27 <oerjan> fmap = id, simply
22:52:39 <oerjan> ok that doesn't quite type
22:52:49 <oerjan> fmap (T x) = T x
22:52:58 <oerjan> >_<
22:53:02 <oerjan> fmap _ (T x) = T x
22:53:22 <elliott> oerjan: well monads are functors, I was just giving an analogy...
22:53:31 <elliott> also, fmap = const unsafeCeoerce :P
22:53:33 <elliott> *Coerce
22:53:42 <oerjan> yeah that also works
22:54:15 <elliott> fsvo work
22:54:30 <oerjan> but to have a Functor, you just need that all appearances of the last parameter are in covariant, nonstrict positions afaict
22:54:40 <oerjan> and if there are none, it's trivial
22:55:04 <oerjan> and for Contrafunctor, probably the same but with contravariant
22:55:19 <elliott> oerjan: ok one that actually mentions a /and/ b on the RHS :P
22:55:25 <elliott> and no cheating by outsourcing to your existing T!
22:55:29 <oerjan> funny guy
22:55:33 <oerjan> well then i don't know
22:56:02 <elliott> join the club! (the club is mine)
22:56:27 * tswett joins elliott's club.
22:57:21 <tswett> Is there a stipend associated with this club?
22:57:31 <oerjan> i doubt there are any with simple ADTs, though
22:58:47 <elliott> tswett: 1,000,000 pounds per day or however much you can afford
22:58:58 <elliott> oerjan: i don't see how gadts would help
22:59:09 <tswett> I get paid however much I can afford?
22:59:49 <oerjan> elliott: well i imagined if there is some way to hide the type so it isn't exposed, analogous to show . read ...
23:00:12 <olsner> oh, fungot twat again! https://twitter.com/#!/fungot/status/154697756248776705
23:00:12 <fungot> olsner: that is a winner's attitude, and there is no particularly good human translation for this concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear con
23:00:29 <olsner> huh, that's the exact same thing it said last time
23:00:33 <olsner> fungot
23:00:33 <fungot> olsner: you really wish your side.
23:00:46 <elliott> fizzie: Will it tweet with its fungot dataset too? :p
23:00:46 <fungot> elliott: the one who got you killed him for it?
23:00:53 <tswett> I... don't think there's any practical limit to the amount of money I can afford to be paid.
23:01:28 <olsner> I think the way it works is that if you have lots of money you get lots of money, if you have no money you get no money
23:01:45 <tswett> I see.
23:01:49 <elliott> tswett: Oh, I was thinking of tithes.
23:01:56 <pikhq> Shame, too. I can afford to be paid any positive stipend.
23:01:59 <oerjan> like data T a b c = T (a -> c) (c -> b) but where you cannot actually get at the pieces
23:01:59 <elliott> I... er... congratulations, you have unlimited money!
23:02:20 <tswett> Excellent.
23:02:28 <elliott> oerjan: which pieces? c or (a,b)?
23:02:36 <oerjan> elliott: the fields
23:02:43 <oerjan> c
23:02:52 <elliott> oerjan: data T a b where T :: (a -> c) -> (c -> b) -> T a b?
23:02:52 -!- iconmaster has quit (Ping timeout: 248 seconds).
23:02:54 <fizzie> elliott: Not yet, but maybe soon.
23:02:58 <fizzie> Hoy, it works.
23:03:00 <fizzie> $ ./twungot-poster.py fungot.json
23:03:00 <fizzie> [2012-01-05 00:56:34] Tweeted: About NetHack: of this town. in one hand he held his court. these chosen ones will defend the land, is described in snorri's _edda_ as... (fungot)
23:03:00 <fungot> fizzie: so, you give up, jade is my slime tube and this is a new game. there is a heavy amount of time i will say you are only here to deliver a message and then i'll put his shit up?
23:03:01 <fungot> fizzie: you will be taking that crowbar though rare, is quite a troubling development primed for the digestive ruination that's about to take is the ultimate riddle.
23:03:14 <oerjan> elliott: no, the c _should_ still be the type parameter
23:03:20 <fizzie> That's a good moment to sleep. ->
23:03:29 <elliott> oerjan: you want it existential but exposed?
23:03:43 <elliott> fizzie: <olsner> oh, fungot twat again! https://twitter.com/#!/fungot/status/154697756248776705
23:03:44 <fungot> elliott: to be honest, it doesn't exist in a state of almost perpetual stalemate, and expands to a larger board and more exotic collection of what he refers to as a thermal hull, instead of some kind of clock pun. no, dammit, will this breakfast injure his shrill, bearded, scraggly old men in space. jade's radioactive, omnipotent, space-warping dog named...
23:03:56 <oerjan> elliott: i have no idea if it makes sense in any way
23:04:17 <elliott> oerjan: well what's the eliminator?
23:04:36 <tswett> How long as fungot been set to Homestuck?
23:04:37 <fungot> tswett: your modus grabs, who wants it back. it keeps happening. you seem to have a knack for always guessing right on the first try! r3l4t1v3 to my pr3s3nt to r3m4rk of r34ssur4nc3!
23:04:37 <elliott> `addquote <fungot> elliott: to be honest, it doesn't exist in a state of almost perpetual stalemate, and expands to a larger board and more exotic collection of what he refers to as a thermal hull, instead of some kind of clock pun. no, dammit, will this breakfast injure his shrill, bearded, scraggly old men in space. jade's radioactive, omnipotent, space-warping dog named...
23:04:37 <fungot> elliott: what, the last one. wait no, that just made you disappear" and stuff. this is just the sort of human profanity?
23:04:40 <HackEgo> 794) <fungot> elliott: to be honest, it doesn't exist in a state of almost perpetual stalemate, and expands to a larger board and more exotic collection of what he refers to as a thermal hull, instead of some kind of clock pun. no, dammit, will this breakfast injure his shrill, bearded, scraggly old men in space. jade's radioactive, omnipotent, space-warping dog named...
23:05:19 <tswett> fungot: DO YOU P4Y 4NY 4TT3NT1ON TO TH3 STUFF P3OPL3 S4Y TO YOU?
23:05:20 <fungot> tswett: for a while it was frustrating. edification. perfection. those are your favorite books of all time, wise, a distinction in men that would forever. how many metalayers removed this story can we just cut it in half, splitting it into two pieces in the two large screens.
23:05:35 <tswett> NOP3, 1 GU3SS NOT. >:|
23:11:14 -!- NihilistDandy has quit (Read error: Connection reset by peer).
23:11:28 -!- NihilistDandy has joined.
23:11:39 -!- NihilistDandy has quit (Client Quit).
23:16:33 <zzo38> ?messages
23:16:33 <lambdabot> You don't have any new messages.
23:17:34 -!- monqy has joined.
23:17:44 <elliott> messages
23:19:12 <elliott> kallisti: http://stackoverflow.com/questions/8735132/can-a-php-file-ever-be-read-externally
23:19:38 <zzo38> I found some document of a chess variant, there are four players and the board rotates after every move pair. You have to use divination to determine the direction of rotation. Whenever there is a pawn promotion, you have to bow and make secret hand signs and use cards to determine what you promote to. In case there are two candidates for a winner at the end of the game, use divination to determine which is the winner. The winner can have the k
23:19:51 -!- DCliche has joined.
23:20:18 <oerjan> "The winner can have the k"
23:20:25 <zzo38> ing's ice cream.
23:21:32 <zzo38> There are many methods of divination listed, including: chiromancy, astrology, dowsing, using knucklebones marked with letters of the alphabet, and divination by interpreting the movements of a key suspended by a thread from the nail of the third finger on a young virgin's hand while one of the Psalms was recited.
23:21:57 -!- NihilistDandy has joined.
23:22:20 <zzo38> (Tea leaves is also one of the choices, in case you like to drink tea a lot while playing chess.)
23:22:50 <elliott> oerjan: hm i have a sort of vague idea of how you could make that nest stuff polymorphic
23:22:52 -!- Klisz has quit (Disconnected by services).
23:22:54 -!- DCliche has changed nick to Klisz.
23:23:16 <elliott> oerjan: the idea is that inEndo would apply an infinite /stream/ of appEndo
23:23:22 <elliott> and each one would be used for one argument
23:23:28 <elliott> so the types never get unified
23:23:37 <elliott> ofc the problem there is how to get that infinite heterogeneous stream expressed...
23:25:37 <PiRSquared17> ?messages
23:25:37 <lambdabot> You don't have any new messages.
23:29:22 <kallisti> elliott: "Not opening the PHP file with <?php" good one
23:30:54 <PiRSquared17> XD
23:31:18 <oerjan> elliott: you know that haskell functions with infinite length parameter lists are useless, right? :P
23:31:45 <elliott> oerjan: um yes... but consider if you could express an infinite stream on the type level
23:32:11 <elliott> oerjan: the point is that (nest.nest.nest) needs /three/ unwrapprs
23:32:12 <elliott> unwrappers
23:32:19 <elliott> so what inEndo has to be able to do is to produce an arbitrary number of appEndos
23:32:34 <elliott> nest is a bad name but I can't think of a better name
23:34:23 <oerjan> i think you are going to need a class for that
23:34:52 <oerjan> because you cannot have an infinite heterogeneous type
23:35:23 <elliott> oerjan: no shit, i am speaking in figurative terms to express what inEndo /essentially/ needs to do to get it to work :P
23:35:34 <elliott> not proposing that if I just define an infinite stream type it'll work
23:37:55 <oerjan> yeah, i just remember you started this earlier with saying you didn't want to use classes
23:39:42 <elliott> oerjan: well rather i didn't want to use a typeclass to define how to unwrap/wrap a type
23:39:45 <elliott> that's all
23:39:51 <elliott> i.e. I don't want to tie (Endo,appEndo) to the Endo type itself
23:39:54 <elliott> an internal typeclass is fine
23:41:05 <elliott> oerjan: oh cool, "inEndo id" = Endo
23:41:19 <elliott> inEndo (flip const) = appEndo
23:41:56 -!- nooga has quit (Ping timeout: 240 seconds).
23:42:38 <oerjan> > let nest (o,os) = result (k os) . argument o then?
23:42:39 <lambdabot> <no location info>: parse error on input `then'
23:42:56 <oerjan> :t let nest (o,os) = result (k os) . argument o in nest
23:42:57 <lambdabot> Couldn't match expected type `t -> a -> b'
23:42:57 <lambdabot> against inferred type `Expr'
23:42:57 <lambdabot> In the first argument of `result', namely `(k os)'
23:43:03 <oerjan> bah
23:43:19 <elliott> inEndo :: ((forall a. t -> (a -> a) -> Endo a) -> (forall a. Endo a -> a -> a) -> r) -> r
23:43:21 <elliott> darn this almost works :P
23:43:34 <elliott> oerjan: well i don't see how you could define an inEndo for that...
23:43:44 <elliott> oh hmm
23:43:45 <oerjan> :t let nest k (o,os) = result (k os) . argument o in nest
23:43:46 <lambdabot> forall t a b (f :: * -> *) a1. (Functor f) => (t -> a -> b) -> (f a1, t) -> (a1 -> a) -> f b
23:43:48 <elliott> you'd need a typeclass for inEndo itself
23:43:54 <elliott> that kind of works I guess :/
23:44:02 <oerjan> elliott: yes, that was what i thought
23:45:54 <oerjan> inEndo seems like the right place to have one if you must
23:46:51 <kallisti> > map return "hi"
23:46:52 <lambdabot> No instance for (GHC.Show.Show (m GHC.Types.Char))
23:46:52 <lambdabot> arising from a use of...
23:47:04 <kallisti> > map return "hi" :: [String]
23:47:04 <lambdabot> ["h","i"]
23:47:17 <elliott> oerjan: yeah :/
23:47:26 <elliott> oerjan: hm wait
23:47:39 <elliott> never mind
23:48:06 * Phantom_Hoover → sleep
23:48:09 -!- Phantom_Hoover has quit (Quit: Leaving).
23:49:36 <PiRSquared17> <CTCP>ACTOIN<CTCP>
23:49:43 <kallisti> lol
23:50:12 <elliott> actoin
23:50:14 <PiRSquared17> <CTCP>CHUCK_NORRIS<CTCP>
23:50:34 <kallisti> > let pal alphabet = []:map (:[]) alphabet >- (\c -> map (\e -> e : c ++ [e]) alphabet) in pal "abc" --oopse
23:50:35 <lambdabot> Not in scope: `>-'
23:50:36 <PiRSquared17> unknown CTCP: CHUCK_NORRIS?!
23:50:47 <kallisti> > let pal alphabet = []:map (:[]) alphabet >>- (\c -> map (\e -> e : c ++ [e]) alphabet) in pal "abc" --oopse
23:50:49 <lambdabot> ["","aaa","aba","bab","aca","cac","bbb","bcb","cbc","ccc"]
23:50:57 <kallisti> hm nope
23:52:07 <kallisti> > let pal alphabet = join . iterate (>>- (\c -> map (\e -> e : c ++ [e]) alphabet) in pal "abc") $ [] :map (:[]) alphabet
23:52:08 <lambdabot> <no location info>: parse error on input `in'
23:52:23 <kallisti> > let pal alphabet = join . iterate (>>- (\c -> map (\e -> e : c ++ [e]) alphabet) $ [] :map (:[]) alphabet in pal "abc"
23:52:24 <lambdabot> <no location info>: parse error on input `in'
23:52:47 <kallisti> > let pal alphabet = join . iterate (>>- (\c -> map (\e -> e : c ++ [e]) alphabet)) $ [] :map (:[]) alphabet in pal "abc"
23:52:48 <lambdabot> ["","a","b","c","aa","aaa","bb","aba","cc","bab","aca","cac","bbb","bcb","c...
23:53:09 <kallisti> > let pal alphabet = join . iterate (>>= (\c -> map (\e -> e : c ++ [e]) alphabet)) $ [] :map (:[]) alphabet in pal "abc"
23:53:11 <lambdabot> ["","a","b","c","aa","bb","cc","aaa","bab","cac","aba","bbb","cbc","aca","b...
23:53:17 <kallisti> yeah don't need >>-
23:53:29 <elliott> for finite alphabets maybe :)
23:53:34 <kallisti> ah, true.
23:53:35 <ais523> <bws111> Do you think it should be legal for a man to marry his cat, so that the cat gets health benefits and the man gets a tax deduction?
23:53:48 <ais523> hmm, if I were zzo38 I'd have said that without the attribution
23:54:17 <kallisti> anyway that code looks kind of ugly to me.
23:56:24 <kallisti> > sequence . return $ [1,2,3]
23:56:25 <lambdabot> [[1],[2],[3]]
←2012-01-03 2012-01-04 2012-01-05→ ↑2012 ↑all