←2009-06-24 2009-06-25 2009-06-26→ ↑2009 ↑all
00:00:08 <lament> and the rest of the progress, exponential as it is, is irrelevant
00:00:12 <ehird> I will disagree on the indication part.
00:00:44 <lament> (even though how is it exponential? Under what metric?)
00:01:04 <ehird> lament: AI improves self, thus becoming better at improving itself.
00:01:14 <ehird> AI improves itself better, thus becoming even better at improving itself.
00:01:18 <lament> ehird: .....
00:01:20 <ehird> AI improves itself way better, thus becoming even better at improving itself.
00:01:20 <ehird> etc
00:01:30 <lament> ehird: all that happens *after* we get self-improving AI
00:01:34 <Gracenotes> well, this does go bac kto recursion theory
00:01:34 <ehird> No duh.
00:01:37 <ais523> AI discovers its hardware isn't powerful enough to run
00:01:44 <lament> ehird: so it's irrelevant to the current problem
00:01:50 <lament> ehird: which is that we don't have such an AI
00:02:02 <Gracenotes> also, AI might improve itself in some areas, but becomes less flexible doing so
00:02:19 <ehird> Gracenotes: not necessarily.
00:02:32 <ehird> just make it not improve itself at the expense of not being able to improve itself as much.
00:02:35 <lament> ehird: once we get the AI, it might take days or moments for it to become ridiculously smart, but that's irrelevant
00:02:35 <Gracenotes> after all, flexibility and power are not infrequently at odds
00:02:46 <pikhq> lament: And the theory of singularity states that eventually there will be such an AI.
00:02:46 -!- ais523 has quit (Read error: 104 (Connection reset by peer)).
00:02:47 <ehird> lament: right; I'm not talking about that atm :-P
00:03:15 <ehird> anyway, it seems common to me that people read a brief overview of things and instantly assume people haven't already thought it through very well
00:03:24 <lament> having this AI in the first place is still a binary condition. Just like having time travel is a binary condition
00:03:35 <lament> neither is particularly dependent on the overall rate of progress
00:03:42 <Gracenotes> on a completely irrelevant point, I like the word "combinatorially" for exponential growth that depends on some factor other than time, like size
00:04:10 <pikhq> Except that it seems very, very likely that we will achieve one, given that it is only a matter of time until we have the resources to simulate an entire human brain.
00:04:30 <pikhq> (by simulating the functioning of each individual neuron and having a map of the neurons in a human brain)
00:04:44 <lament> simulating a brain is not very relevant to the problem of improving it.
00:04:58 <nooga> i doubt it's that simple
00:05:00 <pikhq> I strongly suspect there's better ways of *doing* that, but hey.
00:05:00 <lament> simulating a brain is mostly a technological challenge.
00:05:08 <ehird> Hypothesis: the more a hypothesis is taken to ridiculous extents in bad science fiction, the less likely people are to entertain a reasonable version of the hypothesis.
00:05:18 <ehird> (Someone make sci-fi that blows this out of proportion for the lulz, please.)
00:05:27 <Gracenotes> ooh! pick me!
00:05:35 <lament> analogy - I can play Mozart on the piano, but I can't write better music than Mozart wrote
00:05:48 <pikhq> And this simulation would quite likely be sufficiently intelligent to at least attempt to make itself better.
00:06:05 <nooga> pikhq: ppl can make themselves better?
00:06:09 <lament> pikhq: you were only talking of simulating a human brain. Presumably it will be as intelligent as a human.
00:06:20 <nooga> no, because they don't know exactly how are they built
00:06:22 <lament> pikhq: we can't simulate anything smarter than a human, because we don't know anything that's smarter
00:06:24 <pikhq> nooga: No, because we can't modify ourselves all that well.
00:06:35 <ehird> yeah, you can expose an emulated brain to itself, is the kicker
00:06:41 <Gracenotes> if I were a machine, thinking about pros and cons, I wouldn't make myself better; I would make myself more powerful.
00:06:50 <ehird> Gracenotes: see friendly ai
00:06:53 <lament> ehird: Humans have been studying human brains for centuries, with mixed and mostly disappointing results.
00:06:55 <ehird> this can be coded around
00:06:55 <Gracenotes> but I don't know if machines will evolve with this weakness :)
00:07:02 <ehird> What we need is computing power not just enough to run a human, but to run it faster than we do.
00:07:09 -!- augur has joined.
00:07:15 <ehird> That way, it can spend the time learning how its brain works without us all falling asleep.
00:07:31 <pikhq> lament: Improvement of such a brain would, of course, not exactly happen overnight.
00:07:35 <ehird> lament: because we don't have the ability to inspect a brain in every level of detail while it is running
00:07:39 <nooga> so you expect that a net of neurons will magically learn how to design chips and instruct ppl where to put these chips?
00:07:47 <lament> ehird: it's a human brain. It will get bored and want to fuck.
00:07:54 <Gracenotes> lol
00:07:57 <Gracenotes> castrate it!
00:07:58 <ehird> So simulate it fucking.
00:08:00 <lament> ehird: then it will realize it has no body, and get really fucking upset
00:08:22 <augur> i dont know what you kids are on about but lol
00:08:24 <nooga> it won't realise anything
00:08:31 <pikhq> nooga: Just like a net of real neurons does, yes.
00:08:32 <pikhq> :P
00:09:25 <nooga> brain simulation will be, at best, on a level of drooling infant
00:09:30 <lament> ehird: there're two possibilities, either simulating a human brain, which will not give you any new power over the billions of human brains already available; or creating something better than a human brain, which is hard.
00:09:52 <pikhq> nooga: Sweet -- it can learn!
00:09:53 -!- inurinternet has quit (No route to host).
00:09:55 <ehird> lament: or creating something not as good as a human brain, but with a distinctive thing it's good at: improving itself.
00:10:07 <lament> ehird: unfortunately that's magic
00:10:07 <ehird> It's like outsourcing to india except without the whole terrible programming thing.
00:10:12 <ehird> So's your mom.
00:10:12 <nooga> pikhq: how will it learn to learn?
00:10:21 <lament> ehird: this involves somehow making this thing, which is exactly what we can't
00:10:28 <ehird> nooga: because you're simulating neurons.
00:10:29 <pikhq> How does a human?
00:10:33 <ehird> your brain is made out of them
00:10:35 <ehird> pikhq: wait.
00:10:35 <lament> ehird: simulating a brain is a technological challenge; we know what to do, just not how
00:10:37 <ehird> nooga doesn't learn
00:10:41 <ehird> that's why he's so stupid! :DDDDDDDDDDDDD
00:10:49 <lament> ehird: making a brain that's good at improving itself is something we don't know how to do
00:10:53 <ehird> lament: what you're saying is "I can't, and it hasn't been done"
00:10:56 <pikhq> lament: We can simulate a brain, though. Just not a very complex one.
00:11:01 <ehird> that is not a statement that lasts for eternity.
00:11:09 <pikhq> Last I checked, we could simulate an earthworm's brain.
00:11:16 <lament> ehird: correct. Just as with time travel.
00:11:31 <nooga> pikhq: How does a human? << nobody knows exactly (?)
00:11:48 <ehird> lament: except it's arguable whether time travel works with physics. I don't see any argument that a mind that changes itself is impossible, and I don't believe there is a good argument.
00:11:54 <lament> ehird: it's just that you were saying it will happen soon, when in reality there's absolutely no indication that it will happen ever
00:11:56 <ehird> nooga: we don't have to know if we simulate all the neurons
00:12:02 <lament> ehird: since we don't know how to do it
00:12:09 <pikhq> lament: ... But we do.
00:12:11 <ehird> lament: we didn't know how to make computers 100 years ago
00:12:21 <ehird> babbage, then, is on crack.
00:12:21 <nooga> ehird: probably, the details are crucial here
00:12:29 <ehird> he's just wildly theorizing and we'll never make a compute.
00:12:29 <ehird> r
00:12:34 <Gracenotes> the brains will be upset that they are programmed in C, instead choosing to program themselves in high-performance Haskell!
00:12:34 <lament> pikhq: by "it", if you weren't following the conversation, i meant "simulating a brain that's like a human brain, but good at improving itself"
00:12:44 * pikhq tries to find the report of the guys running a simulation of a brain.
00:12:52 <lament> pikhq: since obviously just simulating a brain is not enough to solve any problem
00:13:29 <nooga> it's like an effort: let's make a submarine! i saw one! and then you go to a scrapheap buy tons of metal and weld it to resemble a submarine
00:13:38 <lament> that "but good at improving itself" part is magic - there's no indication we can even do this
00:13:45 -!- augur has quit (Read error: 104 (Connection reset by peer)).
00:13:49 <nooga> let's make brain! i saw one! it has neurons and everything
00:13:51 <lament> "let's build a ship that's just like a regular ship, but flies faster than light"
00:13:59 -!- augur has joined.
00:14:02 <ehird> nooga: that's a very bad analogy.
00:14:05 <ehird> we _know_ how neurons work.
00:14:15 <pikhq> An intelligence that could modify itself could.
00:14:18 <ehird> we _know_ how to simulate a glob of neurons.
00:14:22 <ehird> we've _done it_.
00:14:28 <ehird> it's just a matter of scale.
00:14:57 <nooga> and how do you know that simulation was correct
00:14:58 <lament> ehird: sure, simulating a brain is easy.
00:15:09 <pikhq> It's a matter of slicing up a cadaver's brain very, very thinly and noting exactly where every single neuron interconnects and sticking it into a neural net.
00:15:21 <ehird> lament: we've agreed. nooga is just busy being wrong
00:15:40 <nooga> pikhq: connections are dynamic
00:15:54 <nooga> AFAIK
00:15:56 <ehird> no shit
00:16:01 <pikhq> nooga: Yes, we know that.
00:16:13 <lament> pikhq: brains are a lot more complex than that, but we could just take it apart atom by atom and simulate that :)
00:16:23 <nooga> pikhq: It's a matter of slicing up a cadaver's brain very, very thinly and noting exactly where every single neuron interconnects and sticking it into a neural net. << then you would end up with a learned brain
00:16:28 <ehird> lament: simulating any region of space with our current physics requires infinite computation, IIRC
00:16:32 <ehird> pesky quantum physics
00:16:33 <nooga> probably a stupid one
00:16:43 <CESSMASTER> and choosing different random number generators would result in mood swings
00:16:58 <ehird> nooga: your hypothesis ONLY WORKS if there is a metaphysical, outside-the-brain, soul/mind.
00:16:59 <lament> ehird: anyway this whole issue is irrelevant to the actual problem
00:17:04 <pikhq> nooga: We've done that, just not with a very complex brain.
00:17:05 <ehird> Otherwise, it is exactly the person scanned.
00:17:10 <lament> which is developing an AI that can improve itself
00:17:18 <nooga> uhm
00:17:20 <ehird> nooga: and if you believe in such a soul, I don't care; it's unscientific, irrelevant and I reject it as an argument
00:17:21 <nooga> there's no soul
00:17:34 <ehird> then the brain is the mind and the mind we run will be the brain we scan.
00:17:35 <lament> humans have studied brains for centuries but don't know how to improve them, even theoretically
00:17:36 <nooga> it's riddiculous
00:17:42 <ehird> and there's no capacity for it to be a learned, stupid brain.
00:19:49 <nooga> i htink that humen brain is suited to process input data from humans body and such crap as feelings + remembering and forgetting etc etc
00:20:03 <ehird> feelings/remembering/forgetting are due to neurons and chemicals.
00:20:12 <nooga> if you build a silicon copy of that it would stay in constant darkness
00:20:18 <ehird> no
00:20:21 <ehird> it would just be blind.
00:20:28 <ehird> you're arguing that blind people are useless?
00:20:30 <pikhq> lament: Because we don't have a complete neuron map of it, of course.
00:20:31 <ehird> cool story bro
00:20:33 <nooga> blind/deaf everything
00:20:41 <ehird> anyway, we can probably give it sensors.
00:20:50 <nooga> do you know how to feed data right into the brain?
00:20:59 <nooga> like video streaming or what? :P
00:21:09 <lament> pikhq: having the map is not enough - we need to understand how to change the map to make the brain smarter
00:21:18 <nescience> and all the inputs!
00:21:29 <nooga> inputs are hard
00:21:30 <nescience> i like to think of memory as analagous to a sense
00:21:33 <pikhq> The brain is really flexible. We can stick video input on just about any input and the brain figures it out.
00:21:41 <nooga> i/o is hard
00:22:16 <pikhq> nooga: Don't have to get it to the right place.
00:22:17 <pikhq> Neuroplasticity means it just has to get into the brain at all.
00:22:30 <pikhq> (see: vision via tongue)
00:22:36 <ehird> remember that we've been evolving for a good amount of years to be resilient and accept a bunch of inputs and the lik
00:22:36 <ehird> e
00:22:52 <ehird> if it were überstrict about how everything was put together, there'd be a lot more dead people.
00:22:56 <lament> we've been evolving for a good amount of years and still aren't terribly bright
00:23:08 <nooga> ah
00:23:21 <ehird> lament: evolution doesn't care about whether we're clever or not.
00:23:29 <ehird> it does, however, care about us surviving until we breed a lot.
00:23:30 <lament> ehird: it obviously does
00:23:35 <ehird> lament: to a degree
00:23:37 <nooga> so you will hook up internet connection into that electronic spinal cord and kaboom
00:23:44 <nooga> chat with your digital brain on irc
00:24:04 <ehird> that happened in Achewood.
00:24:26 <nooga> because you expect that it would magically lean to produce "papa" string and irc message by recieving tons of irc messages
00:24:51 <pikhq> nooga: You're not familiar with neuroplasticity at all, are you?
00:25:00 <nooga> no
00:25:05 <ehird> he's polish. they're all dumb >:)
00:25:11 <ehird> (sameple size 2 :D)
00:25:24 <pikhq> That's what would happen, except that it would be creating a lot of syntactically invalid IRC at first.
00:25:27 <pikhq> ;)
00:25:33 <pikhq> And I mean a *lot*.
00:25:40 <ehird> .ckjstjio4ut98euf89dfug9fjditaerjkaH*&!&*@%^1378`19999v f hkj lk
00:25:43 <ehird> kju ir8y389w444u938
00:25:45 <ehird> Oh, hi guys
00:25:50 <ehird> Whoa, I c an do this by thinking?
00:26:02 <nooga> =.='
00:26:13 <ehird> Sex, must breed I wonder if it gives MUST BREED all my th OH GODDAMN I DON'T HAVE ANY ORGANS oughts?
00:26:13 <nooga> ehird: that was quite rude
00:26:24 <ehird> ↑ the first artificial brain's words
00:26:29 <ehird> nooga: :D
00:27:36 <nooga> okay
00:27:43 <nooga> i've read today about teaching maths
00:28:15 <Gracenotes> wow, I feel so special reading manga right to left. Amn't I special or something. riiiight.
00:28:38 <nooga> and the paper said that infants can't count, they even don't know that counting is possible and exists
00:28:40 <Gracenotes> (although to be fair I can read hebrew, albeit vowelled)
00:29:15 <nooga> but somehow the notice which figure depicts eg. more squares (they seem to like that one more and get upset when squares disappear)
00:29:36 <nooga> where did they learn that? IN MOTHER'S TUMMY?
00:29:55 <ehird> DIRECT FROM GOD
00:29:59 <ehird> PRAISE BE UNTO HIM
00:30:02 <nooga> there's no such thing?
00:30:03 <ehird> AND HIS SQUARE COUNTING POWERS
00:30:08 <ehird> nooga: HEATHEN!
00:30:41 <nooga> fuck god
00:30:47 <ehird> Hawt.
00:30:49 <nooga> it's instinct or something?
00:31:04 <nooga> how do you put instinct in artificial brain?
00:31:32 <Gracenotes> the most highly rated heuristics?
00:32:02 <nooga> and do you know how to write that into the brain?
00:32:14 <ehird> "YouTube is down for maintenance and will be back shortly."
00:32:17 <ehird> noooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
00:32:21 <ehird> nooga: INSTINCT IS PART OF THE NEURONS!!!!!
00:32:21 <nooga> what input laguage would you choose to program blank brain
00:32:24 <ehird> THE. BRAIN. IS. NEURONS.
00:32:27 <ehird> NEURONS.
00:32:30 <ehird> NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS NEURONS
00:32:31 <ehird> = BRAIN.
00:32:33 <ehird> got it‽‽‽‽‽‽‽
00:32:34 <nooga> dogs have neurons
00:32:39 <nooga> humans have neurons
00:32:41 <ehird> No shit sherlock
00:32:42 <pikhq> Yes.
00:32:42 <nooga> mice also
00:32:43 <pikhq> Yes.
00:32:46 <pikhq> Yes.
00:32:49 <nooga> even spider has some
00:32:53 <ehird> AMOEBAE HAVE NEURONS
00:32:54 <ehird> Wait, no.
00:33:03 <pikhq> There's attempts to get an entire mouse brain going.
00:33:21 <Gracenotes> INTERROBANG EFF YEAH
00:33:31 <pikhq> Gracenotes: LAWLWUT‽
00:33:37 <nooga> but how it's done that we don't lick our balls and so
00:34:09 <pikhq> nooga: ... Neurons...
00:34:10 <Gracenotes> I program in brain
00:34:27 <pikhq> Would you prefer for use to have a complete model of human cells and go from there?
00:34:38 <pikhq> Not going to be too long before we can do that.
00:34:48 <pikhq> s/use/us/
00:34:53 <nooga> pikhq: neurons what
00:34:57 -!- Dewio has joined.
00:35:16 <pikhq> nooga: The entire state and functioning of the brain is encoded in neurons.
00:35:23 <nooga> okay
00:35:29 <nooga> how to set the initial connections
00:35:32 <pikhq> We don't have to write into it what is already there.
00:35:33 <nooga> before running the brain
00:35:41 <pikhq> We take a map of the human brain.
00:35:53 <ehird> 00:33 nooga: but how it's done that we don't lick our balls and so
00:35:55 <ehird> AHAHAHAHAHAHA
00:35:55 <ehird> XD
00:36:08 <pikhq> And use that for the initial state.
00:36:18 <pikhq> That's all there is to it.
00:37:18 <pikhq> After that, we go into researching how to modify that while trying to get I/O connections working and get that brain working on the same.
00:37:21 -!- labo has joined.
00:37:36 <pikhq> (no guarantees, it might want to do something else entirely -- in which case we start another brain. :P
00:38:21 <nooga> and the copied personality gets consciousness and he's like "omfg, i'm deaf, i'm blind, i can't move or say anything, what a fucked up dream.... wait' what's that tingling?"
00:38:56 <nooga> and that tingling is a video stream from camera and an internet connection hooked up to the digital brain ;p
00:39:14 <pikhq> And eventually that tingling will reroute to the neural cortex.
00:39:30 <nooga> okay
00:40:17 <nooga> connect a network cable to your spinal cord and observe how fast you will start to browse porn in your head
00:40:51 <ehird> /sigh
00:40:57 <pikhq> ehird: Nooga really doesn't get the "we already can do this" bit, does he?
00:41:01 <ehird> pikhq: nope.
00:41:03 * Tidus35 hops out of nowhere to comment. In order for a digital system to host a conciousness it would probably need an inherent unpredictability/randomness with which that conciousness could wield it's free will.
00:41:20 <nooga> that'd require learning whole new language of impulses
00:41:32 <nooga> and interpretation of that language
00:41:42 <pikhq> nooga: And the brain can do this.
00:41:51 <nooga> eg. seeing jpg in your head would require decoding it and such
00:41:56 <ehird> Tidus35: Free will is an illusion.
00:41:59 <nooga> subconsciously
00:42:02 <ehird> There is no such thing.
00:42:49 <Tidus35> I would have to wonder also, is there a hierarchy of wills
00:43:17 <nooga> ehird: you don't have free will? is it fate or what that drives you?
00:43:41 <Tidus35> nooga, they say it's no single factor, but a combination
00:43:42 <ehird> I am merely a collection of atoms firing according to quantum mechanics.
00:43:51 <nooga> sure
00:43:54 <ehird> I have a subjective perception of some kind that I call a consciousness.
00:44:01 <ehird> None of this I have any actual control of.
00:44:11 <ehird> because there is no "I".
00:44:22 <nooga> human can't imagine that
00:44:45 <ehird> imagine what
00:44:50 <nooga> this is consciousness, you can't imagine a situation that you don't exist, from your point of view
00:44:58 * Tidus35 suspects that if anyone can get to the bottom of such mysteries it is you esoteric language coders.
00:45:39 <ehird> nooga: Of course consciousness cannot "imagine" unconsciousness, because unconsciousness is the lack of imagining.
00:45:43 <Tidus35> hm
00:46:09 <Tidus35> computers and neurons have been associated for over 60 years
00:46:25 <Tidus35> you are on the right track
00:47:24 <nooga> ehird: you mere bunch of atoms. what is a number?
00:47:37 <ehird> nooga: A number is an abstract concept. It does not "exist".
00:47:43 <nooga> okay
00:47:49 <nooga> correct
00:48:01 -!- Dewi has quit (Read error: 101 (Network is unreachable)).
00:48:42 <nooga> so mere bunch of atoms can change it's state to "imagine" something that does not exist and is not a bunch of atoms
00:48:46 <nooga> that's something
00:49:17 <ehird> Sure. Brains are pretty cool.
00:50:10 <Tidus35> I had an idea before of distributed programming.. where every person only writes 1 function
00:50:18 <Tidus35> but with say 10,000 programmers
00:50:27 <comex> Tidus35: that woul be a bit of a mess
00:50:29 <nooga> hmm, brain is not digital at all, but dna and stuff is
00:50:44 <nooga> Tidus35: linux kernel development? had been done
00:51:08 <nooga> ;D
00:51:34 <ehird> there isn't a good way to get 10,000 programmers.
00:51:39 <Tidus35> you would begin with someone writing the top level function.. and so on.. with more and more people being sent requests for functions until the whole thing is fleshed out
00:51:49 <ehird> it's quite unlikely to compile :)
00:52:51 <nooga> maybe rather: request a function that reads some input data and returns some data + documentation of that output data
00:53:05 <nooga> then send the documentation to another coder
00:53:37 <nooga> and then chain the programs
00:54:19 <Gracenotes> ehird: we just need to let the Empire run things!
00:54:23 <nooga> and the requirement would be that the program must calculate output data from input data
00:54:58 <Tidus35> i actually got scared by the idea, imagining an ant or bee colony
00:55:58 <nooga> qite asynchronous colony with a bunch of slackers that drink coffee and fap to the internet
00:56:58 <nooga> hm
00:57:07 <Tidus35> nooga, i'm very newbie so i wouldn't have the faintest clue how linux kernels are coded. *phew*
00:57:14 <ehird> "linux kernels"
00:57:16 <ehird> there's only one.
00:57:20 <Tidus35> see
00:57:28 <pikhq> Tidus35: Are you familiar with git?
00:57:55 <pikhq> Git was developed because Linux needed it.
00:57:57 <ehird> bitkeeper lol
00:58:19 <pikhq> Linus gets hundreds of patches daily, I'd imagine.
00:58:26 <nooga> our machine laguages and even programming languages are at beast only a bit abstract
00:58:42 <pikhq> Says someone who does no functional programming at all.
00:58:43 <nooga> that's stupid
00:58:56 <nooga> oh noez
00:59:12 <nooga> even haskell or erlang are only a bit abstract
00:59:28 <pikhq> fibs = 0:1:zipWith (+) fibs (tail fibs)
00:59:33 <pikhq> That's only a bit abstract?
00:59:37 <pikhq> Actually...
00:59:40 <pikhq> > fibs = 0:1:zipWith (+) fibs (tail fibs)
00:59:41 <lambdabot> <no location info>: parse error on input `='
00:59:49 <pikhq> > let fibs = 0:1:zipWith (+) fibs (tail fibs)
00:59:51 <lambdabot> not an expression: `let fibs = 0:1:zipWith (+) fibs (tail fibs)'
00:59:53 <pikhq> Erm.
00:59:53 <ehird> > let fibs = 0 : 1 : zipwith (+) fibs (tail fibs) in fibs
00:59:55 <lambdabot> Not in scope: `zipwith'
00:59:56 <pikhq> > let fibs = 0:1:zipWith (+) fibs (tail fibs) in fibs
00:59:57 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946...
01:00:01 <ehird> noooooooooooooo ya beat me.
01:00:08 <ehird> but yeah, nooga, you're an idiot
01:00:14 <ehird> functional programming languages are basically mathematics.
01:00:24 <nooga> basically
01:00:31 <pikhq> Haskell is a typed lambda calculus.
01:00:35 <ehird> basically, yes, because pure mathematics would be useless.
01:00:39 <pikhq> It doesn't get *much* more abstract than that.
01:00:49 <ehird> pikhq: note that haskell relies on names
01:00:53 <ehird> e.g. the Y combinator doesn't type
01:00:58 <ehird> but fix f = f x where x = fix f does
01:01:06 <ehird> (you can make it type with a "newtype", which is... a name.)
01:01:09 <pikhq> ehird: Eh, fair enough.
01:01:20 <ehird> the regular typed LC is also not tc
01:02:09 <nooga> music is over 9000 times abstract than haskell
01:02:11 <pikhq> Still, it doesn't get much more abstract than that, barring straight lambda calculus.
01:02:31 <nooga> more*
01:02:38 <pikhq> Funny, it seems to have very few abstractions.
01:02:41 <ehird> nooga: apples, tables.
01:03:03 * pikhq suspects nooga is not familiar with music theory at all
01:03:29 <nooga> music theory is a theory
01:03:35 <ehird> theory: polish brains aren't based on neurons
01:03:36 <pikhq> Just note that music is in large part defined by various physical properties. ;)
01:03:36 <ehird> ... wait.
01:03:39 <ehird> Is nooga about to say that,
01:03:40 <ehird> music theory
01:03:42 <ehird> is just a theory
01:03:44 <nooga> you can break it whenever you like
01:03:44 <ehird> and music isn't based on it
01:03:46 <ehird> in practice?
01:03:49 <nooga> it is
01:03:51 <nooga> of course
01:03:54 <ehird> Figure A. ehird stabs nooga. :P
01:04:05 <pikhq> nooga: That ain't very abstract, now is it?
01:04:42 <nooga> you can't break the lambda calculus rules because you want and expect that the program will execute
01:04:53 <ehird> there aren't any invalid LC programs
01:04:59 <ehird> barring syntactical errors, which are trivial and irrelevant
01:05:27 <pikhq> When the only general notation for something is a recording of the sound itself, uh... Yeah. That's about as unabstract as you can get.
01:06:11 <nooga> ok eot i'm completely wrong
01:06:13 <nooga> excuse me
01:06:28 <pikhq> (a subset of music, that which can be written with Western musical notation, is more abstract than that, of course. It's still not very abstract. It's in large part based in physics...)
01:06:31 <ehird> have we ever agreed with nooga? :D
01:06:41 <pikhq> :D
01:06:51 * nooga is smoking an abstract ciggarette
01:07:05 * nooga has enormous blood pressure atm
01:07:11 <ehird> ciggarette? the extra g means jiggawhat
01:07:19 <ehird> Googling:
01:07:20 <ehird> http://answers.yahoo.com/question/index?qid=20070404113712AAOlzkz
01:07:21 <nooga> cigarette*
01:07:23 <ehird> "How do u smoke a ciggarette?"
01:07:24 <nooga> typo
01:07:27 <ehird> /facepalm
01:07:44 <nooga> faceppalm
01:07:47 * ehird frames "How do u smoke a ciggarette?", puts on wall
01:08:29 <nooga> ehird franes "How do u smokke a ciggarette?", puts on wall
01:08:48 <nooga> smokke, sounds a bit norwegian
01:09:52 <ehird> strijewzica, sounds polish
01:10:59 <nooga> stewpid, sounds british
01:16:02 <nooga> ;>
01:22:29 <pikhq> ehird: The Expr used above, is that in Text.Parsec.Expr, or what?
01:22:58 <ehird> nope
01:23:13 <ehird> pikhq: sec
01:23:14 <pikhq> What is it, then?
01:23:17 <ehird> pikhq: http://twan.home.fmf.nl/blog/haskell/simple-reflection-of-expressions.details
01:24:38 <nooga> hmm
01:24:46 -!- labo has left (?).
01:24:47 <pikhq> ehird: Spiffy.
01:24:48 <nooga> cool, GHC integrates with xcode
01:24:56 <ehird> no it doesn't?
01:25:00 <ehird> > gcd 1 2 :: Expr
01:25:01 <lambdabot> abs 1 `rem` abs 2
01:25:04 <nooga> oh
01:25:18 <nooga> i implied that from the statement that it NEEDS xcode
01:25:26 <ehird> which statement
01:25:34 <ehird> what, where
01:25:44 <nooga> This is an installer for Mac OS X 10.5 (Leopard). The package requires Xcode 3.0 to be already installed.
01:25:45 <pikhq> I'd assume that's because Xcode is where you get GCC in OS X.
01:25:52 <nooga> http://www.haskell.org/ghc/download_ghc_6_10_3.html#macosxintel
01:25:52 <ehird> what pikhq said
01:26:05 <ehird> use macports fag
01:26:08 <ehird> sudo port install ghc
01:26:19 <ehird> sudo port install hs-cabal
01:26:20 <ehird> done
01:26:23 <nooga> shouldn't they write that it needs GCC then?
01:26:32 <ehird> it's to make things simple
01:27:53 <nooga> okay, now i can go to sleep instead of waiting for it to compile
01:28:02 <ehird>
01:28:38 -!- jix has quit ("really").
01:28:55 <nooga> jix noticed the arrow?
01:29:19 <nooga> ;}
01:30:38 <nooga> ehird: could you please recommend some books on haskell ?
01:31:18 <nooga> once i've tried haskell, but then i've just read a simple tutorial
01:44:27 <pikhq> http://www.learnyouahaskell.com/
01:50:55 <pikhq> > let 2+2 = 5 in 2+2
01:50:57 <lambdabot> 5
01:52:27 <nooga> almost like Why's ruby book
01:52:37 <oerjan> > let 4 = 5 in 4
01:52:38 <lambdabot> 4
02:00:04 <nooga> cool
02:00:44 <pikhq> > let id 4 = 5 in id 4
02:00:45 <lambdabot> 5
02:26:16 -!- upyr[emacs] has quit (Remote closed the connection).
02:28:31 <nooga> ghc is compiling for hours :|
02:28:55 <pikhq> You screwed something up.
02:29:10 <pikhq> ... Oh, building GHC itself?
02:31:08 <nooga> yep
02:31:52 <nooga> vvl, sleep
02:31:54 <nooga> bbl*
02:42:44 -!- iEhird has joined.
02:43:33 <iEhird> Anmaster: I
02:43:37 <iEhird> oops
02:44:01 <comex> iEhird: you know you're in violation of apple's trademark
02:44:33 <iEhird> may have forgot. set wifi to first intel card in list since better drivers, does 5ghz and only costs a few pounds
02:44:37 <iEhird> comes
02:44:40 <iEhird> x
02:44:51 <iEhird> apple can fuck off :p
02:44:54 -!- iEhird has quit (Remote closed the connection).
03:50:21 -!- oerjan has quit ("Good night").
03:59:05 -!- nooga_ has joined.
04:12:58 -!- nooga has quit (Read error: 110 (Connection timed out)).
04:16:48 -!- FireFly has joined.
04:56:03 <lament> :t replicate
04:56:05 <lambdabot> forall a. Int -> a -> [a]
04:56:15 <lament> > replicate 12 "badger"
04:56:16 <lambdabot> ["badger","badger","badger","badger","badger","badger","badger","badger","b...
05:04:56 <Warrigal> I'm writing a theorem prover that uses science!
05:06:22 <comex> > cycle "badger"
05:06:23 <lambdabot> "badgerbadgerbadgerbadgerbadgerbadgerbadgerbadgerbadgerbadgerbadgerbadgerba...
05:06:30 <Warrigal> cycle "badger ", my friend.
05:06:51 <comex> > repeat "badger"
05:06:52 <lambdabot> ["badger","badger","badger","badger","badger","badger","badger","badger","b...
05:06:56 <comex> I still fail at haskell :pp
05:07:00 <comex> *:p
05:07:08 <Warrigal> > 'B' : cycle "adger, b"
05:07:09 <lambdabot> "Badger, badger, badger, badger, badger, badger, badger, badger, badger, ba...
05:07:38 <comex> > length (repeat "badger")
05:08:14 <Warrigal> > cycle "mi nelci lo du'u "
05:08:16 <lambdabot> "mi nelci lo du'u mi nelci lo du'u mi nelci lo du'u mi nelci lo du'u mi nel...
05:08:31 <Warrigal> That's Lojban for "I like the fact that I like the fact that I like the fact that . . ."
05:09:24 <pikhq> Haskell-generated Lojban. How appropriate.
05:11:16 <pikhq> > let badgers = "Badger, badger, badger, badger, badger, mushroom mushroom! " : badgers in badgers
05:11:17 <lambdabot> ["Badger, badger, badger, badger, badger, mushroom mushroom! ","Badger, bad...
05:11:36 <pikhq> Hrmm. Not quite what I wanted.
05:11:41 <pikhq> Funny, though.
05:11:46 <pikhq> > let badgers = "Badger, badger, badger, badger, badger, mushroom mushroom! " ++ badgers in badgers
05:11:47 <lambdabot> "Badger, badger, badger, badger, badger, mushroom mushroom! Badger, badger,...
05:15:16 <bsmntbombdood> buffalo buffalo buffalo buffalo buffalo buffalo
05:20:14 <Warrigal> > let process x = unwords x; nelci [x1,x2] = x1 ++ ["nelci"] ++ x2; mi = ["mi"]; lo selbri = "lo" : selbri; duhu bridi = "du'u" : bridi in process (fix (\x -> nelci[mi,lo (duhu x)]))
05:20:16 <lambdabot> "mi nelci lo du'u mi nelci lo du'u mi nelci lo du'u mi nelci lo du'u mi nel...
05:20:24 <Warrigal> Fun, no?
05:26:33 <pikhq> I need to make a Haskell function for n-Buffalo.
05:26:57 <pikhq> Or even a corecursive list, if I can.
05:49:48 <augur> pikhq: you need more badgers
05:49:58 <augur> 12, to be precise.
05:50:05 <pikhq> augur: Shaddup.
05:50:08 <augur> no u
05:54:50 <augur> >repeat ((take 12 (repeat "badger, ")) ++ "mushroom, mushroom! ")
05:54:56 <augur> > repeat ((take 12 (repeat "badger, ")) ++ "mushroom, mushroom! ")
05:54:58 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
05:55:01 <augur> D:
05:55:19 <augur> wat i do
05:55:58 <augur> > repeat (join (take 12 (repeat "badger, ")) ++ "mushroom, mushroom! ")
05:56:00 <lambdabot> ["badger, badger, badger, badger, badger, badger, badger, badger, badger, b...
05:56:10 <augur> lame lambdabot
05:56:18 <augur> > join (repeat (join (take 12 (repeat "badger, ")) ++ "mushroom, mushroom! "))
05:56:19 <lambdabot> "badger, badger, badger, badger, badger, badger, badger, badger, badger, ba...
05:56:27 <augur> still lame!
06:13:33 -!- kar8nga has joined.
06:42:10 -!- kar8nga has quit (Remote closed the connection).
06:42:53 <pikhq> You know what languages are really interesting? The languages which are provably impossible to implement.
06:42:58 <pikhq> Examples include C++ and Perl.
06:44:26 <GregorR> bool doesHalt(void(*func)(), int stdin);
06:44:46 <pikhq> C++ cannot be compiled.
06:45:09 <pikhq> Only the subset of C++ for which its templates halt can be compiled.
06:46:40 <GregorR> ............. I just saw a commercial for "Do not Murder"
06:46:54 <GregorR> Um ... OK? I'm glad these things are advertised or I wouldn't know.
06:51:03 <pikhq> Wha?
06:52:08 <GregorR> It was a commercial ... for "Do not Murder"
06:53:04 <pikhq> That's weird.
06:53:27 <pikhq> Also weird is that C++ essentially is two functional programming languages compiling to an imperative one.
06:53:31 <GregorR> It started with a recording of some 911 call where somebody had apparently accidentally killed her friend I guess (apparently this is murder, whatever), and then it said "Do not Murder"
06:53:34 <GregorR> And I went "...?"
06:53:50 <pikhq> ...?
06:54:01 -!- immibis has joined.
06:56:41 <Warrigal> GregorR: how did the recording go?
06:57:24 <GregorR> Something like,
06:58:20 <GregorR> "Oh my god, I think she's dead, you've got to help me, oh my god." "Ma'am, where are you? Can you tell me what happened?" "Oh my god, help me, please, I think she's dead"
06:58:27 <GregorR> There was really no content.
07:00:30 <pikhq> That's bizarre.
07:02:54 -!- FireFly has quit ("Later").
07:11:45 <GregorR> So anyway, like, don't murder.
07:11:51 <GregorR> I saw it on TV. I think it's bad or something.
07:11:54 <GregorR> So like, don't do it.
07:21:19 -!- pikhq_ has joined.
07:22:19 -!- pikhq has quit (Nick collision from services.).
07:22:25 -!- pikhq_ has changed nick to pikhq.
07:41:06 -!- pikhq_ has joined.
07:41:54 -!- pikhq has quit (Nick collision from services.).
07:42:00 -!- pikhq_ has changed nick to pikhq.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:02:56 -!- pikhq_ has joined.
08:06:41 -!- tombom has joined.
08:16:08 -!- pikhq has quit (Read error: 110 (Connection timed out)).
08:23:44 -!- pikhq_ has changed nick to pikhq.
08:29:35 -!- olsner has quit ("Leaving").
09:59:17 -!- pikhq_ has joined.
10:05:43 -!- deveah has joined.
10:09:09 -!- pikhq has quit (Read error: 110 (Connection timed out)).
10:21:55 -!- MigoMipo has joined.
10:33:43 -!- immibis has quit ("Never put off till tomorrow, what you can do the day after tomorrow").
10:39:15 -!- ais523 has joined.
10:50:23 -!- GreaseMonkey has quit ("HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it").
11:32:19 -!- asiekierka has joined.
11:32:31 <asiekierka> hi
11:32:54 <asiekierka> Brainf**k for the Psion 3a: 5%, finally found out "The Proper Way To Do File I/O"(tm)
11:33:14 <Slereah_> Why so much brainfuck
11:33:24 <Slereah_> Isn't there a brainfuck for everything nowadays?
11:33:27 <asiekierka> Nope
11:33:32 <asiekierka> There is no Brainf**k on a Psion 3a
11:33:36 <asiekierka> I'm sure of that
11:33:36 <Slereah_> Are you gonna make a brainfuck for iPhone?
11:33:43 <asiekierka> Slereah: No, as i don't own an iPhone
11:34:18 <asiekierka> And I selected Brainf**k because I need to learn OPL well
11:34:27 <asiekierka> (the Psion Series 3/3a/3c/3mx programming language)
11:34:49 <Slereah_> OPL?
11:35:04 <asiekierka> Organiser Programming Language (at the time of Psion 3a's and when Psion was in the PDA market)
11:35:06 <Slereah_> O Programming Language?
11:35:16 <asiekierka> after they went out of the PDA market, it became Open Programming Language
11:46:24 <asiekierka> OPLainf**k: 20% (. > < implemented)
11:46:46 <asiekierka> remember i'm typing it on a tiny keyboard
11:50:10 <asiekierka> Ok, + - , implemented too now
11:50:15 <asiekierka> Now the worst one: [ and ]
11:50:34 <asiekierka> Not going to implement a stack as my Psion is 256k
11:50:40 <asiekierka> though there are Psion's with RAM up to 2MB
11:50:50 <asiekierka> and you can modify a 256k model to be a 512k model
11:50:52 <asiekierka> but nah
12:06:41 -!- Sgeo has joined.
12:42:59 <asiekierka> Cat works on my BF for the Psion 3a
12:43:19 <ais523> can you nest [ and ]?
12:43:27 <asiekierka> Didn't check but it should
12:43:30 <ais523> and how long would Lost Kingdoms take to run?
12:43:38 <asiekierka> ais523: ERR: NOT ENOUGH MEMORY
12:43:43 <ais523> ah, good point
12:43:44 <asiekierka> (The Psion 3a can have up to 2MB of RAM
12:43:48 <ais523> it's more than 256k, isn't it?
12:43:52 <asiekierka> yup
12:43:56 <asiekierka> remember the OS takes 80kb
12:44:00 <asiekierka> and then the files in RAM
12:44:02 <ais523> the mandelbrot program, then
12:44:05 <asiekierka> and then the interpreter itself
12:44:08 <asiekierka> ais523: 8-bit cells
12:44:12 <amca> asiekierka: What's wrong with implementing a stack in 256k? Isnt that plenty of room for a 256 word stack? (which is probably all you would need)
12:44:20 <asiekierka> amca: Nah, too lazy :P
12:44:22 <asiekierka> But I'm using the same algorithm as my PC interpreter
12:44:33 <asiekierka> which can run lost kingdom
12:44:38 <amca> asiekierka: Counts [] pairs?
12:44:42 <asiekierka> amca: Yep
12:44:52 <amca> asiekierka: Did u finish the pong?
12:44:56 <asiekierka> amca: Nope
12:45:52 <amca> Slereah_: Can I ask what esoteric language would be better to implement than BF?
12:46:00 <ais523> BF is pretty easy
12:46:05 <asiekierka> ais523: Yup, I know
12:46:06 <ais523> cyclic tag is often easier, though
12:46:17 <ais523> http://esolangs.org/wiki/Bitwise_Cyclic_Tag is one particular formalisation of it into a language
12:46:19 <asiekierka> ais523: I'm not sure if OPL has dynamic ariables
12:46:25 <asiekierka> variables*
12:46:31 <asiekierka> that's why I dunno if a stack would work
12:46:34 <asiekierka> as it would need to be dynamic
12:46:40 <ais523> does it have dynamic arrays?
12:46:43 <amca> asiekierka: No it wouldnt
12:47:04 <asiekierka> amca: But you can never have enough stack memory
12:48:16 <amca> asiekierka: Well, by the same token, you can never have enough of any memory, so you just choose the appropriate level of 90% of applications
12:50:24 <amca> Studies show most apps only require stacks 16 levels deep. It may be different for BF, but that is easily tested by running common BF programs in it and keeping track of the maximum needed for each program, then choose a level that will suit most of them
12:50:40 -!- upyr[emacs] has joined.
12:50:56 <asiekierka> amca: Also, I think I need to optimize my BF interpreter in 8086 assembly
12:50:58 <asiekierka> lags as hell
12:51:14 <asiekierka> yes, a Psion 3a runs on a 8086 (clone i think?)
12:51:20 <amca> What is it currently implemented in?
12:51:33 <asiekierka> OPL
12:51:37 <asiekierka> which is compiled/interpreted
12:51:42 <asiekierka> probably more of the latter TBH
12:52:15 <asiekierka> The problem is that addresses can be from $0 to $200000
12:52:20 <asiekierka> and I only have 16-bit registers.
12:52:46 <amca> But you have access to the segment registers right?
12:52:50 <asiekierka> ...
12:52:52 <asiekierka> Lemme check.
12:53:37 <amca> That makes 64k for code, 64k for data and 64k for stack
12:53:38 <asiekierka> I have BX, CX, DX, SI, DI
12:53:47 <asiekierka> but this is not typical MS-DOS :P
12:53:58 <asiekierka> this is SIBO (SIxteen-Bit Os or something)
12:54:10 <amca> No CS, SS, DS or ES?
12:54:16 <asiekierka> probably not
12:54:22 <asiekierka> as these are used by SIBO
12:54:25 <asiekierka> AFAIK
12:55:39 <amca> Are syscalls done using ints?
12:55:49 <asiekierka> yes
12:55:54 <asiekierka> well, integers
12:55:58 <asiekierka> I think they're 0-65535
12:56:04 <amca> No, I mean INT ops
12:56:14 <amca> As in Interrupts
12:56:33 <amca> Or are they called/jump blocks?
12:56:45 <asiekierka> they are called interrupts
12:56:50 <asiekierka> Wait
12:56:54 <asiekierka> si%=ADDR (cosArg)
12:56:56 <asiekierka> in the example
12:57:08 <asiekierka> So if the ADDR can fit into si, di
12:57:10 <asiekierka> no problem
12:57:33 <amca> Is the doc for this online?
12:57:49 <asiekierka> Well
12:57:54 <asiekierka> You can download it in various formats
12:58:12 <amca> url?
12:58:25 -!- ehird has left (?).
12:58:54 <asiekierka> ugh
12:58:55 <asiekierka> can't find it
12:58:57 <asiekierka> DCC or email?
12:59:02 <asiekierka> and PDF or HLP?
12:59:05 <asiekierka> wait
12:59:07 <asiekierka> i can't find the PDF
12:59:10 -!- ehird has joined.
12:59:13 <amca> bugger
12:59:54 <ehird> 00:30 nooga: ehird: could you please recommend some books on haskell ?
12:59:58 <ehird> what pikhq said :p
13:00:11 <ehird> 01:28 nooga: ghc is compiling for hours :|
13:00:13 <ehird> it does that
13:03:08 <ais523> why don't people just use binaries of stuff that's hard to compile?
13:03:16 <ais523> is it a source-for-everything mentality?
13:03:27 <ehird> ais523: macports is a source-only package manager
13:03:53 <ehird> ais523: and official os x installers for unix-like software always disagree whether to put stuff
13:03:55 <ais523> you'd think that with macs only having two architecture configurations, doing it via binaries would work well
13:04:01 <ehird> /usr, /usr/local, ooh, or trample on macports with /opt/local!
13:04:14 <ehird> ais523: the issue is that it's not a very consistent unix underneath
13:04:24 <ehird> macports just makes it all smooth
13:04:32 <ehird> in return you have to wait a while for big stuff
13:04:37 <asiekierka> Improved it
13:04:44 <asiekierka> By joining the main procedure and the parsing procedure
13:04:47 <asiekierka> got like 2x faster
13:05:07 <ehird> ais523: btw ghc isn't _hard_ -- setting up the build just involves running ./configure (iirc), maybe making a config.mk file, and typing 'make -j(cores*1.5)' and letting it rip for hours
13:05:23 <ehird> -j3 is so much ridiculously faster than -j1 on this box
13:05:30 <ehird> literally 3x compile time speedup
13:05:32 <ais523> why times 1.5?
13:05:38 <ehird> ais523: for IO-bound stuff
13:05:44 <ehird> it's widely recommended
13:05:51 <ehird> i'm sure it's been thought through properly :P
13:05:59 <ehird> ais523: also scheduler stuff iirc
13:06:20 <ehird> i don't really know, but everyone tells you to do it
13:06:44 <ais523> so what do I set -j to on my single-core laptop over here?
13:07:00 <ehird> don't :P
13:07:11 <ehird> but -j1.
13:07:14 <ais523> not to 2?
13:07:28 <ehird> ais523: well, it might help with some things.
13:07:30 <ehird> but i doubt it
13:07:43 <ehird> this is an irrelevant discussion in ~3 years when you can't buy single-core cpus any more :P
13:08:57 <asiekierka> Another speedup, made it stack-based
13:09:51 <ehird> what are we codinerating?
13:09:57 <ehird> by we i mean as
13:09:58 <ehird> asiekierka:
13:10:11 <asiekierka> ...
13:10:16 <asiekierka> Brainf**k for the Psion 3a
13:10:20 <asiekierka> the point is I already coded it
13:10:39 <ehird> ah
13:10:44 <asiekierka> Though writing the code from the Psion to the PC (as I don't have a Psion<>PC cable) would take a while
13:10:47 <asiekierka> but it works
13:10:53 <asiekierka> and runs Hello World in less than a second! :D
13:11:15 <ehird> that psion does look like a pretty crap subnotebook :P
13:12:08 <asiekierka> It's an organiser on which you can code stuff
13:18:54 -!- upyr[emacs] has quit (Remote closed the connection).
13:21:03 -!- upyr[emacs] has joined.
13:32:02 <fizzie> Speaking of the Android phones (except that we weren't), HTC seems to have announced their third (keyboardless again, like the second one was) Android phone.
13:32:23 <asiekierka> Finally, finished the BF interpreter for the Psion
13:32:31 <asiekierka> it's quite fast and it's 960 bytes
13:33:30 <ehird> fizzie: I couldn't buy a non-iPhone keyboardless phone. Even with the amount of hacks and tweaks in Apple's, it's still annoying, so I can't imagine what any lesser one would be like... :p
13:35:12 <fizzie> Hey, the new HTC Hero has its own custom UI (called "Sense") which supposedly adds hacks and tweaks. Of course it probably sucks.
13:35:29 <fizzie> I like the word "lesser" there, though.
13:36:24 <ehird> Show me another tech company with as much attention to detail as apple and I'll show you an apple acquisition target :P
13:36:26 * ehird attempts to figure out what the fuck http://angelbase.com/main/home/home.php is
13:36:42 <ehird> my initial yuk-yuk thought was using the astral plane to compute or something
13:36:45 <ehird> i really can't figure it out
13:37:15 <ehird> [[>It's just basically a "slide show." It's not real software. Consequently, it may perform slowly. The real AngelBase software does not yet exist. But when it does, it is anticipated to perform extremely fast.
13:37:16 <ehird>
13:37:18 <ehird> My Pretty Pony isn't a real pony. Consequently, you might have difficulty appreciating its prettiness. The real pony does not yet exist, but when it does I expect it will be very pretty.]]
13:37:21 <ehird> —reddit
13:37:21 <ais523> ehird: now you've said that, you're making me wonder if NetHack is somehow TC, barring memory restrictions
13:37:28 <ehird> :D
13:37:44 <ehird> i love how a slideshow supposedly performs more slowly than actually doing the computation
13:38:25 <fizzie> Hey, Wikipedia has added "Android (operating system)" directly on the main Android (in the sense of a type-of-robot) page; it used to be just in the separate disambiguation page. I think I'm going to assume that's because I've gone the "android -> disambig -> android (os)" path something like 20 times already.
13:38:29 <ehird> It's just basically a "slide show." It's not real software. Consequently, it may perform slowly. The real AngelBase software does not yet exist. But when it does, it is anticipated to perform extremely fast.
13:38:30 <ehird> My Pretty Pony isn't a real pony. Consequently, you might have difficulty appreciating its prettiness. The real pony does not yet exist, but when it does I expect it will be very pretty.
13:38:33 <ehird> Oooh, exciting.
13:38:40 <ehird> With an extra O.
13:38:45 <ehird> For owesome.
13:41:04 <ehird> "The seminars will be held in church buildings and will be free,"
13:41:11 <ehird> this religion-software entanglement is bizarre
13:41:23 <fizzie> Separation of Church and Code.
13:41:25 <ehird> what's next? homeopathic virus scanners?
13:41:42 <ehird> you take a virus' code, and replace instructions with nops gradually
13:41:46 <ehird> then you run it to get rid of the virus
13:41:55 <ehird> the more nops instead of virus instructions there are, the more effective it is
13:43:36 <ehird> "It looks an awful like the What The Bleep Do We Know people took some computer classes and failed miserably." — reddit
13:45:07 <ehird> "My message EXCITES her. She believes what I'm saying is coming from God." — maker's http://www.findingmygoddess.com/
13:45:22 <ehird> talk about egomaniacal
13:45:42 <ehird> "I am on the brink of a large-scale financial success that many people believe will escalate me, over the next decade, from member of the middle class—to billionaire. I am the inventor and developer of, and control the majority interest in, a patented new technology that numerous well-credentialed experts agree can, quite literally, re-define the entire computer industry."
13:45:50 <fizzie> That "my message" quote of yours sounds like a spam subject. Possibly one selling some sort of male enhancement thing.
13:45:52 <ehird> right; you mean you renamed some RDBMS concepts and gave them pretty pictures
13:46:04 <ehird> fizzie: "message", "saying"
13:46:10 <ehird> """"
13:46:49 <ehird> "I will be generous, giving the Goddess I seek 100% legal control over an appropriate portion of the anticipated wealth."
13:46:51 <ehird> 100% of a portion!
13:46:58 <ehird> That's like 50% if he chooses half!
13:47:39 <ehird> "She knows that the location where God resides is within her beautiful heart."
13:47:49 <ehird> I _knew_ that thing's been up to things other than pumping blood.
13:47:49 <Gracenotes> lol. http://www.amazon.com/review/R29BEIXU19X6GD/
13:48:02 <ehird> out their
13:48:32 <ehird> "She knows the truth of reincarnation. Alternatively, she is open to the concept and ready for experiences that will demonstrate its truth to her."
13:48:35 <ehird> er... you mean like, death?
13:49:33 -!- oerjan has joined.
13:51:14 <Gracenotes> ehird: what, are you disspointed?
13:51:22 <ehird> dis'pointed
13:51:26 <ehird> you point and dis
13:51:33 <ehird> a revolutionary new interface paradigm
13:51:35 <ehird> USING ANGELBASE
13:51:43 <Gracenotes> WOOHOO ANGELBASE
13:51:52 <ehird> "She never feels greed."
13:51:54 <ehird> Yeah, sure.,
13:52:10 <oerjan> "GIMME THAT FILE YOU USELESS PIECE OF ELECTRONICS!"
13:52:14 <ehird> "She unconditionally loves a large number of people.... or all people.... however, she loves different people with different levels of intensity."
13:52:17 <ehird> Even though they're all god.
13:52:28 <Gracenotes> golly gawsh
13:52:31 <ehird> "She has the quality of childlike innocence."
13:52:32 <ehird> Pedo!
13:52:37 <ehird> "She receives guidance directly from God, and she follows this Spirit guidance, even when it takes courage to do so (e.g. because others might get angry or think she's nuts)."
13:52:38 <ehird> If she's god,
13:52:42 <ehird> and takes guidance directly from god...
13:52:47 <ehird> Well, then everyone fits that bill!
13:53:16 * ehird gets to "Body" section, fears hugely for this guy's mental health
13:53:56 <ehird> Is there any requirement he *doesn't* have?
13:54:21 <ehird> "If she has been victimized by an ex-boyfriend or ex-husband who has been violent, severely emotionally abusive, engaged in crimes that harm other people, and/or abuses alcohol or drugs, then she must be 100% disconnected from him except for minimal contacts required to comply with a court order pursuant to children or financial support."
13:54:24 <ehird> But.
13:54:26 <ehird> Her love of all people is unconditional.
13:54:28 <ehird> And cannot sour!
13:54:35 <ehird> You just said that some paragraphs and some bullet items ago.
13:55:06 <ehird> "She is PASSIONATE. Actually, she is INTENSELY passionate.... passionate about God, passionate about eliminating social injustice, passionate when speaking to audiences or on television, and passionate in bed with me."
13:55:09 <ehird> ("Mostly the latter.")
13:55:17 <ehird> "She believes in the light-filled MAGIC of sacred sex. She wants to utilize this magic to manifest our Global Vision. She realizes that her sacred sexual union with me is crucial for manifesting the Global Vision."
13:55:19 <ehird> Er...
13:55:26 <ehird> If you have sex with me, we'll get world peace?
13:55:27 <ehird> Oh kay.
13:55:36 <ehird> "If she has been a prostitute, that is GOOD!!"
13:55:37 <ehird> xD
13:55:43 <ehird> I'm pretty much quoting every other sentence here
13:56:11 <ehird> She is WILLING to surrender and be worshipped as a Goddess.
13:56:11 <ehird> She is WANTING to surrender and be worshipped as a Goddess.
13:56:13 <ehird> She is WAITING to surrender and be worshipped as a Goddess.
13:56:15 <ehird>
13:56:17 <ehird> Immediately followed by this picture: http://www.findingmygoddess.com/blurry+pensive_nohat_redshirt_1124.jpg
13:56:20 <ehird> Creepy.
13:56:35 <ehird> "Gallant. INTENSELY romantic. Perfect gentleman."
13:56:40 <ehird> "Also insane, but don't let that put you off."
13:59:05 <ehird> "100% straight (i.e. heterosexual)."
13:59:15 <ehird> yeah right
13:59:35 <Slereah_> 99% straight
13:59:44 <ehird> "However, when we launch our own TV show (which will have very different energy), I will watch every episode."
13:59:46 <Slereah_> BUT WHERE DID THE 1% GO?
13:59:51 <ehird> INTO GAY
13:59:52 <oerjan> "In 99% self-denial, too"
14:00:05 <Slereah_> Noooo
14:00:07 <Slereah_> Not the gay!
14:00:09 <ehird> "But I'm funny! I will make you laugh... lots."
14:00:12 <ehird> You're tellin' me!
14:00:50 <ehird> I do NOT wish to control my Goddess. I have ZERO interest in controlling either her or our relationship. [...] What I seek is an exquisite Love Dance in which my male role is to lead (as in ballroom dancing) and my Goddess's female role is to surrender in ecstasy.
14:00:53 <ehird> What?
14:00:53 <Slereah_> EPIDEMY OF GAY ON THE WEST COAST
14:01:12 <oerjan> no no, the 1% is for his pet goat
14:01:22 <ehird> [[May each woman who replies to this ad be PERMANENTLY surrounded by Angels of God and a Shield of Light that admits only Light, Love, Beauty, Joy, Wisdom, Truth, and Divinity into her body, mind, heart and soul, and that reflects back and ABSOLUTELY PROTECTS her from anything that is not of God regardless of how "well intended" or "spiritual" or "common sensical" its source may appear to be. May SHE, and may ALL her thoughts about me, and may EACH AND E
14:01:25 <ehird> VERY aspect of her interactions with me (including all electronic, software and database systems by which we communicate), be ABSOLUTELY PROTECTED from any intrusion or interference or obstruction whatsoever (directly or indirectly or through a "well meaning" person) by anyone or any "entity" or any thing that is opposed to God.]]
14:01:31 <ehird> Surrounded on both sides by:
14:01:33 <ehird> [[Glory to God! Om Namah Narayanaya! Om Namah Shivaya! Om Sri Ganasheya Namaha! Jai Laxmi! Guru Om! Jai Sri Sri Ravi Shankar! Glory to Buddha! Glory to Jesus! Glory to Mary mother of Jesus! Glory to Mary Magdalene! Glory to Allah! Om Namo Bhaghavate Vaasudevaya! Jai Yogananda! Jai Mata Amritanandamayi! Jai Gurumayi Chidvilasananda! Jai Muktananda! Jai Guru Dev! Nam Myoho Renge Kyo! Amen! Om Shanti Shanti Shanti! ]]
14:01:38 <Slereah_> Goats need love too, oerjan
14:01:39 <ehird> "Copyright © 2008 by The Angelic Realm of Intellectual Substance,"
14:01:42 <ehird> Angelic Realm.
14:01:45 <ehird> Of Intellectual Substance.
14:02:44 <ehird> are there any "make money fast" guides that actually involve making a make money fast guide and selling it? :-)
14:03:09 <oerjan> ehird: i have seen jokes about
14:03:11 <Slereah_> I mostly prostitute my goat for money
14:03:21 <ehird> oerjan: yeah
14:03:28 <ehird> I was wondering whether any actually do that
14:03:36 <oerjan> i think Dogbert did such a lecture once
14:03:42 <amca> No mention of the Old Ones?
14:04:00 <oerjan> amca: hard to say with all that foreign language
14:04:36 <amca> Nothing in there I remember from my reading of the Necronomicon
14:05:00 <oerjan> amca: your brain probably wiped half of it for your sanity, anyhow
14:05:51 <amca> Oh, I dont have any sanity left. I just follow the lead of the dark eldritch ones.
14:06:41 <oerjan> ok then
14:07:10 <oerjan> i guess _he_ wiped half of it, and failed to preserve his sanity in the process
14:07:24 <oerjan> s/half/all/
14:14:39 * ehird reads a Jeff Atwood article to see if he's gained any sanity or decent thought yet, decides not
14:15:20 <ehird> "Yes, I am dead serious. Just check back here in fifteen to twenty years to see if I was right. (Hint: I will be.)"
14:15:22 <ehird> Fuck off, Atwood.
14:15:35 <ais523> what was he claiming?
14:17:41 <ehird> ais523: Previously: "Here's how far I am willing to go: <OBNOXIOUS JEFF ATWOOD BOLD>I believe the iPhone will ultimately be judged a more important product than the original Apple Macintosh.</OBNOXIOUS JEFF ATWOOD BOLD>"
14:17:56 <ehird> I don't give a shit about what he's saying (he's still on crack), specifically, but jeez, the way he says it.
14:17:58 <ehird> So obnoxious.
14:18:11 <ais523> ugh, that's one of the things you can claim is correct after 15 to 20 years and nobody will be able to prove you wrong
14:20:47 <ehird> ais523: haha, howso?
14:21:04 <ais523> because it's an opinion, and can't be proved either way
14:21:06 <ehird> theory: if you stripped all the bold out of jeff atwood articles, your blood would boil ~20% less when reading them
14:21:25 <ehird> He <BOLD>s everything and it is</BOLD> really annoying because <BOLD>god dammit it is</BOLD>.
14:21:37 <ais523> did you see the argument on reddit as to whether single quotes or double quotes were faster?
14:22:00 <ehird> ais523: in which context?
14:22:03 <ehird> there was something related earlier
14:22:07 <ais523> originally PHP
14:22:11 <ais523> but it then moved on to HTML
14:22:11 <ehird> right
14:22:13 <oerjan> <ehird> the more nops instead of virus instructions there are, the more effective it is <-- well that sounds reasonable :D
14:22:19 <ehird> ais523: that was on reddit yesterday :P
14:22:21 <ehird> but yes, I saw it
14:22:34 <ehird> ais523: it ended up with people saying " had less 1 bits
14:22:43 <ais523> yes
14:22:45 <ehird> then it was pointed out that the 1 bits in ' are thinner
14:22:46 <ehird> so they count as less
14:22:47 <ehird> :D
14:23:11 <ehird> http://us.metamath.org/mpegif/helloworld.html
14:23:14 <ais523> as an electronic engineer, I'd pick something with the same number of 0 bits as 1 bits if I could
14:23:24 <ais523> to reduce the amount of DC buildup in the cable
14:23:37 <ais523> I have no idea how much of a problem that is at computer scales; probably not at all
14:23:42 <ehird> oerjan: translate the statement to english foru s?
14:23:44 <ehird> *for us
14:23:47 <ais523> but on larger scales, it can cause all sorts of problems
14:23:48 <ehird> i suck at logical notation
14:23:56 <ais523> so they often encode 0 as 01 and 1 as 10 to make sure it's balanced
14:23:58 <ais523> or other schemes like that
14:24:00 <ehird> heh
14:24:01 <oerjan> ehird: em, you said it
14:24:10 <oerjan> or else, which statement
14:24:10 <ehird> oerjan: i'm talking about http://us.metamath.org/mpegif/helloworld.html
14:25:07 <ehird> http://www.bytecellar.com/archives/000113.php ← IRCing with an Apple //c
14:25:49 <oerjan> O_O
14:25:58 <ehird> dumb terminals live!
14:27:00 <oerjan> ehird: i suggest you email Prof. Loof Lirpa and ask
14:27:15 <ehird> oerjan: but you're a mathematician, surely you know the notation :<
14:27:15 <Gracenotes> does lookaheadfind cause firefox to randomly crash sometimes for anyone else?
14:27:38 <oerjan> ehird: i'm not much acquainted with infix empty set notation, is the problem
14:27:44 <asiekierka> LOL, check the OPL.dialog in the Hello World collection
14:27:53 <asiekierka> it's probably the only multilanguage implementation there
14:27:55 <ehird> oerjan: i think it might be multiplying them or something
14:28:08 <asiekierka> as in, German, English and French AFAIK
14:28:22 <asiekierka> well, no
14:28:25 <asiekierka> just German and English
14:28:35 <oerjan> ehird: i think i can confirm step 1, at least
14:28:41 <ehird> oh, I don't need the steps
14:28:49 <ehird> I just want to know what the notation of the statement means in english :)
14:29:49 <oerjan> also, 4 clearly follows from 3
14:30:17 <oerjan> oh right!
14:30:34 <oerjan> it's using infix relational notation with the empty set as the relation
14:31:02 <oerjan> as step 2 says plainly, really
14:31:46 <oerjan> basically WØ(R1d) means that the tuple (W,(R1d)) is in the empty set, which is trivially false
14:31:55 <ehird> what's R1d?
14:31:57 <oerjan> *<W,(R1d)>
14:31:57 <ehird> just a variable name
14:31:58 <ehird> ?
14:32:12 <oerjan> sure, nothing but that empty set really matters
14:32:23 <ehird> wonder why they used 1 instead of l
14:32:26 <ehird> i guess l is taken :P
14:32:39 <ehird> oerjan: so the W doesn't really have any special meaning?
14:32:45 <ehird> ditto for the h and LL I guess? d too? and R? :P
14:32:48 <oerjan> ehird: they wanted it to be a 1337 proof
14:32:58 <ehird> hur hur
14:33:10 <oerjan> well LL0 and R1d are really not subdivided any
14:34:07 <oerjan> ehird: also, they needed something balance using the empty set for "o", it would look suspect if that was the only non-letter
14:34:12 <oerjan> *to balance
14:34:17 <ehird> heh
14:36:49 <AnMaster> ehird, hi
14:36:53 <ehird> hi
14:36:54 <oerjan> it's just "not (something and something-trivially-false)", which is a tautology
14:36:57 <ehird> AnMaster: i pinged you last night in the logs thingy
14:37:09 <AnMaster> I called lenovo, you can't order customised ones in Sweden
14:37:16 <ehird> that's stupid
14:37:18 <ehird> did they give any reason?
14:37:23 <AnMaster> ehird, too small market
14:37:36 <AnMaster> however, I can't reach lenovo in UK to ask if you can order from them in Sweden
14:37:48 <AnMaster> I get "the number can not be reach from this telephone" (in Swedish)
14:37:50 <ehird> you'd probably want to go for the US one
14:37:56 <AnMaster> ehird, how comes?
14:37:57 <ehird> weak dollar and all
14:38:00 <AnMaster> hm ok
14:38:01 <ehird> also tech is cheaper in the US
14:38:02 <ehird> generally
14:38:10 <AnMaster> ehird, Kronan is also weak
14:38:21 <ehird> your fault for not going with the euro :-p
14:38:27 <AnMaster> ehird, meh
14:38:41 * ehird configs the model on the us site to see how cheaper it is
14:38:49 <oerjan> ehird: US might have voltage issues?
14:39:07 <ehird> oerjan: ah, that's true; you might have to buy a EU connector
14:39:20 <AnMaster> hm, the UK one will have the wrong connector
14:39:25 <ehird> are you sure?
14:39:28 <ehird> aren't all EU connectors the same?
14:39:40 <AnMaster> ehird, how many pins are there in yours?
14:39:43 <ehird> 3
14:39:47 <AnMaster> 2 here,
14:39:50 <ehird> oh, right
14:40:06 <AnMaster> ehird, plus some stuff on the side for the ground
14:40:23 <ehird> i wonder if you can sort by how weak a currency is in europe :)
14:40:29 * ehird clicks the european sites aimlessly to find one
14:41:25 <oerjan> hm how do you define weakness of a currency anyhow, relative unit size is not really important
14:41:50 <oerjan> afaict kronan is not weak because it is small, but because it is falling
14:43:37 <oerjan> http://www.forexpeacearmy.com/currency_strength_calculator/
14:44:13 <oerjan> only one european one though
14:44:23 <oerjan> er two
14:44:29 <oerjan> er three
14:44:38 * oerjan should learn to read before talking :D
15:12:02 <oerjan> Darths & Droids :D
15:12:31 -!- amca has quit ("Farewell").
15:14:05 -!- BeholdMyGlory has joined.
15:14:22 <oerjan> AnMaster:
15:15:01 * oerjan evilly pings only after what he said has dropped beyond the 3 line limit
15:16:16 <oerjan> also, http://www.mezzacotta.net/postcard/
15:21:14 <ehird> "Bill Nye Explains: The iPhone 3GS's Oleophobic Screen"
15:21:23 <ehird> <3
15:26:59 <ehird> "Nye began his professional entertainment career as an actor on a local sketch comedy television show in Seattle, Almost Live!. Nye corrected the host of Almost Live! after the host pronounced "gigawatt" as "jigowatt", a mispronunciation made common by the film Back to the Future."
15:27:02 <ehird> But, that's correct!
15:27:05 <ehird> BILL NYE IS FOUNDED ON A LIE.
15:28:38 <ehird> When Pluto was reclassified from a planet to a dwarf planet by the International Astronomical Union in 2006, Nye came out in favor of the change. Nye held a conference in 2006 discussing his opinion on the issue.[13]
15:28:39 <ehird> He's evil.
15:29:39 <GregorR> And I heard he doesn't eat sandwiches!
15:50:02 <ehird> [['Stoned wallabies make crop circles'
15:50:02 <ehird> Wallabies have been observed acting strangely in poppy fields
15:50:04 <ehird> Australian wallabies are eating opium poppies and creating crop circles as they hop around "as high as a kite", a government official has said.]]
15:50:07 <ehird> http://news.bbc.co.uk/1/hi/world/asia-pacific/8118257.stm
15:50:35 -!- deveah has quit (Read error: 60 (Operation timed out)).
15:50:50 -!- FireFly has joined.
16:01:57 -!- pikhq_ has changed nick to pikhq.
16:03:57 <nooga_> what is haskell good for, except for theorem provers?
16:04:55 -!- GregorR-L has joined.
16:05:43 * oerjan shuffles feet
16:05:47 <oerjan> look, a birdie!
16:05:53 <Slereah_> Haskell is good for making me insane
16:06:10 * ehird stabs nooga_ for being an idiot.
16:06:15 <ehird> pikhq: Please join me, O New Convert.
16:06:32 <nooga_> that's now an answer
16:06:34 <nooga_> not*
16:06:42 <ehird> It's useful for everything.
16:06:56 <nooga_> like, writing own scheme interpreter?
16:06:58 <nooga_> or
16:07:19 <ehird> Everything.
16:07:22 <nooga_> raytracer
16:07:24 <nooga_> or
16:07:29 <ehird> Yes, both of those.
16:07:41 <ehird> Haskell is based on the ML family, which were designed for writing implementations.
16:07:45 <ehird> Haskell improves it massively.
16:07:47 <ehird> Raytracer, absolutely.
16:07:49 <nooga_> and it compiles to fast machine code?
16:07:51 <ehird> It'll be fast, too.
16:07:52 <ehird> nooga_: Yes.
16:07:56 <ehird> Sometimes you need to hint the compiler.
16:08:01 <ehird> But most of the time you get nice speed.
16:08:12 <ehird> (as long as you use ByteStrings instead of Strings when you can)
16:08:52 <ehird> nooga_: http://www.learnyouahaskell.com/; if your brain is intact at every point, you probably didn't understand it.
16:10:16 <nooga_> read it
16:10:26 <nooga_> quite amusing
16:10:50 <ehird> What, all of it?
16:10:54 <oerjan> > fix show
16:10:56 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\...
16:11:03 <ehird> You should be good at Haskell now. If you're not, you did not understand it.
16:11:23 * pikhq stabs nooga
16:11:36 <pikhq> Speaking of which, I know Monads.
16:11:53 <ehird> BUT DO YOU KNOW GONADS
16:12:22 <pikhq> Looks like an instance of a monad for the sake of reproduction.
16:12:25 <nooga_> this book would learn my sister how to code in haskell
16:12:26 <nooga_> :P
16:13:02 <pikhq> nooga is an idiot.
16:13:13 <pikhq> Also, INFINITE LISTS! [0..]
16:13:45 <Deewiant> With -XFiniteLists, you can even do [0..10] !
16:15:11 <ehird> Deewiant: !
16:15:13 <ehird> Amazing.
16:15:14 * oerjan swats Deewiant -----###
16:17:15 <nooga_> > [1..10]
16:17:17 <lambdabot> [1,2,3,4,5,6,7,8,9,10]
16:17:32 <nooga_> > [2,4..]
16:17:34 <lambdabot> [2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,...
16:18:03 -!- evenant has joined.
16:19:08 <nooga_> > [2*x | x < 100]
16:19:10 <nooga_> ?
16:19:11 <lambdabot> []
16:19:19 <nooga_> ;C
16:19:40 <oerjan> x < 100 is just a test there, it doesn't define x
16:19:56 <oerjan> x happens to be a global Expr in lambdabot
16:20:12 <nooga_> then how?
16:20:27 <oerjan> > [2*x | x <- [0..99]]
16:20:30 <lambdabot> [0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,5...
16:20:46 <nooga_> ah
16:20:52 -!- Dewio has quit (hubbard.freenode.net irc.freenode.net).
16:20:52 -!- nescience has quit (hubbard.freenode.net irc.freenode.net).
16:21:27 -!- Dewi has joined.
16:23:16 <oerjan> > [2*x | x <- [0..99], x `mod` 3 == 0]
16:23:18 <lambdabot> [0,6,12,18,24,30,36,42,48,54,60,66,72,78,84,90,96,102,108,114,120,126,132,1...
16:24:06 <upyr[emacs]> > [2*x | x <- [0..99], x `mod` 1.5 == 0]
16:24:18 <upyr[emacs]> > [2*x | x <- [0..99], x `mod` 1.5 == 0]
16:24:20 <lambdabot> Add a type signature
16:24:33 <oerjan> mod only applies to integral types
16:24:58 <upyr[emacs]> am.ok
16:25:50 <oerjan> no fmod easily available iirc
16:26:26 <Deewiant> > [2*x | x <- [0..99], x `mod'` 1.5 == 0]
16:26:28 <lambdabot> [0.0,6.0,12.0,18.0,24.0,30.0,36.0,42.0,48.0,54.0,60.0,66.0,72.0,78.0,84.0,9...
16:26:42 <oerjan> :t mod'
16:26:44 <lambdabot> forall a. (Real a) => a -> a -> a
16:27:09 <oerjan> @hoogle mod'
16:27:10 <lambdabot> Data.Fixed mod' :: Real a => a -> a -> a
16:27:10 <lambdabot> Data.Fixed divMod' :: (Real a, Integral b) => a -> a -> (b, a)
16:27:31 <oerjan> @src mod'
16:27:31 <lambdabot> Source not found. BOB says: You seem to have forgotten your passwd, enter another!
16:27:56 <oerjan> hm i think that's recent?
16:28:11 <pikhq> nooga_: How much functional programming have you done?
16:28:20 <Deewiant> Data.Fixed isn't
16:28:23 <Deewiant> Don't know about mod'
16:28:56 <nooga_> uhm
16:29:15 <nooga_> just a tiny bit of Scheme or some projects in school
16:29:19 <oerjan> huh my old hugs has it
16:29:27 * oerjan must have missed it before
16:29:47 <ehird> > let primes = [ x | x <- [2..], not (any ((== 0) . (`mod` x)) primes) ] in primes
16:29:52 <pikhq> So, lemme see if I grok this...
16:29:52 <lambdabot> mueval-core: Prelude.read: no parse
16:29:53 <lambdabot> mueval: ExitFailure 1
16:29:54 <ehird> hmph, that's infinite obviousl
16:29:54 <ehird> y
16:29:58 <ehird> pikhq: grok wat
16:30:25 <pikhq> > [0..10] >>= (2*)
16:30:27 <lambdabot> No instance for (GHC.Enum.Enum [b])
16:30:27 <lambdabot> arising from the arithmetic sequence...
16:30:38 <nooga_> how about 1d cellular automaton oneliner in haskell?
16:30:46 <oerjan> maybe the discussion i recall was just about it being inefficient, not based on actual floating point operations
16:30:54 <ehird> nooga_: 1d CA are just logic expressions of three variables
16:31:04 <pikhq> Aaaaw, I thought that'd work... :(
16:31:20 <nooga_> okay, i just want to see how would it look like
16:31:24 <pikhq> > [0..10] >>= (2*) :: [Int]
16:31:24 <ehird> pikhq: 2* doesn't return an [a]
16:31:26 <lambdabot> No instance for (GHC.Enum.Enum [GHC.Types.Int])
16:31:26 <lambdabot> arising from the arithme...
16:31:30 <ehird> :t (2*)
16:31:32 <lambdabot> forall t. (Num t) => t -> t
16:31:33 <ehird> :t (>>=)
16:31:33 <pikhq> ehird: Oh. *Duh*.
16:31:34 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m a -> (a -> m b) -> m b
16:31:38 <ehird> pikhq: tip:
16:31:39 <ehird> :t fmap
16:31:41 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
16:31:45 * pikhq needs to think of them there types.
16:31:46 <ehird> ofc you could also do (return . (2*))
16:31:51 <ehird> but that's what fmap is :P
16:31:59 <pikhq> > [0..10] >>= return . (2*) :: [Int]
16:32:00 <lambdabot> [0,2,4,6,8,10,12,14,16,18,20]
16:32:05 <ehird> don't need the :: now
16:32:12 <pikhq> ehird: Yes, I know. I just wanted to see if I grokked anything at all.
16:32:15 <ehird> right
16:32:34 <pikhq> And the :: is there because I had hit up and modified stuff...
16:32:36 * ehird attempts to find alternative firmware for the Siemens Gigaset SE572 router...
16:33:25 <oerjan> > join (liftM2 (*)) [0..9]
16:33:27 <lambdabot> [0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,0,2,4,6,8,10,12,14,16,18,0,3,6,9,1...
16:33:59 <pikhq> > [0..10] >>= "Hello"
16:34:00 <lambdabot> Couldn't match expected type `t -> [b]'
16:34:04 <pikhq> Erm.
16:34:07 <pikhq> > [0..10] >>= return "Hello"
16:34:09 <lambdabot> "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello"
16:34:15 <pikhq> Erm.
16:34:16 <pikhq> Yay.
16:34:19 <pikhq> I implemented repeat! :P
16:34:21 <oerjan> > [0..10] >> "Hello"
16:34:23 <lambdabot> "HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello"
16:34:44 <ehird> @src List (>>=)
16:34:44 <lambdabot> Source not found. Wrong! You cheating scum!
16:34:44 <pikhq> Right, >>= return is >>...
16:34:45 <ehird> grr
16:34:53 <ehird> how do you search for instance sources w/ lb
16:34:58 <oerjan> @src [] (>>=)
16:34:59 <lambdabot> xs >>= f = concatMap f xs
16:35:15 <ehird> @pl \f xs -> zipWith f xs (tail xs)
16:35:15 <lambdabot> (`ap` tail) . zipWith
16:35:29 <oerjan> pikhq: actually the return there is a lie
16:35:34 <ehird> @pl \xs -> zip xs (tail xs)
16:35:34 <lambdabot> ap zip tail
16:35:36 <pikhq> > let repeat' n = [0..n] >> in repeat 10 "badger"
16:35:37 <lambdabot> <no location info>: parse error on input `in'
16:35:39 <ehird> @let pairs = ap zip tail
16:35:40 <lambdabot> Defined.
16:35:42 <oerjan> it's really const appearing from the -> monad
16:35:42 <ehird> hm wait
16:36:00 <ehird> @let pairs = (`ap` tail) . zipWith
16:36:01 <lambdabot> <local>:5:0:
16:36:02 <lambdabot> Multiple declarations of `L.pairs'
16:36:02 <lambdabot> Declared at: <loca...
16:36:07 <ehird> @undef pairs
16:36:07 <pikhq> oerjan: ... Whoa?
16:36:14 <ehird> Yeah. Functions are monads. :)
16:36:15 <nooga_> uhm
16:36:20 <ehird> @let pairs = (`ap` tail) . zipWith
16:36:22 <lambdabot> Defined.
16:36:29 <ehird> @let zipPairs = (`ap` tail) . zipWith
16:36:29 <oerjan> @src -> return
16:36:31 <lambdabot> Defined.
16:36:31 <lambdabot> Source not found. Where did you learn to type?
16:36:36 <oerjan> @src (->) return
16:36:37 <lambdabot> return = const
16:36:45 <ehird> @src [] (>>=)
16:36:46 <lambdabot> xs >>= f = concatMap f xs
16:36:47 <pikhq> Scratch that. Whoa.
16:36:48 <ehird> @src [] return
16:36:48 <lambdabot> return x = [x]
16:36:53 <ehird> @src (->) (>>=)
16:36:53 <lambdabot> f >>= k = \ r -> k (f r) r
16:36:58 <ehird> @src (->) fmap
16:36:58 <lambdabot> fmap = (.)
16:37:02 <ehird> @undef pairs
16:37:07 <pikhq> I'm not *entirely* sure how that's useful, but... Whoa.
16:37:14 <ehird> pikhq: it's a monad, so we define it as one.
16:37:16 <ehird> simple as :)
16:37:22 <ehird> > fix (zipPairs (+))
16:37:23 <lambdabot> Not in scope: `zipPairs'
16:37:28 <ehird> > fix (zipPairs (+) [1..])
16:37:30 <lambdabot> Not in scope: `zipPairs'
16:37:31 <pikhq> ehird: Yes, I'm just not sure how it's useful that it is a monad.
16:37:39 <ehird> @let zipPairs = (`ap` tail) . zipWith
16:37:41 <lambdabot> Defined.
16:37:43 <ehird> > fix (zipPairs (+) [1..])
16:37:45 <lambdabot> Couldn't match expected type `a -> a' against inferred type `[b]'
16:37:51 <ehird> pikhq: It isn't particularly. :-)
16:37:53 <pikhq> Of course, someone's done it, I'm sure. :P
16:37:59 <Deewiant> ?pl \x -> f (g x) x
16:37:59 <lambdabot> f =<< g
16:38:09 <ehird> that too
16:38:15 <ehird> i've used that before
16:38:18 <ehird> pikhq: btw so you understand that:
16:38:20 <pikhq> I know you can use fmap in order to confuse people instead of ., though...
16:38:21 <ehird> @src (=<<)
16:38:21 <lambdabot> f =<< x = x >>= f
16:38:41 <ehird> pikhq: it is the opinion of many that map and (.) should not exist, and that fmap should be called (.)
16:38:46 <ehird> (2*) . [1,2,3]
16:38:51 <ehird> purefunction . monadstuff
16:38:52 <ehird> f .
16:38:52 <ehird> g
16:38:55 <ehird> etc
16:39:08 <pikhq> ehird: ... I just got what a monad *is*.
16:39:31 <pikhq> ... Oh.
16:39:35 <ehird> pikhq: Ah yes, the "OK, I understand them. Oh. OH! Wow. Okay, I didn't really understand them." revelation ;-)
16:39:35 <pikhq> Duh.
16:39:49 <oerjan> pikhq: the -> monad is identical to the Reader monad, except for a newtype wrapper
16:39:50 <pikhq> f =<< x = x >>= f. Why the hell was that confusing me?
16:39:58 <ehird> :-P
16:40:01 <oerjan> and the Reader monad is generally considered useful
16:40:12 <ehird> that too
16:40:22 <ehird> but reader is more nice and abstract
16:40:28 <ehird> :t zipPairs
16:40:30 <lambdabot> forall b c. (b -> b -> c) -> [b] -> [c]
16:40:36 <ehird> > fix (zipPairs (+) [1..])
16:40:38 <lambdabot> Couldn't match expected type `a -> a' against inferred type `[b]'
16:40:38 <pikhq> oerjan: And whassat do?
16:40:45 <ehird> ohh
16:40:48 <oerjan> the -> monad itself is more useful for point-free obfuscation
16:40:48 <ehird> > zipPairs (+) [1..]
16:40:51 <lambdabot> [3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,...
16:41:23 <ehird> > fix (zipPairs (+) . (1:) . (0:))
16:41:25 <lambdabot> [1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,1...
16:41:31 <oerjan> pikhq: it lets you pass a configuration value to all sub-computations without mentioning it explicitly
16:41:37 <ehird> > 0 : fix (zipPairs (+) . (1:))
16:41:42 <lambdabot> mueval-core: Prelude.read: no parse
16:41:42 <lambdabot> mueval: ExitFailure 1
16:41:50 <pikhq> oerjan: Hmm.
16:41:58 <ehird> > fix (zipPairs (+) . (1:))
16:42:03 <lambdabot> mueval-core: Prelude.read: no parse
16:42:03 <lambdabot> mueval: ExitFailure 1
16:42:07 <oerjan> also, you can change it but only in subcomputations, unlike State. but as a result Reader is more lazy sometimes
16:42:18 <ehird> > fix (\xs -> 0:1:zipPairs (+) xs)
16:42:20 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946...
16:42:22 <ehird> :-)
16:42:38 <ehird> > fix $ (0 :) . (1 :) . zipPairs (+)
16:42:40 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946...
16:42:45 <GregorR-L> > fix dinner
16:42:53 <lambdabot> Not in scope: `dinner'
16:43:07 <GregorR-L> Bastard!
16:43:11 <ehird> @let fibs = fix $ (0 :) . (1 :) . zipPairs (+)
16:43:13 <lambdabot> Defined.
16:43:18 <ehird> > fibs!!10000
16:43:20 <lambdabot> 336447648764317832666216120051075433103021484606800639065647699746800814421...
16:43:24 <ehird> > fibs!!100000
16:43:25 <pikhq> > fix dinner where dinner = (0:) . (1;) . zipPairs (+)
16:43:28 <lambdabot> <no location info>: parse error on input `where'
16:43:29 <ehird> 1;
16:43:29 <lambdabot> mueval-core: Prelude.read: no parse
16:43:29 <lambdabot> mueval: ExitFailure 1
16:43:30 <ehird> lawl
16:43:31 <Deewiant> > fix ((0:).scanl(+)1)
16:43:33 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946...
16:43:37 <ehird> :t scanl
16:43:39 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> [a]
16:43:42 <ehird> Well fuck me with a rake.
16:43:46 <ehird> @undef zipPairs
16:43:47 <ehird> @undef fibs
16:43:58 <ehird> @let fibs = fix $ (0:) . scanl (+) 1
16:44:00 <lambdabot> Defined.
16:44:04 <ehird> > fibs!!10000
16:44:06 <lambdabot> 336447648764317832666216120051075433103021484606800639065647699746800814421...
16:44:32 -!- oerjan has quit ("Indeed, time to fix dinner").
16:45:34 -!- deveah has joined.
16:45:37 <Slereah_> > fibs!!0
16:45:40 <lambdabot> 0
16:45:46 <ehird> > fibs!!(fibs!!3)
16:45:47 <Slereah_> THIS IS WRONG
16:45:48 <lambdabot> 1
16:45:51 <ehird> Slereah_: No it's not.
16:46:00 <ehird> http://en.wikipedia.org/wiki/Fibonacci_number
16:46:00 <Slereah_> Owait, fibonacci
16:46:10 <Slereah_> What was I thinking
16:46:18 <Slereah_> > fibs!!-1
16:46:19 <ehird> > fibs!!1
16:46:21 <lambdabot> Not in scope: `!!-'
16:46:22 <lambdabot> 1
16:46:29 <ehird> > fibs!!2
16:46:31 <lambdabot> 1
16:46:33 <ehird> > fibs!!3
16:46:35 <lambdabot> 2
16:46:43 <pikhq> > let fibo = (!!) fibs in fibo -1
16:46:45 <lambdabot> No instance for (GHC.Num.Num (GHC.Types.Int -> a))
16:46:45 <lambdabot> arising from the lite...
16:46:54 <ehird> :t (!!)
16:46:54 * pikhq feels dumb. YAY.
16:46:55 <lambdabot> forall a. [a] -> Int -> a
16:47:04 <ehird> pikhq: -
16:47:05 <ehird> it's a wart
16:47:07 <ehird> you need (-1)
16:47:10 <nooga_> yay
16:47:10 <ehird> due to associativity
16:47:17 * pikhq flips off -
16:47:19 <ehird> @let fib = (!!) fibs
16:47:20 <lambdabot> Defined.
16:47:23 <ehird> > fib (-1)
16:47:25 <lambdabot> * Exception: Prelude.(!!): negative index
16:47:26 <nooga_> i'm ready to feel pure awesomeness of lambda!
16:47:32 <pikhq> That's more like it.
16:47:37 <nooga_> should i use textmate? :F
16:47:40 <ehird> > fibs!!4
16:47:42 <lambdabot> 3
16:47:48 <ehird> nooga_: it has a haskell bundle but it doesn't handle indentation.
16:47:53 <pikhq> nooga_: There is no editor but Emacs.
16:47:55 <ehird> either stomach emacs and use haskell-mode+haskell-indentation,
16:47:57 <nooga_> OH
16:47:59 <ehird> or get along with vim or haskell
16:48:12 <ehird> > fibs!!5
16:48:14 <lambdabot> 5
16:48:17 <ehird> > fibs!!6
16:48:17 <nooga_> I PREFER VIM
16:48:19 <lambdabot> 8
16:48:21 <ehird> Thar we go.
16:48:51 <ehird> @let lie n = take n $ iterate (fibs !!) 6
16:48:52 <pikhq> > fib $ fib 5
16:48:53 <lambdabot> Defined.
16:48:54 <lambdabot> 5
16:48:56 <ehird> > lie 1
16:48:57 <lambdabot> [6]
16:49:05 <ehird> > map lie [0..]
16:49:07 <lambdabot> [[],[6],[6,8],[6,8,21],[6,8,21,10946],[6,8,21,10946,-6804146883746901631],[...
16:49:14 <ehird> er.
16:49:21 <pikhq> Ints, bitch.
16:49:22 <ehird> @let lie n = (iterate (fibs !!) 6) !! n
16:49:24 <lambdabot> Couldn't match expected type `[Int]' against inferred type `Int'
16:49:30 <ehird> ...also, FUCKING INTS.
16:49:35 <ehird> @undef lie
16:49:39 <ehird> @let lie n = (iterate (fibs !!) 6) !! n
16:49:40 <lambdabot> <local>:1:18: Not in scope: `fibs'
16:49:47 <ehird> what
16:49:48 <ehird> > fibs
16:49:49 <lambdabot> Not in scope: `fibs'
16:49:58 <ehird> @let fibs = fix $ (0:) . scanl (+) 1
16:49:59 <lambdabot> Defined.
16:49:59 <Deewiant> ehird: @undef doesn't take a parameter.
16:50:06 <ehird> oh, bollocks
16:50:10 <ehird> @let fib = fibs !!
16:50:10 <lambdabot> Parse error in expression: HsPostOp (HsVar (UnQual (HsIdent "fibs"))) (HsQV...
16:50:14 <ehird> @let fib = (fibs !!)
16:50:15 <lambdabot> Defined.
16:50:43 <ehird> @let lie = genericIndex . iterate (genericIndex fibs) 6
16:50:44 <lambdabot> Couldn't match expected type `a -> [b]'
16:50:50 <ehird> :t genericIndex
16:50:51 <lambdabot> forall b a. (Integral a) => [b] -> a -> b
16:51:03 <ehird> wtf
16:52:32 <ehird> ...
16:52:36 <ehird> :t (genericIndex .)
16:52:38 <lambdabot> forall b a a1. (Integral a) => (a1 -> [b]) -> a1 -> a -> b
16:52:40 <ehird> oh
16:52:40 <ehird> of course
16:52:46 <ehird> @let lie n = genericIndex n $ iterate (genericIndex fibs) 6
16:52:47 <lambdabot> <local>:3:8:
16:52:48 <lambdabot> No instance for (Integral [b])
16:52:48 <lambdabot> arising from a use o...
16:52:57 <Deewiant> ?ty \x -> iterate (genericIndex x) 6
16:52:57 <ehird> @let lie n = iterate (genericIndex fibs) 6 `genericIndex` n
16:52:58 <lambdabot> forall b. (Integral b) => [b] -> [b]
16:52:59 <lambdabot> Defined.
16:53:11 <ehird> @let lie = (iterate (genericIndex fibs) 6 `genericIndex`)
16:53:12 <lambdabot> <local>:3:0:
16:53:12 <lambdabot> Equations for `lie' have different numbers of arguments
16:53:12 <lambdabot> ...
16:53:16 <ehird> @undef
16:53:24 <ehird> @let fibs = fix $ (0:) . scanl (+) 1
16:53:25 <lambdabot> Defined.
16:53:28 <ehird> @let fib = genericIndex fibs
16:53:29 <lambdabot> Defined.
16:53:32 <ehird> @let lie = (iterate (genericIndex fibs) 6 `genericIndex`)
16:53:33 <lambdabot> Defined.
16:53:38 <ehird> > map lie [0..]
16:53:39 <lambdabot> [6,8,21,10946,1695216512765707006912636688460460939847003870309508922628952...
16:53:41 <ehird> \o/
16:54:05 <ehird> http://www.research.att.com/~njas/sequences/index.html?q=6%2C8%2C21%2C10946&language=english&go=Search
16:54:07 <ehird> Iterations of the Fibonacci sequence starting at 6.
16:54:09 <ehird> lawl
16:54:50 <ehird> > 10^2287
16:54:52 <lambdabot> 100000000000000000000000000000000000000000000000000000000000000000000000000...
16:55:01 <ehird> > lie 4 / (10^2287)
16:55:03 <lambdabot> Add a type signature
16:55:06 <ehird> > lie 4 / (10^2287) :: Double
16:55:07 <lambdabot> No instance for (GHC.Real.Integral GHC.Types.Double)
16:55:07 <lambdabot> arising from a use ...
16:55:12 <ehird> o_O
16:55:12 <ehird> oh
16:55:17 <ehird> > fromIntegral (lie 4) / (10^2287) :: Double
16:55:18 <lambdabot> NaN
16:55:21 <ehird> aw
16:55:25 <ehird> "a (4)=1.695... * 10^2287"
16:56:00 <Deewiant> > fromIntegral (lie 4) / (10^2287) :: CReal
16:56:05 <lambdabot> 1.695216512765707006912636688460460939847
16:56:22 <ehird> CReal is Few Digits, right?
16:56:31 <ehird> yep
16:56:43 <ehird> "Currently the show throws an error." -- out of date page that, evidently
16:56:50 <ehird> "Also the (==) function returns false if the two CReals are different, and does not terminate if the two CReals have the same value."
16:56:50 <ehird> lol
16:58:27 -!- nooga has joined.
17:00:03 -!- nooga_ has quit (Read error: 104 (Connection reset by peer)).
17:00:08 <pikhq> ehird: So... Do not compare CReals. :P
17:00:20 <ehird> because > and < don't exist
17:00:24 <ehird> pikhq: but they're showable now in lambdabot
17:00:26 <ehird> so maybe
17:00:31 <ehird> > (3::CReal)==3
17:00:33 <lambdabot> True
17:00:34 <ehird> > (3::CReal)==4
17:00:35 <lambdabot> False
17:00:39 <ehird> Magick.
17:00:41 <ehird> @src CReal
17:00:41 <lambdabot> Source not found. :(
17:00:42 <pikhq> Oh, hey. Whoo.
17:00:43 <ehird> @src CReal (==)
17:00:43 <lambdabot> Source not found. Your mind just hasn't been the same since the electro-shock, has it?
17:00:50 * ehird bitchslaps lambdabot
17:00:56 <ehird> :|||||
17:10:05 <nooga> huhhh
17:13:20 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server").
17:20:37 -!- MigoMipo has joined.
17:20:41 -!- olsner has joined.
17:24:07 <nooga> Wolfram is quite smart huh
17:34:57 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server").
17:35:18 <nooga> i want this: http://www.amazon.com/gp/product/0521644089?ie=UTF8&tag=nobugs-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=0521644089
17:39:51 <nooga> does haskell allow overloading operators?
17:40:11 <ehird> It has typeclasses.
17:40:12 <ehird> :t (+)
17:40:13 <lambdabot> forall a. (Num a) => a -> a -> a
17:40:27 <ehird> But it does not allow you to use the dangerous, unpredictable thing that is all functions being overloadable.
17:40:38 <ehird> An operator is just any name where all the characters are symbols, btw.
17:40:56 <nooga> i i'd like to make Vector3 type
17:41:11 <ehird> So implement a Num instance.
17:42:08 <nooga> Num :: (Float,Float,Float) -> (Float,Float,Float) -> (Float,Float,Float) ?
17:42:16 <ehird> .......
17:42:25 <ehird> pikhq: please direct nooga to actually read a haskell tutorial
17:42:34 <ehird> thx
17:42:44 <nooga> okay
17:42:49 <nooga> i've read the first chapter
17:43:07 <nooga> and briefly scanned further chapters ;p
17:43:18 <pikhq> Read the whole thing.
17:43:33 <pikhq> You won't grok monads, but you'll be in a position to have a hope of doing so.
17:43:41 <ehird> pikhq: We're talkin' bout nooga here.
17:44:00 <pikhq> ehird: Thus why I never said he would actually figure them out.
17:44:05 <ehird> :P
17:44:05 <pikhq> Just that he'd have a hope.
17:44:05 <pikhq> :P
17:48:49 <nooga> such talking fills me with urge to act even more idiotic
17:49:04 <nooga> to annoy ehird
17:55:56 <ehird> Anyone have a Siemens Gigaset SE572, incidentally?
17:56:38 <ehird> Say yes :|
17:57:55 <comex> wireless-B router?
17:58:00 <comex> why do you want one of those :p
17:58:20 <ehird> because it's my ISP's shit supplied router and i want to stick alternate firmware on it.
17:58:29 <ehird> but everything just lists other models of the gigaset, i'm wondering if it'd still work.
17:58:58 <ehird> http://www.dd-wrt.com/dd-wrtv2/down.php?path=downloads%2Fstable%2Fdd-wrt.v24+SP1%2FConsumer%2FSiemens/ hmm
17:59:11 <ehird> ugh, it seems to use vxworks
17:59:42 <comex> just buy a new one
18:00:21 <ehird> i have a wrt5gl, comex, but my isp only works with their shit provided modems
18:00:23 <ehird> lockdown
18:00:24 <ehird> so fuck that shit
18:00:31 <ehird> i'm switching isp, before you say that
18:04:58 <ehird> comex: think i'll have better luck with openwrt or dd-wrt?
18:09:58 <ehird> broadcom 47xx
18:10:01 <ehird> let's try this shit!
18:10:05 <ehird> **BRICK TIME**
18:18:04 <nooga> :K
18:20:27 <pikhq> It seems that researchers have inserted electrodes directly into the pleasure centers of the brain in order to treat depression.
18:20:35 <pikhq> In other words, we have wireheads.
18:20:51 <nooga> oh
18:31:56 <AnMaster> pikhq, wireheads?
18:32:05 <ehird> >_<
18:32:13 <ehird> http://en.wikipedia.org/wiki/Wirehead
18:32:14 <AnMaster> ehird, didn't brick it+
18:32:20 <ehird> AnMaster: i'm trying
18:32:22 <AnMaster> s/+/?/
18:32:31 <AnMaster> ehird, why not just get a new one
18:32:39 <ehird> I have another one.
18:32:40 <pikhq> AnMaster: Niven.
18:32:42 <ehird> Locked down ISP.
18:32:48 <AnMaster> pikhq, ?
18:32:57 <AnMaster> who/what is that
18:33:09 <AnMaster> also firefox is loading, to check out "wirehead"
18:33:20 <pikhq> Larry Niven, somewhat well-known science fiction author.
18:33:27 <pikhq> About as prolific as Asimov.
18:33:48 <pikhq> A
18:34:00 <GregorR-L> Nobody is about as prolific as Asimov :P
18:34:06 <pikhq> And does really stunningly well-thought-out aliens.
18:34:15 <fizzie> Did the Known Space stuff.
18:34:34 <pikhq> GregorR-L: ... Well, true. Asimov was really insanely prolific.
18:35:35 <fizzie> Niven is an order of magnitude less prolific, where an order of magnitude in this case means "full bibliography in the main Wikipedia article" vs. "bibliography as a separate Wikipedia page".
18:36:57 <AnMaster> hah
18:37:50 <ehird> did you write a box
18:38:08 <pikhq> Still impressive.
18:38:29 <pikhq> But sometimes I forget that Asimov has several hundred books to his name.
18:38:34 <pikhq> And not a mere 100. :P
18:39:13 <fizzie> Niven's list of books seems to be around the same length as Clarke's, though I think slightly shorter. Still, quite a pile.
18:39:34 <CESSMASTER> scifi writers like to turn out lots of crap
18:39:43 <pikhq> CESSMASTER: It's good.
18:40:05 * pikhq notes that CESSMASTER probably has never read "Ringworld".
18:40:06 <nooga> in that tutorial
18:40:10 <nooga> they don't use let
18:40:11 <pikhq> s/"/\//
18:40:12 <nooga> why?
18:40:26 <pikhq> Which tutorial?
18:40:35 <ehird> `addquote <reddit user "othermatt"> So what you're saying is that I shouldn't lick my iPhone but instead I should rub it on my eyes first and then lick my eyeballs?
18:40:36 <HackEgo> 14|<reddit user "othermatt"> So what you're saying is that I shouldn't lick my iPhone but instead I should rub it on my eyes first and then lick my eyeballs?
18:40:40 <nooga> learnyou...
18:40:41 <nooga> oh
18:40:46 <ehird> 14?
18:40:47 <ehird> `addquote Thomas Edison
18:40:47 <nooga> they don't use them in .hs files
18:40:47 <HackEgo> 15|Thomas Edison
18:40:57 <ehird> GregorR-L: You bitch.
18:40:59 <ehird> !help
18:41:00 <EgoBot> help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
18:41:00 <asiekierka> hi
18:41:04 <ehird> `help
18:41:05 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
18:41:23 <pikhq> Well, you do. foo = let bar = (\x -> x) in bar
18:41:24 <pikhq> , for example.
18:41:32 <ehird> the proper
18:43:11 <ehird> `addquote Thomas Edison
18:43:12 <HackEgo> 15|Thomas Edison
18:43:18 <ehird> GregorR-L: People have, at some time, said "Thomas Edison".
18:43:23 <ehird> In at least one of these times,
18:43:31 <ehird> it was funny; for example, as an answer to a question.
18:43:39 <ehird> Therefore, "Thomas Edison" is (a) a quote and (b) funny.
18:43:44 <ehird> Therefore, it is appropriate.
18:44:04 <GregorR-L> `addquote <ehird> I'm a proud and happy member of NAMBLA Youth UK
18:44:05 <HackEgo> 16|<ehird> I'm a proud and happy member of NAMBLA Youth UK
18:44:21 <ehird> Sure thing bro
18:44:30 <ehird> Except people have actually said Thomas Edison :-P
18:45:08 <GregorR-L> I do believe that you've said that.
18:45:13 <ehird> OK then.
18:45:16 <GregorR-L> In fact, if I cite a reliable resource:
18:45:17 <GregorR-L> `quote 16
18:45:18 <HackEgo> 16|<ehird> I'm a proud and happy member of NAMBLA Youth UK
18:45:21 <GregorR-L> It's clear that you have.
18:49:00 <pikhq> Oh, he's just in it for the man-boy love.
18:49:18 <GregorR-L> Uh, would there be any other reason to be in it? :P
18:49:25 <ehird> I was typing what GregorR-L just said :P
18:49:36 <pikhq> Why a North American organisation has a UK youth organisation is beyond me.
18:49:48 <ehird> Shut up.
18:49:57 <pikhq> GregorR-L: You think that others should be free to have man-boy love?
18:50:07 <ehird> pikhq: Oh, come on.
18:50:15 <ehird> Nobody who thinks that is part of NAMBLA.
18:50:59 <pikhq> Why not?
18:51:04 <GregorR-L> In my last year of high school, one of the teachers made some joke about NAMBLA, and that became a running gag. He was also retiring that year. When we left, we gave him a "present" with the express warning that he didn't open it until he was at home, alone, without his wife looking over his shoulder. It was a thong that said "NAMBLA Oregon Chapter President" and an infant T-shirt that said "My daddy is a proud member of NAMBLA"
18:51:06 <ehird> Seriously, pikhq?
18:51:34 <ehird> nambla might as well be called "Pedophile Association".
18:51:57 <GregorR-L> + of America
18:52:02 <pikhq> Yes, and there might be people in it who are A-okay with pedophilia without being pedophiles.
18:52:09 <ehird> But there aren't.
18:52:22 <pikhq> Are you sure?
18:52:27 <GregorR-L> Sort of like there COULD be people who add their name to the sex offender watchlist without actually being sex offenders.
18:52:53 <ehird> pikhq: The way you say it makes it sound like you're a member of NAMBLA and trying to rationalize it :P
18:52:56 <pikhq> GregorR-L: ... Except that being on the sex offender list isn't optional.
18:53:21 <pikhq> ehird: No, I'm just saying that there's a lot of wackos out there.
18:53:22 <ehird> http://cache.gawker.com/assets/images/gizmodo/2009/06/Windows_7_launch_pricing.jpg ← Hey, Windows 7 pricing is actually going to be semi-sane.
18:53:29 <ehird> Three versions starting at $50.
18:53:34 <pikhq> And that some of them may well support pedophilia.
18:53:44 <pikhq> And some of those may well be members of NAMBLA.
18:54:17 <pikhq> ehird: Oh, they announced their new money-printing scheme?
18:54:44 <ehird> pikhq: you are finding fault in a simplification of the model range and a reduction of prices
18:54:45 <ehird> just FYI :p
18:55:12 <pikhq> ehird: I am finding fault in there being a price for a non-scarce good.
18:55:20 <ehird> I agree.
18:55:29 <ehird> But there's still shades of poop colour.
18:55:42 <ehird> Also, it makes it cheaper for people to help pirate them :-P
18:56:07 <pikhq> Except for the pre-release piracy.
18:56:15 <pikhq> That doesn't care about costs.
18:56:15 <pikhq> ;)
18:56:40 <ehird> pikhq: Pre-release piracy involves people risking their jobs in a very real way.
18:56:49 <ehird> Also, RC versions of 7 are being disabled when it comes out.
18:56:53 <pikhq> True.
18:57:18 <pikhq> And RC versions of 7 are being disabled *6 months after* it comes out.
18:58:09 <ehird> Oh, really?
18:58:15 <ehird> I thought they were being disabled in July.
18:58:44 <nooga> ehird: http://www.ninj4.net/kinetic/haskell-independent.html
18:58:45 <nooga> looks pro
18:59:00 <ehird> nooga: It works. Sort of.
18:59:27 <nooga> also House
18:59:32 <ehird> yes
18:59:38 <ehird> regarding non-scarce goods: Apple could very reasonably open-source OS X with more or less no change in profits: a bit less as people do hackintoshes (this is a silly argument akin to "if weed were legal more people would smoke it!!11"), and open-source people would jump on the bandwagon
18:59:45 <ehird> thus balancing it out, more or less
18:59:56 <ehird> in fact, it'd probably be a net profit, but the profit being in goodwill
19:00:23 <ehird> like 90% of people don't want to build an os or use an unsupported, unofficial binary
19:00:30 <pikhq> If OS X were made GPL, CDL, APL, etc. I'd switch to OS X tonight, man.
19:00:36 <ehird> and apple mainly profits from its hardware sales, not software
19:00:42 <ehird> pikhq: it'd be BSD.
19:00:52 <ehird> pikhq: Heck, Apple are jumping ship from gcc because it changed to GPLv3.
19:00:59 <pikhq> ehird: I named Apple's free software license, man!
19:01:04 <ehird> Well, yes.
19:01:09 <ehird> pikhq: but e.g. kernel patches
19:01:14 <ehird> it could get sticky with the bsd base
19:01:27 <ehird> maybe base system bsd, ui apl
19:01:44 <pikhq> The base system is already BSD.
19:01:54 <ehird> pikhq: true, but not all of it
19:02:04 <ehird> i'm talking about things like all the command-line stuff
19:02:22 <ehird> if apple open-sourced OS X I'd probably do a bunch of patches to it to make it be more unixy
19:02:26 <pikhq> ... Yes, that's all free software already...
19:02:28 <ehird> and maybe add native X11 protocol support to quartz
19:02:38 <pikhq> Everything that's not NeXT, in fact.
19:02:39 <ehird> pikhq: even the objc interface generator?
19:03:11 <pikhq> If it's not, GCC's is compatible.
19:03:17 <pikhq> If it is, it's probably GCC's by now.
19:03:17 <pikhq> :P
19:03:18 <AnMaster> <nooga> ehird: http://www.ninj4.net/kinetic/haskell-independent.html <-- very interesting
19:03:27 <ehird> AnMaster: unfortunately c-dependent.
19:03:35 <ehird> i started a pure haskell + some asm OS a bit back.
19:03:52 <ehird> i gave up when I tried to imagine writing a memory manager in Haskell that carefully steps around any consing
19:03:55 <ehird> (I'm not sure it's even possible)
19:04:02 <nooga> i'll try to code a path tracer in haskell
19:04:25 <GregorR-L> AnMaster, nooga, ehird: http://programatica.cs.pdx.edu/House/
19:04:29 <ehird> we know.
19:04:35 <ehird> maybe not AnMaster
19:04:37 <ehird> but me and nooga
19:04:39 <ehird> noga mentioned it
19:04:40 <ehird> nooga
19:04:43 <AnMaster> heh
19:04:47 <ehird> house is kinda dead though
19:04:50 <ehird> also a bit rubbish
19:04:51 <ehird> they have patches to ghc
19:04:57 <ehird> sure, sure, it's clean, but bleargh
19:05:02 <ehird> you have to get a specific ghc version
19:05:35 <nooga> uhm
19:06:34 <ehird> i want plan9 on my new box without adding a partition to my ssd
19:06:42 <ehird> maybe i'll get an external drive for stuff
19:07:50 <AnMaster> ehird, you think plan9 has the needed drivers
19:08:02 <AnMaster> ?
19:08:08 <ehird> usb kb/mouse stuff needs enabling things, but i can just enable my bios' ps/2 emulation
19:08:20 <ehird> it can just treat the cpu as 386 as it does every x86 cpu
19:08:30 <ehird> display, ehh, i'll just use vga stuff
19:08:41 <ehird> i mean, the generic vga-like mode for 1920x1200
19:08:51 <ehird> or less if i can't get that working
19:09:02 <ehird> audio, meh, it can probably handle onboard audio
19:09:12 <ehird> so i think it should be fine.
19:10:06 <ehird> http://en.wikipedia.org/wiki/The_Golden_Ass
19:11:53 <GregorR-L> I'm betting thegoldenass.com has very different content.
19:12:43 <AnMaster> <ehird> audio, meh, it can probably handle onboard audio <-- probably not
19:12:47 <ehird> AnMaster: why not
19:12:48 <AnMaster> get a soundblaster card
19:12:50 <ehird> no thx
19:12:52 <AnMaster> it can probably handle that
19:13:05 <pikhq> Onboard audio tends to be AC'97.
19:13:08 <ehird> do you know how we will settle this?
19:13:11 <AnMaster> pikhq, hm ok
19:13:15 <ehird> reading the plan9 source
19:13:15 <pikhq> Which is ridiculously well supported.
19:13:18 <ehird> or, yeah, what pikhq said
19:13:26 <AnMaster> pikhq, fair enough
19:13:37 <AnMaster> why does linux has different alsa drivers for them then
19:13:40 <pikhq> Especially since most *emulators* provide an AC'97.
19:13:40 <pikhq> ;)
19:13:41 <ehird> for extra features
19:13:48 <AnMaster> ah
19:14:04 <ehird> http://www.plan9.bell-labs.com/wiki/plan9/Supported_PC_hardware/index.html
19:14:07 <ehird> VGA CARDS AND CHIPSETS
19:14:12 <ehird> lol
19:14:15 <ehird> it stops at geforce 6800 xt
19:14:24 <pikhq> Eh, it probably supports newer.
19:14:26 <ehird> three generations behind :)
19:14:41 <AnMaster> ehird, what about SATA/IDE chipset
19:14:44 <AnMaster> check if your is listed
19:14:46 <AnMaster> I bet not
19:14:48 <ehird> pikhq: probably not; nvidia/ati drivers are a huge untertaking
19:14:53 <ehird> there aren't any decent open source ones for linux even
19:15:03 <ehird> AnMaster: dude, plenty of people use plan9
19:15:10 <AnMaster> ehird, check the list there
19:15:26 <ehird> it supports ICH9.
19:15:38 <ehird> why do you think that plan 9 doesn't support so much hardware, AnMaster?
19:15:43 <ehird> people actually use it, you know
19:15:55 <ehird> people are paid to administer plan 9 systems, it runs on a big supercomputer too
19:16:02 <ehird> it supports a decent amount of hardware
19:16:51 <GregorR-L> "MAGNETO-OPTICAL DISK JUKEBOXES"
19:16:52 <GregorR-L> WTF?
19:16:56 <AnMaster> <ehird> people actually use it, you know <-- SUUUURE
19:17:07 <ehird> GregorR-L: aka "cd drive"
19:17:13 <GregorR-L> .............
19:17:14 <ehird> AnMaster: i'm not interested in talking to a troll.
19:17:15 <AnMaster> ehird, no
19:17:18 <AnMaster> not cd drive
19:17:22 <AnMaster> "MAGNETO-OPTICAL"
19:17:25 <AnMaster> read what it says
19:17:27 <ehird> but here, have a nice link:
19:17:33 <AnMaster> GregorR-L, what is that quote from
19:17:39 <pikhq> ... There were magento-optical *jukeboxes*?
19:17:39 <ais523> GregorR-L: maybe they contain floppy disks /and/ CDs
19:17:50 <AnMaster> ...
19:17:53 <pikhq> What was that, some odd backup scheme?
19:17:57 <AnMaster> ais523, magento-optical disks says
19:17:58 <AnMaster> err
19:18:00 <AnMaster> exists*
19:18:04 <AnMaster> special type
19:18:11 <AnMaster> or at least existed
19:18:14 <ehird> AnMaster: http://doc.cat-v.org/plan_9/blue_gene/. What is your rebuttal now? "IBM's gigantic supercomputer doesn't count as a real machine running plan 9 to do real work?"
19:18:19 <ehird> Have fun with that argument.
19:18:37 <pikhq> There's a somewhat common external RAID enclosure which runs Plan 9.
19:18:47 <AnMaster> ehird, I wasn't saying that there weren't people using it
19:18:50 <pikhq> I don't know *why* it uses Plan 9, but it does, and it works well.
19:18:51 <AnMaster> what I was saying was...
19:18:54 <ehird> 19:16 AnMaster: <ehird> people actually use it, you know <-- SUUUURE
19:18:55 <AnMaster> that the userbase is tiny
19:18:56 <ehird> Yes, you were.
19:19:06 <AnMaster> ehird, I meant, userbase is tiny
19:19:10 <AnMaster> sure, a few people use it
19:19:26 <ehird> AnMaster: Okay, so... 2000 Sydney Olympics light show, a popular RAID enclosure, IBM Blue Gene... any half-witted OS could get used for those, huh?
19:19:27 <pikhq> (I don't remember what RAID enclosure there was, I just remember having to log into it once and being amused that it was Plan 9.)
19:19:39 <ehird> Clearly, nobody uses Plan 9 and they picked it by roll of die.
19:19:43 <AnMaster> ehird, impressive
19:19:52 <pikhq> Who cares if it has a small amount of use?
19:19:53 <AnMaster> but I wouldn't be surprised with linux of any of them
19:19:54 <ehird> No, surely users of it did not suggest it and administrate it.
19:20:00 <pikhq> It's a freaking clever OS.
19:20:01 <ehird> Magic faeries inspired them to use it.
19:20:07 <pikhq> It's like Unix, only more so.
19:20:07 <pikhq> :P
19:20:26 <ais523> ehird: the light show at the 2008 olympics ran on Windows
19:20:34 <ais523> we know because it projected a BSOD onto the roof of the stadium
19:20:43 <ehird> ais523: we already know windows is big
19:20:44 <AnMaster> ais523, hilarious
19:21:35 <ehird> i want a connection machine!
19:22:15 <AnMaster> ehird, how did the bricking go?
19:22:33 <AnMaster> ehird, alternative: buy another router instead?
19:22:50 <ehird> AnMaster: ehird, why not just get a new one 18:32 ehird: I have another one. 18:32 ehird: Locked down ISP.
19:22:54 <ehird> Your memory lasts less than an hour.
19:23:07 <ehird> Congratulations; you're both dumber than goldfish and the collective population of Digg.
19:23:30 <AnMaster> ehird, so the other one was locked down too?
19:23:38 <AnMaster> or what do you mean
19:23:54 <ehird> The other one... is not a router-modem... therefore I need another modem... and said modem... would probably not work with my ISP.
19:24:03 <AnMaster> ehird, aha!
19:24:04 <ehird> I'm saying this... very slowly... so you can read it... slowly.
19:24:16 <AnMaster> ehird, I didn't know it was a router-modem
19:24:20 <ehird> Well, right.
19:24:20 <AnMaster> but weren't you going to change ISP
19:24:21 <AnMaster> anyway
19:24:28 <ehird> Yes, I am going to.
19:25:23 <ehird> Incidentally, I command everyone to read http://plan9.bell-labs.com/sources/plan9/.
19:25:28 <nooga> how to store and modify 2d array of numbers in haskell?
19:25:40 <pikhq> Lawl. There's people who think that there kids will not be better off than they are. ... We're going to have fucking Star Trek replicators here soon.
19:25:47 <ehird> nooga: You cannot modify anything in HAskell.
19:25:48 <ehird> pikhq: there kids
19:25:53 <pikhq> nooga: There is no state.
19:25:55 <pikhq> s/there/their/
19:26:04 <nooga> their
19:26:05 <nooga> ?
19:26:16 <Deewiant> There are at least three forms of state: IO, ST, and State.
19:26:26 <AnMaster> pikhq, I don't believe we will have Star Trek replicators in the foreseeable(sp?) future
19:26:43 <GregorR-L> `google reprap
19:26:44 <HackEgo> A low cost open source rapid prototyping system that is capable of producing its own parts and can therefore be replicated easily. \ reprap.org/ - [14]Cached - [15]Similar
19:26:46 <AnMaster> "<pikhq> nooga: Their is no state."
19:26:47 <AnMaster> :D
19:26:54 <ehird> AnMaster: RepRap, foo.
19:26:59 <pikhq> AnMaster: there does not match There.
19:26:59 <AnMaster> ehird, link
19:27:03 <ehird> google.com
19:27:03 <GregorR-L> ...
19:27:06 <GregorR-L> `google reprap
19:27:07 <HackEgo> A low cost open source rapid prototyping system that is capable of producing its own parts and can therefore be replicated easily. \ reprap.org/ - [14]Cached - [15]Similar
19:27:07 <AnMaster> pikhq, meh, but it was funnier
19:27:22 * AnMaster googles
19:27:27 <GregorR-L> ...
19:27:27 <AnMaster> oh hi GregorR-L :P
19:27:28 <GregorR-L> wtf
19:27:30 <pikhq> We've got freaking rapid prototypers that *print themselves*.
19:27:37 <GregorR-L> Anyway, that's a far cry from replicators.
19:27:47 <ais523> ehird: isn't there a make-copy-with-modifications operator in Haskell that gets optimised into modifying variables unless the original's used?
19:27:50 <GregorR-L> (Neither the Star Trek nor Stargate variety :P )
19:27:56 <AnMaster> oh a 3D printer
19:27:57 <ehird> ais523: That is not mutation, and that is not an operator.
19:28:01 <AnMaster> you can't replicate food that way
19:28:01 <pikhq> GregorR-L: It has similar sociological implications to the Star Trek variety.
19:28:06 <ehird> AnMaster: a 3d printer THAT CAN PRINT ITSELF.
19:28:07 <AnMaster> like a glass of water
19:28:09 <ehird> A working copy of itself.
19:28:10 <AnMaster> ehird, hm ok
19:28:12 <pikhq> Of course, this doesn't rely on applied phlebotinium, though.
19:28:12 <ais523> ehird: I know it isn't mutation, but I did think it was an operator
19:28:16 <AnMaster> ehird, equally large?
19:28:19 <ehird> AnMaster: Yes.
19:28:29 <AnMaster> ehird, already assembled?
19:28:30 <pikhq> AnMaster: Some assembly required.
19:28:34 <GregorR-L> lawl, it can only replicate smaller ones until you're building an iiiiiiiiiiiiiitty bitty one :P
19:28:46 <ehird> GregorR-L: :D
19:28:56 <pikhq> It still has freaking insane sociological implications.
19:29:18 <pikhq> I'm thinking we'll hear the term "piracy" apply to physical designs here in 10 years. :P
19:29:22 <AnMaster> "make most of the parts to make another 3D printer"
19:29:24 <AnMaster> RIIGHT
19:29:25 <nooga> ehird: then i should build a function obtainPixel'sColor x y
19:29:30 <AnMaster> not all I guess
19:29:32 <AnMaster> so fail
19:29:38 <ehird> AnMaster is an idiot. Discuss.
19:29:47 <AnMaster> ehird, I meant your description fails
19:29:49 <pikhq> "Lawl it doesn't print *everything*."
19:29:59 <nooga> and call it immediately writing returned values to a file?
19:30:02 <ehird> AnMaster will only be happy when it can print a spaceship in 3 seconds.
19:30:02 <pikhq> That's because it's a work in progress.
19:30:04 <ehird> nooga: IO fail
19:30:05 <AnMaster> I don't think *IT* fails
19:30:11 <AnMaster> but I think ehird does
19:30:13 <AnMaster> pikhq, ^
19:30:18 <pikhq> It is still a rapid prototyper for a few hundred bucks.
19:30:22 <pikhq> Ah.
19:30:23 <AnMaster> pikhq, agreed
19:30:24 <nooga> ehird: IO fails in haskell? pitty
19:30:31 <ehird> nooga: Sigh.
19:30:50 <ehird> AnMaster: It builds every single plastic part of the RepRap.
19:30:59 <pikhq> BTW, IO, ST, and State are no more state than continuation-passing style is state. :P
19:31:41 <ehird> AnMaster: Also - [[The next version of RepRap will be RepRap Version II "Mendel". Mendel will have multiple write heads for working with a wide range of materials in a single reprapped object, and will have the ability to embed three-dimensional electrical circuitry inside mechanical parts. Mendel is still very much in the early stages of development, but the build instructions are themselves under construction at that link.]]
19:31:43 <ehird> So there.
19:32:07 <nooga> O_O
19:32:41 <pikhq> Should with any luck be able to replace PCBs.
19:33:13 <Warrigal> There's nothing wrong with an assembler assembling a full-sized copy of itself.
19:33:33 <Warrigal> It just has to not do so entirely inside itself.
19:33:57 * pikhq imagines a humanoid robot.
19:34:03 <Warrigal> Alternatively, it must be able to change form in such a way that an unchanged version of itself could fit inside it.
19:34:16 <ehird> TRANSFORMERS
19:34:17 <ehird> PRINTERS IN DISGUISE
19:34:27 <Warrigal> Like a balloon. You can fit a deflated balloon in an inflated balloon.
19:34:41 -!- ais523 has quit (Remote closed the connection).
19:34:41 <pikhq> But, man. We've got freaking *printers of matter* that can *print themselves*.
19:34:42 <AnMaster> ehird, ok that is cool
19:34:45 <Warrigal> If you have one of those fancy fold-up trash cans, you can fold it up and throw it away inside another of it.
19:34:49 <pikhq> Forward the future!
19:34:58 <Warrigal> (Note: I've actually never even heard of a fold-up trash can.)
19:35:13 <ehird> AnMaster: Also, a few hundred dollars is how much a RepRap costs to make. Other 3D printers? Many thousands.
19:35:19 <AnMaster> ehird, agreed
19:35:25 <ehird> So yes, it is the key to post-scarce electronics and self-replication.
19:35:45 <pikhq> Just a rapid prototyper for a few hundred dollars is a disruptive technology.
19:36:00 <ehird> I'd quite like a reprap
19:36:05 <nooga> i'd appreciate semi-conductor ink for my inkjet
19:36:06 <ehird> I'd make ridiculous shapes with it.
19:36:08 <AnMaster> ehird, I'm still waiting for being able to say "Computer, a glass of water please" and have it there in less than 3 seconds
19:36:08 <pikhq> That it can print itself is liable to outmod economics.
19:36:10 <AnMaster> ;P
19:36:25 <nooga> so that i could print electronic circuits on foil
19:36:30 <ehird> AnMaster: That can be done if you have a water tank
19:36:33 <pikhq> AnMaster: Give it a few hundred years.
19:36:40 <AnMaster> ehird, not that speed
19:36:55 <ehird> AnMaster: What?
19:37:05 <ehird> Squirting water into a cup in 3 seconds is perfectly possible.......
19:37:16 <AnMaster> ehird, BUILDING THE CUP TOO
19:37:27 <ehird> Uh huh.
19:37:29 <nooga> ehhhh
19:37:32 <nooga> idiotic
19:37:43 <pikhq> The reprap can certainly print a cup.
19:37:45 <ehird> "nooga: idiotic" — my IRC client
19:37:47 <AnMaster> and, it should assemble the molecules from raw hydrogen and oxygen of course. (yay! explosions)
19:37:53 <ehird> pikhq: Yes, but you need to dust it off afterwards and it's not glass :P
19:37:54 <AnMaster> pikhq, yep
19:37:59 <AnMaster> pikhq, but in 3 seconds?
19:37:59 <pikhq> It can even print a cocktail glass.
19:38:01 <ehird> I'm not sure i'd drink out of a reprap cup atm.
19:38:01 <nooga> machine could squirt water right into your mouth
19:38:11 <ehird> machine could upload your brain
19:38:12 <ehird> thread over
19:38:14 <pikhq> ehird: Just plastic.
19:38:39 <ehird> Ooh. You know what I want?
19:38:44 <ehird> a 3d MISSINGNO.
19:38:56 <ehird> http://www.trsrockin.com/images/m.jpg but 3d.
19:39:03 <ehird> Like this: http://www.utdallas.edu/~rxf023000/stuff/missingno.jpg
19:39:06 <ehird> With holes and stuff in.
19:39:40 <nooga> use lego
19:39:50 <ehird> that's not as cool as printing one
19:39:58 <ehird> I wonder how fast reprap is
19:40:02 <nooga> slow
19:40:04 <ehird> Doesn't it self replicate in 90 minutes?
19:40:10 <ehird> Or something around that time.
19:40:12 <ehird> Or was it 5 hours
19:40:14 <ehird> pikhq: ?
19:40:17 <Slereah_> ehird : Isn't that M and not Missingno?
19:40:22 <ehird> Slereah_: Same pic
19:40:30 <pikhq> ehird: Few hours, IIRC.
19:40:33 <Slereah_> Iunno
19:40:38 <deveah> do you know how the Chinese hacked into the Pentagon's site?
19:40:47 <ehird> nooga: so not slow.
19:41:19 <nooga> reprap, wait, isn't it that glue gun with guidage ?
19:41:35 <pikhq> nooga: No.
19:41:45 <nooga> no?
19:41:47 <pikhq> nooga is an ijit.
19:41:56 <ehird> *eejit
19:42:36 <AnMaster> eejit?
19:42:36 <nooga> don't be stew-pid
19:42:43 <nooga> eejit -> idiot
19:42:47 <AnMaster> err
19:42:52 <AnMaster> ok
19:42:59 <ehird> enterprise edition just in time
19:43:01 <AnMaster> I don't see how that transformation make sense
19:43:04 <AnMaster> heh
19:43:15 <nooga> eejit == idiot
19:43:21 <ehird> AnMaster: irish slang.
19:43:27 <AnMaster> ah
19:43:37 <ehird> eejit → ejit, idiot → idjit
19:43:40 <pikhq> They're pronounced similarly.
19:43:41 <ehird> id ~= ee
19:44:15 <GregorR-L> j ~= dzh
19:44:28 <GregorR-L> (Where "zh" is the voiced version of "sh")
19:44:57 <ehird> AnMaster: Anyway, the only part RepRap can't print of itself is the circuit board that controls the hardware.
19:45:01 <ehird> Version 2 will be able to print it.
19:45:07 <pikhq> ehird: And the metal rods.
19:45:11 <ehird> That too
19:45:27 <pikhq> Oh, and some screws...
19:45:33 <ehird> Yes but that's trivial
19:45:38 <pikhq> Of those, only the circuit board is pricy.
19:45:59 <nooga> > let idiot = "idiot" ; eejit = "idiot" in idiot == eejit
19:46:00 <lambdabot> True
19:46:00 <pikhq> And it will be significantly less so when you can freaking print PCBs.
19:46:05 <GregorR-L> Can't make the screws out of plastic? :P
19:46:05 <nooga> HA!
19:46:18 <ehird> Prews.
19:46:20 <ehird> Plastic screws.
19:46:37 <pikhq> GregorR-L: It'll have a Field's metal extruder for version 2, IIRC.
19:46:49 <pikhq> Meaning that it could print metal screws.
19:46:57 <nooga> also it can't print the element that melts plastic
19:47:04 <GregorR-L> How about a wood extruder? I want wooden screws.
19:47:13 <pikhq> Well, yes. It can't print all of the extruder.
19:47:19 <ehird> I should make my totally-encrypted, totally-P2P IM/IRC replacement sometime.
19:47:24 <pikhq> GregorR-L: Close you'll get is a wood *pulp* extruder.
19:47:28 <GregorR-L> :P
19:47:36 <pikhq> ehird: ... Done?
19:47:37 <GregorR-L> WHERE'S MY MELTED WOOD DAMN IT
19:47:43 <ehird> pikhq: O RLY?
19:47:47 <nooga> i want to grow bonsai wooden screws
19:48:00 <GregorR-L> `wolfram melting point of wood
19:48:02 <AnMaster> GregorR, it turned into that ash over there
19:48:06 <nooga> it's just a bit of genetic enginieering
19:48:08 <HackEgo> melting point of wood \ \ Input interpretation: \ \ wood \ \ melting point \ \ Generated by Wolfram|Alpha (www.wolframalpha.com) on June 25, 2009 from Champaign, IL. © Wolfram Alpha LLC—A Wolfram Research Company \ \ 1 \ \
19:48:15 <AnMaster> 1?
19:48:25 <GregorR-L> AnMaster: So get rid of the oxygen, surely we can accomplish this.
19:48:27 <ehird> 1 melting points of wood, obviously.
19:48:27 <pikhq> 1 what?
19:48:35 <AnMaster> GregorR, hm, not sure
19:48:43 <AnMaster> GregorR, pretty sure wood itself contains some oxygen
19:48:43 <GregorR-L> Vacuum chamber.
19:48:45 <pikhq> ehird: SILC.
19:48:52 <GregorR-L> I doubt it contains enough to maintain a fire.
19:49:00 <ehird> pikhq: SILC sucks
19:49:03 <nooga> `wolfram 1 dvd in pages
19:49:10 <HackEgo> 1 dvd in pages \ \ Input interpretation: \ \ convert 1 single layer DVD capacity to pages of information \ Result: \ \ 1.8 107 pages of information \ Additional conversion: 9 \ \ 4.7 10 bytes \ \ Comparisons: \ \ 0.23 \ Interpretation: \ \ 14 \ \ AIT E turbo native capacity 20 GB \ \ information \ Basic unit dimensions:
19:49:17 <ehird> Too complicated, not awesome enough, etc
19:49:26 <ehird> Also not really suited to be either an IM or IRC replacement.
19:49:28 <ehird> So there
19:49:33 <pikhq> Okay, then.
19:49:35 <AnMaster> SILC?
19:49:38 <ehird> SILC.
19:49:41 <ehird> `google silc
19:49:42 <HackEgo> 10. [49]Colloquy: IRC, SILC & ICB Client \ An IRC client for Macintosh OS X. Contains screenshots, documentation, support and download area.
19:49:45 <ehird> Er.
19:49:49 <ehird> GregorR-L: `google sucks.
19:49:52 <pikhq> Encrypted chat.
19:49:58 <GregorR-L> ehird: Blame google, not `google :P
19:50:08 <AnMaster> oh that silc
19:50:08 <AnMaster> right
19:50:09 <GregorR-L> (The output is hard to parse :P )
19:50:13 <AnMaster> I knew I heard it before
19:50:28 <AnMaster> GregorR, what about that google api thingy
19:50:32 <pikhq> ehird: Perhaps you'd prefer DirectNet?
19:50:36 <AnMaster> they stopped giving out api keys
19:50:37 <ehird> No :P
19:50:43 <AnMaster> but surely you already have an API key?
19:50:52 <pikhq> GregorR-L: I assume DirectNet is encrypted?
19:50:56 <GregorR-L> Yes.
19:51:05 -!- nooga has quit ("Leaving...").
19:51:06 <pikhq> Well there you go.
19:51:23 <GregorR-L> Channel support is weak, and I haven't worked on DN in years, so *eh*
19:51:45 <pikhq> So, ehird should maintain DirectNet, rather than write his own. :P
19:51:50 <ehird> Noooooo
19:52:00 <GregorR-L> Nah, even I'd rewrite it if I was interested.
19:52:23 <pikhq> Alright. Take a cursory look at it and toss it, then.
19:52:31 <pikhq> Oh, and write it in Haskell. :P
19:52:40 <GregorR-L> Popularity is for chumps anyway.
19:53:10 <ehird> Of course I would write it in Haskell.
19:53:23 <ehird> Using gnupg, probably.
19:53:25 <pikhq> GregorR-L: That's why you work on Plof.
19:53:31 <ehird> Although I'll probably make it generate its own key.
19:53:43 <ehird> Just to avoid the hassle of system-wide stuff for people who don't know what gpg is.
19:53:50 <GregorR-L> pikhq: Plof will be compilable to portable C :P
19:54:03 <pikhq> And Haskell is compilable to portable C.
19:54:11 <ehird> pikhq: Not via ghc, though.
19:54:17 <ehird> fvia-C is highly platform-dependent
19:54:48 <pikhq> Still...
19:55:11 <pikhq> If you don't care about interacting with the outside world, you could compile Haskell to C++ templates. ^_^
19:55:29 <GregorR-L> ...............
19:55:34 <pikhq> Only about as difficult as compiling it to untyped lambda calculus.
19:55:43 <pikhq> (which is to say, you'd have to be fucking mad.)
19:55:43 <GregorR-L> So, you've come to the obvious conclusion that it is NOT compilable to portable C. Good for you :P
19:56:14 -!- Gracenotes has quit (Read error: 54 (Connection reset by peer)).
19:56:18 <ehird> Dude.
19:56:20 <ehird> JHC.
19:56:25 <ehird> Or LHC, iirc.
19:56:28 <ehird> Compiles to C.
19:56:30 <GregorR-L> `google lhc
19:56:32 <HackEgo> LHC NEWS Design report LHC Co-ordination schedule and status Golden Hadron Awards ... LHC Safety. LHC Cooldown Status. LHC@ interactions.org ... \ [14]Photos - [15]LHC_Experiments - [16]LHC OP home page
19:56:35 <GregorR-L> `google lhc haskell
19:56:36 <HackEgo> The Luxurious LHC Haskell Optimization System; Installing ... LHC is a backend for the Glorious Glasgow Haskell Compiler, adding low-level, whole-program ... \ lhc.seize.it/ - [14]Cached - [15]Similar
19:56:42 <GregorR-L> Sweet.
19:56:44 <ehird> That's not it.
19:56:47 <GregorR-L> Unsweet
19:56:50 <ehird> Oh:
19:56:53 <GregorR-L> `google jhc haskell
19:56:55 <HackEgo> jhc is a haskell compiler which aims to produce the most efficient programs possible via whole program analysis and other optimizations. ... \ repetae.net/computer/jhc/ - [14]Cached - [15]Similar
19:56:55 <ehird> LHC was previously based on John Meacham’s JHC project. That code has since been retired.
19:57:11 -!- Gracenotes has joined.
19:57:13 <pikhq> GHC, IIRC, can compile to portable C--, and intends to use this for its code generation.
19:57:24 <ehird> pikhq: ... it DOES use it.
19:57:30 <ehird> pikhq: Simon Peyton Jones invented C--.
19:57:32 <pikhq> Oh.
19:57:34 <pikhq> Does currently.
19:57:35 <ehird> nobody uses -fvia-C nowadays
19:57:37 <ehird> well sometimes.
19:57:44 <pikhq> Simon Peyton Jones is awesome, BTW.
19:58:28 <GregorR-L> There's not yet such a thing as portable C--.
19:58:32 <ehird> He eats souls[1].
19:58:34 <ehird> References:
19:58:35 <ehird> 1. http://upload.wikimedia.org/wikipedia/commons/d/d0/Simon_Peyton_Jones_01.jpg
19:59:44 <Deewiant> :-D
20:00:02 <Deewiant> What a terrible picture of him
20:00:18 <ehird> I like how the focus is on the background
20:02:46 <AnMaster> idea: write a BF minus IO -> C++ templates compiler
20:03:08 <pikhq> Difficult.
20:03:23 <AnMaster> pikhq, not impossible
20:03:30 <pikhq> Of course not.
20:03:42 <pikhq> C++ is Turing complete, after all.
20:03:59 <pikhq> Erm. C++'s type system is.
20:04:29 <pikhq> C++ itself is only an FSA. :P
20:06:03 <AnMaster> pikhq, with file IO
20:06:44 <AnMaster> potentially infinite external memory that way
20:06:53 <pikhq> That's strapping an infinite tape onto an FSA.
20:06:57 <pikhq> :P
20:07:04 <AnMaster> pikhq, doesn't that make it tc?
20:07:10 <AnMaster> or is there some other limit
20:07:13 <pikhq> Given the infinite tape, yes.
20:07:37 <pikhq> Means that C++ itself is not Turing-complete, but C++ running on POSIX is.
20:07:59 <AnMaster> pikhq, C++ running on windows too potentially
20:08:06 <pikhq> Indeed.
20:08:24 <AnMaster> pikhq, C++ running on anything that implements the STL headers with iostreams
20:08:34 <pikhq> (note: some implementations of C++ on POSIX only implement a subset of this system. These implementations are not Turing complete.)
20:08:45 <AnMaster> :D
20:09:28 <AnMaster> pikhq, it would be a PITA to seek to the offset G64 though
20:09:31 <AnMaster> err
20:09:34 <AnMaster> g_64
20:09:35 <AnMaster> rather
20:10:17 <AnMaster> using a POSIX fifo would be easier
20:10:20 <AnMaster> or a set of them rather
20:11:59 <pikhq> Indeed.
20:20:34 -!- deveah has quit ("MUHAHAHAH!!!1111").
20:22:35 <pikhq> Man, Windows 7 Ultimate costs $319 new. ... I could build a decent computer for that.
20:22:53 <pikhq> "Windows -- it costs as much as your computer!"
20:24:35 -!- nooga has joined.
20:24:50 <nooga> is there a vim gui for leopard?
20:24:56 <nooga> hard to fund something stable
20:25:36 -!- MigoMipo has joined.
20:31:58 <AnMaster> nooga, <troll>try the emacs GUI instead</troll>
20:32:01 <AnMaster> bbl
20:34:32 <pikhq> Sure there is one. Terminal.
20:36:46 <nooga> huh
20:36:54 <nooga> then i'm forced to change font
20:37:20 <pikhq> ... You mean you use a different font in your terminal than you'd prefer for coding?
20:48:08 <nooga> FFFFFFFFUUUUUUUUUU
20:48:15 <nooga> where's vimball
21:07:12 -!- Slereah has joined.
21:07:26 -!- Slereah has quit (Client Quit).
21:10:12 <nooga> hah
21:10:13 <nooga> wtf
21:14:31 <nooga> gaaaaa
21:14:40 <pikhq> Haskell?
21:14:52 <ehird> 20:22 pikhq: Man, Windows 7 Ultimate costs $319 new. ... I could build a decent computer for that.
21:14:53 <ehird> $210
21:15:01 <ehird> 20:24 nooga: is there a vim gui for leopard?
21:15:02 <ehird> 20:24 nooga: hard to fund something stable
21:15:04 <ehird> macvim
21:15:17 <nooga> find*
21:15:49 <ehird> http://code.google.com/p/macvim/
21:16:07 <nooga> ok
21:16:12 <pikhq> ehird: $210 is for an upgrade.
21:16:17 <ehird> oh
21:16:18 <nooga> i compiled vim72 and it does nott want to cooperate
21:16:24 <ehird> anyway $319 will not get a decent computer
21:16:29 <ehird> an ok one
21:16:30 <ehird> but not decent
21:16:33 <ehird> nooga: don't compile it
21:16:35 <ehird> nooga: use macvim
21:16:47 <nooga> ok
21:16:56 <nooga> i suppose it supports vimballs?
21:16:59 <pikhq> Such a machine is a couple orders of magnitude faster than most people need.
21:17:11 <ehird> pikhq: Not really
21:18:03 <pikhq> Though to be fair, if people were efficient coders, most people could get by on an 8080. ;P
21:18:44 <ehird> now that's very fale
21:18:44 <ehird> false
21:18:47 <ehird> the web is too complex for that
21:19:37 <pikhq> For video and clever usage of Javascript, sure.
21:19:53 <pikhq> Otherwise, a C64 running Contiki is plenty.
21:19:57 <ehird> pikhq: get back to me when you write a rendering engine sir
21:20:11 <pikhq> Contiki.
21:22:26 <ehird> yeah no
21:23:45 -!- GregorR-L has quit (Read error: 110 (Connection timed out)).
21:24:41 <nooga> beh
21:24:47 <nooga> this whole haskell mode is defunct
21:25:18 <ehird> what
21:25:55 <nooga> it can't find ghc and throw errors
21:26:23 <ehird> that's because it's in /opt/local
21:31:04 -!- asiekierka has quit (Read error: 110 (Connection timed out)).
21:43:46 <nooga> but
21:48:15 -!- augur_ has joined.
21:48:15 -!- augur has quit (Read error: 104 (Connection reset by peer)).
21:48:44 -!- oerjan has joined.
21:49:26 <nooga> huh
21:49:36 <ehird> n! = n ∏ k=1, k ∀n ∈ ℕ ← the closest I can get to http://upload.wikimedia.org/math/0/e/8/0e85eaace43199521530c584b3350444.png with unicode
21:51:47 <nooga> hard to parse
21:52:00 <ehird> no it's not
21:52:06 <ehird> oerjan: isn't ↑ easy to parse
21:52:30 <oerjan> yes ? is easy to parse
21:52:44 * oerjan now checks the logs to find out what that actually was
21:52:49 <ehird> oerjan: clog mangles unicode :P
21:53:00 <ehird> oerjan: i'll make a data: url of it
21:53:04 <oerjan> er not that much?
21:53:33 <ehird> oerjan: data:text/html;charset=utf-8;base64,biEgPSBuIOKIjyBrPTEsIGsg4oiAbiDiiIgg4oSV
21:53:36 <ehird> representation of http://upload.wikimedia.org/math/0/e/8/0e85eaace43199521530c584b3350444.png
21:53:39 <oerjan> i usually check the logs every time i need to read unicode on the channel...
21:54:01 <oerjan> i need to make sure the browser is set to display as UTF-8 first though
21:54:34 <oerjan> doesn't clog just pass utf-8 straight through?
21:54:44 <oerjan> (and of course my font is not comprehensive)
21:55:05 <ehird> oerjan: does my url work
21:55:08 <ehird> data:text/html;charset=utf-8;base64,biEgPSBuIOKIjyBrPTEsIGsg4oiAbiDiiIgg4oSV
21:55:23 <oerjan> what url?
21:55:47 <ehird> data:text/html;charset=utf-8;base64,biEgPSBuIOKIjyBrPTEsIGsg4oiAbiDiiIgg4oSV
21:55:49 <ehird> that url
21:56:04 * oerjan tries to paste that into the address line
21:56:35 <oerjan> IE tried to use that as a google search, so no
21:56:42 <oerjan> afk
21:57:00 <ehird> oerjan: Yes, that's because IE sucks.
21:57:09 <ehird> Use another thing; data: is standard.
21:57:17 <ehird> IE 8 does data: anyway
21:58:38 <nooga> huhuhhm
21:58:46 <nooga> if haskell does not have state
21:59:03 <nooga> how to respond to events that happen in time?
21:59:33 <ehird> nooga: Step 1. Forget everything.
21:59:37 <ehird> Step 2. Learn functional programming.
22:01:47 <nooga> there are at least several flavors of functonal paradigm
22:03:20 <GregorR> Chocolate, strawberry and people.
22:04:33 <nooga> ..
22:10:43 <oerjan> <ehird> IE 8 does data: anyway <-- i have had IE8 for a few weeks now
22:10:58 <augur_> nooga: it depends on the kind of event!
22:11:10 <ehird> oerjan: so why don't you get a decent browser?
22:11:17 <nooga> hm
22:11:29 <augur_> if your event is an event that requires IO, then it responds at the moment of the request, using magic monads (IO)
22:11:38 <augur_> if it doesnt have io, there it doesnt respond at all!
22:11:40 <oerjan> ehird: just to annoy you, my dear
22:12:03 <nooga> in fact, ehird is a bit annoying
22:12:10 <ehird> thanks
22:12:20 <nooga> intentionally
22:13:15 <GregorR> http://notalwaysright.com/he-uses-the-google/1321
22:14:27 <nooga> so if i get it correctly, if i want to write a raytracer - i just define a bunch of functions that i use in a top-level function that takes scene as an argument and returns an image, so it looks like image is calculated from the scene automagically
22:14:49 <nooga> but what if i want to write a http server? or interactive game ?
22:15:22 <oerjan> > runState (do modify (+1); x <- get; modify (+1); return x) 4
22:15:24 <lambdabot> (5,6)
22:15:31 <oerjan> nooga: ^ State monad example
22:15:36 <ehird> pikhq: Explain the functional paradigm to nooga; I'm too lazy.
22:16:37 <pikhq> nooga: You apply functions to functions, thereby getting results. Anything more than that, and you're using monads.
22:17:04 <pikhq> And monads let you represent state like you would in an imperative language.
22:17:27 <nooga> so like in maths, function is a transformation, not a bunck of actions
22:17:31 <nooga> bunch
22:17:33 <oerjan> !haskell import Control.Monad.State; import Control.Monad; main = runStateT (replicateM 5 $ do modify (+1); x <- get; liftIO (putStr $ show x ++ " ")) 10
22:17:36 <EgoBot> 11 12 13 14 15
22:17:40 <pikhq> However, these monads let you seperate as much of the state away from your code as possible, allowing you to think clearly about the rest of your code without pesky things like "state" getting in the way.
22:18:06 <ehird> pikhq has jumped from a tcl fanboy to a haskell fanboy. Ha
22:18:58 <pikhq> ehird: I'm still fond of Tcl.
22:19:02 <nooga> uh
22:19:04 <nooga> okay
22:19:09 <pikhq> Tcl's a nice *imperative* language.
22:19:13 <ehird> Tcl monad!
22:19:51 <pikhq> ehird: That would be... Not necessarily in violation of Tcl's semantics.
22:20:57 <oerjan> nooga: now ignoring state monads (which are just sort of sweeping the real thing under the rug), the way to do state in haskell is to pass the state along as an argument
22:21:03 <ehird> pikhq: apart from the whole string thing
22:21:40 <nooga> understood
22:21:46 <pikhq> Yeah.
22:23:00 <pikhq> oerjan: One could almost think of state monads as being a crazy way of doing continuation-passing style code. :P
22:23:13 <ehird> pikhq: that's how they're implemented
22:23:14 <ehird> essentially
22:23:23 <ehird> @src State return
22:23:23 <lambdabot> Source not found. That's something I cannot allow to happen.
22:23:27 <ehird> @src State (>>=)
22:23:27 <lambdabot> Source not found. Where did you learn to type?
22:23:32 <ehird> fuck you lambdabot
22:23:37 <ehird> @src (State x) return
22:23:37 <lambdabot> Source not found.
22:23:45 <pikhq> I think when I realised that is when I realised what the hell monads are and why they're useful.
22:24:05 <oerjan> ehird: the monad transformer library never used to be included in @src, for some reason
22:24:19 <oerjan> afair
22:25:03 <ehird> pikhq: so how many days now?
22:25:20 <pikhq> 4.
22:25:33 <ehird> pikhq: can you spend a month learning quantum physics sometime? you'll make a theory of everything immediately :P
22:25:44 <pikhq> Tempting.
22:26:46 <oerjan> !help daemons
22:26:46 <EgoBot> daemons: !daemons. List running daemons.
22:26:50 <oerjan> !help
22:26:50 <EgoBot> help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
22:27:02 <oerjan> !help languages
22:27:03 <EgoBot> languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh.
22:27:14 <oerjan> !daemons
22:27:29 <oerjan> GregorR: does the daemon thing work in any way?
22:27:42 <GregorR> Nope.
22:27:51 <GregorR> Whoops, I put haskell under "Esoteric", that ain't right :P
22:27:56 <GregorR> (Well, it's sort of right)
22:28:15 <pikhq> It's only esoteric in the sense that not a lot of peole know it.
22:28:15 <oerjan> perl too :D
22:28:32 <GregorR> Perl belongs there.
22:28:33 <pikhq> Perl is esoteric in the sense that nobody *should* know it. :P
22:28:40 <GregorR> Exactly :P
22:28:58 <GregorR> FOOD TIME
22:29:22 <oerjan> ok so no real way of using EgoBot to demonstrate interactive haskell
22:30:32 <pikhq> Not without having a different script to start interactive Haskell, I guess.
22:30:39 <pikhq> !haskell [0..10]
22:30:41 <EgoBot> [0,1,2,3,4,5,6,7,8,9,10]
22:31:08 <oerjan> by interactive i mean something that would respond to lines in an interleaving way
22:31:12 <augur_> haskell is esoteric in the sense that anything reeeaaally useful requires that you understand category theory and monads and crap
22:31:18 <ehird> augur_: no it doesn't
22:31:20 <augur_> which means you're writing in an incomprehensible language
22:31:23 <ehird> pikhq: do you understand category theory?
22:31:24 <augur_> shut up ehird yes it does
22:31:25 <augur_> :|
22:31:27 <ehird> i doubt it. do you understand monads?
22:31:27 <nooga> > :t (==)
22:31:28 <ehird> yes.
22:31:29 <lambdabot> <no location info>: parse error on input `:'
22:31:40 <pikhq> ehird: No, but I probably will.
22:31:42 <oerjan> category theory beyond monads is not that important
22:31:42 <nooga> ? :E
22:31:53 <ehird> anyone who thinks category theory is needed for anything in haskell is wrong
22:31:53 <pikhq> I'm *also* a math major, you see...
22:31:56 <ehird> pikhq: :-)
22:32:05 <augur_> see?!
22:32:12 <oerjan> :t (==)
22:32:13 <nooga> YA RLY
22:32:13 <lambdabot> forall a. (Eq a) => a -> a -> Bool
22:32:34 <ehird> pikhq: http://okmij.org/ftp/ Here's Oleg's site. You're probably the only person who can read it without breaking their brain.
22:32:48 <ehird> *your
22:32:51 <augur_> hey i know that site
22:32:52 <oerjan> nooga: > is an abbreviation for @run, :t for @type, and :k for @kind. every other command last i checked starts with @
22:32:58 <nooga> ok
22:33:32 -!- tombom has quit ("Peace and Protection 4.22.2").
22:33:41 <oerjan> (last i checked == at least a year ago)
22:34:10 <ehird> lambdabot: seen mauke
22:34:12 <ehird> hmm
22:34:15 <ehird> thought it did that
22:34:27 <pikhq> ehird: I think I've stumbled across that before.
22:34:32 <oerjan> lambdabot: @seen mauke
22:34:32 <lambdabot> mauke is in #haskell and #xmonad. I last heard mauke speak 55s ago.
22:35:14 <oerjan> seems to make no difference to the response
22:36:00 <AnMaster> lambdabot, @seen lambdabot
22:36:00 <lambdabot> Yes, I'm here. I'm in #esoteric, ##hrg, #unicycling, #scannedinavian, #scala, #rosettacode, #perl6, #macosxdev, #jtiger, #jhc, #haskell_ru, #haskell.se, #haskell.ru, #haskell.no, #haskell.jp, #
22:36:00 <lambdabot> haskell.it, #haskell.hr, #haskell.fr, #haskell.fi, #haskell.es, #haskell.dut, #haskell.de, #haskell.cz, #haskell-soc, #haskell-books, #haskell-blah, #haskell-iphone, #haskell-in-depth, #haskell-
22:36:00 <lambdabot> freebsd, #macosx, ##freebsd, #gentoo-uy, #gentoo-haskell, #friendly-coders, #dreamlinux-es, #concatenative, #arch-haskell, #functionaljava, #bfpg, #novalang, #darcs, #yi, #xmonad, #ghc, ##logic, #
22:36:00 <lambdabot> haskell-overflow and #haskell
22:36:05 <AnMaster> wow
22:36:10 <AnMaster> that's quite a few channels
22:36:16 <ehird> Yeah.
22:36:22 <AnMaster> lambdabot, @seen AnMaster
22:36:22 <lambdabot> You are in #haskell, ##freebsd, #friendly-coders and #esoteric. I last heard you speak just now.
22:36:33 <pikhq> http://okmij.org/ftp/Computation/monadic-shell.html
22:36:43 <pikhq> That... Is damned cool.
22:36:46 <AnMaster> lol
22:36:55 <AnMaster> it is the only one in #scannedinavian
22:36:56 <AnMaster> ehird, ^
22:36:58 <AnMaster> I just checked
22:37:02 <AnMaster> must be a dead channel
22:37:06 <ehird> scannedinavian is the name of shapr's site i think.
22:37:07 <ehird> or used to be.
22:37:12 <ehird> maybe oerjan know.
22:37:12 <ehird> s
22:37:16 <AnMaster> shapr?
22:37:21 <ehird> pikhq: yeah it's cool
22:37:26 <ehird> AnMaster: haskeller, esolanger
22:37:29 <AnMaster> mhm
22:38:09 <oerjan> scannedinavian ~ shapr does ring a bell
22:38:09 <ehird> pikhq: what's really cool about monads is that they're essentially a tool for data dependencies
22:38:22 <oerjan> AnMaster: shapr is almost the founder of #haskell
22:38:26 <AnMaster> hm ok
22:38:27 <ehird> yep
22:38:33 <ehird> let's say saviour
22:38:41 <ehird> ScannedInAvian.com
22:38:41 <ehird> hpaste is hosted here.
22:38:42 <ehird> Shae's blog has moved.
22:38:44 <ehird> See Pix of Shae for more excitement.
22:38:46 <ehird> Shae Matijs Erisson
22:38:48 <ehird> yah is shapr.
22:39:07 <pikhq> ehird: Monads are pretty damned cool, yeah...
22:39:20 <AnMaster> lol
22:39:30 <AnMaster> I read it as "Scandinavian"
22:39:36 <AnMaster> not "scannedinavian"
22:39:37 <ehird> you're meant to
22:39:41 <ehird> it's a pun
22:39:46 <ehird> "The #haskell channel appeared in the late 90s, and really got going in early 2001, with the help of Shae Erisson (aka shapr)."
22:39:55 <ehird> ↑ basically it was dead, then shapr made it undead.
22:39:57 <ehird> but not zombie.
22:40:29 <pikhq> Man, pipes as monads.
22:40:41 <oerjan> are you sure? it does seem to eat a lot of brains >:D
22:41:23 <oerjan> actually pipes are arrows, but monads are an extension of arrows
22:43:21 <pikhq> Okay, I think my brain broke. GNU make is a functional programming language.
22:43:23 <oerjan> or even just category composition
22:44:03 <ehird> pikhq: declarative, but not functional
22:44:06 <oerjan> (no, you don't NEED to know this, shut up!)
22:45:23 <pikhq> ehird: http://okmij.org/ftp/Scheme/tests/Makefile
22:45:27 <pikhq> There's GNU make being used functionally.
22:45:51 <ehird> the actual target bodies are -not- pure
22:45:57 <ehird> but it is declarative
22:46:26 <pikhq> Mmm... Yeah, true.
22:46:27 <pikhq> Still.
22:47:19 <pikhq> ... *He's* the guy that proved Sendmail Turing-complete?
22:47:27 * pikhq bows
22:48:03 <ehird> pikhq: he pioneered variable argument functions in haskell, too
22:48:22 <pikhq> ... You can do variadic functions in Haskell?
22:48:55 <ehird> pikhq: It's pretty painful and you should use a list. but yes.
22:48:57 <ehird> Theoretically.
22:49:09 <ehird> primitive ptr_to_int "unsafePtrToInt" :: a -> Int
22:49:09 <ehird> bothtruth2:: Bool -> Bool -> Bool
22:49:10 <oerjan> !haskell import Text.Printf; main = printf "%d %s\n" 15 "dollars" :: IO ()
22:49:10 <ehird> bothtruth2 a b = a `seq` b `seq` (ptr_to_int a - ptr_to_int False) +
22:49:12 <ehird> (ptr_to_int b - ptr_to_int False) ==
22:49:14 <ehird> 2*(ptr_to_int True - ptr_to_int False)
22:49:16 <ehird> —Oleg, implementing (&&) with pointer arithmetic.
22:49:18 <ehird> ah right, printf does it a lot
22:49:18 <oerjan> darn
22:49:21 <ehird> oerjan: no need for :: IO ()
22:49:27 <ehird> !haskell import Text.Printf; main = printf "%d %s\n" 15 "dollars"
22:49:39 <ehird> pikhq: note that printf is not type-safe, i.e. printf "%d\n" "aa" errors at runtime
22:49:42 <ehird> so don't use it!
22:49:56 <oerjan> ehird: well it still broke
22:50:03 <ehird> GregorR: wat
22:50:20 <oerjan> ehird: i would expect it to need :: IO ()
22:50:34 <ehird> oerjan: nope
22:50:39 <ehird> oerjan: that printf can be of type IO ()
22:50:44 <ehird> oerjan: it's checked whether main is of type IO ()
22:50:49 <ehird> printf hastily decides that of course it is
22:50:52 <ehird> QED
22:51:08 <oerjan> ehird: i don't think main type is checked until linking, by which time it would be too late
22:51:15 <oerjan> !haskell import Text.Printf; main = printf "%d %s\n" 15 "dollars"
22:51:26 <oerjan> ah
22:51:32 <oerjan> !haskell import Text.Printf; main = printf "%d %s\n" (15::Int) "dollars"
22:51:33 <ehird> [ehird:~/Junk] % cat>foo.hs
22:51:33 <ehird> import Text.Printf; main = printf "%d %s\n" 15 "dollars"
22:51:34 <ehird> [ehird:~/Junk] % ghc foo.hs -o foo
22:51:35 <EgoBot> 15 dollars
22:51:36 <ehird> foo.hs:1:27:
22:51:38 <ehird> Ambiguous type variable `t' in the constraints:
22:51:40 <ehird> `PrintfArg t' arising from a use of `printf' at foo.hs:1:27-55
22:51:42 <ehird> `Num t' arising from the literal `15' at foo.hs:1:44-45
22:51:44 <ehird> Probable fix: add a type signature that fixes these type variable(s)
22:51:46 <ehird> monomorphim restriction LOL
22:51:50 <oerjan> ehird: no no
22:51:52 <ehird> !haskell import Text.Printf; main = printf "%i %s\n" 15 "dollars"
22:51:55 <ehird> oerjan: right sorry
22:52:03 <ehird> oerjan: anyway, I'm still right.
22:52:04 <oerjan> that is because we forgot (15::Int)
22:52:08 <ehird> printf just sucks :P
22:52:22 <oerjan> ehird: apparently, since it worked after adding ::Int but not :: IO ()
22:52:50 <oerjan> ehird: it works as well as haskell allows
22:52:58 <nooga> uh
22:53:04 <ehird> i've written better printfs
22:53:07 <ehird> although not for breakfast
22:53:11 <oerjan> in haskell?
22:53:17 <ehird> yes
22:53:17 <ehird> oerjan: btw with overloadablestrings you can do crazy shit like type-safe printf easily
22:53:27 <ehird> in fact, I'm gonna do that now for lulz
22:53:43 <AnMaster> overloading a string?
22:53:45 <AnMaster> fun!
22:53:49 <AnMaster> bbl
22:53:53 <ehird> (pikhq: You know how 3 is of type (Num a) => a? Overloadable strings makes "foo" of type (IsString a) => a.)
22:54:02 <ehird> instance IsString Integer
22:54:02 <ehird>
22:54:05 <ehird> "3" + 4!
22:54:07 <ehird> :D
22:54:34 <pikhq> > "3" + 4
22:54:36 <lambdabot> No instance for (GHC.Num.Num [GHC.Types.Char])
22:54:36 <lambdabot> arising from the literal ...
22:54:43 <pikhq> I thought so.
22:54:47 <augur_> apparently michael jackson is dead
22:54:53 <ehird> pikhq: you haven't used OverloadedStrings or defined an instance :P
22:54:59 <oerjan> <ehird> pikhq: note that printf is not type-safe, i.e. printf "%d\n" "aa" errors at runtime <-- it's dynamically safe though
22:54:59 <pikhq> Oh.
22:55:05 <ehird> augur_: not that one :-P
22:55:12 <ehird> oerjan: dynamically safe is unsafe.
22:55:19 <augur_> ehird: yes that one!
22:55:23 -!- augur_ has changed nick to augur.
22:55:29 <ehird> http://en.wikipedia.org/wiki/Mick_Jackson_(singer)
22:55:31 <ehird> The singer!
22:55:35 <augur> http://www.tmz.com/
22:55:36 <pikhq> Jebus. Haskell seems to have the highest average IQ amongst those who know it that I've seen. :P
22:56:24 <augur> pikhq: thats because you need to be a mathematician to understand it
22:56:35 <ehird> augur: wait, no joke?
22:56:41 <augur> no joke man
22:56:47 <ehird> oh well, the world got a little less creepy and pedophillic today
22:56:48 <pikhq> Nah, nah. No math involved.
22:56:52 <oerjan> ehird: it does not give memory corruption, which is a huge improvement to the opposite
22:56:53 <pikhq> Heavy CS requirements, but...
22:57:08 <augur> ehird: want to come to my house and play on the swingset? ;o
22:58:23 <ehird> pikhq: Disadvantage of OverloadedStrings: every file using them needs {-# LANGUAGE OverloadedStrings #-}
22:58:36 <ehird> Although you can use -XOverloadedStrings in your Cabal file.
22:58:40 <ehird> pikhq: Do you know about cabal?
22:58:46 <pikhq> I know *of* it.
22:58:54 <ehird> It's good. It's a packaging+build system for Haskell. Also Hackage is a collection of cabal packages and is huge and nice.
22:58:58 <pikhq> Kinda like dsss for Haskell?
22:59:09 <ehird> Also you want to install cabal-install to get cabal(1) which installs hackage packages and also manages local cabal stuff.
22:59:12 <ehird> pikhq: Yeah, pretty much.
22:59:19 <ehird> But less of a pain to set up and ubiquitous.
22:59:50 <pikhq> Yeah, Haskell is certainly less bitchy to set up.
23:00:07 -!- MigoMipo has quit ("Changing server...").
23:00:11 <pikhq> (good *God* it should not take that much effort just to set up a compiler!)
23:00:25 -!- MigoMipo has joined.
23:00:33 <ehird> pikhq: http://www.haskell.org/haskellwiki/GADT
23:00:34 <ehird> I just blew your mind.
23:02:14 <pikhq> Turing complete types, huh?
23:02:19 <ehird> Nope.
23:02:23 <ehird> GADTs are different.
23:02:34 <pikhq> Funny, I see SK in the type system.
23:02:43 <ehird> No, you don't
23:02:49 <ehird> That's not in the type system
23:02:51 <pikhq> No, wait, that's different.
23:03:34 <pikhq> Just the types of SK are in the type system.
23:05:30 -!- ehird_ has joined.
23:05:31 <oerjan> > 1/2 :: CReal
23:05:32 <lambdabot> 0.5
23:05:39 -!- ehird has quit (Nick collision from services.).
23:05:43 -!- ehird_ has changed nick to ehird.
23:05:52 -!- ehird_ has joined.
23:05:54 <AnMaster> ehird, how did the bricking go?
23:06:03 <ehird> Didn't.
23:06:12 <ehird> > map (1/) [1..]
23:06:13 <lambdabot> [1.0,0.5,0.3333333333333333,0.25,0.2,0.16666666666666666,0.1428571428571428...
23:06:18 <ehird> > map (1/) [1..] :: [CReal]
23:06:18 <AnMaster> ehird, ouch
23:06:19 <lambdabot> [1.0,0.5,0.3333333333333333333333333333333333333333,0.25,0.2,0.166666666666...
23:06:23 <ehird> AnMaster: ouch what
23:06:29 <AnMaster> ehird, that it didn't work?
23:06:43 <ehird> i just gave up :P
23:06:51 <ehird> It was trying to verify the file was real authentic, which it wasn't, so meh
23:07:46 <ehird> oerjan: actually type-safe printf with overloadable strings is running into function-returning-multiple-type problems
23:07:58 <oerjan> you can show digits of a computable real just fine as long as you allow a slack of 1 on the number of digits you print
23:08:02 <ehird> should be possible, though...
23:08:46 <oerjan> ehird: you are aware that haskell _in_ _principle_ does not have dependent types, even with extensions afaik?
23:09:01 <oerjan> so you cannot possibly let the type of a string depend on its value
23:09:01 <ehird> oerjan: that's fine, because this doesn't require dependent types
23:09:06 <ehird> OverloadedStrings only works on literals
23:09:38 <oerjan> i doubt it allows the type to depend on the literal, nevertheless
23:09:38 -!- olsner has quit ("Leaving").
23:09:58 <ehird> oerjan: i am ~90% sure it's possible
23:10:38 <oerjan> isn't it just some class IsString with a fromString :: String -> a method or the like?
23:10:53 <ehird> yes
23:11:06 <oerjan> no way to look at the string during type inference
23:11:11 <ehird> nuh uh, sec
23:11:23 <AnMaster> haskell seems complex
23:11:27 <AnMaster> I mean, lots of stuff
23:11:27 <ehird> it's not.
23:11:36 <AnMaster> not simple?
23:11:36 <ehird> mostly extensions.
23:11:39 <AnMaster> buts lots and lots of stuff
23:11:40 <AnMaster> ehird, ah
23:11:42 <nooga> > filter (`elem` ['A'..'Z']) "i lauGh At You BecAuse u r aLL the Same"
23:11:43 <lambdabot> "GAYBALLS"
23:11:46 <nooga> O_o
23:11:47 <AnMaster> ehird, but those are complex?
23:11:58 <ehird> nooga: that would be BONUS' warped sense of humour
23:12:00 <ehird> AnMaster: not really.
23:12:15 <ehird> a man could fit in most of the haskell you'd ever need in his head
23:12:22 <ehird> (Women however YUK YUK)
23:12:44 <AnMaster> ehird, then where does the apparent complexity exceeding that of perl come from?
23:12:48 <nooga> AnMaster: Erlang seems complex
23:13:04 <AnMaster> nooga, it didn't seem that complex even before I learned it
23:13:44 <oerjan> AnMaster: haskell has quite a bit of syntactic sugar, plus definable operators, so it may seem complex even if the core isn't
23:13:44 <AnMaster> it *does* however have a rather large standard library
23:13:53 <AnMaster> oerjan, ah
23:14:47 <Warrigal> > filter (`elem` ['A'..'Z']) "women however YUK YUK"
23:14:49 <lambdabot> "YUKYUK"
23:14:57 <pikhq> > let foo = 1:foo ++ foo in foo
23:14:58 <lambdabot> [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,...
23:15:03 <ehird> pikhq: ++ foo?
23:15:06 <ehird> Will never be executed.
23:15:18 <ehird> (x ++ y) will only do anything when you get to the end of x.
23:15:19 <pikhq> ... Yeah, didn't think when I typed.
23:15:24 <ehird> And getting to the end of (1:foo)? Not happening :P
23:15:26 <ehird> > fix (1:)
23:15:28 <lambdabot> [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,...
23:15:29 <fizzie> Incidentally, we had some talk about the google + dalvik thing? engadget writes "-- today they've released the Android 1.5 Native Development Kit (NDK) that allows developers to generate C and C++ libraries that run directly on the platform rather than being routed through Dalvik."
23:15:31 <pikhq> > let foo = foo ++ foo in foo
23:15:36 <lambdabot> mueval-core: Prelude.read: no parse
23:15:36 <lambdabot> mueval: ExitFailure 1
23:15:48 <AnMaster> > fix (1:5)
23:15:49 <lambdabot> Couldn't match expected type `a -> a' against inferred type `[t]'
23:15:51 <AnMaster> meh
23:15:53 <pikhq> It hates me! It really hates me!
23:16:01 <AnMaster> > fix (a:)
23:16:02 <lambdabot> [a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,...
23:16:09 <ehird> fizzie: Yay now we can run Haskell on it
23:16:11 <AnMaster> ok that guess was correct though
23:16:14 <AnMaster> the other one wasn't
23:16:28 <ehird> pikhq:
23:16:29 <ehird> *Main> let foo = foo ++ foo in foo
23:16:30 <ehird> [hang]
23:16:31 <ehird> :-)
23:16:36 <Warrigal> > fix (a:b:) -- annoying
23:16:38 <lambdabot> The operator `:' [infixr 5] of a section
23:16:38 <lambdabot> must have lower precedence th...
23:16:56 <AnMaster> th
23:17:06 <AnMaster> I guess than
23:17:10 <AnMaster> but what follows that
23:17:26 <AnMaster> very accurate error messages
23:18:02 <ehird> oerjan: grr, it 's suffering from the
23:18:04 <ehird> No instance for (Format a (t -> t1))
23:18:05 <ehird> bullshit
23:18:09 <Warrigal> The error messages are exactly correct and also kind of useless.
23:18:17 <ehird> oerjan: when you do (specifitype→specifictype)
23:18:24 <ehird> AnMaster: the error messages are very useful
23:18:56 <AnMaster> ehird, yes
23:19:04 <AnMaster> quite the opposite of the C++ ones
23:21:23 <fizzie> I can't decide whether I should just get a reasonably cheap old G1 thing (even though there's supposedly some connectivity issues, plus I hear the battery life is rather bad, plus lack of direct 3.5mm headphone jack) or wait and see that "before the end of the year" keyboardy Motorola Android phone or the equally keyboardy only-rumours-so-far launching-"like, really soon" Samsung thing; which both will probably not be very cheap to get up here in the wilderne
23:21:23 <fizzie> ss. What with all the polar bears delivery people have to fight past and so on.
23:21:34 <ehird> oerjan: do you know if thar's a solution?
23:21:48 <ehird> fizzie: Well, the dev phone is a bit expensive.
23:22:21 <fizzie> Yes, but ebay.co.uk seems to have a couple of rather cheap unlocked T-Mobile G1s.
23:23:04 <ehird> fizzie: you don't know where they've been. the keys could have virususes on them.
23:23:12 <fizzie> I guess I should read more of them reviews. Quite many seem to mention the battery life thing, though.
23:24:07 <ehird> fizzie: make your own phone
23:24:10 <fizzie> It is possible they might actually start selling one of those other phones (Samsung, Motorola) in Finland officially and all. A working warranty is probably not a bad thing in a phone.
23:24:12 <ehird> get a gumstix board
23:24:15 <ehird> get a small lcd
23:24:20 <ehird> print a case with a reprap
23:24:29 <ehird> get the linux kernel
23:24:33 <ehird> get a text editor and a connection!
23:24:40 <AnMaster> yay
23:24:44 <ehird> for phone calls, hook into skype
23:24:47 <AnMaster> emacs for talking in phone
23:24:47 <AnMaster> :D
23:24:49 <AnMaster> ehird, no no
23:24:54 <AnMaster> not skype
23:24:58 <AnMaster> use emacs for it duh
23:25:00 <ehird> AnMaster: since i don't know how the fuck you do things like communicate with a sim, skype it is.
23:25:03 <ehird> write an emacs interface to skype.
23:25:10 <ehird> you could just mute its UI sounds and keep its interface hidden
23:25:16 <ehird> and communicate via it by fake-clicking it.
23:25:19 <ehird> :p
23:25:24 <AnMaster> ehird, meh
23:25:36 <ehird> good luck using emacs with a 3" screen and a tiny keyboard
23:25:44 <AnMaster> ehird, yeah :/
23:26:10 <AnMaster> ehird, I'm waiting for the day when you can print an entire phone with rerap
23:26:15 <AnMaster> err
23:26:17 <ehird> rerape
23:26:17 <AnMaster> spelling
23:26:20 <ehird> v.
23:26:22 <ehird> to rape again
23:27:04 <ehird> AnMaster: you could do everything but the actual circuit hardware (use a gumstix board), the screen, the keyboard circuit (you could print the keys and holder), and the mic/camera/speaker
23:27:07 <Warrigal> Actually, it's a borrowing from Spanish, where the prefix "re-" means "well-".
23:27:11 <ehird> but the whole phone chassis could be reprapped.
23:27:16 <ehird> Warrigal: well raped?
23:27:19 <Warrigal> Yep.
23:27:24 <ehird> "i'ma rape you real good!"
23:27:46 <oerjan> ehird: solution to what?
23:28:12 <ehird> oerjan: if you have an instance involving (Concrete → Concrete) and try to use it, it'll say there's no instance for (t1 → t2)
23:28:26 <ehird> since in regular haskell you need to do type variables, not concrete types, in instance declarations
23:28:30 <ehird> so it can't check it prop'ly
23:28:49 <oerjan> ehird: -fglasgow-exts turns on most extras iirc
23:28:55 <ehird> .....
23:28:58 <ehird> oerjan: i mean a workaround
23:29:02 <ehird> there isn't an extra to make this work
23:29:12 <oerjan> er of course there is
23:29:20 <ehird> no, there isn't...
23:29:31 <oerjan> i'm pretty sure ghc allows more than type variables in instance declarations
23:29:37 <ehird> AnMaster: it seems reprap can make little LED lights
23:29:39 <ehird> maybe
23:29:42 <ehird> oerjan: that's not the issue
23:29:51 <ehird> oerjan: the issue is that when you try and use them it checks for (t1 → t2) generically
23:29:53 <ehird> and thus fails
23:29:54 <oerjan> you want it to be legal haskell 98?
23:29:59 <ehird> Possible fix: add an instance declaration for (Format a (t -> t1))
23:30:01 <ehird> even though I have
23:30:01 <ehird> instance Format Bar ([Char] -> [Char]) where
23:30:03 <ehird> oerjan: no!
23:30:08 <ehird> there. is. no. extra. for. making. this. work.
23:30:22 <oerjan> oh.
23:30:36 <ehird> AnMaster: nm
23:30:51 <Warrigal> It seems easy enough to make an LED.
23:31:02 <ehird> Warrigal: with a 3d printer?
23:31:04 <ehird> have fun with that
23:31:05 <Warrigal> A diode is just two pieces of silicon, oppositely-doped, stuck together, isn't it?
23:31:15 <Warrigal> So, um, let's figure out how to print silicon.
23:31:19 <oerjan> i was so sure i'd heard it was allowed, ask in #haskell
23:31:57 <ehird> pikhq: there's a reprap thing to do parametrized lego bricks :-D
23:32:11 <oerjan> ehird: um maybe it is allowed but you have something that forces it to require a more general type than just Bar and [Char] -> [Char] ?
23:32:18 <ehird> oerjan: no
23:32:20 <ehird> it really isn't
23:32:23 <oerjan> ehird: paste
23:32:24 <ehird> i've run into this before
23:32:44 <oerjan> @hoogle Format
23:32:44 <lambdabot> module Data.Time.Format
23:32:44 <lambdabot> Data.Char Format :: GeneralCategory
23:32:44 <lambdabot> Data.Time.Format formatCharacter :: FormatTime t => Char -> Maybe (TimeLocale -> t -> String)
23:32:53 <oerjan> @more
23:32:59 <oerjan> bah
23:33:21 <ehird> no
23:33:24 <ehird> format is my type class
23:33:31 <oerjan> ehird: still paste
23:33:51 <ehird> meh
23:33:54 <AnMaster> ehird, link?
23:33:59 <Warrigal> From the RepRap home page:
23:34:01 <ehird> http://www.thingiverse.com/thing:591
23:34:05 <Warrigal> "Not counting nuts and bolts RepRap can make 60% of its parts; the other parts are designed to be cheaply available everywhere. This is an interesting coincidence: we can make 60% of our proteins; the other parts are evolved to be cheaply available everywhere..."
23:34:19 <Warrigal> 60% of our proteins? Do they mean 60% of our amino acids?
23:34:55 <AnMaster> ehird, to the diod thingy
23:35:05 <ehird> AnMaster: i said "nm"
23:35:05 <Warrigal> Last time I checked, we could synthesize all the proteins we needed from their amino acids, and we never used proteins we ate without breaking them down first.
23:35:16 <AnMaster> ehird, nautical miles? nanometer?
23:35:20 <ehird> never mind
23:35:24 <AnMaster> ah THAT nm
23:35:43 <ehird> i wanna print a klein bottle
23:35:45 <ehird> gotta make a reprap
23:35:47 <ehird> pikhq: let's make a reprap
23:36:13 <pikhq> Tempting.
23:36:50 <AnMaster> ehird, *.stl?
23:36:53 <AnMaster> what the hell is that
23:36:58 <ehird> AnMaster: a 3d model of some sort?
23:37:02 <oerjan> ehird: -XFlexibleInstances
23:37:05 <ehird> pikhq: we plan one, i build it, i use it to make a reprap, I give you that reprap :-P
23:37:09 <AnMaster> ehird, I thought it was SuperTux Level :/
23:37:10 <ehird> oerjan: IT IS NOT THE INSTANCE THAT IS THE PROBLEM!
23:37:42 <ehird> A-HA!
23:37:47 <ehird> Functional dependencies, bitch.
23:37:57 <pikhq> .stl is the most common format for CAD.
23:38:08 <ehird> pikhq: http://www.haskell.org/haskellwiki/Functional_dependencies ← it's type system prolog!
23:38:10 <AnMaster> pikhq, heh, what FOSS exists for it?
23:38:16 <ehird> AnMaster: RepRap.
23:38:17 <ehird> I assume.
23:38:19 <pikhq> Quite a bit.
23:38:20 <ehird> For one.
23:38:26 <AnMaster> ehird, I meant, for *modelling* it
23:38:31 <ehird> Dunno.
23:38:32 <AnMaster> or viewing it
23:38:47 <pikhq> I know it's out there, just don't remember what that is.
23:38:55 <pikhq> Aside from Blender, that is.
23:38:58 <oerjan> ehird: since it would be useless to _have_ those instances if they cannot be used, you had to be doing something wrong. since you refuse to paste, i cannot possibly detect what it is.
23:39:07 <ehird> oerjan: no, they can be used
23:39:10 <ehird> but with type sig decls
23:39:13 <ehird> this is definitely a known thing
23:39:18 <oerjan> hmph
23:39:49 <AnMaster> pikhq, blender isn't CAD
23:39:55 <AnMaster> and blender's interface is horrible
23:39:56 <AnMaster> I used it
23:39:58 <AnMaster> and I hate it
23:40:11 <AnMaster> wings3d is quite nice for "free-form" modelling
23:40:19 <AnMaster> but wouldn't work at all for CAD
23:40:22 <oerjan> ehird: was that about functional dependencies you finding the solution?
23:40:26 <AnMaster> (wings3d is coded in erlang btw!)
23:40:33 <ehird> oerjan: i think i have
23:40:47 <AnMaster> wings3d is the nicest polygon editor I used
23:40:52 <AnMaster> it can't do nurbs or such
23:41:16 <oerjan> ehird: anyway it _still_ belonged to the "no one can possibly see the solution without seeing the code" class, so there! >:)
23:41:39 <pikhq> AnMaster: I just know that Blender can export STL.
23:41:44 <ehird> *Main> foo (parse "foo") :: Char
23:41:44 <ehird> 'a'
23:41:45 <pikhq> I also know there's other, better editors.
23:41:45 <ehird> *Main> foo (parse "foo") :: Int
23:41:47 <ehird> 3
23:41:49 <ehird> Fuck yeah, bitch!
23:41:54 <pikhq> I just don't know which those are.
23:41:57 <AnMaster> pikhq blender can export every known 3d format
23:42:00 <AnMaster> I bet
23:42:06 <pikhq> Probably.
23:42:16 <GregorR> Uhhhhh, I'm gonna go with "no" :P
23:46:51 <ehird> pikhq: do you think reprap produced plastic cups are safe to drink from? :P?
23:46:55 <ehird> s/\?$//
23:47:01 <ehird> i mean all that plastic and stuff! it just feels wrong.
23:47:22 <pikhq> ehird: ...
23:47:26 <ehird> :D
23:47:32 <ehird> lol instinctive irrationality
23:47:41 <pikhq> I live in the land of plastic.
23:48:17 <ehird> I knowwwwww.
23:49:45 <ehird> pikhq: "However, the RepRap researchers will work actively to inhibit and to subvert the use of RepRap for weapons production, whether by individuals, companies, or governments"
23:49:47 <ehird> creepy
23:49:54 <ehird> "we'll modify our design to stop you using it in a way you want to?>"
23:49:59 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server").
23:50:01 <ehird> s/\?>"/"?/
23:50:04 <ehird> bullshit
23:50:11 <pikhq> ehird: Who wrote that?
23:50:16 <ehird> pikhq: reprap people
23:50:24 <pikhq> Dumb.
23:50:31 <pikhq> Not to mention impossible.
23:50:32 <Warrigal> The way to make a plastic cup is by punching a sheet of plastic into the shape of a cup.
23:50:40 <pikhq> It's like DRM.
23:50:56 <pikhq> Warrigal: That is correct if you use a miller head.
23:51:12 <pikhq> (someone's been experimenting with a miller RepRap.)
23:51:38 <pikhq> The miller head isn't all that hard to make; create a mount for a Dremel.
23:51:43 <ehird> anyway, I'd make a klein bottle and use it.
23:51:46 <ehird> although I'd prefer glass.
23:51:50 <ehird> we need a glassrap.
23:51:55 <ehird> put in sand, get out glass.
23:51:59 <ehird> — shape, that is.
23:52:01 <pikhq> You can get a glass Klein bottle.
23:52:09 <ehird> i know
23:52:13 <ehird> but it's not the same as making it yourself.
23:52:42 <ehird> pikhq: also they generally lack an opening to drink from
23:52:47 <ehird> i'd punch a hole into the top curve
23:52:51 <ehird> maybe
23:52:59 <ehird> http://upload.wikimedia.org/wikipedia/commons/5/5c/Klein_bottle.svg
23:53:02 <ehird> or just make it like that
23:53:03 <pikhq> The same people make a Klein mug.
23:53:06 <ehird> i know
23:53:09 <ehird> but that's lame-ass
23:53:12 <pikhq> K.
23:53:12 <Slereah_> pikhq : I have that mug
23:53:30 <pikhq> Note that a klein bottle probably couldn't be printed; too much curviness.
23:53:31 * Warrigal watches How It's Made to find out the *real* way to make a plastic cup.
23:53:36 <ehird> pikhq: you sure?
23:53:43 <ehird> http://objects.reprap.org/mediawiki/images/6/6c/Shoe-closed.jpg is curvy too
23:53:47 <pikhq> ehird: 45° overhang?
23:53:52 <Warrigal> The Klein bottles I've seen were assembled out of pieces.
23:54:12 <ehird> Warrigal: http://www.kleinbottle.com/
23:54:12 <ehird> blown.
23:54:14 <pikhq> Oh, that shoe.
23:54:14 <Warrigal> Take a sheet of plastic, cut it, shape it, glue it.
23:54:22 <ehird> i wonder if that shoe is any good
23:54:28 <ehird> i wish reprap's results looked prettier
23:54:28 <Warrigal> ehird: yes, but they blow pieces and assemble them, don't they?
23:54:33 <ehird> well yeah
23:54:49 <pikhq> That's a few pieces stuck together by a soldering iron.
23:55:06 <nooga> hummm
23:55:22 <Warrigal> Yeah, they're punched.
23:55:34 <ehird> pikhq: hmm really?
23:55:45 <pikhq> ehird: Yeah.
23:55:46 -!- Tidus35 has quit (Read error: 110 (Connection timed out)).
23:55:53 <ehird> :(
23:56:13 <pikhq> There's work on making the RepRap print support substrate.
23:56:19 <pikhq> So you can print any arbitary overhang.
23:56:25 <ehird> ^_^
23:56:30 <pikhq> Arbitrary, too.
23:56:31 <ehird> plus the circuitry generator!
23:56:49 <pikhq> The substrate printing should make the RepRap design much simpler to do.
23:57:06 <ehird> i hope the circuitry generator is enough to print a reprap 2
23:57:43 <Warrigal> Mendel will probably not be able to print magnets.
23:57:44 <pikhq> Even if it's not, they have another technique up their sleeve.
23:57:53 <pikhq> Reprap channels out.
23:57:55 <Warrigal> And, therefore, will probably not be able to print motors.
23:57:59 <pikhq> Melt solder into those channels.
23:58:13 <pikhq> Warrigal: Not without you inserting magnets.
23:58:18 * Warrigal nods
23:58:29 <ehird> yeah but it could print its circuit
23:58:37 <ehird> does anyone know how quick reprap is?
23:58:43 <nooga> it would be something if it could completely print and assemble itself
23:58:45 <GregorR> Not very.
23:58:52 <GregorR> Takes many hours for most everything.
23:59:09 <ehird> nooga: if you don't think what it already does is fucking amazing you suck
23:59:29 <nooga> not really
23:59:30 <pikhq> Doesn't need to be exceptionally fast to be revolutionary, though.
23:59:40 <Warrigal> A family of RepRap machines would probably be better than a single RepRap machine.
23:59:45 <nooga> it's like bootstrapping a compiler
23:59:53 <ehird> nooga: reprap doesn't exist solely to make itself
←2009-06-24 2009-06-25 2009-06-26→ ↑2009 ↑all