←2011-06-16 2011-06-17 2011-06-18→ ↑2011 ↑all
00:14:01 -!- Vorpal has quit (Ping timeout: 264 seconds).
00:14:59 -!- FireFly has quit (Quit: swatted to death).
00:23:02 -!- calamari has joined.
00:30:39 -!- calamari has left ("Leaving").
00:32:36 <Sgeo> Is it possible to make a statistical distribution (or some sort of statistical construct) that obeys Gambler's Fallacy?
00:33:45 <Sgeo> It's easier for me to vaguely invision with something discrete
00:34:37 <Sgeo> Would (1/2)^x work?
00:36:45 <Patashu> a markov chain is dependent on previous outcomes, right?
00:37:32 <Patashu> but yeah you'd scale p down after getting more 1s and up after getting more 0s
00:37:41 <Patashu> either looking at the latest streak or how many of each you've gotten since you started
00:39:12 <Sgeo> Hmm, I was thinking more of termination on failure. I kind of have death on my mind recently, and one chain of thought lead to that question
00:39:27 <Patashu> Termination on failure?
00:39:30 <Sgeo> (Someone from my graduating class died recently)
00:39:39 <Sgeo> Patashu, that is, if I get a 0, it's over
00:39:49 <Patashu> aah
00:39:55 <Patashu> it's the 'playing slots at vegas' distribution :)
00:41:44 <Patashu> so you want something like 'flip coins and +1 for heads -1 for tails, stop if you hit 0' and you want the average length it'll go for, hmm...
00:41:47 <Patashu> I know there's a distribution for that
00:42:33 <Sgeo> Not quite what I meant, to be honest, but close, I guess
00:42:33 <Patashu> try a markov chain?
00:43:08 <Patashu> well, there are a couple of similar takes like 'at X steps, what percentage of gamblers are at 0' and 'at X steps, what's the average money of a gambler'
00:45:32 <Patashu> http://en.wikipedia.org/wiki/Gambler's_ruin relevant
00:45:49 <Sgeo> Is it correct to say that I have a 50% chance of living to see half the people in my age group die?
00:46:07 <Patashu> Hmmm
00:46:11 <Patashu> Depends on the distribution of deaths
00:46:27 <Patashu> I think...
00:46:35 <CakeProphet> Sgeo: no
00:46:56 <Sgeo> CakeProphet, hm?
00:46:59 <Patashu> No, I think it is true
00:47:04 <Patashu> Consider the median of the distribution, whatever it is
00:47:14 <Patashu> Everyone above the median will have seen 50% of the people die
00:47:40 <CakeProphet> but that doesn't imply that they had a 50% chance of seeing 50% of the people die.
00:47:57 <Patashu> yes, but no matter how you slice it, 50% will live past the deaths of the other 50%
00:48:01 <Patashu> (going to assume no simultaneous deaths)
00:48:09 -!- oerjan has joined.
00:49:03 -!- pikhq_ has quit (Ping timeout: 244 seconds).
00:49:10 -!- pikhq has joined.
00:49:29 <CakeProphet> sure, if you simplify things, that makes sense. But I would say in this scenario that not everyone has equal likelihood of survival.
00:49:45 <Patashu> If you want to model gamblers, use this: http://en.wikipedia.org/wiki/Markov_chain You want a markov chain where at 0 you always stay at 0, and at any higher number you have a p chance of going up and a p chance of going down
00:49:56 <Patashu> Well, if not everyone has the same distribution of lifespan...we need to know what distributions people are using :9
00:49:59 <Patashu> Otherwise I can't say much aboutit
00:50:09 <CakeProphet> indeed
00:50:31 <CakeProphet> but yeah if you consider number of equally likely favorable outcomes / number of equally likely total outcomes
00:50:34 <CakeProphet> you would get .5
00:50:52 <CakeProphet> for that.
00:51:05 <Sgeo> Hmm, because by being healthier than aveage, it increases the individual's chances?
00:51:11 <Patashu> Yep
00:51:45 <Patashu> If I was guaranteed to be immortal I'd always see 50% of my generation die, which robs some other sod of that distinction (since I have a 0% chance of dying)
00:51:47 <CakeProphet> humans are much more complicated than numbers and such, there are a lot of factors to consider if you want to make any kind of realistic statement about the outcome of a person's life.
00:52:07 <Patashu> Can't you model human lifespan as a normal distribution reasonably well?
00:52:25 <CakeProphet> reasonably, I suppose
00:53:03 <CakeProphet> anyways, gotta run.
00:53:03 <Patashu> my intuition from 'introduction to statistics' is 'throw a normal distribution at it'
00:53:05 <Patashu> cya
00:53:35 <CakeProphet> Patashu: yes, that's what I was taught as well. But I doubt it's very accurate for lifespan, since that varies by environmental factors quite a bit.
00:53:48 <Patashu> what other kind of distribution is it likely to be?
00:53:55 <Sgeo> Improvements in medicine make certain causes of death less likely over time
00:54:22 <Sgeo> (Of course, that's not factoring in the possibility of antibiotics becoming ineffective)
00:54:27 <Patashu> it could be a negatively skewed normal distribution I suppose
00:54:37 <CakeProphet> I have no idea, I'm not a statistics person. :P -leaves-
00:59:37 <oerjan> <CakeProphet> why on earth does mueval give me "Exception: not a number" when I try to eval ['a'..'z']
00:59:42 <oerjan> what's the type of eval
01:01:42 <oerjan> @hoogle eval
01:01:43 <lambdabot> Control.Monad.RWS.Lazy evalRWS :: RWS r w s a -> r -> s -> (a, w)
01:01:43 <lambdabot> Control.Monad.RWS.Strict evalRWS :: RWS r w s a -> r -> s -> (a, w)
01:01:43 <lambdabot> Control.Monad.RWS.Lazy evalRWST :: Monad m => RWST r w s m a -> r -> s -> m (a, w)
01:01:47 <oerjan> bah
01:02:18 <oerjan> wtf why do people leave the moment before i want to respond to them
01:02:23 -!- zzo38 has quit (Quit: I think it is improper being immortal.).
01:04:30 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
01:28:48 -!- oerjan has quit (Quit: leaving).
01:30:54 -!- F has quit (Changing host).
01:30:54 -!- F has joined.
01:34:15 -!- cheater_ has quit (Ping timeout: 240 seconds).
01:36:32 -!- copumpkin has joined.
01:43:03 -!- pikhq_ has joined.
01:44:20 -!- pikhq has quit (Ping timeout: 244 seconds).
01:53:27 -!- elliott has joined.
01:54:07 <elliott> 00:45:49: <Sgeo> Is it correct to say that I have a 50% chance of living to see half the people in my age group die?
01:54:07 <lambdabot> elliott: You have 1 new message. '/msg lambdabot @messages' to read it.
01:54:10 <elliott> this log sure will be fun
01:54:16 <pikhq_> elliott: I thought you might like to know that today was the day of Dresden Codak's semimonthly update.
01:55:07 <elliott> pikhq_: Ha ha ha, I only follow comics which update at least once per day.
01:55:19 <elliott> (He says, noting that there was no Homestuck update today, and crying.)
01:55:31 <pikhq_> elliott: Then you don't follow SMBC? BLASPHEMER
01:56:24 <elliott> I'm on the internet, I see every SMBC without trying.
01:56:25 <Sgeo> SMBC doesn't update once a day?
01:56:49 <pikhq_> Sgeo: Oh, wait, it does. Thinko.
01:57:12 <pikhq_> elliott: Sorry, let's change that to something that actually has a non-daily schedule. :P
01:57:21 <pikhq_> elliott: Then you don't follow Dr. McNinja? BLASPHEMER
01:57:36 <Sgeo> You don't follow Bonobo Conspiracy?
01:57:55 <Sgeo> (Well, ok, there's nothing left to follow. Maybe in 5 years there'll be an update)
01:58:02 <elliott> Dr. McNinja looks like way too much initial investment for the payoff, to be perfectly honest.
01:58:39 <pikhq_> elliott: "Investment" implies you can not read it after a handful of pages.
01:59:36 <elliott> pikhq_: It implies I don't read any comic without reading the entire backlog.
01:59:43 <elliott> Unless it's Dinosaur Comics or something in which case it's totally irrelevant.
01:59:59 <pikhq_> elliott: No, I mean "You can't not finish once you start the backlog".
02:01:21 <elliott> I totally could.
02:01:37 <Sgeo> pikhq_, that's true for me with most things that have backlogs
02:01:48 <Sgeo> Except SBaHJ
02:02:17 <pikhq_> elliott: Irish ninja doctor comic. Why aren't you reading already?
02:02:18 <pikhq_> :P
02:02:42 <elliott> Sgeo: Uhh, SBaHJ is more addicting than Homestuck.
02:14:15 -!- foocraft has joined.
02:24:25 <elliott> "As a long time unix user, I don't have to figure out file types. If I see a binary file without an extension and I don't know what it might be, it is going off my system."
02:24:59 <monqy> what
02:25:29 <Sgeo> Does using file count as "not having to figure out file types"?
02:25:41 <Sgeo> Using file sounds sensible. Using extensions on UNIX less so
02:29:26 <Patashu> 'using file'?
02:29:44 <pikhq_> Patashu: file(1) performs heuristics to tell you information about what a given file is.
02:29:53 <Patashu> ah, handy
02:30:12 <Patashu> it's a big ball of knowledge about every file format's headers?
02:30:18 <pikhq_> Yup.
02:34:25 -!- pikhq has joined.
02:34:28 -!- pikhq_ has quit (Ping timeout: 246 seconds).
02:40:37 <Patashu> :lol: this is the best trojan ever http://www.symantec.com/connect/imagebrowser/view/image/1815391/_original
02:46:30 -!- Lymia has joined.
02:46:30 -!- Lymia has quit (Changing host).
02:46:30 -!- Lymia has joined.
02:55:58 -!- Behold has quit (Remote host closed the connection).
03:06:17 -!- Adamfyre has quit (Ping timeout: 260 seconds).
03:09:31 <Sgeo> elliott, elliott
03:09:59 <elliott> what
03:10:37 <Sgeo> Oh, you saw it
03:10:42 <Sgeo> Just saw your comment on Reddit
03:12:10 <Patashu> I find it hilarious that bitcoin is unencrypted by default
03:14:16 -!- Adamfyre has quit (Ping timeout: 240 seconds).
03:19:09 <elliott> Patashu: Eh?
03:19:20 <Patashu> which has a private key
03:19:23 <Patashu> sits unencrypted on your drive
03:19:32 <Patashu> rather than e.g. behind a symmetric key algorithm that takes a password
03:19:33 <elliott> Well, what is it going to be encrypted with? Another private key? :)
03:19:35 <elliott> :P
03:19:42 <elliott> (Joke.)
03:19:50 <Patashu> there's an algorithm that takes a password and spits out a symmetric key
03:19:56 <Patashu> put it into AES-256 or whatever
03:22:04 -!- Adamfyre has quit (Ping timeout: 252 seconds).
03:28:32 -!- pikhq has quit (Ping timeout: 240 seconds).
03:28:45 -!- pikhq has joined.
03:35:53 -!- Adamfyre has quit (Ping timeout: 240 seconds).
03:37:19 <elliott> pikhq: I was thinking that, with my revised needs mechanism, "c99 needs libs ..." should actually be "c99 libs ...", since it actually has special code now, rather than being part of a "generic" mechanism.
03:37:36 <elliott> (Despite that it's actually more flexible, but yeah, it's not straight "needs" any more, it postprocesses the output from the solver to translate the result into the right flags.)
03:38:13 <elliott> "This is one of the pitfalls of Ubuntu: it uses the command make for the same program that basically every other Unix-based OS calls gmake."
03:38:43 <coppro> uh... dude
03:38:50 <coppro> most Linux do that aiui
03:39:04 <elliott> coppro: When I quote things, it is because they are stupid.
03:39:11 <elliott> Usually.
03:39:15 <elliott> Unless they're awesome.
03:39:33 <monqy> what's the difference
03:40:32 <pikhq> Also, it is *entirely* reasonable to install GNU make as "make".
03:40:46 <pikhq> As, as far as I'm aware, it suffices as a POSIX make.
03:41:46 <pikhq> What do you want the distro makers to do, maintain a BSD make package as well?
03:47:09 -!- ralc has quit (Quit: Leaving).
03:56:37 -!- Adamfyre has quit (Ping timeout: 264 seconds).
04:00:04 <pikhq> "Okay, I guess that's it. The last HLE code in bsnes is now gone, and every special chip uses LLE."
04:00:07 <pikhq> :)
04:07:32 -!- Adamfyre has quit (Ping timeout: 252 seconds).
04:13:58 -!- DocHerrings has joined.
04:14:47 -!- hagb4rd has quit (Quit: hagb4rd).
04:16:24 <elliott> DocHerrings: doc, we need some herrings.
04:16:34 <DocHerrings> Anyone here any good with common lisp? I have a eodermdrome interpreter in its final stages and I just can't seem to find the problem?
04:16:50 <elliott> I've... written a few Common Lisp programs.
04:16:52 <DocHerrings> elliott: I'm a doctor, not a fisherman!
04:17:09 <elliott> Isn't the problem with Eodermdrome efficient implementation?
04:17:18 <DocHerrings> Hold on.. I will put it on pastebin. Beware, it's a bit if a beast.
04:17:19 <elliott> ISTR it's really slow done naively, but ais knows more than me.
04:18:06 <DocHerrings> elliott: I did it by implementing a hash mapping nodes to sets of connections. Seems to be working fine currently...
04:18:36 <elliott> How do you know? I only know of one publicly-posted Eodermdrome program, and it sounds like your implementation doesn't actually work yet :)
04:19:02 <elliott> Not doubting, just curious.
04:20:24 <DocHerrings> The fact is, the parts work. The program does not seem to. (It could be minor bugs I haven't traced yet).
04:21:02 <DocHerrings> http://pastebin.com/V7Qg0Pw9 Beware... I did not use comments. I kinda wrote it in a single session.
04:21:24 <DocHerrings> ^There you go, elliott. Good luck with it.
04:21:28 <elliott> I find the lack of empty lines more distressing :P
04:21:58 <elliott> DocHerrings: But, erm, "it doesn't work" is a bit non-specific.
04:22:07 <elliott> The program is non-trivial, so I don't even know where I'd start debugging it.
04:22:38 <DocHerrings> Well, here is the breakdown - it parses the file properly, and produced the correct graphs and mappings.
04:23:13 <DocHerrings> It also correctly detects input and all other prerequisites.
04:23:45 <elliott> But when running an actual program, ...?
04:24:06 <DocHerrings> BUT the example program fails miserably. All the code seems to be executed, but no changes to the internal graph are made
04:24:45 <elliott> DocHerrings: Bear in mind that it is completely untested...
04:25:08 <elliott> So it may be that the program is broken. It is likely, even.
04:25:23 <elliott> You might be able to pry a simpler example program out of ais523 here or on the wiki.
04:25:57 <DocHerrings> True, but by tracing the that section of code, I see something even worse - for some reason, the internal graph is not being altered - at all.
04:26:19 <elliott> Weird.
04:26:53 <elliott> DocHerrings: Perhaps you are expecting a functional operation to behave imperatively? i.e., you are transforming the graph into a new graph, but not actually _mutating_ it, and in the end just throwing it away.
04:27:01 <elliott> This is just a guess based on a cursory glance at your code, no actual evidence.
04:27:30 <DocHerrings> And I made one of my own - I simply reduced the graph to one node 'a', and then string down the alphabet, printing "Counting 1" etc. That does not work either.
04:27:37 <elliott> Hm.
04:28:11 <Sgeo> Maybe I should get back into CL
04:28:25 <DocHerrings> elliott: You will notice the gratuitous use of setf. Even if the function returns an object, as long as it is setf'ed, the changes stick.
04:28:42 <elliott> That's an odd way to put it, but sure.
04:28:58 <elliott> DocHerrings: Still, closed-nothings bugs me.
04:29:10 <elliott> For a start,
04:29:29 <elliott> you're discarding the result of a map, which means you should really use LOOP instead.
04:29:41 <elliott> Or, well, anything that isn't a map.
04:29:59 <elliott> Oh wait.
04:30:04 <elliott> maphash does not actually map.
04:30:09 <elliott> DocHerrings: "The consequences are unspecified if any attempt is made to add or remove an entry from the hash-table while a maphash is in progress, with two exceptions: the function can use can use setf of gethash to change the value part of the entry currently being processed, or it can use remhash to remove that entry.
04:30:09 <elliott> "
04:30:13 <elliott> This doesn't affect you, right?
04:30:45 <DocHerrings> No, the only time I use maphash, a local variable is the one being changed.
04:30:52 <elliott> Right.
04:31:37 <elliott> I dunno, it's weird.
04:31:54 <DocHerrings> Hmm... I am going to comment out the main loop, and execute the commands by hand. Maybe that will help.
04:32:25 <DocHerrings> And I badly need to clean and refactor this code anyways. It's a god-awful mess.
04:32:32 <elliott> It kind of is, yes.
04:32:53 <elliott> I diagnose this as the obvious result of not being written in Haskell. :p
04:33:30 <DocHerrings> Funny, I have written in Haskell. Playing around with Clean now.
04:34:10 <elliott> Clean is interesting, although I'm not convinced that uniqueness types are useful enough to justify the added complexity to the type system and language.
04:34:26 <elliott> (Apart from that, of course, it's mostly a carbon copy of Haskell-98 with some weirdness.)
04:34:41 -!- kwertii has joined.
04:35:24 <pikhq> Yeah, I find that monads are a more natural abstraction to apply to sequencing IO than uniqueness typing.
04:35:31 <pikhq> Interesting idea, though.
04:35:44 <elliott> Well I don't know about that.
04:36:17 <elliott> But two different ways of modelling imperative IO semantics are... hard to compare because the end result is practically the same.
04:36:26 <pikhq> It's a heavily subjective thing.
04:36:30 <elliott> The question is whether uniqueness types are fun for anything else.
04:36:37 <DocHerrings> Ahahah, okay, now I know I need to re-do part of this.
04:37:00 <DocHerrings> Seems my state-machine/regexp code hates the letter a.
04:37:07 <elliott> wat
04:37:16 <elliott> I diagnose your code with wat. It is terminal.
04:37:23 <elliott> I am so, so sorry.
04:38:14 <copumpkin> man, terminal code is a pain
04:38:15 <copumpkin> I prefer initial
04:38:16 <DocHerrings> Since I didn't feel like getting a regexp library involved with what was already a trainwreak, I wrote a state machine to parse the input.
04:38:32 <DocHerrings> Not simple, and nicely esoteric.
04:39:14 <elliott> If your first thought for an Actual Parsing Library is dragging regexps in, then you have a problem and it's a good thing you were too lazy :P
04:40:38 <DocHerrings> Well, I found the problem.
04:40:46 -!- oerjan has joined.
04:40:55 <elliott> "It was the (if letter-is-a (break-randomly)) line."
04:41:00 <elliott> hi oerjan your eodermdrome program MIGHT be broken MIGHT
04:41:13 <DocHerrings> Working on it.
04:41:21 <oerjan> AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
04:41:53 <DocHerrings> No, seems the code failed miserably when the match or replacement subgraph was of length 1. gotta go fix that.
04:42:00 <oerjan> i shall have to ban DocHerrings for this
04:42:10 <DocHerrings> ?
04:42:39 <oerjan> FOR SULLYING MY PRISTINE PROGRAM WITH ACTUAL BUG CHECKING
04:43:08 <DocHerrings> Whoah whoa WHOAH. Slow down there! The your pristine program might still work, your majesty!
04:43:24 <DocHerrings> The implimentation is a bit broken.
04:43:32 <elliott> the your pristine program
04:43:32 <oerjan> O KAY. WE'LL POSTPONE THE OFF WITH YOUR HEAD, THEN
04:44:20 <DocHerrings> elliott: this is what I get for not sleeping, okay? :p
04:45:26 <pikhq> Bah, sleep is for mortals.
04:46:21 <elliott> DocHerrings: talking to a person who operates on average 0 sleep/day
04:46:55 <pikhq> elliott: I thought you averaged higher than that, but that the mode was 0.
04:51:46 <elliott> its ok oerjan i will give you a hug
04:51:46 <elliott> btw
04:51:47 <elliott> by "eval"
04:51:50 <elliott> i think CakeProphet just meant >
04:51:51 <elliott> not a function
04:51:53 <elliott> u r dum lol
04:51:55 <elliott> > ['a'..'z']
04:51:55 <lambdabot> "abcdefghijklmnopqrstuvwxyz"
04:51:58 <elliott> oh
04:52:07 <oerjan> elliott: oh
04:52:14 <elliott> but still it might have been in a repl or w / e
04:52:46 <Lymia> > sum ['a'..'z']
04:52:46 <lambdabot> No instance for (GHC.Num.Num GHC.Types.Char)
04:52:46 <lambdabot> arising from a use of `Data...
04:52:53 <Lymia> Insanity, go... aww
04:52:59 <Lymia> > sum [0..]
04:53:30 <Lymia> > sum \$ map (\x -> x * x) [0..]
04:53:37 <oerjan> elliott: i was imagining he was trying some eval "['a'..'z']" which defaulted to Integer
04:53:39 <lambdabot> mueval-core: Time limit exceeded
04:54:29 <oerjan> Lymia: sum is indeed a strict function
04:54:31 <oerjan> @src sum
04:54:32 <lambdabot> sum = foldl (+) 0
04:54:44 <copumpkin> is it!
04:54:45 <Lymia> Lymia is not a he.
04:55:00 <oerjan> Lymia: i was referring to CakeProphet
04:55:06 <Lymia> Oh.
04:55:28 <copumpkin> well, at least we know that Lymia is not a he now
04:55:45 <copumpkin> note that this does not necessarily mean that Lymia is a she, though
04:55:52 <Lymia> That is correct.
04:56:12 <oerjan> yes. confer a certain soupy, faxy dragon pig
04:56:39 <copumpkin> wait, a new one?
04:57:07 <elliott> hmm, sum [0..] :: LazyNat is _|_, gross
04:57:08 <oerjan> well i don't _think_ Lymia is fax etc.
04:57:25 <elliott> hasn't Lymia not being a he been established for months
04:57:29 <elliott> or was that in -minecraft
04:57:33 <Lymia> Dunno.
04:57:35 <elliott> ("A he": best terminology?)
04:57:41 <oerjan> well i did notice it a while ago
04:57:59 <Lymia> I thought oerjan was referring to me, considering the whole "defaulted to Integer" clause.
04:58:20 <Lymia> > foldl (++) ['a'..'z']
04:58:22 <lambdabot> Overlapping instances for GHC.Show.Show
04:58:22 <lambdabot> ([[GHC...
04:59:03 <Lymia> > foldl (/x -> show \$ ++) ['a'..'z']
04:59:04 <lambdabot> <no location info>: parse error on input `->'
04:59:15 <Lymia> > foldl (\x -> show \$ ++) ['a'..'z']
04:59:16 <lambdabot> <no location info>: parse error on input `++'
04:59:18 <oerjan> Lymia: missing argument on the first one
04:59:30 <Lymia> oerjan, ?
04:59:42 <oerjan> Lymia: foldl takes 3 args
04:59:53 <copumpkin> or more!
05:00:07 <DocHerrings> Alright, problem found. Well check back in when I have everything done. Then oerjan can have proof of his pristine program.
05:00:09 <Lymia> :t foldl
05:00:11 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> a
05:00:14 <oerjan> as for the parse, sections can only have arguments of higher (or sometimes equal precedence)
05:00:27 -!- DocHerrings has quit (Quit: ChatZilla 0.9.87 [Firefox 4.0.1/20110413222027]).
05:00:34 <oerjan> oh wait
05:00:51 <Lymia> > foldl (\x y -> show \$ ++ x y) "" ['a'..'z']
05:00:52 <lambdabot> <no location info>: parse error on input `++'
05:00:59 <Lymia> > foldl (\x y -> show \$ x ++ y) "" ['a'..'z']
05:00:59 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
05:01:00 <lambdabot> against inferred ty...
05:01:12 <Lymia> > foldl (\x y -> show \$ (show x) ++ (show y)) "" ['a'..'z']
05:01:12 <oerjan> what do you want the show for
05:01:16 <lambdabot> mueval-core: Time limit exceeded
05:01:17 <Lymia> Uh..
05:01:18 <Lymia> Dunno.
05:01:32 <oerjan> hm
05:01:33 <Lymia> > foldl (\x y -> x ++ y) "" ['a'..'z']
05:01:34 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
05:01:34 <lambdabot> against inferred ty...
05:01:37 <Lymia> Right
05:01:39 <Lymia> Char!=String
05:01:39 <oerjan> > foldl (\x y -> show \$ (show x) ++ (show y)) "" ['a'..'z']
05:01:41 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\...
05:01:55 <Lymia> > foldl (\x y -> x ++ \$ show y) "" ['a'..'z']
05:01:56 <lambdabot> <no location info>: parse error on input `\$'
05:01:57 <oerjan> not all timeouts are for infinite looping
05:02:04 <Lymia> > foldl (\x y -> x ++ (show y)) "" ['a'..'z']
05:02:06 <lambdabot> "'a''b''c''d''e''f''g''h''i''j''k''l''m''n''o''p''q''r''s''t''u''v''w''x''y...
05:02:46 <copumpkin> > fix show
05:02:47 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\...
05:03:02 <copumpkin> > map length . group . fix \$ show
05:03:10 <lambdabot> [1
05:03:44 <copumpkin> > take 5 . map length . group . fix \$ show
05:03:45 <elliott> wat
05:03:46 <lambdabot> [1,1,1,3,1]
05:03:51 <elliott> wat
05:03:55 <copumpkin> > take 10 . map length . group . fix \$ show
05:03:57 <lambdabot> [1,1,1,3,1,7,1,15,1,31]
05:04:02 <elliott> > map length . group . fix \$ show
05:04:06 <lambdabot> mueval-core: Time limit exceeded
05:04:09 <elliott> heh
05:04:12 <copumpkin> > take 10 . filter (/= 1) . map length . group . fix \$ show
05:04:14 <lambdabot> [3,7,15,31,63,127,255,511,1023,2047]
05:04:30 <oerjan> copumpkin: the \ groups go as 2^n-1
05:04:38 <copumpkin> yep
05:04:52 <copumpkin> I'm mostly puzzled wtf is wrong with lambdabot
05:04:55 <copumpkin> that [1
05:05:18 <oerjan> > map length . group . fix \$ show
05:05:24 <lambdabot> mueval-core: Time limit exceeded
05:05:25 <lambdabot> mueval: ExitFailure 1
05:05:33 <oerjan> yes that was weird
05:05:49 <oerjan> lambdabot seems to have many possible failure modes for too long computations
05:06:01 <copumpkin> yeah, but normally it'll lazily produce some of that list
05:06:13 <copumpkin> more than the first element, at least
05:06:29 <oerjan> copumpkin: not if it times out before producing a whole line, does it?
05:06:46 <oerjan> hm
05:06:50 <copumpkin> oerjan: maybe not, but it's weird that it spat out [1 before
05:06:54 <oerjan> yes
05:07:37 <oerjan> i mean if it reaches an exception it does spit out what came before, but i don't think it does that with timeout
05:07:43 <pikhq> "ESTNE VOLVMEN IN TOGA, AN SOLVM TIBI LIBET ME VIDERE" This is a real phrase from a (presumably phrase) book on Latin.
05:07:47 <pikhq> Meaning "Is that a scroll in your toga, or are you just happy to see me?"
05:08:10 <elliott> :D
05:08:13 <elliott> how old
05:09:07 <oerjan> oh the previous mueval version has haddock
05:09:15 <pikhq> No idea; the quote came to me by way of Omniglot.
05:09:39 <oerjan> pikhq: sounds a bit familiar
05:11:06 <oerjan> eval :: MonadInterpreter m => String -> m String
05:11:10 <elliott> no shit sherlock :P
05:11:12 <pikhq> oerjan: "Is that a pistol in your pocket, or are you just glad to see me?" is an extraördinarily well-known, oft slightly mis-quoted, oft referenced quip by the actress Mae West.
05:11:28 <oerjan> pikhq: i mean the actual latin you dolt
05:12:09 <oerjan> i'm sure there's a list of several of them
05:12:23 <pikhq> Ah. Yeah.
05:14:16 -!- foocraft has quit (Quit: if you're going....to san. fran. cisco!!!).
05:17:27 -!- wareya has quit (Read error: Operation timed out).
05:19:38 <pikhq> "Serbia includes the Bosnian language as an elective subject in primary schools."
05:19:41 <pikhq> That is comical.
05:20:01 <pikhq> That would be like America including the Canadian language as an elective subject.
05:20:13 <elliott> i don't know what you mean eh
05:20:30 * oerjan beats pikhq on the head with a Nynorsk dictionary
05:20:34 -!- rodgort has quit (Read error: Operation timed out).
05:21:09 <pikhq> elliott: Serbian/Croatian/Bosnian/Montenegrin/Standard Serbo-Croatian is a pluricentric language with a multitude of names for nationalist reasons.
05:21:32 <elliott> how ridiculous, eh
05:21:41 <coppro> isn't it more likely to just be classes on how to insult bosnians?
05:21:43 <pikhq> oerjan: At least Nynorsk and Bokmål *possess* differences.
05:21:44 <elliott> i'm going to go and get some syrup from a tree, or whatever it is canadians do all day, eh
05:21:50 <elliott> coppro: a fellow canadian
05:21:51 <elliott> coppro: eh
05:22:14 <coppro> goodnight, eh?
05:22:27 <elliott> coppro: eh
05:24:46 <pikhq> oerjan: The differences between the different Serbo-Croatian "languages" are best compared to "color" vs. "colour" type spelling differences.
05:25:45 <oerjan> except for the shooting at people who say "colour"
05:25:47 <pikhq> (okay, so you *can* write "Serbian" text that a speaker of "Croatian" can't read, but that's only because Croatian only uses Latin script)
05:26:02 <pikhq> oerjan: I did say it was for nationalist reasons, did I not?
05:26:14 <pikhq> Unlike US vs. UK spelling, which is for hysterical raisins.
05:26:35 <oerjan> yes, yes. iiuc the differences where hastily introduced after the wars started...
05:26:51 <pikhq> Yup.
05:27:59 <coppro> lol
05:28:26 <elliott> just like canadian english eh
05:28:27 <elliott> coppro: eh
05:28:28 <elliott> coppro: eh
05:29:43 <pikhq> I'm not sure it's even meaningful to say "Canadian English".
05:30:29 <elliott> eh
05:30:30 <elliott> eh
05:30:34 <elliott> syrup from trees
05:30:35 <elliott> bears in snow
05:30:35 <elliott> eh
05:30:36 <elliott> eh
05:32:00 <oerjan> syrup from bears in snow, check
05:32:29 -!- rodgort has joined.
05:32:54 -!- rodgort has quit (Client Quit).
05:34:11 -!- rodgort has joined.
05:34:14 <CakeProphet> so I was thinking it would interesting to make a language that was both high level and low level.
05:34:18 <CakeProphet> almost as two sublanguages.
05:34:23 <CakeProphet> that can interact with one another.
05:34:36 <CakeProphet> so you can write efficient code or you can write abstract code.
05:34:59 <pikhq> CakeProphet: We call it "Haskell".
05:36:30 <CakeProphet> well, as an alternative to Haskell.
05:36:38 -!- pikhq_ has joined.
05:39:33 -!- pikhq has quit (Ping timeout: 250 seconds).
05:42:12 <CakeProphet> I could see using Python's with statement to write monadic code... but I'm not entirely sure.
05:43:07 -!- kwertii has quit (Quit: bye).
05:44:19 <Lymia> pikhq_, now all we need is Haskell with a builtin C-like language.
05:46:58 <elliott> (he says, despite thinking pikhq_'s original statement a bit rich)
05:49:25 <CakeProphet> would an interpreter in Haskell be reasonable if you're concerned with performance?
05:49:40 <pikhq_> elliott: Only mild hyperbole.
05:50:06 <elliott> CakeProphet: If you're good at Haskell, of course :-)
05:50:19 <elliott> Shiro is... faster than pyfunge :P
05:50:21 <pikhq_> Lymia: If you were mildly crazy, you could probably implement C in Template Haskell.
05:50:26 <elliott> (It was faster before I refactored the code.)
05:50:45 <CakeProphet> pikhq_: mildly crazy, you say? :D
05:50:55 <elliott> CakeProphet: I mean, obviously you need to have some kind of intuition about the performance characteristics of Haskell structures and code which are very different to most languages.
05:51:00 <elliott> But yes, Haskell interpreters can be very fast.
05:51:25 <elliott> Also I feel like linking to:
05:51:26 <elliott> http://augustss.blogspot.com/2009/02/more-basic-not-that-anybody-should-care.html
05:51:28 <pikhq_> Lymia: Without doing crazy implementations of things C assumes; you could just translate pointer semantics directly.
05:51:35 <elliott> which is an embedded BASIC DSL in Haskell that uses LLVM to produce BLAAAZING fast code.
05:51:43 <elliott> You could easily do that with... a less perverse language.
05:51:52 <Lymia> Wow.
05:51:54 <elliott> Like, one that doesn't use horrific syntactic tricks.
05:52:16 <CakeProphet> elliott: so you mean Perl? :3
05:52:19 <Lymia> elliott, I thought a rough ordering of language speed goes something like this [C,C++]>[Java,C#,Haskell]->[Python,Perl,Ruby]
05:52:25 <elliott> CakeProphet: ...
05:52:33 <elliott> Lymia: Languages don't have speeds.
05:52:42 <elliott> Implementations have speeds (except they don't really).
05:52:55 <CakeProphet> processors have speed?
05:52:57 <pikhq_> Lymia: Languages don't have speeds, code has speeds, and implementations might affect this.
05:53:04 <elliott> Yes, this matters, because the world is not always "C is the fastest language, lol, everything else is slower".
05:53:10 <elliott> C was probably not very fast on a Lisp Machine, for instance.
05:53:42 <Lymia> s/language speed/speed of your typical implementation/
05:53:51 <CakeProphet> or The Analytic Engine.
05:53:52 <elliott> On a typical Intel processor and Unix?
05:54:05 <Lymia> s/language speed/speed of your typical implementation on a typical Intel processor and Unix/
05:54:11 <pikhq_> Lymia: Implementations don't *have* speeds, they can only affect speeds.
05:54:25 <elliott> Lymia: It's possible to write Haskell code as fast as C code that performs the same task, naturally. It might be a pain -- but you can get within the same order of magnitude without too much fuss.
05:54:34 <CakeProphet> ITC: pedanticism
05:54:51 <elliott> CakeProphet: It's kind of relevant, because "C and C++ are fast" is a persistent, idiotic myth.
05:54:55 <elliott> Although I think pikhq_ is taking it a bit too far.
05:54:58 <pikhq_> Lymia: A completely moronic algorithm in C will probably get beat by a good algorithm in, say, Brainfuck.
05:55:07 <Lymia> pikhq_, of course.
05:55:20 <elliott> What we're measuring is "the same algorithm, implemented in an idiomatic-to-mildly-optimised style, compiled by an implementation with full optimisation settings"
05:55:25 <elliott> Lymia: Comparing against OCaml is probably worthwhile.
05:55:33 <Lymia> But it's useless to compare apples to grapes.
05:55:40 <elliott> Lymia: Typical OCaml code will be faster than typical Haskell code, most likely.
05:55:48 <Lymia> I should look into that language.
05:55:49 <Lymia> :)
05:55:50 <elliott> But Haskell code can easily be as fast as typical OCaml code.
05:55:53 <elliott> Lymia: What, OCaml?
05:55:58 <Lymia> Yeah.
05:56:00 <elliott> Don't, it's fairly rubbish with only a few nice features.
05:56:15 * CakeProphet is planning some ridiculous language shit.
05:56:23 <elliott> The ML module system, and some of the structural typing is nice, but the toolchain and library ecosystem SUCKS SUCKS SUCKS, and the strictness is annoying.
05:56:30 <elliott> Plus the type system is fairly weak and some of the syntax is really grating.
05:56:33 <elliott> Also it's impure.
05:56:56 <pikhq_> elliott: The issue is, of course, that this is rarely a good comparison. Some languages make it much easier to write smarter code than others, so it's not that common that you can do a comparison of the same algorithm in multiple languages to each other.
05:57:11 <elliott> pikhq_: Yeah yeah yeah it is not helpful to pedant a question to the point of unanswerability.
05:57:31 <elliott> Lymia: Anyway, my assessment is: You can get a Haskell program within the same order of magnitude or two as a C program doing the same thing without /too/ much fuss (although it'll require hand optimisation).
05:57:42 <elliott> Thankfully, most of the time you simply don't need this.
05:57:48 <elliott> Lymia: And certain types of code will be _really_ fast without any work.
05:58:00 <pikhq_> elliott: My point is that the question *is basically meaningless*, so yes, it is helpful. :P
05:58:04 <elliott> Lymia: For instance, fusion means that array-transforming and iterating operations with some of the popular libraries will be RIDICULOUSLY fast.
05:58:13 <Lymia> Not really that surprising.
05:58:17 <elliott> Automatically vectorised, parallelised, fused, etc.
05:58:56 <elliott> Lymia: And this is probably more relevant than whole-program performance: it means that you can write simple, functional compositions of combinators to do a certain, atomic task in an easy-to-write way, and it'll compile to a fast tight loop.
05:59:04 <elliott> Which, if you use it a lot, will help a ton.
05:59:21 <Lymia> Basically, "Haskell is way easier to optimize than C"
05:59:21 <Lymia> =p
05:59:31 <elliott> I dunno about that.
05:59:44 <elliott> Some things get automatically optimised with no work for you, and are basically the best you'll get.
05:59:48 <elliott> And strictness annotations always help.
05:59:49 <pikhq_> I dunno, it's certainly easier to microöptimize C.
05:59:55 <elliott> But C code is usually easier to microoptimise, yes.
06:00:17 <Lymia> elliott, Haskell ensures that a function call with the same parameters would have the same result, right?
06:00:34 <elliott> Lymia: It's not so much "ensures" as "there is no way to violate that from the language definition".
06:00:47 <Lymia> Heh.
06:00:48 <elliott> Lymia: Exercise: Write a lambda calculus function that returns a different result given identical arguments at different times.
06:00:55 <elliott> You can't, but not because of any specific law preventing it.
06:01:05 <elliott> Lymia: Of course unsafePerformIO and unsafeCoerce and all hosts of horrible things violate this.
06:01:12 <elliott> But if you use them you better know what you're doing.
06:01:33 <Lymia> Doesn't that go for almost all features explicitly called "unsafe" in any language?
06:01:36 <elliott> Exposing such non-referentially-transparent things outside of an internal module implementation is a crime worthy of death.
06:01:39 <elliott> Lymia: Yes.
06:01:40 <pikhq_> The compiler *will* assume that the function remains pure, and if you break that assumption you can keep both pieces.
06:01:44 <CakeProphet> could the FFI be used to violate that principle of Haskell?
06:01:47 <elliott> pikhq_: It's not quite that bad.
06:02:00 <elliott> Hmm, I guess unsafeCoerce is actually referentially transparent
06:02:04 <elliott> Oh, hmm, maybe
06:02:08 <pikhq_> CakeProphet: The FFI *contains* unsafeCoerce.
06:02:11 <elliott> If you cast something in a way that lets you get at its pointer then no.
06:02:26 <elliott> CakeProphet: Yes, but if you do it you'll know you've done it.
06:02:51 <CakeProphet> elliott: ...I would hope so.
06:03:12 <elliott> CakeProphet: And if you expose that impurity from a public module without big warning signs:
06:03:15 <elliott> TA: kiind of liike wiith regii2tered 2ex offender2 and 2chool2.
06:03:15 <elliott> TA: iif you move two a new town you have two go up two your neiighbor2 door and warn them about how 2tupiid you are.
06:03:16 <elliott> TA: and giive them a chance two hiide all theiir iinnocent technology.
06:03:16 <elliott> TA: and vandaliize your hou2e.
06:03:20 <elliott> (ANY EXCUSE TO USE THAT QUOTE)
06:03:23 <elliott> (ANY EXCUSE)
06:03:53 <pikhq_> Lymia: One of the things that *really* helps with Haskell is that it's rather easy to write reasonable parallel code.
06:04:02 <Lymia> pikhq_, can't you automate that?
06:04:07 <elliott> no.
06:04:11 <elliott> not unless you're a researcher.
06:04:17 <pikhq_> Open problem.
06:04:21 <elliott> and even then, no, not always, just no.
06:04:25 <elliott> don't even think about it. stop. stop that thinking.
06:04:40 <Lymia> why
06:05:04 <elliott> stop
06:05:39 <CakeProphet> yeah, my dual core processor is going to be able to take advantage of all that parallel code, while running other processes at the same time.
06:06:11 <pikhq_> CakeProphet: Your processors are idling 90% of the time.
06:06:31 <elliott> >implying dual core processors will even exist in consumer computers in a few years
06:06:50 <CakeProphet> now, some /algorithms/ can be sped up by parallelism, I think.
06:06:52 <elliott> "Dumb" automatic parallelisation would probably work in a N-core graph reduction machine where N is ridiculously large (like, at least sixty-four), mind you.
06:06:57 <CakeProphet> or potentially sped up
06:07:00 <elliott> CakeProphet: What do you even mean by that?
06:07:31 <pikhq_> And, yeah, the core count is going to go up until either we hit physical limits or we fuck up human civilization enough to stop chip manufacturing.
06:07:32 <CakeProphet> well, nevermind. it basically still relies on how many processors there are.
06:07:47 <Lymia> elliott, the standard library can be paralleled without the code being aware of it, no?
06:08:10 <elliott> Lymia: It would usually be a net loss.
06:08:21 <elliott> You don't want every map of a hundred-element list to involve bulky thread spawning code.
06:08:25 <elliott> That is Stupid.
06:08:37 <pikhq_> Lymia: The trick is to do parallel code that is faster than sequential code, not just doing parallel code.
06:08:54 <oerjan> <elliott> You can't, but not because of any specific law preventing it. <-- you _might_ say it's because of confluence
06:08:57 <Lymia> elliott, good point.
06:08:57 <Lymia> =p
06:09:15 <pikhq_> Even Haskell's really ubergood threading stuff doesn't make `par` free.
06:09:22 <elliott> oerjan: that's not really an explicit Law, though
06:09:24 <elliott> it's just a consequence
06:10:33 -!- zzo38 has joined.
06:10:36 <zzo38> "This statement is either false or paradoxical."
06:11:37 <Lymia> Nonsense.
06:11:56 <elliott> boy howdy, I sure wish the liar's paradox was still interesting
06:12:02 <Lymia> Besides
06:12:14 <Lymia> There's a easy escape clause to that.
06:12:47 <Patashu> This sentence is uninteresting.
06:13:03 <elliott> your MOM is uninteresting lmao
06:13:12 <elliott> im: the funniest?
06:13:15 <zzo38> Epimenides of Crete says: "All Cretans are liars." But first he put all the other Cretans in a box and made an experiment like Schrodinger's Cat.
06:13:15 <elliott> (im the funniest.)
06:16:49 <zzo38> "You do not know how to prove this statement."
06:17:50 <Patashu> Isn't making a sentence that starts 'this sentence' like trying to use an object's variables before the constructor finishes?
06:18:18 <zzo38> Patashu: Maybe it is something like that.
06:18:50 -!- zzo38 has set topic: Rule #1: Ignore Rule #2. Rule #2: Ignore Rule #3. ... Rule \$n\$: Ignore Rule \$n+1\$. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
06:18:55 <Patashu> lol
06:19:06 <Lymia> Patashu, yes.
06:19:16 <elliott> zzo38: hi asie
06:19:58 <zzo38> elliott: Can you elaborate on that please?
06:20:03 <elliott> maybe
06:20:03 <pikhq_> "Fuck you".
06:20:07 <elliott> zzo38: can YOU????
06:20:20 <zzo38> elliott: I don't know.
06:20:32 -!- Lymia has set topic: Rule #1: Follow all rules. Rule #2: Ignore all rules 2*x where x is any positive integer. ... Rule \$n\$: Ignore all rules \$n\$*x where x is any positive integer. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
06:20:47 <elliott> zzo38: Try. And see if you can! Else, then maybe you can not.
06:20:49 <Lymia> Wait...
06:20:50 <elliott> But try.
06:20:54 <zzo38> OK.
06:21:05 -!- Lymia has set topic: Rule #1: Follow all rules. Rule #2: Ignore all rules 2*x where x is any integer greater than 1. ... Rule \$n\$: Ignore all rules \$n\$*x where x is any integer greater than 1. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
06:24:00 <elliott> im a tired
06:24:17 <Lymia> Your challenge is to figure out the end result of this rule.
06:24:22 <elliott> no
06:25:58 <pikhq_> "Fuck off and die in a fire"
06:26:32 <elliott> pikhq_: great temper A+
06:28:24 <Patashu> how does this rule system work
06:28:25 -!- zzo38 has quit (Quit: ERROR: CPU TEMPERATURE IS A NONREAL NUMBER).
06:28:38 <Patashu> do I apply a rule only once, or make sure it's always being held after each rule application?
06:28:51 <Patashu> if it's the latter then I can't ignore a rule if I'm told to follow 'em all
06:29:19 <Patashu> o
06:32:19 <oerjan> inconsistent ruleset is inconsistent
06:39:07 <elliott> hey oerjan
06:39:12 <elliott> *Main> let nine = fromInteger 9 :: Sym in runSym (nine == nine) :: Expr
06:39:12 <elliott> Fun "==" [Con 9,Con 9]
06:39:16 <elliott> im breaking rules
06:40:11 <Patashu> lol
06:40:22 <Patashu> idk what's going on!!
06:40:38 <elliott> Patashu: evil
06:42:13 <oerjan> elliott: erm that fromInteger is redundant
06:42:25 <elliott> oerjan: oh indeed
06:42:26 <elliott> *Main> runSym (fromIntegral (fromEnum (nine + nine == nine)) == nine) :: Expr
06:42:26 <elliott> Fun "(==)" [Con *** Exception: SymException (Fun "(==)" [Fun "(+)" [Con 9,Con 9],Con 9])
06:42:28 <elliott> oerjan: darn, so close
06:42:36 <elliott> scared yet? :D
06:42:53 <Patashu> wat
06:44:41 <oerjan> ok that _is_ a bit scary
06:44:52 <oerjan> you are not hiding Prelude functions are you?
06:45:02 <elliott> oerjan: nope (well, catch, to use Control.Exception's)
06:45:11 <elliott> runSym :: (Show e, Typeable e, Show a, Typeable a) => e -> a
06:45:11 <elliott> runSym x = unsafePerformIO \$ eval x `catch` \(SymException r) -> return r
06:45:11 <elliott> where eval x = do r <- evaluate x
06:45:11 <elliott> throw (SymException r)
06:45:13 <elliott> this is the magic sauce
06:45:34 <elliott> (if you try and use it as the wrong type it will cause a runtime exception by failing to catch the exception)
06:45:37 <elliott> (this scares even me...)
06:45:46 <elliott> oerjan: basically I'm making a _real_ damn symbolic package :D
06:45:52 <elliott> exception-oriented programming
06:46:32 <oerjan> oh right, it's not _actually_ returning anything from fromEnum
06:46:39 <elliott> *Main> runSym (fromEnum (nine + nine == nine)) :: Expr
06:46:39 <elliott> Fun "(==)" [Fun "(+)" [Con 9,Con 9],Con 9]
06:46:46 <elliott> lol, I like how the fromEnum just gets ignored, yeah
06:46:54 <elliott> I guess I will not be able to support that, unfortunately
06:48:25 <oerjan> wait catch is a Prelude function?
06:48:31 <Deewiant> Yes
06:48:32 <oerjan> :t Prelude.catch
06:48:35 <lambdabot> forall a. IO a -> (IOError -> IO a) -> IO a
06:48:45 <olsner> (sweet, finally some on-topic discussion in here!)
06:48:57 <elliott> hmm, darn, I forgot that
06:49:00 <elliott> class (Show a, Typeable a) => Sym a
06:49:03 <elliott> doesn't really work to bundle constraints
06:49:05 <oerjan> olsner: there was eodermdrome earlier
06:50:13 <oerjan> elliott: it doesn't?
06:50:47 <elliott> oerjan: you have to define instances manually...
06:50:52 <oerjan> well yeah
06:51:04 <oerjan> mumble mumble class aliases
06:53:13 <olsner> just use the preprocessor? :)
06:53:41 <oerjan> something something template haskell
06:54:06 * oerjan wonders if someone could implement class aliases _in_ template haskell
06:54:50 <oerjan> it seems eminently possible, mainly from the fact i know very little about template haskell
06:56:03 <elliott> oh, itsa brokes...
06:56:11 <elliott> them's the brokes!
06:56:18 <elliott> oerjan: can i just say how scary haskell's pure exception semantics are...
06:56:25 <elliott> _|_ is like a whole RANGE of values now :<
06:57:41 <olsner> @quote awesome.majesty
06:57:41 <lambdabot> malcolm says: I don't believe you need to invoke the full awesome majesty of Template Haskell
06:58:19 <pikhq_> oerjan: Technically, you could do anything with it. Though you might just have a Haskelloid to Haskell compiler by you're done.
06:58:49 <oerjan> elliott: it's not just a RANGE, it's the POWER SET of a range
06:59:09 <elliott> oerjan: carbon dioxide, man
06:59:15 <pikhq_> oerjan: Not helping.
06:59:56 <elliott> show x = sym (Fun "show" [unsafeCoerce (runSym (unsafeCoerce x::())) :: Expr ()])
07:00:00 <oerjan> (if an expression has more than one possible exception raised inside dependent on evaluation order, then the resulting _|_ is the _set_ of them)
07:00:01 <elliott> dammit why isnt unsafeCoerce making my problems go away..........
07:00:09 <elliott> TYPE DAMMIT
07:00:32 <Patashu> :t unsafeCoerce
07:00:33 <lambdabot> Not in scope: `unsafeCoerce'
07:00:36 <Patashu> one of yours?
07:00:53 <elliott> oh.
07:00:56 <elliott> a virgin mind.
07:00:58 <pikhq_> Patashu: unsafeCoerce :: a -> b
07:01:01 <elliott> Patashu: adults are talking plz leave
07:01:07 <elliott> pikhq_: wow way to ruin their childhood
07:01:15 <Patashu> lol
07:01:24 <Patashu> :(
07:01:28 <oerjan> @hoogle unsafeCoerce
07:01:29 <lambdabot> Unsafe.Coerce unsafeCoerce :: a -> b
07:01:48 <Patashu> @src unsafeCoerce
07:01:55 <pikhq_> And distinct from \x -> undefined
07:02:01 <pikhq_> :t \x->undefined
07:02:01 <lambdabot> forall t a. t -> a
07:02:58 <oerjan> import GHC.Prim (unsafeCoerce#)
07:02:58 <oerjan> unsafeCoerce :: a -> b
07:02:58 <oerjan> unsafeCoerce = unsafeCoerce#
07:03:01 <oerjan> Patashu: ^
07:03:10 <oerjan> so, basically builtin
07:03:12 <Patashu> right
07:03:14 <Patashu> thought so
07:03:48 <elliott> you can implement it
07:03:50 <elliott> with unsafePerformIO
07:04:06 -!- cheater_ has joined.
07:05:27 <elliott> oerjan: whoops i exceeded the limits of the type system
07:05:34 <elliott> whoops..........
07:05:41 <elliott> Patashu: this tends to happen to me
07:05:53 <oerjan> elliott, always pushing the boundaries
07:06:08 <elliott> is that a pun
07:06:30 <oerjan> maybe in a very abstract way
07:06:59 <oerjan> as in, a pun on concepts, not words...
07:07:01 <Deewiant> unsafeCoerce a = let ref = unsafePerformIO (newIORef undefined) in unsafePerformIO \$ writeIORef ref a >> readIORef ref
07:07:16 <elliott> At least one of the forall'd type variables mentioned by the constraint
07:07:16 <elliott> must be reachable from the type after the '=>'
07:07:18 <elliott> whyyyyyyyyyyy
07:07:20 <oerjan> Deewiant: OMG NOT THREAD SAFE THAT'S EVIL
07:08:11 <elliott> oerjan: erm how is it not
07:08:13 <elliott> nothing else can access the ioref
07:08:31 <oerjan> oh wait hm
07:08:52 <oerjan> actually, it _could_ be floated out, so still not thread safe
07:09:12 <oerjan> oh wait
07:09:27 <oerjan> Deewiant: you also hit the monomorphism restriction
07:09:27 <elliott> oh hm what if I...
07:09:29 <elliott> excellent
07:09:32 <elliott> Data.Dynamic time
07:10:41 <Deewiant> oerjan: Hmm, not in my GHCi
07:10:45 <oerjan> otoh there is also no guarantee that it _does_ keep just one value
07:10:49 <Deewiant> unsafeCoerce :: a1 -> a
07:10:59 <oerjan> Deewiant: well obviously you'll have it turned off, then
07:11:43 <Deewiant> Nope
07:12:00 <oerjan> Deewiant: and you say it actually gives that type?
07:12:17 <Deewiant> > let x = 0
07:12:17 <Deewiant> > :t x
07:12:17 <Deewiant> x :: Integer
07:12:17 <oerjan> Deewiant: oh wait it works because there is no typeclass involved
07:12:19 <Deewiant> It's quite on
07:12:19 <lambdabot> <no location info>: parse error on input `:'
07:12:19 <lambdabot> not an expression: `let x = 0'
07:12:27 <oerjan> so the MR doesn't trigger
07:13:39 <oerjan> Deewiant: still, there is no guarantee from haskell that this function does what it's intended to do... the ref could be floated out, thus thread unsafe, or it could be replicated, thus not transferring any value...
07:13:51 * oerjan is just musing
07:14:00 <Deewiant> Sure
07:15:25 <oerjan> in the latter case it _would_ probably end up equivalent to \x -> undefined
07:18:03 <elliott> ?hoogle [ShowS] -> ShowS
07:18:04 <lambdabot> Prelude showParen :: Bool -> ShowS -> ShowS
07:18:04 <lambdabot> Text.Show showParen :: Bool -> ShowS -> ShowS
07:18:04 <lambdabot> Network.URI uriToString :: (String -> String) -> URI -> ShowS
07:18:06 <elliott> :(
07:18:09 <elliott> :t ShowS
07:18:10 <lambdabot> Not in scope: data constructor `ShowS'
07:18:27 <oerjan> elliott: what do you want?
07:18:59 <oerjan> :k ShowS
07:19:00 <lambdabot> *
07:19:06 <elliott> oerjan: foldr (.) id, it seems
07:19:09 <elliott> :)
07:19:10 <elliott> *Main> runSym (nine + nine == nine)
07:19:11 <elliott> 9 + 9 == 9
07:19:14 <oerjan> yeah
07:19:17 <elliott> yay!
07:19:18 <oerjan> @src ShowS
07:19:18 <lambdabot> type ShowS = String -> String
07:21:08 <oerjan> @hoogle [a -> a] -> a -> a
07:21:08 <lambdabot> Data.Generics.Schemes everywhere :: (a -> a) -> a -> a
07:21:09 <lambdabot> Data.Generics.Schemes everywhere' :: (a -> a) -> a -> a
07:21:09 <lambdabot> Prelude until :: (a -> Bool) -> (a -> a) -> a -> a
07:21:51 <oerjan> @src Endo
07:21:57 <oerjan> @hoogle Endo
07:21:57 <lambdabot> Data.Monoid newtype Endo a
07:21:57 <lambdabot> Data.Monoid Endo :: (a -> a) -> Endo a
07:21:57 <lambdabot> Data.Monoid appEndo :: Endo a -> a -> a
07:22:40 <oerjan> :t appEndo . mconcat . map Endo
07:22:41 <lambdabot> forall a. [a -> a] -> a -> a
07:23:00 <olsner> that's longer than foldr (.) id :/
07:23:06 <oerjan> now whether that folds left or right, i don't recall.
07:23:30 <elliott> lol at endo
07:23:44 <oerjan> :t foldA
07:23:45 <lambdabot> Not in scope: `foldA'
07:23:49 <oerjan> @hoogle fold
07:23:49 <lambdabot> Data.Foldable fold :: (Foldable t, Monoid m) => t m -> m
07:23:50 <lambdabot> Data.IntMap fold :: (a -> b -> b) -> b -> IntMap a -> b
07:23:50 <lambdabot> Data.IntSet fold :: (Int -> b -> b) -> b -> IntSet -> b
07:24:03 <oerjan> @hoogle foldMap
07:24:03 <lambdabot> Data.Foldable foldMap :: (Foldable t, Monoid m) => (a -> m) -> t a -> m
07:24:03 <lambdabot> Data.Traversable foldMapDefault :: (Traversable t, Monoid m) => (a -> m) -> t a -> m
07:24:08 <oerjan> yay
07:24:19 <oerjan> :t appEndo . foldMap Endo
07:24:20 <lambdabot> Not in scope: `foldMap'
07:24:24 <oerjan> eek
07:24:31 <oerjan> :t appEndo . Data.Foldable.foldMap Endo
07:24:31 <lambdabot> forall a (t :: * -> *). (Data.Foldable.Foldable t) => t (a -> a) -> a -> a
07:26:32 <oerjan> > (appEndo . Data.Foldable.foldMap Endo) (repeat ('a':)) undefined
07:26:35 <lambdabot> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
07:26:46 <oerjan> ok it folds the right way
07:27:12 <oerjan> (worst implementation of fix ever?)
07:27:33 -!- oerjan has quit (Quit: Later).
07:28:28 <elliott> *Main> runSym (max (9::Symbolic Int) (head (enumFrom 0)))
07:28:28 <elliott> max 9 (enumFrom 0)
07:28:37 <elliott> olsner: i like the kind of bugs this is going to create
07:31:58 <olsner> > let fix' :: (a -> a) -> a; fix' f = (appEndo . Data.Foldable.foldMap Endo) (f:repeat' f) undefined; repeat' x = fix' (x:) in fix' ('a':)
07:32:00 <lambdabot> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
07:35:33 <elliott> *Main> runSym (lift (lift True == lift False) == lift True)
07:35:33 <elliott> (True == False) == True
07:35:35 <elliott> wow, that actually works
07:35:41 -!- Sgeo has quit (Read error: Connection reset by peer).
07:36:40 -!- wareya has joined.
07:39:29 <olsner> eugh, "demonstrating the power of Racket by writing Brainfuck Compiler in it." ... since when does compiling brainfuck provide some indication of "power"?
07:41:27 <elliott> xD
07:41:44 <elliott> olsner: i think they mean "im going to use a bf compiler to demonstate fancy features of racket"
07:41:45 <elliott> but lol
07:42:21 <olsner> ahaha, the article opens with "If people say that Racket is just a Scheme, they are short-selling Racket a little." ... this thing looks exactly like scheme
07:43:09 <elliott> that is actually true, though
07:43:22 <elliott> Racket is a family/environment of languages, not a language
07:43:30 <elliott> and indeed the main Racket language is very, very different from Scheme
07:43:42 <elliott> (yes, it's mostly compatible with Scheme, but idiomatic Racket looks nothing like idiomatic Scheme)
07:45:41 <olsner> aha, ok, the point is that they integrate it as a #lang translator/parser thingy for running brainfuck with Racket
07:45:58 <olsner> maybe that explains the huge amount of code they need
07:46:10 * elliott looks
07:46:10 <olsner> *he needs
07:46:13 <elliott> it's not much code, really
07:46:19 <elliott> most of it is just boilerplate that is only being used to demonstrate, it seems
07:46:27 <elliott> i.e. for any language that wasn't bf, you'd actually want it :)
07:46:49 <olsner> not golfed => bloated
07:47:08 <elliott> olsner: hi person who uses C in their bloated kernel
07:47:45 <olsner> hehe, I don't use any C though
07:47:59 <elliott> i thought you were going to
07:50:09 -!- monqy has quit (Quit: hello).
07:51:39 <olsner> dunno, maybe, making linker scripts and stuff to do the right thing turned out to be more difficult and more boring than I thought... so I might not do C at all until I make an ELF loader
07:54:17 <elliott> olsner: carpenters
08:04:36 <elliott> olsner....hes got the carpenting but he doesnt realise
08:10:01 -!- elliott has quit (Ping timeout: 258 seconds).
08:22:36 -!- cheater_ has quit (*.net *.split).
08:22:37 -!- Patashu has quit (*.net *.split).
08:26:01 -!- cheater_ has joined.
08:26:01 -!- Patashu has joined.
08:29:11 -!- cheater_ has quit (*.net *.split).
08:29:11 -!- Patashu has quit (*.net *.split).
08:34:50 -!- cheater_ has joined.
08:34:51 -!- Patashu has joined.
09:25:27 -!- Vorpal has joined.
10:23:10 -!- Phantom_Hoover has joined.
10:23:36 <Phantom_Hoover> asdf
10:23:36 <lambdabot> Phantom_Hoover: You have 4 new messages. '/msg lambdabot @messages' to read them.
10:25:00 -!- PatashuPikachuRe has joined.
10:27:37 -!- Patashu has quit (Ping timeout: 252 seconds).
10:33:39 -!- FireFly has joined.
10:35:31 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
10:36:28 -!- Phantom_Hoover has joined.
10:40:55 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
10:41:23 -!- Phantom_Hoover has joined.
10:44:14 -!- pikhq has joined.
10:44:57 -!- pikhq_ has quit (Ping timeout: 276 seconds).
10:45:09 -!- BeholdMyGlory has joined.
11:00:53 <CakeProphet> yeah, so mueval gives a not a number exception when I call fromEnum on Char..
11:01:26 <CakeProphet> makes no sense at all.
11:21:34 -!- PatashuPikachuRe has quit (Ping timeout: 246 seconds).
11:25:10 -!- Patashu has joined.
11:38:16 <Phantom_Hoover> Why
11:52:00 -!- Phantom__Hoover has joined.
11:56:38 -!- Patashu has quit (Read error: Connection reset by peer).
11:57:09 -!- Patashu has joined.
11:57:28 -!- Phantom__Hoover has quit (Quit: Leaving).
12:06:19 <augur> Phantom_Hoover: why not
12:06:38 <Phantom_Hoover> augur, seemed like a weird question. Dunno why.
12:06:52 <augur> have you SEEN the questions people ask in there?
12:07:16 <Phantom_Hoover> FSVO "weird".
12:13:12 <augur> honestly some of the askscience questions are so inane
12:13:16 <augur> shit like
12:13:38 <augur> how would an antimatter bomb have to be to kill all life on earth if it was on the edge of the observable universe
12:14:02 <augur> learn to multiply you shithead and stop asking that kind of crap here
12:14:18 <Phantom_Hoover> The vague ones and the ones which would take 10 seconds of Google are the worst.
12:14:34 <augur> well its not like you could google for this
12:14:38 <augur> but you could google for the parameters
12:14:51 <augur> and all it requires is a little knowledge to figure out
12:15:01 <augur> meanwhile i ask deep hard questions and get fuck all :(
12:15:14 <Phantom_Hoover> "Are there any negative ramifications of collecting solar power? (self.askscience)"
12:15:20 <Phantom_Hoover> That's the kind of thing I'm talking about.
12:15:22 <augur> why does noone know about chaitin-kologorov complexity?
12:15:32 <Phantom_Hoover> Also, is that really science?
12:15:38 <augur> what
12:15:41 <augur> c-k complexity?
12:15:42 <Phantom_Hoover> I would classify it as maths.
12:15:50 <augur> close enough
12:16:03 <augur> i dont think theres an askmath
12:30:08 <Patashu> I don't think ask math would be as popular
12:31:21 <augur> probably not
12:31:30 <augur> except for students who want help
12:31:35 <Patashu> yeah
12:32:07 <cheater_> there's mathoverflow
12:32:12 <cheater_> full of trolls tho
12:32:19 <augur> http://www.reddit.com/r/cheatatmathhomework/
12:32:23 <augur> also i cant understand this but
12:32:25 <Patashu> how do you troll math?
12:32:38 <cheater_> give it a go and you'll see
12:32:39 <Patashu> 'pi is 4 in taxicab geometry' 'FUUUUUUUUUUUU'
12:32:44 <augur> /r/math's links are half to tinyurl even tho they're reddit internal
12:33:45 <Patashu> 'only numbers that you can compute exist' 'FUUUUUUUUUUUU'
12:36:30 <cheater_> actually it's 2sqrt2
12:37:04 <cheater_> it's 4 in |x|_inf geometry
12:40:52 <quintopia> no
12:41:29 <quintopia> the circumference of a L_1 circle is definitely 8
12:42:18 <quintopia> er, rather, circle on a grid
12:42:25 <augur> interesting that the term 2 pi r still is valid
12:42:46 <augur> i suppose its almost definitional but
12:43:20 <augur> i wonder if in principle c = 2 pi r could be the incorrect equation for some geometries
12:44:42 <quintopia> nope. pi will always be defined at the length of a unit semicircle
12:44:48 <quintopia> in any geometry
12:44:49 <Patashu> pi is defined to be the ratio between diameter and circumference
12:44:51 <Patashu> so it always worsk
12:44:58 <quintopia> that too
12:45:05 <Patashu> it's a self fulfilling prophecy
12:45:36 <quintopia> well
12:45:44 <quintopia> in any sane geometry
12:46:17 <quintopia> one can imagine insane geometries where the circumference of a circle does not vary linearly with the radius i bet
12:46:31 <quintopia> but calling it a
12:46:42 <quintopia> "circle" is questionable then
12:47:06 <Patashu> circle's the locus of all points equally distant from a point
12:47:09 <Patashu> works for any geometry
12:49:04 <quintopia> what about a geometry where that describes the entirety of space
12:49:20 <quintopia> aka, a single point
12:49:42 <quintopia> that can have any name
12:49:58 <quintopia> so all points are equally distant from all other points
12:50:04 <augur> quintopia: right but i mean, could it be possible that the length of a unit semi-circle is not d/c
12:50:29 <quintopia> we need to come up with something like that if it exists
12:54:58 <quintopia> (note that saying it exists is the same as saying circumference does not vary linearly with radius)
12:58:00 <augur> quintopia: in that geometry
12:58:19 <augur> but wouldnt that be true in, say, a parabolic geometry?
12:58:55 <augur> or a cylinder capped with a sphere?
12:59:00 <augur> well, hemisphere
12:59:19 <augur> where the circumference would increase up to a point
12:59:22 <augur> and then stay constant
12:59:32 <augur> if the circle were centered on the pole of the hemisphere
13:00:39 <augur> yes, there is a space in which circles would not have a constant pi
13:07:13 -!- MigoMipo has joined.
13:09:35 <quintopia> perhaps we should confine ourselves to geometries in which circles with different radii are distinct
13:09:46 <quintopia> that seems the more interesting case
13:19:31 <CakeProphet> In my space, pi is the rectangle function.
13:20:09 <CakeProphet> this leads to circles disappearing when they're not within a set of cycling ranges.
13:21:27 <quintopia> rectangle function?
13:21:41 <CakeProphet> aka unit pulse.
13:22:38 <quintopia> as a function of radius i suppose?
13:22:59 <CakeProphet> yep.
13:23:08 <CakeProphet> pi(r)r
13:23:16 <CakeProphet> ^2, even
13:24:24 <CakeProphet> pulse functions are used in music synthesis a lot because they contain infinitely many harmonics.
13:25:03 <CakeProphet> which makes them ideal for subtractive synthesis. Applying filters to a pulse wave lets you "sculpt" different timbres.
13:25:25 <quintopia> indeed, one-bit music and one-bit symphony consist entirely of square waves
13:25:38 <CakeProphet> lol... one-bit music?
13:25:55 <quintopia> one bit per channel
13:26:02 <quintopia> per sample
13:26:23 <CakeProphet> everything would have a constant amplitude...
13:26:28 <CakeProphet> of 1...
13:26:37 <CakeProphet> or .5 even
13:26:47 <CakeProphet> depending on how you measure these things.
13:26:48 <quintopia> sure
13:27:22 <quintopia> but perceived loudness is not a linear function of amplitude
13:27:28 <CakeProphet> indeed not.
13:27:30 <quintopia> in fact, it's a very complicated function
13:27:45 <CakeProphet> but it's hard to vary amplitude at all when you only have two values.
13:27:48 <CakeProphet> that's what I'm saying.
13:28:06 <quintopia> well, it's not only hard, it's impossible
13:28:15 <CakeProphet> ....well, yes.. that's what I was going for.
13:28:16 <quintopia> but perceived loudness you can play with if you're good
13:28:25 <CakeProphet> I suppose it would rely on frequencies then.
13:29:07 <quintopia> mmm
13:29:27 <CakeProphet> http://en.wikipedia.org/wiki/File:Perceived_Human_Hearing.png
13:31:37 <quintopia> i've seen that
13:31:48 <quintopia> tha's the average threshold for pure tones
13:32:16 <CakeProphet> I think it's an equal-loudness contour. I don't think that's the same thing as threshold.
13:32:29 <quintopia> well
13:32:33 <quintopia> i've seen the full version
13:32:37 <CakeProphet> ah.
13:32:55 <quintopia> which has a lot of equal loudness contours, including the threshold, for pure tones
13:32:59 <CakeProphet> http://en.wikipedia.org/wiki/File:Lindos1.svg
13:32:59 <CakeProphet> this
13:33:17 <CakeProphet> I assume it applies spectrally as well. But that's probably not entirely accurate.
13:33:25 <CakeProphet> meaning that it applies to the pure tones in a complex tone.
13:33:52 <quintopia> but i'm certain that perceived loudness is far more a function of timbre than frequency
13:34:14 <CakeProphet> well yes, frequencies of the spectral components, not the pitch of the note played.
13:34:43 <quintopia> which is to say, even if two sounds were equal in total amplitude, the complex one might sound louder than the pure one
13:35:01 <CakeProphet> indeed.
13:35:12 <quintopia> *equal in summed perceived loudness over spectral components
13:35:53 <CakeProphet> I've always wanted to play around with granular synthesis. It generates some pretty rich timbres.
13:36:47 <quintopia> i have played aroud with it
13:37:17 <quintopia> btw i love that little bump on the contours right at the center of the human voice frequency range
13:37:54 <CakeProphet> oh, yeah. I didn't realize that's what that was.
13:38:11 <CakeProphet> that's certainly interesting. psychoacoustics in general is interesting.
13:38:30 <CakeProphet> Most of what I know about it I learned from "Computer Music: Synthesis, Composition, and Performance"
13:38:55 <CakeProphet> a good book to learn about signal processing in relation to music.
13:39:12 <quintopia> to be sure, i think it's exactly the frequency of a baby's crying :P
13:41:08 <quintopia> most of what i know about it i learned in electronic music history and computer music composition class
13:41:19 <CakeProphet> that sounds like an awesome class...
13:41:24 <CakeProphet> I don't think any school I've ever been to has that.
13:41:57 <CakeProphet> I wonder what purpose the second bump serves, in the higher ranges.
13:46:40 <quintopia> it serves to make applause a painful thing to hear
13:47:18 <quintopia> actually i'm reading this upside-down
13:47:46 <quintopia> what that says is that higher frequencies are suppressed and harder to hear
13:48:13 <quintopia> and that there is a bump in the middle of the human vocal range that is harder to hear
13:49:13 <quintopia> possibly to make it easier to tune out annoying children on airplanes
13:49:21 <quintopia> :P
13:52:11 <CakeProphet> haha
13:52:17 <CakeProphet> yeah we were both reading it the wrong way
13:52:44 <CakeProphet> lower frequencies are much harder to hear that, at a certain point.
13:52:58 <CakeProphet> presumably because they're so funky fresh.
13:53:03 <augur> chaitin-kolmogorov complexity. :T
13:59:23 <CakeProphet> three body problem.
13:59:46 -!- Sgeo_ has joined.
13:59:48 -!- Sgeo has joined.
14:00:03 <quintopia> http://en.wikipedia.org/wiki/Belt_(music) anatomy is hard
14:00:09 -!- Sgeo_ has quit (Client Quit).
14:06:43 <CakeProphet> talking to stupid people is hard.
14:06:51 <CakeProphet> I will have to do a lot of this today.
14:09:22 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:09:37 <quintopia> i sawwy
14:38:44 -!- copumpkin has joined.
14:47:14 -!- oerjan has joined.
14:51:47 <oerjan> <CakeProphet> yeah, so mueval gives a not a number exception when I call fromEnum on Char..
14:51:55 <oerjan> wat.
14:52:01 <oerjan> what command does that?
15:00:49 -!- zzo38 has joined.
15:01:10 -!- Vorpal has quit (Ping timeout: 250 seconds).
15:01:24 <zzo38> Do you know what happened stupid today?
15:01:51 <quintopia> people all over the world did tons of stupid things today
15:01:56 <zzo38> Yes.
15:02:03 <quintopia> is it a newsworthy event or something that happened to you
15:02:06 <zzo38> But not what I am refering to.
15:02:19 <zzo38> I was helping someone with Yahoo! Mail.
15:02:32 <zzo38> It switched the new one there seems no way to switch back.
15:02:40 <zzo38> The new one doesn't even work properly.
15:03:36 <zzo38> But I managed to fix it by setting the general.useragent.override option on their computer temporarily and then it displayed a message "Your browser does not support Yahoo! Mail. * Switch to classic temporarily * Switch to classic permanently"
15:03:47 <quintopia> ha
15:04:14 <zzo38> So I pushed "* Switch to classic permanently" and then removed the general.useragent.override option and that fixed it. Now all the messages are available again.
15:04:48 <zzo38> But it seems Yahoo! acting stupid trying to force everyone to use the new one
15:09:57 -!- dell has joined.
15:10:12 -!- dell has set topic: Rule #1: Follow all rules. Rule #2: Ignore all rules 2*x where x is any integer greater than 1. ... Rule \$n\$: Ignore all rules \$n\$*x where x is any integer greater than 1. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
15:10:18 -!- dell has set topic: Rule #1: Follow all rules. Rule #2: Ignore all rules 2*x where x is any integer greater than 1. ... Rule \$n\$: Ignore all rules \$n\$*x where x is any integer greater than 1. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
15:10:28 -!- dell has left ("Leaving").
15:10:35 <oerjan> huh
15:11:06 <oerjan> did anything change at all?
15:11:34 <zzo38> It doesn't seem different to me than how it was before.
15:11:48 <zzo38> I don't know what that was
15:13:45 <zzo38> What was the purpose of whatever just happened?
15:14:05 <oerjan> i don't know
15:15:17 <quintopia> i bet it changed something after the maximum topic length and then removed it
15:15:27 <oerjan> hm
15:16:43 <oerjan> i don't think our topic is anywhere near the maximum
15:17:17 -!- oerjan has set topic: Rule #1: Follow all rules. Rule #2: Ignore all rules 2*x where x is any integer greater than 1. ... Rule \$n\$: Ignore all rules \$n\$*x where x is any integer greater than 1. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.
15:17:55 -!- oerjan has set topic: Rule #1: Follow all rules. Rule #2: Ignore all rules 2*x where x is any integer greater than 1. ... Rule \$n\$: Ignore all rules \$n\$*x where x is any integer greater than 1. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
15:18:48 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
15:20:09 <quintopia> maybe it put a lot of spaces before whatever it changed :P
15:21:19 -!- zzo38 has set topic: Rule #1: Follow all rules. Rule #2: Ignore all rules 2*x where x is any integer greater than 1. ... Rule \$n\$: Ignore all rules \$n\$*x where x is any integer greater than 1. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
16:28:15 <zzo38> The value of pi is the same regardless of the diameter of circles
16:30:24 <Phantom_Hoover> augur, that /r/askscience question about families of laws puts me in mind of Dedekind cuts for some reason.
16:32:57 <zzo38> "Haskell is way easier to optimize than C"
16:33:03 <zzo38> "Haskell is way easier to optimize than C"?
16:33:42 <zzo38> "Haskell is way easier to optimize than C"? I looked at LLVM and really it looks like the features of the LLVM make it possible to optimize in many ways (but probably some ways are not implemented yet)
16:39:17 <zzo38> When looking at LLVM it seems like there is some things missing.
16:52:56 <cheater_> zzo38, WRONG! read up on geometric defect.
16:58:04 <zzo38> What is geometric defect?
17:01:05 <Sgeo> Phantom_Hoover, what question? Link?
17:07:25 -!- monqy has joined.
17:07:41 -!- oerjan has quit (*.net *.split).
17:07:41 -!- pikhq has quit (*.net *.split).
17:07:41 -!- FireFly has quit (*.net *.split).
17:07:41 -!- cheater_ has quit (*.net *.split).
17:08:21 -!- pikhq has joined.
17:08:21 -!- FireFly has joined.
17:08:45 -!- Vorpal has joined.
17:09:04 -!- pikhq_ has joined.
17:09:08 -!- pikhq has quit (Ping timeout: 252 seconds).
17:14:03 -!- FireFly has quit (*.net *.split).
17:26:45 -!- TOGoS has joined.
17:26:50 -!- TOGoS has left.
17:27:43 -!- FireFly has joined.
17:29:07 <Phantom_Hoover> Sgeo, clicked away now; it's in his submission history, near the top.
17:29:26 <Sgeo> his?
17:29:40 <Sgeo> As in, yours?
17:30:42 <Sgeo> Or "the"?
17:30:47 * Sgeo is confused
17:31:07 * Phantom_Hoover is metaconfused.
17:43:25 -!- dell has joined.
17:43:37 <Phantom_Hoover> Yeah, can't remember why.
17:43:49 <Phantom_Hoover> Who is this dell fellow
17:44:01 * Sgeo listens to all of Homestuck Vol. N albums
17:45:04 <dell> i think that if a high level language is to converted to a brainfuck code then the best method is to convert the HLL code into a bytecode(resembling asm like code) and after that the task would become easy
17:46:31 <dell> what do you think about it
17:46:33 <dell> ?
17:48:24 -!- Kustas has joined.
17:48:38 <dell> i am thinking to start a project which will convert python like language code to bf
17:48:41 <Sgeo> I know that there's a C-2-BF converter
17:48:52 <Sgeo> And a weird language called bfc
17:48:54 -!- Kustas has left.
17:49:12 <Sgeo> bfc uses an intermediate bytecode language, not sure about C-2-BF
17:49:20 <Sgeo> dell, if you'll find it fun, go for it!
17:49:33 <dell> i will have to peep into the code of C-2-Bf how does it do
17:49:46 <dell> Sgea:sure!
17:49:48 <Sgeo> I have no idea
17:50:18 <Sgeo> How C2BF does
17:50:19 <Sgeo> http://esolangs.org/wiki/C2BF
17:52:18 <dell> this will be of much help
17:52:30 <Sgeo> BRB
17:54:09 <zzo38> I wonder,if, there might be some LLVM into Brainfuck compiler? I know there is a Brainfuck into LLVM compiler (it is included in the source code repository for LLVM)!
17:54:44 <dell> low level v machine
17:54:45 <dell> ?
17:54:47 <zzo38> Probably it would be more difficult than making Brainfuck into LLVM
17:55:11 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
17:56:14 <dell> you mean llvm assembly language?
17:56:52 <zzo38> There is already a program compiling Brainfuck to LLVM.
17:57:24 <zzo38> http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/BrainF/
17:57:44 <dell> brainfuck to any language is pretty easy things gets messy when its the reverse
17:57:54 <dell> i made a bf to c compiler in 10 minutes
17:57:58 <dell> its very easy
17:58:42 <zzo38> Yes it is very easy to convert brainfuck into other codes, although doing optimiziation is a bit more difficult.
17:59:55 <zzo38> How well will LLVM optimize the code converted using the "BrainF" into LLVM?
18:01:10 -!- Phantom_Hoover has joined.
18:03:48 <pikhq_> dell: Doing it efficiently is hard.
18:04:52 <dell> not hard tooo hard
18:08:50 -!- pingveno has quit (Ping timeout: 258 seconds).
18:10:46 -!- pingveno has joined.
18:12:20 -!- azaq23 has joined.
18:14:59 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
18:22:49 -!- monqy has quit (Quit: hello).
18:23:08 <Sgeo> Why does Homestuck Vol. 3 put remixes right next to the originals?
18:23:35 -!- Phantom_Hoover has joined.
18:25:12 -!- dell has quit (Quit: Leaving).
18:28:00 -!- monqy has joined.
18:50:36 -!- jix has quit (Ping timeout: 260 seconds).
18:50:40 -!- jix has joined.
18:51:33 -!- iamcal has quit (Ping timeout: 246 seconds).
18:51:39 -!- iamcal has joined.
18:58:03 * Phantom_Hoover tires of juggling his Google accounts.
18:58:26 -!- iamcal has quit (Read error: Operation timed out).
18:58:30 -!- iamcal has joined.
19:24:33 -!- pikhq_ has quit (Ping timeout: 244 seconds).
19:24:49 -!- pikhq has joined.
19:25:14 <zzo38> How much money would you have to pay them to release the ADOM source codes? One million dollars? One billion dollars? One trillion dollars? One *ZILLION* dollars?
19:36:08 <monqy> one zillion is a lot of dollars
19:38:59 -!- cheater_ has joined.
20:25:14 <quintopia> http://wiki.eth-0.nl/index.php/LackRack this is wonderful
20:26:14 <Phantom_Hoover> Want one.
20:29:24 <quintopia> good news! it's only like €5!
20:29:57 <quintopia> probably less in sweden (though i suppose it'd be in SKK)
20:34:27 <olsner> why would ikea take slovak money in sweden? they don't even use it in slovakia anymore
20:51:40 <quintopia> what's the designation for swedish kronur?
20:51:57 <quintopia> SVK?
20:53:01 <zzo38> Play Pokemon card. The opponent manages to pick up five side cards but runs out of cards before being able to pick up the sixth side card, therefore losing.
20:59:55 -!- wareya has quit (Ping timeout: 252 seconds).
21:00:35 -!- azaq23 has quit (Quit: Leaving.).
21:04:47 -!- teuchter has quit (Ping timeout: 258 seconds).
21:09:47 <pikhq> quintopia: SEK
21:10:40 <pikhq> Also, I wonder why Sweden isn't on the Euro; it's treaty-bound to.
21:11:46 -!- TOGoS has joined.
21:11:50 -!- TOGoS has left.
21:12:16 <pikhq> *Admittedly*, given the present economic instability, it's understandable that nobody wants to dick with their currency at present.
21:14:57 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:16:12 <Lymia> zzo38, that's uncommon?
21:16:33 <Lymia> When playing Magic the Gathering, I've won more than once with very little life, or even 1 life left.
21:17:13 <Lymia> In the Pokemon TCG, such things seem even more likely with two decks around the same level facing each other.
21:18:03 -!- pikhq_ has joined.
21:19:15 -!- pikhq has quit (Ping timeout: 244 seconds).
21:20:24 <quintopia> Gregor: when did my little pony become so popular in youtube poopyness?
21:21:49 -!- wareya has joined.
21:22:36 <zzo38> Lymia: When I play it is not uncommon. Nothing to do with levels or with the deck, really. Really it is the opponent who is making bad choices. Such as, they might be unable to retreat. And if I don't attack, then they will not ever put another card up until it is too late.
21:22:52 <Lymia> I've heard that the latest My Little Pony cartoon is very very good.
21:23:20 <Lymia> zzo38, wait.
21:23:23 <Lymia> Runs out of deck cards?
21:23:29 <zzo38> Lymia: Yes.
21:23:33 <Lymia> Ah.
21:24:12 <Lymia> Usually when I see that happening, it's in Magic the Gathering, and it's quite intentionally caused.
21:24:43 <pikhq_> quintopia: Probably about the time that My Little Pony became popular amongst 20-something males.
21:24:53 <pikhq_> Man. Brazil borders France.
21:24:57 <zzo38> That is, at the beginning, you can attack and attach energies and prepare. In middle, just resist opponent and prevent them from retreating (such as by not attacking). Near the end, just do nothing. Usually the reason is due to opponent playing stupid.
21:25:01 <quintopia> which was when?
21:25:17 <Lymia> zzo38, I'm not too familiar with the Pokemon TCG
21:25:19 <pikhq_> quintopia: At most like a year ago?
21:25:26 <quintopia> hmm
21:25:27 <Lymia> I know the basic idea behind the rules, but not much else.
21:25:42 <Lymia> I'd love to pull out the big pile of cards I had from who knows when and bring it to my school.
21:25:52 -!- atrapado has quit (Quit: FIN).
21:25:54 <Lymia> "Let's figure out this game, and then beat the crap out of each other in it!"
21:26:06 <pikhq_> Apparently the latest cartoon has a writer that gives a fuck, which probably is a major factor. :P
21:26:15 <Lymia> I assume Zerg Rush does not work in Pokemon
21:26:34 <Lymia> pikhq_, hmm..
21:26:44 <zzo38> Lymia: You aren't familiar? I play both Pokemon and Magic. However, I don't know what Zerg Rush is.
21:26:45 <Lymia> Those demographics sound suspiciously like those of magical girl anime.
21:26:54 <Lymia> zzo38, Starcraft term.
21:27:09 <pikhq_> Lymia: Gaaah, that genre.
21:27:28 <zzo38> I don't know about Starcraft. What is Zerg Rush?
21:27:35 <Lymia> zzo38, what the zergs do.
21:27:51 <pikhq_> In case you can't tell, I am not a fan.
21:27:52 <Lymia> In Magic, I do believe White Weenie is quite close in execution.
21:28:00 <Lymia> pikhq_, it is quite clear.
21:28:09 <Lymia> Fans are inanimate objects, and cannot use IRC.
21:28:40 <zzo38> When I do play Pokemon TCG, I have adapted it to Limited format, as well as modifying a few of the rules for who goes first and for ties and a few other rules.
21:28:40 <pikhq_> Lymia: However, they can kill people in the Republic of Korea.
21:28:50 <Lymia> pikhq_, oh.
21:28:52 <Lymia> :(
21:28:59 <pikhq_> :P
21:29:29 <Lymia> I still have more than one anime left on my list of "things to watch"
21:29:38 <zzo38> Such as, the number of cards in your deck can be any number as long as it is a multiple of ten and both players must have the same number of cards in their deck, and the number of initial side cards (also same for both players) is one tenth of your deck.
21:29:43 <Lymia> Several of these are magical girl anime. I think you wouldn't like this very much.
21:29:59 <pikhq_> Not generally.
21:30:19 <Lymia> zzo38, dunno Pokemon that much.
21:30:31 <Lymia> I assume "mill" and "stall" are not valid strategies?
21:30:36 <zzo38> I use the old rules rather than the new ones in general, with changes.
21:30:45 <Lymia> (Well, the second might actually work)
21:31:43 <zzo38> Lymia: Mill and stall are possible in Pokemon but more difficult to do. Mill is difficult but there is one card that can help you to do it. Stall is easier but still requires some tactics and things to consider.
21:32:54 <zzo38> I also use the rule that whoever has the active card with the lower level at the beginning of the game (Clefairy Doll is treated as zero) plays first, if they are not the same level.
21:33:40 <Lymia> I prefer to use the rules as written, and respond to unfun decks with even more unfun decks.
21:34:33 <zzo38> And for coin tosses, you can do Rock-Paper-Scissors; whoever win RPS is heads (whether they want it or not, but usually you do want heads); stalemates you try again. In case of tie, if it is during an attack, the attacker loses; otherwise it is a tie, and the tie stands (no sudden deathmatch).
21:35:42 <zzo38> Lymia: I have adapted it to Limited so that it is not a Constructed game, which means that deck construction is somewhat less important (you cannot bring your own cards).
21:35:58 <Lymia> zzo38, no fun.
21:36:19 <Lymia> One of my friends uses Earthcraft+Squirrel Farm for infinite tokens.
21:36:29 <Lymia> It's not exactly fair.
21:36:35 <Lymia> It is funny and fun.
21:38:02 -!- pumafyre has joined.
21:38:21 <zzo38> Lymia: Why do you think no fun? I prefer Limited play rather than Constructed.
21:38:46 <zzo38> (In fact I do not own any cards, so I am unable to play Constructed anyways.)
21:39:10 <Lymia> zzo38, because you can make decks centered around completely insane ideas.
21:41:33 -!- pumafyre has quit (Client Quit).
21:42:17 -!- pumafyre has joined.
21:42:50 <zzo38> (Actually I do have a few Magic: the Gathering cards, because you get to keep the cards you draft. I would prefer if the original owner (the store) kept them; even in ante I think all cards should be returned after the match.)
21:44:33 <zzo38> (And to allow some cards such as "Double Cross" (from Unglued) but they can only affect the current match. *Nothing* you do should affect any game outside of the current match, and any cards you purchase or whatever else you do before the match also should not affect the current match.)
21:57:17 <quintopia> hello
21:59:09 -!- pumafyre has quit (Quit: AndroidIrc Disconnecting).
22:03:33 -!- pikhq has joined.
22:04:17 -!- pikhq_ has quit (Ping timeout: 240 seconds).
22:08:57 -!- sebbu has joined.
22:08:58 -!- sebbu has quit (Changing host).
22:08:58 -!- sebbu has joined.
22:12:08 -!- sebbu2 has quit (Ping timeout: 255 seconds).
22:14:44 -!- elliott has joined.
22:14:44 -!- elliott has quit (Changing host).
22:14:44 -!- elliott has joined.
22:17:19 <elliott> Phantom_Hoover:
22:17:19 <lambdabot> elliott: You have 4 new messages. '/msg lambdabot @messages' to read them.
22:17:21 <elliott> oops
22:17:31 <elliott> that'll teach me to type p<tab>
22:26:03 <olsner> elliott: carpenters?
22:26:10 <elliott> olsner: yes.
22:26:25 <olsner> I still don't get it
22:26:58 <Lymia> EgoBot,
22:27:07 <Lymia> elliott, see, that's how you do it.
22:27:13 <Lymia> Type in the first letter, hold tab, press enter when ready.
22:27:25 <quintopia> EgoBot:
22:27:30 <quintopia> i got the same one
22:27:52 <Phantom_Hoover> elliott,
22:28:10 <Phantom_Hoover> I was hoping it would be EgoBot.
22:28:46 -!- SimonRC has quit (Ping timeout: 260 seconds).
22:29:15 <olsner> so, the icfp programming contest has started now
22:29:32 <Phantom_Hoover> ICFP?
22:30:06 <cheater_> olsner: wasn't there an icfp irc channel?
22:30:39 <olsner> there probably is
22:33:37 <elliott> http://www.guardian.co.uk/commentisfree/libertycentral/2011/jun/17/library-censoring-internet-hexham
22:33:43 <elliott> Hexham: exactly the same as China.
22:46:29 -!- SimonRC has joined.
22:46:59 -!- pikhq_ has joined.
22:47:14 <pikhq_> elliott: Working on implementing the changes you suggested a while back.
22:47:19 <pikhq_> Holy frak this makes things cleaner.
22:48:41 <elliott> ALL IT NEEDS NOW IS TO BE WRITTEN IN HASKELL
22:49:31 <pikhq_> elliott: Call me up when Haskell has a reasonable chance of even working on all architectures supported by Debian. :P
22:49:51 <Phantom_Hoover> elliott, it is indeed grim up North.
22:50:12 <elliott> pikhq: HUGS
22:50:14 <Phantom_Hoover> Until you get a bit more north, when suddenly it becomes Scotland and it's quite pleasant.
22:50:21 -!- pikhq has quit (Ping timeout: 260 seconds).
22:58:12 -!- pumafyre has joined.
23:00:46 <elliott> how many fires in the pumas pumafyre
23:01:24 * Lymia hugs elliott
23:01:28 <Lymia> DId you summon me?
23:01:29 <Lymia> Did*
23:01:30 <elliott> what
23:08:20 -!- elliott has quit (Remote host closed the connection).
23:08:23 -!- elliott_ has joined.
23:08:33 -!- elliott_ has quit (Client Quit).
23:08:33 <quintopia> i like that Lymia randomly hugs people hear. i feel like some of the people here don't get enough hugs
23:08:52 <Lymia> Where is hear?
23:09:37 <quintopia> it's a typo that i saw but was too lazy to comment on figuring everyone would get the point
23:09:42 -!- pumafyre has quit (Quit: AndroidIrc Disconnecting).
23:12:52 -!- elliott has joined.
23:19:46 <pikhq_> Bleck, I keep getting tempted to just add a custom object system to this sucker.
23:20:10 <pikhq_> And it'd be much saner to just pull in one instead.
23:20:31 <pikhq_> But I'd really prefer to not have non-trivial dependencies.
23:22:10 <quintopia> then pull it in completely and make it your own :)
23:22:35 <pikhq_> And ideally I could use a fairly small-footprint Tcl for this. I.E. one that's not going to provide the various Tcl 8.5 features I've been making extensive use of. :/
23:25:01 <pikhq_> Though, Tcl 8.5 should be fairly portable.
23:29:20 <pikhq_> Meh, I can probably rely on Tcllib.
23:30:40 -!- Patashu has joined.
23:31:05 <pikhq_> Okay, yeah, the official distribution works on WinNT, OS X, *-linux-gnu, Solaris, HP-UX, AIX, *BSD, OpenVMS, IRIX, OSF, SCO Unix, and UnixWare.
23:31:52 <pikhq_> I don't think I need to concern myself with depending on Tcl 8.5 or pure Tcl libraries.
23:33:49 -!- foocraft has joined.
23:36:38 <zzo38> How do you play "Went"? Is that similar to "Go"?
23:36:54 <zzo38> Or is just the stones similar except that it is magnetic?
23:47:55 <quintopia> you need time travel to play Went