←2012-01-10 2012-01-11 2012-01-12→ ↑2012 ↑all
00:05:52 -!- TeruFSX_ has quit (Read error: Connection reset by peer).
00:59:52 * kallisti considers taking a break from this channel
01:00:17 <shachaf> Sounds like a good idea.
01:00:21 <shachaf> I should do that.
01:07:37 <oerjan> the rumors of the great spam reduction seem a little premature
01:30:25 -!- pikhq has joined.
01:30:30 -!- pikhq_ has quit (Ping timeout: 240 seconds).
01:30:49 -!- cswords has joined.
01:43:53 -!- azaq23 has quit (Quit: Leaving.).
02:03:34 <kallisti> http://en.wikipedia.org/wiki/Markov_random_field
02:03:42 <kallisti> I wonder how good this would be for anti-latency prediction stuff.
02:29:56 -!- monqy has quit (Ping timeout: 240 seconds).
03:24:45 -!- monqy has joined.
03:30:30 -!- pikhq has quit (Ping timeout: 240 seconds).
03:30:38 -!- pikhq has joined.
03:50:15 -!- pikhq_ has joined.
03:50:37 -!- pikhq has quit (Ping timeout: 260 seconds).
04:06:14 -!- oerjan has quit (Quit: leaving).
04:26:09 -!- pikhq has joined.
04:26:14 -!- pikhq_ has quit (Ping timeout: 252 seconds).
04:49:23 <kmc> zombie 6.001 started today: http://web.mit.edu/alexmv/6.S184/
04:55:42 -!- pikhq has quit (Ping timeout: 240 seconds).
04:55:56 -!- pikhq has joined.
05:04:57 <augur> whats the most exotic machine architecture people know about?
05:05:03 <augur> exotic but not absurd
05:05:33 <pikhq> The Z3, by Konrad Zuse?
05:05:58 <augur> ill check it out :p
05:06:02 <augur> whats so exotic about it?
05:06:40 <kmc> old
05:06:53 <kmc> augur, there are some architectures where the only instruction is "mov"
05:06:53 <pikhq> Basically the first modern computer. Also, TC without a conditional branch operator.
05:07:02 <kmc> everything, even arithmetic, is memory-mapped
05:07:15 <kmc> to add numbers, you mov them to the ALU and then mov out of the "addition result" address
05:07:28 <shachaf> That seems like it's essentially just a different way to encode instructions.
05:07:30 <augur> kmc: thats kind of nice when you think about it
05:07:37 <pikhq> Also, 22 bit words.
05:07:50 <shachaf> Possibly interesting when you can remap memory yourself, I suppose.
05:08:00 <kmc> shachaf, or move directly between any two functional units
05:08:19 <shachaf> Ah, that's true.
05:09:41 <kmc> i don't know much about this
05:21:37 <Jafet> The ruskies built base-3 computers
05:21:50 <Jafet> Probably balanced ternary
05:41:16 <coppro> xkcd is funny today
05:51:10 -!- pikhq_ has joined.
05:51:40 -!- pikhq has quit (Ping timeout: 268 seconds).
06:24:12 -!- Slereah has quit (Ping timeout: 255 seconds).
06:25:31 -!- _Slereah has joined.
06:25:58 <kmc> not really
06:41:17 -!- pikhq has joined.
06:41:18 -!- pikhq_ has quit (Ping timeout: 255 seconds).
06:51:29 -!- Klisz has quit (Quit: SLEEP, GLORIOUS SLEEP).
07:04:56 -!- cswords has quit (Ping timeout: 240 seconds).
07:14:52 -!- cswords has joined.
07:19:25 -!- elliott has joined.
07:20:05 <elliott> What are you talking about? Haskell predates Lisp, and Lisp predates APL. In fact, Haskell was made just two years after assemblers were invented. – trinithis 9 hours ago
07:20:13 <elliott> I can't tell whether they're joking or not...
07:20:35 -!- Vorpal has joined.
07:26:46 -!- monqy has quit (Quit: hello).
07:27:00 <elliott> 22:55:25: <oerjan> i don't know that (,) is an Arrow
07:27:05 <elliott> arr :: (a -> b) -> (a,b)
07:27:53 <elliott> (diff) (hist) . . Language list‎; 19:43 . . (+125) . . (Talk) (Is there a way use some sort of third party forum moderation to cut through this problem? Then you could go on in whatever way you are comfortable, your forums could coninue to buzz and anyone that's)
07:28:01 <elliott> http://esoteric.voxelperfect.net/wiki/She_Gives_Me_Money_When_Im_In_Need_Lyrics
07:28:14 <elliott> Contents [hide]
07:28:14 <elliott> 1 She Gives Me Money When Im In Need Lyrics
07:28:14 <elliott> 1.1 She Gives Me Money When Im In Need Lyrics
07:28:14 <elliott> 1.1.1 it u take my money when I am in need of Yes, her friend 'knows triflin' Oh really, a digger of gold 'way over time to dig me [Chorus:] (Give me the money.) Lil Wayne, Lil Wayne discography.
07:28:20 <elliott> External links
07:28:40 <elliott> 00:59:52: * kallisti considers taking a break from this channel
07:28:45 <elliott> kallisti: sorry i'll tone down my cool
07:29:19 <fizzie> fungot: Why don't you ever give me money when I'm in need?
07:29:19 <fungot> fizzie: mr president, when the commission adds up the income side of agenda 2000.
07:29:36 <fizzie> fungot: Yeah, yeah, it's always one excuse or another.
07:29:36 <fungot> fizzie: mr president, commissioner, i believe that this is just a quote from a turkish newspaper, not a single phrase in the regulation.
07:30:55 -!- itidus21 has joined.
07:31:47 <elliott> fizzie: fungot's way over time to dig you.
07:31:49 <fungot> elliott: first of all, ladies and gentlemen, the european council has since taken place. furthermore, structural and cohesion policies? we take it for granted that there would be no problem in accepting it. even fnord in montenegro does not put them at a disadvantage because many european union states. i met with professionals from the maritime situation of the southeast of the country of origin' principle, this is only a singl
07:35:28 -!- roper has joined.
07:36:15 <kmc> elliott, you're now compelled to invent an esolang named She Gives Me Money When Im In Need Lyrics
07:36:43 <elliott> kmc: I haven't even made My Name Is Johny, What The F**K? yet :(
08:08:24 <shachaf> elliott: <Cody_> Why are there so many typeclasses, wouldn't it make sense to have "one universal" type class?
08:08:49 <shachaf> I thought you would appreciate the suggestion in your design of @.
08:09:05 <elliott> shachaf: Oleg did that, didn't he?
08:09:11 <elliott> It was one single MPTC with a single member or something.
08:09:18 <elliott> That you could implement any typeclass with.
08:09:26 <shachaf> I don't imagine that Cody_ and Oleg were thinking of the same thing.
08:09:37 <shachaf> But I vaguely remember something along those lines, I think.
08:10:20 <elliott> shachaf: Cody_ is the name Oleg uses on IRC.
08:11:38 <shachaf> <Cody_> Is there a website that displays the type classes? Such as Eq, Num, Ord.
08:12:37 -!- MDude has changed nick to MSleep.
08:12:40 <elliott> learnyouatypeclass.com
08:13:14 <shachaf> Even ddarius snapped at him a few days ago.
08:13:21 <shachaf> <ddarius> Cody_: I expect a five year old who's had access to a computer to be able to answer these questions.
08:13:54 <shachaf> Remember the "friendlist channel on Freenode" award that members of #haskell like to award #haskell?
08:14:49 <elliott> shachaf: Has Cody_ read a Haskell tutorial?
08:15:06 <kmc> learn you a google for great good
08:15:06 <shachaf> I assume so.
08:15:18 <elliott> shachaf: Really? All the way through?
08:15:31 <shachaf> Oh, oh.
08:15:33 <shachaf> I don't know.
08:15:42 <elliott> shachaf: You should ask them!
08:15:52 <shachaf> Maybe I shouldn't!
08:16:04 <shachaf> We had a discussion in /msg about how to ask questions.
08:16:27 <elliott> shachaf: I hear esr wrote an essay on that!
08:17:02 <Deewiant> When given an answer to that "why are there so many typeclasses": (Cody_) Axman6: I thought typeclasses were extra fluff.
08:17:18 <elliott> He has a point.
08:17:24 <elliott> class Fluff a where fluff :: a
08:17:53 <shachaf> class Fluff f => ExtraFluff f where extraFluff :: a
08:17:56 <Deewiant> * Cody_ understands why we need typeclasses
08:17:58 <Deewiant> Enlightenment.
08:18:13 <elliott> :D
08:18:24 <kmc> i would be ranting so hard right now
08:18:32 <elliott> shachaf: 20:45:24 <new2hs> so GHCI is mainly a compiler and runtime environment, the prompt is intended for controlling those processes and isn't an interpreter, or at least not an interpreter than can handle all of Haskell
08:18:42 <elliott> shachaf: This guy understands why you can't say "a = b" in GHCi.
08:19:57 <fizzie> Misread as "<kmc> i would be ranting if i weren't so hard right now". Don't know how that happened.
08:20:09 <shachaf> Speaking of asking questions, I've been finding myself typing out answers to questions in #haskell and realising "I'm putting N times as much effort into answering this question as you put into asking it. If you'd put M times as much effort into clarifying what you actually mean, I wouldn't have to do this. N > M. Why am I doing this?"
08:20:21 <shachaf> Never mind that multiplication doesn't quite work that way.
08:21:11 <kmc> fizzie, X_X
08:22:39 * elliott awards the friendliest channel on freenode award to #esoteric.
08:22:46 <elliott> We couldn't have done it without fizzie's help.
08:22:54 * shachaf awards the friendliest person on Freenode award to shachaf.
08:23:08 <elliott> It's "freenode".
08:23:39 <kmc> i'll second shachaf's nomination
08:23:49 <kmc> shachaf is friendlier than me because he hasn't quit #haskell yet
08:24:18 <elliott> kmc: Surely if that's the metric, Cale has to win it a few billion times over.
08:24:22 <shachaf> elliott: The first result on http://www.google.com/search?sourceid=NORWAYNORWAYNORWAY&q=freenode seems to disagree.
08:24:37 <elliott> sourceid=NORWAYNORWAYNORWAY
08:24:38 <shachaf> Yes, I think I'll step down in favour of Cale.
08:24:40 <elliott> It's spelled wrong in Norway.
08:24:53 <elliott> shachaf: Anyway, "Freenode" isn't the title of that webpage.
08:24:57 <shachaf> http://www.google.com/search?targetid=NORWAYNORWAYNORWAY&q=freenode
08:24:58 <elliott> It's what Google thinks the site is called.
08:25:01 <shachaf> elliott: I know.
08:25:05 <elliott> <title>
08:25:05 <elliott> About the Network
08:25:05 <elliott> </title>
08:25:05 <shachaf> Are you calling Google wrong?
08:25:24 <elliott> title="freenode, a service of Peer-Directed Projects Center"
08:25:24 <elliott> You've reached freenode, a service of Peer-Directed Projects Center (PDPC). freenode provides discussion facilities for the Free and Open Source Software communities, for not-for-profit organizations and for related communities and organizations.What is fST or freenode Standard Time? It's our official time zone. Well, sort of. We're not entirely serious. :) freenode Standard Time is UTC.
08:25:32 * elliott can't find a single official reference with the capital F.
08:25:38 <fizzie> elliott: No; it's "You've reached freenode, ..."
08:25:38 <shachaf> elliott: Wow, the people who run Freenode can't spell.
08:25:42 <elliott> XChat calls it "FreeNode", which is just awful.
08:25:42 <fizzie> You need to bold it everywhere.
08:25:49 <elliott> fizzie: It's also greyish blue.
08:25:53 <fizzie> That, too.
08:25:57 <elliott> fizzie: And serif.
08:26:25 <kmc> i spent my winter on the edge of a nervous breakdown while living in norway
08:26:28 <elliott> <shachaf> Speaking of asking questions, I've been finding myself typing out answers to questions in #haskell and realising "I'm putting N times as much effort into answering this question as you put into asking it. If you'd put M times as much effort into clarifying what you actually mean, I wouldn't have to do this. N > M. Why am I doing this?"
08:26:39 <shachaf> http://nhandler.wordpress.com/2010/02/24/it-is-freenode/
08:26:45 <kmc> shachaf, asking for clarification just isn't the #haskell way
08:26:51 <elliott> shachaf: This is why you need rep to motivate you!
08:26:53 <kmc> you should make a wild guess about the intent of the question asker
08:27:00 <kmc> and then write a treatise on that subject
08:27:17 <elliott> howd o i make web with haskell in osx/linux/wine
08:27:21 <elliott> help
08:27:25 <elliott> how do web?????
08:27:30 <kmc> how do i shot web
08:27:31 <elliott> i;m vc
08:27:34 <elliott> big startup moneys
08:27:36 <elliott> web in haskel
08:27:42 <shachaf> kmc: Make sure to leave your treatise in IRC logs rather than writing it up on the wiki or something, though, right?
08:28:21 <kmc> yeah
08:28:37 <elliott> Hey guys! I don't like #haskell! Let's talk about that!
08:28:41 <shachaf> What's a polite way of saying "we don't like your kind here"?
08:28:57 <elliott> shachaf: "Your support contract has expired."
08:28:59 <shachaf> Where "your kind" is often a euphemism for "you". And "we" is a euphemism for "I".
08:29:06 <kmc> don't euphemize
08:29:12 <kmc> use "you" and "I", seriously
08:29:14 <elliott> "Please sign up for a paid support plan if you wish to continue your support contract."
08:29:20 <kmc> elliott, I'm working on a blog post about what annoys me about #haskell
08:29:34 <elliott> kmc: That sounds really productive.
08:29:35 <kmc> I do actually like a lot of things about #haskell and wish I could be less annoyed so I could continue participating
08:29:57 <kmc> probably the way for me to be less annoyed is mostly me changing not #haskell changing
08:30:07 <kmc> elliott, sarcasm?
08:30:17 <elliott> kmc: Maybe!
08:30:24 <kmc> it's more productive than bitching here where ~nobody will see
08:30:36 * elliott doesn't think writing blog posts about #haskell will change #haskell, but who knows.
08:31:09 <kmc> i'd like at least one cite-able data point against "#haskell is wonderful and friendly and perfect"
08:31:19 <kmc> i don't really expect it to change
08:31:27 <kmc> but what else should i do
08:31:41 <kmc> it's as much a reminder to me about the behaviors i should avoid
08:31:49 <kmc> as an attempt to change others
08:32:01 <kmc> if i complain about something publicly then i'm less likely to do it, for fear of being called a hypocrite
08:32:20 <elliott> kmc: I really, honestly, truly haven't seen anyone praise #haskell like that in years beyond saying "you should come to #haskell, we're really friendly!" on other media as an invitation.
08:32:42 <shachaf> I have.
08:32:45 <kmc> ok
08:32:48 <kmc> maybe i'm just out of date
08:33:10 * elliott might just block it out.
08:33:23 <elliott> I mean, I've avoided #haskell for a while now.
08:33:29 <kmc> why do you avoid?
08:34:09 <elliott> Because it sucks?
08:34:21 <elliott> Also, nobody ever answers my questions :P
08:34:24 <kmc> can u be more specific
08:34:37 <kmc> seriously, I'd like to understand the problem
08:34:42 <shachaf> elliott: That's because you never ask "how do i typeclass".
08:34:55 <kmc> so i can write about it, and so i can do better personally if/when I return
08:36:35 <elliott> kmc: Well, pretty much everything said in here: the amount of noise from trivial questions and the rubbish they spawn is immense, the channel in general is just way too high-volume a lot of the time, and people only answer low-hanging fruit, so problems that actually require decent knowledge of the APIs/thinking are ignored (double especially if they're related to code design)... so it just holds very little interest for me, as there's nothing in
08:36:35 <elliott> teresting to answer, nothing interesting to talk about, and no way to get decent help for non-trivial problems.
08:37:09 <kmc> "the rubbish" being conflicting explanations, arguing about how to explain things, etc?
08:37:17 <Deewiant> #haskell-in-depth?
08:37:23 <kmc> nobody ever talks there ever
08:37:39 <elliott> What kmc said :P
08:37:44 <kmc> i'm still in that channel and I'd be glad if it got some good traffic
08:37:49 <elliott> I'm not sure a single question was ever asked in #haskell-in-depth.
08:38:04 <elliott> kmc: Yes; also the jokes that inevitably follow e.g. anyone asking about monads are getting very old.
08:38:22 <kmc> basically i'd be happy if it was 20% the size of #haskell instead of 5%
08:38:40 <elliott> There also seems to be a pattern of a single newbie repeatedly asking trivial questions and coming to dominate the channel for a period of time.
08:38:56 <elliott> Usually in an attempt to get <trivial program that is still way above their 3 pages of LYAH experience> working by trial-and-error.
08:39:01 <elliott> That just falls under "noise", though.
08:39:07 <kmc> yeah, the Standard Monad Joke Templates are definitely something I did for a while and then one day was like "this is fucking stupid"
08:39:24 <shachaf> kmc helped me see the light on that.
08:39:44 <shachaf> In fact after some of kmc's rants I just started disliking inside jokes a lot more.
08:39:46 <kmc> the problem is that dealing with the monopolizers entails being un-"friendly"
08:39:53 <shachaf> On a theoretical level if nothing else.
08:39:59 <kmc> shachaf, when I start a cult you can be my lieutenant
08:40:03 <elliott> I still make them when they come up because, like, maybe #haskell will implode if it reaches critical mass of terrible.
08:40:29 <kmc> haha
08:40:29 <kmc> elliott you're like all those neocons who were secret trotskyites
08:40:29 <elliott> Yes!
08:40:29 <kmc> trying to ruin the USA so the workers would revolt against the capitalist system
08:40:30 <Deewiant> Inside jokes are fine if a) everybody present understands them and b) they're funny.
08:40:31 <shachaf> kmc: Yes, yes, I get the point.
08:40:42 <shachaf> Deewiant: Not if they're only funny by virtue of being inside.
08:40:47 <Deewiant> Unfortunately usually both a) and b) are violated.
08:40:59 <kmc> the inside jokes in #haskell are a way of establishing that you're In The Know about monads
08:41:02 <Deewiant> shachaf: That probably means they're not funny.
08:41:07 <kmc> it's kinda like all the inside jokes stoners make about pot
08:41:18 * kmc has done a lot of that, too
08:41:37 * shachaf hasn't done a lot of that.
08:42:03 <elliott> The two things #haskell could use to be much better would be (a) pointing newbies at a tutorial once they ask a few really basic/misguided questions rather than encouraging them further, (b) cutting down on the incessant injoking like that, and (c) what kmc said about having links to decent explanations of things on hand rather than impromptu IRC lectures.
08:42:48 <kmc> thanks for elaborating
08:42:50 <elliott> I don't think writing a bunch of wiki pages is the most practical solution to (c) because nobody will do it; keeping links to high-quality existing material like blog posts and SO answers seems more practical.
08:42:54 <elliott> *three things
08:42:56 <elliott> 2=3 and all that.
08:43:07 <kmc> i think we're broadly in agreement
08:43:17 <kmc> i have a couple of other gripes too
08:43:22 <elliott> <kmc> it's kinda like all the inside jokes stoners make about pot
08:43:22 <kmc> i don't know if they're real or just something i'm imagining
08:43:24 <elliott> MONADS ARE LIKE POT
08:43:31 <shachaf> "blog posts and my SO answers"
08:43:34 * elliott has done it, he's the worst person, everybody go home.
08:43:36 <kmc> monads are like pot, once you get in you can't get out
08:43:37 <kmc> right
08:43:39 <elliott> shachaf: EXACTLY.
08:43:42 <kmc> that's a totally accurate statement about both right
08:43:43 <Deewiant> Isn't the Haskell wikibook decent?
08:44:00 <elliott> Deewiant: It's just another tutorial for the most part, I think. Its explanation of zippers is excellent, though.
08:44:08 <shachaf> Deewiant: When I tried to read it it was pretty horrible.
08:44:09 <elliott> Deewiant: Also I think it has one of the famously bad monad analogies.
08:44:18 <shachaf> That was back in the "monads as spacesuits" era, though.
08:44:29 <shachaf> No, "monads as nuclear waste containers" was its phrasing.
08:44:54 <elliott> Ah, Apfelmus wrote most of the Haskell wikibook zipper stuff.
08:45:51 <kmc> my other complaints include a) the attitude that an idea is as good as working, tested code; b) the attitude that any feature Haskell lacks isn't important
08:45:54 <elliott> kmc: Something that would be useful is using lambdabot's @where to answer people more, I think; it would be fairly easily to populate it with stock answers+links to common basic questions.
08:46:04 <kmc> yeah
08:46:10 <kmc> i'm a little disappointed that my haskellwiki FAQ hasn't caught on
08:46:16 <kmc> i mean, it's not that great
08:46:18 <elliott> Is that the one on the page [[FAQ]]?
08:46:24 <kmc> but people (besides shachaf) have no interest in linking it or improving it
08:46:26 <kmc> yeah
08:46:28 <elliott> I've linked people to it.
08:46:33 <kmc> ok, cool
08:46:38 <kmc> http://www.haskell.org/haskellwiki/FAQ
08:46:40 <elliott> I think I've seen other non-shachaf people link to it for the existential antipattern stuff.
08:46:44 <kmc> cool
08:46:48 <elliott> kmc: I think those two complaints are more broad than IRC, anyway.
08:46:52 <shachaf> "non-shachaf people"
08:46:53 <kmc> i did a quick logsearch recently to see if my claims were holding
08:47:17 <kmc> and i don't want to be all petulant about "you're not using my wonderful wiki page"
08:47:22 <elliott> kmc: I don't think anyone would actually agree with (a) if you stated it in that way, so I'm inclined to say it's an issue of communication. (b) is... eh, maybe there is some of it, but #haskell doesn't have to respond to people attacking the language.
08:47:25 <kmc> i mean if people extensively rewrote all the answers and linked to them, that would be cool too
08:47:37 <kmc> elliott, it's not about attacking the language
08:47:40 <elliott> The Haskell community in general is way too quick to engage people who clearly don't give a shit about Haskell and are just trolling.
08:47:42 <elliott> kmc: Oh, I know.
08:47:56 <elliott> kmc: I'm just saying that it's easy to mistake legitimate complaints from just another troll attack on the language.
08:48:00 <kmc> right
08:48:14 <kmc> but if you ask about regexes or Java interop, you'll get a bunch of noise about how only losers would want those things
08:48:17 <elliott> I tend to just ignore people criticising Haskell because it's almost always the latter.
08:48:38 <kmc> haskell experts criticize haskell too, and they should not be ignored
08:48:45 <elliott> I agree.
08:48:53 <kmc> there's less of that though
08:49:34 * elliott tries something.
08:51:25 <kmc> ?
08:51:37 <elliott> Shh. I'm doing science.
08:51:48 <pikhq> Haskellers criticising Haskell also tend to give meaningful criticism, not "it's not boring!"
08:52:45 * elliott wonders if this science is immoral.
08:52:55 <kmc> are you doing human experimentation on #haskell
08:53:19 <elliott> How...dare you! The very idea! Yes.
08:53:37 <shachaf> elliott: You can't fool me with your lower-case pronouns!
08:58:24 <elliott> kmc: Well, parser combinators were recommended at first, I got pointed at a (not all that useful for a beginner) wiki page with a comparison of Haskell regex libraries with a specific mild recommendation of regex-pcre, and only one person outright said I don't want to use regexps.
08:58:33 <elliott> It could be better, but it could be worse.
08:58:43 <elliott> Java interop I would be less optimistic about getting good answers to.
08:58:51 <elliott> Of course, it's very dependent on who is active at any given time...
09:00:17 <elliott> RIP dajfsa 2012-2012
09:00:21 <kmc> haha
09:00:25 <kmc> u devious elliott
09:00:26 <elliott> "We exploited you"
09:01:16 <shachaf> 12:00 < qqMuppetpp> dajfsa: if you're just doing it for learning purposes, go with Parsec
09:01:33 <shachaf> 12:01 < quicksilver> parser combinators are better than regexps for just about everything except, of course, for the factor of programmer knowledge
09:01:52 <shachaf> 12:01 < quicksilver> if you're doing something by a real world deadline then it may make sense to use the tool you're more familiar with even if it's the worse tool.
09:02:00 <kmc> "the haskell way is always the better way"
09:02:16 <kmc> the problem is, the haskell way really is often the better way
09:02:21 <kmc> people generalize from that
09:02:54 <elliott> I think parser combinators _are_ usually better than regexps, or at least something like them is.
09:03:06 <kmc> maybe
09:03:26 <elliott> It's tricky because forcing everyone to adopt the Haskell Way wholesale all in one go doesn't work very well, but nobody wants to make a polished, robust library for doing something they don't think is the best way to accomplish things.
09:03:32 <kmc> yeah
09:04:02 <kmc> it seems like often the Right Way to do something was just discovered in a paper published this year
09:04:16 <kmc> and only works with GHC HEAD and is not compatible with other libraries
09:04:19 * elliott doesn't think that a language community is obligated to make things easy for newbies, so he tends to prefer a larger learning curve if it makes the long-term experience better.
09:05:00 <fizzie> elliott: The Committee is not addressing lazy programmers.
09:05:02 <elliott> But the regexp libraries seem OK, so dissuading people too heavily off them is silly.
09:05:06 <elliott> fizzie: Yes.
09:05:16 <kmc> the regexp libraries that use the awful typeclass interface are not OK
09:05:51 <elliott> kmc: Right, the Right Way to dor egexps was just discovered in a library published this year, it only works with base 4.4, and it's not compatible with other regexp libraries...
09:05:54 <elliott> *do regexps
09:06:12 <kmc> "<quicksilver> anecdotally I would say I've seen more people bitten by the greedy nature of regexp when they didn't want it, than people specifically needing the greedy behaviour"
09:06:14 <elliott> The typeclass thing is horrible, but lots of things are horrible and they still work.
09:06:19 <kmc> these are the kind of anecdotes i really distrust
09:06:31 <kmc> confirmation bias
09:07:03 <elliott> kmc: Note how the regexp chat has extended about 5 minutes after the problem was solved and the person with it left...
09:07:08 <kmc> yeah
09:07:21 <Deewiant> Is that a bad thing?
09:07:22 <kmc> well it's right and proper for it to be a contentious issue
09:07:25 <kmc> because the status quo sucks
09:07:46 <elliott> Deewiant: In the context of #haskell, yes, because it's obvious that nobody is going to change their opinions on regexp
09:07:51 <kmc> i don't know
09:07:58 <elliott> And there doesn't actually seem to be any substantial concrete disagreement at all
09:07:59 <kmc> i think i've changed various opinions based on things i've heard in #haskell
09:08:09 <kmc> apparently i've changed shachaf's opinion about some things
09:08:30 <kmc> i think we need more consensus about the solutions to various common problems
09:08:35 <kmc> and discussion is important for that
09:08:47 <kmc> but there's a line somewhere between that and endless bickering where nobody is willing to change
09:08:49 <elliott> (=~) :: (RegexMaker Regex CompOption ExecOption source, RegexContext Regex source1 target) => source1 -> source -> target
09:08:51 <elliott> What a good type.
09:08:54 <kmc> yep
09:09:20 <elliott> Wouldn't
09:09:23 <kmc> class FunctionLike argument result where f :: argument -> result
09:09:24 <elliott> class Match a where (=~) :: a
09:09:25 <elliott> be simpler?
09:09:30 <kmc> :D
09:09:34 <elliott> I'm not even kidding.
09:09:44 <elliott> instance (MatchResult r) => Match (String -> r) where ...
09:12:08 <elliott> kmc: Did you know unsafePerformIO isn't actually in Haskell 2010?
09:12:10 <elliott> I was shocked.
09:12:11 <kmc> yeah
09:12:16 <kmc> it's unsafeLocalState or whatever
09:12:31 <kmc> discussion in GHC mailing lists of implementing that with unsafeDupablePerformIO
09:12:34 <elliott> 00:27:12 <Phlogistique> is there any combinator library more similar to regexes in the range of semantics expressed? are PEG the way to go for this?
09:12:34 <elliott> 00:27:57 <Phlogistique> (by "similar" I meant "provides an usable superset")
09:12:40 <elliott> shachaf: Mention regex-applicative already!
09:12:42 <elliott> I can't take it any more!
09:13:13 <elliott> kmc: The nice thing is that it's deprecated by design.
09:13:24 <elliott> There's a note saying "Expect this to go away in the future!!!".
09:13:38 <kmc> which?
09:13:42 <elliott> unsafeLocalState.
09:13:46 <kmc> lulz
09:13:54 <shachaf> What's unsafeLocalState?
09:13:58 <kmc> it will go away once functional programming dominates the world
09:14:03 <kmc> and we no longer need to interface to C libraries
09:14:06 <elliott> shachaf: unsafePerformIOButYou'reNotAllowedToUseMoreThanAFewFunctionsInIt
09:14:13 <elliott> kmc: Well, I think it means "replaced with something less ridiculous".
09:14:48 <shachaf> I don't see it in the Report.
09:14:56 <elliott> shachaf: Look harder.
09:15:00 <kmc> in Foreign
09:15:01 <elliott> It's in Foreign.
09:15:04 <elliott> Somewhere.
09:15:16 <elliott> shachaf: MENTION REGEX-APPLICATIVE!!!!!!!
09:15:32 * elliott wonders how much longer MUFFIN_'s continued presence in #haskell will last.
09:15:39 <shachaf> Oh, the Report goes past section 12.
09:15:57 <kmc> what's a MUFFIN_
09:16:33 <elliott> kmc: A troll.
09:17:03 <kmc> i don't see anything in the past few days
09:17:26 <elliott> http://tunes.org/~nef/logs/haskell/12.01.11. I'm logstalking!
09:17:35 <elliott> Which is how I know shachaf STILL HASN'T MENTIONED REGEX-APPLICATIVE.
09:17:41 * elliott cries.
09:18:09 <kmc> haha
09:18:56 <elliott> kmc: You mock my pain.
09:19:10 <shachaf> Hey, you can implement unsafePerformIO with the FFI.
09:19:13 <shachaf> foreign export ccall foo :: Int -> IO Double
09:19:13 <shachaf> foreign import ccall "foo" bar :: Int -> Double
09:19:38 <elliott> :D
09:19:46 <elliott> Is that legal?
09:19:49 <shachaf> Works in my GHC.
09:19:55 <shachaf> I don't know what that means.
09:20:01 <kmc> haskell is the same as ghc
09:20:02 <shachaf> But, I mean, presumably it's exporting a symbol.
09:20:03 <kmc> so you're fine
09:20:16 <kmc> only smug beardos care about the spec
09:20:33 <elliott> #haskell jokes are rapidly becoming monad tutorial jokes.
09:20:33 <shachaf> Is a beardo like a typo?
09:21:02 <shachaf> I don't actually understand the FFI.
09:21:18 <shachaf> Is the whole "you give it a type and it makes it work" thing just magic?
09:21:24 <kmc> define "magic"
09:21:31 <shachaf> Well, I suppose it's well-defined in the report.
09:21:35 <elliott> shachaf: There's a table of Haskell<->C type conversions.
09:21:37 <elliott> In the report.
09:21:58 <shachaf> OK, not magic.
09:22:20 <shachaf> Just weird.
09:22:26 <elliott> By the way, does anyone know the answer to this: Monad : ArrowApply :: ? : Arrow
09:22:46 <elliott> i.e. a typeclass of kind (* -> *) -> Constraint that is equivalent to Arrow in the same way that Monad is equivalent to ArrowApply.
09:22:58 <kmc> probably there is none
09:23:00 <elliott> Presumably with a subclass that brings it to Monad.
09:23:07 <elliott> kmc: That seems bizarre.
09:23:13 <kmc> i'm pretty drunk though
09:23:17 <elliott> I don't mean one in a library though.
09:23:25 <elliott> I just mean, what is it?
09:23:57 <elliott> I mean, it's not Applicative, because the Category+Applicative+laws stuff is with the two-argument types.
09:26:22 * shachaf to sleep
09:27:32 <kmc> 'night shachaf
09:27:40 <kmc> godspeed you! black emperor
09:28:43 <elliott> kmc: Is "night" not a complete word?
09:28:55 <kmc> it's not the complete word which goes there
09:32:55 -!- ais523 has joined.
09:32:55 -!- ais523 has quit (Changing host).
09:32:55 -!- ais523 has joined.
09:39:24 <elliott> `welcome ais523
09:39:35 <HackEgo> ais523: 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
09:43:26 <ais523> `? @ elliott welcome
09:43:29 <HackEgo> ​@ elliott welcome? ¯\(°_o)/¯
09:43:30 <ais523> err
09:43:35 <ais523> `@ elliott ? welcome
09:43:38 <HackEgo> elliott: 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
09:44:14 <kmc> the wendy's near my house closed :(
09:45:34 <ais523> what is a wendy's
09:45:48 <ais523> and what do you mean by "near"? running distance? walking distance?
09:47:08 <fizzie> Some sort of a restaurant chain, isn't it? Burgers or something.
09:47:11 <ais523> elliott: I've actually had esolang thoughts in 2012
09:47:21 <ais523> came up with a new esolang while failing to sleep last night, I think
09:47:37 <ais523> it's vaguely inspired by both Anarchy and My Name Is Johny, What The F**K???
09:49:43 <ais523> and it's an attempt to make the most powerful language I can in which all programs always halt
09:49:56 <ais523> (and that's computable to determine whether a program is written in the language or not)
09:50:52 <ais523> <spambot> When a web hosting company is offering $6.95 hosting plan does this mean that you have to pay $6.95?
09:54:00 <kmc> it means they will host six dollars and ninety-five cents for you
09:54:02 <kmc> free of charge
09:54:20 <kmc> someone tell me about My Name Is Johny, What The F**K
09:54:31 <Deewiant> It means they will tell you of their plan to host $6.95, free of charge
09:54:44 <elliott> back
09:54:58 <elliott> <ais523> and it's an attempt to make the most powerful language I can in which all programs always halt
09:55:03 <ais523> kmc: it's something elliott's working on, basically it's for writing reversible programs, but instead of allowing only reversible primitives, it instead requires functions to come with a proof of reversibility
09:55:08 <elliott> ais523: I somewhat doubt you'll beat the proof assistants.
09:55:11 <elliott> Also, what?
09:55:17 <elliott> I don't remember Johny being that.
09:55:24 <ais523> hmm, really?
09:55:28 <fizzie> I parsed it so that if you pay $6.95, they'll graciously tell you about their hosting plans.
09:55:29 <elliott> Although Johny has been about fifteen languages in search of a name.
09:55:49 <ais523> I thought you had explicit destroy-data primitives that proved that the data being destroyed could still be reconstructed
09:56:02 <ais523> at least, you've only told us about one of the fifteen
09:56:21 <elliott> ais523: No, there was also the 2D ones.
09:56:30 <ais523> well, you've only told /me/ about one of them
09:56:35 <elliott> No.
09:56:39 <elliott> You just don't remember the other ones.
09:56:44 <ais523> you've only told me about one of them when I was paying attention?
09:56:51 <elliott> Or you forgot.
10:04:40 <ais523> elliott: oh, I was going on a different principle altogether than the proof assistants
10:04:43 <ais523> so, hmm
10:05:11 <ais523> elliott: oh, by the way, new BN dynasty, I'm running it
10:11:05 <elliott> ais523: Well, the proof assistants' advantage is that they've got significantly more power than any one given rule.
10:11:39 <ais523> elliott: what I mean was, I wasn't trying to compete with what they were doing
10:12:37 <elliott> It was just a responset o "make the most powerful language I can in which all programs always halt".
10:12:42 <elliott> *response to
10:22:50 -!- ais523 has quit (Ping timeout: 276 seconds).
10:39:07 -!- augur has quit (Remote host closed the connection).
10:39:33 -!- augur has joined.
10:48:13 -!- roper has changed nick to atrapado.
10:48:29 -!- atrapado has quit (Quit: Bye).
10:49:00 -!- augur has quit (Read error: Connection reset by peer).
10:55:48 -!- pikhq_ has joined.
10:56:00 -!- pikhq has quit (Ping timeout: 255 seconds).
10:56:05 <Sgeo> elliott, kallisti update (potentially quite a while ago, but I just saw it now)
10:56:11 <Sgeo> Hmm, 5 hours ago I guess
10:57:05 <elliott> kallisti keeps getting updated, never gets better
11:04:45 -!- augur has joined.
11:06:27 -!- GreaseMonkey has quit (Quit: The Other Game).
11:33:06 -!- ais523 has joined.
11:43:43 -!- ais523 has quit (*.net *.split).
11:43:43 -!- augur has quit (*.net *.split).
11:43:43 -!- itidus21 has quit (*.net *.split).
11:43:43 -!- Sgeo has quit (*.net *.split).
11:43:43 -!- Nisstyre has quit (*.net *.split).
11:43:43 -!- kmc has quit (*.net *.split).
11:43:43 -!- Lymia has quit (*.net *.split).
11:43:43 -!- MSleep has quit (*.net *.split).
11:43:43 -!- rodgort has quit (*.net *.split).
11:43:43 -!- atehwa has quit (*.net *.split).
11:43:44 -!- Patashu has quit (*.net *.split).
11:43:44 -!- olsner has quit (*.net *.split).
11:43:44 -!- yorick has quit (*.net *.split).
11:43:44 -!- lambdabot has quit (*.net *.split).
11:43:45 -!- jix has quit (*.net *.split).
11:43:45 -!- SimonRC_ has quit (*.net *.split).
11:43:45 -!- sebbu has quit (*.net *.split).
11:43:46 -!- mtve has quit (*.net *.split).
11:43:46 -!- cswords has quit (*.net *.split).
11:43:46 -!- cheater has quit (*.net *.split).
11:43:46 -!- yiyus has quit (*.net *.split).
11:43:46 -!- lifthrasiir has quit (*.net *.split).
11:43:46 -!- quintopia has quit (*.net *.split).
11:43:46 -!- Systemzwang has quit (*.net *.split).
11:43:47 -!- aloril has quit (*.net *.split).
11:43:47 -!- HackEgo has quit (*.net *.split).
11:43:47 -!- elliott has quit (*.net *.split).
11:43:47 -!- _Slereah has quit (*.net *.split).
11:43:47 -!- ineiros has quit (*.net *.split).
11:43:47 -!- lahwran has quit (*.net *.split).
11:43:47 -!- fungot has quit (*.net *.split).
11:43:47 -!- fizzie has quit (*.net *.split).
11:43:47 -!- pikhq_ has quit (*.net *.split).
11:43:48 -!- FireFly has quit (*.net *.split).
11:43:48 -!- coppro has quit (*.net *.split).
11:43:49 -!- tswett has quit (*.net *.split).
11:43:49 -!- Zetro has quit (*.net *.split).
11:43:49 -!- shachaf has quit (*.net *.split).
11:43:49 -!- const has quit (*.net *.split).
11:43:49 -!- comex has quit (*.net *.split).
11:43:49 -!- Zuu has quit (*.net *.split).
11:43:49 -!- qfr has quit (*.net *.split).
11:43:49 -!- EgoBot has quit (*.net *.split).
11:43:50 -!- Deewiant has quit (*.net *.split).
11:43:50 -!- oklofok has quit (*.net *.split).
11:43:50 -!- clog has quit (*.net *.split).
11:43:50 -!- Vorpal has quit (*.net *.split).
11:43:50 -!- Jafet has quit (*.net *.split).
11:50:09 -!- glogbackup has joined.
11:50:09 -!- ais523 has joined.
11:50:09 -!- augur has joined.
11:50:09 -!- pikhq_ has joined.
11:50:09 -!- itidus21 has joined.
11:50:09 -!- Vorpal has joined.
11:50:09 -!- elliott has joined.
11:50:09 -!- cswords has joined.
11:50:09 -!- _Slereah has joined.
11:50:09 -!- cheater has joined.
11:50:09 -!- Zuu has joined.
11:50:09 -!- Patashu has joined.
11:50:09 -!- Jafet has joined.
11:50:09 -!- Nisstyre has joined.
11:50:09 -!- Sgeo has joined.
11:50:09 -!- kmc has joined.
11:50:09 -!- sebbu has joined.
11:50:09 -!- fizzie has joined.
11:50:09 -!- Lymia has joined.
11:50:09 -!- lambdabot has joined.
11:50:09 -!- Deewiant has joined.
11:50:09 -!- atehwa has joined.
11:50:09 -!- rodgort has joined.
11:50:09 -!- MSleep has joined.
11:50:09 -!- yiyus has joined.
11:50:09 -!- oklofok has joined.
11:50:09 -!- shachaf has joined.
11:50:09 -!- SimonRC_ has joined.
11:50:09 -!- jix has joined.
11:50:09 -!- olsner has joined.
11:50:09 -!- yorick has joined.
11:50:09 -!- qfr has joined.
11:50:09 -!- aloril has joined.
11:50:09 -!- FireFly has joined.
11:50:09 -!- lifthrasiir has joined.
11:50:09 -!- quintopia has joined.
11:50:09 -!- coppro has joined.
11:50:09 -!- ineiros has joined.
11:50:09 -!- EgoBot has joined.
11:50:09 -!- HackEgo has joined.
11:50:09 -!- Systemzwang has joined.
11:50:09 -!- lahwran has joined.
11:50:09 -!- tswett has joined.
11:50:09 -!- mtve has joined.
11:50:09 -!- const has joined.
11:50:09 -!- fungot has joined.
11:50:09 -!- clog has joined.
11:50:09 -!- comex has joined.
11:50:09 -!- Zetro has joined.
11:50:29 -!- glogbackup has left.
11:50:30 -!- ais523_ has joined.
11:50:30 -!- ais523_ has quit (Client Quit).
11:50:31 -!- ais523 has quit (Ping timeout: 240 seconds).
11:50:31 -!- ais523_ has joined.
11:50:31 <ais523_> [11:44] <elliott> Stop forgetting about left identity.
11:50:31 <ais523_> [11:45] <ais523> no it doesn't; f can only possibly have the type x -> ()
11:50:31 <ais523_> [11:45] <ais523> so without _|_, there's only one possible value for f
11:50:58 <ais523_> elliott: or to put it another way, the left hand side is return a >>= f = return a = (), and the right hand side is f a = () because f has () as its return value
11:51:03 <ais523_> I meant return = const (), not return = (), above
11:51:07 -!- ais523_ has changed nick to ais523.
12:10:34 -!- ais523 has quit (Ping timeout: 260 seconds).
12:11:20 <elliott> @tell ais523 <elliott> Stop forgetting about left identity. <elliott> Oh, no. <elliott> OK, fine, it's a monad.
12:11:21 <lambdabot> Consider it noted.
12:15:31 * Sgeo ponders the best way to initialize an IntMap of MVar ()
12:17:18 <Sgeo> I could write code to write initialization for each individual number or something, but that seems stupid. I guess I could work out the smallest and largest possible value and do something with that
12:18:13 <Sgeo> But is there a way to exploit laziness to make it have a number of locks equivalent to the number of Ints (I mean, similarly to a Map Integer (MVar ()) and having that have an infinite number of locks)
12:18:53 <elliott> unsafeInterleaveIO
12:19:03 <elliott> But a full IntMap will be huge.
12:19:29 <elliott> At least assuming IntMap is spline-strict, which I rather suspect it is.
12:22:05 <kallisti> elliott: you're mom never gets better.
12:23:04 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .).
12:24:05 <Sgeo> The thing is, I do for these purposes know how many and which locks I need, but if I didn't...
12:25:02 <Sgeo> I guess for Integer, I could make a function instead of a physical map
12:25:14 <Sgeo> Wait, I'd still need memoization
12:25:50 -!- FireFly has left ("→").
12:27:22 <elliott> Sgeo: You sound even more confused as usual; I'm going to hazard a guess you're doing something in an awful manner.
12:27:25 <elliott> *confused than
12:32:35 <Sgeo> elliott, I'm interleaving talking about what I know I want and hypothetical thoughts on what if I wanted something slightly different.
12:33:45 <itidus21> like going to a nissan dealership and discussing subaru?
13:13:35 -!- Phantom_Hoover has joined.
13:14:14 <Phantom_Hoover> @messages?
13:14:14 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
13:15:12 <Phantom_Hoover> elliott, I should make a graph of messages per day against Homestuck updates, but I suspect that it a) wouldn't actually be a terribly strong correlation and b) would have next to no available data.
13:16:19 <elliott> Phantom_Hoover is a true scientist.
13:16:32 * elliott graphs price of tea in China v. hoovers phantommed.
13:23:32 <Sgeo> Since I'm going to be locking a bunch of these things at once, I think I'll go with IntMap (TMVar ()) instead of IntMap (MVar ())
13:24:36 <elliott> Sgeo: Err, I'm not sure you understand how locks work?
13:24:54 <elliott> Getting a bunch of locks in succession should not be any less safe than getting them all atomically, they're /locks/.
13:25:37 <Sgeo> elliott, unless I accidentally get locks in different orders from what I want to
13:25:45 <Sgeo> Erm, in different orders in different places
13:25:54 <Sgeo> I doubt that would happen, but still
13:26:08 <elliott> Sgeo: I'm rapidly becoming sure you don't understand how locks work
13:26:13 <elliott> *work.
13:26:29 <Sgeo> Suppose one thread tries to lock A, then B. A second thread tries to lock B, then A
13:27:17 <Sgeo> I should be able to control the order in which things are locked, so I should be able to avoid that, but still
13:27:35 <coppro> just put a lock around locking a and b
13:28:45 <elliott> Sgeo: If two locks are required for one thing and are taken together, shouldn't they be one lock?
13:29:33 <Sgeo> elliott, in my case, one function might require locks 1, 2, 3, another locks 1, 4, 5, another locks 10, 11, 12, another locks 4, 6
13:29:34 <Sgeo> etc
13:30:10 <elliott> Sgeo: This is the part where I return to hypothesis A, you're doing something badly.
13:30:40 <Sgeo> I may be designing around a scenario in the AW SDK that may or may not actually be present
13:30:41 <elliott> Sgeo: Anyway, STM doesn't magically get rid of contention.
13:30:45 <Jafet> This conversation seems deadlocked.
13:31:08 <elliott> Jafet: Welcome to #esoteric!
13:31:12 <itidus21> http://s3.amazonaws.com/files.posterous.com/timmmii/qjHzdDCcguJinwAktqmbksrwFBbuDGHnysCFpJxllodAnngiGlHbdxgJJzBv/media_httpcdn0knowyourmemecomi1569originalsnortingcokejpg1240906811_mBxaCmuIJBCpbwl.jpg.scaled1000.jpg?AWSAccessKeyId=AKIAJFZAE65UYRT34AOQ&Expires=1326288940&Signature=yQwe7dHO4MBkgwUpNnz0J5iHoIs%3D
13:31:19 <itidus21> wow that link was quite big
13:31:35 <fizzie> Possibly it's just a non-halting conversation that keeps on chugging.
13:31:40 -!- pikhq has joined.
13:31:43 -!- pikhq_ has quit (Ping timeout: 252 seconds).
13:31:54 <Sgeo> There is a design flaw that I know I have to deal with, and this particular approach to dealing with it seems ideal to me, in that I don't have to determine which functions need what locks and then figure out which functions may be called together or not
13:41:33 <elliott> Oh man!! Zed Shaw has published an OPINION about the K&R book? THANKS PROGGIT, THERE'S NOTHING I LOVE MORE THAN HEARING ZED SHAW'S OPINIONS! NOTHING!
13:42:00 <elliott> Ooh, Valgrind proves K&R are idiots.
13:42:18 <elliott> Also apparently the book is called <i><code>"K&R C"</code></i>?
13:45:44 <elliott> In the past all of us used to sit down about on the ground or around the desk and also play the board game with family or close friends. Right now online games are usually played by yourself or with assorted people all over the net. You are able to frequently become having fun with someone across the additional side on the planet. Nowadays we have absolutely no contact and even understand the other players that individuals are usually playing wit
13:45:44 <elliott> h and can't see them either.
13:48:02 <fizzie> Were you talking about that "Deconstructing K&R" thing?
13:48:53 <elliott> fizzie: Yes, but it's actually 'Deconstructing <i><code>"K&R C"</code></i>' for some unfathomable reason.
13:49:00 <elliott> Also why did you read it, I'm the only person stupid enough to subject myself to Zed Shaw.
13:49:34 <elliott> [[
13:49:34 <elliott> 83 people answered the first question, "When a command is misused, should it deliver its usage message to standard output or to standard error?". 62 (75%) agreed that the message should go to stderr; 11 (13%) said it should go to stdout. 10 indicated that they preferred a more complicated policy, of which 4 were essentially (or exactly) what M. Echeverri suggested; this brings the total in favor of stderr to 66 (80%). The others were:
13:49:34 <elliott> [...]
13:49:34 <elliott> 3.A very long response that suggested syslog.
13:49:36 <elliott> [...]
13:49:38 <elliott> ]]
13:49:43 <elliott> syslog, the best place to put --help output.
13:49:49 <elliott> *3. A
13:50:02 <Sgeo> What did M. Echeverri suggest?
13:50:29 <elliott> "#3 seemed to be answering a different question than the one that was asked; syslog may make sense for general diagnostics, but to use it for usage messages seems peculiar."
13:50:34 <elliott> Sgeo: http://blog.plover.com/Unix/usage.html
13:51:49 <fizzie> elliott: It's been linked to from both ##c and (IIRC) comp.lang.c a couple of times already, in agitation. Anyway, I didn't "read" it; I glanced at the start of it, and didn't quite get the point. There's a strcpy() (well, a "copy()") function which does not work when called with non-null-terminated char*'s, and that's somehow a bad thing because it "only works in this delicate balance".
13:53:16 <elliott> fizzie: You read ##c?
13:53:36 <elliott> I just jump in with a fireproof suit, yell my question, breathe in, wait five minutes for an answer, and then jump out the window.
13:54:10 <fizzie> I glance at the bottom of the scrollback every other hour or so, and sometimes paste the worst bits to a query.
13:54:11 <elliott> fizzie: Oh, man: "In the rest of this chapter though we will be modernizing the code in "K&R C" to fit the style you've been learning throughout this book. It will be more verbose, but it will be clearer and less error prone because of this slight increase in verbosity."
13:54:19 <elliott> That's the bestestworst idea for a programming book ever.
13:54:59 <fizzie> For example, currently there's "discussion" on why "double d = 10; printf("%d",d);" is not printing out "10".
13:55:20 <elliott> fizzie: You forgot the quotes.
13:55:28 <elliott> printf("\"%d\"", d);
13:55:29 <elliott> HTH
13:55:53 <fizzie> Well done.
14:07:45 <Sgeo> Is there any reason not to use TMVars?
14:12:12 <fizzie> Teenage Mutant Variables?
14:15:34 <Phantom_Hoover> I wish political cartoons had never moved beyond the "label everything so there's no chance you make any metaphors" stage.
14:16:14 <elliott> Phantom_Hoover: They have?
14:16:18 -!- myndzi has quit (Read error: Connection reset by peer).
14:17:54 <Phantom_Hoover> elliott, yeah, now they make a caricature of any given political figure and then that consists of their entire satire from then on.
14:21:16 -!- myndzi has joined.
14:26:50 -!- pikhq_ has joined.
14:27:00 -!- pikhq has quit (Ping timeout: 248 seconds).
14:32:12 <Sgeo> waitForEvent :: (a -> Bool) -> TChan a -> STM a
14:32:35 <Sgeo> This function is pretty much exactly what I was looking for for something
14:32:39 <Sgeo> And would have written it myself
14:32:48 <Sgeo> Does this make it worth using a TChan instead of a Chan?
14:34:10 <elliott> Sgeo: Why are you writing things to the Chan if you've going to discard them?
14:34:12 <Sgeo> Wait, this function might be wrong.
14:34:19 <elliott> Note that TChans are very different from Chans.
14:34:43 <Sgeo> elliott, my wrapper will be writing to a chan, users will be reading from
14:35:06 <elliott> Why are you exposing a Chan?
14:35:17 <elliott> Do you want to let Your Users(tm) write to it, too?
14:35:34 <Sgeo> No, but if they do, nothing should break
14:35:44 <elliott> Why do you want to let them write to it?
14:35:51 <elliott> I mean, you just said you don't.
14:35:56 <elliott> So why do you care about what breaks?
14:35:58 <elliott> You're not making any sense.
14:38:26 <Sgeo> I guess I should just the IO for reading
14:38:35 <elliott> Yes, just the IO for reading.
14:38:58 <Sgeo> And the IO to close the thing
14:39:20 <Sgeo> Wondering if I should use ResourceT
14:40:11 <elliott> Programming goes better with complete sentences.
14:40:38 <Sgeo> Control.Monad.Loops.iterateUntil does what I want, I think
14:40:44 <Sgeo> Assuming I just expose the IO to read
14:41:37 <Sgeo> http://hackage.haskell.org/packages/archive/monad-loops/latest/doc/html/src/Control-Monad-Loops.html#iterateUntil
14:41:40 * Sgeo blinks at the = go
14:41:59 <Sgeo> I guess it's a label for the loop
14:43:09 <elliott> Sgeo: It's not.
14:43:16 <elliott> go has two fewer parameters than iterateUntil.
14:44:53 <Sgeo> I guess that .. saves computation?
14:45:51 <elliott> Sgeo: What do you think parameters are passed on? (It's not the aether.)
14:46:33 <Sgeo> It looks like a tail call
14:46:40 <Sgeo> Either wy
14:46:41 <Sgeo> *way
14:47:02 <elliott> (>>) is in tail position there, not go, not that it's at all relevant.
14:51:05 <Sgeo> http://wiki.activeworlds.com/index.php?title=AW_AVATAR_SESSION see the two AW_CALLBACKs? That suggests to me that my IntMap of locks is a good idea
14:51:47 <Sgeo> ...or, this case is a bit pathological
14:53:22 * elliott decides not to click.
14:54:52 <Sgeo> _some_ callbacks have solutions to the main problem I'm trying to solve with these locks. Some do not. This case does, but in doing so, causes a complication that my IntMap of locks solves
14:55:03 <itidus21> Phantom_Hoover: i doubt the value of political satire etc
14:57:20 <itidus21> i guess its good to keep people reminded that politicians are not what their marketed image suggests
14:58:17 <itidus21> but satire can also make politician popular and appear more friendly, more comicbook-like
15:01:44 -!- pikhq has joined.
15:02:03 -!- pikhq_ has quit (Ping timeout: 248 seconds).
15:19:55 -!- Klisz has joined.
15:24:44 <Sgeo> once :: IO (IO a, IO ()) -> IO a
15:25:17 <Sgeo> Come to think of it, there's no particular reason that once's argument needs to be in IO
15:25:32 <Sgeo> But it does make it slightly easier to use over once =<< whatever
15:32:51 <elliott> I have no idea what that is meant to do.
15:33:21 <Sgeo> Performs the read once, then closes
15:34:40 <elliott> um... once m = m >>= \(a,b) -> a <* b?
15:35:01 <Sgeo> :t (<*)
15:35:02 <lambdabot> forall (f :: * -> *) a b. (Applicative f) => f a -> f b -> f a
15:35:20 <Sgeo> I'll probably forget that when it's time to implement it, but it's easy enough to write anyway
15:35:40 <Sgeo> Although I'd probably end up using do notation
15:36:15 <elliott> Are you saying that's seriously what it is?
15:36:15 <Sgeo> @src (<*)
15:36:16 <lambdabot> (<*) = liftA2 const
15:36:26 <elliott> Because if it is, that type is the most stupid possible way to express it.
15:36:45 <Sgeo> Hmm?
15:37:37 <elliott> Hmm what?
15:37:48 <Sgeo> How is it the most stupid possible way to express it?
15:38:04 <elliott> Because your type looks like
15:38:09 <elliott> once :: IO (IO a, IO ()) -> IO a
15:38:10 <elliott> instead of
15:38:12 <elliott> once :: (Applicative f) => f a -> f b -> f a
15:38:19 <elliott> and also the word "once" is irrelevant.
15:38:41 <Sgeo> It's relevent to what I imagine typical usage would be in applications using my wrapper
15:39:42 <elliott> If something of that type and semantics is common, your wrapper suck.
15:39:43 <elliott> s.
15:42:01 <Sgeo> :/
15:53:29 -!- cheater_ has joined.
15:57:33 <cheater_> i wonder, are there imacs with touch screens ?
15:57:44 <cheater_> i could use an older one, as a sort of youtube based ipod
15:57:47 <cheater_> kinda thing.
15:58:04 <cheater_> i'd totally google but i'm web-disabled for the next hour.
15:58:14 <Phantom_Hoover> http://en.wikipedia.org/wiki/Escitalopram
15:58:16 <cheater_> that is also the wrong channel.
15:58:25 <cheater_> oh hi Phantom_Hoover.
15:58:27 <Phantom_Hoover> Wow, a drug which is literally the mirror image of another drug by the same company.
15:58:36 <Phantom_Hoover> cheater_, fuck off.
15:58:47 <cheater_> Phantom_Hoover, fuck ON!
15:59:38 <elliott> <Phantom_Hoover> Wow, a drug which is literally the mirror image of another drug by the same company.
15:59:44 <elliott> Phantom_Hoover: What a scummy cost-cutting tactic!
15:59:54 <elliott> Wait, I was joking.
16:00:03 <elliott> But apparently people are actually saying that so maybe it's actually true.
16:00:40 <fizzie> Soon they're going to start selling versions with green nitrogen blobs instead of those blue ones seen there.
16:00:42 <Phantom_Hoover> Well, the main bit is where they denied that it was just clinging to patents despite it being literally identical in structure.
16:01:33 <Phantom_Hoover> fizzie, no, you fool!
16:01:42 <elliott> Phantom_Hoover: Well, there's only a limited number of parts they can twiddle!
16:01:51 <Phantom_Hoover> fizzie, green blobs are chlorine!
16:01:51 <elliott> HAVE SOME EMPATHY.
16:02:24 <fizzie> Phantom_Hoover: Stick some paint on it, any blob can be anything.
16:02:53 <elliott> fizzie: "Ingredients: Blue paint (98%), ..."
16:04:38 <Phantom_Hoover> fizzie, wait, we can turn lead into gold by painting it yellow!
16:05:22 <elliott> You didn't know?
16:05:54 <Phantom_Hoover> elliott, we're talking about sophisticated atomic painting here, not the shoddy work that fools you English idiots.
16:06:10 <Phantom_Hoover> I mean, the paintbrushes would have to be really, really small.
16:08:54 <elliott> Phantom_Hoover: dude, we use atomic paintbrushes in England.
16:09:24 <Phantom_Hoover> No, those are molecular paintbrushes.
16:11:51 <elliott> Phantom_Hoover: Um have you ever even SEEN England?
16:12:05 <Phantom_Hoover> Yes.
16:12:52 <elliott> Phantom_Hoover: No, you've seen the fake one we show to keep Scots complacent.
16:14:22 <Phantom_Hoover> elliott, ha ha ha, you actually think we were fooled by that?
16:16:45 <itidus21> Phantom_Hoover: so did they manage to take some drug they had a patent to, release an identical drug under another name, and get a patent for the new drug?
16:17:04 <elliott> itidus21: For sufficiently wrong definitions of "identical".
16:17:54 <itidus21> if they could only get away with that then the third world would never see any medicine ever
16:17:55 <Phantom_Hoover> elliott, it is identical.
16:18:35 <Phantom_Hoover> I'm pretty sure the synthesis is the same, for one thing, and there's no reliable evidence that it worked better.
16:18:51 <itidus21> ok i see the hole in my logic
16:19:05 <itidus21> Phantom_Hoover: but they can't retain their old patent in this way though right?
16:19:24 <Phantom_Hoover> itidus21, sure they can, but patents expire.
16:19:29 <itidus21> a new patent surely doesn't empower them to keep an old patent
16:19:36 <Phantom_Hoover> ...yes?
16:19:44 <Phantom_Hoover> As far as the patent office are concerned, it's a new drug.
16:19:57 <itidus21> but
16:19:59 <Phantom_Hoover> It just happens to have exactly the same structure, but mirrored.
16:20:06 <itidus21> uhmm
16:20:25 <itidus21> if people just make the drugs on the basis of the old drug then its ok right?
16:20:38 <Phantom_Hoover> Huh?
16:20:57 <Phantom_Hoover> Oh wow, it's even better than that.
16:21:15 <itidus21> you're doing logic with me.. so since im not that smart this may hurt
16:21:35 <itidus21> but i would invest 5 hours to express what i am trying to express if necessary
16:21:40 <Phantom_Hoover> Citalopram is actually half-and-half escitalopram and its mirror; it's not a new drug at all.
16:21:54 <itidus21> so.. an analogy is necessary here
16:23:29 <itidus21> so a company has a patent to some drug A, and then they create a new patent to some identical drug B. to me the question is does this prevent people copying drug A
16:23:35 <itidus21> without a patent
16:24:02 <itidus21> ^when the patent for drug A expires
16:24:23 <itidus21> even though A and B are (arguably) identical
16:25:17 <Sgeo> Oh, I do want an operation other than readChan: tryGetChan. Although I don't think I saw such a function :(
16:25:44 <itidus21> i suppose i should define copying
16:26:10 <itidus21> copying = selling
16:27:20 <elliott> <Phantom_Hoover> elliott, it is identical.
16:27:21 <elliott> <Phantom_Hoover> I'm pretty sure the synthesis is the same, for one thing, and there's no reliable evidence that it worked better.
16:27:34 <elliott> Phantom_Hoover: I reserve the word "identical" for things that don't have two separate images distinguishing them.
16:28:02 <itidus21> i don't see what the problem is so long as the original is in the public domain
16:28:06 <itidus21> :P
16:28:25 <itidus21> maybe i do.. maybe i do
16:28:35 <itidus21> hummm
16:28:41 <elliott> Sgeo: If you want tryGetChan, you're doing something wrong.
16:29:04 <itidus21> this is all normal for the system
16:29:26 <Sgeo> elliott, huh?
16:29:53 <itidus21> i guess the problem is that they continue to refer to patents as patents
16:29:58 <elliott> Sgeo: I think I need a policy of not responding to lines that have no possible response, like "huh?".
16:30:03 <itidus21> time to look into the etymology
16:30:09 <Sgeo> Why is it wrong to want tryGetChan?
16:30:54 <elliott> Sgeo: What possible purpose could you have for it? The only thing I can think of is doing things that should be done with threads.
16:31:04 <itidus21> The meaning "copyright an invention" is first recorded 1822, from earlier meaning "obtain exclusive right or monopoly" (1789), a privilege granted by the Crown via letters patent.
16:31:24 <Sgeo> Seeing if something has occured yet, and if not, doing something else
16:31:27 <elliott> Either you're going to be polling it like crazy, which is bad, or you're going to know when an item has come in on the Chan, in which case you might as well just read it because you know it won't block.
16:32:10 <Sgeo> I wonder if there's a problem with my main idea of turning an event-based system into something based on chans
16:32:17 <elliott> Sgeo: Sounds like a Do It Yourself Race Condition In Ten Steps opportunity.
16:32:26 <itidus21> copyright: "the right to make or sell copies," 1735, from copy + right.
16:32:52 <elliott> Sgeo: That idea is perfectly sound; your implementation sounds completely broken.
16:33:28 <Sgeo> elliott, it's more me trying to figure out how users will use this
16:33:51 <Sgeo> Than implementation-level things. Although I still haven't figured out exactly what sort of values will be going along the chans
16:35:33 <Sgeo> With the SDK itself, users set event handlers, and in their handlers, use functions like aw_int() to grab values out of something like global state
16:35:45 <elliott> Sgeo: No, your implementation itself sounds broken too.
16:35:56 <kallisti> so has everyone switched over to C++11 yet?
16:36:14 <Sgeo> I'm thinking each of my event chans passes along its own type of things, but then what if I want to combine two events and have a chan that reads from either
16:36:48 <Sgeo> Maybe a structure representing the entire possible state, and converting these smaller things to that
16:36:58 <kallisti> use an Either
16:36:58 <Sgeo> Each of the fields in the larger things being a Maybe
16:37:33 <Sgeo> kallisti, when a user wants a lot of event data pouring into one chan, that could get unwieldy
16:37:54 <elliott> The user the user the user the user.
16:38:00 <kallisti> I don't really know the problem. I just saw "combine two events and have a chan that reads from either" and thought Either.
16:38:18 <kallisti> seems natural
16:38:32 <Sgeo> kallisti, fine, imagine I said two or more
16:38:41 <kallisti> ah okay.
16:39:04 <kallisti> Either A (Either B (Either C D) )
16:39:07 <kallisti> should be good
16:39:09 <kallisti> :)
16:39:52 <kallisti> or you could use tuples or something...
16:40:02 <kallisti> (Maybe a, Maybe b, Maybe c) loooooool
16:40:14 <kallisti> Haskell needs "Either tuples"
16:40:38 <elliott> kallisti: a :+: b :+: c
16:40:44 <elliott> OK, fine, I'll take the bait:
16:40:47 <elliott> <Sgeo> With the SDK itself, users set event handlers, and in their handlers, use functions like aw_int() to grab values out of something like global state
16:40:52 <kallisti> :t (:+:)
16:40:53 <lambdabot> Not in scope: data constructor `:+:'
16:40:56 <elliott> Are these actual global state, or the equivalent of event params?
16:40:58 <kallisti> @hoogle (:+:)
16:40:59 <lambdabot> No results found
16:41:03 <elliott> kallisti: ITT: :t is not :k
16:41:25 <kallisti> ITT: elliott anticipates I will magically distinguish type names from data constructors given no context
16:41:33 <elliott> <kallisti> Either A (Either B (Either C D) )
16:41:36 <elliott> <kallisti> Haskell needs "Either tuples"
16:41:43 <elliott> If it was a :+: b :+: c as a value, it would not be Either.
16:42:00 <kallisti> oh, indeed.
16:42:19 <kallisti> still the value-level syntax will be clunky with the Lefts and Rights
16:42:21 <elliott> Not that (:+:) is in any standard place either, but it's easy to define.
16:42:37 -!- Nisstyre has quit (Ping timeout: 240 seconds).
16:42:38 <kallisti> here comes "define your own interface"
16:42:43 <Sgeo> elliott, what do you mean by the equivalent of event params?
16:42:47 <elliott> kallisti: You can fix that with a horrible typeclass hack.
16:42:56 <kallisti> oh good
16:43:00 <elliott> Sgeo: I don't know; I don't know anything about AW.
16:43:06 <Sgeo> It depends on the circumstances, I think. Some are the equiv of event params, some are global state
16:43:11 <elliott> Sgeo: Event params would be like "position mouse was clicked on" in a mouse click event.
16:43:15 <kallisti> Sgeo: so Either + typeclass hacks you'll be good
16:43:18 <elliott> Global state would be "current mouse position".
16:43:26 <elliott> Event param would be "user invoking this request".
16:43:32 <elliott> Global state would be "list of online users".
16:43:44 <Sgeo> elliott, some are one, some are the other
16:43:57 <elliott> Sgeo: Do you know the list of relevant params for each given event?
16:44:10 <elliott> Params-as-global-state, that is.
16:44:16 <Sgeo> elliott, can copy-paste from the wiki for that
16:44:28 <elliott> I really don't see where on earth a bunch of Chans comes in.
16:44:58 <Sgeo> Instead of event handlers, sending the data from each event to the user
16:44:59 <kallisti> Sgeo Chan Combinator Library SCCL
16:45:45 <elliott> Sgeo: What's wrong with event handlers?
16:45:49 <elliott> If you have
16:45:58 <elliott> installEventHandler :: (Event e) => (e -> IO ()) -> IO ()
16:46:01 <elliott> you can easily write
16:46:05 <elliott> waitForEvent :: (Event e) => IO e
16:46:06 <elliott> on top of it.
16:46:08 <kallisti> actually channel combinators that produce channels of tuples would be Arrow
16:46:30 <kallisti> is there something like "Arrow for Either"?
16:46:32 <elliott> Specifically
16:46:35 <elliott> kallisti: ArrowChoice
16:46:45 <Sgeo> elliott, but then if I repeatly waitForEvent, I lose events
16:46:47 <Sgeo> I think
16:46:48 <elliott> waitForEvent = do { v <- newEmptyMVar; installEventHandler (putMVar v); takeMVar v }
16:47:04 <Sgeo> I need to be able to uninstall event handlers too
16:47:04 <elliott> Sgeo: There is no possible way you can lose events with ^ if installEventHandler does what it's supposed to.
16:47:11 <elliott> installEventHandler :: (Event e) => (e -> IO ()) -> IO (IO ())
16:47:16 <elliott> Returned IO action deregisters events.
16:47:20 <elliott> This is the AddHandler type of reactive-banana.
16:47:32 <elliott> As in, deregisters the installed handler.
16:47:32 <elliott> So:
16:47:46 <elliott> waitForEvent = do { v <- newEmptyMVar; uninstall <- installEventHandler (putMVar v); r <- takeMVar v; uninstall; return r }
16:47:58 <elliott> The uninstall isn't needed there; the event handler will just block in future.
16:48:00 <Sgeo> I think someone in #haskell pushed the idea of not preferring event handling on me
16:48:13 <elliott> Of course, if you're interpreting "install" as "replace", then it can drop events.
16:48:17 <elliott> Hopefully you're not doing that.
16:48:51 <elliott> Sgeo: I certainly argued that a full blocking interface is often preferable, but you can't do that automatically.
16:48:57 <Sgeo> The SDK does, but I'm planning on abstracting over that
16:49:01 <elliott> You have to build it manually based on domain-specific knowledge.
16:50:16 <elliott> "abstracting over that": newEventHandler = newMVar Map.empty; addHandler v h = modifyMVar_ v $ \m -> do { u <- newUnique; return $ Map.insert u h m }; runHandlers v = readMVar v >>= mapM_ ($v) . Map.toList
16:51:02 <kallisti> elliott: I think Arrow would be a good choice for some signal processing algorithms
16:51:20 <Sgeo> elliott, please stop writing code for me, it does bother me
16:51:34 <elliott> kallisti: "Arrow would be a good choice" --people who haven't yet tried to apply arrows to a problem
16:51:37 <kallisti> as some are naturally expressed as dataflow diagrams, which Arrow represents pretty well.
16:51:42 <elliott> No it doesn't.
16:51:46 <elliott> Sgeo: Sorry, in the future I'll make sure to only write code for things you've never thought about.
16:51:51 <elliott> Sgeo: I might need a queriable database.
16:52:51 <elliott> I'm not sure if anyone can tell, but I'm super grouchy today!!
16:53:06 <elliott> kallisti: Arrow would be better if you could use actual flow diagrams with it, really.
16:53:17 <elliott> As it is you have the choice between unreadable combinator code and ugly imperative proc notation.
16:53:22 <elliott> Also, the tuples suck big-time.
16:53:35 <elliott> Arrowised FRP was in vogue for a while but it's not that popular any more for exactly these reasons.
16:53:52 <elliott> Well, OK, it is fairly used, because the arrowised FRP implementations are some of the best, but the intelligentsia don't like it.
16:54:04 -!- KingOfKarlsruhe has joined.
16:55:55 -!- Nisstyre has joined.
16:57:34 <kallisti> elliott: I think if you had some decent syntax for it, it wouldn't so cumbersome
16:57:45 <kallisti> for example a hetereogenous list syntax that's equivalent to linked tuples.
16:58:01 <Sgeo> elliott, if I use your waitForEvents twice in a row, and in between those usages, an event happens while I don't have a registered event handler, the code will never see it.
16:58:23 <Sgeo> That's what I meant by dropping events
16:58:29 <elliott> Sgeo: Are you saying, "unhandled events are not handled"?
16:58:35 <elliott> Yes, that is true.
16:59:02 <kallisti> elliott: but a graphical tool to generate arrow code would be interesting
16:59:04 <elliott> You can always maintain a backlog of events for those with no handlers.
16:59:31 <Sgeo> elliott, what, with hidden event handlers?
16:59:35 <elliott> kallisti: Arrows really aren't nice to use, even if you did have heterogeneous list stuff (which you can give list-style syntax, btw).
16:59:41 <Sgeo> But then the bot will be constantly sent information that it might not need.
16:59:47 <elliott> Sgeo: What?
16:59:58 <elliott> kallisti: Besides, being unable to use currying is gross.
17:00:05 <elliott> Arrows just aren't very Haskelly.
17:02:55 <kallisti> elliott: have you seen http://www.grame.fr/Ressources/pub/faust-chapter.pdf
17:03:04 <kallisti> it would appear arrows are very Fausty.
17:03:15 <Sgeo> elliott, I guess I could make the installEventHandler more primitive than something Chan-based
17:03:54 <kallisti> I'm not sure how you would represent the _ syntax in Faust, which basically stands for "an input"
17:04:02 <kallisti> I guess with regular function arguments...
17:04:45 <Sgeo> elliott, with the type used by reactive-banana, how would an event handler uninstall itself? I guess you could make a combinator that allows for that, but
17:06:05 <elliott> Sgeo: How can I go from A to C? I mean, I can go from A to B, and from B to C, but surely it would be better to glue A directly to C. For the user!
17:06:54 <Sgeo> I still don't see what
17:07:00 <Sgeo> what's so terrible about the Chan thing
17:07:26 <Sgeo> Although I guess if adding a handler is a common case, it might be a bit inefficient
17:07:49 <elliott> kallisti: _ is id.
17:08:05 <kallisti> ah
17:08:51 <elliott> kallisti: Lame how that Faust thing explicitly exposes the sample-rate by giving a one-sample delay.
17:09:12 <kallisti> how would you do a delay with continuous functions?
17:09:13 <elliott> But continuous time for signal processing seems to be an innovation restricted to FRP circles...
17:09:17 <elliott> (from my incredibly biased sample set)
17:09:22 <elliott> kallisti: A delay of what?
17:09:26 <elliott> There's no smallest real number.
17:09:37 <kallisti> so you have to perform delay in discrete signals... right?
17:10:35 <elliott> kallisti: This is like how, in real life, since time is continuous, you can't put something off for 5 minutes.
17:10:48 <elliott> You have to jump into a computer and become discrete and wait 5 units of time.
17:10:49 <kallisti> lol
17:11:00 <elliott> Therefore your deduction makes complete sense.
17:11:47 <kallisti> so I don't understand. what's wrong with delay f d t = f (t - d t)
17:12:34 <elliott> That's a very strange definition.
17:12:45 <elliott> delay t a b = \s -> if s < t then a s else b s
17:12:48 <elliott> makes more sense.
17:13:10 <elliott> And the answer is nothing; but that's not a one-sample delay, which is what I was complaining about.
17:13:15 <elliott> It's independent of sample-rate.
17:13:20 <Sgeo> :t mfix
17:13:21 <lambdabot> forall a (m :: * -> *). (MonadFix m) => (a -> m a) -> m a
17:13:21 <kallisti> oh I thought you were complaining about the delay operator.
17:13:27 <kallisti> which is that.
17:13:51 <kallisti> elliott: I don't really understand what your function is supposed to do.
17:14:17 <elliott> kallisti: delay 0.1s (pure 42) b is 42 for 0.1s and b thereafter
17:14:28 <kallisti> delay f d produces the signal f but delayed by the function d.
17:14:44 <elliott> Yes, thank you, I'm not an idiot.
17:14:53 <kallisti> how is your delay a... delay?
17:14:56 <elliott> The problem with that definition is that you can define pathological ds.
17:15:08 <elliott> You have to keep the entire history of f around to make that thing work, which is a time leak.
17:15:52 <elliott> kallisti: oh, I fucked it up
17:16:26 <elliott> Anyway, that definition is still unreasonable, but I was complaining about the one-sample delays which -- actually I'm starting to get the feeling you skipped the first 5 pages of this paper.
17:16:35 <kallisti> yep.
17:16:52 <kallisti> too much words, not enough programs.
17:16:53 * elliott terminates this discussion.
17:17:06 <itidus21> ok i can help
17:17:12 <kallisti> but I read it ages ago, if that counts!
17:17:14 <itidus21> with a random topic destroyer
17:17:24 <itidus21> ok a question here.. is it possible to compute from a set of genes an image of what a lifeform will become. i guess environment is a factor. ((render genes) environment)
17:18:06 <itidus21> i think it is a case of "of course, if you had infinite computing power"
17:18:15 <kallisti> elliott: well you could force the delay to be a constant value in order to make it more efficient
17:18:40 <elliott> kallisti: Time leaks aren't just about "efficiency".
17:18:41 <itidus21> but the extent to which the rendering is dependant upon environmental factors could be very signifigant
17:18:50 <elliott> A time leak means your program isn't properly streaming/real time.
17:18:56 <kallisti> as far as I know most delayed signals are delayed by a constant offset.
17:19:01 <elliott> Which is, of course, crucial for signal processing.
17:19:20 <elliott> Phantom_Hoover: You love biology, right? Then you'll love itidus21's question!
17:19:47 <kallisti> elliott: but would a constant offset fix this?
17:19:49 <itidus21> "* elliott terminates this discussion." i should have realized this was a bluff
17:19:51 <itidus21> hehe
17:19:58 <Phantom_Hoover> hello
17:20:37 <itidus21> Phantom_Hoover: i really started to think about this question in the past in relation to video game characters
17:20:58 <itidus21> humm.. but only now am i making the full connection
17:21:05 <itidus21> video game characters with dna
17:21:07 <elliott> kallisti: In that one, specific case, yes. (It has the rather serious problem that for the first `d`, the value is undefined.)
17:21:24 <Phantom_Hoover> itidus21, genes cannot be used to reliably determine the properties of a final organism; indeed, it is probably impossible to reconstruct a single cell from them.
17:21:32 <kallisti> elliott: yes I thought about that.
17:21:37 <elliott> Jeans on the other hand...
17:21:40 <itidus21> Phantom_Hoover: and yet we read so much into them :P
17:21:53 <elliott> kallisti: Which is what my definition was trying to get at: you need a signal to use for the first d.
17:21:57 -!- Gregor has set topic: T-30 seconds 'til topic change | http://codu.org/logs/_esoteric/.
17:22:00 <Phantom_Hoover> They can still have a consistent influence.
17:22:12 <elliott> delay d f g = \t -> if d < t then f t else g (t-d)
17:22:14 <itidus21> Phantom_Hoover: i wonder if that is because genes don't contain life itself
17:22:17 <kallisti> elliott: ah
17:22:26 <itidus21> that it is impossible to uhh.. derive life directly from information
17:22:33 <Phantom_Hoover> itidus21, no, it's because the cell contains stuff which isn't directly coded for.
17:22:37 <kallisti> elliott: wait are you sure it's undefined? is negative time not allowed? :P
17:22:49 <elliott> kallisti: Generally the signals you use with DSP start at a given time.
17:23:00 <elliott> And so don't, in fact, stretch back to the beginning of time.
17:23:14 <elliott> kallisti: Anyway, it's basically the same issues as you get with dynamic event/behaviour switching that have been a large focus of FRP research for ages.
17:23:22 <kallisti> well... if they're continuous functions they would in most cases...
17:23:23 <elliott> Of course the chances of the authors of this having heard of any of it is ~0.
17:23:30 <elliott> kallisti: Um, no?
17:23:39 <itidus21> Phantom_Hoover: hm... but is there an order to that uncoded stuff?
17:23:41 <kallisti> > sin (-1)
17:23:43 <lambdabot> -0.8414709848078965
17:23:46 <elliott> ...
17:23:47 <elliott> You're an idiot.
17:23:48 <kallisti> is perfectly valid, for example.
17:23:57 <elliott> Also, "continuous" doesn't mean "with continuous domain".
17:24:21 <kallisti> what is an example of a function that breaks on a negative time value?
17:24:28 <elliott> kallisti: an input signal?!?!
17:24:35 <elliott> You know, what DSPs are used for?
17:24:36 <Phantom_Hoover> itidus21, sure, it's the (highly ordered) cell machinery.
17:25:00 <elliott> You don't have to specify an infinite signal history that stretches back to the beginning of time when using a DSP, unless I'm sorely out of date with current audio technology.
17:25:12 <itidus21> so what if i was to have a model with both cell machinery and the genetics of some lifeform
17:25:29 <kallisti> elliott: I think it would be better to just write another combinator that provides a value for negative times or something.
17:25:37 <kallisti> elliott: input signals would automatically have it applies to them.
17:25:40 <kallisti> 0 is a good value...
17:25:43 <kallisti> for integers.
17:26:04 <itidus21> Phantom_Hoover: a curious thing here for me is whether cell machinery varies from species to species
17:26:15 <kallisti> elliott: so basically what you wrote but split up into two functions
17:26:16 <Phantom_Hoover> 'Duh'.
17:26:18 <elliott> kallisti: Or you could not be an idiot, and either incorporate a notion of signal start time or use combinators like my proposed delay.
17:26:21 <itidus21> because if it does then it may be as unique as genetics
17:26:49 <kallisti> elliott: I don't se a difference what I said and what you said aside from I proposed that your delay function should be two different functions
17:27:02 <kallisti> because you may want that behavior elsewhere.
17:27:05 <kallisti> without a delay.
17:27:11 <itidus21> which suggests that the emphasis on genetics as a buzz word these days is slightly misleading
17:27:45 <itidus21> can lead to a question of, am i human because of my genetics or my cell machinery
17:27:50 <kallisti> and also, you may want to not use a default value for signals that /do/ go back to the beginning of time.
17:27:52 <elliott> kallisti: Because your model makes no damn sense, because your signals are necessarily partial functions (due to having a source signal not defined on negative inputs that you can transform with a default value) yet you somehow think you need more machinery to solve it beyond the delay-without-initial-signal definition already gaining meaning then (disregarding the fact that just making it a partial function is a dumb idea for many reasons)
17:27:58 <Phantom_Hoover> itidus21, since genetics are what are used to build that machinery, it's not a hugely meaningful distinction.
17:28:02 <itidus21> ohhh
17:28:25 <Phantom_Hoover> The problem is that fitting that machinery together /from the genes alone/, without a preëxisting copy of it, is probably impossible.
17:28:38 <itidus21> and is that because life feeds on life?
17:28:57 <elliott> `quote floored me
17:29:00 <HackEgo> 169) <alise> "Europe is the national anthem of the Republic of Kosovo." <cpressey> alise: I <cpressey> I was going to say something then your last line floored me
17:29:21 <Phantom_Hoover> No, it's because life, by and large, tends to be produced by other life.
17:29:21 <itidus21> sorry phantom.. all my questions tend towards antagonism in their wording
17:29:36 <kallisti> elliott: I still think it would be a good idea to have both
17:29:42 <kallisti> and my delay is not partial unless its input is partial.
17:29:55 <elliott> kallisti: (a) You have no idea what you're talking about. (b) See (a).
17:30:16 <kallisti> ?
17:30:26 <Phantom_Hoover> You never have a strand of DNA forming a cell in isolation, from a bootstrap protein coder and some amino acids; you have a cell using its DNA to expand and replicate its existing structures.
17:30:32 <kallisti> elliott "good at conversation" hird
17:30:44 <kallisti> I'm going to go conjure money from thin air brb
17:30:49 -!- Sgeo has quit (Quit: Have stuff I need to do. Be back whenever.).
17:33:21 <itidus21> part of my view is that even if we could engineer life, i don't think we should
17:33:22 <itidus21> i mean like creating sentient beings which are not created from other sentient beings
17:33:23 <itidus21> sentient? ahh tough word ... just life
17:33:36 <kallisti> elliott: oh. homework: prove that delay sin is a partial function. I eagerly await your conclusion.
17:33:52 <itidus21> basically if we could take something which is not life.. and turn it into life through engineering techniques.. we should not do it
17:34:14 <elliott> kallisti: Sorry, I only engage idiots when I'm feeling stupid.
17:34:17 -!- Nisstyre has quit (Ping timeout: 240 seconds).
17:34:29 <kallisti> elliott: and yet I am not wrong?
17:34:37 <Phantom_Hoover> itidus21, what about when something which was not life turned into life of its own accord?
17:35:08 <itidus21> then thats fine with me :D
17:35:33 <kallisti> elliott: by your definition map is a partial function because you can pass it a partial function.
17:35:59 <kallisti> therefore: ban use of map
17:36:08 <itidus21> i like the sex model of reproduction. sleep together night after night with lots of pleasure, and then one day the woman starts missing her period
17:36:28 <itidus21> its pretty good
17:37:21 -!- Nisstyre has joined.
17:37:49 <Phantom_Hoover> Nisstyre is fortunate to have been spared that.
17:39:55 <itidus21> to the extent that there is something called mathematics which is thought about by some and not by others, and that some identify with it, defend it, build it up, ... there is also misconceptions woven into it, mistakes, errors.. all of this is inherent simply because it was done by humans :P
17:40:27 <Phantom_Hoover> Except for the bits we've computationally verified.
17:40:31 <kallisti> nah, it's all proven by naive set theory.
17:40:36 <itidus21> the views of the mathematician tend to be shaped by the mathematics
17:40:53 <Phantom_Hoover> And the award for most vacuous statement goes to...
17:41:14 <kallisti> Phantom_Hoover: but computers are built by people too!
17:41:56 <itidus21> i wish i could more efficiently say the right things without mixing in the wrong things but
17:41:57 <itidus21> anyway
17:42:25 <itidus21> it is an inevitable result of specialization that everyone ends up developing thought patterns specialized for some lifestyle
17:42:43 <kallisti> itidus21: if you speak in this channel long enough people will force you to be exact.
17:42:55 <kallisti> so you're well on your way!
17:42:58 <itidus21> and different people looking at the same un-understandable thing, will inevitably see different thing
17:43:37 <elliott> <Phantom_Hoover> Except for the bits we've computationally verified.
17:43:48 <elliott> Phantom_Hoover: But but but, humans made the computer proofsystems too!!!!
17:43:50 <elliott> *proof systems
17:43:58 <kallisti> elliott: I know that's what I was saying!
17:43:59 <kallisti> !!!
17:43:59 <itidus21> the only regret is if you get lazy in your choice of lifestyle
17:44:20 <elliott> itidus21: You say "the only regret" because it's "my only regret", right?
17:44:36 <itidus21> im making a prediction
17:45:08 <kallisti> elliott: I like how specifying a negative number in our delay functions produces a future value.
17:45:37 <itidus21> elliott: ok yes :P
17:45:48 <kallisti> elliott: and also breaks it for finite signals
17:45:57 <elliott> kallisti: I object to this use of the term "our"; only I've presented a working delay function.
17:46:10 <itidus21> i hate the feeling of knowing that my mind tricked me for another day into doing nothing
17:46:19 <itidus21> clever mind that it is
17:46:23 <kallisti> yours is a conditional on top of my delay function, to assist dirty partial functions.
17:46:24 <Phantom_Hoover> Damn you, mind!
17:46:28 <Phantom_Hoover> Always tricking my brain!
17:46:46 <elliott> kallisti: Please shut up.
17:46:55 <kallisti> elliott: that's not very nice.
17:47:03 <elliott> Indeed.
17:47:06 -!- Klisz has quit (Read error: Operation timed out).
17:47:31 <kallisti> elliott: so you're just going to be a jerk without explaining yourself? it's a wonder you have any friends.
17:47:38 <itidus21> i dunno what it takes to snap out of it.. whether i need to lose everything i've got before i start to take life seriously
17:47:44 <elliott> I do; they're considerably less annoying.
17:48:03 <quintopia> elliott: you have friends?!?!?
17:48:03 <lambdabot> quintopia: You have 2 new messages. '/msg lambdabot @messages' to read them.
17:48:09 -!- Klisz has joined.
17:50:20 <elliott> quintopia: On occasion!
17:52:43 <kallisti> elliott: anyway in kallisti Signal Processing your function is just delay d f g = if' (d < t) f (pureDelay (const d) g)
17:53:57 <elliott> kallisti: I really don't care.
17:55:29 <kallisti> oops
17:55:57 <kallisti> delay d f g = if' (d <) f (pureDelay (const d) g)
17:58:13 <kallisti> unfortunately booleans are not overloadable. :(
17:58:22 <elliott> That's not what if' does.
17:58:26 <kallisti> I know
17:58:28 <kallisti> that's not if' if'
17:58:30 <kallisti> it's a different if'
17:59:17 <kallisti> to conditionally switch between signals based on a control signal
18:00:21 -!- MSleep has changed nick to MDude.
18:02:02 -!- pikhq_ has joined.
18:02:26 -!- pikhq has quit (Ping timeout: 268 seconds).
18:05:00 <kallisti> actually instead of < I'd want something like...
18:06:28 <fizzie> "<fizzie> The box has a statistics page with byte counters that seem to be saturating 32-bit, because the numbers are stuck at 2147483647. --" <-- actually now some of them have wrapped back down, so maybe it's signed 32-bit with wraparound, and shows 2^31-1 for <0.
18:06:41 <kallisti> class SigOrd s where { lt :: s a -> s a -> s Bool; gt :: ... } -- probably doesn't need to be a typeclass
18:08:04 <elliott> fizzie: I think you might be exceeding the design limits.
18:08:23 <fizzie> Two gigabytes is not really much to download.
18:11:31 -!- pikhq has joined.
18:11:34 -!- pikhq_ has quit (Ping timeout: 252 seconds).
18:13:07 <kallisti> elliott: http://www.haskell.org/haskellwiki/Package_versioning_policy do people actually follow this?
18:13:09 <elliott> `addquote <fizzie> Two gigabytes is not really much to download. <Gregor> THAT'S LIKE THREE EPISODES OF MY LITTLE PONY
18:13:11 <elliott> kallisti: Yes.
18:13:13 <HackEgo> 797) <fizzie> Two gigabytes is not really much to download. <Gregor> THAT'S LIKE THREE EPISODES OF MY LITTLE PONY
18:13:22 <kallisti> elliott: do people actually not follow this as well?
18:13:58 <elliott> Most packages follow the PVP.
18:14:14 <kallisti> good. everything is as it should be.
18:15:14 <kallisti> elliott: do you actively provide import lists for all of your import statements to avoid the situation where a package update results in new name clashes?
18:15:37 <elliott> No.
18:15:43 <kallisti> I wouldn't either. :P
18:15:45 <Deewiant> I do.
18:16:21 <kallisti> granted, there are other good reasons to do that, but most of the time I don't really see a need to.
18:16:46 <kallisti> though there's a laziness threshold where, if I'm only using a small number of functions, I'll provide an import list for documentation.
18:16:56 -!- pikhq_ has joined.
18:17:15 -!- pikhq has quit (Ping timeout: 252 seconds).
18:23:42 <kallisti> hmm
18:23:52 <kallisti> if fourier transform only worked with positive frequencies
18:24:03 <kallisti> would it only be able to accurately preserve periodic functions?
18:25:13 -!- Sgeo has joined.
18:25:20 <kallisti> or are there combinations of phases that produce non-periodic results?
18:27:36 <kallisti> actually...
18:27:54 <kallisti> negative frequencies are equivalent to being "perfectly" out of phase
18:29:21 <kallisti> so... I guess fourier transform would only preserve periodic functions if it only represented natural coefficients (representing positive frequencies) .
18:29:23 <fizzie> I'm not entirely sure what you mean with "only work with positive frequencies". I mean, if you only specify (complex-valued) F(x) for x >= 0, then... I guess it defines a real-valued function f(x) for all (real) x. Since if you define F(-x) = conj(F(x)) and run that through the usual inverse transform you'll get a purely real f(x).
18:29:32 <olsner> hmm, what's that funny quote about causation causing correlation causing the correlation implies causation fallacy?
18:30:09 <elliott> olsner: "causation causing correlation causing the correlation implies causation fallacy" -olsner
18:30:18 <fizzie> And if you flip it so that F(-x) = -conj(F(x)) you'll get a purely imaginary f(x).
18:30:25 <olsner> elliott: no, not that one
18:30:32 <kallisti> fizzie: I meant if the fourier series was only positive real parts.
18:30:39 <kallisti> but now I mean only natural numbers.
18:30:55 <olsner> istr it was more similar to "Causation causes correlation causes correlation causes causation." but that doesn't sound quite right either
18:32:00 <olsner> `pastelog causation
18:32:13 <kallisti> fizzie: basically my question is: what subset of all possible Fourier series represents only periodic functions.
18:32:31 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.25517
18:34:07 <olsner> `pastelogs causation
18:34:20 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.21658
18:34:21 <fizzie> kallisti: Can't say I'm still quite grokking it. I mean, a Fourier *series*, which has a countable number of coefficients, represents only periodic functions, period. If you have a nonperiodic function, you can take its (continuous) Fourier *transform* instead.
18:34:50 <kallisti> oh nevermind..
18:35:05 <elliott> olsner: don't repaste, just wait a bit and refresh
18:35:11 -!- Sgeo has quit (Quit: Leaving).
18:35:18 <elliott> olsner: wtf, causation has only been said that few times in here?
18:35:23 <olsner> <oklofok> correlation correlating with causation is correlated with correlation causing causation, and thus causes correlation to cause causation
18:35:41 <kallisti> fizzie: hmmmm is the fourier transform still a time-varying signal?
18:36:56 <fizzie> kallisti: A Fourier transform of a continuous function with a real argument is a continuous function with a real argument, if that's what you mean. Conventionally the first one is called "time" and the second one is called "frequency", but you're certainly free to call both whatever.
18:37:16 <olsner> elliott: didn't I misspell it the first time, since pastelog gave nothing and pastelogs gave me results?
18:37:36 <kallisti> fizzie: I'm basically confused as to how a fourier transform can represent a non-periodic signal.
18:38:20 <elliott> olsner: the "error: not in manifest" thing is usually just a delay but i dunno what happened there
18:38:22 <elliott> `cat bin/pastelog
18:38:25 <HackEgo> ​#!/bin/sh \ cd /var/irclogs/_esoteric \ \ pasterandom() { \ if [ "$1" -gt 150 ]; then \ echo "No." \ exit \ fi \ for i in $(seq "$1"); do \ file=$(shuf -en 1 ????-??-??.txt) \ echo "$file:$(shuf -n 1 $file)" \ done | paste \ } \ \ if [ "$1" ]; then \ if expr "$1" + 0 >/dev/null 2>&1; then \ pasterandom "$1" \ else \ lines=$(grep -P -i -- "$1"
18:38:29 <fizzie> kallisti: S(f) = \int_{-\inf}^{\inf} s(t) * e^{-i*2pi*f*t} dt -- why would s(t) need to be periodic?
18:38:35 <elliott> `run ls -l bin/pastelog
18:38:38 <HackEgo> ​-rwxr-xr-x 1 5000 0 602 Jan 11 18:38 bin/pastelog
18:38:40 <elliott> `run ls -l bin/pastelogs
18:38:43 <HackEgo> ​-rwxr-xr-x 1 5000 0 602 Jan 11 18:38 bin/pastelogs
18:38:49 <elliott> wtf
18:38:50 <kallisti> fizzie: I can't read that...
18:38:51 <elliott> `run diff bin/pastelog{,s}
18:38:55 <HackEgo> No output.
18:39:01 <elliott> olsner: yeah no it's fine
18:39:04 <kallisti> fizzie: oh yes I can
18:39:05 <elliott> just a glitch
18:39:07 <fizzie> kallisti: Anyway, if you *do* apply that to a periodic s(t), then the resulting S(f) is a Dirac comb modulated with a discrete set of coefficients. (The Fourier series coefficients, namely.)
18:40:17 <olsner> so oklopol's sentence was the one I was thinking about but thinking some more about it it seems to mean the opposite of what I expected it to mean
18:40:49 <kallisti> fizzie: so is it because it's an integral and not a summation?
18:41:23 <kallisti> fizzie: I'm confused as to how the inverse transform can produce a non-periodic signal, as well.
18:43:09 <fizzie> kallisti: It's just another integral. I seem to recall it's reasonably simple to show that if you stick the "forward transform" inside the inverse transform integral, you'll be left with just the original f(t), with not too many assumptions on f(t).
18:43:52 <fizzie> kallisti: I mean, forward transform has e^{-i...} and inverse transform has e^{i...} with the same "..." in it, and then you just shuffle the integral signs around a bit and hope no mathematicians notice.
18:44:09 <elliott> `addquote <fizzie> [...] and then you just shuffle the integral signs around a bit and hope no mathematicians notice.
18:44:12 <HackEgo> 798) <fizzie> [...] and then you just shuffle the integral signs around a bit and hope no mathematicians notice.
18:44:53 <fizzie> kallisti: (If you have a Fourier series instead, the resulting function is periodic, since it's just a sum of complex exponentials.)
18:45:57 <kallisti> fizzie: right so basically I don't understand because I intuitively grasp fourier transform in terms of fourier series, and am really bad at calculus..
18:47:25 <Phantom_Hoover> fizzie, I NOTICED
18:48:12 <fizzie> Phantom_Hoover: OH NO. Okay, I'll leave the integral signs in place and just shuffle something in through the "back door" over the dt.
18:48:12 <Phantom_Hoover> kallisti, so in other words you grasp the Fourier transform as a magic box that turns a function into a series.
18:48:23 <kallisti> yep
18:48:39 <kallisti> though I get all of its components too!
18:48:45 <kallisti> like Euler's formula
18:48:52 <Phantom_Hoover> AKA "not grasping the Fourier transform at all".
18:48:52 <kallisti> and integrals
18:49:04 <kallisti> well, but not how to integrate complex numbers...
18:49:37 <Phantom_Hoover> Fourier transforms don't require any integration of complex numbers.
18:50:37 <kallisti> well they require integration of real numbers within complex number functions
18:51:28 <Phantom_Hoover> \int f(x) e^-2pi*i*x*zeta dx = \int (cos e^-2pi*x*zeta + i sin ({...})) = \int cos {...} + i \int sin{...}.
18:51:39 <Phantom_Hoover> Oh, wait.
18:51:39 <elliott> Being really bad at calculus is a great position to be in if you want to write signal processing code.
18:51:40 <Phantom_Hoover> Oops.
18:52:09 <Phantom_Hoover> Yeah that's still valid even with the f(x).
18:52:39 <kallisti> elliott: poking fun at people all day in an IRC channel is a great position to be in if you want to lead a fruitful life.
18:52:41 <fizzie> Phantom_Hoover: Just put suitable things in the {...} to compensate.
18:53:34 <fizzie> Phantom_Hoover: Sorry, misread as "that's still valid even without the f(x)" as in "f(x) e^{-2pi*i*x*zeta} = (cos e^{-2pi*x*zeta + i sin ({...})) for any f(x)".
18:53:38 <Phantom_Hoover> No, just f(x) before the sin and cos.
18:53:58 -!- kallisti has left.
18:55:29 <Phantom_Hoover> He could've at least quit first.
18:56:34 <fizzie> Or at least left with a "ragepat" message, that's the convention.
18:57:17 -!- azaq23 has joined.
18:57:26 -!- azaq23 has quit (Max SendQ exceeded).
18:58:47 -!- azaq23 has joined.
19:00:43 <elliott> kallisti doesn't seem to have realised that the "you're WASTING your LIFE so SAD" angle doesn't really work on IRC.
19:01:04 <Phantom_Hoover> On a programming channel, at that.
19:01:15 <elliott> Phantom_Hoover: One expressly dedicated to languages with absolutely no practical use.
19:01:26 <olsner> If you can read this text, you are wasting your life
19:01:44 <elliott> olsner: The blind people in the room thank you.
19:02:06 <Phantom_Hoover> elliott, that's not how esolangs are defined, is it?
19:02:07 <fizzie> If you can hear this text, you are doubly-wasting your life. (Take that, screenreader users.)
19:02:31 <elliott> fizzie: BRAILLE DISPLAY
19:02:33 <olsner> If you can feel this text, you are wasting your life
19:02:34 <elliott> S
19:02:38 <elliott> Damn,.
19:02:39 <elliott> Uh.
19:02:41 <fizzie> That was fast.
19:02:50 <fizzie> If you can smell this text, I don't know what's going on.
19:02:50 <elliott> Phantom_Hoover: Well, no, but it's practically true.
19:02:56 <elliott> fizzie: :D
19:03:00 <olsner> If you can fnarf this text, you are Gregor
19:03:29 <elliott> If you can taste this text, stop licking your screen.
19:03:44 <elliott> If you can propriocept this text, wtf?
19:04:45 <fizzie> If you can equilibriocept this text, don't you get seasick in your fancy rotating ball thing, huh?
19:04:48 <Deewiant> If that were a word, I think it should be "proprioceive".
19:04:49 <Phantom_Hoover> If you can... balance this text, you used the wrong cables.
19:04:56 <Phantom_Hoover> fizzie, damn you.
19:06:05 <olsner> If you couldn't divine this text, you suck at fortune telling
19:06:09 <fizzie> If you can feel this text as pain, you're probably not the only one groaning.
19:06:21 <elliott> Deewiant: You're a proprioceive.
19:06:35 <Deewiant> No, I'm a noun.
19:06:42 <elliott> If you can synesthese this text, cool!
19:06:46 <fizzie> Deewiant: Your MOTHER was a noun.
19:06:49 <Phantom_Hoover> If you can detect this text with your Golgi organ, you should really see a doctor.
19:06:58 -!- pikhq_ has quit (Ping timeout: 240 seconds).
19:07:01 <elliott> inb4 Deewiant complains about my verbing.
19:07:03 -!- pikhq has joined.
19:07:44 <elliott> If you can feel pain in your heart because of the intense predictability of this text, I empathise.
19:07:57 <fizzie> If you can echolocate this text, hello to our dolphin/bat/batman/etc. friends.
19:08:39 <elliott> omg do we have any dolphins in the channel
19:09:26 <fizzie> They're probably just hiding.
19:09:34 <elliott> hi dolfins :DDDDDDDddddddddd
19:12:50 <Deewiant> And that is /why/ they're hiding.
19:13:58 <Phantom_Hoover> If you can magnetocept this channel, we're sorry for messing up your migration patterns.
19:14:14 -!- DCliche has joined.
19:15:48 -!- kallisti has joined.
19:15:48 -!- kallisti has quit (Changing host).
19:15:48 -!- kallisti has joined.
19:17:16 <elliott> Phantom_Hoover: "Magnetoception" sounds like a bad one-word pitch for an X-Men film involving nesting or dreams somehow.
19:17:39 -!- Klisz has quit (Ping timeout: 248 seconds).
19:17:49 <Phantom_Hoover> M A G N E T O C E P T I O N
19:18:59 <kallisti> I had made the mistake of assuming this was a channel about topics in mathematics and computing. I have since corrected that flaw and will now be idle until I can think of ways to belittle others until I feel better about myself.
19:19:28 <olsner> hmm, extra-sensory perception is a weird concept... if such perception actually happened, wouldn't that just make it ordinary sensory perception?
19:21:12 <elliott> kallisti: Just so you know, the joining-and-throwing-the-gauntlet-down thing works better if you /quit afterwards.
19:22:48 <Phantom_Hoover> kallisti, you could go after iti, but he at least acknowledges his ignorance.
19:23:45 <kallisti> What's great is that I don't even have to prove my own point. I can just let people respond and have it proven automatically.
19:24:54 -!- kallisti has quit (Quit: leaving).
19:25:48 <elliott> fizzie: I think I'm going to have to step down from the Ragepart Professorship of Drama Kingliness.
19:25:51 <elliott> I'm not worthy.
19:25:53 <elliott> *Ragepat
19:25:58 <elliott> HOW CAN I TYPO A TYPO
19:27:40 <Phantom_Hoover> elliott, I don't know about that.
19:27:50 <Phantom_Hoover> It would be pretty hard to top the Optbot Incident.
19:28:31 <elliott> Phantom_Hoover: Like you haven't gotten annoyed about inconsistent op decisions.
19:29:44 <Phantom_Hoover> elliott, I also haven't made a bot which automatically clobbers the topic twice a day and refused to listen to any complaints.
19:31:17 <elliott> Phantom_Hoover: I like how you're making this an opportunity to complain about me for some incomprehensible reason? Anyway, I didn't "refuse to listen to complaints", I just found it amusing that the only people who whined about it were people who became active long after it was present for months and entered channel folklore (incl. e.g. being the inspiration for fungot's babble) without a single complaint.
19:31:17 <fungot> elliott: mr president, commissioner, and have all approved this text. i would also like to tell the house that, in june of this year, broadly reflect the new political framework for aid to the economic and social cohesion policy. after the speech by the president
19:32:31 <Phantom_Hoover> elliott, you brought up the topic of your rageparting, and then you went on the offensive the minute I mentioned one of your more notable ones.
19:33:50 <elliott> Phantom_Hoover: lol, but seriously fizzie is the one who mentioned ragepatting and I was replying to that, and I'm hardly "on the offensive", I'm just responding when you direct ridiculous comments at me.
19:34:21 <Phantom_Hoover> <Phantom_Hoover> It would be pretty hard to top the Optbot Incident. ← look at this ridiculous comment.
19:34:24 <Phantom_Hoover> Look at it.
19:34:32 <olsner> oh, ragepat means ragepaRt? makes more sense now...
19:35:28 <elliott> Phantom_Hoover: OK, you're clearly not going to be satisfied no matter what I say, so whatevs
19:35:42 <Phantom_Hoover> Yes, clearly.
19:35:45 <Phantom_Hoover> Let's end it now.
19:36:34 <elliott> That was ending it.
19:37:13 <olsner> argh! gitweb is doing git archive on everything, for no good reason
19:37:54 <elliott> http://www.youtube.com/watch?v=W7iuXAQYRcI
19:38:10 <elliott> olsner: gitweb offers tarball downloads
19:40:20 <olsner> elliott: that's not good enough!
19:40:51 <elliott> olsner: disable them then
19:41:28 <olsner> but this thing is configured by PERL CODE!
19:41:56 -!- pikhq_ has joined.
19:42:01 -!- pikhq has quit (Ping timeout: 240 seconds).
19:44:21 <olsner> $feature{'snapshot'}{'default'} = [];
19:52:47 -!- Vorpal has quit (Read error: Operation timed out).
19:59:37 -!- kallisti has joined.
19:59:54 <kallisti> olsner: you can omit those single quotes, btw.
19:59:59 <kallisti> :)
20:00:14 -!- Klisz has joined.
20:00:26 <Phantom_Hoover> kallisti, ...
20:01:08 <kallisti> Phantom_Hoover: what? it's a valuable piece of information.
20:01:31 <Phantom_Hoover> kallisti, you're not very good at ragepatting, are you.
20:01:40 <kallisti> I went to go pay a thing.
20:01:45 <kallisti> with money I conjured out of thin air.
20:01:51 <kallisti> from a little machine that gives out money.
20:02:11 <Phantom_Hoover> I don't recall you fixing your rehosting problem.
20:02:12 <kallisti> god bless America land of free money*
20:02:21 <kallisti> (*see terms and conditions)
20:02:39 <kallisti> Phantom_Hoover: there never was one.
20:02:41 <Phantom_Hoover> You reconnected and joined here later.
20:02:54 <kallisti> that happened once because I don't remember why.
20:03:05 -!- DCliche has quit (Ping timeout: 260 seconds).
20:04:32 <kallisti> anyway I can just put elliott on ignore and then have (mostly) a channel that is constructive.
20:04:39 <kallisti> so no need to quit.
20:05:34 <kallisti> I doubt he would mind either.
20:05:42 <kmc> so much drama
20:06:41 <cheater_> so much drummer
20:07:28 <Phantom_Hoover> cheater_, fuck off.
20:07:30 -!- Sgeo has joined.
20:07:37 <kallisti> Sgeo: hey
20:07:44 <cheater_> Phantom_Hoover, fuck on
20:07:46 <Sgeo> Hi
20:08:03 * Sgeo registered for classes
20:08:05 <Sgeo> :/
20:08:07 <elliott> kallisti: Nobody ever puts me on /ignore.
20:08:54 <olsner> so much drarmar
20:09:09 <elliott> ^ul (Or at least, nobody ever puts fungot on /ignore.)S
20:09:09 <fungot> Or at least, nobody ever puts fungot on /ignore.
20:09:13 <Phantom_Hoover> Sgeo, which classes.
20:09:33 <kallisti> fungot: hi
20:09:33 <fungot> kallisti: mr president, the british government to reconsider its view on this rather than the press, newsprint, the printing houses and advertising. in that context insofar as subsidiarity is concerned.
20:09:47 <Sgeo> "Virtualization/Cloud Computing", Human Body/Health & Disease, The West and the World
20:10:00 <Sgeo> (+lab for Human Body Health and Disease)
20:10:55 <Sgeo> Uh, I forgot something, blargh
20:11:08 <Sgeo> Oh, forgot to register for UNIX Operating Systems II
20:11:17 * elliott predicts kallisti's /ignore will last until he needs Haskell help.
20:11:26 <fizzie> olsner: So much drachma (δραχμή).
20:11:43 * Phantom_Hoover notes that not one of Sgeo's classes are CS.
20:12:02 * Sgeo notes that there IS no CS at this college
20:12:19 <kallisti> I'm not taking any CS classes this semester either.
20:12:22 * Phantom_Hoover notes that dude seriously get out as soon as possible FFS
20:12:39 <kallisti> unless you count intro to advanced math.
20:12:47 <kallisti> where I get learn about COUNTABLE AND UNCOUNTABLE SETS.
20:12:51 <kallisti> in like... chapter 9.
20:13:04 * Sgeo has been pondering just graduating with a BS in this BS degree, then doing CS elsewhere
20:13:33 <kallisti> how do you get a Ph.D if you're really bad at school?
20:13:49 <kallisti> I doubt that's even something I want to do.
20:13:53 <Phantom_Hoover> Sgeo, the problem is that your college is terrible enough that nobody will care what you did there.
20:14:10 <olsner> Sgeo: a BS in bullshit?
20:14:15 <Sgeo> olsner, indeed
20:14:57 <olsner> you should just go get a job instead
20:15:14 <kallisti> this is my plan.
20:15:24 * Phantom_Hoover notes that apparently the readership of the Guardian don't realise that 3 As at A-level does not mean you should be at Oxbridge.
20:18:42 <Sgeo> olsner, I'm going to look for an internship at some point
20:19:16 <olsner> after your brain has rotted to mush at this school of yours? :)
20:23:50 <Phantom_Hoover> Sgeo, how do college admissions even work in the US?
20:24:04 <Sgeo> Good question, I don't remember
20:24:14 <kmc> poorly
20:24:17 <Phantom_Hoover> ...
20:24:24 <elliott> Phantom_Hoover: Don't be silly, I'm sure his father took care of that.
20:24:29 <Phantom_Hoover> Surely you had to go through the process?
20:24:38 <Sgeo> Phantom_Hoover, yes, in 2008.
20:24:48 <Sgeo> Wait, actually
20:24:57 <kallisti> Phantom_Hoover: they look at grades and SAT scores mostly.
20:25:03 <Sgeo> I was enrolled as non-matriculated for a while at first, then "transferred" in
20:25:04 <kallisti> and soemtimes you have to write about things.
20:25:07 <kallisti> depending on the school
20:25:07 <Phantom_Hoover> Yes, but what do you actually /do/?
20:25:09 <kallisti> it's basically dependent on each school.
20:25:24 <Phantom_Hoover> I assume you don't have anything as pinko commie as UCAS.
20:25:44 <kallisti> if it can be described as "pinko commie" then no.
20:25:46 <pikhq_> Phantom_Hoover: Fill out application form, hand them information they ask for (typically school transcripts, SAT/ACT scores, maybe an essay)
20:25:46 <kallisti> we don't have it.
20:25:54 <kmc> anything can be described thus
20:26:00 <kmc> there is a common application accepted by many but not all US schools
20:26:10 <kmc> https://www.commonapp.org/
20:26:20 <kmc> some also require supplemental materials
20:26:25 <Phantom_Hoover> pikhq_, so you could apply to an indefinite number of colleges?
20:26:35 <pikhq_> If you have the patience, yes.
20:26:35 <kallisti> sure. there are fees usually.
20:27:28 <Phantom_Hoover> Sgeo, did you even *try* to get into anywhere other than Farmingdale?
20:27:38 <kmc> also some states have common applications
20:27:41 <Sgeo> Phantom_Hoover, no.
20:27:43 <kmc> for their public school systems
20:27:56 <kmc> like you apply to all the University of California schools at once
20:28:08 <kmc> you just say which ones you are interested in
20:28:25 -!- oerjan has joined.
20:28:32 <kallisti> oerjan: hey
20:28:36 <oerjan> evening
20:29:52 <elliott> Phantom_Hoover: Hey, he aimed high. You're the one applying to Cambridge!
20:30:34 <oerjan> cambridge isn't high?
20:31:14 <Phantom_Hoover> Obviously not, if dead household appliances can apply.
20:31:42 <elliott> oerjan: Yes, so Phantom_Hoover's a hypocrite.
20:31:50 <elliott> He's just jealous of Farmingdale students.
20:32:30 <Phantom_Hoover> do they have hills there there aren't any hills in cambridge it scares me
20:32:37 <Phantom_Hoover> it's just 180 degrees of sky
20:32:39 <kallisti> BUGS
20:32:39 <kallisti> Numbered backupfile creation might have problems if the filename (not the backup number) contains the first six digits of the speed of light (in m/s)
20:33:00 <kallisti> http://search.cpan.org/~rgiersig/Tie-Persistent-1.00/Persistent.pm
20:33:37 <Phantom_Hoover> why
20:33:59 <kallisti> no idea.
20:37:10 <kallisti> !perl use Tie::File
20:37:13 <EgoBot> No output.
20:37:45 <kallisti> !perl tie @arr, 'Tie::File', 'foo.txt' or die
20:37:46 <EgoBot> Can't locate object method "TIEARRAY" via package "Tie::File" at /tmp/input.30334 line 1.
20:37:59 <kallisti> !perl use Tie::File; tie @arr, 'Tie::File', 'foo.txt' or die
20:38:00 <EgoBot> Died at /tmp/input.30398 line 1.
20:47:06 -!- Ngevd has joined.
20:47:20 <Ngevd> Hello!
20:55:18 -!- elliott has quit (Ping timeout: 276 seconds).
20:55:38 <kallisti> Ngevd: ey
20:55:40 <kallisti> +h
20:55:50 <Ngevd> How are you, kallisti?
20:55:51 -!- monqy has joined.
20:56:22 <kallisti> Ngevd: not bad. working on programming stuff as usual.
20:56:35 <Ngevd> :)
20:57:30 <Ngevd> Did I mention that during my General Studies exam I temporarily exchanged my phone for a raffle ticket labelled "128"?
21:00:04 <oerjan> `frink c -> m/s
21:00:16 <HackEgo> 299792458
21:00:35 <Ngevd> `frink c -> yards/s
21:00:48 <HackEgo> 374740572500/1143 (approx. 3.278570188101487e8)
21:00:51 <Phantom_Hoover> Ngevd, you mean they had a phone exchange system?
21:01:06 <Ngevd> Phantom_Hoover, precisely.
21:01:25 <Phantom_Hoover> (hahahaha general studies)
21:01:45 <olsner> I think they just give you back the phone you gave them, without bothering to even exchange them
21:01:57 <Ngevd> (school put us all in, too much effort to bother to opt out)
21:02:34 <oerjan> Ngevd: lucky you won it back
21:02:49 <Ngevd> oerjan, nah, there're better prizes
21:03:21 -!- zzo38 has joined.
21:06:06 <Phantom_Hoover> Ngevd, like an A-level in General Studies!
21:06:09 <Phantom_Hoover> Whoops no that's worthless
21:06:40 <Ngevd> I fell asleep during the exam
21:06:45 <Ngevd> And now I will brb
21:07:30 * oerjan is irritated by windows update slowing his google searches to a halt.
21:08:07 <oerjan> which means i cannot find out which car brand they use for second prizes in jokes these days. (first prize: fruit basket)
21:08:30 <oerjan> also, in the uk.
21:09:36 -!- Ngevd has quit (Read error: Connection reset by peer).
21:09:44 -!- Ngevd has joined.
21:09:50 <oerjan> i guess tata nano or something
21:11:28 * oerjan puts his joke dissection scalpel in the ...dammit i'd have to google for that too
21:11:36 <Ngevd> Hello
21:11:57 <oerjan> autoclave
21:12:17 * oerjan actually remembered it without googling
21:12:53 -!- DeadlyFugu has joined.
21:13:28 -!- oerjan has set topic: We apologize for the recent topic change delay | http://codu.org/logs/_esoteric/.
21:15:32 -!- oerjan has quit (Quit: Ye olde reboot request).
21:18:35 <fizzie> We don't really have notable hills at WaveU, but that's all right; we don't have hills in the whole country either. (Okay, there's a hill-alike (an I-can't-believe-it's-not-a-hill?) but it's off to the side of most things; and there's a bit of an incline at the east-side sea-shore.)
21:19:32 -!- oerjan has joined.
21:20:25 <Phantom_Hoover> fizzie, aaaaand Finland is off the list of places to visit.
21:21:00 <fizzie> Phantom_Hoover: There's some hills up there in the north, but they're not much to speak of.
21:21:34 <itidus21> so im not the only one running windows
21:21:38 <oerjan> come to hilly norway
21:21:47 <oerjan> also chilly
21:22:16 <Phantom_Hoover> fizzie, OK, when we get rid of Sweden, maybe we can give you its hills?
21:22:27 <olsner> Sweden has hills?
21:22:30 <itidus21> come to australia, we have deserts, surf beaches, snow capped mountains, forests
21:22:31 <fizzie> oerjan: "c?hilly".
21:22:36 <fizzie> olsner: More than we do.
21:22:36 <Deewiant> I walk uphill every time I travel to and from school, I don't know what you're talking about.
21:23:35 <fizzie> Deewiant: I don't know what hill that is. I mean, there's a bit of a hump at the library, and then the hill-alike which I mentioned which is at the student village side, and I suppose there's some sort of a thing towards that water tower but who goes *there*?
21:24:00 <fizzie> Phantom_Hoover: I sure hope you've already discounted Denmark, though? http://satwcomic.com/highest-points
21:24:01 <Ngevd> And thus fizzie finds out exactly where Deewiant lives
21:24:31 <fizzie> Ngevd: I'd've assumed the student village, but he said he's in Helsinki somewhere.
21:24:53 <fizzie> Deewiant: Unless you mean "uphill" from the Lehtisaari side?
21:25:05 <Deewiant> I don't.
21:25:22 <Sgeo> Phantom_Hoover won't visit a place unless it has hills?
21:25:38 <Deewiant> Does walking up a long staircase from underground count as going uphill?
21:25:39 <Phantom_Hoover> Except in exceptional circumstances.
21:25:52 <Phantom_Hoover> No.
21:26:40 <Ngevd> There is a place in Hexham called "Windmill Hill"
21:27:01 <Ngevd> And another called "Causey hill"
21:27:20 <fizzie> Okay, now that I think of it, there is indeed some bumpiness near the Dipoli area there. It's just that my "grounds" (around the CS building) are rather flat.
21:27:25 <fizzie> It's mostly just parking places.
21:27:32 <Deewiant> The street I live on even has "mountain" in its name.
21:27:55 <Phantom_Hoover> Edinburgh has Seven Hills, but nobody can agree on what they are
21:28:14 <Ngevd> Like Rome and Istanbul!
21:28:47 <zzo38> But some people cannot agree on the splitting of the Ten Commandments either.
21:28:59 <fizzie> Deewiant: Vuorimiehenkatu? Punavuorenkatu? (I've lived there!) Okay, I'm just guessworking here.
21:29:57 <Deewiant> Going to iterate through all the possibilities? :-P
21:30:22 <fizzie> Deewiant: Not unless you're going to say #t to one.
21:30:47 <fizzie> When I was born we lived at Tarkk'ampujankatu, lit. "marksman's street", yet I (probably) can't shoot worth a thing.
21:31:19 <fizzie> That's marksman as in sharpshooter, I don't really know which term is proper.
21:32:03 -!- pikhq has joined.
21:32:43 <Phantom_Hoover> There's a street in Edinburgh called Princes street, which confuses everyone.
21:32:44 <Deewiant> And now you're on some kind of "flatland street" with no hills anywhere?
21:32:48 <fizzie> Deewiant: Korkeavuorenkatu? No, then you'd probably have said "high mountain" or something. Hmm.
21:33:00 -!- pikhq_ has quit (Ping timeout: 276 seconds).
21:33:29 <fizzie> Deewiant: No, actually I'm on a hill right now. Ohhhhh, were you protesting my "no hills in the country" statement instead of the "no hills at WaveU" one?
21:34:23 <Deewiant> Yes, that was mostly it. At least the economical WaveU has a bit of a hill going on, too, though.
21:34:47 <fizzie> I don't really mentally consider those WaveUs yet.
21:35:30 <Deewiant> And there is that dipoli business, although it's not particularly WaveU in my opinion.
21:36:05 <Phantom_Hoover> WaveU?
21:38:27 <fizzie> Deewiant: Where can I find a good topographical map? I want to know how high my hill is. Karttapaikka used to have different maps, but apparently no longer; there's contour lines but no labels in it. Espoo's map service doesn't have one either; nor Eniro.
21:38:44 <fizzie> There was some place, it even had heights of buildings and all.
21:38:51 <Deewiant> Google Earth?
21:38:54 <kallisti> where can I get a large volume of compositions in a machine-readable format including non-note annotations like legato, comments, etc
21:39:11 <fizzie> /usr/bin/googleearth: 14: /usr/lib/googleearth/googleearth-bin: not found
21:39:15 <fizzie> Whoops, it has borkened.
21:39:26 <kallisti> as well as performances of said compositions.
21:39:33 <Deewiant> fizzie: Google maps as well, evidently.
21:39:43 <Deewiant> Use the Cloud.
21:39:48 <kallisti> so that I can, say, analyze what happens when sheet music says "legato"
21:40:41 <fizzie> Deewiant: I don't know what that means. I know it has the "terrain" map, but can it also tell heights?
21:41:04 <Phantom_Hoover> Use that Minecraft scale model.
21:41:19 <Deewiant> I assumed it could but it seems as though not, after all.
21:41:45 <oerjan> @where faq
21:41:46 <lambdabot> http://www.haskell.org/haskellwiki/FAQ
21:41:49 <kallisti> distant future goal: write a Haskell program that accurately plays Gymnopedie No. 1 by Erik Satie, with the same style and pacing.
21:41:53 * oerjan just testing
21:41:58 <fizzie> Hey, that walk-and-bicycle reittiopas plots a height-graph for routes, I can try that. Though there are no roads over the top of the hill. :/
21:42:17 <Deewiant> fizzie: You can order one from maanmittauslaitos.fi.
21:43:12 <fizzie> Deewiant: "Yay." (Also, wasn't there a recent decision that Maanmittauslaitos can/has to release more map data freely starting from some-date-in-the-future?)
21:43:29 <Deewiant> Dunno.
21:44:06 <fizzie> Okay, the walk/bicycle route thing says I start from +38m, and then drop down to +2m (presumably from sea level) when going from home to WaveU.
21:44:11 <Deewiant> Do you have a GPS device?
21:44:50 <Deewiant> Well, I guess that's good enough.
21:45:01 <fizzie> It probably gets the order of magnitude right.
21:45:27 <fizzie> And I guess 40 metres counts as a hill. (The top is probably ten metres or so higher up still.)
21:46:33 <Deewiant> I'm only at +27m.
21:47:28 <Deewiant> And WaveU appears to be at +7m?
21:49:31 -!- Ngevd has quit (Quit: goodnight).
21:51:37 -!- DeadlyFugu has quit (Ping timeout: 252 seconds).
21:57:03 -!- Jafet has quit (Quit: Leaving.).
22:09:44 <fizzie> Deewiant: Munkkivuoren puistotie? Siltavuorenpenger? I'm grasping at straws here. (Sorry, had to empty a waiting laundry machine.)
22:10:13 <Deewiant> I hope you're checking that those are at +27m.
22:10:45 <fizzie> No, and I don't think e.g. Munkkivuoren puistotie is.
22:11:20 <fizzie> Or could it be just Vuorikatu? That'd be dastardly.
22:11:48 <Deewiant> Heh, sorry, I'm not that dastardly.
22:20:36 <fizzie> You mentioned the subway recently, maybe I should look near the stations; though sadly I don't know anything about the streets east of Sörnäinen. Vilhonvuorenkatu? Kulmavuorenkatu? Tupavuori? Sorsavuorenkatu? Vuorenpeikontie? (Yes, yes.) Roihuvuorentie? Oh no, the subway *branches*.
22:20:46 <fizzie> I'll be back to check the heights of all these when I have some free time.
22:21:53 <fizzie> Or maybe I'll just give up; what's the point of any of this, anyway?
22:22:12 <fizzie> In fact, why on earth are you making me do this? This is stupef. I quit.
22:22:18 <itidus21> you're an anorak
22:24:43 <fizzie> Isn't that some sort of a jacket?
22:25:25 <Deewiant> I submit that I wasn't making you do anything.
22:25:26 <itidus21> precisely
22:25:37 <fizzie> Implicitly.
22:25:42 <itidus21> oh hmm
22:25:50 <Deewiant> But I can give you your #t now.
22:26:12 <fizzie> Okay, then I'll feel justified in stopping.
22:26:31 <itidus21> an anorak is a term for someone who wears an anorak due to their fairly specific hobby
22:27:05 <itidus21> i think it is something llike going out to the piers with a shortwave radio and listening in on ships broadcasts
22:27:21 <itidus21> not entirely sure
22:27:40 <itidus21> i was getting them confused with trainspotters when i said it
22:28:33 <itidus21> ive probably muddled up my facts somewhere in it
22:29:05 <fizzie> Is this a global term or just something you do?
22:29:24 <fizzie> I mean, not "you" personally.
22:29:34 <fizzie> But a regional group of people.
22:29:36 <fizzie> Or something.
22:29:58 <fizzie> Apparently it is a well-established thing.
22:30:02 <fizzie> The more you know, I guess.
22:30:21 <fizzie> Should've followed the "Anorak (Slang)" disambig link when I was at the Anorak page the first time.
22:30:36 <fizzie> British slang, they say.
22:30:38 <zzo38> Is the "monoidal monad" article in Wikipedia, are the second and third formulas like a applicative functor (where the morphisms being equal is like pure = return)? Is there any relation to Cartesian closed categories?
22:31:14 * Phantom_Hoover → sleep
22:31:19 -!- Phantom_Hoover has quit (Quit: Leaving).
22:34:32 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
22:38:22 <zzo38> Does a Kleisli category have its own monads?
22:46:55 -!- cheater_ has quit (Quit: leaving).
22:57:15 -!- Patashu has joined.
22:58:40 <kallisti> !perl sub test {return (1,2);}; print test{1}
22:58:41 <EgoBot> 12
22:58:47 <kallisti> !perl sub test {return (1,2);}; print (test{1})
22:58:47 <EgoBot> 12
22:58:50 <kallisti> erm
22:58:59 <kallisti> !perl sub test {return (a=>b);}; print (test{a})
22:59:00 <EgoBot> ab
22:59:03 <kallisti> wat
22:59:15 <kallisti> !perl sub test {return (a=>b);}; print ((test){a})
22:59:16 <EgoBot> syntax error at /tmp/input.10384 line 1, near "){" \ Execution of /tmp/input.10384 aborted due to compilation errors.
23:01:50 <oerjan> :t Kleisli
23:01:51 <lambdabot> forall a (m :: * -> *) b. (a -> m b) -> Kleisli m a b
23:03:07 <oerjan> eta :: Kleisli m a (T a); mu :: Kleisli m (T (T a)) a
23:03:56 <oerjan> *eta :: Kleisli m a (T a); mu :: Kleisli m (T (T a)) (T a)
23:04:03 <oerjan> tha latter isomorphic to T (T a) -> m (T a)
23:04:34 <oerjan> and the former a -> m (T a)
23:04:54 <oerjan> which looks a bit like a transformer
23:05:21 <oerjan> zzo38: maybe monad transformers give monads in the kleisli category?
23:06:28 <oerjan> or maybe T itself just needs to be a monad
23:07:12 <oerjan> eta = return . return; mu = return . join
23:11:34 <zzo38> oerjan: I thought about that still I don't know
23:23:57 <kallisti> `perl @{undef}
23:24:01 <HackEgo> Can't open perl script "@{undef}": No such file or directory
23:24:06 <kallisti> !perl @{undef}
23:24:07 <EgoBot> No output.
23:24:32 <kallisti> !perl use strict; @{undef}
23:24:33 <EgoBot> Global symbol "@undef" requires explicit package name at /tmp/input.13293 line 1. \ Execution of /tmp/input.13293 aborted due to compilation errors.
23:24:37 <kallisti> oh lol
23:24:43 <kallisti> !perl use strict; @{+undef}
23:24:43 <EgoBot> Can't use an undefined value as an ARRAY reference at /tmp/input.13351 line 1.
23:25:31 <zzo38> I could probably still win the D&D game with only half as much power points.
23:27:08 -!- DeadlyFugu has joined.
23:32:36 <oerjan> <elliott> Sgeo: I'm rapidly becoming sure you don't understand how locks work <-- maybe he's actually a talking dog
23:32:59 <oerjan> hm elliott deficiency
23:33:05 <oerjan> no wonder it was silent
23:33:12 <oklofok> locks are used for closing something so so hard that you need a whole key to open it
23:33:49 <oklofok> that's what topology lacks
23:33:53 <oklofok> keys and locks :o
23:33:57 <oerjan> ic
23:34:09 <oklofok> you do?
23:37:43 <oerjan> i can confirm i don't recall any keys or locks in topology
23:42:17 <oklofok> math has been overwhelmingly awesome this week
23:42:22 <oklofok> it's scary
23:43:52 <oerjan> oklofok: the universe is probably balancing out the collapse of my ZipList monad definition
23:44:14 <oklofok> well i didn't say i've actually succeeded in anything
23:44:33 <oklofok> although sofar, i've managed to stick to my at least one result a day policy this year
23:49:55 <oklofok> although today's results were rather silly. but i may just have the awesomest conjecture
23:50:03 <oklofok> let X be a zero-entropy subshift
23:50:15 <oklofok> then X is totally disconnected in the Weyl topology
23:50:19 <oerjan> <Phantom_Hoover> Wow, a drug which is literally the mirror image of another drug by the same company. <-- someone should point out that mirroring organic molecules can give something with completely different effects.
23:51:27 <oklofok> where the distance of two points is given by for each n taking the n-block where they have maximal difference a_n, and then taking lim sup of a_n/n
23:52:03 <oklofok> this is not true for the related Besicovitch topology where instead of maximizing difference of n-blocks you take this at the origin
23:52:13 <oklofok> (note that the origin still doesn't actually play any sort of role)
23:52:31 -!- pikhq has quit (Ping timeout: 240 seconds).
23:52:36 <fizzie> oerjan: I was under the impression that didn't need to be pointed out due to obviousness.
23:52:40 -!- pikhq has joined.
23:53:44 <oerjan> fizzie: well the discussion sounded like people were assuming mirroring a drug was a trivial change
23:54:12 <oklofok> "mirroring organic molecules can give something with completely different effects." i don't even believe this so i don't think it's obvious
23:55:11 <oerjan> oklofok: well, it's true.
23:57:15 <oklofok> but WHY?
23:57:41 <fizzie> Because CHEMISTRY.
23:58:04 <oerjan> because nearly all cell machinery is built with only one handedness, and so only will interact with the handedness version they are evolved to interact with
23:58:12 <oerjan> *version of molecules
23:58:36 <oklofok> oh you didn't mean that EVERY molecule of the drug is flipped?
23:58:50 <oerjan> um yes.
23:59:06 <oklofok> well i mean
23:59:16 <oklofok> it's obvious that it will work differently on a human
23:59:32 <oklofok> but if you flip him
23:59:37 <oklofok> won't it be the same drug?
←2012-01-10 2012-01-11 2012-01-12→ ↑2012 ↑all