←2011-08-15 2011-08-16 2011-08-17→ ↑2011 ↑all
00:00:02 <elliott_> evincar: your examples still prove that your language is completely ambiguous, because composition and application have the exact same syntax, so LOL HAVE FUN WITH THAT
00:00:10 <elliott_> zzo38: http://haskell.org/ghc/docs/latest/html/libraries/base/Control-Category.html
00:00:13 <evincar> f = { x, y => [x + y] }; f m = { y => [m + y] }; f m n = { => [m + n] };
00:00:23 <evincar> How is this problematic?
00:00:26 <elliott_> and indeed, there is an instance for Kleisli
00:00:28 <elliott_> which is just
00:00:35 <elliott_> newtype Kleisli m a b = Kleisli { runKleisli :: a -> m b }
00:00:40 <elliott_> well, an instance for (Monad m) => Kleisli m
00:01:55 <zzo38> evincar: Yes it is ambiguous it seem, to me, if you want to use higher order functions.
00:02:55 <evincar> I just don't see a difference between composition and application, except that application implies that the resulting composition is reducible.
00:03:05 <evincar> Lambda calculus does just fine with uniform syntax for them.
00:03:08 <zzo38> Yes I suppose it is correct (>=>) and return do form a monoid
00:03:09 <NihilistDandy> I hope this gets resolved, soon. I have a béchamel to deal with, and this is distractingly fun
00:03:17 <elliott_> NihilistDandy: What, evincar?
00:03:26 <NihilistDandy> yes :D
00:04:13 <elliott_> evincar: I'm not interested in talking about this further with you. At least four people have told you you're completely wrong, and one of them is credited in the Haskell Report. The burden of proof is on you to prove that conflating two completely different concepts doesn't make your language utterly ambiguous but I for one am not really interested in hearing it.
00:04:31 <elliott_> I suppose monqy might be credited in the Haskell Report too and I just don't know i
00:04:32 <elliott_> t
00:04:33 <elliott_> WHO KNOWS............
00:05:22 <NihilistDandy> I'd just like to know how ugly things will get when you have to (f . g . h) x
00:05:33 <evincar> I just want to be proven wrong or right unequivocally.
00:06:26 <elliott_> evincar: You have been. You're just too stubborn and/or inexperienced to understand why/accept it.
00:06:46 <evincar> Or insightful.
00:06:56 * NihilistDandy lol'd
00:07:07 <evincar> I know, even I laughed at that one.
00:07:14 <monqy> hi im back now
00:07:17 <monqy> did stuff happen
00:07:20 <evincar> Not really.
00:07:27 <NihilistDandy> monqy: Are you credited in the Haskell Report?
00:07:31 <monqy> I don't think so
00:07:34 <evincar> Well, stuff happened in the Rube Goldberg Contraption sense.
00:07:39 <NihilistDandy> elliott_: Well, that's settled
00:07:47 <elliott_> He doesn't THINK so
00:08:01 <NihilistDandy> I'd think he'd know
00:08:03 <monqy> which report should i look at
00:08:13 <elliott_> evincar: "or insightful" are you serious
00:08:16 <elliott_> im even more done than i was before
00:08:28 <elliott_> can't beat that two-punch of ego and ignorance
00:08:32 <monqy> did bad happen
00:08:44 <monqy> evincar: did you do bad things
00:09:04 <evincar> elliott_: Well, I was joking that time. :P
00:09:37 <evincar> monqy: Yes, tried to golf getting a rise out of elliott_.
00:09:41 <evincar> Did it in two words.
00:09:44 <NihilistDandy> monqy: evincar suggests that function application and function composition are the same
00:09:52 <NihilistDandy> monqy: elliott_ politely disagrees
00:09:55 <elliott_> NihilistDandy: he knows
00:09:56 <NihilistDandy> FSVO polite
00:09:59 <elliott_> monqy, I mean
00:10:01 <evincar> That is the discussion.
00:10:06 <elliott_> NihilistDandy: And monqy was the first to disagree :P
00:10:12 <elliott_> Then me, then oerjan, then oklopol
00:10:16 <NihilistDandy> Also me
00:10:18 <elliott_> Then I lost my patience
00:10:23 <NihilistDandy> But I'm sort of late in the game
00:10:27 <monqy> I had to leave before I lost my patience
00:10:37 <monqy> evincar: so do you still really think they're the same? really?
00:10:48 <elliott_> monqy: he just wants to be PROVEN WRONG OR RIGHT CONCLUSIVELY
00:11:00 <evincar> For the purposes of my language, there doesn't need to be a difference.
00:11:15 <monqy> so there's no application; only composition?
00:11:17 <evincar> And an example in lambda calculus would be appreciated.
00:11:28 <elliott_> monqy: no, [f g] just magically applies f to g and composes f with g at the same time.
00:11:35 <monqy> elliott_: im confused
00:11:36 <elliott_> depending on which example evincar is trying to show possible at the time
00:11:36 <evincar> Well, application is lazy.
00:11:56 <monqy> evincar: what does this have to do with anything
00:11:58 <elliott_> which might get confusing for everyone else using their language as their IRC arguments over the impossibility of the language will be interrupted by evincar trying to do the other thing
00:12:18 <elliott_> which I guess is another reason not to use the language over its simple being impossible
00:12:33 <NihilistDandy> We could all just switch to math for clarity's sake
00:12:35 -!- CakeProphet has quit (Ping timeout: 240 seconds).
00:12:46 <monqy> evincar: do you have any examples in your language so I can get an idea?
00:12:53 <monqy> evincar: or should I just logread
00:13:27 <evincar> Logreading would be as helpful as not. I'm getting lazy.
00:13:36 <monqy> ok
00:13:57 <elliott_> So if "getting lazy" is a synonym for "realising I'm wrong", does application in your language realise it's wrong
00:14:09 <monqy> evincar: as an example for how things can get really really messy, consider multi-argument functions; do you have any examples with them, or would you like me to give you something in lambdacalculus for you translate?
00:16:01 <oerjan> evincar: i am not sure whether it can work in your language, but lambda calculus most emphatically does _not_ merge application and composition
00:16:25 <evincar> Getting lazy is a synonym for watching a movie, actually.
00:16:34 <elliott_> I like how oerjan tries to use diplomatic statements to avoid getting into arguments
00:16:57 <evincar> But essentially if you want a value, you give enough arguments to the function.
00:17:07 <monqy> what
00:17:07 <oerjan> elliott_: but i really am not sure. i know it doesn't work if you use the same mental model as for haskell/LC, but that's not a proof.
00:17:07 <evincar> If you want a function, you don't.
00:17:17 <pikhq_> ... Is there any form of compostion in lambda calculus other than the obvious \f g x-> f (g x)?
00:17:33 <pikhq_> AKA "Haskell's (.)"
00:17:37 <monqy> evincar: we all know what partial application is
00:17:48 <itidus20> elliott_: so a question arises. what does the wii do with it's virtual console system
00:17:57 <oerjan> pikhq_: well there are of course versions for other argument numbers...
00:18:00 <itidus20> i know this couldn't be any more off topic though
00:18:08 <pikhq_> oerjan: Well, yes. But you know what I mean. The general concept.
00:18:12 <elliott_> itidus20: Inaccurate emulation, presumably, perhaps with game-specific patches
00:18:21 <pikhq_> Where you are just... Doing it as you would anywhere else.
00:18:22 <elliott_> oerjan: I guess it works in a concatenative language
00:18:26 <elliott_> FSVO composition, application
00:18:40 <elliott_> Apply f to x: x f; compose f with g: g f
00:18:41 <elliott_> BUT
00:18:46 <elliott_> That only works because "9" is used specially
00:18:51 <elliott_> 9 is basically a function pushing 9
00:18:56 <elliott_> And that doesn't apply to evincar's language at all
00:19:04 <evincar> Composition is done through partial application. If you have (f + g), you get a function taking x and y that returns ([f x] + [g y]).
00:20:19 <elliott_> so how about we all collectively stop trying to convince evincar he's wrong as that's impossible and talk about something interesting like.............
00:20:21 <monqy> evincar: so in your notation, [] is application, and () is something else?
00:20:21 <NihilistDandy> ...
00:20:22 <elliott_> like itidus20: ramble plz
00:21:06 <evincar> monqy: [] is message-passing (application in the case of functions) and () is infix shorthand which is converted to message-passing internally.
00:21:23 <evincar> I might swap those in the future, depending on what looks good.
00:21:30 <evincar> But that's neither here nor there.
00:21:42 <elliott_> itidus20: im waiting
00:21:53 <monqy> evincar: infix shorthand?
00:22:02 <monqy> evincar: I also noticed that in your example, there's a bit of weirdness
00:22:03 <NihilistDandy> Can I make a function h = ((f+g) x)?
00:22:10 <NihilistDandy> @evincar:
00:22:11 <lambdabot> Unknown command, try @list
00:22:25 <zzo38> O, OK, message passing. So, it doesn't actually have functions, I guess? Only messages?
00:22:26 <itidus20> so the SNES effectively does things at the rate of it's oscillator
00:22:27 <evincar> monqy: It's just sugar providing some infix operators for convenience.
00:22:42 <pikhq_> evincar: So, instance (Num a) => (a -> a) where f + g = \x y->(f x) + (g y) -- I think that's stupid.
00:22:49 <monqy> evincar: the thing it returns has parentheses, so if you applied the same rule, wouldn't you get something like \abxy.([[f x] a] + [[g y] b])
00:23:17 <elliott_> pikhq_: that's a good instance
00:23:17 <monqy> evincar: repeat until dead
00:23:20 <elliott_> but that's not what he's saying at all
00:23:24 <elliott_> but um itidus20 itidus20 itidus20
00:23:27 <oerjan> > (sin + cos) 1
00:23:27 <lambdabot> 1.3817732906760363
00:23:27 <elliott_> itidus20: oklopol: have you met
00:23:52 <itidus20> i think so
00:23:55 <oerjan> elliott_: um wait it's not the same
00:23:55 <monqy> evincar: I think you may need a more consistent notation if you want to make a lick of sense
00:24:00 <itidus20> so many id's staring with an o
00:24:33 <elliott_> oerjan: oh right... well w/e
00:24:45 <elliott_> im just ignoring evincar at this point because hes being even more incoherent than before
00:24:52 <pikhq_> elliott_: He's saying it happens implicitly.
00:24:55 <pikhq_> I think.
00:24:57 <elliott_> pikhq_: no
00:25:05 <pikhq_> I can't tell for sure, because his notation makes negative sense.
00:25:05 <elliott_> he's saying that application is composition.
00:25:11 <evincar> I should just let elliott_ talk for me and be wrong.
00:25:14 <elliott_> read the logs if you want to continue this, i suggest you don't
00:25:18 <evincar> It's more entertaining than defending myself.
00:25:43 <pikhq_> evincar: Um, application is no more composition than application is a cat.
00:25:52 <pikhq_> You are talking nonsense, stop it.
00:26:07 <elliott_> pikhq_: YES THAT WILL WORK WE'VE ONLY BEEN ARGUING WITH HIM FOR LIKE AN HOUR
00:26:14 <elliott_> yelling at him to stop is definitely productive
00:26:35 <evincar> It's too amusing when you argue.
00:26:47 <evincar> Of course I'm going to keep at it.
00:26:57 <elliott_> smugness is a known cure for being completely wrong
00:27:10 <NihilistDandy> And cancer
00:27:24 * NihilistDandy specializes in ambiguous addenda
00:27:26 <evincar> Too bad. You're reading more into my tone than is there.
00:27:47 <evincar> I would actually like to know if something I've thought up doesn't work.
00:28:06 <evincar> But all I've gotten is noise, because we're not understanding each other.
00:28:20 <monqy> evincar: could you please make a better notation?
00:28:36 <pikhq_> evincar: When you say "Colorless green dreams sleep furiously", don't be surprised when people don't understand you.
00:28:41 <NihilistDandy> Impotence mismatch
00:29:03 <evincar> I'm chalking it up to the fact that all unfamiliar syntax is opaque.
00:29:05 <NihilistDandy> evincar: Apply f to x. What is your result?
00:29:32 <monqy> evincar: it's actually that it's inconsistent
00:29:36 <pikhq_> NihilistDandy: Clearly a superposition of states.
00:29:38 <NihilistDandy> Plain old math notation
00:29:46 <evincar> NihilistDandy: That depends on the types of f and x. If f is a function, and its arity is 1, you get the result of applying f to x. If its arity is greater, you get another function, with x fixed in f.
00:29:58 <NihilistDandy> evincar: No. It doesn't. Shut up
00:30:02 <NihilistDandy> The answer is f(x)
00:30:03 <evincar> If they're both values, you get the result of passing the message x to the value f.
00:30:19 <elliott_> hey guys
00:30:21 <pikhq_> So... Functions aren't values?
00:30:22 <pikhq_> Lame.
00:30:24 <elliott_> guess what won't make him shut up
00:30:28 <elliott_> TALKING TO HIM ABOUT IT
00:30:29 <oerjan> NihilistDandy: um that's the essential thing his language does. stop insulting.
00:30:43 <monqy> his lamguage suuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuucks
00:30:43 <NihilistDandy> _-_
00:31:03 <oerjan> the question is whether this breaks down with higher-order functions, but no one has yet given an example which _clearly_ breaks
00:31:03 <evincar> They're as much values as they aren't. You can still write higher-order functions.
00:31:33 <monqy> evincar: does this make sense to you
00:31:45 <evincar> < oerjan> the question is whether this breaks down with higher-order functions, but no one has yet given an example
00:31:56 <NihilistDandy> oerjan: I was coming to a point, LI5, but now I'm late, so I have to go. :P
00:32:04 <evincar> ^ that.
00:32:16 <monqy> evincar: how about writing a fixed-point combinator
00:32:16 <oerjan> i think you need more than one level deep functions
00:32:18 <monqy> evincar: that's a fun one
00:32:56 <elliott_> <oerjan> the question is whether this breaks down with higher-order functions, but no one has yet given an example which _clearly_ breaks
00:32:59 <elliott_> my example did
00:33:01 -!- NihilistDandy has quit (Quit: bechamel).
00:33:05 <elliott_> g f = f 0 + f 9
00:33:18 <elliott_> [g f] is meant to be \... -> g (f ...), according to his compose definition
00:33:21 <oerjan> evincar: my suggestion is to look at [[foldr f] 0].
00:33:24 <elliott_> but apparently [g f] is actually (f 0 + f 9)
00:33:31 <elliott_> despite the fact that [compose g f] is still \... -> g (f ...)
00:33:34 <elliott_> according to direct statements made by him
00:33:36 <elliott_> contradiction
00:33:41 <elliott_> he will of course not acknowledge this counterexample.
00:34:09 <oerjan> elliott_: no it did not. you are simply not approaching this with a mind of trying to understand what he means.
00:34:36 <evincar> elliott_: I never established an equivalence between any of my notation and lambda notation.
00:34:40 <oerjan> you are approaching this with a mind of refusing any answer he gives that doesn't fit your exact prejudices.
00:34:40 <elliott_> I was, to start with
00:34:50 <elliott_> no, I'm not approaching it any more
00:35:07 <elliott_> I gave up when he started saying "CONCLUSIVELY PROVE OR DISPROVE IT" after I gave him a counterexample
00:35:12 <elliott_> unless _you_ can explain how the above works?
00:35:38 <oerjan> evincar: anyway, [[foldr f] 0], the question is whether f should be applied to 0 or not.
00:37:11 <evincar> oerjan: Uh, foldr f z = z, no matter which way you cut it.
00:37:20 <evincar> Or what syntax you put it in.
00:37:33 <oerjan> evincar: um no.
00:38:02 <oerjan> ...ok i give up.
00:38:15 <elliott_> lol
00:38:17 <oerjan> if you think _that_, there really is no common ground.
00:38:18 <elliott_> has evincar used foldr
00:38:27 <elliott_> evincar: do you perhaps mean foldr f z _ = z
00:38:33 <elliott_> or are you really that hilarious
00:39:00 <elliott_> next up on evincar: "what's the difference between x and (const x), my language has no need for that"
00:39:51 <evincar> elliott_: Yes, alright, so I omitted the other argument.
00:40:29 <monqy> evincar: even with the other argument, what you said didn't really make sense
00:40:40 <monqy> evincar: the question is if your language allows it to work properly
00:40:57 <monqy> evincar: not whether it should work properly
00:41:14 <elliott_> oerjan: did you give up
00:41:17 <elliott_> oerjan: he doesn't think _that_
00:41:19 <elliott_> so there's common ground
00:41:25 <elliott_> so dont worry everything will be fine ;(
00:41:38 <oerjan> well i'm giving up anyhow.
00:41:58 <monqy> i really want to know what evincar is thinking, how his language works. is this bad :(
00:42:04 <oerjan> i'm getting a really bad vibe from this.
00:42:32 <oerjan> let him implement it and then you can see.
00:42:48 <elliott_> you think I want to read the code of a man who thinks _these_ things?
00:43:00 <evincar> oerjan: In answer to your question, [[foldr f] 0] is a function that can be applied to a list and yields what you'd expect from foldr.
00:43:52 <monqy> evincar: could you describe how evaluation of that expression works?
00:44:40 <evincar> monqy: foldr is a function. f is then fixed as the first argument of that function, yielding another function [foldr f].
00:45:05 <evincar> monqy: Then 0 is fixed as the first free argument of that function, yielding the final function corresponding to [foldr f 0].
00:46:05 <evincar> Whereupon further arguments are expected as a list. When those are supplied, the whole expression yields a value.
00:46:21 <monqy> ok
00:46:32 <evincar> is that sane i not know help
00:46:36 <monqy> help
00:47:02 <monqy> so this is normal application, right? where does your fancy composition stuff come in?
00:47:05 <elliott_> evincar: our gimmick
00:47:08 <elliott_> get yer hands off
00:48:24 <oerjan> evincar: now the twist: f happens to be a three argument function, not two. and the list is empty.
00:49:35 <oerjan> what does [[foldr f 0 empty-list] 0] do? and how does that compare to [foldr f 0 not-empty-list]?
00:50:35 <oerjan> does it become [foldr [f 0] 0 empty-list]?
00:51:12 <evincar> oerjan: With an empty list, it ought to return 0 regardless.
00:51:23 <evincar> With a non-empty list, it depends on how well foldr is written.
00:51:32 <evincar> You might get a list of unary functions.
00:51:50 <oerjan> oh well.
00:51:57 <monqy> it's okay oerjan
00:51:58 <monqy> you tried
00:52:03 -!- pikhq_ has quit (*.net *.split).
00:52:07 -!- aloril has quit (*.net *.split).
00:52:11 -!- twice11 has quit (*.net *.split).
00:52:31 <oerjan> this seems somewhat unhygienic, in the scheme vs. CL macro sense.
00:52:34 -!- pikhq has joined.
00:52:45 <elliott_> monqy: and trying is half the battle.
00:53:57 <monqy> evincar: "how well foldr is written"? If it behaves incorrectly, it's incorrect.
00:54:14 <elliott_> SOME FOLDRS ARE BETTER THAN OTHERS
00:54:36 <evincar> I'm making reference to the presumably poorly written one I gave earlier.
00:54:36 <oerjan> two arguments bad. four arguments better!
00:54:38 <elliott_> oerjan: My hunch is that [compose f g] will not do what it claims to if f is higher-order
00:54:50 <elliott_> (if this language is indeed not _totally_ ambiguous)
00:54:56 <elliott_> i.e., it will intsead apply f to g.
00:55:04 <elliott_> (I'm not interested in hearing counterarguments to this, evincar)
00:55:12 <elliott_> playing df is more fun
00:55:23 <oerjan> elliott_: it's going to depend immensely on internal implementation.
00:55:25 <elliott_> oerjan: by the way your dorf died.............
00:55:28 <elliott_> but now your new dorf exists :DDD
00:55:33 <oerjan> i heard.
00:55:37 <elliott_> 'oerjan II' Regmidor, Carpenter: "'oerjan II' Glovedpowers"
00:55:38 <oerjan> well the former.
00:55:41 -!- aloril has joined.
00:55:43 <elliott_> also you are a female........
00:55:50 <monqy> do i still exist
00:55:52 <monqy> am i still female
00:55:54 <elliott_> and a proficient conversationalists
00:55:56 <oerjan> who said that
00:55:59 <elliott_> monqy: yes good old monqy still exists
00:56:00 <elliott_> oerjan: what
00:57:03 <monqy> ok to get a better idea i'm now going to read logs (wish luck)
00:57:13 <oerjan> evincar: this _really_ gives me the same kind of vibe as unhygienic macros, where things get evaluated in the wrong place unless you're a master...
00:57:45 <evincar> oerjan: It's really not that bad. Text is definitely not my best medium.
00:57:52 -!- twice11 has joined.
00:58:19 <zzo38> /msg lambdabot @messages
00:59:28 <elliott_> zzo38: :D
00:59:30 <elliott_> try PRIVMSG
00:59:54 <oerjan> elliott_: someone said "do i still exist"
01:00:03 <monqy> does zzoclient respond to ctcp i want to know if i should version it
01:00:10 <oerjan> in an eerie, ghostly voice
01:00:19 <monqy> was i
01:00:21 <monqy> looking ghostly
01:00:26 <elliott_> oerjan: um really?
01:00:27 <oerjan> there it was again
01:00:27 <elliott_> oerjan: irl?
01:00:29 <zzo38> monqy: It does respond to VERSION although that can be turned off
01:00:36 <oerjan> elliott_: no, on the channel
01:00:44 <elliott_> oerjan: what?
01:00:51 <elliott_> < 1313456150 199160 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :do i still exist
01:00:52 <oerjan> now there is this strange *WHOOSH* sound...
01:00:55 <elliott_> oh
01:00:58 <elliott_> im a stupids
01:01:08 <elliott_> oerjan: also stop i have a stupid fear of ghosts :D
01:01:11 <zzo38> I think it responds even if the command is given inside of other messages
01:01:18 <oerjan> ah. also, BOO!
01:01:35 <elliott_> once i told a scientologist, before i realised they were a scientologists, that i had a fear of aliens (i don't have a fear of aliens any more)
01:01:51 <elliott_> then when i realised i was like SHIT THEY PROBABLY HAD ME MARKED AS AN EASY RECRUIT
01:01:58 <elliott_> I ALREADY HAVE THE LATENT FEAR OF XENU.................
01:02:12 <elliott_> cool story time with elliott
01:03:22 <elliott_> oklopol: OH MY GOD YOU ARE THE WORST FURNACE OPERATOR SHUT HTE FCUFCKL UP
01:03:25 <oerjan> elliott_: that's not so bad. now if you start being afraid of volcanoes and nuclear bombs... _that_ would be just irrational.
01:04:07 <oerjan> what did oklopol do
01:04:22 <elliott_> HE KEEPS CANCELLING THE ADAMANTINE WAFER JOB BECUASE HE NEDES REFINED COAL
01:04:24 <elliott_> GUESS WHAT IM FUCKING MAKING
01:04:26 <elliott_> REFINED COAL
01:04:28 <elliott_> SHUT THE FUCK UP STOP TELLING ME
01:04:29 <elliott_> JUST
01:04:30 <elliott_> GO
01:04:31 <elliott_> DRINK
01:04:32 <elliott_> OR SOMETHING
01:04:34 <elliott_> THATS ALL DORFS FO
01:04:35 <elliott_> SPODSSPDGJDFIGKJGLK
01:04:40 -!- cheater_ has joined.
01:05:35 <monqy> ugaudhflogadgh
01:08:23 -!- cheater has quit (Ping timeout: 250 seconds).
01:08:55 <oerjan> !simplename
01:09:01 <EgoBot> GAISIOOEAAYAIOLEI.
01:09:16 -!- sllide has quit (Read error: Connection reset by peer).
01:10:16 <elliott_> "Our fortunes rise and fall together." is such a great line
01:10:17 <monqy> rolls off the tounge
01:10:25 <elliott_> it's straight out of a SERIOUS FANTASY MOVIE
01:10:46 <elliott_> (it is the last thing the dwarven ambassador says to you before they leave)
01:24:38 <elliott_> OKLOPOL AGSALFIKOD, FURNACE OPERATOR CNACELS MAKE ADAMANTINE WAFERS: NEEDS REFINED COAL
01:24:38 <elliott_> OKLOPOL AGSALFIKOD, FURNACE OPERATOR CNACELS MAKE ADAMANTINE WAFERS: NEEDS REFINED COAL
01:24:39 <elliott_> OKLOPOL AGSALFIKOD, FURNACE OPERATOR CNACELS MAKE ADAMANTINE WAFERS: NEEDS REFINED COAL
01:24:39 <elliott_> OKLOPOL AGSALFIKOD, FURNACE OPERATOR CNACELS MAKE ADAMANTINE WAFERS: NEEDS REFINED COAL
01:24:39 <elliott_> OKLOPOL AGSALFIKOD, FURNACE OPERATOR CNACELS MAKE ADAMANTINE WAFERS: NEEDS REFINED COAL
01:24:40 <elliott_> OKLOPOL AGSALFIKOD, FURNACE OPERATOR CNACELS MAKE ADAMANTINE WAFERS: NEEDS REFINED COAL
01:24:41 <elliott_> OKLOPOL AGSALFIKOD, FURNACE OPERATOR CNACELS MAKE ADAMANTINE WAFERS: NEEDS REFINED COAL
01:24:47 <elliott_> (that's not keyboardbash, his surname is really Agsalfikod)
01:25:09 <monqy> agsalfikod
01:28:11 -!- zzo38 has quit (Remote host closed the connection).
01:30:06 <oerjan> cnacel is a luvvely dworf verb, ye ken
01:30:38 <oerjan> *dorf
01:31:07 <elliott_> im cnackers
01:31:08 <elliott_> im cnackered
01:31:31 <oerjan> great dorf king cnute
01:32:09 <oerjan> cnack, snapple and dorf
01:35:40 <elliott_> oerjan: http://ompldr.org/vOXgwYg hi do you likemy bedroom in progress
01:35:51 <elliott_> yours is probably one of the Æ/pi/capital theta arrangements seen above
01:36:13 <elliott_> those weird inverted floor titles are all engravings
01:36:16 <elliott_> a lot of them masterpieces
01:36:34 <elliott_> what i am saying is ha ha ha my bedroom rocks
01:38:11 <monqy> your bedroom hurts my eyes
01:38:19 <elliott_> monqy: which part of it...........
01:38:24 <elliott_> is it the engravings or the non-engraved parts........
01:38:26 <monqy> the drwf fortes part..
01:38:40 <monqy> it is kind of an eyesore
01:38:50 <monqy> the whole game I mean :(
01:38:55 <monqy> do tilesets help help
01:39:10 <monqy> or is it better after getting used to it
01:39:30 <elliott_> monqy: yeah it gets better
01:39:35 <elliott_> monqy: i mean you see that mess of , . ` '?
01:39:40 <elliott_> that all becomes the +s if you smooth the flaw
01:39:43 <elliott_> erm
01:39:43 <elliott_> that all becomes the +s if you smooth the floor
01:39:49 <elliott_> which im doing
01:39:52 <elliott_> the engravings make it uglier but you can make those hidden
01:40:02 <itidus20> is it multiplayer? i can't quite figure out exactly what you guys are doing with df from listening to it in here
01:40:12 <elliott_> itidus20: we're each doing a year of the fortress, then passing it on to the next person
01:40:14 <elliott_> well, two years now
01:40:19 <itidus20> ahh cool
01:40:21 <elliott_> monqy: basically, the "prettier" and pictographic your tileset gets, the harder it is to scan at a glance
01:40:38 <elliott_> monqy: with roguelikes, this is less of a problem, since you don't care much about things beyond a small area around you
01:40:45 <elliott_> but with DF, you're focussing on hundreds if not thousands of tiles at once
01:40:51 <elliott_> it's more of a surveying type situation
01:40:52 <monqy> with roguelikes I tend to prefer ascii
01:41:06 <monqy> and I understand the problem yes
01:41:46 <elliott_> http://ompldr.org/vOXgwZA
01:41:55 <elliott_> the tiles here are distinct enough that I can easily locate all the trees, or all the plants, by eye
01:42:02 <elliott_> but if it were graphical in any way, I'd see an awful lot less
01:42:14 <elliott_> monqy: If you want, you can go, say, before me next time
01:42:30 <elliott_> That should be like a week or a week and a half, so enough time to learn the game well enough
01:42:35 <monqy> hm
01:42:39 <monqy> i might try
01:43:09 <elliott_> The quickstart is really detailed
01:43:36 <elliott_> monqy: Also you get to construct a grand bedroom for yourself.
01:43:47 <monqy> hm
01:43:49 <elliott_> PH started it, then I started making my bedroom, then Taneb massively one-upped me, so now I'm doing this.
01:43:54 <monqy> i might just make a nice small one
01:44:03 <elliott_> I don't even know if you have a bedroom
01:44:09 <elliott_> We just stopped building them early on and nobody's complained yet
01:44:11 <elliott_> Everyone's really happy
01:44:16 <elliott_> You probably do I guess
01:44:19 <elliott_> Being one of the first dorfs
01:45:34 <elliott_> monqy: You could also just go for a year rather than two :-P
01:45:48 <elliott_> It's actually pretty hard to kill the fortress at this point
01:46:00 <monqy> maybe if i like it and have unfinished business i will go for two
01:46:05 <elliott_> Digging into the river is the easiest way, followed by breaking into the adamantine vein containing the shaft to hell
01:46:10 <elliott_> monqy: Sure
01:46:17 <elliott_> monqy: I was more thinking as far as difficulty went
01:46:30 <elliott_> A year is, like, four consecutive hours of play or something
01:46:32 <monqy> if i totally die in first year i will hand it off
01:46:33 <elliott_> I dunno exactly but
01:46:42 <elliott_> monqy: If you totally die, the fortress dies :P
01:46:49 <elliott_> But like I said, it's hard to kill the fort at this point
01:46:56 <elliott_> The traps are good at getting invaders
01:47:28 <elliott_> If you dug a few blocks towards the river in the huge underground dirt room and then did nothing the whole fortress would be flooded and everyone would drown, and if you broke the adamantine leading to hell then ... well, all hell would break lose and everyone would die
01:47:31 <elliott_> But apart from that we're pretty secure
01:47:49 <monqy> how do i avoid these
01:48:31 <elliott_> monqy: They won't happen unless you make them -- OK we're out of meat.
01:48:41 <elliott_> Oh dear
01:48:43 <elliott_> We have one hundred drink
01:48:49 <elliott_> T-Pain to the rescue!
01:48:51 <monqy> party
01:49:03 <elliott_> (Yes our brewer is called T-Pain.)
01:49:07 <monqy> how do i know which vein is the bad one what if the dwarfs say they want adamantine
01:49:19 <elliott_> monqy: We have loads of adamantine stocks
01:49:34 <elliott_> So you don't need to, basically
01:49:41 <monqy> good to know
01:50:19 <elliott_> Also, plan to get four minutes of acoustic guitar stuck in your head
01:50:30 <elliott_> The Dwarf Fortress soundtrack would have one track on it :P
01:51:07 <monqy> :(
01:51:36 <elliott_> monqy: http://www.youtube.com/watch?v=-6FXeupOp04 :-P
01:51:57 <elliott_> I like it though, especially when there's a massive siege going on and the music is just going on like usual
01:53:31 <elliott_> Hmm, someone might rampage pretty soon, we're out of food and almost out of drink
01:53:41 <elliott_> Deary me
02:06:51 -!- pumpkin has changed nick to copumpkin.
02:08:39 <elliott_> Oh dear, oh dear, oh dear
02:10:50 <monqy> idd it hapen
02:11:31 <elliott_> We're just out of things to brew
02:11:38 <elliott_> Fuck this, I'm saving it and coming back to it tomorrow
02:14:40 <oerjan> The Dreadful Dorf Drought Disaster
02:29:13 -!- sut-heb has joined.
02:34:32 <elliott_> sut-heb: hi
02:56:53 -!- ttm_ has quit (Ping timeout: 240 seconds).
03:00:10 -!- Guest85983 has joined.
03:00:29 <Guest85983> Hello room
03:01:08 -!- Guest85983 has changed nick to Pianoo.
03:01:15 <oerjan> hello
03:01:35 <Pianoo> Hmmm ... better than 123mya**
03:02:04 * oerjan waits for the footnote to that **
03:02:17 <Pianoo> Esoteric programming? Sounds interesting but what is it?
03:02:17 <elliott_> Pianoo: hi, this is a channel about esoteric programming languages
03:02:22 <elliott_> see http://esolangs.org/wiki/ for more information :P
03:02:42 <elliott_> Pianoo: if you've heard of brainfuck, INTERCAL, or Befunge...
03:02:53 <Pianoo> Of course I RTFM before questioning
03:03:18 <Pianoo> I *will* read ...
03:03:32 <oerjan> "Of course I RTFM" he said, the first person in history to do so...
03:03:35 <elliott_> It's nothing to do with the other kind of esoteric, apart from obscurity :)
03:04:32 <oerjan> ^ul ((Ye olde esoteric underload)!a(:^)*S):^
03:04:32 <fungot> ((Ye olde esoteric underload)!a(:^)*S):^
03:04:40 <Pianoo> The server gave me a "guest123_my_a**" nick because mine was taken
03:04:57 <elliott_> You can say ass :P
03:05:04 <Pianoo> It's day time for me, I censor my crude language :-D
03:05:16 <elliott_> you might find this channel a bit profane for your tastes then :P
03:05:17 -!- coppro has quit (Quit: Reconnecting).
03:05:21 -!- coppro has joined.
03:05:23 <Pianoo> Okayyy
03:05:26 <elliott_> oerjan: unfortunately underload is not widely-known outside the community :(
03:05:29 <oerjan> well censoring brainfuck is a bannable offense. maybe.
03:06:08 <oerjan> a sad state of affairs. but writing things in brainfuck on the fly is a bit annoying in comparison.
03:07:22 <Pianoo> I have spent the last 48 hours crying my eyes out reading fresh version of bash.org, then I wondered why not make some of my own, I do have a stockpile of dumb questions :)
03:07:25 <oerjan> INTERCAL is also hard, and demonstrating befunge on one line seems like missing the point...
03:07:41 <Pianoo> *French*
03:07:43 <oerjan> we have quotes too!
03:07:45 <oerjan> `quote
03:07:47 <HackEgo> 461) <Phantom_Hoover> The wickedest man of all. <Phantom_Hoover> Surpassed only in wickedness by the wicked witches of the west and east. <copumpkin> you talking about me again? <Phantom_Hoover> Yes. <copumpkin> k
03:08:04 <oerjan> ok maybe not very portable ones.
03:08:06 <elliott_> oerjan: unefunge :)
03:08:12 <elliott_> `quote
03:08:13 <elliott_> `quote
03:08:14 <HackEgo> 66) <Sgeo> What else is there to vim besides editing commands?
03:08:16 <HackEgo> 558) <fungot> Phantom_Hoover: it is a hate so pure and... pumpkin seeds?
03:08:23 <elliott_> fungot: say hi
03:08:24 <fungot> elliott_: well not a joke out of context
03:08:42 <oerjan> a have this feeling those pumpkin seeds come up often
03:08:45 <oerjan> *i have
03:08:48 <Pianoo> You keep a log o them?
03:08:49 <elliott_> someone get its source, i can't type carets
03:09:03 <elliott_> `pastequotes
03:09:05 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.27391
03:09:10 <elliott_> Pianoo: that's all of them
03:09:27 <oerjan> elliott_: well unefunge is also a little missing the point
03:09:50 <elliott_> oerjan: [caret]source to scare Pianoo? :D
03:10:07 <monqy> quote 596......:(
03:10:07 <oerjan> ^source
03:10:07 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
03:10:19 <oerjan> but of course
03:10:30 <elliott_> Pianoo: that's fungot's source code
03:10:31 <Pianoo> Hilarious!!!! Love it
03:10:31 <fungot> elliott_: ( une-racine 1 1 1 1
03:10:32 <oerjan> `quote 596
03:10:34 <HackEgo> 596) <evincar> elliott_: I don't see a difference between a function taking a function as an argument, and some composition of those functions.
03:10:40 <elliott_> written in befunge :)
03:11:16 <oerjan> conclusion: evincar considers all linear functions equivalent
03:11:29 <elliott_> Pianoo: (http://git.zem.fi/fungot/blob/HEAD:/fungot.b98, that is)
03:11:30 <fungot> elliott_: line 17 is where is segfaults with that too...
03:12:36 <Pianoo> Gosh it is a little far from me, I haven't set a finger on an editor for the last 3 years
03:12:51 <oerjan> fungot: you have segfaults? say it isn't so!
03:12:51 <fungot> oerjan: i mean, regular irc banter is note fitting in the quote
03:15:13 <Pianoo> It's fun to chat from where I am :) have you ever watch a martial arts movie about kung fu teaching (like "karate kid" the last one) like in china and wonder "man I want to go there"
03:15:24 <elliott_> Pianoo: don't worry, nobody else understands fungot either
03:15:24 <fungot> elliott_: you choose 80% of the platforms i'm going to sleep. first lecture day of 2006 tomorrow, wouldn't want to do
03:15:41 <Pianoo> Well that's where I am and being in a chat room seems surreal
03:15:50 <elliott_> oh, you are in china? maybe don't stop the censorship then :D
03:15:57 <monqy> how many of these elliott quotes did elliott himself add
03:16:10 <Pianoo> Long live VPN !!!
03:16:12 <elliott_> monqy: not most
03:16:44 <Pianoo> Elliott_ : you reassure me :)
03:18:01 <monqy> the only martial arts movie i can remember is kung fu panda, and i can't even remember that
03:18:42 <itidus20> ill tell you whats a good martial arts movie
03:18:44 <elliott_> `quote video game
03:18:46 <HackEgo> 362) <monqy> I've only watched bad movies about video game. I enjoyed every second of it. \ 536) <itidus20> Game theory is not a perfect tool for analyzing video games. <itidus20> Nash failed to create a "video game theory"
03:18:54 <elliott_> was going for the first one
03:19:08 <itidus20> the snake and crane arts of shaolin
03:19:08 <elliott_> monqy: did you just learn how to pluralise recently
03:19:39 <monqy> elliott_: I recall when I was writing I couldn't find a good way to pluralise it so I just went with that
03:19:39 <Pianoo> monqy : Well that's one of the movies which motivated me to quit everything and come here
03:19:41 <elliott_> Pianoo: also if you value on-topicness you may find this channel lacking :P
03:19:58 <elliott_> ok, Pianoo may be the first person to move to china because of kung fu panda
03:20:07 <itidus20> i watched a lot of jackie chan growing up
03:20:24 <itidus20> one day.......... i had like a dream where i could have sworn jackie chan thanked his fans
03:20:40 <itidus20> like he did some telepathic shit
03:20:44 <Pianoo> elliott_: not so sure...
03:21:04 <itidus20> hya! hya! hya! ...
03:21:34 <Pianoo> itidus20: and the tree in the face
03:21:52 -!- MDude has changed nick to MSleep.
03:21:54 <itidus20> yeah.. mixing owen wilson with jackie chan is gold as they say
03:22:20 <itidus20> if i have the correct movie reference
03:22:23 <elliott_> they say that?
03:22:57 <Pianoo> Google Wudang mountains or Purple Heaven Palace and you'll see where I live
03:23:16 <Pianoo> It's amazing!!
03:24:05 <Pianoo> elliott_: about ontopicness, I don't care really, only wanted to find funny dudes to chat with
03:24:07 <oerjan> living in a maze, ok
03:24:13 <elliott_> you live in a palace? :P
03:24:22 <itidus20> Pianoo: basically i know that jackie chan and jet li are the best actors... bruce lee might be the best actual martial artist and well... he was very very cool in enter the dragon
03:24:50 <Pianoo> Not actually in it, but in a school attending, we practice in it though
03:25:21 <Pianoo> oerjan: a joke with amazing? Seriously?
03:25:23 <itidus20> the ancient chinese had great imaginations
03:25:30 <elliott_> oerjan is the master of puns around here
03:25:37 <itidus20> modern western civilization is weighed down in mathematics
03:25:48 <itidus20> sorry guys :P
03:26:06 <elliott_> itidus20: wat
03:26:08 <itidus20> i dont really think that
03:26:40 <Pianoo> It's actually crazy what they can do with chi, needles and some awfully disgusting herbs brew
03:26:46 <itidus20> the last 10 - 15 years of my life have been an existential crisis though
03:27:29 <Pianoo> itidus20: and how old you are? If you don't mind asking a lady her age?
03:27:43 <itidus20> im a man 29
03:27:52 <coppro> Pianoo: it's amazing how much you can do with the placebo effect too
03:27:57 <elliott_> what coppro said
03:28:04 <monqy> what elliott_ said
03:28:08 <elliott_> what monqy said
03:28:12 <monqy> hlep
03:28:13 <MSleep> Well I made a "half cat" program in Constantinople that checks every other bit and exits if it's a 1.
03:28:23 <MSleep> Oh wait I'm already asleep.
03:28:23 <itidus20> yeah.. my chat voice is very androgynous
03:28:25 <coppro> what monqy said
03:28:31 <MSleep> I'll talk about it in the morning.
03:28:38 <itidus20> not your fault
03:28:39 <elliott_> what coppro said
03:28:52 <monqy> is my chat voice masculine
03:28:56 <itidus20> Pianoo: life is about fun really.. in the end
03:29:00 <monqy> or perhaps feminine
03:29:00 <itidus20> it is..
03:29:09 <itidus20> monqy: arnie
03:29:18 <itidus20> quickly.. get to de choppa!
03:29:18 <monqy> what's that help
03:29:24 <monqy> help
03:29:28 <Pianoo> That's what convinced western to completely ignore energy and see the body as a machine composed of different parts that you fix independently, but that's a long story
03:29:34 <coppro> itidus20: you spent that long in an existensial crisis?
03:29:36 <itidus20> arnold schwarzenegger
03:29:42 <itidus20> coppro im still there
03:29:49 <coppro> itidus20: what.
03:29:58 <monqy> itidus20 is special
03:29:58 <elliott_> Pianoo: the model of chi has no scientific evidence to support it that I know of
03:30:02 <elliott_> are you aware of any?
03:30:07 <coppro> itidus20: if you had an existence problem, how can you be having an existential crisis?
03:30:20 <elliott_> Pianoo: western medicine would be very interested in any, I'm sure, as it is a science-based practice
03:30:31 <itidus20> its like... i am the observer.. and all others are observed
03:30:39 <itidus20> it's a distressing dichotomy
03:30:44 <coppro> itidus20: oh. That's called life.
03:30:53 <itidus20> but then... two people can observe a third other
03:31:07 <Pianoo> Kirlian photography was an example, but the scientists were not too happy so they unruled it
03:31:38 <itidus20> humor and alcohol seem to help
03:31:46 <itidus20> more humor.. occasional sips of alcohol
03:31:49 <coppro> Kirlian photography is neat, but there is no scientific evidence that it's useful for medical purposes
03:31:49 -!- iamcal has quit (Ping timeout: 250 seconds).
03:31:53 <itidus20> i know that an addiction is of no value
03:32:07 <coppro> itidus20: oh. That's called love.
03:32:11 <elliott_> Pianoo: http://upload.wikimedia.org/wikipedia/commons/5/51/Kirl66_g.png in this image, you can see two coins under kirlian photography
03:32:15 <itidus20> ahhh :)
03:32:18 <elliott_> Pianoo: do coins have auras too?
03:32:57 <PatashuWarg> I know my coins have a mind of their own
03:33:00 <PatashuWarg> I never have enough change
03:33:00 <Pianoo> I think, for my parts that you could "give" some to objects for a bit
03:33:40 <elliott_> Pianoo: inanimate objects always have such "auras" under kirlian photography
03:34:03 <elliott_> so it hardly proves that chi exists, unless literally everything always has the same chi
03:34:05 <Pianoo> But I don't know much, I just say it's interesting and I don't want to block myself with the never-ending argument "scientific evidence"
03:34:09 <itidus20> coppro: i have had a difficult childhood, as we all have.. and so i have trouble now to just have fun and stuff
03:34:33 <coppro> itidus20: :(
03:34:41 <Pianoo> I think we don't know much and we could explore more.
03:35:00 <coppro> itidus20: you are in .au?
03:35:03 <elliott_> Pianoo: Well, maybe it's interesting, but you can hardly blame Western medicine for refusing to practice something with /no shown efficacy/ when there are plenty of methods that can be shown to work
03:35:09 <itidus20> timbuctoo :))
03:35:19 <itidus20> im being overcompensationgly ridiculous
03:35:20 <Pianoo> Many of our socalled incurable diseases are cured in China
03:35:24 <itidus20> :)
03:35:31 <itidus20> no not a place called timbuctoo
03:35:32 <elliott_> sigh
03:35:34 <PatashuWarg> Using rhino horn and elephant ivory right?
03:35:41 <itidus20> but there is such a place here
03:35:55 <Pianoo> elliott_: But they don't want share much
03:36:05 <Pianoo> want to share ...
03:36:15 <monqy> i love sharing
03:36:45 <itidus20> so my brother got this new internet
03:36:55 <itidus20> so i have the rest of the month to burn up all the downloads this month
03:37:01 <itidus20> since we'll be changing over
03:37:17 <elliott_> .au internet is "fun" isn't it
03:37:18 <itidus20> im fixing my torrent share ratio >:)
03:37:27 <itidus20> yes :(
03:37:36 <elliott_> slightly better over here
03:37:37 <coppro> itidus20: rule number one: It doesn't matter what others think of you if you are happy with what you're doing.
03:37:37 <monqy> what's fun help
03:37:50 <coppro> itidus20: rule number two: you are allowed one exception to rule number one.
03:37:53 <itidus20> monqy: fun is sarcasm :)
03:37:58 <itidus20> fun = not fun
03:38:03 <monqy> HLEP
03:38:16 <monqy> so not fun is not not fun
03:38:17 <monqy> is fun
03:38:21 <monqy> help helph e,hlp
03:38:24 <itidus20> its like saying....
03:38:32 <Pianoo> What is it monqy?
03:38:35 <itidus20> shit is delicious
03:38:41 <itidus20> rather dogshit is delicious
03:38:49 <monqy> I've never tried it
03:38:50 <elliott_> what
03:38:54 <itidus20> just to emphasise how not delicious it is
03:39:01 <monqy> have you?
03:39:14 <itidus20> or maybe i misunderstood what elliott said
03:39:42 <itidus20> .au internet is fun to get regular tech support and limited downloads, limited bandwidth,
03:39:44 <monqy> in reality, I wasn't asking whether you were using "fun" sarcastically, but what's fun about it
03:39:46 <Pianoo> Ok I'm out, later ;)
03:39:55 -!- Pianoo has left.
03:40:00 <monqy> why now
03:40:02 <itidus20> rather, to need regular tech support
03:40:17 <monqy> au internet sounds bad
03:40:19 <itidus20> because we're a giant country with very few people.. and our network sucks
03:40:31 <elliott_> isn't NBN meant to fix that
03:40:38 <elliott_> and also, why do I even know about the NBN
03:40:40 <itidus20> how the frig
03:40:43 <itidus20> yeah
03:40:45 <itidus20> hehhehe
03:40:54 <itidus20> i dunno
03:41:12 <elliott_> i must have wikipedia-surfed to it sometime
03:41:22 <elliott_> i seem to recall their plan looking sane though
03:41:30 <itidus20> monqy: normally, fun means like games, movies, parties, sexy girls
03:41:35 <itidus20> jokes
03:41:41 <monqy> oh
03:41:45 <monqy> thanks for the clarification
03:41:48 <elliott_> what if youre gay
03:41:52 <elliott_> whta athen :????
03:41:55 <monqy> or female and not gay
03:42:00 <monqy> what if i'm secretly female
03:42:25 <monqy> also what if I hate parties, movies, games, fun
03:42:27 <itidus20> if you're gay, fun means playing leapfrog around the loungeroom naked
03:42:31 <elliott_> oh
03:42:34 <monqy> oh
03:42:34 <elliott_> what
03:42:45 <elliott_> <monqy> or female and not gay
03:42:49 <elliott_> why did i not think of that before "gay"
03:43:12 <monqy> whats female help
03:43:18 <itidus20> monqy: then you're normal if you hate those things
03:43:23 <itidus20> fun is uhhh
03:43:37 <itidus20> monqy: i don't know your native language. i could translate it.
03:43:44 <elliott_> english, i believe
03:43:52 <itidus20> cool
03:43:56 <itidus20> :D
03:44:03 <monqy> do you speak english too
03:44:22 <itidus20> i'm pretty much over the conlang thing
03:44:30 <itidus20> so yeah
03:44:42 <evincar> < coppro> itidus20: rule number one: It doesn't matter what others think of you if you are happy with what you're doing.
03:44:59 <evincar> In reference to our earlier discussion. ;)
03:45:07 <monqy> hi evincar
03:45:15 <itidus20> evincar: but that can elicit feelings of disconnection and discommunication if you don't care what others think too much
03:45:34 <evincar> Balance is key, as usual.
03:45:40 <coppro> itidus20: Well then you start to be unhappy and should start paying attention to others
03:46:09 <coppro> itidus20: but the important thing is that you do what you want and not what others say you should do, and you know it's the right thing to do
03:46:11 <elliott_> evincar: you can make bad languages all day, but also i can tell you they're bad
03:46:14 <elliott_> if that's what you're talking about
03:46:51 <monqy> it is morally wrong to make bad languages
03:47:08 <elliott_> coppro: what if what you're doing is murdering people
03:47:13 <elliott_> re rule one
03:47:22 <coppro> elliott_: well you'll go to jail
03:47:25 <coppro> and then you won't be happy
03:47:37 <elliott_> coppro: no
03:47:38 <monqy> balance restored
03:47:43 <elliott_> coppro: you just have to be good enough to not get caught
03:47:47 <elliott_> and by rule one, you're doing great
03:47:50 <itidus20> hmm
03:47:56 -!- iamcal has joined.
03:47:59 <itidus20> when i was young, all i wanted was space
03:48:05 <itidus20> well... i got it eventually
03:48:07 <itidus20> and here i am
03:48:11 <monqy> hi
03:48:13 <itidus20> with everything i wanted
03:48:17 <monqy> space
03:48:19 <coppro> elliott_: that works too
03:48:26 <coppro> itidus20: well!
03:48:28 <itidus20> all the free time in the world
03:48:29 <itidus20> and...
03:48:35 <elliott_> coppro: you actually believe that?
03:48:45 <coppro> elliott_: no
03:48:46 <monqy> murder is ok if you're good at it
03:48:47 <itidus20> and i end up worrying about my existence, about where my mind is
03:48:55 <itidus20> about the dichotomy of self and other
03:49:07 <itidus20> about how many dimensions i exist in
03:49:16 <coppro> itidus20: depends on which string theory you subscribe to
03:49:17 <itidus20> as i erad somewhere.. the subconcious fear i am only a machine
03:49:24 <itidus20> etc
03:49:39 <itidus20> so.. what use is endless free time if that is how i use it hahahahahahha
03:49:47 <monqy> hahahahaha
03:50:13 <monqy> itidus20: do you at least have good dreams? like that one with the ghostly looks
03:50:25 <monqy> that was a good dream
03:50:58 <coppro> itidus20: also, does it really matter? Live your life to the fullest - if you truly have endless free time, get involved in philanthropy or politics or something - have some fun, make babies, and look forward. Ce que sera, sera; whatever comes afterward will come no matter what.
03:51:16 <itidus20> well no need for getting too personal here.. i will reserve some aspects of personality.. i know that is what holds #esoteric together is not overrevealing
03:51:28 <monqy> I'd never be able to stand children
03:51:40 <itidus20> sometimes i regret that i don't have a wine cooler
03:52:42 <itidus20> thanks
03:52:56 <itidus20> http://www.youtube.com/watch?v=rK0De210TBQ
03:53:14 <evincar> I'd be able to stand my own children.
03:53:18 <evincar> Carrying on the line and that.
03:53:30 <evincar> But other people's kids I have no stake in and therefore care not for.
03:54:11 <coppro> the fun part isn't the actual babies anyway
03:54:27 <elliott_> birth control doesn't exist
03:55:35 <evincar> elliott_: What, from an ecological standpoint?
03:55:43 <evincar> For once I'd be inclined to agree.
03:55:47 <evincar> Food = population.
03:55:49 <elliott_> what
03:55:51 <coppro> elliott_: it damn well better
03:56:03 <elliott_> im just going to pretend evincar didnt say anything
03:56:08 <evincar> An increase in food production is matched by an increase in population.
03:56:17 <evincar> It's ecology 101
03:56:37 <elliott_> as we all know humans are completely bound by their instinct
03:56:39 <elliott_> therefore rape pillage murder
03:56:39 <itidus20> coppro: the "plan" was to spend my freetime on education.
03:56:44 <itidus20> but
03:56:54 <evincar> No, but birth control merely changes where babies are born.
03:57:07 <itidus20> i didn't fully think it out
03:57:26 <elliott_> evincar: what
03:58:05 <evincar> People are made of stuff.
03:58:09 <evincar> Said stuff is derived from food.
03:58:29 <monqy> egg salad is people too
03:58:33 <evincar> More food equals more people, regardless of birth control.
03:58:52 <evincar> People mate.
03:59:01 <evincar> That's one of those things we do, as mammals.
03:59:03 <monqy> people, mate.
03:59:24 <evincar> Mammals, mate.
03:59:35 <evincar> Actually, come to think of it...
03:59:37 <evincar> Marsupials, mate.
03:59:52 <elliott_> evincar: yes and also animals in the wild do all sorts of horrible things like constantly rape and murder each other and obviously since humans cannot control their instincts we do this just as much as any animal with our population size
04:00:00 <elliott_> if you lock up one murderer...... another random individual turns into a murderer
04:00:02 <elliott_> food = murder
04:00:07 <elliott_> murder control is impossible
04:00:09 <elliott_> give me my phd
04:00:17 <coppro> evincar's actually quite right
04:00:38 <evincar> I don't see how rape and murder are horrible in and of themselves.
04:00:47 <monqy> im dead
04:00:49 <monqy> you killed me
04:00:54 <monqy> HAPY, EVINCAR ?????
04:01:01 <elliott_> evincar: areyou serious
04:02:36 <evincar> Well, rape causes suffering, and getting murdered isn't high on most people's priorities.
04:02:54 <evincar> They're wrong if you assume suffering is wrong.
04:02:59 <elliott_> ................
04:03:01 <elliott_> you're an idiot
04:03:10 <elliott_> and xchat's ignore syntax is needlessly convoluted.
04:03:15 <monqy> is it ok to assume suffering is wrong
04:03:15 <evincar> But most crimes boil down to theft.
04:03:28 <elliott_> monqy: i dont see how assuming suffering is wrong is horrible in and of itself
04:03:30 <evincar> Rape being a variety of theft of happiness, and murder being theft of life.
04:03:44 <evincar> And if you're not attached to those things in the first place, you don't care.
04:04:13 <monqy> ok
04:04:23 <evincar> So essentially all crime is a big misunderstanding taking place between two people who are in the game up to their eyeballs, trying desperately to own things and enjoy the little time they have.
04:04:34 <evincar> Because people are too intelligent for their own good, realising that they're finite.
04:04:43 <evincar> So they just sort of ignore it.
04:05:02 <monqy> sorry but you kind of
04:05:03 <monqy> lost me
04:05:05 <itidus20> i have to admit the best laughter is the one you can't help
04:05:24 <monqy> this is very relevant
04:05:26 <monqy> im no joking
04:05:28 <monqy> serious 100%
04:05:38 <evincar> Keep your head down, think you can own things, think you're separate from anything.
04:05:55 <evincar> Those are your basic goals in life.
04:06:44 <monqy> I uh
04:06:46 <monqy> don't get it
04:06:52 <monqy> these aren't my goals
04:06:55 <monqy> unless I missed something
04:07:07 <monqy> maybe you're like
04:07:10 <monqy> a weirdo or something???
04:07:14 <monqy> with wierd life goles????
04:07:16 <evincar> I generalised too fast.
04:07:35 <elliott_> story of this entire conversation
04:07:38 <elliott_> just stop talking its embarrassing
04:08:47 <evincar> It could be embarrassing not to understand what others find intuitively obvious, but it's much easier to try to embarrass and dismiss them.
04:08:57 <evincar> Fun games.
04:09:12 <elliott_> what.
04:09:15 <monqy> are you calling elliott_ childish
04:09:24 <monqy> or did I misinterpret you again
04:09:31 <monqy> I seem to have a tendency to do that
04:10:00 <elliott_> is there even any "misinterpretation" when someone is making statements that sound grand but are just nonsense
04:10:13 <monqy> I'm going to try interpreting it real carefully now
04:10:51 <evincar> Nah, I'm just taking jabs because I'm frustrated that people don't seem to think the way I do.
04:11:02 <evincar> So if anyone's acting childish, it's me.
04:11:09 <monqy> ok
04:11:16 <evincar> I don't mind being disagreed with.
04:11:31 <evincar> What I mind is when someone dismisses something rather than trying to understand it.
04:11:40 <elliott_> yes most people do not oversimplify things they have no idea of in an attempt to sound like they've made deep statements
04:11:50 <elliott_> or maybe they do but that doesn't mean they should
04:11:55 <itidus20> i should mention that yahoo chat was bad for me.
04:12:02 <elliott_> should you
04:12:08 <itidus20> yes
04:12:12 <evincar> I'm not trying to be deep.
04:12:15 <itidus20> it certainly brought me no good
04:12:25 <evincar> The conversation just took a turn toward those topics and I offered some conversation material.
04:12:30 <itidus20> lotta snakes in the grass there elliott
04:12:59 <monqy> and who dismissed what
04:13:04 <monqy> and how did you infer this
04:13:04 <elliott_> evincar: i tried to understand what you said
04:13:10 <elliott_> then i realised that it was bullshit
04:13:14 <elliott_> sorry if this was not clear enough
04:13:41 <monqy> I tried to understand but failed to see the connections between a few things, noted such, and got totally lost
04:14:10 <evincar> Bullshit is when you're trying to seem knowledgeable about something you know you're not.
04:14:21 <evincar> I don't think that's the case here.
04:14:39 <monqy> so you do think you're knowledgeable about the subject?
04:14:40 <elliott_> that
04:14:41 <elliott_> seems like
04:14:42 <evincar> I was just in brief rant mode.
04:14:42 <elliott_> the exact case here
04:14:50 <elliott_> like that is one hundred percent what you are doing
04:14:50 <monqy> worst definition of bullshit by the way
04:15:22 <evincar> Okay, we can cut through this with a simple question.
04:15:34 <evincar> elliott_, do you think Zen is bullshit as a whole?
04:15:54 <monqy> I've never understood zen
04:16:08 <monqy> I don't even know what it is
04:16:16 <elliott_> none of this has anything to do with zen
04:16:26 <elliott_> but good derailing, i'm out, gonna code some shiro
04:16:28 <monqy> it has to do with bullshit
04:16:45 <evincar> No, but if I can characterise your thinking along those lines, then I can determine what you're going to call bullshit no matter what.
04:16:55 <evincar> Saving myself a lot of trouble.
04:16:55 <monqy> this might be amusing
04:17:02 <monqy> this might be quite amusing
04:17:20 <monqy> I'll participate, if you can briefly describe zen
04:17:38 <evincar> That isn't the point...
04:17:40 <elliott_> evincar: so which reply makes you stop talking about this and thus saving yourself the trouble??
04:19:39 <evincar> Eh, that one. If the room doesn't want to talk about crime, ethics, ecology, Zen, and babies, so be it.
04:20:06 <monqy> how about programming languages? I like those.
04:20:38 <evincar> Maybe I should leave. The last time I talked about programming languages in here I got into a different shouting match.
04:20:47 <evincar> Well, it didn't escalate to shouting per se.
04:22:21 <elliott_> no you were just wrong and got upset when we pointed this out
04:22:24 <elliott_> there is a difference
04:23:30 <evincar> Not really. I could've been wrong, and you got upset when I didn't immediately believe you when you made the claim.
04:24:08 <evincar> Of all the people in here, I'm not exactly best known for getting upset.
04:24:43 <monqy> am i best known for getting upset
04:25:02 <evincar> monqy: If you want. We could have a ranking.
04:25:51 <monqy> I don't think I'd be very well known at all for getting upset
04:26:29 <evincar> Wouldn't that be a good thing?
04:26:35 <monqy> sure
04:28:24 <elliott_> so lets talk about shiro.............
04:28:47 <monqy> is it good
04:28:54 <elliott_> yes
04:30:18 <evincar> Shiro as in shiro(i), Japanese for white?
04:30:57 <monqy> shiro as in eliots funge
04:31:03 <monqy> interpreter
04:31:03 <monqy> thing
04:32:33 <elliott_> "This looks a touch contrived, what with
04:32:34 <elliott_> (x < -10) && (x > -10)
04:32:34 <elliott_> being one of nature's less controversial values."
04:37:13 -!- pingveno has quit (Ping timeout: 252 seconds).
04:39:11 -!- pingveno has joined.
04:39:21 <evincar> elliott_: Funny, Google still finds that even though it's not in the current revision of the question.
04:39:53 <evincar> Hooray for caching, I guess.
04:42:31 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
04:49:37 <elliott_> Failed to load interface for `GHC.Prim':
04:49:38 <elliott_> It is a member of the hidden package `ghc-prim'.
04:49:38 <elliott_> Perhaps you need to add `ghc-prim' to the build-depends in your .cabal file.
04:49:40 <elliott_> monqy: help its bullying me
04:53:58 <oerjan> elliott_: Perhaps you need to add `ghc-prim' to the build-depends in your .cabal file.
04:54:05 <oerjan> just a hunch, there.
04:54:11 <elliott_> oerjan: THAT WOULD BE ADMITTING THAT IM USING UNSAFECOERCE
04:54:19 * elliott_ beats himself ritually
04:54:31 <oerjan> is unsafeCoerce in ghc-prim?
04:54:43 <oerjan> @hoogle unsafeCoerce
04:54:43 <lambdabot> Unsafe.Coerce unsafeCoerce :: a -> b
04:55:19 <oerjan> oh hm
04:55:50 <elliott_> well maybe not
04:55:53 <elliott_> but GHC.Prim is
04:55:55 <elliott_> I need Any
04:56:13 <oerjan> ah
04:56:36 <elliott_> (basically my current fingerprint system does casts that are always safe, but needs Data.Dynamic because you can't type it)
04:56:46 <elliott_> (I'm trying to OPTOMIZE(tm) that)
04:57:01 <elliott_> actually you can break the safety I think, but only by breaking an invariant of the Fingerprint type...
04:57:08 <elliott_> (if fpName a == fpName b, then a must === b)
04:57:29 <elliott_> (can't compare "anExistentiallyQuantifiedVar -> IO ()" or similar...)
04:59:10 <monqy> sounds spooky
05:00:39 <elliott_> monqy: better than my previous model
05:00:46 <monqy> :(
05:01:24 <oerjan> "•Casting between two types that have the same runtime representation. One case is when the two types differ only in "phantom" type parameters, for example Ptr Int to Ptr Float, or [Int] to [Float] when the list is known to be empty. Also, a newtype of a type T has the same representation at runtime as T."
05:01:46 <Gregor> Universal truism: Bad Lip Reading's version of a song is always better than the original.
05:01:48 <oerjan> wasn't that phantom type what someone ( CakeProphet? ) was asking about?
05:02:10 <elliott_> oerjan: yes
05:02:29 <oerjan> well it's an officially permitted use, anyhow
05:02:38 <elliott_> Gregor: they did more? :DDD
05:03:15 <elliott_> ok this Morning Dew song is awesome
05:04:13 <monqy> i never even know the originals
05:04:43 <elliott_> i could buy this as the original if not for the lyrics
05:05:34 <Gregor> The fact that they're nonsense, that is :P
05:05:38 <Gregor> Not the matching
05:05:41 <elliott_> yeah
05:06:02 <elliott_> they're good lyrics though, apart from being nonsense
05:06:22 <elliott_> ayo girl you should try them chicken fingers instead of that pizza
05:09:56 <elliott_> wait, that was /three songs together/?
05:10:01 <elliott_> :DDDDDDDDDDddddddd
05:10:47 <oerjan> "GHC's primitive types and operations. Use GHC.Exts from the base package instead of importing this module directly." ... and then Any is not mentioned in that one...
05:11:09 <Gregor> elliott_: They made it flow so brilliantly, I know :P
05:11:46 <elliott_> i assumed it was just a feat. feat. feat. original
05:11:51 <elliott_> oerjan: lol
05:12:04 <elliott_> oh
05:12:05 <elliott_> that works
05:12:05 <elliott_> yay
05:12:23 <oerjan> oh it does?
05:13:26 <elliott_> yes
05:13:44 <elliott_> oerjan: haddock doesn't always get it right. especially for "internal" modules that might be partly built-in
05:13:46 <elliott_> IME
05:15:17 <oerjan> oh GHC.Exts has a weird export list, it mentions module GHC.Prim but _also_ lists several of the functions from there
05:17:45 <elliott_> OK Russian Unicorn is amazing
05:21:42 <Gregor> elliott_: That one's probably my favorite right now.
05:22:11 <elliott_> "Yeah, uh, my favourite song now is called 'Russian Unicorn'". --Michael Buble, http://www.youtube.com/watch?v=yp37h0yY4j4&NR=1
05:22:15 <elliott_> I am not kidding :P
05:22:53 <elliott_> Then he starts singing it terribly... this is surreal X-D
05:23:33 <Gregor> LOLOLOL
05:23:42 <Gregor> How he sings "WE COULD SHOOT A RUSSIAN UNICORN"
05:23:44 <Gregor> It's so great.
05:23:46 <elliott_> I eagerly await his cover :P
05:24:01 <elliott_> Which will then be bad-lip-read into another song, ad infinitum
05:24:14 <Gregor> That would be ... pretty amazing.
05:27:40 -!- GreaseMonkey has joined.
05:33:14 <elliott_> "Now why in the world did you treat me / As if I didn't understand trigonometry and Tai Chi / Inverse cosine, see?" <-- I dearly hope these guys get a fat paycheck from the music industry
05:33:40 <Gregor> elliott_: Which is that from?
05:34:10 <elliott_> Gregor: Black Umbrella
05:34:22 <elliott_> I'm just watching all the ones I haven't seen, i.e. all but three :P
05:35:05 <elliott_> This is the funniest Snoop Dogg voice ever
05:36:16 <pikhq> Goodness, I think this makes American pop music justifiable.
05:36:52 <pikhq> Barely; it's got to make up for great crimes against music, after all.
05:37:03 <Sgeo> elliott_,
05:37:26 <elliott_> Sgeo: Seen
05:37:40 <elliott_> Reading now
05:42:20 <Gregor> Let's buy two big industrial windmills.
05:44:40 <Gregor> I wonder if Michael Bubl is the only original artist to make a response ...
05:48:45 <elliott_> Miley Cyrus' Official Response to Black Umbrella - YouTube
05:48:48 <elliott_> LIKELY
05:49:46 <quintopia> gregor: can you write an annoyingly catchy christmas tune?
05:49:55 <elliott_> `quote beautiful summer
05:49:57 <HackEgo> 549) <monqy> beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck
05:49:58 <elliott_> s/summer/christmas/
05:51:28 -!- zzo38 has joined.
05:51:58 <oerjan> best haiku, or best haiku
05:52:02 <pikhq> 綺麗夏・ファクファクファーク・ファークファク
05:52:05 <pikhq> Now in Japanese.
05:53:13 <quintopia> i want the music, no lyrics
05:53:20 <oerjan> "Factor factor far far clock clean clock summer-factor" ?
05:53:32 <elliott_> oerjan: good haiku
05:53:37 <elliott_> (wat?)
05:53:45 <pikhq> Google Translate fucked it up pretty badly.
05:53:53 <elliott_> :D
05:54:16 <elliott_> Factor factor far / far clock clean clock summer fac / tor
05:54:18 <pikhq> For, frankly, obvious reasons: as far as I know, "fuck" in the pejorative sense only exists as a somewhat obscure loan word.
05:54:58 <elliott_> oh, WTF
05:55:03 <elliott_> This new fingerprint model is slower
05:55:04 <elliott_> :-(
05:57:44 <Gregor> quintopia: ... why? :P
05:58:16 <elliott_> because it's christmas :D
05:58:25 <monqy> christmas in july in august
05:58:29 <quintopia> Gregor: for a game
05:58:49 <quintopia> i decided to christmas theme
05:59:16 <quintopia> i know you know how to arrange notes before and behinf each other
05:59:26 <quintopia> so i ask :P
06:00:37 <oerjan> i'm dreaming of rudolph the red-nosed reindeer roasting on a one horse open sleigh
06:00:46 <Gregor> If it's for a game, don't you just want a classic Christmas song, not something new?
06:01:20 <itidus20> you europeans probably relate to sleighs and reindeers a bit better
06:01:24 <quintopia> nah dog.
06:01:25 <itidus20> no snow where i live
06:01:31 <oerjan> yes, reindeer are tasty
06:01:47 <itidus20> just 100s of miles of grass
06:02:00 <Gregor> Here's the latest thing I wrote. It's pretty Christmassy (lol no): http://codu.org/tmp/wol8-2011-08-16.ogg
06:02:04 <Nisstyre> yes
06:02:20 <elliott_> Nisstyre: wat
06:02:35 <oerjan> Nisstyre may be a secret norwegian
06:02:40 <elliott_> oh dear
06:02:53 <quintopia> lol my phone is like WTF IS AN OGG????? derp...
06:03:05 <Gregor> I suppose I could MP3 it D-8
06:03:35 <quintopia> just pm me the link and ill click when im on a proper compy
06:03:42 <oerjan> otoh he may just be named after a game character
06:03:43 <quintopia> maybe
06:04:53 <elliott_> Gregor: .wav
06:04:57 <elliott_> .wav > .mp3
06:05:08 <elliott_> FOR ALL POSSIBLE USES
06:05:08 <Gregor> elliott_: Uhh, I could make an MP3 directly :P
06:05:13 <Gregor> Oh
06:05:16 <Gregor> I read -> instead of > :P
06:05:24 <Gregor> FLAC
06:05:28 <quintopia> i agree
06:05:30 <quintopia> flac
06:05:36 <elliott_> Your phone does FLAC but not Vorbis?
06:05:38 <Gregor> quintopia: Yeah, like your phone can FLAC.
06:05:41 <elliott_> :P
06:05:43 <quintopia> it cant
06:05:47 <Gregor> FLAC your phone.
06:05:50 <quintopia> but flac is definitely best
06:05:53 <itidus20> my pc can flac with winamp
06:05:56 <Gregor> FLAC you for lying and FLAC your phone for not supporting FLAC.
06:06:13 <quintopia> actually there may be a vlc clone in the market
06:06:15 * quintopia checks
06:06:20 <oerjan> merry christmas / flac flac flac flac flac flac flac / flac flac flac flac fluke
06:06:27 <Gregor> ... it's an Android ... that doesn't support OGG ... ???
06:06:49 <itidus20> I like to FLAC]
06:07:28 <itidus20> i download FLACs of songs which i want that extra clarity
06:07:57 <quintopia> okay i am downloading an app that plays all lossless formats including flac
06:08:16 <Gregor> That will not help you play the OGG :P
06:08:18 <pikhq> I download FLAC whenever possible, even though I know I probably won't hear the difference.
06:08:22 <PatashuWarg> more like ALAC
06:08:32 <quintopia> well maybe it does support ogg but the browser flipped out and like crashed or something when i clicked your link so wtf?
06:08:44 <Gregor> quintopia: Yeah, Android totes supports OGG :P
06:08:45 <pikhq> Converting to a different lossy format in the future is handy for portable devices with picky requirements, and hard drive space is cheap and plentiful.
06:08:51 <quintopia> WELL
06:09:00 <Gregor> pikhq: Tell that to my full hard disks >_<
06:09:01 <quintopia> TELL MY BROWSER THAT
06:09:35 <pikhq> I mean, ~/audio/ has 15 days of audio in it and is only 100G...
06:09:37 <quintopia> yep it just crashes on that link
06:10:08 <elliott_> pikhq: Fifteen days is not a large music collection
06:10:15 <pikhq> elliott_: Sadly.
06:10:18 <elliott_> Well, I guess it is
06:10:21 <elliott_> Five hundred albums or so
06:10:25 <elliott_> "But that's not much these days" :-P
06:10:37 <pikhq> Yeah, it's "only" a handful of discographies.
06:10:48 <elliott_> How many bands have a hundred albums
06:10:54 <quintopia> a guy on american pickers claimed he had 550,000 albums
06:10:55 <elliott_> You need five
06:10:57 <quintopia> on vinyl
06:11:00 <quintopia> in one room
06:11:07 <quintopia> he was probably pretty close
06:11:11 <elliott_> quintopia: It... could work
06:11:15 <elliott_> I mean, vinyl doesn't take much space to store
06:11:17 <itidus20> i only have 27gb of music
06:11:25 <quintopia> there was definitely no room to walk
06:11:37 <pikhq> Well, my incomplete Uematsu collection has 39 albums in it...
06:11:40 <itidus20> very boring choices too
06:11:45 <Gregor> $ du -hs ~/Music/all
06:11:46 <Gregor> 3.5G /home/gregor/Music/all
06:12:12 <pikhq> That's... Pathetic.
06:12:25 <itidus20> 3.5 = it's like you're not even trying
06:12:27 <quintopia> or as gregor prefers
06:12:30 <quintopia> pathetique
06:12:30 <Gregor> There are few things I hate more than idly listening to music.
06:12:39 <elliott_> It is impossible to listen to music while doing other things
06:12:43 <zzo38> I made up a reason why my D&D character left the book where it is when escaping from slavery, actually a few reasons.
06:12:48 <itidus20> yeah that 27gb doesn't get used actually
06:12:48 <pikhq> I've got more than that from Queen, I mean jeeze.
06:12:58 <elliott_> pikhq: Well, Gregor's in a better position than you then :-D
06:13:04 <itidus20> elliott_: this is true sort of
06:13:13 <pikhq> elliott_: ?
06:13:27 <elliott_> pikhq: It was a hee-LARIOUS comment on the average quality of Queen
06:13:55 -!- Kouta has joined.
06:13:55 -!- Kouta has changed nick to asiekierka.
06:13:56 <asiekierka> hi
06:13:58 <itidus20> my music choices are really bad..............
06:13:59 <monqy> hi
06:13:59 <quintopia> queen is okay, okay?
06:13:59 <pikhq> elliott_: -_-'
06:14:04 <asiekierka> so i found a bug in my interpreter
06:14:06 <asiekierka> fixed that
06:14:08 <asiekierka> (Default didn't work)
06:14:14 <asiekierka> now i can run a linear feedback shift register
06:14:25 <quintopia> hurray!
06:14:33 <elliott_> is your language interesting yet
06:14:34 <itidus20> i try to focus on discographies though
06:14:36 <quintopia> im gonna go code some
06:14:56 <monqy> is it a good language I haven't loooked much at it at all
06:15:11 <elliott_> *[http://www.complex-systems.com/pdf/19-3-5.pdf Paper describing BitBitJump], Complex Systems Journal 2011, Vol 19, N3, pp. 263-285
06:15:13 <elliott_> ummm, that's the Wolfram journal
06:15:18 <asiekierka> elliott_ not really
06:15:19 <elliott_> that ais is meant to be published in eventually
06:15:22 <asiekierka> it's the same as ever
06:15:28 <asiekierka> output of LFSR: 4936=:5;7?><8124936=:5;7?><8124936=:5;7?><8124936=:5;7?><8124936=:5;7?><8124936=:5;7?><812
06:15:32 <elliott_> oh my god what
06:15:34 <elliott_> "Oleg Mazonka"
06:15:46 <monqy> mazonka good name
06:15:49 <elliott_> monqy: that's User:Oleg
06:15:57 <elliott_> help i feel conflicting things about this :(
06:15:58 <monqy> hq9+b oleg
06:16:17 <asiekierka> mazonka would probably mean mywife in polish
06:16:22 <asiekierka> >:D
06:16:30 <elliott_> polish: boring langauge for bad people
06:16:41 <monqy> http://esolangs.org/wiki/HQ9_B "good language"
06:17:02 <asiekierka> elliott_ i hear dit's the hrdest language
06:17:10 <asiekierka> heard it's* hardest*
06:17:21 <elliott_> if by hard you mean bad and also for bad people then yet
06:17:22 <elliott_> yes
06:17:30 <asiekierka> why are you so flamey
06:17:31 <asiekierka> all the tame
06:17:31 <asiekierka> time*
06:17:38 <elliott_> lol
06:17:39 <monqy> elliott_ is avery angrey person
06:17:45 <elliott_> im bear
06:17:56 <elliott_> roar --a bear
06:18:11 <monqy> ok --monqy
06:18:18 <elliott_> asiekierka: http://64pixels.org/binodu2.zip this is a good implementation
06:18:29 <asiekierka> this is not a good implementation
06:18:32 <asiekierka> have you looked at Parser.java
06:18:34 <asiekierka> it's a complete hack
06:18:39 <monqy> 404 - Not Found
06:18:39 <elliott_> lol
06:18:42 <elliott_> are you going to click tha tlink
06:18:44 <elliott_> [2] “Subleq.” (Nov 24, 2010) http://esolangs.org/wiki/Subleq.
06:18:46 <asiekierka> elliott_ oh.
06:18:46 <asiekierka> huh.
06:18:49 <asiekierka> my server admin is an idiot
06:18:51 <elliott_> wow guys we're in a published journal(((((
06:18:52 <elliott_> oops
06:18:56 <elliott_> those were meant to be explaanamaotion wmarks
06:19:03 <asiekierka> and i can't interfere because he pays for it
06:19:54 <asiekierka> ok elliott_
06:19:56 <asiekierka> link fixed
06:19:58 <asiekierka> i hope
06:19:59 <asiekierka> brb checking
06:20:02 <elliott_> help
06:20:07 <monqy> it works...but is it good....
06:20:07 <elliott_> whats a link
06:20:08 <elliott_> help
06:20:08 <asiekierka> yep
06:20:09 <elliott_> help
06:20:11 <elliott_> help
06:20:12 <asiekierka> herp
06:20:12 <asiekierka> derp
06:20:14 <monqy> i fear the quality may have
06:20:14 <elliott_> hel
06:20:15 <asiekierka> http://64pixels.org/binodu2.zip
06:20:15 <monqy> droped
06:20:16 <elliott_> p
06:20:19 <asiekierka> monqy i think so too
06:20:21 <elliott_> help
06:20:28 <elliott_> :(
06:20:33 <asiekierka> * elliott_ has quit (Excess Flood)
06:20:33 <elliott_> (help)
06:20:40 <elliott_> excess flood
06:20:41 <elliott_> help
06:20:50 <oerjan> i sense elliott_ may be in need of some assistance.
06:20:55 <elliott_> oerjan: help :(
06:20:55 <monqy> [debug] activates Debug Mode 1 (sane enough for most people) or, if repeated, Debug Mode 2 (why would anyone use it is beyond me).
06:21:07 <monqy> asiekierka: help
06:21:09 <elliott_> help
06:21:11 <asiekierka> help
06:21:13 <oerjan> the details are a little hard to discern, though.
06:21:13 <elliott_> help
06:21:17 <asiekierka> help i'm being trolled by HELP
06:21:19 <elliott_> help
06:21:20 <asiekierka> helop
06:21:25 <monqy> helop
06:21:25 <elliott_> oerjan: help
06:21:33 <asiekierka> elliott_: help
06:21:37 <elliott_> help
06:21:39 <elliott_> monqy: help
06:21:41 <monqy> i will take your adivce and
06:21:42 <monqy> look at
06:21:45 <monqy> parsere>JAVA
06:21:46 <elliott_> monqy: help
06:21:51 <monqy> elliott_: help help
06:21:54 <elliott_> help
06:22:00 <asiekierka> creeper: ssssSSSSSSsssssss
06:22:01 <asiekierka> *BOOM*
06:22:05 <elliott_> no
06:22:12 <monqy> not at all
06:22:16 <asiekierka> nope
06:22:41 <monqy> so how does this
06:22:43 <monqy> java thing
06:22:44 <monqy> work
06:23:02 <asiekierka> java -jar Binodu.jar <filename of Binodu script>
06:23:05 <asiekierka> for example
06:23:12 <asiekierka> java -jar Binodu.jar elliott_s_awesome_app.txt
06:23:23 <monqy> elliott_ made an awseme apP.txt?????
06:23:24 <elliott_> help
06:23:24 <elliott_> slander
06:23:25 <elliott_> help
06:23:26 <elliott_> libel
06:23:26 <elliott_> help
06:23:27 <elliott_> help
06:23:32 <asiekierka> hellp
06:23:34 <elliott_> help
06:23:41 <asiekierka> GreaseMonkey: help us help you help us all
06:23:48 <elliott_> nO DONT PING THE MONster,
06:23:48 <itidus20> so since this month is all about help burning up download gb's help
06:23:55 <itidus20> sorry
06:23:57 <GreaseMonkey> 'lo uhh
06:24:00 <monqy> help
06:24:01 <elliott_> help
06:24:05 <GreaseMonkey> wait shit you actually implemented it?
06:24:08 <elliott_> help
06:24:16 <asiekierka> yes
06:24:31 -!- ChanServ has set channel mode: +q *!*@95.149.229.26.
06:24:31 <monqy> i am going to now look at a file that isn't parser.java
06:24:35 <monqy> which do you recomende
06:24:41 <asiekierka> hmm
06:24:44 <asiekierka> Interpreter.java
06:25:28 -!- ChanServ has set channel mode: -q *!*@95.149.229.26.
06:25:40 <monqy> welcome back
06:25:44 <elliott_> help
06:25:47 <elliott_> welcome help
06:25:51 <asiekierka> herp
06:25:53 <asiekierka> herpu
06:25:56 <monqy> with what do you rquire essistence
06:26:04 <elliott_> i need help with helping
06:26:07 <elliott_> to help monqy
06:26:08 <elliott_> help
06:26:10 <monqy> help
06:26:39 <monqy> it's been so long since i've done anything in java
06:27:59 <monqy> is it bad that i don't like java
06:28:13 <itidus20> have you seen the comedy videos made about java?
06:28:21 <monqy> are they good
06:28:25 <oklopol> let f be the id map and let g be (\x y . x x y). then [[[g f] x] y] = [[g x] y] = [[x ]]
06:28:27 <itidus20> :-)
06:28:27 <oklopol> fuck
06:29:00 <asiekierka> monqy java is horrible
06:29:01 <elliott_> oklopol: what
06:29:05 <oerjan> clearly oklopol has deciphered evincar's semantics
06:29:07 <asiekierka> but i didnt feel like learning python yet
06:29:08 <asiekierka> or haskell
06:29:17 <itidus20> monqy: heres one: http://www.youtube.com/watch?v=gLDFQ_IhnDc
06:29:19 <elliott_> oklopol: no you said (\
06:29:23 <elliott_> oklopol: he DIDNT DEFINE A MAPPING TO LAMBDA NOTATIN
06:29:35 <monqy> oh actually i have seen that
06:29:35 <monqy> somehow
06:29:56 <oklopol> let f be the id map and let g be (\x y . x (x y)). then [[[g f] x] y] = ((g x) y) = (x (x y)), since [g f] is composition, but [[[g f] x] y] = (x y) since [g f] is application
06:30:09 <oklopol> if no one really gave an example
06:30:25 <itidus20> monqy: theres a new one too
06:30:30 <oklopol> now let y = 0 and let x be the successor function, say
06:31:06 <elliott_> oklopol: you cant use lambda notation you have to use his notation
06:31:06 -!- jix has quit (Read error: Connection reset by peer).
06:31:37 <oklopol> i can ask which of these two cases happens and go from there though
06:31:41 <elliott_> oklopol: compose = {f, g => [f g]} apparently
06:31:48 <elliott_> yes but I mean your "let g be" is not ok
06:31:58 <oerjan> it will ironically turn out that his notation is entirely consistent, but there is no way to express (\x y . x (x y)) in it
06:32:15 <oklopol> possible
06:32:38 <oklopol> but really i think he just hasn't thought about this much
06:33:28 <elliott_> oklopol: g = {x, y => [x [x y]]} you're welcome
06:33:42 <oklopol> yeah but now the q is
06:33:52 <oklopol> does the inconsistency in that remove the inconsistency of my example?
06:33:58 <elliott_> almost certainly :)
06:34:04 <elliott_> because [f x] isn't (f x) because it's like
06:34:11 <elliott_> if f and x are functions and also if arity and ....
06:34:37 <oklopol> oerjan will probably ban all of us soon enough
06:34:46 <oerjan> my guess is [[g f] x] is [f [f x]] for a start
06:35:31 <elliott_> oklopol: i mean you saw that fold example
06:35:33 <oklopol> yeah that's the second one
06:35:37 <elliott_> higher order functions can just break if your arities are out of wack
06:35:47 <elliott_> because lol this language is completely terrible and bad in every way
06:35:56 <oklopol> elliott_: i didn't see a concrete example, your f 0 + f 9 breaks because of types
06:36:10 <elliott_> his language is obviously dynamically typed, but:
06:36:18 <elliott_> oklopol: http://codu.org/logs/log/_esoteric/2011-08-16#003321oerjan onwards
06:36:18 <oklopol> then again i sorta skipped over everything
06:36:30 <elliott_> 00:51:12: <evincar> oerjan: With an empty list, it ought to return 0 regardless.
06:36:30 <elliott_> 00:51:23: <evincar> With a non-empty list, it depends on how well foldr is written.
06:36:30 <elliott_> 00:51:32: <evincar> You might get a list of unary functions.
06:36:30 <elliott_> 00:51:50: <oerjan> oh well.
06:36:58 <oerjan> i _suspect_ lambdas are opaque until they have got all arguments
06:37:58 <oerjan> at which point they are tentatively evaluated, and if something is missing arguments, a closure is made for the whole thing accepting those missing arguments
06:38:11 <oerjan> or something similar to that
06:39:13 <oklopol> no counterexample there
06:40:52 <oklopol> anyway i don't know what his objects are and what [] actually does, i just got the impression no one gave him a simple example of two functions whose composition is not equal to the partial application of one to the other, which later generations would definitely blame us for.
06:41:41 <itidus20> monqy: this one is new and actually pretty awesome http://www.youtube.com/watch?v=5U1_KW6ww7Y
06:42:51 -!- pikhq_ has joined.
06:43:43 -!- pikhq has quit (Ping timeout: 252 seconds).
06:47:17 <evincar> oerjan: That's roughly how it works.
06:48:49 <oklopol> so you get 2 in my example?
06:52:08 -!- Taneb has joined.
06:52:23 <Taneb> Morning!]
06:52:41 <evincar> oklopol: So in your example, g = (\x y . x (x y)), which translates to { x, y => x [x y] }.
06:53:19 <evincar> oklopol: [[[g f] x] y] == g f x y == f [f x] y
06:53:45 -!- augur has quit (Ping timeout: 250 seconds).
06:54:36 <evincar> == [f x] y == x y
06:55:51 <elliott_> oh ive seen this java one
06:55:53 <elliott_> it's funny
06:55:56 <evincar> However, [[[f g] x] y] == [[g x] y] == x [x y].
06:56:17 <evincar> In other words, [f g] and [g f] aren't (necessarily) equal.
07:00:31 <oklopol> "<evincar> In other words, [f g] and [g f] aren't (necessarily) equal." <<< eh? well anyway, how would you say "compose g and f, then apply the result to x, and the result of that to y"?
07:01:09 <oklopol> is that not [[[g f] x] y] as well?
07:02:35 <oklopol> erm
07:02:41 <oklopol> no i mean
07:02:47 <oklopol> that's what you did just now
07:02:50 <oklopol> but how do you express
07:03:01 <oklopol> apply g to f, apply the result to x, and apply the result of that to y
07:03:16 <oklopol> no wait fuck
07:03:33 <oklopol> i'm being a fucking retard here, let me start over :D
07:03:37 <evincar> No problem.
07:03:39 <oklopol> what you did was
07:04:14 <oklopol> apply apply apply
07:04:34 <Taneb> y(x(f g))?
07:04:53 <oklopol> so the correct question indeed is "how would you say "compose g and f, then apply the result to x, and the result of that to y"?"
07:05:24 <oklopol> the result of that should be x [x y]
07:06:06 <oklopol> "[[[f g] x] y] == [[g x] y] == x [x y]" is a coincidence, you're doing them in the wrong order
07:06:31 <oklopol> (that's what confused me, that was a confusing thing to do)
07:06:47 <evincar> The result of [g f] where g = { x, y => x [x y] }; f = { x => x } is { y => f [f y] }
07:07:00 <evincar> Why is that confusing? If f is the identity function, [f g] is the same as [g].
07:07:12 <elliott_> no, it's the same as g.
07:07:15 <oklopol> so how do you compose g and f?
07:07:29 <evincar> elliott_: Same thing.
07:07:36 <evincar> g == [g].
07:07:39 <elliott_> evincar: what if g takes no arguments
07:07:49 <elliott_> or do you not have that
07:07:53 <elliott_> and then i guess all values are pure?
07:07:56 <oklopol> evincar: it's confusing because [f g] had nothing to do with anything, "<evincar> However, [[[f g] x] y] == [[g x] y] == x [x y]." could just as well have been "<evincar> However, in soviet russia, [f g] = [g f]"
07:07:58 <elliott_> nice, where's your io monad
07:08:00 <evincar> Unfortunately you have to explicitly pass no arguments.
07:08:04 <elliott_> hahaha
07:08:21 <asiekierka> Taneb
07:08:25 <asiekierka> i fixed a bug in the interpreter
07:08:26 <asiekierka> now Default works
07:08:29 <asiekierka> the LFSR works, too!
07:08:44 <oklopol> evincar: so how do you express "compose g and f, then apply the result to x, and the result of that to y", or is that impossible?
07:09:16 <oklopol> where "compose g and f" means produce a function that first applies f, then g
07:10:10 <monqy> this reminds me of a time where this guy made up a pretend language that was in his fantasy world and then roleplayed as someone from his fantasy world who used the language and then tried to talk to me about the language
07:10:29 <elliott_> `addquote <monqy> this reminds me of a time where this guy made up a pretend language that was in his fantasy world and then roleplayed as someone from his fantasy world who used the language and then tried to talk to me about the language
07:10:30 <evincar> That happens quite often here.
07:10:33 <HackEgo> 597) <monqy> this reminds me of a time where this guy made up a pretend language that was in his fantasy world and then roleplayed as someone from his fantasy world who used the language and then tried to talk to me about the language
07:10:33 <oklopol> that should produce x [x y], which [[[f g] x] y] also produces by accident, since i chose the simplest f i could think
07:10:36 <oklopol> *of
07:11:11 <oklopol> okay now i get it
07:11:20 <oklopol> what was funny about monqy's
07:11:35 <oklopol> too subtle
07:11:37 <monqy> naturally, he didn't know a lick of programming language design, the whole thing was an inconsistent mess, etc. etc.
07:11:41 -!- Pianoo has joined.
07:11:50 <elliott_> monqy: oh wait i thought you meant natural language
07:12:03 <oklopol> evincar: could you please answer or tell my you won't, i should get to work
07:12:04 <monqy> I think he made one of those up too???
07:12:11 <oklopol> yeah way less funny if it was a pl
07:12:11 -!- augur has joined.
07:12:11 <elliott_> no but like
07:12:18 <elliott_> mi name isa obasio
07:12:19 <PatashuWarg> do we have any dual linguists and programming linguists in the audience?
07:12:21 <evincar> oklopol: I will, just a moment.
07:12:22 <elliott_> oajsd oiawje comprehendo monqy oasijd?
07:12:25 <elliott_> PatashuWarg: yes.
07:12:30 <Pianoo> Yup
07:12:35 <monqy> elliott_: oh yeah he did that a lot
07:12:46 <monqy> elliott_: thanks for digging up those precious memories
07:13:01 <oklopol> you should get better friends
07:13:13 <monqy> he's not my friend (anymore)
07:13:17 <pikhq_> 私 為 一 思 that 是 stupid.
07:14:02 <elliott_> does anyone know if you can base an mmap off another mmap...
07:14:03 <elliott_> like
07:14:05 <elliott_> I want to mmap a file
07:14:10 <elliott_> then make a copy of that mmap and modify that
07:14:10 <elliott_> then make a copy of that mmap and modify that
07:16:04 -!- Pianoo has quit (Remote host closed the connection).
07:16:07 -!- Phantom_Hoover has joined.
07:16:54 <oklopol> it's raining and raining and i want to go out, please be a fast :(
07:17:01 <evincar> oklopol: If f=\x.(x x), g=\xy.x(x y), shouldn't (g f) be \y.f(f y)?
07:17:17 <Taneb> Is the combinator combo xxI equivalent to x?
07:17:19 <evincar> Because that's what my language has.
07:17:30 <oklopol> if () is application, then yes
07:17:36 <oklopol> if it's composition, then no
07:17:49 <zzo38> I suppose in Forth you could do some kind of composition, too: : COMPOSE 2 0 NONAME-CONST-DOES> >R EXECUTE R> EXECUTE ; although then you have to deal with memory management yourself (assume there is a word NONAME-CONST-DOES> although it is not standard in any system I know of)
07:17:50 <elliott_> whats the difference
07:17:59 -!- oerjan has quit (Quit: leaving).
07:18:07 <oklopol> so i'm asking you how to express composition
07:18:11 <monqy> so we return to the question "this looks like application why are you calling it composition do you even know what function compision is?"
07:18:18 <elliott_> Taneb: i don't think so
07:18:23 <monqy> I think I've asked for composition examples as well
07:18:27 <monqy> fruitless
07:18:33 <oklopol> monqy: but now we have proof
07:18:59 <evincar> And the composition of that f and that g would be what? What's expected?
07:19:18 <elliott_> well apparently [f g] is \x -> f g x if g needs one argument and f is a function that evincar thinks should work like that.
07:19:55 <oklopol> evincar: it's the lambda \x y -> (f x) ((f x) y) obviously
07:20:30 <oklopol> which is not equivalent to \y . f (f y) in all cases
07:20:58 <monqy> what I got out of evincar's thing about arity is that he's reinventing currying (but shoddily), not that there's a bunch of special behaviour, but then again, I missed a whole lot, probably including the really insane parts
07:21:22 <fizzie> elliott_: I do not believe that a generic copy-on-write mapping of just random pages in your process is a thing you can do, at least with the mmap call.
07:21:24 <monqy> the whole thing about "fixing" arguments or whatever it was
07:21:36 <monqy> I still don't get the (f + g) example though
07:21:40 <itidus20> it's like you're always stuck in second gear.
07:21:41 <monqy> that stuff was weird
07:21:44 <oklopol> i assume he doesn't know what function composition is, calls application composition, and has forks and partial application.
07:21:55 <monqy> itidus20: who me what's that
07:21:55 <oklopol> that would make all this consistent afaict
07:21:57 <itidus20> when it hasn't been your day, your week, your month.. or even your year
07:22:02 <elliott_> fizzie: Well, I'm up for any call.
07:22:08 <oklopol> anyway off to work, correct me if i'm wrong ->
07:22:10 <itidus20> but.. i'll be there for you
07:23:28 -!- NihilistDandy has joined.
07:23:29 <pikhq_> I know of no way to COW pages from userspace.
07:23:39 <elliott_> srsly? :(
07:23:42 <pikhq_> This seems like a major deficiency.
07:23:57 <pikhq_> Quite honestly, the kernel should expose that and hook it to memcpy.
07:24:04 <pikhq_> Well, libc should hook it to memcpy.
07:24:14 <elliott_> because like
07:24:20 <elliott_> I'm trying to write an efficient BytePusher VM in Haskell
07:24:26 <elliott_> and I want it to be pretty
07:24:28 <elliott_> = pure updates
07:24:49 <elliott_> I want to start by carving out a huge area from a file, zero-padding it (this requires copying the file in to a zero mmap, right? no way to do it with mmap? sigh)
07:24:59 <pikhq_> It seems like such a *simple* thing to stick in a system call, too.
07:25:04 <elliott_> And then I want to do updates by COW + write + done
07:25:15 <elliott_> And let the GC take care of the minimal overhead of unmapping the old page right after
07:26:02 <pikhq_> Presumably this would be trivial in @.
07:26:10 <elliott_> obvs
07:26:26 <elliott_> hmm
07:26:29 <elliott_> can you turn a block of memory into an fd
07:26:32 <elliott_> because that would let you dot hsi :)
07:26:35 <elliott_> what if
07:26:37 <elliott_> WHAT IF
07:26:40 <elliott_> I opened /proc/self/mem or something like that
07:26:46 <elliott_> and mmaped from the right offset
07:26:51 <elliott_> WHAT IF THAT...
07:27:01 <evincar> Oh, alright. Now we get to the interesting bits. [g [f ?]] (using a placeholder argument) does the composition.
07:27:04 <evincar> I was wrong to conflate them.
07:27:05 <pikhq_> elliott_: ... Oh jesus.
07:27:17 <elliott_> evincar: APPLAUSE
07:27:20 <PatashuWarg> mmap yo mmap
07:27:21 <elliott_> monqy: appplause time
07:27:22 <zzo38> You could write it in Haskell if you want, now there will be one in Haskell. What graphics library would you use? (I, however, do not want to write *all* programs in Haskell; there is C and various programming language for different purposes)
07:27:26 <monqy> elliott_: not so fast, elliott_
07:27:39 <elliott_> zzo38: Probably SDL
07:27:46 <elliott_> I don't think everything should be written in Haskell, that's reserved for @lang
07:27:50 <zzo38> Does SDL work with Haskell?
07:27:55 <elliott_> Yes, there's an excellent binding
07:28:03 <elliott_> ...but I do like writing programs nobody thinks would be fast/elegant in Haskell to prove them wrong :-)
07:28:26 <pikhq_> Fast *and* elegant, or fast *or* elegant?
07:28:51 <elliott_> former
07:28:57 <monqy> evincar: and how does that ? work? If you consider there being an invisible function in your example, where does it start/end, and how does it know what to do with the placeholder?
07:29:23 <monqy> evincar: for an example, consider as well, simply, [f ?], or perhaps [h [g [f ?]]]
07:29:33 <zzo38> I wrote a program in Haskell but I might have done a bad job because I am not very good at Haskell, so I don't know.
07:30:08 <PatashuWarg> Dum de dum, cleaning out space on my hard drive so I can install VS2010
07:30:12 <PatashuWarg> (how does it all get filled up I swear)
07:30:20 <pikhq_> Why do you torture yourself?
07:30:33 <evincar> monqy: It's implemented by binding each ? to the argument replaced by the expression containing the ?.
07:30:34 <monqy> vs2010 what why
07:30:41 <monqy> evincar: yes I know
07:30:45 <PatashuWarg> Need to do it for class so nyah
07:30:57 <pikhq_> PatashuWarg: The question remains.
07:31:19 <PatashuWarg> It literally has to be in the form of a VS2010 project or I can't submit any lab/assignment work
07:31:25 <PatashuWarg> My fate is sealed
07:32:05 <monqy> evincar: if you consider it as sugar for putting an actual function in there, when desugaring, where do you put the actual function?
07:32:15 <zzo38> Most of my programs I still like to use CWEB for writing it, although a kind of macro preprocessor for LLVM would also be good way to write it.
07:32:30 <pikhq_> PatashuWarg: Have you considered the many preferable alternatives, such as becoming a hobo?
07:32:33 <NihilistDandy> Are we still talking about this?
07:32:47 <evincar> monqy: I'm not sure I know what you mean. The "?" is actually part of the source, just so we're clear.
07:33:00 <monqy> evincar: I know; typing example
07:33:02 <asiekierka> found yet another parser bug
07:33:03 <asiekierka> fixing
07:33:13 <monqy> evincar: you want \x.g(fx) but how do you get that instead of g(\x.fx)
07:34:07 <monqy> evincar: (in [g [f ?]])
07:35:00 <monqy> evincar: most usually in languages with this sort of mechanism there's some sort of explicit thing to handle this problem
07:35:17 <monqy> evincar: or it's limited
07:35:24 <monqy> evincar: (or both)
07:35:33 <monqy> elliott_: help
07:35:48 <elliott_> monqy: friends dot com
07:35:49 <asiekierka> there we go
07:35:51 <asiekierka> monqy: help
07:35:54 <zzo38> Can it be made, a "Rules" monad, doing some of the things this is trying to do? --> https://devlabs.linuxassist.net/projects/texnicard/wiki/Dangelo_Programming_Language
07:36:28 <elliott_> It's easier to do low-level arithmetic optimizations if Int is an abstract type rather than an isomorphic ADT (I do not understand this exactly but it is what someone told me, so I put it in here)
07:36:30 <monqy> elliott_: friends dot com was unhelpful
07:36:32 <elliott_> zzo38: this makes no real sense at all
07:36:34 <cheater_> "dangelo" sounds like a name for a dessert.
07:36:44 <cheater_> monqy, try askjeeves.com
07:36:58 <elliott_> other than... if you do "data Int = IntZero | IntOne | IntTwo | ..." then it'll be awkward and slow... duh
07:37:13 <monqy> http://www.ask.com/web?q=help&search=&qsrc=0&o=10181&l=dir help
07:37:27 <cheater_> man
07:37:34 <cheater_> i remember when askjeeves would give you actual answers
07:37:38 <cheater_> that was pretty cool
07:37:50 <zzo38> elliott_: I know "data Int = IntZero | IntOne | IntTwo | ..." is awkward and slow but I just typed what someone told me to type, since they do not have an account there so I typed it for them
07:39:01 <asiekierka> working on 99 bottles of beer
07:39:10 <monqy> ok
07:39:23 <cheater_> http://www.stdfriends.com/ < ???
07:39:24 <zzo38> cheater: Maybe it does, but it is named after Stephen D'Angelo but I wanted to remove the apostrophe so that it is different name, so I did do so.
07:39:57 <evincar> monqy: g takes two arguments, so \x.g(fx) is the same as [g [f ?]], because (fx) is substituted as the first argument of g.
07:40:17 <evincar> monqy: I feel like that isn't the best example.
07:40:22 <NihilistDandy> A woman I was seeing told me she was a Taurus, but I think she was really more of an ellipsoid.
07:40:24 <monqy> evincar: what
07:41:03 <monqy> evincar: what if g doesn't take two arguments, because I hope you know it doesn't have to
07:41:27 <monqy> evincar: also I don't see how your thing works
07:42:16 <monqy> evincar: "f takes one argument, so g(\x.fx) is the same as [g [f ?]], because (x) is substituted as the argument of f"
07:42:43 <asiekierka> wow
07:42:44 <asiekierka> Exception in thread "main" java.lang.NullPointerException
07:43:24 <elliott_> wow a null pinter exception in java WOWS
07:43:44 <NihilistDandy> I never believed it possible
07:43:47 <asiekierka> ok it's not a bug in my code
07:43:51 <NihilistDandy> Just like when the impossible happens in GHC
07:44:01 <asiekierka> right! i've got the app to print digits 99-00 done
07:44:12 <NihilistDandy> App...
07:44:14 <NihilistDandy> Yes.
07:44:31 <fizzie> Do you get a null pinter exception when you've finished your beer?
07:46:39 <PatashuWarg> Object oriented bottles of beer on the wall
07:47:04 <PatashuWarg> One bottle of beer... Take one down and pass it around, OutOfRangeException
07:48:10 <asiekierka> 8-bit bottles
07:48:16 <asiekierka> Zero bottles of beer on the wall, zero bottles of beer
07:48:21 <asiekierka> Oh sorry, I think I have used unsigned
07:48:21 <fizzie> 99 bottles of beer on the wall. Take one down, ... java.awt.datatransfer.UnsupportedFlavorException
07:48:25 <asiekierka> 255 bottles of beer on the wall
07:48:56 <PatashuWarg> 1+i bottles of beer on the wall... Take i down and pass it around, 1 bottle of beer on the wall
07:49:48 <Taneb> IMAGINARY BEER
07:50:40 <evincar> monqy: So you're asking whether [f ?] refers to (f x) or \x.(f x)?
07:50:50 <monqy> evincar: no
07:50:54 <monqy> help
07:51:01 <evincar> :(
07:51:49 <monqy> evincar: I'm actually indirectly telling you that you're doing it wrong by asking how you reached (bad conclusion)
07:51:55 <PatashuWarg> I found a song for evincar, it's called I'm a evincar http://www.youtube.com/watch?v=GKiMOFkV2kM
07:52:09 <monqy> my ears
07:52:13 <PatashuWarg> oh yeah
07:52:14 <PatashuWarg> speaker alert
07:52:25 <NihilistDandy> PatashuWarg: Thanks
07:52:27 <NihilistDandy> :|
07:52:30 <NihilistDandy> Emmm. Why are you uploading music, which already here?
07:52:30 <NihilistDandy> Well, whatever. I already got this song and another 62 albums =)
07:52:30 <NihilistDandy> GordonFrohman74 1 year ago
07:52:38 <monqy> :(
07:52:40 <NihilistDandy> 62 whole albums
07:52:46 <PatashuWarg> renard makes a ton of music
07:52:57 <PatashuWarg> the only thing he has more of than songs is aliases
07:53:06 <NihilistDandy> Also, holy shit, I thought I was going to die with that volume
07:53:10 <NihilistDandy> What do you call this genre?
07:53:14 <PatashuWarg> Speedcore
07:54:14 <monqy> evincar: as before, I'm asking why you got \x.g(fx), rather than g(\x.fx), from [g [f ?]], which is a specific case of trying to do (thing I do not know how to describe in the general case help)
07:54:25 -!- augur has quit (Ping timeout: 250 seconds).
07:54:39 <NihilistDandy> Minor speaker warning, major obscure warning: http://www.youtube.com/watch?v=Lb8ZFYSg1Tw&feature=related
07:54:58 <NihilistDandy> Also, the opposite of speedcore
07:55:05 <monqy> slowcore
07:55:26 <NihilistDandy> Also, definite urinating horse warning
07:55:27 <elliott_> Einstürzende Neubauten are... quite a thing
07:55:36 <PatashuWarg> beep beep I'm a urinating horse
07:56:01 <evincar> monqy: All [f ?] does is say "for argument x, rather than substitute f, substitute [f x]".
07:56:07 <evincar> is that bad help
07:56:08 <NihilistDandy> elliott_: Favorite band of the last 8 years, which gives them a run only rivalled by the Beatles
07:56:15 <elliott_> evincar: [f [g ?] ?]
07:56:16 <elliott_> is this
07:56:19 <elliott_> \x -> f (g x) x
07:56:19 <elliott_> or
07:56:23 <elliott_> \x -> f (\y -> g y) x
07:56:39 <elliott_> if the latter, then ?s can only be referenced at one level of application
07:56:48 <monqy> evincar: so it's really g(\x.fx)?
07:56:48 <elliott_> if the former, then _no_ implicit lambda can contain another
07:56:53 <elliott_> which leads to horrible refactoring problems
07:57:02 <elliott_> if you nest an application in another its meaning can change massively
07:57:09 <NihilistDandy> http://www.youtube.com/watch?v=sW80JfXLZGs&feature=related
07:58:35 <NihilistDandy> http://www.youtube.com/watch?v=Bg9kAuiBLp4&feature=related
07:58:36 <evincar> I don't know. It's a bit late for me to figure this out.
07:58:55 <NihilistDandy> http://www.youtube.com/watch?v=Dcd7mJRvrng&feature=related
07:58:59 <elliott_> NihilistDandy: quality album art on the second one there
07:59:08 <evincar> Not to mention that I didn't say this language was isomorphic to lambda calculus.
07:59:18 <evincar> Yet we've had to semi-consistently treat it like it is.
07:59:20 <elliott_> If you can't translate simple lambda calculus notation to your language then lol.
07:59:23 <NihilistDandy> elliott_: Smile for the proto-man
07:59:30 <elliott_> NihilistDandy: No, the one after that
07:59:36 <NihilistDandy> http://www.youtube.com/watch?v=rNhvcgVihLE&feature=related
07:59:39 <monqy> evincar: the ambiguity remains, regardless
07:59:44 <NihilistDandy> What, the horse?
08:00:04 <NihilistDandy> http://www.youtube.com/watch?v=w2iIi3d9ZQY&feature=related
08:00:11 <NihilistDandy> http://www.youtube.com/watch?v=LGif7fHaOGw&feature=related
08:00:20 <NihilistDandy> #esoteric is now a noise music channel
08:00:43 <elliott_> Hardly counts as noise
08:00:45 <evincar> I'm just going to cop out and say "depends on arity" and "have come up with syntax to resolve ambiguities &c. don't worry yourself".
08:00:57 <NihilistDandy> elliott_: Throbbing Gristle more your style?
08:01:10 <elliott_> NihilistDandy: If I can distinguish it from Merzbow, it's not noise
08:01:17 <evincar> And now off to sleep.
08:01:20 <NihilistDandy> elliott_: Well, that's fair
08:01:33 <elliott_> I roughly define "noise music" as "the point at which my eclectic taste runs out of patience and goes to listen to something melodic" :-P
08:02:16 <NihilistDandy> Most of Neubauten is not this melodic. I'm just trying to soften up the channel's mainstream defenses~
08:02:21 <evincar> elliott_: What do you think of John Cage?
08:02:47 <evincar> I shouldn't be getting into this.
08:02:57 <elliott_> I wouldn't put 4'33" in ~/Music, if that's what you're asking
08:03:08 <NihilistDandy> Wolf Eyes is good, as well
08:03:38 <NihilistDandy> Speaking of Merzbow, do you have Multiplication?
08:03:57 <elliott_> Me?
08:04:15 <NihilistDandy> Yes. It's a neat album
08:04:53 <evincar> I'm not fond. His work is only meaningful in that it rejects meaning in the context of work that doesn't.
08:05:17 <NihilistDandy> You are a philistine. This has already been established.
08:05:39 <evincar> Probably.
08:05:51 <elliott_> what
08:05:58 <elliott_> that's even more pretentious than everything else you say
08:06:03 <evincar> Not really.
08:06:06 <elliott_> yes
08:06:11 <evincar> It's sorta calling him out on his pretentious bullshit.
08:06:17 <evincar> So it has to be.
08:06:41 <evincar> To me, John Cage can be summed up as "MEANING? LOLNOPE"
08:07:12 <elliott_> i literally just slapped myself on the forehead three times hard enough to hurt so that I could express how painful this is for me
08:07:19 <evincar> Pianos asplode, several minutes of silence, many radios &c.
08:07:27 <NihilistDandy> Pretension requires pretense.~
08:08:10 <evincar> It's all that deliberately provocative, deliberately meaningless crap that's supposed to have meaning by virtue of its uselessness.
08:08:24 <elliott_> That sounds like an awful lot of reading into things.
08:08:27 <NihilistDandy> Meaning is an illusion
08:08:32 <evincar> Meaning is context.
08:08:36 <elliott_> Shut the fuck up.
08:08:37 <elliott_> Maybe John Cage just wanted to fuck about with pianos without the constraints of regular music.
08:08:40 <NihilistDandy> Context is a fallacy.
08:08:42 <elliott_> Maybe some people enjoy that.
08:09:21 <evincar> I don't care if he enjoys it. He can enjoy it all bloody afternoon. But it's not composition. It's deliberately not composition.
08:09:33 <evincar> And the fact that he's recognised for "deliberately not composing" is mildly absurd.
08:09:35 <monqy> its application
08:09:47 <evincar> monqy: I see what you did there.
08:09:47 <monqy> sorry #esoteric
08:10:00 <evincar> You win three internets.
08:10:21 <NihilistDandy> evincar: In that sense, you and Cage are of one sort.
08:10:41 <evincar> NihilistDandy: Yes, but probably not in the way you're about to tell me.
08:10:56 <elliott_> evincar: He's recognised because he did interesting things and people were like "hey maybe we can do things withou t these constraints"
08:11:07 <elliott_> Or do you just not like experimentation full stop and don't see how it's a notable character trait at all
08:11:09 <elliott_> In which case lol
08:11:13 <evincar> I didn't say it wasn't interesting.
08:11:19 <evincar> I love experimentation.
08:11:22 <NihilistDandy> evincar: I wasn't going to tell you anything. The joke was already there.
08:12:19 <NihilistDandy> elliott_: Man, FUCK HASKELL. ALGOL was good enough for my forebears, it's fucking good enough for me!
08:12:54 <Phantom_Hoover> elliott_, but when people go on endlessly about whether 4'33" is music or not?
08:12:54 <lambdabot> Phantom_Hoover: You have 5 new messages. '/msg lambdabot @messages' to read them.
08:12:58 <Phantom_Hoover> That's unbearable.
08:13:25 <elliott_> Phantom_Hoover: Sounds like what evincar's doing to me.
08:13:37 <elliott_> Basically evincar is complaining "he's notable for 'not-composing' which I think is silly", which is stupid.
08:13:40 <monqy> to all of us
08:13:52 <elliott_> He's notable for doing interesting things, and if you whine about that W / E
08:14:29 <evincar> elliott_: But you must admit (and my point is) that his work wouldn't be interesting if there weren't structure for him to reject.
08:14:35 <evincar> That is the point.
08:14:39 <elliott_> So?
08:14:55 <evincar> So his work is defined in terms of everything but itself.
08:15:07 <elliott_> Who gives a shit
08:15:09 <evincar> It's inherently and necessarily devoid of any meaningful content.
08:15:14 <elliott_> That's an arbitrary classification you're imposing on it
08:15:16 <elliott_> I bake a cake
08:15:18 <elliott_> It's not musical
08:15:22 <elliott_> It's not related to giraffes in the slightest
08:15:26 <elliott_> Is it defined by everything but itself
08:15:36 <elliott_> Would it not be interesting if there weren't any cooking rules for me to reject by not cooking
08:15:38 <elliott_> Bullshit
08:15:40 <elliott_> It's a fucking cake
08:15:42 <elliott_> Eat it and shut up
08:15:43 <evincar> Do you expect credit for the things that it isn't?
08:15:48 <evincar> No.
08:15:53 <elliott_> Well, at least shut up
08:15:56 <evincar> You expect it to be a cake and that's it.
08:16:00 <elliott_> Maybe you do
08:16:06 <elliott_> Isn't that Cage's point
08:16:07 <evincar> So you shut the fuck up and eat your cake because you're an excellent baker goddammit.
08:16:10 <elliott_> I'm not really interested in this at all
08:16:17 <elliott_> I have a goblin siege to break
08:16:19 <NihilistDandy> evincar: I expect 4'33" to be 4'33" of silence, and it is
08:16:38 <monqy> I expected that as well
08:17:21 <evincar> Good. Then at least you're appreciating Cage's work for what it is, which is directly counter to his goals.
08:17:33 <NihilistDandy> Meaning is a farce. Things are (or, more likely, aren't).
08:17:38 <NihilistDandy> His goals don't matter
08:17:49 <NihilistDandy> He's dead
08:18:15 <NihilistDandy> They didn't really matter while he was alive, either
08:18:39 <elliott_> You know Cage's goals?/
08:18:40 <elliott_> ??
08:18:41 <elliott_> Wowza
08:18:55 <elliott_> My mental image of Cage is a lot less pretentious than the shit you're projecting on to him
08:18:55 <evincar> His stated goals, at least.
08:19:05 <evincar> He was a nice guy anyway.
08:19:14 <evincar> At least I'd have loved to sit down and chat with him.
08:20:33 <evincar> He was, after all, a student of Zen, which is where he got many of his ideas about rejecting form.
08:20:48 <NihilistDandy> Blah blah Zen, blah blah form.
08:20:52 <evincar> I just think he went to the wrong extreme.
08:22:08 <evincar> In any case, I'm not winning any fans. Time for sleep.
08:22:14 -!- evincar has quit (Quit: Fwomp.).
08:24:47 <NihilistDandy> He's not really dead, anyway. This is just his longest composition. It's called 9998424'21.258"
08:25:03 <NihilistDandy> Or at least it was a few minutes ago
08:34:03 -!- pikhq has joined.
08:34:23 -!- pikhq_ has quit (Ping timeout: 260 seconds).
08:47:52 -!- augur has joined.
08:57:20 <zzo38> When playing D&D, I nearly always end up thinking ahead five or ten sessions.
08:58:00 <zzo38> s/nearly always/usually/
08:58:25 <Taneb> Sounds like you'd be good at chess
08:58:31 <Deewiant> Did I win: 990G /archive/music
08:58:52 <elliott_> Deewiant: Only if it's lossy
08:59:17 <zzo38> I do play chess sometimes. I am not as good at it as at D&D or pokemon card though
08:59:18 <Deewiant> Some of it is, some of it isn't
09:00:03 <zzo38> I try to ask the other players to think ahead but they will not think ahead even one session
09:00:29 <Taneb> I've...
09:00:35 <Taneb> Never actually played DnD
09:00:55 <Taneb> Along with Amnesia: the Dark Descent, it's the closest I've got to playing a game without actually playing
09:01:04 <zzo38> The DM tries to think ahead but gets it wrong at least half the time, and sometimes I tell him about some things and he didn't realized it
09:01:32 <zzo38> However I also sometimes get it wrong, but it is necessary to adapt what the situation is.
09:03:23 <zzo38> If your character is a Wizard then you have to prepare spells and it requires to think ahead; but most of the stuff I think ahead about has nothing to do with preparing spells.
09:04:38 <zzo38> In the current situation of the game, the thing I think ahead just one session is that we are given the guest uniforms of the navy and our old clothing has been destroyed by the navy.
09:05:24 <Taneb> So, you're being press-ganged into the navy?
09:05:54 <zzo38> No. The old clothing has been destroyed because it is just rags used during slavery, and we are escaped from slavery
09:06:02 <Taneb> Oooh
09:06:13 <Taneb> I'm going to have breakfast now.
09:06:36 <zzo38> A full transcript is available in case you want to read it: http://zzo38computer.cjb.net/dnd/recording/level20.tex
09:07:23 <zzo38> (Printing level 6 = most detailed, each level includes everything of levels before it)
09:09:39 <Deewiant> $ find /archive/music -type f -regextype posix-egrep -not -iregex '.*\.(flac|tta|ape|wv)($|\..*)' -exec du -bc {} + | awk '/total$/{s+=$1}END{print s/1024^3}'
09:09:42 <Deewiant> 159.364
09:09:44 <Deewiant> elliott_: Better?
09:10:43 <elliott_> Deewiant: Yep, now you don't win :-)
09:10:52 <Deewiant> Who's winning
09:11:24 <elliott_> Deewiant: DUnno
09:11:29 <elliott_> Someone who isn't you
09:11:35 <Deewiant> How do you know
09:11:43 <zzo38> "Well, you see, I had shown that the structural layout of any proof of Fermat's Last Theorem--if one existed--could be described by an elegant formula, which, it so happened, depended on the values of a solution to a certain equation. When I found this second equation, to my surprise it turned out to be the Fermat equation."
09:11:54 <elliott_> Deewiant: Because
09:12:08 -!- Taneb has quit (Ping timeout: 260 seconds).
09:12:24 <Phantom_Hoover> zzo38, you mean a load of values (a,b,c,2)?
09:13:16 <zzo38> Phantom_Hoover: No, I mean where n>2 (in other words, the proof requires a counterexample). I don't know if this is true but it is in some book
09:13:22 <Deewiant> elliott_: I'm not convinced
09:13:24 <zzo38> And I don't know if there any other theorems like that
09:13:30 <elliott_> Deewiant: I am
09:13:47 <cheater_> define "structural layout"
09:14:20 <Deewiant> elliott_: That doesn't help in convincing me but I guess you don't care
09:14:36 <zzo38> I don't know. This was part of one of the paragraphs spoken by the Tortoise in a dialog.
09:14:45 <elliott_> Deewiant: Good conversation, this
09:15:04 <Deewiant> elliott_: I think I disagree with that too
09:16:02 <cheater_> evincar: the reason of existance of hipsters is to provoke you to talk about how much you hate them
09:16:12 <cheater_> in this way, you have been posthumously trolled.
09:17:41 -!- Taneb has joined.
09:17:45 <zzo38> With positive integers $a$, $b$, $c$, and $n$, the equation $a^n+b^n=c^n$ has infinite solutions when $n=2$ but no solutions with $n>2$. The equation $n^a+n^b=n^c$ has the same property but with an easier proof.
09:21:10 <zzo38> Can you see this is the case?
09:21:28 <Taneb> Oh @Number10Cat
09:21:38 <zzo38> I think I can prove the second one easily, although I don't know much about the formal proof of it
09:22:15 <Taneb> The first one is Fermat's Last Theorem
09:22:57 <itidus20> what happens if n < 2?
09:23:44 <itidus20> oh since its a positive integer
09:23:54 <zzo38> If $n=1$ then the first one has infinite solutions but the second one has none.
09:24:58 <zzo38> The second one has been called "Johant Sebastiant's Well-Tested Conjecture" in Hofstadter's book.
09:25:21 <itidus20> it seems like playing with pythagorus theorum
09:25:26 <zzo38> Can you see why this is these are the case?
09:25:27 <itidus20> heheh
09:26:13 <itidus20> i guess that pythagorus was lucky in that he was around at a time when math not so big as it is now
09:26:35 <itidus20> so he gets to be associated with a^2+b^2=c^2 forever
09:26:40 <Taneb> He also... hated beans?
09:26:53 <Taneb> Or loved beans so he didn't eat them
09:27:05 <Taneb> Point is, he believed people re-incarnated as beans
09:27:08 <zzo38> As far as I know, he didn't eat beans.
09:27:40 <elliott_> itidus20: pythagoras.
09:28:14 <zzo38> But I don't know for sure because I did not live at that time.
09:28:30 <itidus20> its not like my native language borrows heavily from greek... how should i know these spellings
09:29:00 <Taneb> ...
09:29:07 <Taneb> Education?
09:29:18 <Taneb> And which language are we talking about
09:29:22 <itidus20> english :P
09:29:32 <Taneb> So, where did the word philosopher come from?
09:29:35 <itidus20> yup :-P
09:29:39 <Taneb> Where did all the ologies?
09:29:46 <Taneb> And logic?
09:29:46 <itidus20> it was a dark sarcasm
09:29:57 <Taneb> Oh, I hate those.
09:30:02 <Taneb> Sorry, carry on
09:30:27 <itidus20> it was as if to say.. i should have known how to spell it since my native language borrows so heavily from greek :-s
09:30:36 -!- jix has joined.
09:31:24 <itidus20> hmm gorus... that sounds roman
09:31:46 <itidus20> ahh what have i done to you pythagoras
09:32:00 <itidus20> i have defiled your name with the romans
09:32:07 <Taneb> You gave him a dozen crates full of hippos
09:32:59 <itidus20> noooooo
09:34:12 <itidus20> for the record... you did very good at pointing out some specific places where english borrows greek
09:34:35 <itidus20> i didn't have any specifics in mind
09:34:58 <Taneb> Pediatrician
09:35:03 <Taneb> Xylophone
09:35:14 <Taneb> :)
09:35:56 <itidus20> hah
09:35:59 <zzo38> Taneb: Have you seen my implementation of Constantinople and is it suitable to you?
09:36:19 <Taneb> I have not seen it
09:36:24 <Taneb> But I saw that it exists
09:36:28 <Taneb> Hence my msg smiley
09:36:30 <itidus20> I am making an esolang named Istanbul
09:36:37 <zzo38> Msg smiley?
09:36:43 <Taneb> In lambdabot
09:36:52 <Taneb> I msged you "Thanks :)"
09:36:57 <Taneb> I think
09:36:59 <zzo38> Please write me messages in the wiki instead.
09:37:02 <Taneb> I meant to, anyway
09:37:21 <Taneb> I also downloaded it twice
09:37:23 <zzo38> And also please be more specific.
09:38:52 <zzo38> Taneb: OK. Have you looked at it? Have you read it? Can you try it? Do you have Haskell in your computer? What do you think is the computational class of Constantinople, and why?
09:39:34 <Taneb> No, no, ish, sort of, turing complete, isomorphism with Boolfuck
09:39:54 <zzo38> My implementation is in public domain so you are free to modify it or whatever else you want to do with it
09:40:41 <elliott_> Taneb: s/isomorphism/reduction/
09:40:45 <elliott_> Unless you mean isomorphism
09:41:04 <zzo38> I am quit now, so anything else you have to say about that implementation you should write in the Talk:Constantinople
09:41:07 -!- zzo38 has quit (Quit: zzo38).
09:41:14 <Taneb> Translation, I'll go for
09:41:54 <monqy> does anyone ever bother actually writing isomorphisms
09:42:51 <Taneb> Only for BF derivatives
09:43:41 <monqy> would be more useful for sub-tc languages, or for demonstrating that a real spooky language isn't super-tc, I guess
09:48:59 <fizzie> elliott_: Incidentally, you *can* madvise(addr, len, MADV_MERGEABLE) all your (hopefully page-aligned) separate copies, and the kernel (since 2.6.32, when KSM is enabled) will merge identical pages. But that's admittedly a *far* more clumsy solution than actually starting from a COW duplicate.
09:51:27 <elliott_> fizzie: How do I cope it first, though
09:51:29 <elliott_> copy
09:53:16 -!- Monster has joined.
09:53:44 <fizzie> By copying; that's the problem. The only thing you save is memory, not time.
09:56:19 <elliott_> Right.
09:56:27 <elliott_> Well, it's sixteen megs, so copying it every cycle is... how do I put it...
09:56:32 <elliott_> Less than ideal?
09:56:53 <fizzie> You may have to just do copy-on-write in userland without the help of hardwear.
09:56:57 <elliott_> Out of perverse curiosity, _would_ looking at /proc/self/mem and mmapping a private copy of the mapping DTRT?
09:56:57 <fizzie> Linus having them manners in a thread about FreeBSD's COW-based zero-copy socket thing: http://sprunge.us/dCUj
09:57:11 <fizzie> I somehow doubt it.
09:57:19 <elliott_> Hmm, why not?
09:59:39 <fizzie> Because the /proc files aren't really real files. I'm not saying it wouldn't work, I just wouldn't count on it working. (mmaping needs to be supported by the file system of the backing file in question, or it returns ENODEV.)
10:00:04 <fizzie> Of course it *could* DTRT if they've thought of that.
10:00:39 <elliott_> Ah.
10:01:19 <elliott_> >>> mmap.mmap(open('/proc/self/mem').fileno(), 99)
10:01:19 <elliott_> Traceback (most recent call last):
10:01:19 <elliott_> File "<stdin>", line 1, in <module>
10:01:20 <elliott_> mmap.error: [Errno 9] Bad file descriptor
10:01:20 <elliott_> fizzie: Welp.
10:01:25 <elliott_> (I wonder if it'd work on /dev/mem...)
10:01:35 <fizzie> "See proc_mem_operations in /usr/src/linux/fs/proc/base.c: /proc/.../mem does not support mmap." -- http://stackoverflow.com/questions/5216326/mmap-on-proc-pid-mem
10:01:45 <elliott_> I wonder how hard that would be to add :)
10:06:15 <Phantom_Hoover> DTRT?
10:07:53 -!- cheater_ has quit (Ping timeout: 250 seconds).
10:08:42 <fizzie> Anyway, if you don't need to modify the "old" copy at the same time, you can do a "userspace" COW by mprotect'ing the old stuff to PROT_READ only, having sort-of "manual page tables" (that's just one level of indirection) that point to the old stuff, and then catching the segfault on write and in the handler mprotect the page back to read-write (so you can restart the write without disassembling the code in question to get the new pointer in place), and also ma
10:08:42 <fizzie> king a new read-only copy and updating the "old copy's" tables to point to that one.
10:09:11 <elliott_> fizzie: Each copy is only mutated at construction-time, so that could work.
10:09:27 <elliott_> fizzie: (Basically, modelling a pure update as "copy, mutate".)
10:10:49 <fizzie> Or use a ramdisk and LVM copy-on-write snapshots on it. :p
10:11:08 <fizzie> (Disclaimer: might not work, is bizarre/braindead in any case.)
10:11:13 <elliott_> Yeeeeeeees.
10:16:40 <elliott_> ?hoogle a -> (a -> m a) -> m a
10:16:41 <lambdabot> Data.Generics.Aliases extMp :: (MonadPlus m, Typeable a, Typeable b) => (a -> m a) -> (b -> m b) -> a -> m a
10:16:41 <lambdabot> Data.Generics.Aliases extM :: (Monad m, Typeable a, Typeable b) => (a -> m a) -> (b -> m b) -> a -> m a
10:16:41 <lambdabot> Data.Data gfoldl :: Data a => (c (d -> b) -> d -> c b) -> (g -> c g) -> a -> c a
10:19:50 <Deewiant> ?ty flip id
10:19:52 <lambdabot> forall a b. a -> (a -> b) -> b
10:20:37 <elliott_> Deewiant: Yes yes.
10:21:01 <Deewiant> Yes.
10:21:06 <elliott_> (No.)
10:21:10 <elliott_> (I wanted foreverWithAnArumgent,)
10:22:52 <monqy> foreverWithAnArgument?
10:26:15 <Deewiant> elliott_: flip (runReaderT . forever . ReaderT)
10:30:46 -!- cheater has joined.
10:33:46 -!- GreaseMonkey has quit (Quit: The Other Game).
10:34:05 -!- monqy has quit (Quit: hello).
10:35:04 -!- cheater has quit (Client Quit).
10:35:13 -!- cheater has joined.
10:37:56 -!- Taneb has quit (Quit: He's a big quitter he is.).
10:42:03 -!- Taneb has joined.
10:48:37 -!- pikhq_ has joined.
10:48:39 -!- pikhq has quit (Ping timeout: 252 seconds).
10:48:40 <elliott_> fizzie: FillRect is the thing to set individual pixels of an SDL surface, right?
10:51:40 <fizzie> I suppose for most purposes you will need SDL_LockSurface + manual mangling of surface->pixels, but that means you need to understand surface->format.
10:51:57 <fizzie> Especially if it's a hardware surface, because FillRect will probably end up locking it for each individual call.
10:52:50 <elliott_> fizzie: Weeeell, hSDL offers no such access.
10:52:53 <elliott_> (Sigh.)
10:54:23 <fizzie> Mhm. Well, for setting an individual pixel SDL_FillRect does the job. Calling it in a tight loop will just probably do some amount of extra work.
10:55:56 <elliott_> Yeah, starting to think that SDL just doesn't expose enough for this to be efficient here.
10:55:58 <elliott_> hSDL, that is.
10:56:16 <elliott_> I guess I could use OpenGL.
11:19:48 -!- Vorpal has joined.
11:21:07 -!- MSleep has quit (Ping timeout: 250 seconds).
11:43:31 -!- boily has joined.
11:47:07 <asiekierka> i feel so ronery: http://esolangs.org/wiki/Binodu#99_bottles_of_beer
12:06:07 <elliott_> fizzie: Out of cuminosity, what order are SDL's pixels stored in?
12:06:12 <elliott_> Column or row?
12:07:35 <fizzie> Rows, where each row is separated by surface->pitch bytes, which might or might not be the same value as surface->w * surface->h * surface->format->BytesPerPixel.
12:07:50 -!- MDude has joined.
12:07:54 <fizzie> Uh, I mean surface->w * surface->format->BytesPerPixel, of course.
12:08:13 <fizzie> Technically speaking the first sentence is also true, but only because it's a tautology.
12:08:24 <elliott_> Hnng, right. (I'm implementing BytePusher because why not.)
12:08:32 <elliott_> "A value of ZZ means: pixel(XX, YY) is at address ZZYYXX."
12:08:36 <elliott_> Quite an ackward format.
12:08:43 <elliott_> I can either blit it manually every frame, or redirect writes there.
12:08:45 <elliott_> I suspect blitting it will be faster.
12:09:48 <fizzie> It's very hardwaristic thing, to be able to position the page wherever.
12:10:43 <elliott_> BytePusher is not the most elegant thing, I would say.
12:14:17 -!- Monster has quit (Read error: Connection reset by peer).
12:14:48 <fizzie> It might be possible to set up a SDL_Surface structure that describes the BytePusher video memory format, and then just call SDL_BlitSurface once per frame to show it on screen.
12:15:21 <elliott_> Hmm, is that BytePusher format row- or column-?
12:15:37 <elliott_> Hmm, doesn't actually look like http://sdl.beuc.net/sdl.wiki/SDL_PixelFormat has anything for that, though
12:15:51 <elliott_> The mask might be useful, or something; the BytePusher colours are the "web-safe" palette.
12:16:00 <fizzie> SDL does 8-bit palettized things, they're just done a bit differently.
12:16:04 <elliott_> The 216 colors are organized into a 6*6*6 color cube (a.k.a the "websafe" palette). Each of the red, green and blue components can have an intensity value from 0 to 5. The formula to calculate a pixel's color value is: Red*36 + Green*6 + Blue. If the actual display device has 8-bit (00h-FFh) color components, we have to multiply each intensity value by 33h when blitting to the screen:
12:16:04 <elliott_> 0 1 2 3 4 5
12:16:06 <elliott_> 00 33 66 99 CC FF
12:16:13 <elliott_> It's a... thing.
12:16:22 <fizzie> Yes, but that's just a palette.
12:16:25 <elliott_> Well, yes.
12:16:41 <elliott_> Hmm, so you can actually have an SDL_Surface indexed into a random pointer?
12:16:43 <elliott_> That would be nice.
12:16:57 <elliott_> Although I'd have to relocate it at the end of every cycle, since you can move video memory around.
12:17:02 <fizzie> SDL_CreateRGBSurfaceFrom(<pointer to your current display memory page>, 256, 256, 8, 256, 0, 0, 0, 0) will make you an 8-bit surface with an empty palette.
12:17:13 <fizzie> And it's probably quite a lightweight operation.
12:17:18 <elliott_> Heh. I wonder how efficient that is to do every sixtieth second.
12:17:40 <fizzie> You can probably just repoint the 'pixels' member, even though it might not be exactly kosher.
12:18:21 <elliott_> But it has to have the right majorness, yeah?
12:19:00 <fizzie> Well, it does. If pixel(XX,YY) is at ZZYYXX, that's "rows separated by a pitch of 256 bytes".
12:19:05 <elliott_> Oh, right.
12:19:56 <elliott_> I do wonder if SDL_Blitting this to the screen won't do anything other than the obvious loop.
12:22:21 <fizzie> My guess is it's going to do the obvious loop, since it has to map to the screen pixel format via the palette anyway; nobody has 8-bits-wide palettized screen surfaces any more.
12:23:14 <fizzie> Though I suppose that *could* be hardware-accelerated by an unusually clever SDL video driver somehow, purely in theory.
12:25:17 <elliott_> fizzie: So basically, it would be simpler to just do the loop myself :P
12:25:28 <elliott_> fizzie: I mean, SDL is retro enough that it's obviously going to do the loop.
12:26:36 <fizzie> I don't know; it has so many video drivers for all kinds of screwed-up hardware, it might be that one of those is actually going to optomize the blit for you.
12:26:43 <elliott_> static __inline__ void SDL_memcpyMMX(Uint8 *to, const Uint8 *from, int len)
12:26:43 <elliott_> {
12:26:43 <elliott_> int i;
12:26:43 <elliott_> for(i=0; i<len/8; i++) {
12:26:43 <elliott_> __asm__ __volatile__ (
12:26:44 <elliott_> "movq (%0), %%mm0\n"
12:26:46 <elliott_> "movq %%mm0, (%1)\n"
12:26:48 <elliott_> Oh, my.
12:26:56 <elliott_> SSE, too.
12:27:10 <fizzie> Doesn't trust your platform's memcpy, I see.
12:27:21 <elliott_> memcpy can't skip things, can it?
12:27:25 <elliott_> Oh, wait, that's literally just memcpy.
12:29:35 <fizzie> It does have quite a lot of code for blitting.
12:32:21 <fizzie> Heh, there's a define to use Duff's device.
12:36:07 <fizzie> I'd go with SDL's blit if it seems easily doable. Theoretically speaking SDL_CreateRGBSurfaceFrom should not cost much, and even if it does, the "repoint ->pixels, because the calling code owns the memory anyway" thing sounds... safe-ish.
12:37:20 <fizzie> Not that it probably matters all that much, it's just 256x256 pixels. (If you're going to be using fancy scalers, though, then you'll need to do that manually in any case.)
12:39:46 -!- Taneb has quit (Ping timeout: 252 seconds).
12:40:06 <elliott_> fizzie: Well, fancy scalers = probably times-two zoom.
12:46:24 <fizzie> For a piece of real hardware, BytePusher's screen is particularly anemic. No sprites, no hardware scroll, no programmable palette, no mid-frame interrupts to do shenanigans, just in general no help from the hardware at all.
12:47:09 <elliott_> Weeell, sprites and scrolling fall under "ugly" for me.
12:47:19 <elliott_> Programmable palette and mid-frame interrupts are nice.
12:49:40 <fizzie> They're features your regular video game console developer would expect, I think. (Well, or would have expected in the 1980/1990s, anyway. Today I suppose they expect high-level languages, programmable GPUs and whatnot.)
12:51:55 -!- Taneb has joined.
12:51:59 <Taneb> Hello!
12:52:08 -!- cheater has quit (Ping timeout: 250 seconds).
12:52:40 -!- cheater has joined.
12:52:43 <elliott_> fizzie: Well, yes, but the average game developer would expect a few more instructions than MOVJMP, too.
12:52:57 <elliott_> (Though not many. :p)
12:55:20 <elliott_> fizzie: It would be nice to see something like BytePusher with a less stupid input and display system.
12:55:31 <elliott_> And perhaps a nicer OISC; RSSB, perhaps?
12:55:40 <elliott_> Although RSSB involves arithmetic, which is meh.
12:55:44 <elliott_> But the one operand thing is nice.
13:00:24 -!- derrik has joined.
13:17:33 -!- enawder` has joined.
13:18:08 -!- enawder has joined.
13:18:33 -!- enawder has quit (Client Quit).
13:20:48 -!- Taneb has quit (Read error: Operation timed out).
13:30:48 -!- enawder` has quit (Remote host closed the connection).
13:39:24 <elliott_> uint32_t delay = first_tick + (ticks*50)/3 - SDL_GetTicks();
13:39:30 <elliott_> Turns out that multiplication overflows Quite Quickly.
13:39:40 <elliott_> Why can't sixty FPS be a nice round number
13:54:01 -!- copumpkin has joined.
14:02:29 -!- boily has quit (Ping timeout: 264 seconds).
14:09:14 <elliott_> I should probably build a more sane loop system
14:10:00 -!- Taneb has joined.
14:17:55 -!- boily has joined.
14:19:02 -!- CakeProphet has joined.
14:19:02 -!- CakeProphet has quit (Changing host).
14:19:02 -!- CakeProphet has joined.
14:24:05 -!- Nisstyre has quit (Ping timeout: 264 seconds).
14:27:56 -!- CakeProphet has quit (Ping timeout: 252 seconds).
14:29:52 -!- CakeProphet has joined.
14:29:52 -!- CakeProphet has quit (Changing host).
14:29:52 -!- CakeProphet has joined.
14:42:52 <MDude> Accurding to Wolfram Alpha, a jiffy per smidgen is equal to 18.03 hours per cubic meter.
14:43:28 <MDude> *according
14:45:47 <oklopol> murder is wrong
14:50:30 -!- copumpkin has quit (Remote host closed the connection).
14:50:33 -!- yxynaxen has joined.
14:50:58 -!- copumpkin has joined.
14:51:06 -!- yxynaxen has left.
14:58:53 -!- CakeProphet has quit (Ping timeout: 240 seconds).
15:00:42 -!- PatashuWarg has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
15:01:03 -!- CakeProphet has joined.
15:01:03 -!- CakeProphet has quit (Changing host).
15:01:03 -!- CakeProphet has joined.
15:06:37 -!- CakeProphet has quit (Ping timeout: 276 seconds).
15:07:12 -!- BeholdMyGlory has joined.
15:16:36 -!- CakeProphet has joined.
15:16:36 -!- CakeProphet has quit (Changing host).
15:16:36 -!- CakeProphet has joined.
15:22:48 <CakeProphet> so apparently webkit-sharp has an executeScript method, which allows me to access the DOM via javascript
15:22:55 <CakeProphet> but when I try to use getElementById... I always get null.
15:23:17 <CakeProphet> WOW THANKS FOR BEING A USELESS WEBKIT BINDING
15:29:32 -!- CakeProphet has quit (Ping timeout: 252 seconds).
15:31:29 -!- CakeProphet has joined.
15:31:29 -!- CakeProphet has quit (Changing host).
15:31:29 -!- CakeProphet has joined.
15:33:01 <cheater> hmmmm.
15:38:14 -!- CakeProphet has quit (Ping timeout: 240 seconds).
15:45:39 -!- Nisstyre has joined.
15:45:58 -!- CakeProphet has joined.
15:46:28 <CakeProphet> I am so happy with the world right now.
15:47:30 <Gregor> Hey guys I've got a great ideal for a novel slash existential crisis!
15:48:02 <CakeProphet> fungot: the quest
15:48:03 <fungot> CakeProphet: so i think i'll relocate to infodesk.) you should use scheme instead of say clisp? that's a timer :)
15:51:14 <CakeProphet> http://pastebin.com/1A80SYEL
15:51:19 <CakeProphet> this code looks completely reasonable right?
15:52:09 <Phantom_Hoover> <Gregor> Hey guys I've got a great ideal for a novel slash existential crisis!
15:52:09 <CakeProphet> the only reason document.getElementById would return null for pretty much everything is that the Webkit library is a piece of shit... right?
15:52:09 <CakeProphet> RIGHT?
15:52:13 <Phantom_Hoover> DEMAND DETAILS
15:52:26 <Gregor> It's told from the perspective of an astronaut who's been tasked with exploring the galaxy for signs of intelligent life, at relativistic speeds. For him, ~20 years will pass while I spirals from the inside of the galaxy out, 'til he reaches Earth again. But from Earth's perspective, thousands of years will have passed. He finds nothing, and when he gets within receiving range of Earth, he receives directed transmissions (since his ship was designed to travel a
15:52:26 <Gregor> t relativistic speeds, he is of course fully equipped to interpret extremely-high-frequency transmissions). They're from enthusiastic anthropologists and space-fans, speaking in broken English (it's been dead for a thousand years, after all), telling him about what has happened. But as he gets closer (and of course hundreds of years are still passing), they get more and more distressing, with extremely violent, prolonged rivalries broiling. As he gets closer, M
15:52:27 <Gregor> ADD is invoked on Earth and all life is destroyed; humans have colonies on Mars and Venus (hence how he knows this), but they're not self-sufficient. He keeps approaching, but can only watch in desperation as the last human beings (excluding himself) die in isolated environments. When he arrives, he finds himself as the last surviving human, and to his knowledge, the last intelligent life in the galaxy.
15:53:15 <Phantom_Hoover> Gregor, so you mean it's an even more depressing version of Tau Zero?
15:53:53 <Gregor> I s'pose :P
15:54:03 <Gregor> All y'all people makin' my ideas derivative
15:54:31 <Phantom_Hoover> What's MADD?
15:54:42 <Phantom_Hoover> Mutually Assured Dalmation Destruction?
15:54:54 <Taneb> Mutual Assured Deadly Death
15:54:57 <Taneb> brb
15:55:44 <Gregor> It's a typo of MAD :P
15:56:24 -!- CakeProphet has quit (Ping timeout: 240 seconds).
15:56:48 -!- CakeProphet has joined.
15:56:48 -!- CakeProphet has quit (Changing host).
15:56:48 -!- CakeProphet has joined.
15:56:55 <cheater> u madd?
15:59:10 <cheater> Gregor, i've read a similar book
15:59:18 -!- Taneb has quit (Ping timeout: 246 seconds).
15:59:23 <Gregor> Was it ... Tau Zero? :P
15:59:23 <cheater> it was a bout a sentient robot that was built by humans
15:59:31 <cheater> the humans then made animals talk
15:59:34 <cheater> and then they made more robots too
15:59:47 <MDude> Was it Sonic?
15:59:48 <cheater> and then they had somehow created sentient ants
15:59:51 <Gregor> MDude: X-D
15:59:57 <cheater> no sonic isn't a robot
15:59:58 <cheater> anyways
16:00:03 <cheater> the robot is immortal
16:00:07 <cheater> the humans die out
16:00:12 <Gregor> cheater: Well that's how Robotnik made 'im.
16:00:14 <Gregor> That jerk.
16:00:15 <cheater> then all the animals die out
16:00:33 <cheater> then the ants build a huge superstructure that covers all of earth
16:00:43 <cheater> and include other robots in their escapade and lift off in a spaceship
16:00:49 <cheater> and finally he's alone and left behind
16:01:00 <cheater> and sort of starts reminiscing.
16:01:04 <elliott_> Is there a "simpler" way to do min(x-y, 0), time-wise?
16:01:08 <elliott_> For an unsigned int.
16:01:35 <Gregor> elliott_: if (x > y) x - y else 0 could be faster if 0 is common.
16:01:55 <Gregor> In the x > y case, it's still a comparison and a subtraction *shrugs*
16:02:04 <Gregor> Not that subtractions are expensive :P
16:02:14 <elliott_> Gregor: Also, I'd read that novel :P
16:02:14 <Gregor> Erm, min, so y > x, not x > y, but yeah.
16:02:19 <cheater> z = x-y; if z<0 0
16:03:15 <cheater> of course, in c you could do some bit-banging but that's not really nice.
16:03:57 <cheater> c is the lower-case esoteric language version of C, where all identifiers and all data is lowercase
16:04:33 -!- CakeProphet has quit (Ping timeout: 246 seconds).
16:04:41 <elliott_> fizzie: One very curious thing about BytePusher is the very large number of cycles per frame..
16:04:47 <elliott_> I guess it's 'cuz BBJ sucks at doing anything
16:05:35 -!- Taneb has joined.
16:06:36 <Gregor> cheater: I was assuming that was the canonical implementation.
16:06:40 <fizzie> 4 MHz, it's not *that* much. (Though it has a quite unrealistic "one instruction/cycle" architecture.)
16:06:42 <Gregor> <elliott_> Gregor: Also, I'd read that novel :P // it's too bad I can't write it 8-D
16:07:21 <elliott_> fizzie: Well, it's BBJ; cycles are pretty consistent.
16:07:37 <elliott_> Gregor: You've probably written about a tenth of it... I can't imagine it making a compelling full novel
16:07:52 <Gregor> Fair point, more like a novella.
16:07:56 <Gregor> Or short story.
16:07:59 <Gregor> Or very short story :P
16:08:05 <elliott_> Or IRC-line story
16:08:09 <Gregor> :'(
16:08:10 <elliott_> Now rewrite it as six words and you've won
16:08:19 <Gregor> For sale: Baby shoes, never worn.
16:08:49 <elliott_> Gregor: Back relativistically-- wow! Wait-- fuck, bye.
16:08:51 <elliott_> NAILED IT.
16:11:04 -!- CakeProphet has joined.
16:11:04 -!- CakeProphet has quit (Changing host).
16:11:04 -!- CakeProphet has joined.
16:11:11 <fizzie> Well, okay, with a total of one instruction it's perhaps more reasonable to have all one instructions take equally long.
16:11:36 <elliott_> fizzie: Although, admittedly, the move has to affect the reading of the jump location.
16:11:47 <elliott_> So two cycles seems more reasonable, from the little I understand of CPU architecture.
16:11:52 <elliott_> But "cycle" is pretty arbitrary.
16:16:13 -!- CakeProphet has quit (Ping timeout: 260 seconds).
16:17:53 <elliott_> `addquote <Taneb> I think it's fizzie against everyone atm <Taneb> AND EVERYONE IS WINNING <Taneb> EXCEPT FIZZIE
16:17:56 <HackEgo> 598) <Taneb> I think it's fizzie against everyone atm <Taneb> AND EVERYONE IS WINNING <Taneb> EXCEPT FIZZIE
16:18:04 <elliott_> Hmm, _is_ there a way to get mmap to zero-pad a file?
16:18:14 <elliott_> Like, it's two bytes long, but I want the rest of the sixteen megs I want zeroed out.
16:18:16 <elliott_> I guess not.
16:19:30 <Gregor> Oh by the way, I used the ftw(3) function the other day.
16:21:09 <Gregor> Hmm, so what OISC instruction is LEAST like subleq?
16:21:32 <elliott_> Gregor: I don't like OISCs with arithmetic primitives :(
16:21:33 <elliott_> It's so ugly.
16:21:34 <Phantom_Hoover> addgt
16:21:47 <Gregor> Phantom_Hoover: Adding is insufficient IIRC
16:22:14 <Phantom_Hoover> Gregor, addgt with negative numbers.
16:22:33 <Gregor> Phantom_Hoover: Negative numbers where? In the initial memory?
16:22:41 <Gregor> That's ... so exactly like subleq :P
16:22:51 <Phantom_Hoover> EVERYWHERE
16:22:51 <Gregor> (Yes yes yes, you were just reversing the constituent parts, har har)
16:22:59 <elliott_> Memory initialised to -infinity
16:23:18 <Gregor> lol
16:24:41 -!- Taneb has quit (Ping timeout: 264 seconds).
16:25:36 <elliott_> fizzie: I have doubts that SLD_CreateRGBSurfaceFrom actually works :-P
16:33:33 <fizzie> It _should_.
16:33:41 <fizzie> To _underline_ things, _too_.
16:35:13 <elliott_> Maybe it just does nothing sensical unless you explicitly set a palette?
16:36:36 <elliott_> Indeed.
16:36:55 <elliott_> http://ompldr.org/vOXg5eA
16:36:56 <elliott_> NoirPusher.
16:37:56 <elliott_> Aw, the sine scroller doesn't work for some reason. :/
16:38:33 <elliott_> And the sprites thing starts but never displays no sprites. Huh.
16:38:40 <elliott_> That seems... logically impossible.
16:38:47 <elliott_> Maybe I'm just showing a constant image ors omething.
16:44:04 <fizzie> elliott_: Right, it creates an empty palette by default for palettized surfaces.
16:44:15 -!- derrik has left.
16:46:38 <elliott_> Hmmm.
16:46:42 <elliott_> SDL_BlitSurface(surf, NULL, screen, NULL);
16:46:43 <elliott_> SDL_Flip(screen);
16:46:47 <elliott_> Looks pretty conclusively blit-y to me.
16:48:32 <fizzie> So it does.
16:49:35 <fizzie> Incidentally and not related to that, but the palette-mangling might conceivably take a non-zero (if close to zero) amount of CPU cycles (if SDL caches some omg-optomized palette-for-current-screen-pixel-format values or something), so you might want to still investigate the "create the surface with correct parameters once, then just reset surface->pixels" approach too.
16:50:07 <elliott_> That's what I'm doing.
16:50:11 <fizzie> Ah, hokay.
16:50:12 <elliott_> static void draw_frame(SDL_Surface *screen)
16:50:12 <elliott_> {
16:50:12 <elliott_> word *vid_mem = mem + (peek(5) * 0x10000);
16:50:12 <elliott_> surf->pixels = vid_mem;
16:50:12 <elliott_> SDL_BlitSurface(surf, NULL, screen, NULL);
16:50:13 <elliott_> }
16:50:29 <elliott_> It failed to show more than one frame even when I constructed it every frame, though
16:51:38 <fizzie> Curioos.
16:51:55 <elliott_> "On hardware that doesn't support double-buffering or if SDL_SWSURFACE was set, this is equivalent to calling SDL_UpdateRect(screen, 0, 0, 0, 0)" -- so it's not like SDL_Flip is wrong.
16:53:00 <fizzie> No, it should be just fine.
16:53:17 <elliott_> I _suppose_ the
16:53:20 <elliott_> static void poke(addr i, word x)
16:53:21 <elliott_> {
16:53:21 <elliott_> mem[i] = x;
16:53:21 <elliott_> }
16:53:25 <elliott_> function could break by the second frame somehow.
16:54:02 <fizzie> Yes, that looks very brittle. Maybe you should reinforce the square brackets by something like mem[(((i)))] = x.
16:54:22 <elliott_> Sounds good.
16:55:32 <oklopol> so umm here's a topic that got a 21000 grant last year: measure theory in sub-riemannian geometries and applications to robotics
16:55:45 <oklopol> could someone shed some light on that :D
16:56:06 <elliott_> lol
16:56:20 <elliott_> fizzie: Oh, maybe I need some kind of SDL_LockSurface?
16:56:31 <elliott_> "Between calls to SDL_LockSurface and SDL_UnlockSurface, you can write to and read from surface->pixels" -- it's my bloody array, but...
16:56:37 <oklopol> i'm assuming he's going to send his robots into the sun or something
16:57:04 <fizzie> elliott_: Yeah, software surfaces shouldn't need locking.
16:57:06 <elliott_> Nah, that doesn't fix things, alas.
16:57:26 <fizzie> elliott_: Especially if you tried out the "construct it newly for each frame" approach, in that case it definitely shouldn't need any.
16:57:36 <elliott_> Oh, indeed.
16:57:42 <elliott_> This is prepluxing. :/
16:58:16 <fizzie> You could printf out the top-left 16x16 video memory pixels or something in your draw_frame, and then try to find some proggie that has changing content in that region.
16:58:31 <fizzie> Just to confirm IT KEEPS HAPPENING.
16:58:43 <elliott_> Yeees, I shall enter into the realm of zzo's munching squares.
16:59:46 <elliott_> I'll probably end up making an "XXXtra features" mode where it memory maps fun things like the palette.
16:59:50 <elliott_> That sounds like niceness.
17:00:05 <elliott_> Hmm, wait, do munching squares ever actually hit the top-left
17:01:03 <fizzie> It should. There's that diagonal line part of it.
17:01:16 <fizzie> At least I think it should.
17:02:01 <elliott_> Well, there's only one way to find out. Probably.
17:02:18 <elliott_> Well it... sure doesn't change the first three bytes from 0 here.
17:02:31 -!- zzo38 has joined.
17:02:33 <elliott_> So I guess the problem is in the actual emulation; as they say in the hood, "what".
17:03:29 <elliott_> (I have it on good authority that this is what they say in the hood.)
17:06:54 -!- boily has quit (Ping timeout: 240 seconds).
17:07:46 <zzo38> The Parsec will automatically make up the correct error messages, I can see. It makes this message: expecting white space, "replace", "repeat", "in", "out", "end" or end of input
17:10:14 <zzo38> It seems a very good parser system.
17:15:03 <elliott_> fizzie: Was it you. Did you break my system
17:15:38 <fizzie> I categorically deny such allegations.
17:15:46 <fizzie> I can honestly say I'm not breaking your system right now.
17:16:06 <elliott_> fizzie: HMMMMMMMMMMMMMMMM
17:17:30 <elliott_> static addr pack_addr(word a, word b, word c)
17:17:30 <elliott_> {
17:17:30 <elliott_> return (a >> 16) | (b >> 8) | c;
17:17:30 <elliott_> }
17:17:32 <elliott_> fizzie: Discuss my idiocy
17:17:35 <elliott_> Or wait, is that right
17:19:13 <fizzie> Assuming words are bytes, << sounds more like it.
17:19:19 <elliott_> Yees
17:19:39 <elliott_> So presumably the palette worked because it has the VGA RAM pre-initialised
17:19:52 <elliott_> Woot, that has managed to completely not fi - oh there we go.
17:20:45 <Phantom_Hoover> What are you doing?
17:21:03 <elliott_> Phantom_Hoover: BytePusher for the hell of it.
17:21:17 <elliott_> fizzie: What is it with the scene and scrollers with text that goes on for chapters, out of interest
17:21:21 <elliott_> (This sine scroller does it)
17:22:11 <fizzie> I think it's just a custom. They had those in the cracktros already, to advertise the group's BBS systems and 0-day warez and other such coolness-inducing things.
17:22:32 <elliott_> Well, yeah, I was wondering what the origin was of someone deciding to make someone get a headache for five minutes ;-)
17:22:42 <elliott_> I can understand coolness over function, but putting all the information there seems silly :P
17:22:42 -!- boily has joined.
17:22:55 <elliott_> Also those things must take years to write.
17:23:04 <elliott_> "GREETZ TO A, B, C, D, [lists every person they've ever met]"
17:23:26 <fizzie> Well, it would be bad manners to not greet someone who greets you.
17:23:38 <elliott_> Hahaha is that an actual thing
17:23:48 <elliott_> Can I just go greetin' random people and LOCK THEM INTO RECIPROCITY
17:24:20 <fizzie> Maybe not quite. you probably also need to do the greeting in some sort of a respectable product. And I think in general the greetz-lists have gotten shorter.
17:24:52 <elliott_> Did the elite SCENE-NESS of it all push you into lowercase land there
17:24:53 <elliott_> (Yes)
17:25:25 <elliott_> It would be fun to write demos but I'd write them all in Haskell and be a social outcast, here lies Elliott killed by marginalising himself in any social group he could possibly interact with on any level
17:26:32 <cheater> Gregor, you CAN write!
17:26:41 <cheater> Gregor, but Gregor::novel is write-only.
17:26:47 <Gregor> cheater: I CAN not :P
17:26:58 <cheater> you CAN write, except no one can READ it.
17:27:13 <cheater> it's like the schoredinger's novel
17:27:14 <Gregor> Believe me, I CAN't
17:27:22 -!- Taneb has joined.
17:27:25 <cheater> b-but
17:29:32 <cheater> Gregor, do you think wolfgang lambda is the next coming of jesus
17:31:11 <Gregor> Do YOUUUUUUUUUUU???
17:31:24 <cheater> yes
17:42:08 -!- cheater has quit (Quit: Ex-Chat).
17:42:41 -!- cheater_ has joined.
17:53:10 <zzo38> Can you explain Einsteinian relativity without using any words (that includes numbers, which must be written out as words) longer than four letters?
17:53:23 <Taneb> go fast, it seems slow
17:53:31 <Taneb> *look, not seem
17:53:40 <Taneb> :)
17:58:20 <oklopol> that's a confusing no
18:03:16 -!- cheater_ has quit (Ping timeout: 250 seconds).
18:07:13 <olsner> zzo38: in english?
18:08:03 <oklopol> can you explain einsteinian relativity without using any words longer than four letters? (that includes numbers, which must be written out as words.)
18:08:24 <zzo38> olsner: Yes I do mean English.
18:08:32 <Gregor> elliott_: I ... might want to make massive rewrites to mudem.
18:08:33 <oklopol> olsner is so dumb that
18:08:48 <elliott_> Gregor: Go on
18:08:51 <oklopol> he couldn't even understand the question of whether you can do that because some of the words were over 4 letters
18:09:19 <Taneb> In what we talk in but easy?
18:09:21 <elliott_> Gregor: It's fairly shitty, I know :)
18:09:21 <zzo38> I have once found a long document that someone has done actually done so. Including the name "Albert Einstein" has been shortened to "Al".
18:09:22 <olsner> oklopol: what? long word, can't grok
18:10:14 <oklopol> :D
18:10:22 <oklopol> if you refind, please link
18:10:50 <fizzie> http://www.muppetlabs.com/~breadbox/txt/al.html
18:11:00 <fizzie> I've seen it too.
18:11:11 <elliott_> From Brian Raiter of ESOLANG POP CULTURE FAME
18:11:58 <fizzie> Izzy and Al.
18:13:04 <elliott_> Has anyone used SDL's audio API
18:13:33 <zzo38> I have used SDL's audio, my BytePusher implementation uses it
18:14:02 <fizzie> I've dabbled with it too.
18:14:30 <elliott_> zzo38: Shhhh, I'm NIHing. We pretend other implementations of the thing don't exist when I'm NIHing.
18:14:57 <elliott_> fizzie: Why would SDL_OpenAudio hang my program
18:14:58 <elliott_> Not fail or anything
18:14:59 <elliott_> Just hang
18:16:13 <fizzie> Hmm, that shouldn't happen; it doesn't start any playback at that point yet. Unless it's waiting for a busy device or something silly.
18:16:43 <elliott_> des.freq = 15360;
18:16:43 <elliott_> des.format = AUDIO_S8;
18:16:43 <elliott_> des.channels = 1;
18:16:43 <elliott_> des.samples = 4096;
18:16:43 <elliott_> des.callback = audio_callback;
18:16:44 <elliott_> des.userdata = NULL;
18:16:47 <elliott_> Might my callback be messed up?
18:16:57 <elliott_> I wrote it without trying to make it correct at all or thinking
18:17:02 <elliott_> But I'd assume that it waits for unpause before buffering
18:17:03 <elliott_> Maybe that's wrong
18:17:06 <fizzie> I don't think it's even called until you unpause.
18:17:12 <elliott_> Right.
18:17:22 <fizzie> But I could certainly be wrong too.
18:17:46 <fizzie> gdb and break and look at the backtrace and curse your SDL copy for not including debugging symbols?
18:18:20 <elliott_> (gdb) set args Munching_Squares.BytePusher
18:18:20 <elliott_> (gdb) start
18:18:20 <elliott_> Temporary breakpoint 1 at 0x400c50
18:18:20 <elliott_> Starting program: /home/elliott/Code/bytepusher/bytepusher Munching_Squares.BytePusher
18:18:20 <elliott_> [Thread debugging using libthread_db enabled]
18:18:20 <elliott_> Temporary breakpoint 1, 0x0000000000400c50 in main ()
18:18:22 <elliott_> (gdb) cont
18:18:24 <elliott_> Continuing.
18:18:26 <elliott_> [New Thread 0x7fffef1fa700 (LWP 14938)]
18:18:28 <elliott_> [Thread 0x7fffef1fa700 (LWP 14938) exited]
18:18:28 -!- cheater has joined.
18:18:30 <elliott_> [New Thread 0x7fffef1fa700 (LWP 14939)]
18:18:32 <elliott_> Then it hangs.
18:18:36 <elliott_> Maybe I should build with -g. :p
18:18:38 <elliott_> #0 0x00007ffff7b7bb8d in ?? () from /usr/lib/libSDL-1.2.so.0
18:18:40 <elliott_> #1 0x00007ffff7b4f054 in SDL_OpenAudio () from /usr/lib/libSDL-1.2.so.0
18:18:42 <elliott_> #2 0x0000000000400cc2 in main ()
18:18:44 <elliott_> Oh, useful.
18:18:51 <fizzie> Yes, very.
18:19:22 <olsner> maybe you're holding its lock or something
18:19:59 <fizzie> I don't think Ubuntu even bothers to have a -dbg package for SDL.
18:20:26 <elliott_> Do you have to initialise audio after video?
18:20:28 <elliott_> That, sounds, uh, wrong.
18:20:31 <elliott_> So I doubt it.
18:21:22 <olsner> it sounds wrong? that should be a clue that sdl has done it exactly like that :P
18:21:43 <elliott_> But they're separate components.
18:21:48 <elliott_> Oh, I see wut u did thar.
18:21:49 <fizzie> My SDL-audio-using app does SDL_Init(SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO); don't think it matters in which order you call OpenAudio vs. SetVideoMode.
18:22:07 <elliott_> fizzie: Me too. Except audio after video. Do you think that matters? ;-)
18:23:16 <fizzie> Yes, maybe the bits get orred in the wrong order. Maybe audio|video|audio for safety.
18:23:52 <fizzie> You could put something noisy (abort()?) in your callback, but I doubt it's getting called.
18:23:56 -!- cheater_ has joined.
18:24:04 -!- cheater has quit (Ping timeout: 250 seconds).
18:24:23 <fizzie> In olden times I'd believe it was just blocking on open("/dev/dsp"), but...
18:24:32 <elliott_> Yeah, it's not.
18:24:34 <fizzie> strace it too?-)
18:24:36 <elliott_> (Calling the callback.)
18:24:48 <elliott_> clone(child_stack=0x7fc517a31fb0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7fc517a329d0, tls=0x7fc517a32700, child_tidptr=0x7fc517a329d0) = 15062
18:24:48 <elliott_> futex(0x20dd180, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
18:24:48 <elliott_> rt_sigaction(SIGSEGV, NULL, {SIG_DFL, [], 0}, 8) = 0
18:24:48 <elliott_> rt_sigaction(SIGSEGV, {0x7fc520386cc0, [], SA_RESTORER, 0x7fc52002fc20}, NULL, 8) = 0
18:24:48 <elliott_> rt_sigaction(SIGBUS, NULL, {SIG_DFL, [], 0}, 8) = 0
18:24:50 <elliott_> rt_sigaction(SIGBUS, {0x7fc520386cc0, [], SA_RESTORER, 0x7fc52002fc20}, NULL, 8) = 0
18:24:52 <elliott_> rt_sigaction(SIGFPE, NULL, {SIG_DFL, [], 0}, 8) = 0
18:24:54 <elliott_> rt_sigaction(SIGFPE, {0x7fc520386cc0, [], SA_RESTORER, 0x7fc52002fc20}, NULL, 8) = 0
18:24:56 <elliott_> rt_sigaction(SIGQUIT, NULL, {SIG_DFL, [], 0}, 8) = 0
18:24:58 <elliott_> rt_sigaction(SIGQUIT, {0x7fc520386cc0, [], SA_RESTORER, 0x7fc52002fc20}, NULL, 8) = 0
18:25:00 <elliott_> rt_sigaction(SIGALRM, NULL, {SIG_DFL, [], 0}, 8) = 0
18:25:02 <elliott_> rt_sigaction(SIGALRM, {SIG_IGN, [], SA_RESTORER, 0x7fc52002fc20}, NULL, 8) = 0
18:25:06 <elliott_> Suddenly it all makes sense
18:26:16 <olsner> it does?
18:26:35 <elliott_> Nope
18:26:46 <fizzie> Noisy. Did you have -f (follow-forks) for strace? Not sure if threads count. Though I would guess it's unlikely to *hang* if the audio thread gets borksored.
18:27:58 <fizzie> Sorry, _hang_.
18:28:18 -!- FireFly has joined.
18:28:50 <fizzie> (Awayish.)
18:28:56 <elliott_> fizzie: Wow.
18:28:57 <elliott_> That causes
18:29:00 <elliott_> [pid 15112] nanosleep({0, 1000000}, 0x7f469acf9df0) = 0
18:29:01 <elliott_> Forever
18:29:25 <olsner> repeatedly sleeping for 1ms then?
18:30:10 <elliott_> [pid 15170] <... futex resumed> ) = 1
18:30:10 <elliott_> is what comes before that
18:35:25 <fizzie> That's I think a common pattern in SDL, the repeated sleeping.
18:35:43 <fizzie> "Poor man's yield."
18:35:46 <elliott_> SDL sure is...s hit.
18:35:47 <fizzie> Possibly the timer thread.
18:35:49 <elliott_> shit.
18:36:50 <fizzie> I think ais523 commented here recently that in some thread it loops a fixed-length (maybe 1ms) nanosleep and a gettimeofday() waiting for the promised time to come.
18:37:06 <elliott_> I somehow don't want to use SDL any more.
18:37:19 <fizzie> But it's the de-facto standard.
18:37:39 <elliott_> How much stuff actually uses SDL
18:37:42 <elliott_> As opposed to SDL + OpenGL
18:37:46 <elliott_> Which is rather different
18:38:21 <fizzie> Well, old-and-strictly-2D stuff probably might use pure SDL.
18:38:25 <fizzie> Also mcmap. :p
18:39:05 <elliott_> I wonder what the level down from SDL is while still staying portable
18:39:12 <elliott_> I mean, ignoring hardware acceleration
18:39:24 <oklopol> only wrong people do 3d
18:39:46 <oklopol> odd dimensions are odd
18:40:46 <oklopol> also was dimension originally a synonym for an obituary
18:40:52 <fizzie> Checking SDL_OpenAudio for things that might concievably hang at a depth of one, like in your call stack. It calls SDL_InitSubSystem(SDL_INIT_AUDIO) if it hasn't been initialized, but you already do that. Then it calls the audio driver's ->OpenAudio, that might easily hang. Finally it spawns the audio thread and returns immediately.
18:41:12 <fizzie> I suppose "inside the audio driver" is the most likely case, of those.
18:42:16 <fizzie> Try "SDL_AUDIODRIVER=pulse ./myproggie"? :) PulseAudio's your friend, as everyone knows.
18:43:01 <elliott_> fizzie: It was opening pulse files in strace, so
18:43:14 -!- zzo38 has quit (Quit: No Road).
18:43:23 <elliott_> AUDIODRIVER=oss works :-)
18:43:35 <elliott_> Thanks, Pulse, you piece of shit
18:43:54 <fizzie> Heh, heh.
18:44:24 <elliott_> How to make something actually audible
18:44:26 <elliott_> Now
18:45:09 <elliott_> Hmm
18:45:10 <elliott_> static void audio_callback(void *userdata, word *stream, int len)
18:45:10 <elliott_> {
18:45:11 <elliott_> unsigned i;
18:45:11 <elliott_> for (i = 0; i < len; i++)
18:45:11 <elliott_> stream[i] = rand();
18:45:11 <elliott_> }
18:45:18 <elliott_> Suspicious that this makes no sound at all, not even a popping
18:49:38 -!- CakeProphet has joined.
18:49:38 -!- CakeProphet has quit (Changing host).
18:49:38 -!- CakeProphet has joined.
18:50:28 <Gregor> "There's a gay rights organization arguing for Bert and Ernie to come out of the closet. But what I don't understand is, what do you even gain by Bert and Ernie being gay?" "Depends on whether you're Bert or Ernie."
18:51:46 <elliott_> heh
19:05:24 -!- asiekierka has quit (Remote host closed the connection).
19:08:46 <elliott_> Gregor: Help have you used SDL's audio stuff.
19:09:04 -!- CakeProphet has quit (Ping timeout: 260 seconds).
19:10:16 -!- ais523 has joined.
19:10:30 -!- CakeProphet has joined.
19:10:30 -!- CakeProphet has quit (Changing host).
19:10:30 -!- CakeProphet has joined.
19:10:56 <elliott_> hi ais523
19:11:45 <ais523> hi elliott_
19:12:12 * ais523 wonders which of the people who said hi as soon as I joined is planning to start a conversation with me, if any
19:12:42 <cheater_> ais523, ()
19:13:43 <elliott_> ais523: me
19:13:50 <elliott_> ais523: how does sdl audio work, thanks,
19:14:03 <ais523> elliott_: I've never actually tried to use it
19:14:07 <elliott_> damn
19:14:13 <elliott_> (nothingness, not you)
19:14:18 <ais523> DNA Maze currently has no sounds
19:14:34 <ais523> and it's the only SDL program I've worked on the SDL bits of
19:14:35 <cheater_> what is dna maze
19:14:50 <cheater_> is it a maze shaped like dna
19:16:05 <ais523> it's a computer game I've been writing for years now (possibly decades)
19:16:08 <ais523> and never got round to finishing
19:17:03 <fizzie> elliott_: Remember to unpause your audio. :p (This has been a show in our forthgoing Most Useless Tip series.)
19:17:18 <elliott_> fizzie: Wow, I actually managed to not forget.
19:17:30 <elliott_> Was worried there for a second.
19:17:33 <elliott_> (I removed the line earlier.)
19:17:37 <Gregor> elliott_: Nope.
19:17:43 <elliott_> oh
19:18:01 <Gregor> Or have I?
19:18:03 <Gregor> Maybe a bit ...
19:18:13 <Gregor> Yeah, I might have, but have no memory of it.
19:18:14 <elliott_> :DD
19:18:15 <ais523> random fact, I implemented a version of reset(1) in a much older (DOS) version of DNA Maze
19:18:21 <ais523> if you started and immediately exited it
19:18:27 <ais523> so I always had a way to get my terminal back to sanity
19:18:36 <ais523> I'm not entirely sure why I didn't just write a different program
19:18:43 <elliott_> why have two programs when one can do?
19:18:56 <fizzie> The only thing with "SDL_" in my sdl-audio-using applications are one SDL_OpenAudio(&audiospec, 0), one SDL_CloseAudio() at the end, and SDL_PauseAudio(0) to start and SDL_PauseAudio(1) to stop. That really should be enough.
19:19:17 -!- CakeProphet has quit (Ping timeout: 264 seconds).
19:19:20 <elliott_> fizzie: Well, yeees, but what do your callbacks look like?
19:19:28 <Gregor> fizzie: Soooo you don't plan on actually playing sounds then :P
19:19:48 <fizzie> Gregor: You don't need any other SDL_foo calls, it just calls your callback to fill a buffer.
19:19:51 <elliott_> Gregor: That's not done with SDL_ -- yeah.
19:20:04 <Gregor> OHHHHH, I was thinking of SDL_mixer.
19:20:09 <Gregor> I haven't used SDL_audio directly in fact.
19:20:11 <Gregor> Only mixer.
19:20:14 <elliott_> That's the ``lame-o'' API.
19:20:27 <Gregor> If by "lame-O" you mean "remotely-sane-o"
19:20:36 <cheater_> ais523, there is music composed by parsing the DNA
19:20:53 <cheater_> notably by the deceased Shamen composer
19:21:06 <cheater_> it is, in fact, very musical
19:21:16 <fizzie> elliott_: The callback just uses sid->clock() from resid to fill the buffer. The for-loop with rand() you had in there should be enough for maximum-volume white noise as far as I can tell.
19:22:52 <elliott_> fizzie: Hmm.
19:23:18 <fizzie> Try a third audio driver + make sure your callback's getting called, I guess.
19:23:38 <elliott_> I tried the ALSA driver at least
19:24:00 <elliott_> It's not getting called.
19:24:01 <elliott_> How curious.
19:25:05 -!- CakeProphet has joined.
19:32:29 <elliott_> Now why wouldn't it be calling it.
19:32:54 -!- CakeProphet has quit (Ping timeout: 258 seconds).
19:33:03 <fizzie> Your SDL sound sounds (pun not intended) to be somehow borkended, really. It's not supposed to hang if you don't specify any envvars, after all.
19:35:43 <NihilistDandy> QWOP is really hard
19:35:50 <oklopol> not relaly
19:35:53 <oklopol> *really
19:36:06 <oklopol> i finished it easily
19:36:09 <NihilistDandy> It is if you play it one handed
19:36:20 <oklopol> okay man
19:36:24 <oklopol> i don't tell you this nearly often enough
19:36:27 <oklopol> but you
19:36:27 <oklopol> man
19:36:32 <oklopol> you're the
19:36:32 <oklopol> man
19:36:41 <NihilistDandy> lol
19:37:04 <oklopol> i guess we know who wears the pants in this dialogue
19:37:27 <NihilistDandy> Probably still you. I only IRC in the nude~
19:37:36 <NihilistDandy> THE MAN
19:37:51 <oklopol> actually i have my clothes on because i keep going to the rain to smoke
19:38:19 <NihilistDandy> I should do that soon, myself
19:38:25 <oklopol> people hang outside 24/7 so i don't really go out naked at all
19:38:32 <oklopol> a few times in the hallway
19:38:39 <oklopol> but that's it
19:39:29 <NihilistDandy> I hope my new roommates aren't douchebags
19:39:39 <NihilistDandy> I think I'd have to kill them all, and that's just gonna raise my rent
19:39:41 -!- CakeProphet has joined.
19:40:31 <oklopol> what do you mean, they'd be buying you food until their dad dies of age
19:41:00 <oklopol> "hello daddy this is your son, nihilistdandy's roommate"
19:41:27 <oklopol> "could you send me some money, i got raped and robbed and stuff"
19:41:29 <NihilistDandy> PERFECT
19:41:32 <elliott_> oklopol did you start smoking because of NihilistDandy
19:41:41 <oklopol> yes, i felt inferior
19:41:41 <NihilistDandy> I hope so
19:41:57 <oklopol> and i was like, how could i make myself cooler?
19:42:00 <oklopol> and well
19:42:22 <NihilistDandy> Who's the coolest camel you know?
19:43:07 <NihilistDandy> It is an empirical fact that smoking makes you cool
19:43:25 <oklopol> i also make smoke rings while saying o
19:43:25 <oklopol> o
19:43:25 <oklopol> o
19:43:26 <oklopol> o
19:43:27 <oklopol> o
19:43:27 <oklopol> o
19:43:31 <oklopol> seriously. how oklo is that?
19:43:54 <elliott_> yes
19:44:05 <oklopol> and some chick came to tell me she put her flowers on the balcony because she's leaving for a few days, but they are not abandoned
19:44:07 <elliott_> (just kidding that's lame and you suck)
19:44:29 <oklopol> you just interpreted my name as a synonym for cool, and then told me i suck
19:44:51 <elliott_> nope
19:44:53 <NihilistDandy> Cognitive dissonance
19:44:53 <elliott_> it's just that
19:44:58 <elliott_> that action doesn't even achieve the oklo level of suck
19:45:03 <elliott_> its not even refined suck
19:45:06 -!- CakeProphet has quit (Ping timeout: 250 seconds).
19:45:15 <oklopol> i see
19:45:22 <oklopol> i think i will cry a bit
19:45:29 <elliott_> sorry
19:45:30 <elliott_> it was
19:45:32 <elliott_> a horrible thing to say
19:45:34 <elliott_> motivate by jealousy
19:46:07 <oklopol> oh okay
19:47:04 -!- CakeProphet has joined.
19:47:04 -!- CakeProphet has quit (Changing host).
19:47:04 -!- CakeProphet has joined.
19:50:06 -!- monqy has joined.
19:55:33 -!- CakeProphet has quit (Ping timeout: 246 seconds).
19:59:12 <Gregor> elliott_, anybody else: Should umlbox have -B -f . be default?
19:59:21 <elliott_> Gregor: -B -f / :-P
19:59:33 <Gregor> -f / is useless with -B :P
19:59:39 <elliott_> It should act like the host system by default, IMO
19:59:45 <elliott_> And then if you want any security you just use the options
19:59:50 <elliott_> Or
19:59:57 <Gregor> That's, like, the opposite of how security systems are supposed to work :P
19:59:57 <elliott_> Just make it read-only system-directories on everything
20:00:01 <elliott_> And no write access
20:00:04 <Gregor> That's -f /
20:00:06 <elliott_> That's how it's "meant to work" :P
20:00:15 <elliott_> Gregor: Excluding /home
20:00:23 <Gregor> I was just about to say I don't really want to include /home.
20:00:30 <Gregor> But then you do have to include ., since that's frequently in a home.
20:01:09 <Gregor> If the common use case is "some snot-nosed student sent me his C code, now I have to run it and try not to eff up my system", you want . :P
20:02:17 <ais523> hmm, would that work for Java too?
20:02:25 <elliott_> For anything
20:02:35 <ais523> marking other people's code always worries me a bit
20:02:39 <ais523> in case there's some sort of trojan in there
20:02:40 -!- CakeProphet has joined.
20:02:40 -!- CakeProphet has quit (Changing host).
20:02:40 -!- CakeProphet has joined.
20:03:13 <elliott_> ais523: UMLBox is basically like creating an VM and tearing it down within seconds, except it works on selectively-exposed parts of your host filesystem
20:03:21 <elliott_> Gregor: So what were the sweeping changes to mudem you wanted
20:03:38 <ais523> I did end up having to use a full VM to test the kernel patches
20:03:46 <Gregor> elliott_: I can't figure out why it doesn't work, so I was going to rewrite it just taking the core connection code :P
20:03:49 <elliott_> Well, UML is a kernel
20:03:53 <elliott_> So ostensibly kernel patches will work
20:03:56 <ais523> /especially/ because several of them crashed the system
20:03:59 <elliott_> Probably not drivers though
20:04:08 <elliott_> Gregor: Just rewrite it in C, I won't mind :-P
20:04:11 <ais523> they were hooking the keyboard interrupt
20:04:18 <elliott_> I "thought" it was an easy problem
20:04:22 <elliott_> Which it obviously isn't
20:04:27 <Gregor> No, it's not >_<
20:04:29 <Gregor> Although it tastes like one.
20:04:43 <elliott_> Well, I mean, mudem almost works, it just has some stupid bug
20:04:47 <elliott_> But it's at the non-trivial level already
20:04:54 <elliott_> It'd easily be thrice the length in C, after all
20:05:16 <Gregor> ais523: UMLBox really wouldn't help with kernel patches, but my two primary uses of it are hack{bot,iki} and grading student code, so that latter case is major :P
20:05:27 <oklopol> okayh
20:05:28 <oklopol> ppeoelolke
20:05:30 <oklopol> don't panic!
20:05:31 <oklopol> but
20:05:36 <oklopol> ther'es a fucking 7
20:05:36 <Gregor> ais523: See http://bitbucket.org/GregorR/umlbox btw
20:05:39 <ais523> Gregor: heh, do we both teach programming?
20:05:40 <oklopol> in my minesweeper
20:05:45 <ais523> what language do you teach?
20:05:50 <oklopol> oh my hgod og mt god og myt dog
20:05:52 <Gregor> ais523: This upcoming term, C.
20:05:52 <elliott_> oklopol: i got a seventeen once
20:06:00 <elliott_> Gregor: HAVE FUN WITH THAT
20:06:02 <oklopol> comeon shut up this is fucking huge
20:06:03 <elliott_> malloc(size_t int)
20:06:07 <Gregor> elliott_: 's a good one to have UMLBox for :P
20:06:11 <oklopol> do you realize i play this game like every hour of every day
20:06:15 <elliott_> oklopol: :)))
20:06:16 <ais523> Gregor: have you tried to teach C before?
20:06:30 <oklopol> and i've never seen a 7 except i probably have but was not this high
20:06:35 <Gregor> ais523: I'm just a TA, I'm not doing the "primary" teaching
20:06:35 <ais523> the fourth-year C students I taught last year were much worse than the first-year Java students I taught the same year
20:06:37 <oklopol> but seriously shit :D
20:06:38 <ais523> same
20:06:40 <oklopol> a fucking 7!
20:06:59 <Gregor> ais523: But yeah, I expect failure in all dimensions.
20:07:19 <ais523> it didn't help that the lecturer in charge of the course had to take a couple of months off due to illness
20:07:43 <elliott_> Gregor: Do you expect sizeof to be typo'd as size_t because of an IDE?
20:07:48 <elliott_> ais523 KNOWS HORRORS YOU DO NOT
20:07:51 -!- CakeProphet has quit (Ping timeout: 240 seconds).
20:07:55 <Gregor> elliott_: No IDEs
20:08:03 <Gregor> We're hardcore at Purdue :P
20:08:10 <elliott_> Gregor: YOU CAN'T STOP THE KIDS FROM USING NETBEANS
20:08:15 <elliott_> LEGALISE IDES
20:08:29 <Gregor> Dood, NetBeans is a gateway drug.
20:08:38 <Gregor> You let them have it, and soon they'll be using Eclipse.
20:08:46 <ais523> NetBeans is fine for Java
20:08:50 <Gregor> Let them do that, and it's only a matter of time before they're making UML (the bad one) diagrams.
20:08:52 <ais523> it shouldn't be used for C
20:09:03 <elliott_> Gregor: And we all know someone who's descended down a long spiral towards the slow death that is Maven.
20:09:06 -!- CakeProphet has joined.
20:09:08 <elliott_> I went there myself. I may never truly recover.
20:09:15 <CakeProphet> bounce bounce bounce
20:09:24 <CakeProphet> http://pastebin.com/SjK8RFvt
20:09:29 <CakeProphet> this is completely reasonable code right?
20:09:48 <ais523> I, umm, don't know, it's in C#
20:09:50 <CakeProphet> I am beginning to suspect that webkits javascript interpreter does not support file IO
20:09:51 <ais523> can that be considered reasonable?
20:09:56 <elliott_> var f = new File('"+f.Name+@"');
20:09:57 <elliott_> no.
20:09:59 <elliott_> that is not acceptable.
20:10:04 <CakeProphet> for the requirements I was given, it is.
20:10:10 <elliott_> no
20:10:10 <CakeProphet> elliott_: you'd prefer String.Format yes?
20:10:15 <elliott_> no
20:10:22 <ais523> what does @ before a string literal mean?
20:10:24 <elliott_> bind the value to an object you can access from inside
20:10:30 <CakeProphet> multi-line.
20:10:34 <elliott_> none of this string splicing shit that _will_ get you killed
20:10:53 <ais523> also, why do you have executable code in a string literal anyway?
20:11:14 <ais523> CakeProphet: note that «"); bad_function("» is a perfectly legal filename
20:11:19 <elliott_> ais523: that's ok as long as it's not interpolated or anything
20:11:24 <elliott_> new File(this.storedName);
20:11:26 <CakeProphet> elliott_: what does that even mean.
20:11:28 <elliott_> then assign it from C hash
20:11:31 <elliott_> which I'm sure is possible
20:11:35 <elliott_> CakeProphet: i see you're new to programming
20:11:43 <ais523> elliott_: even if it isn't interpolated, it's still a bad idea in a compiled language, but for different reasons
20:12:05 <ais523> there's a reason why in Perl, eval {} is considered sane, and eval "" is considered insane
20:12:16 <ais523> and Perl isn't even a properly compiled language
20:12:19 <CakeProphet> elliott_: that's impossible.
20:12:21 <CakeProphet> to do.
20:12:26 <CakeProphet> given my current situation.
20:12:41 <elliott_> CakeProphet: No.
20:12:42 <elliott_> It isn't.
20:12:49 <elliott_> If the language. Offers any kind of interaction with the JS object model at all.
20:12:53 <elliott_> s/language/binding/
20:12:56 <elliott_> Which, as it's WebKit, it... does.
20:13:01 <elliott_> I'm sure Gregor can tell you more ;-)
20:13:21 <ais523> I mean, even serialising to JSON would be saner
20:13:28 <ais523> even if you just parse it with eval at the other end
20:13:41 <ais523> because that avoids any sort of injection issue
20:13:46 <Gregor> What are we talking about?
20:14:04 <elliott_> Gregor: WebKit.
20:14:07 <elliott_> var f = new File('"+f.Name+@"');
20:14:08 <ais523> Gregor: a C# program written by CakeProphet which generates JavaScript code by concatenating string literals
20:14:17 <elliott_> CakeProphet thinks this is acceptable behaviour to use the WebKit API with.
20:14:18 <ais523> with variables
20:14:18 <CakeProphet> nope
20:14:18 <CakeProphet> thus why I'm resorting to temporary file hacks.
20:14:19 <CakeProphet> elliott_: it doesn't, I assure you. It's a shitty C# binding of webkit.
20:14:28 <elliott_> CakeProphet: "Binding", i.e. with the same methods as WebKit.
20:14:33 <elliott_> Or it's not really a binding, in which case don't use it
20:14:43 <ais523> oh, I didn't even realise that the temporary file was being made just to transmit information
20:14:47 * Gregor goes back to not caring :P
20:14:51 <ais523> I'm trying to figure out if that's even worse, or just not quite as bad
20:15:01 <elliott_> I see no guarantees on the name of the created file for System.IO.Path.GetTempFileName
20:15:05 <elliott_> Other than it has the .TMP extension
20:15:07 <CakeProphet> ais523: also code injection shouldn't be a problem since the file name is always generated by GetTempFileName.
20:15:08 <CakeProphet> elliott_: not acceptable, but necessary.
20:15:08 <CakeProphet> because these bindings DO NOT have DOM access in C#
20:15:08 <CakeProphet> I have looked EVERYWHERE.
20:15:08 <CakeProphet> trust me.
20:15:35 <ais523> CakeProphet: how do you know that GetTempFileName never puts double quotes or backslashes in the filename?
20:15:39 <elliott_> So don't use C#
20:15:48 <elliott_> You decided on C# of your own accord in the same place
20:15:55 <elliott_> So good masochism :P
20:16:04 <elliott_> ais523: Well that's illegal in Windows (but not NTFS)
20:16:08 <elliott_> But it's no way reliable :P
20:16:28 <ais523> but but C# is portable!
20:17:12 <elliott_> ais523: using Gtk;
20:17:18 <elliott_> I bet Gtk# is soooooo native on Windows
20:18:01 <ais523> well, GIMP works on Windows
20:18:07 <ais523> so GTK probaly does too
20:18:09 <ais523> *probably
20:19:24 -!- CakeProphet has quit (Ping timeout: 240 seconds).
20:19:32 <elliott_> Come on, though, Gtk# is a Mono thing :-P
20:19:39 <elliott_> http://gtk.php.net/ Oh, this must surely be quality
20:19:55 <elliott_> Every time I use Gtk I think "man, I wish I could be doing this in PHP".
20:26:24 <ais523> does Mono work on Windows, incidentally?
20:26:28 <ais523> my guess is yes, but I'm not sure
20:26:32 <elliott_> yes
20:26:36 <elliott_> and, I think, Wine
20:26:59 <ais523> I know that the main advertising point of Mono is that it works on both Android and iPhone
20:27:08 <elliott_> wat
20:27:10 <elliott_> heh
20:27:42 -!- CakeProphet has joined.
20:27:42 -!- CakeProphet has quit (Changing host).
20:27:42 -!- CakeProphet has joined.
20:27:46 <elliott_> I guess I'll fix/optimise/finish bytepusher.c tomorrow
20:27:57 <elliott_> Maybe write a bootsector implementation :P
20:29:02 <Gregor> Can somebody with Cygwin give me the uname -a output please?
20:30:19 <ais523> haha, Righthaven (a group of copyright trolls) lost a court case they brought and were made to pay the defendants' legal fees because they didn't own the copyrights they were trying to sue over
20:30:33 <ais523> and tried to claim that they didn't have to pay because the court didn't have jurisdiction anyway
20:30:50 -!- CakeProphet has quit (Read error: Operation timed out).
20:32:02 -!- CakeProphet has joined.
20:32:02 -!- CakeProphet has quit (Changing host).
20:32:02 -!- CakeProphet has joined.
20:33:03 <CakeProphet> wow I hate my internet right now.
20:33:30 -!- elliott_ has quit (Ping timeout: 252 seconds).
20:33:32 <CakeProphet> currently reading the logs is more reliable than actually usingf my client.
20:36:04 <Gregor> Welp, that's what stalker mode is for.
20:36:43 -!- CakeProp1et has joined.
20:38:43 -!- boily has quit (Ping timeout: 260 seconds).
20:39:18 <CakeProp1et> actually I have no say in the language choice because I am being hired to do this with existing software.
20:39:41 -!- CakeProphet has quit (Ping timeout: 258 seconds).
20:39:54 <CakeProp1et> it just so happens that all of the C# browser rendering engines are shit and I'm using the only one that seems to have legitimate DOM access.
20:43:23 <CakeProp1et> aha I have a solution.
20:43:43 <CakeProp1et> I'll just use other DOM objects, and then only use WebKit for rendering.
20:49:39 <fizzie> If you mean exporting the DOM tree back to HTML/XHTML and then rendering it with WebKit, that doesn't sound like a real solution, especially if you need to access the DOM after the page in question's scripts have had a field day with it.
20:50:24 -!- CakeProp1et has quit (Ping timeout: 240 seconds).
21:02:26 -!- CakeProphet has joined.
21:02:26 -!- CakeProphet has quit (Changing host).
21:02:26 -!- CakeProphet has joined.
21:02:34 <CakeProphet> (new StreamReader(HttpWebRequest.Create(url).GetResponse().GetResponseStream(), Encoding.UTF8)).ReadToEnd()
21:03:00 <CakeProphet> this is literally everything you have to do in C# to fetch a URL.. normally this code is written over multiple lines but I decided to make it a one-liner.
21:09:07 -!- CakeProphet has quit (Ping timeout: 258 seconds).
21:09:56 -!- CakeProphet has joined.
21:09:56 -!- CakeProphet has quit (Changing host).
21:09:56 -!- CakeProphet has joined.
21:14:24 <fizzie> $ perl -e 'use LWP::Simple; print get("http://esolangs.org/");' | head -n 1
21:14:24 <fizzie> <?xml version="1.0" encoding="UTF-8"?>
21:14:30 <fizzie> That is literally everything you have to do in Perl.
21:15:01 <Phantom_Hoover> http://qntm.org/tetris
21:15:12 <Phantom_Hoover> Isn't the second hypothesis obviously true?
21:15:42 <Phantom_Hoover> Since if you're given only z- or s-tetrominoes, you can't assemble a line.
21:16:53 <fizzie> If the well is of even width (like I think it usually is), you can just put your z- or s-pieces all on the pointy end, filling the second-lowest line.
21:17:11 <Phantom_Hoover> Oh, yeah.
21:18:23 -!- GreaseMonkey has joined.
21:18:31 -!- GreaseMonkey has quit (Changing host).
21:18:31 -!- GreaseMonkey has joined.
21:18:42 <Phantom_Hoover> "It's also aggravating and frustrating. C's strict type safety is wonderful, except when it isn't."
21:18:44 <Phantom_Hoover> Um.
21:18:45 <Phantom_Hoover> Sam.
21:20:26 -!- variable has quit (Ping timeout: 250 seconds).
21:21:46 -!- CakeProphet has quit (Ping timeout: 258 seconds).
21:23:45 -!- BeholdMyGlory has quit (Remote host closed the connection).
21:25:50 -!- FireFly has quit (Quit: FireFly).
21:28:10 -!- variable has joined.
21:28:11 -!- variable has quit (Excess Flood).
21:29:09 -!- variable has joined.
21:33:42 -!- adam_ has joined.
21:34:28 <adam_> Phantom_Hoover: it's a pretty strict type system. Casts require that the types you cast to have names.
21:34:28 -!- adam_ has changed nick to CakeProphet.
21:34:29 -!- CakeProphet has quit (Client Quit).
21:43:09 -!- sut-heb has quit.
21:43:15 -!- sut-heb has joined.
21:57:07 <pikhq_> Friggin' oral surgery.
21:59:31 -!- CakeProphet has joined.
21:59:31 -!- CakeProphet has quit (Changing host).
21:59:31 -!- CakeProphet has joined.
22:04:19 -!- CakeProphet has quit (Ping timeout: 258 seconds).
22:08:05 <Gregor> HALP
22:08:08 <Gregor> I've watched BLR too much.
22:08:13 <Gregor> Black Umbrella is starting to make sense.
22:19:21 -!- Taneb has quit (Quit: He's a big quitter he is).
22:19:40 <Phantom_Hoover> As it happens, I must wakirth.
22:19:42 -!- Phantom_Hoover has quit (Quit: Leaving).
22:20:12 -!- CakeProphet has joined.
22:20:12 -!- CakeProphet has quit (Changing host).
22:20:12 -!- CakeProphet has joined.
22:21:37 * CakeProphet rockin' in stalkr mode.
22:27:23 -!- CakeProphet has quit (Ping timeout: 258 seconds).
22:28:42 -!- CakeProphet has joined.
22:28:42 -!- CakeProphet has quit (Changing host).
22:28:42 -!- CakeProphet has joined.
22:29:22 -!- zzo38 has joined.
22:29:42 -!- augur_ has joined.
22:31:04 -!- augur has quit (Ping timeout: 250 seconds).
22:31:18 -!- pikhq_ has quit (Ping timeout: 246 seconds).
22:31:32 -!- pikhq has joined.
22:37:43 -!- CakeProphet has quit (Ping timeout: 276 seconds).
23:05:31 -!- PatashuWarg has joined.
23:08:07 -!- lambdabot has quit (Ping timeout: 251 seconds).
23:55:03 -!- CakeProphet has joined.
23:55:30 <CakeProphet> you will be pleased to know that I've found a solution that doesn't involve any javascript / temp file hacks: http://pastebin.com/hVEXB8Zn
23:56:48 <CakeProphet> nothing interesting happening really...just a bunch of glue
23:57:27 <CakeProphet> I'm pretty sure freelancing is all about the glue...
←2011-08-15 2011-08-16 2011-08-17→ ↑2011 ↑all