00:00:28 -!- FireFly has quit (Quit: swatted to death).
00:12:36 -!- Sgeo has joined.
00:14:30 -!- Sgeo_ has quit (Ping timeout: 250 seconds).
00:17:39 -!- Sgeo_ has joined.
00:19:16 -!- Sgeo has quit (Ping timeout: 250 seconds).
00:27:30 -!- Sgeo has joined.
00:29:12 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
00:32:13 -!- Lymia has joined.
00:34:42 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
01:15:16 -!- Vorpal has quit (Ping timeout: 252 seconds).
01:26:17 -!- pikhq_ has joined.
01:26:20 -!- pikhq has quit (Ping timeout: 260 seconds).
01:39:00 -!- pikhq has joined.
01:41:45 -!- pikhq_ has quit (Ping timeout: 276 seconds).
02:02:59 -!- Wamanuz2 has joined.
02:04:56 -!- augur has joined.
02:09:04 -!- elliott has quit (*.net *.split).
02:09:04 -!- Wamanuz has quit (*.net *.split).
02:09:05 -!- variable has quit (*.net *.split).
02:09:31 <pikhq> So, apparently Intel thinks it can have exaflop computing by 2020.
02:10:02 <pikhq> It is estimated that that would suffice for a whole-brain simulation from a low-level physics simulation.
02:11:35 <Sgeo> So from there we'd just need to scan in a brain?
02:12:01 <Sgeo> If I die around then, I volunteer
02:12:25 <Lymia> You don't get to be an AI brain with free internet access direct to brain.
02:13:07 <pikhq> Sgeo: Actually, there's a decent chance we will have done so by then.
02:14:26 <Sgeo> Lymia, well, better than being dead. I suspect that if they're just starting brain scans then, it's only going to be one or two people.
02:15:29 <Lymia> Think the US would move to pass laws to make AIs legal persons?
02:15:49 <pikhq> Lymia: I suspect the law would be moot not long after.
02:16:08 <pikhq> This would be an intelligence with the ability to improve itself.
02:16:35 <Sgeo> pikhq, a scanned in brain?
02:16:35 <Lymia> pikhq, hey, if you build it from a dead human, it /might/ avoid killing off the human race.
02:17:03 <pikhq> Lymia: Nonono, I mean "intelligence with the ability to improve itself" → singularity
02:17:14 <Sgeo> I guess a scanned-in brain might have ... actually, it would probably be slower than a human
02:17:36 <pikhq> Sgeo: And be modifiable with ease.
02:17:38 <Lymia> Sgeo, but it would get faster with faster computers.
02:17:51 <pikhq> Or with faster simulation.
02:17:57 <Sgeo> pikhq, if we know how to scan brains in but not how to modify them...
02:18:25 <pikhq> Sgeo: If we have a brain simulation in digital form, *it is data*.
02:18:29 <pikhq> Hence, we can modify it.
02:18:40 <Lymia> pikhq, but are likely to screw up...
02:18:46 <Sgeo> pikhq, doesn't mean we know the correct way to modify it.
02:18:54 <pikhq> Sgeo: No, but we can learn.
02:19:06 <Sgeo> It's like looking at a C program and trying to modify it without knowing the slightest thing about programming.
02:19:11 <Sgeo> Better yet, looking at machine code.
02:19:25 <pikhq> Yes, but the point is, *we would be capable of experimenting*.
02:19:34 <Lymia> I'd rather be the first strong AI than the first scanned brain.
02:19:35 <pikhq> Which we can't realistically do right now.
02:19:45 <Sgeo> pikhq, hmm, true.
02:19:52 <Sgeo> But what are the ethics of experimentation?
02:20:03 <Sgeo> Mightn't it be cruel to the simulated person?
02:20:39 <zzo38> Perhaps it is better not to avoid killing off the human race (eventually)
02:21:14 <zzo38> Best way is invent the programming language doing these kind of things you are trying to do.
02:21:16 <pikhq> I'm actually presuming the first experimentation would be to try and perfect a high-level neuron or neocortical column simulation... And be able to compare functionality given real data.
02:21:45 <Sgeo> pikhq, for faster simulation speeds?
02:21:47 <pikhq> Suddenly, order of magnitude or more on the brain's performance.
02:23:41 <pikhq> And this brain could improve itself with the suddenly freed up computer time. Perhaps by doubling the size of its neocortex.
02:24:12 <zzo38> You are going to run out of energy!!!!!
02:24:29 <Sgeo> pikhq, all the more reason it should be MY brain >:D
02:24:38 <Sgeo> You don't trust me as God?
02:24:42 <zzo38> Sgeo: *You* are going to run out of energy!!!!!
02:25:04 <pikhq> zzo38: Come now, all I've suggested so far is something that could reasonably happen in, oh, 15 years.
02:25:33 <pikhq> No need for absurdly large quantities of energy, just a much faster computer than exists now.
02:25:53 <pikhq> One which companies are claiming they can have in 10 years.
02:25:57 <Sgeo> I should transfer to neuroscience
02:26:01 <Sgeo> So I'm somewhat prepared
02:26:45 <Sgeo> If the singularity is based off a human, that human will have cognitive biases :/
02:26:59 <Sgeo> Although if the human can tear those biases out, that would be awesome
02:27:01 <pikhq> Could happen sooner if Blue Brain's neocortical column simulation is actually good, and they succeed in getting the neocortex mapped.
02:27:29 <monqy> do babies have good brains
02:27:58 <zzo38> Sgeo: See? Now everything will be biased. Make unhumans and then it will still be biased but all will be equally small bias instead of being too much bias for you by being too world-centered.
02:28:18 <Sgeo> A baby who wants its mommy and is capable of destroying the world to find her.. may not be such a great idea...
02:28:34 <zzo38> You cannot avoid being biased but you can try to improve anyways
02:30:43 <Lymia> Sgeo, an AI that can rewrite itself would be...
02:30:57 <Lymia> Well, if it works....
02:31:07 <zzo38> Well, it is experiment I suppose you can try
02:31:15 -!- pikhq has quit (Quit: Reconnecting).
02:31:31 <Sgeo> zzo38, yes, let's try destroying the world..
02:31:53 <Sgeo> What's the worst that can happen that's outside expected results?
02:32:07 <zzo38> Sgeo: The worst that can happen depends on a lot of things.
02:32:25 <zzo38> If you just write a computer program then the worst that can happen is to get the incorrect answer output.
02:32:36 <zzo38> (Or a useless answer, even if correct)
02:32:54 <zzo38> And you might waste energy if you try too hard.
02:32:58 <zzo38> So don't try too hard.
02:33:07 <monqy> if you hook it up to a gun and stand in front of the gun
02:33:37 <Lymia> Sgeo, the world not being destroyed?
02:34:03 <zzo38> monqy: Then you have to put it in a box to make the Schrodinger's Cat experiment, but with a person who enters the box to be suicide instead of a cat.
02:34:50 <monqy> someone should try quantum suicide sometime
02:35:06 <zzo38> And then if someone exits, the experiment failed. If someone doesn't exit, the experiment also failed. If you see no people, but monsters, you almost succeeded. If you see a computer printout, then you have succeeded for sure.
02:35:35 <zzo38> monqy: I have thought about that very long time ago even and my answer to that is the same as it was before: There is no way to get results from such an experiment.
02:36:04 <monqy> what if the subject is a (terminally ill or suicidal) cat
02:36:06 -!- pikhq has joined.
02:36:14 <Sgeo> zzo38, the person who entered would see the result...
02:36:38 <Lymia> Sgeo, here's a question.
02:36:51 <zzo38> Do the mathematics and figure it out.
02:37:17 <Lymia> If in the world you live in, a piece of $HIGHLY_RADIOACTIVE_MATERIAL has failed to decay for 10 hours due to a quantum suicide experiment, what do you conclude?
02:38:19 <Sgeo> Lymia, good point, but what if there's no person inside, and I see the same thing?
02:38:37 <zzo38> Lymia: Good question. I think the only thing to conclude is that if you were dead that you could not conclude, therefore do the mathematics the same thing and probability and so on, you should get the same answer regardless.
02:39:23 <Sgeo> I think if I was terminally ill, and not going to interfere with cryonics, then I'd want to try the quantum suicide experiment
02:40:04 <zzo38> Sgeo: Try if you want to. It is not my fault whether you do so or not.
02:40:18 <Sgeo> If cryonics is wrong, and MWI is true, then I'd wake up in the living world
02:40:29 <Sgeo> And would know that cryonics fails, and be sad
02:40:39 <Sgeo> Many-worlds interpretation
02:41:23 <Sgeo> I'd also want to make sure it completely kills me without destroying my brain
02:41:29 <Sgeo> I have no idea how to accomplish this.
02:41:40 <zzo38> I think many-worlds interpretation is just one way of seeing it. There are also other ways to see it. Only the mathematics is true not any of interpretations.
02:42:21 <Lymia> zzo38, you can never prove the many-worlds interpretation.
02:42:22 <monqy> quantum guillotine
02:42:30 <Lymia> You can be very very very sure that it exists form a subjective viewpoint.
02:42:43 <zzo38> However the interpretations can still work but results in nothing of experiment so it is more philosophical.
02:43:19 <zzo38> Lymia: I know that you cannot prove it. It is my point! That doesn't make it untrue, but that doesn't make it true either.
02:43:45 <Sgeo> If Robin Hanson's right about small probability worlds disintegrating, then MWI could be true yet quantum suicide be a failure
02:43:50 <Sgeo> Unless I'm misunderstanding him
02:45:50 <zzo38> Then it would be a different kind of MWI. However I think speaking of those kinds of things isn't really very meaningful. Disintegrating? No, simply it is "less existence" relative to high probability ones. It is a new kind of relativity, rather than spacetime, is relative by point of quantum observer.
02:47:21 <Lymia> Here's a question.
02:47:38 <Lymia> Assuming MWI, why do events exist with probabilities that are not 1/x, where x is an integer.
02:48:09 <zzo38> Lymia: Because some possible universes agree in many things with others.
02:48:16 <Sgeo> I think in MWI worlds are a bit more fluid than "1 world or 2 worlds"
02:48:20 <zzo38> Also, because you did not understand MWI.
02:48:39 <zzo38> MWI is not really multiple worlds. It is like all uncountable possibilities.
02:49:32 <zzo38> Learn the mathematics dealing with quantum physics and quantum cosmology and then see how it is the case.
02:53:13 -!- rabc has joined.
02:53:43 -!- rabc has left ("Leaving").
02:53:47 <zzo38> Therefore the probability does not even have to be rational.
02:57:38 <Sgeo> But it is a question why the probabity is squared instead of absolute value, isn't it?
02:58:14 <zzo38> The name "many worlds interpretation" is somewhat misleading, I think.
02:58:52 <zzo38> It is not a LITERAL "many worlds" it is a bit different.
03:12:18 -!- CakeProphet has quit (Ping timeout: 276 seconds).
03:14:00 -!- CakeProphet has joined.
03:14:01 -!- CakeProphet has quit (Changing host).
03:14:01 -!- CakeProphet has joined.
03:18:52 -!- copumpkin has joined.
03:18:52 -!- copumpkin has quit (Changing host).
03:18:52 -!- copumpkin has joined.
03:30:37 -!- BeholdMyGlory has quit (Remote host closed the connection).
03:34:05 -!- azaq231 has joined.
03:35:42 -!- azaq23 has quit (Ping timeout: 264 seconds).
03:48:51 -!- elliott has joined.
03:56:30 <elliott> 02:09:31: <pikhq> So, apparently Intel thinks it can have exaflop computing by 2020.
03:56:30 <elliott> 02:10:02: <pikhq> It is estimated that that would suffice for a whole-brain simulation from a low-level physics simulation.
03:56:30 <elliott> 02:11:35: <Sgeo> So from there we'd just need to scan in a brain?
03:56:30 <elliott> 02:12:01: <Sgeo> If I die around then, I volunteer
03:56:33 <elliott> Sgeo: I'll arrange your death.
03:57:08 <elliott> 02:19:25: <pikhq> Yes, but the point is, *we would be capable of experimenting*.
03:57:16 <elliott> pikhq: yes modifying sentient, intelligent brains at random and simulating the results
03:57:22 <elliott> that sounds productive and also extremely ethical
03:57:37 <elliott> we'd pick it up in no time, just after the first thousand or so horrific traumas
03:57:38 <pikhq> elliott: Modifying small portions thereof.
03:57:53 <elliott> i don't imagine the brain is organised in such a way to make modification of it easy
03:58:06 <elliott> it's ridiculous to expect it to be modular at the small scale like a designed computer program is
03:58:18 <elliott> 02:19:52: <Sgeo> But what are the ethics of experimentation?
03:58:18 <elliott> 02:20:03: <Sgeo> Mightn't it be cruel to the simulated person?
03:58:20 <pikhq> Why the hell would we randomly change parts and test the whole brain at once? Seems like a pointless waste of computer power.
03:58:29 <pikhq> Not to mention ethical issues.
03:58:40 <elliott> pikhq: btw a hard takeoff with a modified human brain sounds insane to me
03:58:48 <elliott> We're as far from rational as you can get :)
03:59:03 <elliott> also, how do you propose simulating only part of a brain
03:59:21 -!- kjafshlkjh23 has joined.
03:59:32 <elliott> 02:26:59: <Sgeo> Although if the human can tear those biases out, that would be awesome
03:59:32 <elliott> yeah you just have to find the bias lobe and pull it out.
03:59:37 <elliott> then we become perfect bayesian rationalists.
04:00:05 <pikhq> elliott: Actually, y'know what? That whole line of thought was stupid.
04:00:16 <elliott> yes i'm feeling sorry for your past selves reading this log :(
04:00:25 <Sgeo> NO NO NO YOU STUPID VIDEO GRAVITY IS NOT A RUBBER SHEET
04:00:36 <elliott> 02:36:04: <monqy> what if the subject is a (terminally ill or suicidal) cat
04:00:45 <elliott> 02:36:23: <Sgeo> suicidal cat?
04:00:45 <elliott> 02:36:28: <monqy> suicidal cat.
04:01:04 <elliott> 02:38:37: <zzo38> Lymia: Good question. I think the only thing to conclude is that if you were dead that you could not conclude, therefore do the mathematics the same thing and probability and so on, you should get the same answer regardless.
04:01:05 <elliott> good question, not necessarily good answer
04:01:18 <pikhq> No real reason we would want to do a whole-brain emulation from raw physics simulation. Though we probably *could* in 10 years, that wouldn't actually help us that much in and of itself.
04:01:25 <elliott> 02:40:18: <Sgeo> If cryonics is wrong, and MWI is true, then I'd wake up in the living world
04:01:25 <elliott> MWI doesn't imply quantum immortality, dude
04:01:40 <elliott> also "if cryonics is wrong" what is the relevance of cryonics here
04:01:44 <elliott> well that makes no sense at all
04:01:53 <elliott> quantum immortality is a bad deal even if it's true
04:02:02 <pikhq> What we'd want is a better understanding of how the brain works, and WBE doesn't help that too much.
04:02:13 <elliott> how do you think your human body will handle being seven thousand years old, Sgeo?
04:02:16 <Sgeo> elliott, not if the choice is "completely dead" vs "completely alive and fine" which the experiment ould be
04:02:28 <elliott> Sgeo: that's not quantum immortality
04:02:34 <elliott> quantum immortality is just equating observers with sentiences
04:02:46 <pikhq> Well. If a more high-level simulation could be done, it might be helpful.
04:03:10 <elliott> 02:41:23: <Sgeo> I'd also want to make sure it completely kills me without destroying my brain
04:03:10 <elliott> 02:41:29: <Sgeo> I have no idea how to accomplish this.
04:03:10 <elliott> that's sort of a contradiction
04:03:15 <elliott> ugh im just going to ignore sgeos lines
04:03:18 <elliott> 02:42:22: <monqy> quantum guillotine
04:03:18 <pikhq> Say, if the brain actually has *some* level of higher structure, such that improvement of a digital simulation would be apparent.
04:03:45 <pikhq> Some level of simulable higher structure, I should specify.
04:03:50 <Sgeo> elliott, I just wanted cryonics to still be an option
04:04:13 <pikhq> (perhaps if clusters of neocortical columns could be considered to be black boxes?)
04:04:23 <Sgeo> So either I'd learn quantum suicide's result of MWI being true, or cryonics works, or I'm dead.
04:05:05 <elliott> Sgeo: I can't think of a situation where quantum suicide wouldn't immediately lead to a degenerate situation
04:05:20 <elliott> i.e., yes, still sentient, but beyond that...
04:05:41 <pikhq> Well. One obvious thing we could find out from successfully doing whole-brain emulation. Strong AI is computable.
04:06:16 <Sgeo> Well, forgetting the cryonics stuff, throw an equivalent amount of antimatter in at 99/100 probability, leave alone 1/100
04:06:20 <pikhq> (not that that is *too* controversial; it seems pretty unlikely that there's an oracle sitting in there. :P)
04:06:40 <Sgeo> I think 1/100 is higher than surviving antimatter in a degenerate way
04:07:22 <elliott> 07:07:26: <zzo38> Do you know if there is a way to switch Linux out of UTF-8 mode?
04:08:07 <elliott> `addquote <Gregor> You just went from "no sexualized ads" to "we have ads for dildos, but they're different for ads for Orangina" X-D
04:08:10 <HackEgo> 459) <Gregor> You just went from "no sexualized ads" to "we have ads for dildos, but they're different for ads for Orangina" X-D
04:08:26 <Sgeo> This video called "How gravity really works" better not betray me
04:08:54 <elliott> Sgeo: you could, you know, try and learn the mathematics behind it if you want to know how it _really_ works, rather than learning a metaphor which will never be the actual workings of gravity.
04:09:12 <monqy> how everything really works
04:10:10 <elliott> 15:47:19: <Sgeo> <3 hard-boiled eggs
04:10:10 <elliott> 16:09:29: <Phantom_Hoover> ...
04:10:10 <elliott> 16:11:37: <Sgeo> That wasn't a perverted sense of the word "eggs". I'm not ripping out someone's ovaries
04:10:23 <pikhq> elliott: That wouldn't let him know how it _really_ works; that is presently an open question. He could, however, learn our best understanding of it thus far. :P
04:10:35 <pikhq> Sgeo: How much physics would you say you know?
04:10:36 -!- bacaw has joined.
04:10:37 <elliott> pikhq: well for that he'd have to learn intelligent falling
04:10:40 <elliott> sgeo knows lots of metaphors
04:10:45 <monqy> he could be indoctrinated into a gravity-cult
04:10:45 <elliott> or at least wants to know lots of metaphors
04:10:58 <monqy> or whatever the word is
04:11:02 <elliott> i don't know if he's expressed any interest in any sort of actual actually-mathematical-you-know physics
04:11:30 <monqy> who needs actually mathematical you know physics when you know how it really works
04:11:37 <pikhq> elliott: So, the physics-that's-actually-difficult. :P
04:11:49 <elliott> maybe Sgeo could get a phd in pop science
04:12:21 <elliott> 16:46:19: <Vorpal> oerjan, anyway, why didn't we ignore that person who complained about it, it seems silly
04:12:29 <elliott> hard to ignore a moron who likes whining to staff.
04:12:46 <pikhq> (I'm not a physicist, but I've taken a year of it in college. Which is at least enough to get to the point that you can be not-completely-ignorant.)
04:13:18 <pikhq> Oh, right, Sgeo's got a horrendously unrigorous collegiate experience.
04:13:38 <Sgeo> I liked reading books when I was a kid, and looking stuff up online now
04:13:48 <monqy> rigour rigour rigour
04:14:13 <elliott> Sgeo: by books you mean pop science books right
04:14:27 <elliott> Einstein's Very Own "Relativity -- Now With More Mathematics!"
04:14:30 <Sgeo> I once vaguely, not in detail, understood that mass in a nucleus is .. it gets smaller as you go towards iron or something?
04:14:35 <elliott> by Albert "Genius" Einstein
04:14:58 <Sgeo> elliott, Einstein did write what one might call a pop science book.
04:15:17 <elliott> is it as good as calculus the easy way
04:15:29 <monqy> as if it ever wasn't
04:15:29 <Sgeo> pikhq, ok, what did I get wrong?
04:15:57 <pikhq> Sgeo: As you go up the periodic table of elements, the mass in the nucleus generally goes up.
04:16:09 <Sgeo> pikhq, oh, I misphrased that
04:16:18 <Sgeo> As in.. the amount of mass in a nucleon
04:16:25 <Sgeo> Or.. something...
04:16:31 <Sgeo> Iron is special in some way, at least
04:16:58 <pikhq> Sgeo: As each number you go up, the proton count goes up by one, and the neutron count is likely to go up by some amount (it's not as clean as "goes up by one", for complex reasons).
04:17:26 <elliott> 21:03:26: <Vorpal> Phantom_Hoover, what, really?
04:17:26 <elliott> 21:03:47: <Vorpal> [1..] and so on would no longer work
04:17:36 <pikhq> You're just about linearly increasing the mass whilst stepping through.
04:17:37 <Sgeo> pikhq, yes, but the mass of 52 protons+neutrons in a nucleus != mass of 52 individual protons + neutrons alone
04:17:42 <elliott> yeah, what use is a language if it can't evaluate [1..] in the standard product list type???
04:17:46 <elliott> YOU'D HAVE TO DEFINE STREAMS EVEN
04:17:55 <elliott> 21:24:36: <Phantom_Hoover> Guys, I need you to name something really, really gay.
04:17:55 <elliott> 21:24:42: <Phantom_Hoover> No time to explain. Just do it.
04:18:08 <Lymia> elliott, Phantom_Hoover
04:18:17 <elliott> Lymia: yes hes a gay vampire
04:18:31 <elliott> 21:37:28: <Vorpal> Phantom_Hoover, which sense of the word gay do you need
04:18:31 <elliott> 21:37:44: <Vorpal> Phantom_Hoover, the old sense or the homosexual sense
04:18:31 <elliott> 21:37:49: <Vorpal> Phantom_Hoover, if the latter: Batman
04:18:35 * Sgeo does a bit of googling
04:18:54 * Lymia notes Sgeo down as "wtf"
04:19:14 <elliott> Lymia: it took you this long?
04:19:29 <monqy> I have sgeo down as "sgeo"
04:19:36 <elliott> monqy: pretty much this exactly
04:19:54 <Sgeo> pikhq, what are some single-isotope elementss?
04:20:30 <pikhq> Aside from perverse edge-cases where we've only observed a handful of atoms?
04:21:03 <Sgeo> http://en.wikipedia.org/wiki/Mononuclidic_element still loading
04:21:37 -!- kjafshlkjh23 has quit (Quit: asdf).
04:21:54 * Sgeo looks at the table, and notes that the isotopic masses aren't integers.
04:22:14 <pikhq> *That's including electrons you dolt*.
04:22:32 <elliott> pikhq: why are you hurting yourself like this
04:22:59 <pikhq> ... Wait, there's ones with masses less than the sum of proton and neutron. Guess there's something I don't grok happening.
04:24:46 <Sgeo> pikhq, where does the energy from fusion come from?
04:26:10 <pikhq> Ah, 1 proton-mass is slightly less than 1 u is slightly less than 1 neutron-mass.
04:27:11 <pikhq> So of course the sum of proton-mass units and neutron-mass units is not going to be an integer expressed in u.
04:27:30 <pikhq> But merely be an approximation thereof.
04:30:16 <pikhq> Sgeo: The energy from fusion comes from the binding energy needed to bind two individual nuclei being greater than the energy needed to bind their constituents into a single nucleus.
04:30:55 <pikhq> And before you ask, the energy from *fission* comes from a mass-to-energy conversion during the fission process.
04:32:41 <Sgeo> What is the mass of He4, and what is the mass of C12?
04:33:05 <Sgeo> n/m the hold on
04:33:07 <pikhq> C12 is precisely 12u, by definition. :P
04:33:37 <pikhq> (1u is defined as 1/12 the mass of C12)
04:33:47 <Sgeo> By your proton < u < neutron, it makes sense that protons and neutrons balance out, right?
04:33:58 <Sgeo> Oh, wait, electrons
04:34:14 <pikhq> Sgeo: If there were equal quantities of each. There aren't usually.
04:34:28 <Sgeo> There are equal quantities of each in C12 and in He4
04:35:58 <Sgeo> If the explanation for He4 mass > 4 had to do with electrons influencing the value of u, then you'd expect um... you'd still expect He4 to have an integer mass, I think.
04:38:14 <Sgeo> Yeah, because if you assuming what I think you're still assuming, then 12u = 6p+6n+6e, so /3 -> 4u = 2p + 2n + 2e
04:38:26 <pikhq> The mass of He-4 is, BTW, 4.002602u. The mass of 1 electron being... 1,822.8884845^-1 u. *Okay*, then something I don't grok is definitely happening!
04:40:01 <Sgeo> Let's see if I can find what I'm looking for on Wikipedia
04:41:53 <Sgeo> Found it, not on Wikipedia
04:42:13 <Sgeo> http://www2.slac.stanford.edu/vvc/faqs/faq1.html
04:42:38 <Sgeo> ". Each nucleus has a mass which is a little less than the sum of the masses of the protons and neutrons that it contains."
04:43:15 <Sgeo> I think I read the right pop sci books...
04:43:51 <pikhq> I think you should take actual science courses, personally.
04:44:20 <pikhq> That you are less wrong than I on this issue is irrelevant. :P
04:46:52 <pikhq> Also, the only pop science book I've really read is Hawking's "The Universe in a Nutshell". Which doesn't even touch on the physics of atoms.
04:47:23 <Sgeo> I think where I learned this from was some Isaac Asimov book
04:47:47 <Sgeo> Isaac Asimov was pretty much my primary pop sci author as a kid
04:48:05 <pikhq> I can't say I blame you. Asimov is awesome.
04:48:30 <Sgeo> Um, except for some book on quantum physics that had pretty colors.
04:49:11 <pikhq> Which probably didn't do the subject justice, even from a pop sci perspective.
04:53:32 <Sgeo> (No, not really)
04:55:32 <elliott> pikhq: What's the standard penalty for an online music store charging more for lossless?
04:56:09 <elliott> (OK, {standard reward for actually OFFERING lossless + standard penalty for charging more for lossless} is obviously still a large positive number because of how rare that is, but still.)
04:58:21 <Sgeo> Am I still in the wtf column?
04:58:45 <elliott> Lymia: i think you better take him out or youll hurt his feelings
05:20:52 -!- Lymia has quit (Read error: Connection reset by peer).
05:21:50 -!- zzo38 has quit (Quit: *** OH MY GOD YOU'VE GONE BLIND ***).
05:22:25 <pikhq> elliott: BitTorrent.
05:25:59 <pikhq> Okay, fine, fine. 1st level of hell.
05:29:27 -!- aloril has quit (Ping timeout: 250 seconds).
05:30:29 <elliott> don't you think that's rather unfair
05:33:13 -!- IronEagle has joined.
05:33:57 -!- Nuck has joined.
05:34:21 -!- Nuck has left.
05:35:57 <IronEagle> so, who here programs in brainfuck
05:36:14 <pikhq> Most of us have, I think.
05:37:20 -!- Lymia has joined.
05:40:14 <elliott> IronEagle: what's brainfuck??
05:41:09 <elliott> hahaha oh wow "Esoteric programming languages were designed to test of the boundaries of computer programming language design, but now they are more commonly used for educational purposes."
05:41:10 <elliott> http://itunes.apple.com/gb/app/esolang/id442156004?mt=8
05:41:13 <elliott> monqy rate the zeptoness of this
05:41:32 <monqy> brainfuck, _the_ esoteric language
05:42:00 <elliott> i wonder who was last educated with an esolang
05:42:15 <elliott> http://www.davenicholas.me.uk/blog/view_post/31/esolang-esoteric-programming-for-iphone oh this is going to be embarrassing to read
05:42:21 <elliott> "esolang is free and always will be"
05:42:26 <elliott> why, i'd totally pay for a bf interp on my phone
05:42:43 <elliott> monqy: I have limited the app to 256 memory locations and a max byte size of 256 to keep the foot print down. I may choose to increase this size in the future.
05:42:52 <elliott> hmm, wonder IronEagle isn't this guy, he might get offended :<
05:43:16 <monqy> so is esolang just a brainfuck interpreter or what
05:43:24 -!- aloril has joined.
05:43:25 <elliott> "How to c++ mysql mac osx" this guy is a good blog
05:43:32 <elliott> i've always wanted to know how to c++ mysql mac osx
05:44:05 <monqy> Augmented Reality on Android
05:44:55 <monqy> is augmented reality comparable to virtual worlds
05:44:57 <monqy> in terms of amazing
05:45:43 <Sgeo> monqy, more useful maybe, more fun, no.
05:45:48 <elliott> us making fun of yet another brainfuck impl that's on the apple store :P
05:45:49 <Sgeo> if I understand what you mean
05:46:06 <elliott> monqy: im really tempted to make the implementations section of the brainfuck esolang wiki page hidden by default since it's so polluted, discuss
05:46:54 <IronEagle> elliott: hey, I regularly explore that area.
05:47:12 <monqy> checking pollution now wow that's a lot
05:47:13 <elliott> its just a bunch of people writing their very first bf interpreter in five minutes then putting a link up
05:47:28 <elliott> maybe we need a separate implementations article considering how huge it is
05:47:29 <IronEagle> elliott: any excuse to say the word fuck
05:47:37 <monqy> everything brainfuck-related ever is just a mess
05:47:44 <elliott> oh maybe i should read out the implementations section
05:47:47 <elliott> like as an avant garde thing
05:47:51 <elliott> should i do that, or sleep
05:48:38 <monqy> "Brainfuck Culture" page containing derivatives, implementations, discussion, fandom
05:48:40 <pikhq> There's very few implementations of Brainfuck deserving of mention.
05:48:43 <monqy> or category who cares
05:48:57 <elliott> monqy: #REDIRECT [[Category:Shameful]]
05:49:09 <pikhq> You could probably just omit all the non-optimising ones and cut that list to 1/4th the size.
05:49:18 <elliott> ok im going to do this im going to read out the implementations section of the brainfuck article
05:49:24 <elliott> can you all handle my squeaky voice for this
05:49:28 <monqy> self-interpreters are pretty nifty
05:49:33 <Sgeo> pikhq, is things like considering +++++ together optimizing
05:49:38 <elliott> how do you pronounce Müller
05:49:46 <Sgeo> In that case, my crappy thing written in Haskell that no longer exists counts.
05:50:07 <pikhq> Sgeo: If we don't count RLE, then we'd make that list be like 10 long.
05:50:12 <elliott> http://esolangs.org/wiki/Brainfuck#Implementations
05:50:53 <Sgeo> Wasn't referring to BF-RLE
05:50:54 -!- elliott has quit (Read error: Connection reset by peer).
05:51:04 -!- elliott has joined.
05:51:26 <elliott> you guys dont think im serious about this dramatic reading thing do you
05:53:32 <IronEagle> elliott: I spy with my little eye a brainfuck compiler made in assembly
05:58:39 <IronEagle> elliott: I have a language idea. brainfuck+ruby+assembly
05:58:58 <monqy> is it a good language idea
05:59:02 <monqy> what is the language idea
05:59:36 <elliott> the dramatic reading is six minutes long
06:00:49 <monqy> IronEagle: my mother would make a godawful esoteric language
06:01:57 <IronEagle> .actually... why isn't there an esoteric language called 'Yo-Mamma'
06:02:03 <elliott> monqy: the beat of this reading is SICK
06:02:24 <monqy> IronEagle: maybe because it is an awful idea and it would be awful
06:03:02 <monqy> intercal is brilliant
06:03:08 <monqy> hey IronEagle have you ever heard of something called
06:03:52 <elliott> monqy: have you ever heard "esolang a brainfuck interpreter for iphone written in objective c" turned into a beat
06:04:06 <monqy> no, I must say I haven't
06:04:25 <monqy> http://esolangs.org/wiki/FURscript
06:04:45 -!- pikhq_ has joined.
06:06:09 -!- pikhq has quit (Ping timeout: 246 seconds).
06:06:21 <elliott> ok now to read the optimising implementations section
06:06:33 <elliott> on top of my "esolang a brainfuck interpreter for iphone written in objective c"
06:06:39 <elliott> IronEagle: I BELIEVE THAT WAS MY IDEA
06:06:43 <elliott> or slereah's, i forget who's
06:07:06 <IronEagle> "Broken Angel is working on a simple compiler in Visual Basic. Einsidler does not approve of the idea. "
06:07:14 <IronEagle> anything in visual basic is a bad idea
06:07:46 <pikhq_> https://github.com/pikhq/haskell-bfc/blob/fe9942d452d99df34a1d0687be89f9f5afedfa0b/main.hs Your compiler must be at least this good. :P
06:07:48 <monqy> Optimizing BF interpreter is a very fast C interpreter, fastest in its class.
06:08:26 <pikhq_> monqy: Probably the fastest interpreter is a hacked-up fusion of esotope and tcc.
06:09:12 <IronEagle> monqy: especally with that YASM brainfuck compiler down a little further
06:10:01 <monqy> optimizing bf interpreter's author must be shaking in his proverbial boots
06:12:44 <IronEagle> what I don't get is, what the hell is optimizing compiled brainfuck going to do? is there a BF project large enough that it doesn't take under 1 second to finish
06:13:01 <elliott> see mandelbrot.b, lostkng.b startup time
06:13:12 <elliott> monqy: oh my god it's amazing
06:13:19 <pikhq_> Well, with my compiler mandelbrot.b takes like a quarter of a second.
06:13:23 <monqy> I'd remix it if I could (but I can't)
06:13:33 <pikhq_> And esotope-bfc does half that.
06:13:57 <elliott> monqy: i'll just remix it myself UNDER A PSEUDONYM
06:13:59 <IronEagle> so, who here programs in whitespace?
06:14:25 <pikhq_> (yes, I really did pull off "only half as bad as esotope" with that thing)
06:17:36 <pikhq_> elliott: Say, what would you consider to be, say, the top 5 Brainfuck compilers, as far as optimisation goes?
06:17:47 <elliott> esotope, esotope, esotope, esotope, esotope
06:18:01 <pikhq_> Esotope is not 5 compilers.
06:18:30 <elliott> but i meant just the bf one
06:18:36 <elliott> monqy: uploading are you READY
06:18:45 <pikhq_> Okay, esotope-bfc is not 5 compilers.
06:19:30 <elliott> monqy: at some points i just get floored and repeat a sentence over and over because i can't believe it
06:19:44 <elliott> spoiler: "Does not correctly handle nested loops." is such a point
06:19:54 <elliott> (following "A Brainfuck interpreter with debugging capabilities. Also Brainfuck to PHP/Javascript/Omgrofl converter.")
06:20:09 <monqy> how does a brainfuck implementation not handle nested loops
06:20:36 <elliott> I really like how I pronounced "byte (!)"
06:20:41 <pikhq_> I have by *mistake*...
06:20:45 <elliott> it's like a parrot yelling "byte"
06:20:54 <pikhq_> That was one stupid parser bug.
06:21:16 <monqy> im reading the omgrofl spec
06:21:23 <elliott> this is twenty megabytes btw but i think its worth it
06:21:27 <elliott> you have to experience this lossless really
06:22:16 <monqy> admittedly I've never understood thematic languages
06:22:33 <monqy> (except when they're amazing)
06:22:42 <monqy> ((omgrofl is not amazing))
06:25:09 <monqy> im fantasizing about it
06:25:30 <elliott> monqy: if you're hoping for like
06:25:38 <elliott> shakespearean exclamations of the list
06:25:44 <elliott> then i tried that but unfortunately my voice is too cringeworthy to deal with it
06:25:54 <elliott> im like Sgeo except not as bad and also i know when its bad
06:26:02 * pikhq_ wonders why neither of the two C-to-Brainfuck compilers decided to use PCC.
06:26:03 <elliott> think of it as avant-garde instead
06:26:10 <elliott> monqy: http://www.mediafire.com/?2kf3id40u613db5
06:26:12 <monqy> good thing I like avant-garde
06:26:13 <elliott> sry for the shitty upload site
06:26:30 <elliott> monqy: i should send this to brian eno he'd totally remix it
06:27:02 <elliott> i like how the various "lol you got a new IM/highlight on IRC" noises pop in at various points
06:27:07 <elliott> its totally ambient background
06:28:20 <monqy> caught up with the beat
06:28:40 <monqy> wondering how to dance to this
06:28:46 <elliott> what do you mean caught up with the beat
06:28:48 <elliott> its totally in free time yo
06:28:52 <elliott> apart from the esolang iphone bit
06:28:54 <pikhq_> Your voice is funny and British.
06:29:01 <elliott> pikhq_: i don't normally sound like this
06:29:04 <elliott> i was trying to sound toneless
06:29:09 <monqy> I caught up with part of the beat then fell behind again
06:29:28 <pikhq_> elliott: Your voice is funny and British.
06:30:18 <elliott> that cough thing after the first "does not correctly handle nested loops" is me not believing it
06:30:36 <monqy> does not correctly nested loops
06:30:45 <pikhq_> Recursion, people. Not that hard.
06:33:42 <monqy> oh god are you reading the esolang site
06:34:00 <elliott> that was... what that was, yes
06:34:10 <monqy> it took me a second
06:34:13 <elliott> oh wait you mean the app store page
06:34:51 <elliott> this is my finest work btw
06:35:08 <elliott> monqy: should i read the furscript or esme page next
06:35:23 <elliott> if I do esme ill sing the stuff in code blocks
06:35:38 <monqy> how would you even pronounce the stuff in code blocks
06:35:48 <elliott> thats for me to know and you to wonder whether you want to find out
06:35:56 -!- newsham has quit (Read error: Connection reset by peer).
06:36:18 <elliott> monqy: i'm also up for [[Snack]]
06:36:23 <elliott> and Graue's angry rant at Stux
06:36:31 <elliott> http://esolangs.org/wiki/User_talk:Stux
06:36:36 <monqy> ooh I've never seen that
06:37:43 <monqy> I am imagining this as an opera and I cannot stop
06:38:10 <elliott> monqy: i will totally do that
06:38:21 <elliott> just the original comment or should I include Stux's reply
06:38:40 <monqy> I was doing it for the reply too
06:39:41 <monqy> the Hi! section is amazing too
06:42:44 <monqy> oh look someone put esolang on the wikipedia brainfuck page
06:43:05 <monqy> under external links but there
06:43:12 <elliott> monqy: im going to do Esme
06:43:44 <monqy> I've never understood esme
06:44:47 -!- azaq231 has quit (Quit: Leaving.).
06:45:42 -!- IronEagle has left.
06:48:41 <monqy> so the guy who put esolang there doesn't have a wikipedia account but did edit the List of female bodybuilders and douted the validity of the statement "The Eternaut has become one of the most influential comics series of the 20th century"
06:49:08 <monqy> doubted not douted what
06:49:30 <elliott> i tried to make it sound as awkward as the language itself
06:49:37 <elliott> also I dunno how to pronounce Esme lol
06:49:50 <monqy> I was thinking like "esme" but I dunno
06:50:32 <pikhq_> monqy: I'd certainly doubt the validity of that claim.
06:50:44 <pikhq_> I mean, I haven't even heard of "the Eternaut".
06:51:16 <elliott> http://en.wikipedia.org/wiki/El_Eternauta
06:51:50 <pikhq_> Seem quite obscure, though.
06:51:56 <monqy> yes I think that's it
06:52:12 <pikhq_> And has to compete with a large number of influential comics...
06:52:52 <elliott> http://www.mediafire.com/?019mn3890e9kwwj
06:52:55 <pikhq_> Considering that nearly all of them were made in the 20th century, saying "one of the most influential comics of the 20th century" is a ballsy claim.
06:52:59 <elliott> it has legit singing of the code block parts though monq
06:53:00 <elliott> it has legit singing of the code block parts though monqy
06:53:54 <pikhq_> I mean, shit, that's got to compete against motherfucking Little Nemo.
06:54:36 <pikhq_> Or Osamu Tezuka, inventor of modern manga.
06:55:19 <pikhq_> (you may know him for such things as "large eyes" and "long-form narratives")
06:55:28 <elliott> monqy: i accidentally started singing the stub line :(
06:56:03 <monqy> I like how the page has been accessed ~6,862 times
06:56:10 <monqy> the esme page that is
06:56:12 <elliott> oh no, has veebeewiki gone down?
06:56:19 <elliott> http://www.festipedia.org.uk/wiki/User_talk:Dagoth_Ur,_Mad_God
06:56:28 <pikhq_> Also, *Superman* was in the 20th century...
06:56:29 <elliott> monqy: the inventor of esme like
06:56:32 <elliott> terrorised the owner of this random wiki
06:56:41 <elliott> by trying to make him switch to his nonexistent veebeewiki software
06:56:45 <monqy> dagoth ur, mad god.....:(
06:56:46 <elliott> As I have pointed out on Wiki talk:About, you may NOT move Festipedia to MediaWiki and you may NOT unilaterally alter the hosting arrangements for this wiki. This is an FR Heritage Group project. All decisions about the hosting arrangements for this wiki will be made by the Heritage Group Committee and no-one else. Please stop this IMMEDIATELY --Peter Harrison (talk) 18:54, 20 June 2008 (UTC)
06:56:46 <pikhq_> AKA "the defining work of US comics".
06:56:55 <elliott> I didn't mean to do that. Why I needed FestWiki? For a private wiki called V.F.D.. Dagoth Ur, Mad God (Talk contribs E-mail) 00:53, 21 June 2008 (UTC)
06:58:40 <elliott> monqy: im going to sing [[Talk:Esme]] over the premade backing tracks offered by this "Magic GarageBand" functionality
06:59:15 <monqy> magic garageband? didn't microsoft try something like that too?
06:59:21 <monqy> I remember it being hilarious but that's all
06:59:37 <pikhq_> Hasn't GarageBand had that for a while now?
07:00:12 <elliott> predefined backing tracks?
07:00:16 <elliott> and a predefined song structure?
07:00:17 <monqy> http://www.youtube.com/watch?v=3oGFogwcx-E
07:00:30 <monqy> the most amazing thing
07:00:32 <elliott> monqy: yeah songsmith is amazing but this isnt the same thing
07:00:43 <elliott> i have to have watched like fifty videos of putting popular songs through that thing
07:02:40 <monqy> is magic garageband at least amazing
07:03:32 <elliott> monqy: damn i didnt leave enough time to actually read it out i was too busy doing cheesy backing vocals first
07:03:37 * elliott listens to this trainwreck
07:03:39 <pikhq_> I get the feeling Songsmith works best because people tend to do fairly bland song structures by default.
07:03:51 <elliott> monqy: its done effects to my voice
07:03:52 <elliott> so it sounds like a guitar
07:05:39 <elliott> monqy: yeah im just going to upload this as it is
07:05:49 <monqy> i wish my voice was a guitar
07:06:14 <pikhq_> Well, you could get a talk box.
07:06:21 <elliott> monqy: its called Talk Esme Baby by the way
07:06:37 <elliott> apparently the drum track is called "Hard Working"
07:07:58 <elliott> monqy: uploading be very scared
07:10:18 <elliott> pikhq_ should be scared too i expect him to listen to this amazing work of art
07:11:14 <elliott> pikhq_: monqy: http://www.mediafire.com/?oz8yd7s17bgv2zp
07:13:58 <monqy> I like how I didn't understand a word
07:14:14 <elliott> monqy: well the talk page only starts like
07:14:17 <elliott> three quarters of the way through
07:14:22 <elliott> did you catch "i can't do it, i can't do it" at the end
07:14:27 <elliott> as i realise i have a url and a reply to go and 0 seconds lefr
07:15:04 <monqy> I got sort of a icadoih/icadoih
07:17:52 -!- monqy has quit (Quit: hello).
07:18:01 <elliott> oh man he leaves jsut as i stumble upon the best idea
07:32:39 -!- oerjan has joined.
07:33:26 <elliott> oerjan i read out the implementations section of the brainfuck article
07:33:58 <elliott> CLEARLY YOU WANT TO LISTEN TO THEM
07:34:07 -!- MigoMipo has joined.
07:34:07 <elliott> oh wait they're flacs. MY ONE WEAKNESS
07:42:46 <olsner> get a flac jacket to protect you from all those flacs
07:43:49 <elliott> "Did it work? You bet your sweet ILAsm it worked:" --oh my fucking god jeff atwood actually just said this, best coding horror "article" yet
07:54:03 -!- elliott has quit (Remote host closed the connection).
07:55:54 -!- elliott has joined.
08:11:17 -!- choochter has joined.
08:35:04 -!- choochter has quit (Ping timeout: 263 seconds).
08:46:04 <elliott> oh hey oerjan can i bug you about... some thoughts i had for... a ring programming language :<
09:09:09 <oerjan> it's probably going to just go around in circles, though
09:10:35 <elliott> oerjan: I was basically thinking that you could have + be parallel evaluation like has been thought here before, but the problem is that you need inverses; my idea was that every instruction in the language could be dependent on some "global" state or channel of data or whatever
09:10:48 <elliott> So you can send _any_ program into an infinite loop by simply tweaking the global data appropriately
09:11:03 <elliott> So -a becomes a sort of "hostile program" to a, using the definition of the instructions to simply send any loop it enters into an infinite one, etc.
09:11:15 <elliott> This has the fun consequence that even a simple output instruction has to be able to enter an infinite loop based on some global data
09:11:41 <elliott> Also to do a+b = b+a while still having output I was thinking you'd just do all output via bits, and output zero before one always
09:12:04 <oerjan> elliott: so 0 is an infinite loop? you know that 0+a = a is also an axiom?
09:12:22 <elliott> oerjan: whichever program terminates first (= fewest reduction steps) wins
09:12:25 <elliott> and the whole evaluation stops
09:12:41 <elliott> oerjan: but of course, you can't have a+a = a unless a=0...
09:12:52 <elliott> oerjan: if a does output, then obviously intermingling the output fixes this
09:13:01 <elliott> but I don't know how you would make a pure function fail to add to itself
09:13:13 <elliott> so I guess every operation has to try and detect itself running and mess with the global data I mentioned
09:13:14 <oerjan> um "whichever program terminates first wins" looks like it could break with _three_ programs
09:13:19 <elliott> this is a really ugly way of thinking about it of course
09:13:49 <oerjan> hm except parts with a and -a obviously must interact somehow
09:14:06 <elliott> well, in a+(b+c), all three programs would run simultaneously
09:14:06 <oerjan> elliott: but i mean if you add a, b, c where a is shortest run
09:14:12 <elliott> because it'd step a, and step (b+c), which would step b, and step c
09:14:28 <elliott> basically you do it with small-step reduction in mind, or at least i did
09:16:11 <elliott> oerjan: = (a+b)+b'... admittedly, a's evaluation will get fucked up
09:16:19 <elliott> but b and b' will cancel each other out. unless a stops them.
09:16:32 <elliott> it has to be equal to a ofc
09:16:51 <oerjan> i guess it's not _obviously_ impossible
09:17:37 <elliott> why is haskell's type system so weeeeeak
09:18:08 <elliott> oerjan: oh I suspect proving it impossible would be a very deep and difficult result, not that i'm an expert of any kind :)
09:19:05 <elliott> oerjan: cpressey's page which lead me onto thinking about this made the point that a ring seems much harder to do than a group because it gets you fairly close to a euclidean domain, and computing gcd on programs seems intuitively like something that should be "impossible"
09:19:21 <elliott> "I suspect that the underlying reason that getting a ring language is hard (at least when you insist on sticking to "intuitive" operations) is because a ring is starting to approach a structure (a Euclidean domain) in which you can perform the Euclidean algorithm and obtain greatest common denominators. Now, if you could perform that algorithm on programs, you'd be able to decompose every program into "prime subprograms". This sounds intuitively
09:19:21 <elliott> a little too powerful — you'd be able to find programs which are in some sense optimal! I'm not certain this would actually *violate* established undecidability results like Rice's theorem, but it certainly sounds like it's edging up against them."
09:19:54 <oerjan> there are many rings which are _not_ euclidean domains though
09:20:23 <elliott> oerjan: but it's still getting closer :D
09:20:34 <elliott> aVec :: forall n. (Nat n) => n -> Vec n ()
09:20:35 <elliott> aVec (S n) = Cons () (aVec n)
09:20:42 <elliott> Couldn't match type `Z' with `S n0'
09:20:42 <elliott> In an equation for `aVec': aVec Z = Nil
09:20:44 <coppro> bank of canada decided to import australian plastic money
09:20:57 <elliott> coppro: your long national nightmare is finally over
09:21:07 <oerjan> elliott: because Z is not a successor. hth.
09:21:10 <coppro> elliott: actually, it's worse right now, I'm in the USA
09:21:14 <elliott> oerjan: THAT MAKES NO SENSE
09:21:20 <coppro> where the solution to counterfeiting problems is "add more ink"
09:21:28 <coppro> eventually all US bills will just be solid green
09:21:31 <elliott> the best kind of money is edible
09:22:10 <elliott> `addquote <coppro> elliott: actually, it's worse right now, I'm in the USA <coppro> where the solution to counterfeiting problems is "add more ink" <coppro> eventually all US bills will just be solid green
09:22:14 <HackEgo> 460) <coppro> elliott: actually, it's worse right now, I'm in the USA <coppro> where the solution to counterfeiting problems is "add more ink" <coppro> eventually all US bills will just be solid green
09:22:32 <elliott> oerjan: no but seriously how do i do this kind of recursion :(
09:23:13 <elliott> coppro: stfu noob, youve never lost a friend in the battlefield of the typesystem
09:23:19 <elliott> i've used every extension :(
09:23:33 <elliott> class (Nat n) => AVec n where aVec :: Vec n ()
09:23:33 <elliott> instance AVec Z where aVec = Nil
09:23:33 <elliott> instance (AVec n) => AVec (S n) where aVec = Cons () aVec
09:24:20 <elliott> "This (rigid, skolem) type variable" --GHC
09:24:52 <coppro> clearly all programming should be done in differential graph theory
09:25:06 <oerjan> i guess i carry some responsibility since skolem was norwegian
09:25:11 <elliott> Ticket #4499 (closed bug: fixed)
09:25:11 <elliott> Last modified 7 months ago
09:25:11 <elliott> "skolem type variable" is bad for usability (and beginners)
09:25:34 <elliott> heh, (rigid, skolem) was the fix
09:25:46 <elliott> class (Nat n) => AVec n where aVec :: n -> Vec n ()
09:25:46 <elliott> instance AVec Z where aVec Z = Nil
09:25:46 <elliott> instance (AVec n) => AVec (S n) where aVec (S n) = () `Cons` aVec n
09:25:54 <elliott> (forall r. (Nat r) => r -> a)
09:26:03 <elliott> withNat :: (forall r. (Nat r) => r -> a) -> Int -> a
09:26:03 <elliott> withNat _ n | n < 0 = error "intNat: negative argument"
09:26:03 <elliott> withNat f n = withNat (f . S) (n-1)
09:26:08 <elliott> why is typeclasses like wtf :(
09:26:11 <HackEgo> 131) <fungot> alise: why internet is like wtf
09:26:19 <elliott> [asterisk]why typeclasses is like wtf :(
09:27:18 <oerjan> `run echo '#!/bin/sh' >bin/wtf
09:27:39 <elliott> {-# LANGUAGE RankNTypes, GADTs, FlexibleInstances, UndecidableInstances, IncoherentInstances #-}
09:27:44 <oerjan> `run echo 'echo "$1 is like wtf"' >>bin/wtf
09:27:45 <elliott> straight up gangsta every day
09:28:03 <elliott> instance AVec Z where aVec Z = Nil
09:28:03 <elliott> instance (AVec n) => AVec (S n) where aVec (S n) = () `Cons` aVec n
09:28:03 <elliott> instance (Nat n) => AVec n
09:28:11 <elliott> it just won't see the last instance
09:28:48 <elliott> *** Exception: /home/elliott/Code/gentuple/gentuple.hs:32:10-26: No instance nor default method for class operation Main.aVec
09:30:59 <elliott> oerjan: what is the name for those (forall r. (Blah r) => r -> a) -> ConcreteType -> a things btw?
09:31:00 <oerjan> `run sed -i 's/"/"why /' bin/wtf
09:31:06 <HackEgo> why type classes is like wtf
09:31:13 <elliott> they're a way to turn runtime input into types, sort of
09:31:18 * oerjan might be getting the hang of this
09:33:02 <oerjan> hm they're to a type class like foldr is for lists, you mean?
09:33:28 <elliott> they're for type-level values
09:33:47 <elliott> its so boring that ive literally forgotten how to type it
09:33:57 <elliott> oh hm my idea is almost working
09:34:05 <elliott> aha, more gadts are helpin
09:37:29 <elliott> Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (
09:37:29 <elliott> Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () Nil)))))))
09:37:33 <elliott> )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
09:41:36 -!- SimonRC has quit (Ping timeout: 260 seconds).
09:41:43 -!- SimonRC has joined.
09:44:34 <elliott> oerjan: argh, I can't eliminate the runtime values
09:56:26 <elliott> the comments on this blog post are great, im trying to find a post calling bitcoin a ponzi scheme that doesn't use "nerd" as a putdown of anyone who supports bitcoin
09:56:30 <elliott> (there are no such comments)
09:56:56 <elliott> "Sorry, but any “currency” that flucuates in value by a factor of 20 within weeks, and was created by a pseudonymous person who may or may not be Japanese, and whose primary exchange does not have a physical address, is a joke. It Bitcoins were backed in gold, and could be traded on existing commodity markets that are run by adults, totally different story.
09:56:56 <elliott> Basically if you buy a currency that is not liquid or backed by a commodity that can be traded on real markets (versus a toy market operated by World of Warcraft types), you’re a moron, and deserve to lose your shirt."
09:57:08 <elliott> sometimes i think the best way to determine the quality of something is to see how stupid everyone who dislikes it is
10:10:35 -!- oerjan has quit (Quit: Later).
10:14:33 -!- Vorpal has joined.
10:33:00 -!- Tritonio has joined.
10:37:39 -!- Tritonio has quit (Client Quit).
10:40:51 -!- Slereah has joined.
10:55:45 -!- aloril has quit (Ping timeout: 250 seconds).
10:56:14 -!- ais523_ has joined.
10:57:30 <ais523_> hmm, I spent most of yesterday working on an esolang
10:57:40 <ais523_> but it really needs an interp for me to be sure I have the semantics right
10:57:50 <ais523_> the difficulty is not making them work, but making them intuitive
10:57:56 <elliott> ais523_: you should have spent it doing something productive, like making an avant-garde reading of our brainfuck article's implementations list
10:58:10 -!- Patashu has joined.
10:58:14 <ais523_> were you trying to scare off a troll?
10:58:26 <elliott> no, we just noticed how ridiculously large and terrible it is
10:59:04 <ais523_> well, there are a lot of BF impls out there
10:59:12 <elliott> then it quickly degenerated into me trying to narrate [[Talk:Esme]] over one of GarageBand's terrible premade backing songs and running out of time
10:59:22 <elliott> and then it applied a guitar effect to my voice because it was accidentally a guitar track
11:01:16 <ais523_> good thing I wasn't here at the time, then
11:02:02 <ais523_> meanwhile, I've been running a program for over 24 hours (getting close to 48 now) which is calculating digits of pi, in binary
11:02:06 <ais523_> so far, it has found four digits
11:02:14 <ais523_> I hope it will find the fifth some time this week
11:02:24 <elliott> (-ee digits was the continuation)
11:02:33 <ais523_> then I'll probably shut it down
11:02:34 <elliott> ais523_: esolang? vhdl? :-P
11:02:44 <elliott> `addquote <ais523_> meanwhile, I've been running a program for over 24 hours (getting close to 48 now) which is calculating digits of pi, in binary <ais523_> so far, it has found four digits <ais523_> I hope it will find the fifth some time this week
11:02:45 <HackEgo> 461) <ais523_> meanwhile, I've been running a program for over 24 hours (getting close to 48 now) which is calculating digits of pi, in binary <ais523_> so far, it has found four digits <ais523_> I hope it will find the fifth some time this week
11:02:58 <ais523_> it's a haskell program translated to an algol dialect, then compiled to vhdl, then the resulting hardware is being simulated
11:03:15 <ais523_> the program is one that would be expected to translate pretty badly to hardware, it uses lazy lists and recursion a lot
11:03:20 <elliott> how fast would it be on an irl vhdl
11:03:34 <ais523_> rather faster, it managed something like 5 or 6 digits in a few seconds
11:03:54 <ais523_> because if two digits in a row were the same, the only way to notice was that an LED turned off for one clock cycle
11:03:57 <ais523_> which is a few nanoseconds long
11:04:11 <elliott> ais523_: if you wrote a pi calculator idiomatically, how fast would the fpga do it?
11:04:18 <elliott> that is, in your hypothetical functional hardware lang
11:04:40 <ais523_> I imagine it would be pretty fast if it used iteration and memoization of intermediate results
11:04:45 <elliott> what's the efficient method of looping with your stuff?
11:04:59 <elliott> ais523_: iteration = tail recursion
11:05:12 <ais523_> yes, but that's a special case of iteration
11:05:18 <ais523_> to be precise, tail recursion on commands
11:05:22 <ais523_> rather than on arbitrary functions
11:05:58 <elliott> so does your compiler actually take bona-fide non-idealisedconcurrent algol?
11:06:24 <ais523_> we're trying to create a practical language based on the mathematical one by unidealising it again
11:06:35 <ais523_> but it isn't massively similar to any of the officially numbered versions of algol
11:06:42 <elliott> third question, why didn't you make it not look like algol and do the world a favour :P
11:07:07 <ais523_> although it isn't indentation-sensitive
11:07:10 <elliott> what does the pi program look like?
11:07:16 <elliott> or are you not at liberty to disclose that information :)
11:08:15 <ais523_> hmm, I wonder if the original Haskell is online somewhere?
11:08:34 -!- aloril has joined.
11:08:52 <elliott> ais523_: i'm more interested in seeing what the dialect actually looks like
11:09:49 <ais523_> well, to start with, it has everything-is-an-expression; it only has three nonterminals in its BNF, for expressions, types, and comma-separated lists of expressions
11:09:58 <ais523_> *comma-separated lists of identifiers
11:10:15 <ais523_> together with precedence rules
11:10:26 <ais523_> so you don't have to put parens absolutely everywhere
11:11:05 <ais523_> here's an example: \a.(new x := a; x := !x + 5; !x)
11:11:24 <ais523_> which is a function that takes an argument, stores it in a variable, adds 5 to the variable, then returns the value of the variable
11:11:36 <ais523_> \a.(new x := a in x := !x + 5; !x)
11:11:44 <ais523_> in rather than ; because it's scoped
11:13:22 -!- ais523_ has changed nick to ais523.
11:13:26 -!- ais523 has changed nick to ais523_.
11:14:24 <elliott> ais523_: thanks; now I know how your language works without you having to get fired for revealing your trade-secret pi calculation program :D
11:14:50 <ais523_> the pi program is annoyingly repetitive
11:14:58 <ais523_> because at the moment, you can't use the same function both inside and outside a recursive scope
11:16:05 <ais523_> that's technically correct given how the compiler works, but rather non-obvious
11:16:17 <ais523_> and sufficiently annoying that it's probably better just to let the user be wrong and silently correct them
11:30:44 <ais523_> hmm, Oracle vs. Google is being amusing
11:31:01 <ais523_> Google pointed out that Oracle's expert's estimation of damages assumed that the only reason that people bought Android phones was to view Google's adverts
11:31:11 <ais523_> which is an interesting theory, at least
11:31:17 -!- Phantom_Hoover has joined.
11:31:31 <Phantom_Hoover> Oh look elliott is here to feast upon the blood of the living.
11:31:32 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
11:35:18 -!- Lymia has quit (Quit: bbl).
11:36:21 <Phantom_Hoover> 04:16:18: <Sgeo> As in.. the amount of mass in a nucleon
11:37:11 <Phantom_Hoover> 04:22:14: <pikhq> *That's including electrons you dolt*.
11:39:22 <lambdabot> Data.Typeable typeOf3 :: Typeable3 t => t a b c -> TypeRep
11:39:22 <lambdabot> Data.Typeable typeOf2Default :: (Typeable3 t, Typeable a) => t a b c -> TypeRep
11:41:27 <ais523_> you want functions that take the first/second/third element of a triple?
11:41:34 <ais523_> it's simple enough to write them yourselves
11:41:50 <ais523_> in fact, on average it's faster to write a quick utility function by hand than to see if it's in the standard library
11:44:28 <elliott> ais523_: I know, I was just trying to "golf" something
11:44:38 <elliott> also, that last line is really worrying, Hoogle exists for a reason
11:44:42 <elliott> you can find what you want instantaneously
11:44:48 <elliott> also, the Prelude is so tiny that not having it memorised is a crime
11:44:51 <ais523_> you have to type the query
11:45:06 <ais523_> (\l. match (a,_,_) with l -> a)
11:45:12 <ais523_> isn't much longer than the query you typed
11:45:18 <elliott> yep, that's certainly a bit of code that isn't valid haskell
11:45:20 <ais523_> although that's a crazy mix of Haskell and OCaml syntax
11:45:26 <elliott> hey ais523_, I never indent my code, it takes more keypresses
11:45:28 <Phantom_Hoover> http://www.davenicholas.me.uk/blog/view_post/31/esolang-esoteric-programming-for-iphone
11:45:31 <ais523_> I need linguistic decontamination wrt those two
11:45:40 <ais523_> and actually, I use Emacs, not indenting takes longer
11:45:42 <elliott> Phantom_Hoover: why are you pasting that link, you just found it from here
11:45:46 <Phantom_Hoover> Hmm, doesn't this violate Apple's terms of whatever the word is.
11:45:46 <elliott> Phantom_Hoover: listen to my dramatic readings btw
11:46:05 <ais523_> isn't the Haskell just (\(a,_,_).a)?
11:46:05 <lambdabot> cannot mix `.' [infixr 9] and `fmap' [infixl 9] in the same infix expression
11:46:22 <ais523_> so I'm mixing it with maths too
11:46:28 <ais523_> (OCaml is fun a -> a for lambdas)
11:46:37 <elliott> > nubBy isSpace "abc def q"
11:46:37 <lambdabot> Couldn't match expected type `GHC.Types.Char -> GHC.Bool.Bool'
11:46:41 <lambdabot> forall a. (a -> a -> Bool) -> [a] -> [a]
11:46:54 <elliott> ?hoogle (a -> Bool) -> ((a,a) -> Bool)
11:46:54 <lambdabot> Data.Graph.Inductive.Query.Monad orP :: (a -> Bool) -> (b -> Bool) -> (a, b) -> Bool
11:46:58 <elliott> ?hoogle (a -> b) -> ((a,a) -> b)
11:46:59 <lambdabot> Data.Graph.Inductive.Query.Monad orP :: (a -> Bool) -> (b -> Bool) -> (a, b) -> Bool
11:47:29 <elliott> :t uncurry (curry and . isSpace &&& isSpace)
11:47:29 <lambdabot> Couldn't match expected type `(a, b)'
11:47:30 <lambdabot> In the first argument of `curry', namely `and'
11:47:37 <elliott> :t uncurry ((curry and .) . (isSpace &&& isSpace))
11:47:37 <lambdabot> Couldn't match expected type `(a, b)'
11:47:38 <lambdabot> In the first argument of `curry', namely `and'
11:47:43 <elliott> :t curry ((uncurry and .) . (isSpace &&& isSpace))
11:47:44 <lambdabot> Couldn't match expected type `b -> c' against inferred type `Bool'
11:47:44 <lambdabot> In the first argument of `uncurry', namely `and'
11:47:44 <lambdabot> In the first argument of `(.)', namely `uncurry and'
11:47:49 <elliott> :t curry (uncurry and . (isSpace &&& isSpace))
11:47:50 <lambdabot> Couldn't match expected type `b -> c' against inferred type `Bool'
11:47:50 <lambdabot> In the first argument of `uncurry', namely `and'
11:47:50 <lambdabot> In the first argument of `(.)', namely `uncurry and'
11:47:53 <elliott> :t uncurry and . (isSpace &&& isSpace
11:47:54 <elliott> :t uncurry and . (isSpace &&& isSpace)
11:47:54 <lambdabot> parse error (possibly incorrect indentation)
11:47:55 <lambdabot> Couldn't match expected type `b -> c' against inferred type `Bool'
11:47:55 <lambdabot> In the first argument of `uncurry', namely `and'
11:47:55 <lambdabot> In the first argument of `(.)', namely `uncurry and'
11:48:08 <elliott> :t curry (uncurry (&&) . (isSpace &&& isSpace))
11:48:09 <lambdabot> Couldn't match expected type `(a, b)' against inferred type `Char'
11:48:09 <lambdabot> In the first argument of `(&&&)', namely `isSpace'
11:48:09 <lambdabot> In the second argument of `(.)', namely `(isSpace &&& isSpace)'
11:48:21 <elliott> :t uncurry (&&) . (isSpace &&& isSpace)
11:49:03 <elliott> ?hoogle (a -> b) -> (c -> b) -> ((a,c) -> (b,b))
11:49:03 <lambdabot> Data.Graph.Inductive.Query.Monad (><) :: (a -> b) -> (c -> d) -> (a, c) -> (b, d)
11:49:09 <elliott> it's one of the arrow functions
11:49:15 -!- FireFly has joined.
11:49:59 <elliott> :t curry (uncurry (&&) . isSpace *** isSpace)
11:50:00 <lambdabot> Couldn't match expected type `(Bool, Bool)'
11:50:00 <lambdabot> In the second argument of `(.)', namely `isSpace'
11:50:05 <elliott> :t curry (uncurry (&&) . (isSpace *** isSpace))
11:50:09 <elliott> ?unpl curry (uncurry (&&) . (isSpace *** isSpace))
11:50:09 <lambdabot> curry (\ c -> uncurry (&&) ((isSpace *** isSpace) c))
11:50:13 <elliott> ?pl curry (uncurry (&&) . (isSpace *** isSpace))
11:50:14 <lambdabot> curry (uncurry (&&) . (isSpace *** isSpace))
11:50:28 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b
11:50:40 <lambdabot> forall t t1 t2. (t -> t1 -> t2) -> (t -> t1) -> t -> t2
11:50:56 <elliott> (a -> b -> c) -> (a -> b) -> a -> c
11:54:38 -!- choochter has joined.
11:56:31 <Deewiant> ?ty curry $ uncurry (&&) . join (***) isSpace
11:57:04 <elliott> > nubBy (curry $ uncurry (&&) . join (***) isSpace)
11:57:05 <lambdabot> Overlapping instances for GHC.Show.Show
11:57:10 <elliott> > nubBy (curry $ uncurry (&&) . join (***) isSpace) "arcs \n opq"
11:57:22 <elliott> > nubBy (curry $ uncurry (&&) . join (***) isSpace) "arcs \n opq q"
11:57:55 <lambdabot> forall (a :: * -> * -> *) b c b' c'. (Arrow a) => a b c -> a b' c' -> a (b, b') (c, c')
11:59:08 <CakeProphet> elliott: so when does homestuck usually update?
12:00:00 <elliott> CakeProphet: it used to average five pages a day but now it's more like four per every two days since entering the Scratch fastforwarding, and a week's hiatus has just started
12:00:09 <elliott> but... every day, usually.
12:00:15 <elliott> unless there's a Flash coming. obviously.
12:00:26 <CakeProphet> that's a pretty good turnover for a webcomic.
12:00:40 <elliott> what did you expect with almost four thousand pages in two years?
12:01:36 <elliott> it's shown in several panels :)
12:02:10 <CakeProphet> I'm just got off workand such, so I'm kind of tired.
12:02:27 -!- BeholdMyGlory has joined.
12:02:44 <CakeProphet> also, that is why there had been less CakeProphet as of late. I'm sure everyone is terribly disappointed.
12:03:25 <CakeProphet> (that didn't stop being a thing or anything)
12:04:15 <elliott> <elliott> ?pl \f x -> join (fmap f x)
12:05:13 <CakeProphet> okay so (***) is like a fork in a pipeway?
12:06:58 <CakeProphet> it seems the tuples would get somewhat annoying to deal with.
12:09:01 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
12:09:22 -!- BeholdMyGlory has joined.
12:09:33 <elliott> Window manager warning: Received a _NET_WM_MOVERESIZE message for 0x34e0f1e (Iteratee I); these messages lack timestamps and therefore suck.
12:11:22 <ais523_> hmm, so far this program has pi at approximately 4
12:11:28 <ais523_> I'm expecting a fifth digit of -1 to revise the estimate to 3
12:11:55 <ais523_> (using 1, 0, -1 as binary digits allows you to express arbitrary computable reals without worrying about edge cases)
12:12:00 <CakeProphet> nice, then it would have single digit precision,
12:12:54 <CakeProphet> the circumfrence of all of my circles are TRIPLE their diameter.
12:13:07 <CakeProphet> Sounds more exciting right? That means customers will dig it.
12:14:04 <ais523_> that's actually possible in slightly curved space, isn't it?
12:14:26 <CakeProphet> dude I don't know. I am going to go ahead and assume that question is not directed at me.
12:14:58 <CakeProphet> Anything non-absurd is probably possible in some space.
12:15:24 <ais523_> it was rhetorical at the world in general
12:15:31 <ais523_> especially as I don't know either, but it seems plausible
12:17:29 -!- choochter has quit (Quit: lang may yer lum reek..).
12:18:22 <CakeProphet> I assume you're micro-optimizing the byte count of the source file, yes?
12:19:00 <elliott> CakeProphet: no, using haskell
12:19:13 <elliott> Stack space overflow: current size 8388608 bytes.
12:19:13 <elliott> Use `+RTS -Ksize -RTS' to increase it.
12:19:40 <Phantom_Hoover> <ais523_> that's actually possible in slightly curved space, isn't it?
12:19:45 <elliott> now, i could take this opportunity to learn how to fix space leaks and apply the stuff from ezyang's articles
12:19:48 <elliott> i could try stuffat random
12:22:43 <elliott> hmm, why do I have a stack leak??
12:22:54 <elliott> that's the one thing i shouldn't have
12:23:26 <lambdabot> Haskell pastebin: http://hpaste.org/
12:24:19 <elliott> i realise it actually counts incorrectly, im just getting used to enumerator first :P
12:26:47 <ais523_> why ? rather than @, btw? is @ on shift-2 for you?
12:27:13 <elliott> yep but actually alt+q works, i just got used to ? before i realised
12:27:18 <elliott> Deewiant: hes talking to me i think maybe
12:27:24 <Deewiant> @ used to be on altgr-2 for me
12:28:26 <ais523_> you press 2 and get @, and have to press shift-@ to get 2, or do I misunderstand you?
12:28:32 <ais523_> also, I was talking to elliott by mistake
12:28:41 <elliott> ais523_: i do use ?, though, since the Accident :)
12:28:43 <ais523_> and wow, that's a funky setup
12:29:05 <ais523_> good to hear answers from both of you, anyway, especially as they're interesting answers
12:29:07 <elliott> if you type in punctuation-heavy proglangs all day
12:29:18 <ais523_> what if the languages are also number-heavy?
12:29:24 <elliott> i like to swap () and [] on my keyboard
12:29:25 <ais523_> I tend to use numbers quite a lot when programming
12:29:27 <elliott> ( and ) are in such a stupid place
12:29:34 <elliott> and [] are at such a convenient place
12:29:35 <Deewiant> I type in punctuation-heavy natural languages as well :-P
12:30:02 <ais523_> I'm used to using random public computers, so I'm used to the standard qwerty layout, and don't even rebind caps lock
12:30:11 <elliott> oh i havent actually done it
12:30:12 <ais523_> for fear I'll get into the habit of actually pressing that key when it means caps lock
12:30:13 -!- aloril has quit (Ping timeout: 250 seconds).
12:30:18 <Deewiant> I use ()! more often than numbers probably no matter what language I'm using, natural or programming
12:30:36 <ais523_> Deewiant: that looks like Underload to me
12:31:01 <ais523_> hmm, I do have some rebindings in Emacs
12:31:18 <ais523_> I permanently rebound C-x M-q to fill-region-as-paragraph yesterday
12:31:28 <ais523_> but that's because a) it's really useful, and b) it doesn't have a keybinding by default
12:31:37 <ais523_> and that one is quite easy to remember, because M-q is fill-region
12:31:46 <Deewiant> Normally I wouldn't've there but that one was for you
12:31:49 <elliott> ais523_: how does that differ from m-q?
12:32:01 <Deewiant> Anyway, numbers are pretty rare :-P
12:32:13 <ais523_> elliott: it treats the region boundaries as paragraph boundaries
12:32:28 <ais523_> so it'll, say, delete double-newline inside the region, or not rewrap past the start or end of the region
12:32:40 <ais523_> which is useful if you're rewrapping something that doesn't fit into Emacs' usual definition of a paragraph
12:42:24 -!- elliott_ has joined.
12:43:22 -!- elliott has quit (Remote host closed the connection).
12:43:33 -!- aloril has joined.
12:44:42 <elliott_> did Deewiant fix my stack leak while i was away
12:44:57 <Deewiant> Nah, I don't know about iteratees
12:45:02 <ais523_> anyway, I fought down the urge to call the esolang elliottcraft, even though it would have been hilarious
12:45:12 <elliott_> ais523_: I approve of this idea, please reconsider
12:45:21 <elliott_> and now I have to read the context
12:45:33 <ais523_> CUBE is a pretty good name too, though, because it's based on RUBE, just 3D
12:45:51 <ais523_> and with far fewer primitives, as 3D gives you more options
12:46:01 <ais523_> it came out of that conversation we had about what was wrong with Minecraft
12:46:10 <ais523_> and I thought that a decent replacement would need an esolang to back it
12:46:26 <elliott_> "WARNING: due to the current encoding of iteratees in this library, careless use of the yield primitive may violate the monad laws. To prevent this, always make sure that an iteratee never yields extra data unless it has received at least one input element."
12:46:55 <ais523_> so it's a case of, build things yourself slowly one cube at a time, or create an infernal esolang machine to build them for you
12:47:09 <ais523_> a little like Dwarf Fortress in that way, I suppose, except you have cubes rather than dwarves
12:47:25 <ais523_> I'm pretty sure it's TC, anyway
12:47:25 <elliott_> sry dude you've been massively preempted
12:47:39 <ais523_> more than one impl of this would be fine
12:47:50 <ais523_> although I need to actually relearn 3D graphics to implement it properly
12:47:52 <elliott_> except you maybe don't plan to go to the point where venturing _anywhere_ alone is pretty much instantly fatal :)
12:47:57 <ais523_> (that is, language = impl of the concept, impl of the language = something else)
12:48:02 <elliott_> ais523_: oh, oklopol's is two dimensional
12:48:07 <ais523_> elliott_: no, in fact dying would be kind-of hard
12:48:14 <elliott_> ais523_: you could do a Dwarf Fortress-style clusterfuck hybrid UI
12:48:39 <ais523_> I think you'd have to either deliberately crush yourself, or have someone who knew what they were attacking suddenly send a huge load of nested conveyors at you
12:49:11 <ais523_> it was great when I realised you could put a mobile conveyor belt on the top of another conveyor belt and exceed what would otherwise have been the speed of light
12:50:40 <ais523_> other things, too, like if you have just the one inertia cube (= cube that can't be pushed and doesn't fall) to stand on and the entirety of the rest of the world is empty
12:50:52 <ais523_> then assuming you have some method of creating a small finite number of cubes, you can bootstrap a universe from there
12:51:12 <ais523_> I think, at least, I still haven't worked out a viable method of creating a plane from scratch
12:51:20 <ais523_> it seems possible, I just keep running into details
12:51:27 <ais523_> especially as I'm trying to do all this in my head
12:51:31 <elliott_> in minecraft, without falling blocks like sand it's impossible to lower yourself down more than N blocks without taking damage
12:51:35 <elliott_> I think that's what we worked out, anyway
12:51:41 <elliott_> if all terrain is more than N blocks below you
12:51:44 <elliott_> and you have no falling blocks
12:51:47 <elliott_> and only like half a heart of health
12:51:50 <elliott_> there is no way to get down without dying
12:51:57 <ais523_> I'm not sure if falls would be fatal in this
12:52:03 <ais523_> I don't think I'll have a health bar, just alive/dead
12:52:13 <ais523_> that is if there's a player at all, the world can exist just fine without one
12:52:22 <ais523_> (death would come only by being crushed)
12:53:12 <elliott_> bleh, I'm using a strict fold _specifically_ here, how on earth can there be a stack overflow?
12:53:22 <elliott_> maybe the enumerator library just sucks, i'll try iteratee again
13:00:07 -!- Lymia has joined.
13:03:10 <ais523_> anyway, oklopol's version seems interesting, I should look at it
13:05:12 <elliott_> oh, wait, I think I know why I have a stack overflow
13:06:31 <elliott_> OK, I get different /results/ to GNU wc
13:06:54 <ais523_> can you be faster while getting the same results?
13:07:05 <elliott_> Deewiant: My fold accumulator was (l,w,c)
13:07:12 <elliott_> Changing it to (!l,!w,!c) makes it go swimmingly
13:07:19 <elliott_> where go :: (Int,Int,Int) -> Word8 -> (Int,Int,Int)
13:07:19 <elliott_> go (!l,!w,!c) 32 = (l, w+1, c+1)
13:07:19 <elliott_> go (!l,!w,!c) 10 = (l+1, w+1, c+1)
13:07:21 <Deewiant> I thought about that but for some reason thought + was strict
13:07:58 <elliott_> ais523_: It's just a matter of skipping over consecutive whitespace when counting words
13:08:06 <elliott_> Deewiant: I consider "a b" to have three words
13:08:16 <elliott_> The file is totally invalid utf-anything, anyway
13:08:28 <Deewiant> I'm sure that LC_ALL=C will speed it up though
13:08:30 <ais523_> elliott_: I think Deewiant's saying that GNU wc may be trying to do multibyte and slowing down as a result
13:08:53 <elliott_> OK, now GNU just takes 0m0.726s
13:09:12 <elliott_> Also my code is shorter than GNU wc's :P
13:09:54 <elliott_> I'm gonna see whether iteratee or enumerator is faster at this now :P
13:10:24 <elliott_> Deewiant: ais523_: If you're curious, this is the code: http://sprunge.us/FMMF
13:10:43 <elliott_> If slightly broken for now :-)
13:10:49 <ais523_> if I'm not curious, is it still the code?
13:10:56 <Deewiant> Oh, except using a different iteratee?
13:10:57 <elliott_> Deewiant: I pasted an old, broken version
13:11:04 <elliott_> Which also had a massive stack leak
13:11:19 <elliott_> ais523_: You'll have to look at it to find out.
13:11:46 <ais523_> elliott_: no, that would defeat the point of the experiment
13:11:54 <ais523_> unless I wasn't curious at the time
13:12:03 <elliott_> ais523_: Just look at it REALLY passively.
13:12:04 <ais523_> but it'd be hard to look at it without being curious about it
13:12:08 <ais523_> unless someone paid me, or something
13:12:35 <ais523_> (note: without knowing what a deal /is/, accepting it can be a bad idea...)
13:16:19 <elliott_> As I expected, enumerator is consistently just a bit slower
13:16:27 <elliott_> I suspect because it uses lists for chunks rather than ByteStrings
13:16:31 <elliott_> ais523_: served me fine in Agora
13:16:56 <ais523_> I'm not sure if I think so...
13:17:15 <ais523_> part of the issue is that Agora's legal system was (and is) relatively spineless
13:17:20 <elliott_> ais523_: Hey, I'm consistently a player more often than Wooble and tswett
13:17:58 <ais523_> what do you think of Pavitra's ambiguous registration attempt, btw?
13:18:13 <elliott_> But yeah, you're right, I don't even know how you'd go about getting exiled; I'm honestly surprised everyone's just forgiven Yally, since he kept up his violation spree even /after/ his point was made
13:18:30 <elliott_> ais523_: I think the silly overly-accepting definition of registration makes it way too ambiguous to judge without being a mind-reader
13:18:35 <elliott_> I suspect he's not a player because he wanted there to be ambiguity
13:18:43 <elliott_> If it was another action, I might actually have to think about it
13:19:08 <ais523_> I tried to argue once that attempting an ambiguous registration was itself evidence that you wanted to be a player, but I think I got appealed and overruled on that one
13:19:27 <elliott_> Maybe people expressing a general liking of Agora on the lists and participating regularly should count as wanting to be a player
13:19:35 <elliott_> You clearly want to participate, and have no objection to the game
13:19:59 <elliott_> oh no, oleg already did a benchmarked wc with iteratees
13:20:22 <ais523_> and, being oleg, it is necessarily better than any other wc anyone can ever right?
13:20:36 <elliott_> probably, he sure seems to have paid a lot of attention to it
13:20:45 <elliott_> ugh he does it really elegantly
13:20:50 <ais523_> note: for some reason, my typing-out-of-habit converts sounds to key sequences, not words to key sequences
13:20:52 <elliott_> he does line-counting and char-counting and word-counting completely separately
13:21:04 <elliott_> because iteratees let you do that while still only processing the input stream once
13:23:12 <Deewiant> You might be able to speed it up by putting them together manually
13:23:30 <elliott_> Deewiant: I'll try and replicate his program first with a modern iteratee library
13:23:43 <elliott_> Since nobody actually uses his AFAIK :P
13:23:48 <elliott_> Does anyone actually use Oleg code directly? :-)
13:27:35 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:31:31 -!- cheater_ has quit (Ping timeout: 264 seconds).
13:33:56 <elliott_> egh, how do you even combine two...
13:56:55 -!- copumpkin has joined.
13:56:56 -!- copumpkin has quit (Changing host).
13:56:56 -!- copumpkin has joined.
13:59:48 <elliott_> copumpkin how do iteratees work i need the two minute version
14:00:03 <elliott_> how do i run two iteratees in parallel with the iteratee package :D
14:00:10 <elliott_> can't find it in the documentation :(
14:00:11 <copumpkin> beats me, I don't know the packages for them
14:00:13 <elliott_> i am close to giving up, on everything
14:02:01 <elliott_> eneeCheckIfDone :: (Monad m, NullPoint elo) => ((Stream eli -> Iteratee eli m a) -> Iteratee elo m (Iteratee eli m a)) -> Enumeratee elo eli m a
14:09:10 -!- ais523_ has quit (Quit: Page closed).
14:24:29 <elliott_> im bringing out the big boys, wc on one gig file
14:26:28 <elliott_> wc takes fourteen seconds, even with LC_ALL=C
14:28:27 <lambdabot> forall a. (a -> a -> Bool) -> [a] -> [[a]]
14:28:34 <elliott_> > groupBy (not . isSpace) "abc def quux"
14:28:34 <lambdabot> Couldn't match expected type `a -> GHC.Bool.Bool'
14:28:52 <elliott_> > groupBy (\a b -> not (isSpace a) && isSpace b) "abc def quux"
14:28:53 <lambdabot> ["a","b","c ","d","e","f ","q","u","u","x"]
14:28:59 <elliott_> > groupBy (\a b -> isSpace a && isSpace b) "abc def quux"
14:29:00 <lambdabot> ["a","b","c"," ","d","e","f"," ","q","u","u","x"]
14:29:04 <elliott_> > groupBy (\a b -> not (isSpace a && isSpace b)) "abc def quux"
14:47:17 <Lymia> elliott_, your Haskell wc was faster than the C one?
14:47:56 <elliott_> Lymia: yes, although it's not quite fair:
14:48:10 <elliott_> - I don't actually count words properly (but I did something _as expensive_ as doing it properly :))
14:48:24 <elliott_> Although I suppose the only extra feature wc has is... multibyte support
14:48:28 <elliott_> And I turned that off with LC_ALL
14:48:45 <elliott_> Lymia: So yeah, ha ha ha, I beat GNU with twenty lines of Haskell.
14:48:56 <elliott_> ...and a bunch of good libraries.
14:49:57 <Lymia> How much run-time overhead is there to Haskell code vs C code anyways?
14:50:12 <elliott_> ask a question that makes sense and perhaps you will receive an answer :)
14:54:07 <Lymia> What does sense mean?
15:00:20 <Patashu> it depends what you're using to run the haskell code
15:00:55 <Patashu> also, isn't there that special cpu that's designed to speed up haskell
15:00:59 <Patashu> the reducertron or something
15:01:43 <elliott_> it doesn't actually run haskell
15:01:46 <elliott_> just a subset graph reduction language
15:01:58 <elliott_> but yeah it reduces purely functional programs super fast
15:03:08 <Patashu> haskell -> reduceron compiler gogogo
15:04:00 <elliott_> ghc core is pretty close sort of
15:05:15 -!- hiato has joined.
15:08:22 <hiato> greetings elliott_
15:10:00 <hiato> salutations, Lymia
15:10:15 <hiato> is today a particularly good day Lymia ?
15:10:53 -!- variable has joined.
15:12:10 -!- MigoMipo has quit (Read error: Connection reset by peer).
15:35:14 -!- myndzi has quit (Ping timeout: 258 seconds).
15:38:34 <elliott_> WHAT OTHER PROGRAMS _ARE_ THERE
15:38:57 -!- IronEagle has joined.
15:40:33 <elliott_> @Mehrdad Even if Haskell has a procedural language for IO there is a big difference between Haskell and Scheme. Say that you write [putStrLn "ABCDE", putStrLn "12345"] in Haskell. This will not do any IO. It's a list of two IO computations, but they have to "get in contact" with main to actually execute. So IO values really do behave like any other values in Haskell, except that main is special. – augustss 2 days ago
15:40:33 <elliott_> @sdcvvc: Thanks for the link, looking at it right now. @augustss: I don't see how the fact that everything is delayed makes Haskell purely functional... if you delay it, it's still going to happen, but it's just later than when you think. How does that make any difference? – Mehrdad yesterday
15:43:51 -!- monqy has joined.
15:50:16 -!- Lymia has quit (Ping timeout: 260 seconds).
15:50:47 -!- Lymia has joined.
15:56:14 -!- DocHerrings has joined.
16:00:17 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
16:00:18 <DocHerrings> Okay, Eodermdrome Interpreter v2.0 complete
16:01:16 <DocHerrings> Anyone want to help me debug? I promise it looks better - I even used comments! ;) http://pastebin.com/WudDDi4Y
16:04:23 <elliott_> i am rather tired so i do not know how much help I will be :)
16:04:33 <elliott_> (defun graph-transform (subgraph sclosed replacement rclosed)
16:04:36 <elliott_> doesn't defun have implicit progn
16:05:15 <DocHerrings> And yes, sorry. To many if statements and etc mean I reflexively use progn to be safe.
16:05:36 <elliott_> "sorry"? i was just curious :)
16:05:41 <elliott_> and by much better, does it run the example or not? :D
16:05:52 <elliott_> ais was here earlier, you just missed him :(
16:06:32 <elliott_> if oerjan's program doesn't i suspect it's simply broken, the program that is
16:07:37 <DocHerrings> Well, it does work... now I just have to make it a bit less deterministic. As it is, rules are checked in-order.
16:09:13 -!- myndzi has joined.
16:13:03 -!- IronEagle has quit (Read error: Connection reset by peer).
16:13:11 -!- IronEagle has joined.
16:13:45 <elliott_> DocHerrings: you might want to permute the rules or similar rather than using icky unreliable random numbers :)
16:14:17 <DocHerrings> That's what I was thinking. Maybe scramble the rule table every 5 iterations?
16:15:48 <DocHerrings> elliott_ : I think I know why orjan's program does not work. I think he forgot the closed node degree rule.
16:16:29 <elliott_> DocHerrings: i'd scramble it every iteration, more fun
16:18:00 <Phantom_Hoover> DocHerrings, wait, you wrote an Eodermdrome interpreter?
16:18:46 <DocHerrings> Sorry. We can compare notes/implementations some day.
16:20:24 <DocHerrings> I honestly can't imagine a better way to implement it than I did, so it would be interesting to see some other method.
16:21:32 <elliott_> i hope DocHerrings realises all this hostility is false :D
16:21:48 <DocHerrings> Hold on, oerjan's code might be correct. I made one assumption that I meant to ask ais about.
16:22:18 <Phantom_Hoover> Also I was totally going to use Haskell to do it so my implementation is better even though it doesn't and probably won't exist.
16:23:34 <DocHerrings> Is it ironic that someone beat me to implementing my own language?
16:24:58 <IronEagle> DocHerrings: no, but it is funny as all hell.
16:25:46 <DocHerrings> I blame python for making it to easy. And it seems the Arborealis bug died out already.
16:26:01 <Phantom_Hoover> IronEagle, sorry, you realise that Eodermdrome wasn't implemented for quite a few years.
16:26:02 <Sgeo> What would happen if the FURscript person came here?
16:26:37 <Phantom_Hoover> Sgeo, we would all be nice to him in a clearly sarcastic way.
16:27:21 <Sgeo> IronEagle, http://esolangs.org/wiki/FURscript whoever made this
16:27:31 <IronEagle> what do you all hate about FURscript?
16:28:22 <IronEagle> elliot_: it doesn't seem that bad. it's bad, but its not THAT bad.
16:28:45 <elliott_> [DRVFREE="DIRECTORY"] CHECKS THE SPACE OF THE DRIVE (MB'S)
16:28:45 <elliott_> [DIRFORMAT="DIRECTORY","BYPASSSECURITY?"] FORMATS A DRIVE AND ASKS WHETHER TO BYPASS ALL RESTRICTIONS
16:28:51 <elliott_> [SYSDIAG] CHECKS THE OS VERSION
16:29:06 <elliott_> this is a random string of words where some commands have : and others a space and others = and it has no control flow
16:29:19 <elliott_> it defines "procedures" but not what a procedure is, how it's named, anything
16:29:29 <DocHerrings> And the caps... well, that is just par for course in hell.
16:29:40 <elliott_> it's amazing really, it betrays a complete lack of understanding of... any possible concept of programming
16:29:56 <Sgeo> It's like HQ9+ except the author thinks it's usable
16:30:11 <IronEagle> elliott_: well, it does seem to be only a concept. It doesn't say that the compiler that will implement it can't have variables
16:30:33 <Sgeo> Ooh! Variables as an implementation-defined feature
16:31:03 <elliott_> all I'm saying is, if the articles in [[Category:Shameful]] don't set off major alarm bells in your head, you _might_ be reading them wrong
16:31:18 <elliott_> apart from Esme, Esme shouldn't set off alarm bells, it's just the best language.
16:31:20 <Sgeo> I just created an awesome awesome language.
16:31:27 <elliott_> Sgeo: is it everything is implementation defined
16:31:38 <elliott_> i can do literally everything with it
16:32:52 <IronEagle> elliot_: I just see potential. there is a language created to be the hardest to understand, WHY NOT a language meant to be the most hated language?
16:33:09 <elliott_> IronEagle: but the guy who made it is, according to the source who dumped it there, completely serious and sincere about it
16:33:13 <elliott_> and doesn't even think it's an esoteric language
16:33:20 <elliott_> The person who designed this language was 100% serious about it and the vb6 compiler, but I think he got as far as a text box and a copyright notice before going back to programming his graphics calculator. --Einsidler 10:44, 24 Nov 2006 (UTC)
16:33:29 <DocHerrings> I thought that was Malbore's nitch anyways...
16:33:36 <elliott_> Phantom_Hoover: I'll add an Esme interpreter to EgoBot.
16:33:42 <Sgeo> Hey, I liked programming my graphics calculator!
16:33:58 <elliott_> !veebeewiki\esmerelda BootStrapInstall:E S M E; \E\S\M\e\I\n\s\t\al\l
16:34:23 <elliott_> Phantom_Hoover: Please go to http://www.vfd.org/esmeralda-cgi-bin/egobot.pl to use it.
16:34:45 <Sgeo> Sounds vaguely PESOIX related, which is PSOX related...
16:34:55 <Sgeo> The creator of Esme is a blasphemer!
16:35:28 <Sgeo> http://esolangs.org/wiki/Esme
16:35:35 <Sgeo> "The VeeBeeWiki wiki software needs Esme and Perl to run. The software also needs EsmeCSS: and EsoShell: namespaces."
16:35:54 <elliott_> IronEagle: we're still talking aren't we?
16:36:20 <elliott_> Phantom_Hoover: ive been sending you /msgs
16:36:24 -!- IronEagle has quit (Read error: Operation timed out).
16:36:29 <Phantom_Hoover> If I haven't responded, it probably means I didn't have anything to say.
16:36:48 <elliott_> Phantom_Hoover: inside i am crying
16:36:54 <Phantom_Hoover> Or that my goddamn connection went down but it's been pretty good for the last couple of days.
16:37:15 <elliott_> i just said "HELLO CAN YOU HEAR ME" did you get that
16:37:18 <elliott_> if so your connection is not down
16:37:24 <DocHerrings> The shameful category really needs to exist.
16:37:39 -!- aloril has quit (Ping timeout: 250 seconds).
16:38:19 <elliott_> DocHerrings: If we create the page, the Great Summoning will occur, and Graue will reap our souls from the deep.
16:39:11 <DocHerrings> elliott_: then we will save it for the great Ending, when FURscript becomes popular.
16:39:25 <elliott_> maybe ironeagle created furscript and we hurt their feelings :(
16:39:53 <Phantom_Hoover> elliott_, I have had one or two congenial emails from graue; may I brave his terrible wrath?
16:40:05 <elliott_> STUX TRIED AND WE NEVER HEARD FROM HIM AGAIN
16:40:18 <DocHerrings> Nope, because even ironeagle admitted that it was a hateful language, elliott_
16:41:41 <DocHerrings> Oh, and I am terrified to admit that oerjan's program is almost certainty wrong.
16:42:22 * Phantom_Hoover casts himself in front of DocHerrings to take the blow.
16:42:37 <DocHerrings> NNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
16:43:23 <DocHerrings> Would it make it worse if I fix the program?
16:44:13 <elliott_> That would be thinking yourself as good as oerjan.
16:44:49 <DocHerrings> elliott_ : GASP, that's impossible! Best not to anger him then.
16:47:05 <DocHerrings> Well, here is the assumption that has me stumped: Are all connections unique?
16:47:59 <elliott_> you cannot possibly hope to answer such questions without oerjan's phd
16:48:07 <DocHerrings> To put it graphically, is 'ab' the same as 'aba'?
16:49:12 <DocHerrings> The problem is, no matter what I assume, oerjan's program still terminates after the first match.
16:50:08 -!- aloril has joined.
16:55:01 <DocHerrings> Well, oerjan's program does not work in either case, and I did make that assumption.
16:56:38 <Phantom_Hoover> Come to think of it, I'm sceptical of oerjan's init structure.
16:57:23 <Phantom_Hoover> I parse miewehit as (m-i-e-w) (e-h) (i-t)m which isn't how he does it.
16:57:30 <Sgeo> <insert snarky and inappropriate comment here>
17:19:41 <Sgeo> Dear Global Agenda updater: Please stop guessing time based on percentage and the assumption you're downloading the entire game again.
17:20:17 <Sgeo> That was a fasst 9 hours
17:21:59 -!- oerjan has joined.
17:24:54 <DocHerrings> Okay, I will admit, my bad. I missed a very important tidbit in the specs.
17:27:04 <DocHerrings> How the heck am I going to implement this? The shape if of the graph is what matters, nothing else.
17:27:54 <Phantom_Hoover> I should've looked at your code, I could have saved you hours.
17:28:22 <DocHerrings> Yes, I was. But I was calculating it strictly. I had all nodes being unique.
17:29:48 <oerjan> DocHerrings: um the nodes in a given rule are distinct, if that's what you mean
17:30:57 <oerjan> they certainly should be distinct. they're just not necessarily the same from each application of a rule to the next.
17:31:48 <DocHerrings> Well, all that needs to be changed is the subgraph matching portion. Not too bad.
17:32:13 <oerjan> oh wait, are you still confused about whether aba == ab
17:32:36 <Phantom_Hoover> DocHerrings, sorry, let me get this straight: were you matching nodes by label to detect subgraphs?
17:32:38 <Phantom_Hoover> DocHerrings, erm, what are you labelling created closed nodes as?
17:32:46 <oerjan> different occurences of the same letter in a rule are identical nodes, of course
17:33:02 <oerjan> *occurrences, er lemme look that up
17:33:53 <DocHerrings> Phantom_Hoover: The nodes were identified internally by letter, making this implementation essentially a 'strict' eodermdrome.
17:34:21 <Phantom_Hoover> oerjan, yeah, but it looks like he stores the whole graph as (label,label) where label is a character.
17:34:25 <Phantom_Hoover> DocHerrings, you mean there can't be more than 26 nodes?
17:35:32 <DocHerrings> Phantom_Hoover: well, this explains two things, one: the implementation felt too easy, and two: I was puzzled how a limited system could be turing complete.
17:36:18 <Phantom_Hoover> DocHerrings, FWIW, your label system is salvageable with some modifications.
17:36:58 <DocHerrings> Phantom_Hoover: Yes, I am aware. The set up is sound, just the graph re-writing system needs work.
17:37:53 <elliott_> when all is said and done maybe i'll write THE BEST haskell eoderm
17:39:05 <DocHerrings> Okay, so all the parts of graph-transform need to be changed, as well as subgraphp. That should be the entirety of the problem.
17:40:04 -!- copumpkin has quit (Ping timeout: 276 seconds).
17:41:50 <Phantom_Hoover> DocHerrings, your subgraph detection code looks too short to be implementing proper isomorphism detection.
17:42:25 <elliott_> "It needs to be more complicated!"
17:43:41 <DocHerrings> The beauty of my system (when I thought it worked) is that it was simple. Now it's going to get very complicated.
17:45:13 <Phantom_Hoover> DocHerrings, there is some comfort to be found in the fact that the parser is extremely simple.
17:45:58 -!- copumpkin has joined.
17:45:59 -!- copumpkin has quit (Changing host).
17:45:59 -!- copumpkin has joined.
17:47:36 <Phantom_Hoover> Hmm, what's a good way of representing graphs in Haskell to start with?
17:48:08 <elliott_> and also HANDS OFF MY LANGUAGE
17:48:18 <DocHerrings> Whelp, I guess I will log off now. I leave my code to whoever wants it http://pastebin.com/WudDDi4Y . If you have an idea, go at it. I will work on it in the interim.
17:48:33 <Phantom_Hoover> elliott_, I was not-writing an Eodermdrome interpreter before it was cool.
17:48:44 <quintopia> oh, eodermdrome is grasp's tarpit. got it.
17:49:20 <oerjan> terrible misspelling of ais523 you've got there
17:49:39 -!- DocHerrings has quit (Quit: ChatZilla 0.9.87 [Firefox 4.0.1/20110413222027]).
17:49:47 <elliott_> oerjan: can i just say that your program is pretty
17:50:13 <oerjan> i spent some time substituting letters at the end
17:52:49 <quintopia> Phantom_Hoover: it looks like the primary operation is the subgraph transformation. this would make it grasp without the ability to define your own initial graph or classes of graphs.
17:53:38 <Phantom_Hoover> It's like saying the primary operation of Lazy K is combinator substitution.
17:54:44 <quintopia> what happens when when a command happens? a subgraph gets transformed. program execution consists of repeatedly transforming subgraphs (in arbitrary order). i'm not seeing what you're hung up on
17:55:00 <Phantom_Hoover> quintopia, it's essentially the imperative/declarative difference.
17:55:47 <elliott_> Phantom_Hoover: oerjan: http://www.mediafire.com/?kpprnmm3wiyqdpp
17:56:27 <quintopia> nevertheless, it looks like implementing eodermdrome in grasp would be more trivial than in any other language
17:56:52 <elliott_> Phantom_Hoover: You record it, then, with your superior knowledge of Gaelic pronunciation or whatever.
17:57:02 <elliott_> oerjan: sure hope you're listening :<
17:58:08 <Phantom_Hoover> For one thing, 'miewehit' should be pronounced 'mee-ay-way-heet', not 'my-ewit".
17:58:23 <elliott_> Phantom_Hoover: Recording or shut up.
17:58:33 <elliott_> You're just racist against my accent.
18:07:19 -!- Wamanuz2 has quit (Remote host closed the connection).
18:07:46 -!- Wamanuz2 has joined.
18:13:40 <oerjan> <elliott> :t curry (uncurry (&&) . (isSpace *** isSpace))
18:16:22 <oerjan> elliott_: also, were you trying to combine multiple spaces to one?
18:16:54 <lambdabot> forall b c a. (b -> b -> c) -> (a -> b) -> a -> a -> c
18:16:59 <oerjan> because i'm guessing you didn't just want to keep the first one
18:17:18 <oerjan> > unwords . words $ "<elliott> :t curry (uncurry (&&) . (isSpace *** isSpace))
18:17:19 <lambdabot> lexical error in string/character literal at end o...
18:17:36 <oerjan> > unwords . words $ "arcs \n opq q"
18:18:00 <elliott_> <oerjan> elliott_: also, were you trying to combine multiple spaces to one?
18:18:00 <lambdabot> words s = case dropWhile isSpace s of
18:18:00 <lambdabot> s' -> w : words s'' where (w, s'') = break isSpace s'
18:18:52 <oerjan> well i wouldn't be _sure_ that unwords . words is slower...
18:18:52 <elliott_> oerjan: after i managed to have it run over a one gibibyte file in four seconds with constant memory usage -- seconds better than gnu wc even with multibyte explicitly disabled -- I decided I was done :)
18:18:59 <elliott_> no, as in, I wasn't using String
18:19:08 <elliott_> and I was working on partial blocks of data
18:19:09 <Phantom_Hoover> 04:17:09: <elliott> Isn't the problem with Eodermdrome efficient implementation?
18:19:26 <elliott_> oerjan: but anyway, I never quite got my word counting right, but what I was doing was approximately as expensive, so I consider it a Haskell victory anyway
18:19:33 <Phantom_Hoover> It shouldn't be too inefficient if you use the optimising trick Ullman's algorithm supposedly has.
18:19:38 <elliott_> oerjan: (the real success is Oleg's for inventing the iteratees I used)
18:19:52 <elliott_> (and actually he optimised wc before me, although he just zipped together byte/word/line counters rather than doing it manually)
18:20:00 <elliott_> (admittedly, with iteratees, it's hard to discern the difference)
18:20:00 <Phantom_Hoover> i.e. for known H it takes polynomial time to calculate if H is a subgraph of G.
18:21:46 <oerjan> Phantom_Hoover: well it's pretty obvious that's polynomial, that doesn't mean it's efficient :P
18:22:24 <oerjan> so hopefully ullman's algorithm does something cleverer
18:22:43 <oerjan> Phantom_Hoover: from the polynomial degree being something like the subgraph size?
18:23:21 <pikhq_> elliott_: I'd imagine that making wc efficient wouldn't be hard, especially compared to GNU wc, which undoubtedly has many GNU pessimizations.
18:23:35 <elliott_> pikhq_: indeed, but getting it short _and_ pretty is another thing entirely
18:23:36 <pikhq_> Also, C string handling is a bitch and a half.
18:24:34 <elliott_> any serious wc has to be streaming anyway
18:25:48 <elliott_> pikhq_: http://sprunge.us/VFNY
18:25:55 <elliott_> faster than gnu wc, and ridiculously short and readable
18:25:55 <pikhq_> Yeah, at a bare minimum it's going to have to load up a buffer and count chars, ' ' and '/n'. Already you're losing, as far as simplicity goes.
18:26:01 <elliott_> OK yes it counts spaces, not words
18:26:10 <elliott_> but when I did have something that did something wrong, but just as expensive as, counting words, it was just as fast
18:26:19 <elliott_> but yeah, look at that code, it's so pretty :D
18:26:57 <pikhq_> http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/wc.c For comparison.
18:27:19 <elliott_> pikhq_: i'm actually really tempted to write one that does multibyte too
18:27:29 <elliott_> and just have it as fast as possible while still looking really pretty in haskell
18:27:55 <elliott_> pikhq_: oh, and that thing literally has constant memory usage
18:27:59 <elliott_> as in, it doesn't even go up, down, up, down
18:28:09 <elliott_> it uses effectively 0 memory on top of the one meg ghc overhead, throughout the whole run
18:29:13 <elliott_> pikhq_: i assumed wc would like, almost as fast
18:29:22 <elliott_> but it's the difference between basically instant and a noticeable pause, heh
18:29:29 <elliott_> pikhq_: oh wait, that's unfair
18:30:02 <elliott_> pikhq_: ok, with LC_ALL=C, mine is only about twenty to thirty milliseconds faster. consistently.
18:30:11 <elliott_> i wonder how much of that is RTS startup.
18:31:02 <pikhq_> The default output for GNU wc shouldn't depend on locale.
18:31:10 <elliott_> pikhq_: it uses different algorithms
18:31:19 <elliott_> but it runs like ten to a hundred times faster if you use LC_ALL=C
18:31:26 <pikhq_> Seeing as its default is *byte*, word and newline counts.
18:31:36 <elliott_> pikhq_: yep, but it does it anyway
18:31:48 <pikhq_> You're fucking kidding me.
18:32:07 <elliott_> pikhq_: difference between point two seven seconds and point zero seven seconds
18:32:21 -!- ttm_ has quit (Ping timeout: 246 seconds).
18:32:24 <elliott_> difference between fourteen and, like, six seconds on a gigabyte file
18:32:34 <elliott_> $ time ./wcgood ~/.VirtualBox/HardDisks/Windows\ 7.vdi
18:32:40 <pikhq_> Counting words depends on locale.
18:32:44 <elliott_> yeah this thing pretty much scales perfectly
18:32:52 -!- ttm_ has joined.
18:33:14 <elliott_> pikhq_: does it? i mean, does gnu wc know that?
18:33:22 <elliott_> jesus christ this code is hideous
18:33:37 <pikhq_> One of the few things GNU stuff does right is localisation.
18:33:47 <elliott_> because you can encode a space differently?
18:33:53 <elliott_> they don't seem to do anything particularly smart
18:34:03 <elliott_> does iswspace do anything locale-specific?
18:34:09 <elliott_> or is it literally just isspace for wchars
18:34:16 <elliott_> pikhq_: well that's stupid, there's no way it should take that much time
18:34:20 <elliott_> pikhq_: decoding utfeight is trivial
18:34:29 <elliott_> pikhq_: anyway, the files im using are invalid utf
18:34:30 <pikhq_> All the is* stuff is locale-specific.
18:34:35 <elliott_> so it'd be weird if it tried to decode them and then just... silently failed
18:34:39 <Phantom_Hoover> "<elliott_> but it's the difference between basically instant and a noticeable pause, heh"
18:34:45 <Phantom_Hoover> " The behavior of iswspace() depends on the LC_CTYPE category of the cur‐
18:34:59 <elliott_> Phantom_Hoover: I realise the results are different, see above.
18:35:09 <elliott_> pikhq_: real0m46.428s real1m44.228s
18:35:32 <pikhq_> To do it right on a Unicode locale, you need to perform a database lookup.
18:35:57 <elliott_> pikhq_: the thing with words is that its so much harder to do than line counting
18:36:04 <elliott_> pikhq_: with line counting, you just check the ten bytes in each block
18:36:10 <elliott_> with words, you have to handle the ends
18:36:19 <elliott_> and pass on info about whether the end was space or a not
18:38:07 <elliott_> pikhq_: btw -m slows down gnu wc massively with a locale
18:38:13 <elliott_> like, even more than just having a locale and calling it normally
18:38:59 <pikhq_> Yes, it then has to perform a glyph count, which is non-trivial.
18:39:29 <pikhq_> What with combining characters.
18:40:30 <elliott_> pikhq_: I think I'll put off doing chars for now :P
18:40:35 <lambdabot> Data.Maybe catMaybes :: [Maybe a] -> [a]
18:40:35 <lambdabot> Data.Maybe maybeToList :: Maybe a -> [a]
18:40:35 <lambdabot> Prelude sequence :: Monad m => [m a] -> m [a]
18:41:41 <pikhq_> elliott_: Well, at the very least you'll have the advantage of Haskell's handling of it sucking less. :P
18:47:50 <elliott_> oerjan: how does $ interact with >> again
18:48:57 <oerjan> $ has lowest precedence
18:49:16 <lambdabot> The operator `GHC.Base.>>' [infixl 1] of a section
18:51:24 <oerjan> > const >> f $ a :: Expr
18:52:34 <oerjan> > return >> f $ a :: Expr
18:52:35 <lambdabot> Ambiguous type variable `m' in the constraint:
18:53:12 <elliott_> ?pl I.zip it countWords >>= \(r,n) -> r { wcWords = n }
18:53:12 <lambdabot> expecting variable, "(", operator, ">>", ">>=", "=<<", ">>>", "^>>", "^<<" or end of input
18:53:21 <oerjan> how is that ambiguous, return is a function
18:53:23 <elliott_> ?pl I.zip it countWords >>= \(r,n) -> ifuckinghateyouass r
18:53:23 <lambdabot> ifuckinghateyouass . fst =<< I.zip it countWords
18:53:39 <elliott_> ?pl (\(r,n) -> ifuckinghateyouass r) `fmap` I.zip it countWords
18:53:40 <lambdabot> (ifuckinghateyouass . fst) `fmap` I.zip it countWords
18:54:11 <monqy> I got it confused with something else I guess
18:54:24 <monqy> probably a mixture of <$> and <**>
18:54:32 <oerjan> @hoogle f a -> (a -> b) -> f b
18:54:33 <lambdabot> Prelude fmap :: Functor f => (a -> b) -> f a -> f b
18:54:33 <lambdabot> Control.Applicative (<$>) :: Functor f => (a -> b) -> f a -> f b
18:54:33 <lambdabot> Control.Monad fmap :: Functor f => (a -> b) -> f a -> f b
18:54:35 <elliott_> oerjan: why do haskell records suck so much :(
18:55:58 -!- TOGoS has joined.
18:56:04 -!- TOGoS has left.
18:56:14 <lambdabot> forall b c (a :: * -> * -> *) d. (Arrow a) => (b -> c) -> a c d -> a b d
18:56:25 * Sgeo tries to imagine a GoL-like CA with conservation of mass
18:56:31 <lambdabot> forall c d (a :: * -> * -> *) b. (Arrow a) => (c -> d) -> a b c -> a b d
18:56:38 <elliott_> never mind I will just use fc-labels
18:57:08 <Sgeo> Here's a thought: 23/3 like usual, except a cell is only born if exactly 1 cell next to it would die, and visa versa (cell only dies if one cell next to it would be born)
18:57:22 <Sgeo> Are there unresolvable situations?
18:57:26 <Sgeo> Also, speed of light increases
18:57:46 <oerjan> Sgeo: i'm uncertain that would give a finite neighborhood
18:58:23 <Sgeo> Well, by would, I think I mean would under the 23/3 rule... but stil, yeah, hmm
18:58:45 <oerjan> in that case, i don't think it would actually preserve mass
18:59:39 <oerjan> because you could have 1 cell next to one that would be born/die, while _that_ cell has two neighbors that would die/be born (including your first one)
19:01:10 <elliott_> pikhq_: http://sprunge.us/YVON
19:01:10 <Sgeo> If there's two neighbors that would whatever, then nothing happens... but then, that gives an infinite neighborhood
19:01:14 <elliott_> pikhq_: i'm overengineering this good
19:01:42 <oerjan> exactly, my intuition says you would get a cascade of checking
19:03:18 <Sgeo> How else could conservation of mass be implemented? Or conservation of energy? Basically, I'm just trying to imagine a universe where there's resources for hypothetical life to compete for >.>
19:03:44 -!- Wamanuz2 has quit (Read error: Connection reset by peer).
19:04:01 <Sgeo> Mass sounds easier to implement
19:04:12 -!- Wamanuz2 has joined.
19:04:53 <oerjan> i recall once wondering if rule 110 had a conserved quantity, but i got stuck
19:05:49 <lambdabot> Data.Generics.Schemes everywhere :: (a -> a) -> a -> a
19:05:49 <lambdabot> Data.Generics.Schemes everywhere' :: (a -> a) -> a -> a
19:05:50 <lambdabot> Prelude until :: (a -> Bool) -> (a -> a) -> a -> a
19:06:42 <oerjan> didn't we agree it should be foldr (.) id last time?
19:06:52 <elliott_> does it make a difference for a finite list?
19:07:00 <elliott_> my operations are commutative, though
19:07:04 <elliott_> where opt field ctr = \it -> uncurry (setL field . Just) `fmap` I.zip it ctr
19:07:12 <elliott_> they're basically adding things to my result vector
19:07:45 <oerjan> elliott_: well maybe not really, but foldr preserves easy access to the outermost function which in haskell is applied first...
19:09:32 <oerjan> :t foldr (<<<) (arr id)
19:09:33 <lambdabot> forall (cat :: * -> * -> *) a. (Arrow cat) => [cat a a] -> cat a a
19:13:17 <Phantom_Hoover> <Sgeo> Here's a thought: 23/3 like usual, except a cell is only born if exactly 1 cell next to it would die, and visa versa (cell only dies if one cell next to it would be born)
19:13:44 <Phantom_Hoover> We speculated about this months ago and came to no conclusion.
19:14:13 <Phantom_Hoover> Then I read that paper on physical systems in CAs and discovered that it's trivial with the Margolus neighbourhood.
19:14:26 <Sgeo> I don't remember taking part in the discussion
19:14:41 <oerjan> maybe something similar to day and night would be easier, since that already has a sort of balance between on and off cells
19:18:13 <elliott_> oerjan: why isn't there a foldr' :D
19:18:15 <lambdabot> Data.ByteString foldr' :: (Word8 -> a -> a) -> a -> ByteString -> a
19:18:15 <lambdabot> Data.Foldable foldr' :: Foldable t => (a -> b -> b) -> b -> t a -> b
19:18:15 <lambdabot> Data.ByteString.Char8 foldr' :: (Char -> a -> a) -> a -> ByteString -> a
19:18:19 <elliott_> oh there is... just not in Data.List
19:20:29 <elliott_> oerjan: pikhq_: guess what's eighty-six lines already and can't even count bytes yet
19:23:51 -!- IronEagle has joined.
19:24:15 -!- cheater_ has joined.
19:24:33 <IronEagle> OK, I left when I killed the chat. as I was asking, what is wrong with a language being made to be the most hated?
19:25:28 <Phantom_Hoover> IronEagle, that's so utterly circular you could use it to measure pi.
19:25:58 <elliott_> you just didn't see our messages or something
19:26:04 <Phantom_Hoover> It's a language made to be most hated; by definition, *everything that could possibly be wrong with it, is.*
19:26:13 <oerjan> it's not dead, it's just resting
19:26:21 <elliott_> pikhq_: oerjan: http://sprunge.us/KeUQ hey look i... made it actually pretty?
19:26:23 <monqy> start with a brainfuck derivative
19:26:36 <pikhq_> GAH Brainfuck derivatives.
19:27:16 <Phantom_Hoover> Unfortunately I will have to brickbrain you before you can go any further. This is good, keep it up!
19:27:29 <IronEagle> elliott_: oh, sorry. But the way I see it, there is nothing wrong with having the perfect 'what not to do' example for people designing languages
19:27:31 <monqy> somehow make it even less original
19:27:42 <monqy> IronEagle: brainfuck derivative: don't do this
19:28:01 <pikhq_> IronEagle: The issue is we have too many of those.
19:28:19 <Phantom_Hoover> monqy, in all fairness, there are a couple of good ones, but they tend to be far removed from your standard BF derivative.
19:28:36 <IronEagle> monqy: are you kidding me? I'd do those just to be allowed to use the word fuck more often.
19:28:45 <monqy> IronEagle: how old are you
19:29:02 <Phantom_Hoover> IronEagle, http://esolangs.org/wiki/User:Phantom_Hoover
19:29:16 <IronEagle> monqy: I won't tell you unless you tell me yours.
19:29:20 <elliott_> fuck fuck fuck fuck fuckity fuck
19:29:31 <monqy> IronEagle: it was a rhetorical question
19:29:52 <elliott_> IronEagle: are you older than me
19:29:55 <oerjan> clearly IronEagle is 93
19:30:11 <Phantom_Hoover> BF + some more instructions is an infuriatingly common design.
19:30:19 <monqy> BF with renamed instructions
19:30:33 <elliott_> oerjan: its slower at counting characters than my older one, im going to profile it
19:30:46 <pikhq_> Notable changes in semantics are very, very uncommon.
19:31:09 -!- cheater_ has quit (Ping timeout: 244 seconds).
19:32:09 <elliott_> where go n (I.Chunk xs) = I.liftI $ go (n + B.length xs)
19:32:11 <elliott_> go n s@(I.EOF _) = I.idone n s
19:32:11 <pikhq_> Probably building up a thunk.
19:32:13 <elliott_> oerjan: does that look sufficiently strict to you?
19:32:18 <elliott_> pikhq_: yeah but i avoided all this last time...
19:32:27 <elliott_> option :: (WC :-> Maybe Int) -> Counter -> WCOption
19:32:27 <elliott_> option field ctr = \it -> uncurry (setL field . Just) `fmap` I.zip ctr it
19:32:58 <Phantom_Hoover> Hmm, can we make a page on the wiki called "Making an esolang: what not to do"?
19:32:59 <elliott_> option Main 468 0 66.5 68.4 68.0 69.3
19:32:59 <elliott_> countBytes Main 479 413864 1.5 0.9 1.5 0.9
19:33:01 <oerjan> elliott_: my brain is not properly on today
19:33:06 <elliott_> spending most of the time and allocation in option you say?
19:33:09 <elliott_> I do believe I have found my bug
19:33:52 <elliott_> oerjan: not even enough to make one teeny weeny function slightly more strict? :P
19:35:46 <elliott_> IronEagle: are you an eagle irl
19:36:45 <monqy> he probably killed the chat again
19:37:19 <oerjan> elliott_: well i now do notice it's not strict in n, if that matters
19:37:48 <elliott_> oerjan: that is very important because it's going to grow to beellions and beellions
19:37:50 <oerjan> how could it be, you are never testing n in go
19:38:31 <Phantom_Hoover> This is essentially a textbook example of what not to do with an esolang.
19:39:26 <elliott_> monqy: are you going to take IronEagle up on his ageswap
19:39:53 <oerjan> elliott_: perhaps that fmap is also building thunks of what to apply
19:40:15 <elliott_> oerjan: I think it is, but there's a finite, fixed (less than five) number of times it'll be composed onto itself
19:40:21 <elliott_> so I think the insidiousness is actually in the lhs, the uncurry thing
19:40:30 <elliott_> IronEagle: yeah, monqy tells you his age, you tell him yours
19:40:43 <Phantom_Hoover> IronEagle, you both meet in an inconspicuous location with a briefcase.
19:44:30 -!- esowiki has joined.
19:44:51 -!- esowiki has joined.
19:45:12 -!- esowiki has joined.
19:45:34 -!- esowiki has joined.
19:45:55 -!- esowiki has joined.
19:46:16 -!- esowiki has joined.
19:46:37 -!- esowiki has joined.
19:46:58 -!- esowiki has joined.
19:47:19 -!- esowiki has joined.
19:47:40 -!- esowiki has joined.
19:47:40 -!- glogbot has joined.
19:47:43 -!- HackEgo has joined.
19:48:53 -!- Gregor has joined.
19:49:19 -!- Gregor has changed nick to Guest13856.
19:49:35 <HackEgo> /tmp/hackenv.26795/bin/wtf
19:49:49 <HackEgo> #!/bin/sh \ echo "why $1 is like wtf"
19:50:05 <HackEgo> 131) <fungot> alise: why internet is like wtf
19:50:21 <elliott_> i could never give poor fungot a straight answer.
19:51:30 -!- zzo38 has joined.
20:00:53 <oerjan> !haskell :t \f -> uncurry (f . Just)
20:00:56 <EgoBot> \f -> uncurry (f . Just) :: (Maybe a -> b -> c) -> (a, b) -> c
20:01:19 <elliott_> oerjan: i think that whole option architecture may be elegant but flawed
20:01:31 <elliott_> I think it builds up a shitload of loops that just zip and zip and zip and process it and uh
20:01:38 <elliott_> Wait no that happens at the end
20:01:47 <elliott_> Maybe it's inlining countBytes into the option call
20:01:50 <elliott_> And thus measuring incorrectly
20:02:13 <elliott_> option :: (WC :-> Maybe Int) -> Counter -> WCOption
20:02:13 <elliott_> option field ctr = \(!it) -> do (!a,!b) <- I.zip ctr it; return $! setL field (Just a) b
20:02:19 <elliott_> No way that is taking up the entirety of my time and space.
20:03:04 -!- lambdabot has joined.
20:03:39 <oerjan> !vixen Are you female?
20:03:46 <oerjan> @vixen Are you female?
20:04:17 <lambdabot> http://code.haskell.org/lambdabot/COMMANDS
20:04:23 <elliott_> oerjan: no no no. he is the _evil_ part of lambdabot.
20:08:33 <lambdabot> i'll hafta plead the fifth on that one.
20:17:03 -!- IronEagle has left.
20:17:33 <quintopia> @vixen a simple yes or no will suffice
20:20:04 <lambdabot> i think you know the answer to that one, silly
20:20:23 <oerjan> @vixen Do you ever give a straight answer?
20:26:27 <elliott_> oerjan: ok, it is _definitely_ the function chain thing that's causing the leak
20:27:20 <elliott_> I seem to leak just by running the constant thingies
20:32:33 -!- blancnoir has quit (Quit: leaving).
20:41:24 <elliott_> oerjan: the space leak has reached "fucking inexplicable" level
20:41:35 <elliott_> sometimes I think laziness isn't worth it
20:42:13 <monqy> that's what I was going to say
20:42:30 <Robdgreat> the ULTIMATE in instant gratification
20:43:12 <elliott_> Phantom_Hoover: nah, it's basically a mechanical process to find out what i need to strictify :D
20:45:09 -!- cheater_ has joined.
20:52:43 -!- elliott_ has quit (Remote host closed the connection).
20:53:10 -!- elliott has joined.
20:53:12 <Phantom_Hoover> http://www.reddit.com/r/IAmA/comments/i5csn/iama_male_that_plans_to_raise_my_testosterone/
20:54:26 <elliott> see i thought from the title they were actually serious or whatever and was preparing myself for cringe
20:54:44 <monqy> I agree with elliott
20:57:05 <Phantom_Hoover> elliott, there's another thing saying that not masturbating for a week increases testosterone levels by 45.7%.
20:57:29 <monqy> this is just the worst
20:57:43 <elliott> Phantom_Hoover: cool, so it's actually not any less stupid than it looks at all?
20:58:02 <elliott> monqy: let's turn to the top ten items of the main page, perhaps there is something to redeem reddit there
20:58:04 <elliott> If homosexuality is genetic, wouldn't it have bred itself out of the population over the last few thousand years? (self.AskReddit)
20:58:44 <elliott> "Tay-Sachs is a genetic disease that usually kills its victims at a very young age, long before they are able to reproduce. It has not been bred out of the population because it is a recessive trait. Recessive traits, even if they affect reproduction, aren't completely removed from a population because of heterozygosity.
20:58:45 <elliott> Furthermore, homosexuals can, and often do, reproduce to pass on their dna. Think of historical times when women had little choice, lesbian or not."
20:58:55 <elliott> THEM HOMOSEXUALS JUST KEEP BREEDIN' WHETHER THEY WANT TO OR NOT
21:00:32 <Phantom_Hoover> "I found out that I am truly an Atheist. It was a hard lesson."
21:01:14 -!- kwertii has joined.
21:01:37 <Phantom_Hoover> A weight with the sun reflecting off it, with "Message from the gods" as the title.
21:02:12 <elliott> <Phantom_Hoover> "I found out that I am truly an Atheist. It was a hard lesson."
21:02:19 <Phantom_Hoover> A highly original comparison between a floppy disk and a micro SD card
21:02:24 <elliott> monqy: reddit used to be serious
21:02:47 <monqy> is there a serious reddit, or at least a reddit that is nonserious in a good way
21:03:00 <Phantom_Hoover> Aaaand... a very slightly witty "most interesting man in the world" meme.
21:03:10 <monqy> where by reddit I mean reddit equivalent
21:03:26 <elliott> monqy: i'm scared that there is
21:03:32 <elliott> monqy: i'm afraid that it might be slashdot
21:04:27 <elliott> "I think that kid might have the gay." http://www.reddit.com/r/pics/comments/i5fdo/i_wouldnt_want_to_mess_up_his_perfect_cheekbones/ quality comments
21:04:58 <elliott> "This isn't Chuck Norris' Dad, clearly."
21:05:27 <monqy> GIMME_DOWNVOTES -15 points 1 hour ago
21:05:32 <elliott> monqy where do you go to get not terrible links to things don't say this channel
21:06:02 <monqy> is that a trick question
21:07:03 <monqy> I typically only get terrible links, actually :(
21:08:07 <Phantom_Hoover> The links are a bit better, and you get an air of unbearable elitism!
21:08:17 <elliott> thanks but i get enough of that talking to you for five minutes
21:08:46 <Phantom_Hoover> Only a clearly inferior person would say something like that.
21:15:00 <elliott> "Last week I had a heart attack. As I sat in the emergency room gasping for breath the question of religion came up. I answered without thinking "atheist". The admissions nurse grinned, and told me that that was the first time in 20 years anyone had given that answer."
21:15:03 <elliott> monqy: this is going to be good post
21:15:12 <pikhq_> Y'know, reddit would be vastly improved by two features: tags, and the ability to ignore tags.
21:15:25 <elliott> pikhq_: people have been demanding tags since two thousand and five dude
21:15:27 <pikhq_> *Specifically*, the ability to ignore the tag "meme".
21:15:40 <elliott> like anyone would tag things "meme"
21:15:55 <pikhq_> Ah, right, this relies on people being intelligent.
21:15:55 <elliott> 19-year-old suspected of being mastermind behind computer hacking group LulzSec arrested in UK (content.met.police.uk)
21:16:03 <pikhq_> And memes get upvoted.
21:16:06 <elliott> pikhq_: no, it relies on them being motivated and also agreeing with you on tags
21:16:40 <pikhq_> How's about we just murder most of humanity?
21:17:26 <Phantom_Hoover> elliott, hey, that game with the coloured pegs is called Mastermind.
21:17:52 <pikhq_> Phantom_Hoover: Yes, but that leaves them still extant.
21:18:01 <elliott> Phantom_Hoover: you got that from the top comment
21:18:42 <oerjan> pikhq_: well given that these are presumably the _stupid_ people you want to send, chances are it's only time before someone opens the airlock
21:19:45 <elliott> no its the good people who go to amrs
21:20:01 <pikhq_> oerjan: "GOD TOLD ME THERE'S AIR OUT DERE"
21:20:16 <Phantom_Hoover> pikhq_, you vastly underestimate the scope of stupidity.
21:20:32 <oerjan> pikhq_: "DARWIN TOLD ME HE'S GOT AN AWARD FOR YOU"
21:30:56 -!- pikhq_ has quit (Ping timeout: 264 seconds).
21:34:42 <zzo38> Mr. _______ told you to make "59 eye 1 Mewtwo" deck.
21:35:49 -!- pikhq has joined.
21:41:57 <zzo38> Do you know how to make "59 eye 1 Mewtwo" deck?
21:55:36 <zzo38> SlashNET has some feature where it will display to me any time anyone uses the NS GHOST command (regardless of target)
21:58:41 -!- esowiki has joined.
21:59:18 -!- esowiki has joined.
21:59:59 -!- esowiki has joined.
21:59:59 -!- glogbot has joined.
22:05:18 <Phantom_Hoover> YouTube suggests "the devil went down to george" before "the devil went down to georgia".
22:06:23 <oerjan> someone really has it in for george
22:07:35 <Phantom_Hoover> The devil went down to George and said "hey, George, can I borrow a couple of your souls?" George lent him some, but the devil never gave them back.
22:07:51 <Phantom_Hoover> The rest of the song is about George trying to get the police to take him seriously.
22:08:58 -!- sebbu2 has joined.
22:08:58 -!- sebbu2 has quit (Changing host).
22:08:58 -!- sebbu2 has joined.
22:09:46 <Phantom_Hoover> 02:10:02: <pikhq> It is estimated that that would suffice for a whole-brain simulation from a low-level physics simulation.
22:10:03 <Phantom_Hoover> We don't know how a single neuron works, let alone how they interact.
22:11:09 -!- elliott has left ("Leaving").
22:11:18 -!- elliott has joined.
22:11:45 -!- sebbu has quit (Ping timeout: 240 seconds).
22:11:46 -!- sebbu2 has changed nick to sebbu.
22:11:47 <Phantom_Hoover> And I'm pretty sure they can't be abstracted significantly from the atomic level.
22:12:19 <elliott> wouldn't it be awesome if neurons were just super simple
22:13:23 <Phantom_Hoover> 02:25:33: <pikhq> No need for absurdly large quantities of energy, just a much faster computer than exists now.
22:13:35 <Phantom_Hoover> And, y'know, a precise understanding of how the brain works.
22:13:40 <elliott> Phantom_Hoover: so you don't think it's tractable to simulate neurons with pretty much anything but a direct recreation of a neuron, right?
22:14:17 <Phantom_Hoover> Biochemistry is an extremely complex thing, and you can't just pretend it isn't there and hope that nothing goes wrong.
22:14:27 <elliott> it always strikes me as trying to emulate a ridiculously parallel computer with a sequential one
22:14:31 <elliott> which will just NEver Work
22:15:54 <Phantom_Hoover> I mean, I only have idle speculation, but... there's no reason the brain is likely to be easy to optimise.
22:16:11 <zzo38> You can try but I don't know how well it is going to work
22:16:19 <elliott> Phantom_Hoover: the brain is actually compiled, god actually writes this like
22:16:24 <elliott> five hundred times bigger, modularly organised network
22:16:31 <elliott> and compiles it down to a superoptimised tight network
22:17:16 <oerjan> through fax? no wonder e's a little unstable
22:17:32 <elliott> oerjan: you know, e could be watching this channel right now.
22:17:43 <oerjan> AYEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
22:20:12 <zzo38> Calling "God" a "person" is what causes you to come up with these things. Better is to describe other way. Such as, "e could be watching this channel right now" would be irrelevant; "god actually writes this like five hundred times bigger..." nonsense and clearly untrue...
22:21:08 <elliott> oerjan: make the pain stop
22:22:16 <zzo38> Maybe you mean "paint"?
22:23:42 <elliott> oerjan: between this and a space leak
22:25:28 <oerjan> elliott: so basically you've been _very_ wicked in a previous life
22:26:46 <Phantom_Hoover> Surpassed only in wickedness by the wicked witches of the west and east.
22:27:19 <Phantom_Hoover> So wait, are you the wicked witch of the west or east?
22:28:56 <elliott> `addquote <Phantom_Hoover> The wickedest man of all. <Phantom_Hoover> Surpassed only in wickedness by the wicked witches of the west and east. <copumpkin> you talking about me again? <Phantom_Hoover> Yes. <copumpkin> k
22:28:57 <HackEgo> 462) <Phantom_Hoover> The wickedest man of all. <Phantom_Hoover> Surpassed only in wickedness by the wicked witches of the west and east. <copumpkin> you talking about me again? <Phantom_Hoover> Yes. <copumpkin> k
22:35:08 -!- Vorpal has quit (Ping timeout: 264 seconds).
22:35:59 -!- Phantom_Hoover has quit (Quit: Leaving).
22:38:32 <elliott> oerjan: heap profiles are not always helpful: http://i.imgur.com/bILdj.png
22:39:11 <monqy> so what's (474)option/ds_d2IT/proces...
22:39:47 <elliott> monqy: i suspect it is processOpts and option merged together by some kind of optimisation
22:39:54 <elliott> i have a feeling that countBytes has got merged in too, though
22:40:02 <elliott> meaning that the figures are rather unhelpful for tracking down the space leak
22:40:19 <monqy> perhaps compile without optimisation while tracking down the space leak, or would that unhelp too
22:40:38 <elliott> monqy: i think it'd unhelp because all the clever stuff ghc is doing to the code would not happen
22:40:43 <elliott> i'll try it if i can't track this leak down, though
22:40:56 <oerjan> -hc is the profile which doesn't require turning on profiling while compiling, isn't it?
22:41:00 <elliott> aha, a type breakdown is a bit more helpful
22:41:08 <elliott> oerjan: um i don't know, I thought I did
22:41:21 <elliott> ok so Stream is taking up the most well that's out of my hands
22:45:06 <elliott> I guess I'll have to sovle it tomorrow
22:48:04 <zzo38> How many people intentionally try to go to jail?
22:48:58 <quintopia> usually only former convicts who can't cope with the real world
22:49:51 <elliott> or people who would actually have better living conditions in prison, i suspect
22:50:49 <quintopia> i will accept much worse living conditions than prison to have my freedom
22:52:14 <zzo38> How good are you at Pokemon Card?
22:52:58 <elliott> quintopia: yeah, but you'd also stock up on gold if society collapsed, and also I doubt you've ever experienced _truly_ horrific living conditions, so I wasn't exactly using you as a benchmark
22:53:43 <zzo38> Did you know that ... Imakuni? wants you to play him as a basic pokemon but you can't
22:54:06 <quintopia> elliott: i'm not crazy, and my imagination is better than you give credit to.
22:54:34 <elliott> i didn't say you were crazy, and i never mentioned your imagination; you're the one assuming you'd be a good benchmark here
22:56:45 <quintopia> did i? i'm claiming that i am, yes, pretty typical. i know some people value security more than me, and others value freedom more than me. perhaps i'm a bit closer to the freedom end of the spectrum than average.
22:57:30 <elliott> there is no way i can communicate what i was trying to to you
22:57:41 -!- pikhq_ has joined.
22:57:50 -!- pikhq has quit (Ping timeout: 244 seconds).
22:59:33 <quintopia> zzo38: i'm not really into pokemon
23:00:28 <elliott> was that an xkcd reference
23:00:34 <elliott> @LulzSec lol U should Use the word "legitimate"more refrainly as ALL that FRAUD like ALL COURTS, THEIR "LAWS"..i.e STATUTES=ACTS of DECEIT
23:00:52 <monqy> /about what is this
23:00:59 <monqy> oh a lulzsec quote I've heard of them
23:01:07 <elliott> thats someone addressing them
23:01:29 <monqy> (i don't use twitter)
23:01:42 <elliott> "Stop fearing three-letter agencies, friends. They're humans with slightly more paper and fancier uniforms; they are just like you and me. :)"
23:01:42 <monqy> what is that guy trying to say
23:01:52 <elliott> --lulz security, rational people??
23:02:05 <monqy> and what's that babaou thing
23:02:24 <elliott> replying to "Ryan Cleary is not part of LulzSec; we house one of our many legitimate chatrooms on his IRC server, but that's it."
23:02:34 <elliott> i guess you shouldn't say legitimate because governments aren't legitimate? god knows
23:02:41 <elliott> http://twitter.com/#!/babaus2
23:02:42 <elliott> ..born..curious....gone ..furious.. Women = Beauty, Body, Brain..;-)...hmm.. Men = Mental, Midgets, Male...lol..
23:02:48 <elliott> i think we've found ourselves an intellectual guys
23:03:00 <elliott> tempted to do a dramatic reading of that line
23:03:39 <elliott> there is a twitter account called PhilosophyQuotz
23:03:49 <elliott> was PhilosophyQuotes taken, and if so, why was that their second choice
23:04:02 <elliott> http://twitter.com/#!/PhilosophyQuotz
23:04:06 <elliott> gangsta philosophy of the streets
23:04:30 <monqy> Philosophy quotes and quotes by philosophers.
23:04:47 <elliott> they might just quote like
23:04:57 <elliott> if he says something about philosophy
23:05:04 <monqy> http://twitter.com/#!/PhilosophyQuotes hmm
23:07:19 <elliott> "People secretly want all video game characters to be planes."
23:07:53 <zzo38> Maybe some people do.
23:08:13 <elliott> #esoteric -- come for the esolangs, stay for the zzo38
23:09:04 <monqy> is this plane fetishism, a joke, or just nonsense
23:09:07 <zzo38> And then you need to add ", leave for the ________" something too.
23:09:19 <elliott> monqy: everything is nonsense, i make sure to remove all the context i can when quoting
23:09:23 <elliott> #esoteric -- come for the esolangs, stay for the zzo38, leave for the zzo38
23:09:42 <monqy> does that mean leave because zzo38 is here or leave to follow zzo38 home
23:09:44 -!- zzo38 has set topic: #esoteric -- come for the esolangs, stay for the zzo38, leave for the zzo38 | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
23:12:01 <oerjan> it's just the plane truth
23:20:36 -!- onca has joined.
23:20:52 <elliott> onca: came here for the esolangs?
23:21:17 <zzo38> I have idea something that I would like to see in LLVM, is to have commands to deal with activation records and stack, such as one to mark the return stack, one to copy the return stack to the mark, and one to restore from the copy (any number of times until the mark and/or copy becomes invalid)
23:21:28 -!- azaq23 has joined.
23:21:34 <zzo38> As well possibly things that directly activate data stored in activations records somehow
23:22:05 <elliott> doesn't it have something for that though?
23:23:51 <onca> elliott, what's a esolang and how many do I need?
23:24:06 <zzo38> onca: Look at wiki and then you decide.
23:24:51 <onca> there's a poor chap in the # that is speaking to me in espainol and I was looking through channels for something with the -es or -sp in the title and stumbled on to this chan.
23:25:14 <elliott> oh here let me copy our wiki im lazy
23:25:18 <elliott> Welcome to the esoteric programming languages wiki! This wiki is dedicated to the fostering and documentation of programming languages designed to be unique, difficult to program in, or just plain weird. Here's how you can explore this wiki.
23:25:18 <elliott> An esoteric programming language is a computer programming language designed to experiment with weird ideas, to be hard to program in, or as a joke, rather than for practical use.
23:25:32 <elliott> we're very good at toying with newbies until they disappear
23:25:45 <elliott> we'd be happy to take on a patient gratis right oerjan
23:27:14 <Lymia> I disagree with that definition.
23:27:53 <elliott> how many times have you done the whole perl is an esolang stick i recall like at least three other times
23:28:02 <elliott> surely its getting old no matter how funny it was originally
23:28:57 <onca> that would include all programming languages.
23:29:08 <onca> should I start the bidding on ada?
23:29:19 <elliott> bidding? erm yes definitely sure.
23:29:36 <zzo38> onca: Why do you need bidding?
23:30:08 <onca> I dont need bidding.
23:30:15 <onca> just trying to liquidate
23:30:35 <onca> everything must go.
23:30:43 <elliott> im glad this channel doesnt have a really explicitly obvious name itd like halve our day to day irc funtimes
23:31:15 <onca> orange you glad I didn't say bananas?
23:31:35 <zzo38> Everything of what?
23:31:44 <oerjan> no, we like the occasional banana scheme
23:31:50 <monqy> I prefer bananas over oranges, myself
23:32:34 <oerjan> by the power of something
23:34:52 <elliott> goodnight, tomorrow i shall write best wc
23:36:09 <zzo38> You could have: i8* .mark() i8* .save(i8*) void .continue(i8*) void .discardmark(i8*) void .discardsave(i8*) Now you can make something similar to call/cc possibly
23:37:07 <oerjan> um you can do that with setjmp can't you, surely llvm supports that?
23:37:25 <zzo38> Yes it does support setjmp and longjmp
23:38:13 <zzo38> But I am not sure if it does what I am saying
23:39:09 -!- elliott has quit (Ping timeout: 252 seconds).
23:39:38 <zzo38> Simply restoring the stack pointer and frame pointer is not enough in some cases
23:41:24 <pikhq_> oerjan: The only usage of setjmp and longjmp that's not undefined is jumping up the stack.
23:43:31 -!- onca has quit (Quit: Leaving.).
23:45:54 -!- oerjan has quit (Quit: Good night).
23:55:09 <zzo38> This new way might help a lot of things
23:59:28 <Sgeo> Shut up and take my monkey!
23:59:48 -!- augur has quit (Remote host closed the connection).